Você está na página 1de 30

Programação de Computadores

Daniel Madeira

15 de março de 2011

Algoritmos Daniel Madeira – 1 / 20


Conceituação

■ Ação:

◆ Acontecimento que, a partir de um estado inicial,


após um perı́odo de tempo finito, produz um estado
final previsı́vel e bem definido.
■ Exemplos: “caminhar até a próxima esquina”,
“atribuir o valor 3.14 a uma variável”

■ Algoritmo:

◆ Sequência de ações que, se for executada em


determinado perı́odo de tempo, chegará ao seu
objetivo.
■ Ex.: Fazer Café.
Algoritmos Daniel Madeira – 2 / 20
Exemplos

■ Sequência de Fibonacci:

◆ Os dois primeiros termos são iguais a 1 e cada termo


seguinte é igual a soma dos dois termos imediatamente
anteriores.
◆ Termos de Fibonacci menores que 50:
1 1 2 3 5 8 13 21 34

Algoritmos Daniel Madeira – 3 / 20


Exemplos

Algoritmo
Escreva os termos de Fibonacci inferiores a L.
fim algoritmo.

Algoritmos Daniel Madeira – 4 / 20


Exemplos

Algoritmo
Escreva os termos de Fibonacci inferiores a L.
fim algoritmo.

Algoritmo
Escreva os quadrados dos números inferiores a L.
fim algoritmo.

Algoritmos Daniel Madeira – 4 / 20


Exemplos

Algoritmo
Escreva os termos de Fibonacci inferiores a L.
fim algoritmo.

Algoritmo
Escreva os quadrados dos números inferiores a L.
fim algoritmo.

Algoritmo
Escreva todos os termos Fibonacci.
fim algoritmo. ?????????????

Algoritmos Daniel Madeira – 4 / 20


Exercı́cios

■ Escrever um algoritmo que produza os valores:

a) 2 4 6 8 10 12 14
b) 1 3 5 7 9 11 13

Algoritmos Daniel Madeira – 5 / 20


Exercı́cios

■ Escrever um algoritmo que produza os valores:

a) 2 4 6 8 10 12 14
b) 1 3 5 7 9 11 13

Algoritmo
Escreva os números pares menores que 16.
fim algoritmo.

Algoritmos Daniel Madeira – 5 / 20


Exercı́cios

■ Escrever um algoritmo que produza os valores:

a) 2 4 6 8 10 12 14
b) 1 3 5 7 9 11 13

Algoritmo
Escreva os números pares menores que 16.
fim algoritmo.

Algoritmo
Escreva os números ı́mpares menores que 15.
fim algoritmo.

Algoritmos Daniel Madeira – 5 / 20


Exercı́cios

■ Outras formas de resolver o mesmo problema:

Algoritmos Daniel Madeira – 6 / 20


Exercı́cios

■ Outras formas de resolver o mesmo problema:

Algoritmo
Escreva os 7 primeiros números pares maiores que 0.
fim algoritmo.

Algoritmos Daniel Madeira – 6 / 20


Exercı́cios

■ Outras formas de resolver o mesmo problema:

Algoritmo
Escreva os 7 primeiros números pares maiores que 0.
fim algoritmo.

Algoritmo
Escreva os 7 primeiros números ı́mpares.
fim algoritmo.

Algoritmos Daniel Madeira – 6 / 20


Exercı́cios

■ Outras formas de resolver o mesmo problema:

Algoritmo
Escreva os 7 primeiros números pares maiores que 0.
fim algoritmo.

Algoritmo
Escreva os 7 primeiros números ı́mpares.
fim algoritmo.

Algoritmo
Escreva os 7 primeiros termos da PA de razão 2 que
inicia com 1.
Algoritmos
fim algoritmo. Daniel Madeira – 6 / 20
Portugol

■ Forma comum para se escrever algoritmos em português.

■ Utiliza determinadas palavras chave: Algoritmo, se, para,


enquanto...

■ Algoritmos são iniciados com “Algoritmo”e terminados com


“fim algoritmo”

Algoritmos Daniel Madeira – 7 / 20


Refinamentos sucessivos

■ Um algoritmo é considerado completo se os seus comandos


forem do entendimento do destinatário;

■ Se algum comando não for do entendimento, será refinado;

Ref. Escreva os termos de Fibonacci inferiores a L


Receba o valor de L
Processe os 2 primeiros termos
Processe os termos restantes
fim ref.

Algoritmos Daniel Madeira – 8 / 20


Refinamentos sucessivos

■ Um algoritmos e seus refinamentos são formados por


comandos e estruturas de controle.

■ Um comando pode ser desdobrado em novos comandos se


ainda for vago.

Ref. Processe os dois primeiros termos


Atribua o valor 1 ao primeiro termo
se ele for menor que L então
escreva-o
fim se
Atribua o valor 1 ao segundo termo
se ele for menor que L então
escreva-o
fim se
fim ref.
Algoritmos Daniel Madeira – 9 / 20
Refinamentos sucessivos

■ Estrutura de controle: estrutura condicional

se condição então
comandos
fim se

■ Um algoritmo, através de estruturas condicionais, pode


provocar ou não a realização de uma ação.

Algoritmos Daniel Madeira – 10 / 20


Refinamentos sucessivos

Ref. Escreva os termos de Fibonacci inferiores a L


Receba o valor de L
Processe os 2 primeiros termos
Processe os termos restantes
fim ref.

Algoritmos Daniel Madeira – 11 / 20


Refinamentos sucessivos

Ref. Escreva os termos de Fibonacci inferiores a L


Receba o valor de L
Processe os 2 primeiros termos
Processe os termos restantes
fim ref.

Ref. Escreva os termos de Fibonacci inferiores a L


Receba o valor de L
Atribua o valor 1 ao primeiro termo
se ele for menor que L então
escreva-o
fim se
Atribua o valor 1 ao segundo termo
se ele for menor que L então
escreva-o
fim se
Processe os termos restantes
fim ref.

Algoritmos Daniel Madeira – 11 / 20


Refinamentos sucessivos

■ Processe os termos restantes

Ref. Processe os termos restantes


repita
Calcule o novo termo somando os dois anteriores
se novo termo for maior ou igual a L então
interrompa
fim se
Escreva novo termos
fim repita
fim ref.

Algoritmos Daniel Madeira – 12 / 20


Refinamentos sucessivos

■ Nova estrutura de controle: estrutura de repetição

■ Os comandos serão executados repetidamente até que uma


condição para parar a repetição seja satisfeita;

repita
comandos
se condição então
interrompa
fim se
fim repita

Algoritmos Daniel Madeira – 13 / 20


Refinamentos sucessivos

Algoritmo Escreva os termos de Fibonacci inferiores a L


Receba o valor de L
Atribua o valor 1 ao primeiro termo
se ele for menor que L então
escreva-o
fim se
Atribua o valor 1 ao segundo termo
se ele for menor que L então
escreva-o
fim se
repita
Calcule o novo termo somando os dois anteriores
se novo termo for maior ou igual a L então
interrompa
fim se
Escreva novo termo
fim repita
fim algoritmo.

Algoritmos Daniel Madeira – 14 / 20


Exercı́cios

■ Fazer um algoritmo para somar dois números

Algoritmos Daniel Madeira – 15 / 20


Exercı́cios

■ Fazer um algoritmo para somar dois números

Algoritmo Somar dois números


receba o primeiro número
receba o segundo número
Some os dois números

fim algoritmo.

Algoritmos Daniel Madeira – 15 / 20


Exercı́cios

■ Fazer um algoritmo para verificar se dois números são


iguais

Algoritmos Daniel Madeira – 16 / 20


Exercı́cios

■ Fazer um algoritmo para verificar se dois números são


iguais
Algoritmo Verificar se dois números são iguais
receba o primeiro número
receba o segundo número
se os números são iguais então
escreva ’Igual’
senão
escreva ’Diferente’
fim se

fim algoritmo.

Algoritmos Daniel Madeira – 16 / 20


Diagramas de blocos ou fluxograma

■ Ilustrações que auxiliam no desenvolvimento;

■ Pode-se inclusive desenvolver algoritmos dessa forma;

Algoritmos Daniel Madeira – 17 / 20


Algoritmos Daniel Madeira – 18 / 20
Linguagens de Programação

■ O algoritmo deve ser escrito em uma linguagem que o


computador possa entender

■ Computadores entendem linguagem de máquina.

◆ Difı́cil de se entender;
◆ Muda para cada tipo de computador;

■ Para que o computador possa entender precisamos de usar


uma linguagem de alto nivel;

Algoritmos Daniel Madeira – 19 / 20


PROGRAM FIBONACCI (INPUT, OUTPUT);
(* CALCULA OS TERMOS DE FIBONACCI MENORES QUE L *)
USES CRT;
VAR L,A,B,C: INTEGER;
BEGIN
WRITE(’Digite o Valor de L: ’);
READ (L);
A := 1;
IF A < L THEN BEGIN
WRITELN(A);
END;
B := 1;
IF B < L THEN BEGIN
WRITELN(B);
END;
C := A + B;
WHILE C < L DO BEGIN
WRITELN(C);
A := B;
B := C;
C := A+B;
END;
READKEY;
END.

Algoritmos Daniel Madeira – 20 / 20

Você também pode gostar