Escolar Documentos
Profissional Documentos
Cultura Documentos
Apostila de Algoritimos
Apostila de Algoritimos
Conceito de Algoritmo
- Algoritmo a especificao de uma sequncia ordenada de passos que deve ser seguida com o
intuito de realizar uma tarefa, garantindo a sua repetibilidade.
Obs.: repetibilidade permite que esta sequncia possa ser repetida toda vez que a tarefa tiver que
ser realizada.
- Algoritmo um conjunto finito de regras bem definidas para a soluo de um problema, em um
tempo finito, e com um nmero finito de passos.
Para que um computador possa desempenhar uma tarefa necessrio que esta seja detalhada passo
a passo, numa forma compreensvel pela mquina, utilizando aquilo que se chama de programa.
Neste sentido, um programa de computador nada mais que um algoritmo escrito numa forma
compreensvel pelo computador.
Formas de Algoritmos
Existem diversas formas possveis de se representar um algoritmo.
Para a Informtica, algumas das formas mais conhecidas so:
- Descrio Narrativa
- Fluxograma
- Pseudocdigo
>> Pseudocdigo:
Esta forma de representao de algoritmos, tambm conhecida como Portugus Estruturado ou
Portugol, bastante rica em detalhes e, por assemelhar-se bastante forma em que os programas
so escritos, ser juntamente com o Fluxograma, a forma de representao de algoritmos a ser
adotada nesta disciplina.
Estrutura de Um Algoritmo na Forma de Pseudocdigo
Algoritmo <nome_do_algoritmo>
Var
<declarao_de_variveis>
Incio
<corpo_do_algoritmo>
Fim.
"Algoritmo" uma palavra que indica o incio da definio do algoritmo em forma de pseudocdigo.
"<nome_do_algoritmo>" no lugar deste, deve ser colocado o nome simblico do algoritmo, o que
ir distingui-lo dos demais.
"<declarao_de_variveis>" parte do algoritmo onde devem ser declaradas as variveis utilizadas
no algoritmo. Esta parte ser detalhada mais adiante.
"Incio" e "Fim." so respectivamente as palavras que delimitam o incio e o trmino do conjunto de
instrues do corpo do algoritmo.
Exemplo de um Algoritmo que calcula a mdia de duas notas, que devem ser digitados pelo Usurio
ao executar o programa, e ao final mostra se houve aprovao ou no, segundo um critrio
estabelecido.
Algoritmo Media
Var
N1, N2, Media: Real;
Incio
Leia (N1, N2);
Media = (N1+N2)/2;
Se Media >= 7 Ento
Escreva ("Aprovado");
Seno
Escreva ("Reprovado");
Fim_se
Fim.
Tipos de Dados
Todo o trabalho realizado por um computador baseado na manipulao das informaes contidas
em sua memria. Estas informaes podem ser classificadas em dois tipos:
As instrues, que comandam o funcionamento da mquina e determinam a maneira como devem
ser tratados os dados.
Os dados propriamente ditos, que correspondem poro das informaes a serem processadas
pelo computador.
Para que sejam manipulados pelo processador, os dados devem ser declarados no incio do
programa, a fim de que o compilador conhea os tipos e os nomes das variveis que contemplaro
estes dados.
Operadores
Operadores so elementos fundamentais que atuam sobre operandos e produzem um determinado
resultado. Por exemplo, a expresso 3 + 2 relaciona dois operandos (os nmeros 3 e 2) por meio do
operador (+) que representa a operao de adio.
Pode-se classificar os operadores levando-se em considerao o tipo de dado de seus operandos, e
do valor resultante de sua avaliao. Sendo assim, dividem-se em Operadores "de Atribuio",
"Aritmticos", "Relacionais", "Lgicos" e "Literais".
A expresso localizada no lado direito do sinal de igual avaliada, e seu valor resultante
armazenado na varivel que est esquerda.
"O nome da varivel que recebe o valor deve aparecer sempre sozinho, no lado esquerdo do sinal de
igual deste comando."
Exemplos:
a = 3;
nota1 = 8.5;
media = (nota1 + nota2) / 2;
v = v0 + a * t;
salFinal = sal * perc / 100;
Operao
adio
subtrao
multiplicao
diviso
parte inteira de uma diviso
resto de uma diviso
potenciao (ou exponenciao)
Prioridade
3
3
3
3
2
2
1
Obs.: A prioridade (ou hierarquia) entre operadores define a ordem em que os mesmos sero
avaliados (e executados) dentro de uma mesma expresso.
Operao
menor que
maior que
menor ou igual a
maior ou igual a
diferente de
igual a
Estes valores so somente usados quando se deseja efetuar comparaes. Comparaes s podem
ser feitas entre objetos de mesma natureza, isto , variveis do mesmo tipo de dado.
Por exemplo, digamos que a varivel inteira "num" contenha o valor 7(sete). Assim as expresses a
seguir fornecem cada uma, um valor lgico, sendo falso a primeira, e verdadeiro a segunda:
num <= 5
num > 5
Operaes que utilizam operadores relacionais so como perguntas, cuja resposta ser sempre "No"
ou "Sim"; "Falso" ou "Verdadeiro"; "0" ou "1".
Ex.: se num for igual a 7(sete), ento:
num <= 5 ? ... No (Falso)
num > 5 ? ... Sim (Verdadeiro)
Operador
OU
E
NO
Fornecendo dois valores ou expresses lgicas, representadas por expresso1 e expresso2,
podemos descrever as quatro operaes lgicas a seguir:
expresso1 E expresso2 verdadeiro somente se ambas, expresso1 e expresso2, forem
verdadeiras. Se uma for falsa, ou se ambas forem falsas, a operao "E"como um todo tambm
ser falsa.
expresso1 OU expresso2 verdadeiro se tanto a expresso1 como a expresso2 forem
verdadeiras. As operaes "OU" s resultam em valores falsos se ambas, expresso1 e
expresso2, forem falsas.
NO expresso1 verdadeiro se expresso1 for falsa; de modo contrrio, a expresso "NO
expresso1" resultar em falso, se expresso1 for verdadeira.
Ou seja, a expresso NO expresso1 resulta na negao da expresso1.
A
V
V
F
F
B
V
F
V
F
Tabela Verdade:
A 0U B
AEB
NO A
V
V
F
V
F
F
V
F
V
F
F
V
NO
F
V
F
V
Funes Matemticas
Abaixo, esto enumeradas algumas Funes Matemticas que podero ser abordadas e utilizadas em
exerccios neste curso:
ABS (x)
SEN (x)
COS (x)
TAN (x)
EXP (x)
LN (x)
PI
Retorna
Retorna
Retorna
Retorna
Retorna
Retorna
Retorna
o
o
o
o
o
o
o
Expresses
O conceito de "expresso", em termos computacionais, est intimamente ligado ao conceito de
expresso ou frmula matemtica, onde um conjunto de variveis e constantes numricas relacionase por meio de operadores aritmticos compondo uma frmula que, uma vez avaliada, resulta num
valor.
Expresses aritmticas so aquelas cujo resultado da avaliao do tipo numrico, seja ele inteiro ou
real. Somente o uso de funes, operadores aritmticos, variveis numricas e parnteses
permitido em expresses deste tipo.
"Toda expresso aritmtica deve estar linearizada, ou seja, representada inteiramente em apenas
uma linha."
OU
nome, endereco,
cidade
OU
Uma <lista_de_variveis> um conjunto de nomes de variveis separados por vrgulas. Um literal
simplesmente um dado do tipo literal (string ou cadeia de caracteres) delimitado por aspas.
H ainda a possibilidade de se misturar nomes de variveis com literais na lista de um mesmo
comando. O efeito obtido bastante til e interessante: a lista lida da esquerda para a direita e
cada elemento da mesma tratado separadamente; se um nome de varivel for encontrado, ento o
valor da mesma colocado no dispositivo de sada; no caso de um literal, o mesmo escrito
diretamente no dispositivo de sada (na tela).
Exemplo: algoritmo que calcula o preo total de acordo com a quantidade de produto comprada.
Algoritmo exemplo_comando_de_entrada_de_dados
Var
preco_unit, preco_tot : Real;
quant : Inteiro;
Incio
Leia (preco_unit, quant);
preco_tot = preco_unit * quant;
Escreva (preco_tot);
Fim.
Estruturas Condicionais:
(Comandos de Deciso)
Neste tipo de estrutura o fluxo de instrues a ser seguido escolhido em funo do resultado da
avaliao de uma ou mais condies. Uma condio uma expresso lgica.
A classificao das estruturas de deciso feita de acordo com o nmero de condies que devem ser
testadas para que se decida qual o caminho a ser seguido. Segundo esta classificao, tm-se 3 tipos
de estruturas de deciso:
- Estrutura de Deciso Simples (Se..ento..fim_se)
- Estrutura de Deciso Composta (Se..ento..seno..fim_se)
- Estrutura de Deciso Mltipla (Se..ento..seno se..ento ... fim_se)
Uma Estrutura de deciso inicia-se na palavra reservada "SE" (inicial), e termina na palavra
reservada "FIM_SE".
FALSA
VERDADEIRA
CONDIO
INSTRUES
FALSA
VERDADEIRA
CONDIO
INSTRUES_2
INSTRUES_1
Exemplo de algoritmo que l um nmero e escreve se o mesmo , ou no, maior que 100:
Algoritmo exemplo_estrutura_de_deciso_composta
Var
X : Inteiro;
Incio
Leia (X);
Se X > 100 Ento
Escreva ("X maior que 100");
Seno
Escreva ("X no maior que 100");
Fim_se
Fim.
VERDADEIRA
CONDIO_1
INSTRUES_1
FALSA
CONDIO_2
FALSA
VERDADEIRA
nome,
INSTRUES_2
nome,
VERDADEIRA
nome,
FALSA
INSTRUES_3
nome,
INSTRUES_N
nome,