Beruflich Dokumente
Kultur Dokumente
ÍNDICE
ALGORITMO
CARACTERÍSTICAS ........................................................................................................................ 02
DADOS
REPRESENTAÇÃO.......................................................................................................................... 05
VARIÁVEIS E CONSTANTES .......................................................................................................... 05
DECLARAÇÃO DE VARIÁVEIS ....................................................................................................... 06
EXPRESSÕES E OPERADORES
OPERADORES ................................................................................................................................ 06
ESTRUTURA SEQUENCIAL ........................................................................................................... 08
COMANDOS BÁSICOS DE LEITURA E ESCRITA ......................................................................... 09
REFERÊNCIAS ............................................................................................................................................. 16
CARACTERÍSTICAS DE UM ALGORITMO
Os algoritmos permitem a livre construção (sem a utilização de regras de escrita das Linguagens de
Programação), mas necessita apresentar certas características para o seu funcionamento.
Todo algoritmo deve apresentar a estrutura INÍCIO e FIM. Indicando onde começa e termina
o algoritmo. Caso não seja especificado algum destes itens, o algoritmo não funcionará.
ESTRUTURA SEQUENCIAL
Teoricamente, não existem limites para a quantidade de passos a serem executados pelo
algoritmo. Porém deve-se levar em conta que um dos objetivos do algoritmo é a economia de
recursos computacionais (processador, memórias, etc), a fim de tornar a execução do mesmo
RÁPIDO, SEGURO, CONFIÁVEL e FINITO. Destaque para esse último item (EXECUÇÃO
FINITA), pois todo algoritmo deve ser finalizado em algum momento. Um algoritmo que executa
de forma infinita não poderá devolver um resultado para o usuário.
REPRESENTAÇÃO DE UM ALGORITMO
Os algoritmos podem ser representados de três formas diferentes:
DESCRIÇÃO NARRATIVA
FLUXOGRAMA CONVENCIONAL
Operação de Saída de
Dados
Exemplo:
PSEUDOCÓDIGO (PORTUGOL)
DADOS
TIPOS NUMÉRICOS
o INTEIROS (Forma de declaração: inteiro)
Todo e qualquer número pertencente ao conjunto dos números inteiros (positivos, nulo ou
positivo). Não apresentam casas decimais.
Todo e qualquer número pertencente ao conjunto dos números reais (positivos, nulo ou
positivo). Apresentam casas decimais. Utilizados para representar também fracionários e
porcentagem.
CARACTERES/TEXTOS
o CARACTERES (Forma de declaração: caracter)
DADOS LÓGICOS
Também conhecidos como Dados Booleanos, assumem apenas duas situações: verdadeiro
(qualquer valor diferente de zero, seja positivo ou negativo) e falso (valor igual a 0). Geralmente
utilizados em controle de fluxo (Condicionais, Laços).
VARIÁVEIS E CONSTANTES
Os dados são armazenados em espaços físicos na memória principal do computador. São
classificados em:
VARIÁVEIS
CONSTANTE
Quando os dados armazenados NÃO podem ser alterados durante a execução do programa.
DECLARAÇÃO DE VARIÁVEIS
Para declarar uma variável, devemos observar alguns pontos essenciais.
Rótulo consiste no nome da variável e será utilizado durante toda a execução do algoritmo.
O nome da variável deve ser declarado utilizando as seguintes regras: iniciando com caracteres
alfabéticos, podem ser utilizados números dentro do nome da variável, não podem ser utilizados
caracteres especiais. Para declarar mais de uma variável do mesmo tipo, separe os nomes das
variáveis com vírgula.
A forma de declaração da VARIÁVEL segue uma das estruturas abaixo:
Onde tipo é um tipo válido de dados (inteiro, real, caracter, texto), nome é o nome da variável
escolhido seguindo as regras descritas anteriormente. As variáveis podem ser declaradas com
atribuição (recebendo um valor no ato da declaração) e sem atribuição (recebendo o valor
durante a execução do algoritmo). Como exemplo:
EXPRESSÕES E OPERADORES
OPERADORES
Operadores, semelhante aos operadores matemáticos, são elementos funcionais que realizam
operações atuam sobre os operandos, produzindo um resultado. O mais importante dos operadores é o
Operador de Atribuição, que transfere um valor ou o resultado de uma operação para determinada
variável ou constante.
Onde a variável/constante (à esquerda do sinal) recebem o
variável/constante valor/expressão
valor (ou resultado da expressão) que está à direita do sinal.
media (n1+n2+n3)/3
Exemplo a variável media recebe o VALOR da expressão
(n1+n2+n3)/3.
ARITMÉTICOS
LÓGICOS
OPERADOR DESCRIÇÃO PRIORIDADE
Ou Ou lógico 3
E E lógico 2
! Não lógico 1
Estes tipos de operadores utilizam valores Booleanos como resultado. Quando um valor é
falso, o reste lógico retorna 0 (zero), quando o resultado do teste lógico é verdadeiro, retorna 1 (um).
O operador OU retorna falso somente quando o valor dos dois operandos é falso. Quando pelo
menos um é verdadeiro, retorna verdadeiro. O operador E retorna verdadeiro somente se os dois
operadores forem verdadeiros, se pelo menos um for falso, o resultado será falso. O NÃO lógico
inverte o valor da variável (verdadeiro falso e falso verdadeiro).
RELACIONAIS
OPERADOR DESCRIÇÃO
> Maior que
>= Maior ou igual a
< Menor que
<= Menor ou igual a
= Igual
=/= Diferente
Quando executado em Portugol, estes operadores não tem classificação por prioridade.
ESTRUTURA SEQUENCIAL
Como já foi dito anteriormente, todo algoritmo deve seguir uma estrutura sequencial. A forma
correta de declaração de um algoritmo é descrita logo abaixo:
// Cabeçalho com o nome do algoritmo (Geralmente opcional, fica a critério do programador)
Comentários de Várias linhas (iniciados por /* e terminados por */): Comentários longos,
geralmente textos curtos explicativos. Todo o texto que ficar entre esses dois sinais será
considerado como comentários e não como comandos. Por isso cuidado na hora de declara
comentários de mais de uma linha. Exemplo: Instruções sobre procedimentos.
Inicio
/* Declare o nome das variáveis
de acordo com a necessidade */
real n1, n2, n3, media
ESCRITA
Exibem na tela mensagens, conteúdos de variáveis, strings (textos), resultados de
expressões. Pode ser utilizado de forma simples (escrever <variável /expressão / ”texto”>) ou
composta (escrever “texto”, <variavel>, “texto”, <expressão>).
Exemplo: escrever “olá mundo”, irá escrever a mensagem olá mundo. Já escrever nota1,
irá escrever na tela o valor armazenado na variável nota1.
LER
Utilizado logo após o comando ESCREVER. Sua função é recebe um valor digitado pelo
usuário e armazená-lo na variável especificada. Sua sintaxe de utilização é ler <variavel>, onde
variável é o local onde você irá armazenar esse valor. Exemplo: ler nota1, irá ler o valor
digitado via teclado e armazenará na variável nota1.
Operadores, semelhante aos operadores matemáticos, são elementos funcionais que realizam
operações atuam sobre os operandos, produzindo um resultado. O mais importante dos operadores é o
Operador de Atribuição, que transfere um valor ou o resultado de uma operação para determinada
variável ou constante.
Vimos que a execução de um algoritmo é de forma sequencial, um comando após o outro, e dessa
forma ocorre a execução de todos os comandos, sem interrupção prevista (a menos que o próprio usuário
interrompa o funcionamento do algoritmo). Mas há casos em que deverá ser executado um ou outro
conjunto de comandos, também referenciado como BLOCO DE COMANDOS, de acordo com a situação ou
escolha do usuário. É nesse momento que começamos a utilizar as ESTRUTURAS DE DESVIO
CONDICIONAL, que tem por objetivo executar um bloco de comandos mediante escolhas pré-definidas.
Todas as Estruturas de Desvio utilizam um TESTE CONDICIONAL, baseando em operações
aritméticas, lógicas ou relacionais. O resultado do teste é interpretado como um valor lógico, e esse valor
lógico torna o teste condicional verdadeiro ou falso.
As Estruturas de Desvio Condicional são classificadas em SIMPLES, COMPOSTAS,
ENCADEADAS e ESTRUTURA DE SELEÇÃO MÚLTIPLA ESCOLHA.
Esta estrutura, com base em um teste condicional (também chamado de teste lógico), executa ou
não um determinado bloco de comandos. Se o teste for verdadeiro, o bloco será executado; se o teste for
falso, o bloco de comandos é ignorado, e a execução do algoritmo passa para o trecho seguinte do
algoritmo (localizado após o desvio condicional). Como exemplo:
Inicio Neste exemplo, se a média do aluno for igual ou maior que 6,0, o
real n1 , n2 , media
resultado do teste condicional será VERDADEIRO, o que fará com
escrever "Primeira Nota: "
ler n1 que a mensagem APROVADO seja impressa.
escrever "Segunda Nota: " Caso a média do aluno seja menor que 6,0, o teste condicional
ler n2 retornará FALSO, o que fará que os comandos dentro do Desvio
media <- ( n1 + n2 ) / 2 Condicional Simples sejam ignorados (Não será impressa a
escrever “Media: “, media, “\n” mensagem APROVADO), e a execução do algoritmo passe para os
se media >= 6 entao
comandos seguintes (neste caso, terminará o algoritmo; porém se
escrever "\nAPROVADO"
fimse houvesse outro comando após o bloco do desvio condicional, este
Fim
comando seria executado).
Semelhante a estrutura anterior (SE SIMPLES), esta estrutura também se baseia em um teste
condicional. Porém, quando o teste condicional for VERDADEIRO, executa o bloco de comandos
pertencente ao SE; quando o teste condicional for FALSO, executa o bloco de comandos pertencente ao
ELSE.
Inicio Semelhante ao exemplo anterior, se a média do aluno for igual ou
real n1 , n2 , media
maior que 6,0, o resultado do teste condicional será VERDADEIRO,
escrever "Primeira Nota: "
ler n1 será executado o bloco de comandos pertencente ao SE (impressão
Este estrutura nada mais é do que desvios condicionais dentro de desvios condicionais. Seu
funcionamento é semelhante desvio condicional (tanto o simples como o composto). Vale ressaltar que
cada desvio condicional depende do seu próprio teste condicional.
Inicio Se a média do aluno for igual ou maior que 6,0, o resultado
real n1 , n2 , media
do primeiro teste condicional será VERDADEIRO, será
escrever "Primeira Nota: "
ler n1 executado o bloco de comandos pertencente ao SE
Esta estrutura merece atenção especial, pois como as demais estruturas de desvio, cada estrutura
SE ENCADEADA deve possuir INÍCIO (SE) e FINAL (FIMSE). Cada estrutura encadeada pode ser
SIMPLES (SE SIMPLES) ou COMPOSTA (SE COMPOSTO), ficando a escolha a critério do programador.
escrever “Olá “ Caso seja M, será impressa a mensagem AMIGO. Caso seja
escolhe F, será impressa a mensagem AMIGA. Caso seja algum valor
caso “m” : diferente de M e F, será executado o bloco de comandos
escrever “Amigo\n”
correspondente à opção DEFEITO (impressão da mensagem
caso “f” :
escrever “Amiga\n” SEJA BEM VINDO).
defeito: : A opção DEFEITO é opcional, e pode ou não ser utilizada
escrever “Seja Bem-Vindo\n”
junto com a estrutura ESCOLHE.
fimescolhe
Fim
Esta estrutura de repetição executa o TESTE CONDICIONAL antes do início do laço, e, caso a
condição seja satisfeita (ou seja, caso o teste condicional retorne verdadeiro), repete o bloco de comandos
associados (pertencente) a este laço até que o teste condicional retorne falso. Neste tipo de laço, o bloco de
comando pode não ser executado, executado pelo menos uma vez ou executado várias vezes.
Inicio Neste exemplo, foi declarada a variável i do tipo inteiro, inicializada com o
inteiro i 1 valor 1. O TESTE CONDICIONAL irá analisar se o valor da variável i é menor
enquanto i <= 10 faz ou igual a 10.
escrever i, “ “ Caso resulte VERDADEIRO, a variável i será impressa na tela, em seguida
i i +1 seu valor será incrementado (i i + 1, a variável receberá seu valor + 1). O
fimenquanto laço irá repetir os comandos até que o valor armazenado na variável i seja
fim maior que o valor limite especificado (neste exemplo, o valor 10).
Estrutura: Faz
BLOCO DE COMANDOS
enquanto <TESTE CONDICIONAL = VERDADEIRO>
Esta estrutura de repetição executa o TESTE CONDICIONAL no final da primeira execução do laço,
forçando a execução de pelo menos uma vez do bloco de comandos. Caso a condição seja satisfeita (ou
seja, caso o teste condicional retorne verdadeiro), repete o bloco de comandos associados (pertencente) a
este laço até que o teste condicional retorne falso.
Vale lembrar: a diferença entre os laços com teste no inicio (ENQUANTO ... FAZ) e com teste no
final (FAZ ... ENQUANTO), é que, no laço com teste no final, o bloco de comando será executado pelo
menos uma vez mesmo que o teste condicional seja falso, enquanto que os laços com teste no início, caso
o teste condicional seja falso, o bloco de comandos não será executado de forma alguma.
Estrutura: Repete
BLOCO DE COMANDOS
até <TESTE CONDICIONAL = FALSO>
Teste semelhante ao FAZ ... ENQUANTO. Sua diferença básica é que, enquanto o laço FAZ ...
ENQUANTO repete o bloco de comandos até que o teste condicional retorne FALSO; o laço REPETE ...
ATÉ, repete o laço até que o teste condicional retorne VERDADEIRO. Confuso?
Inicio Neste exemplo, o laço irá executar até que o teste condicional retorne
inteiro i 1 VERDADEIRO (ou seja, até que o valor de i atinja o valor pré-determinado).
repete
Basicamente, este laço repetirá o valor de i, até que o valor de i seja igual a
i i +1
escrever i, “ “ 10.
até i = 10
fim
Este laço de repetição se diferencia dos outros laços por pré-determinar a quantidade de vezes que
o laço será executado, ao contrário dos demais laços que dependem do Teste Condicional. Essa pré-
determinação é possível através da utilização de uma variável de controle de laço, geralmente declarada
em formato inteiro, e inicializada (atribuição de valor) dentro da estrutura do laço.
Por exemplo:
SCHILDT, Herbert. C Completo e Total. 3ª Edição. São Paulo: Pearson Makron Books, 1997.
AUGUSTO, José N. G. Manzano e Jayr Figueredo de Oliveira. Algortimos. Lógica para Desenvolvimento
de Programação de Computadores. Ed. Érica.
Internet:
www.google.com.br
www.apostilando.com
LÓGICA
DE
PROGRAMAÇÃO
2011