Vous êtes sur la page 1sur 44

UNIVERSIDADE ESTADUAL DO MARANHO

DEPARTAMENTO DE MATEMTICA E INFORMTICA


DISCIPLINA: ALGORTMOS E PROGRAMAO
PROF: JOBERTH DE NAZAR SILVA

Algoritmos
Prof. Ms. Joberth de Nazar Silva

1
Contedos

Definies de Algoritmos
Caractersticas dos Algoritmos
Formas de Representao
Refinamentos Sucessivos
Algoritmos Estruturados
Estrutura Seqencial
Estrutura Condicional

2
Definio
O que um algoritmo?
Um conjunto finito de regras, bem definidas,
Para a soluo de um problema
em um tempo finito.

Porque precisamos de um algoritmo?


No necessariamente envolve aspectos
computacionais:
Trocar pneu de um carro
Receita de bolo
Fritar um ovo 3
Exemplo

Sequncia para fritar um ovo:


1. Retirar o ovo da geladeira
2. Colocar a frigideira no fogo
3. Colocar leo
4. Esperar at o leo ficar quente
5. Quebrar o ovo separando a casca
6. Colocar o contedo do ovo na frigideira
7. Esperar um minuto
8. Retirar o ovo da frigideira
9. Apagar o fogo
Exemplo

Tal sequncia um algoritmo? Vejamos...


Possui uma sequncia de instrues finitas e
ordenadas?
R.: SIM. Instrues de 1 a 9.
O objetivo da sequncia foi atingido?
R.: SIM. O ovo foi frito.
Logo, um algoritmo!
Caractersticas

Capacidade de receber dados externos

No ter dupla interpretao

Gerar informaes de sada

Deve ter tempo finito

6
Caractersticas

Exemplo:

Fazer uma Mousse de Maracuj

Entrada:
1 lata de leite condensado
1 lata de creme de leite sem soro
1 lata (a mesma medida) de suco de maracuj concentrado
1 envelope de gelatina em p sem sabor
Caractersticas

Algoritmo:
1. Bata no liquidificador o leite condensado, o creme de leite
sem soro e o suco de maracuj
2. A parte, prepare a gelatina em p, conforme instrues do
envelope
3. Quando amornar, coloque para bater juntamente com os
demais ingredientes que esto no liquidificador
4. Unte uma forma de pudim com margarina e antes de
colocar o creme passe gua pela forma, como se fosse
enxagu-la
5. Coloque no congelador at estar no ponto para tirar da
forma
Caractersticas

Sada:
Caractersticas

Exemplo de Algoritmo de Tempo Infinito

1. Fazer n igual a zero e i igual a 1


2. Enquanto n for menor do que 5
a) Escrever i
b) Somar 2 ao i
3. Terminar

Problema?????
Formas de Representao
Descrio Narrativa

Vantagens Desvantagens
11
Formas de Representao
Fluxograma
Smbolos Grficos

Vantagens

Desvantagens

12
Formas de Representao

Linguagem Algortmica

Vantagens

Desvantagens

13
Refinamento Sucessivos
Um algoritmo completo se os seus comandos
forem compreendidos.
Um comando que no for compreendido ser
refinado.
Exemplo: Algoritmo CALCULA_MDIA
1. Receba os dois nmeros
2. Calcule a mdia dos dois nmeros
3. Exiba o resultado
Refinamento Sucessivos

Desdobrando o comando Calcule a mdia dos


dois nmeros em:
Soma de dois nmeros
Divida o resultado por 2
Aps esse refinamento, o algoritmo pode ser
considerado completo.
Refinamento Sucessivos
Ento o algoritmo reescrito:
Algoritmo viso global:
1. Receba os dois nmeros
2. Soma os dois nmeros
3. Divida o resultado por 2
4. Exiba o resultado
Refinamento Sucessivos
Refinamentos sucessivos separados indicado para
algoritmos grandes.

Exemplo: Leia trs valores inteiros, determine e


imprima o menor deles.
Algoritmo:
1. Leia os nmeros
2. Determine o menor nmero
3. Escreva o menor nmero
Refinamento Sucessivos
1. Leia os nmeros
Leia A,B,C
2. Determine o menor nmero
Se A<B e A<C ento
Menor A
Seno
Determine o menor dentre B e C
Fim se
Refinamento Sucessivos
3. Determine o menor dentre B e C
Se B<C ento
Menor B
Seno
Menor C
Fim se

4. Escreva o menor nmero


Escreva Menor
Refinamento Sucessivos
Juntando os refinamentos temos a viso global do algoritmo completo
Leia A,B,C
Se A<B e A<C ento
Menor A
Seno
Se B<C ento
Menor B
Seno
Menor C
Fim se
Fim se
Escreva Menor
Algoritmos Estruturados
So desenvolvidos por refinamentos sucessivos.

Os sucessivos refinamentos so mdulos;

Nos mdulos so usados um nmeros limitado de


comandos e de estruturas de controle.
Estrutura Seqencial
Os comandos so executados numa seqncia
linear, da esquerda para direita e de cima para
baixo, se no houver indicao em sentido
contrrio.
Exemplo:
Algoritmo <exemplo>
inteiro: a,b,c
Inicio
leia (a,b)
c a*b
escreva (a,b,c)
Fim
Estrutura Condicional
Permite a escolha de um grupo de aes e estruturas
a ser executado quando determinadas condies so
ou no satisfeitas.

Classificao:
Estrutura condicional simples
Estrutura condicional composta
Estrutura condicional simples

Programao para Engenharia I 24


Estrutura condicional simples

25
Estrutura condicional composta

26
Estrutura condicional composta

27
Estrutura CASE

28
ESTRUTURA DE REPETIO

ESTRUTURA DE REPETIO FOR


ESTRUTURA DE REPETIO

ESTRUTURA DE REPETIO FOR


ESTRUTURA DE REPETIO

ESTRUTURA DE REPETIO WHILE


ESTRUTURA DE REPETIO

ESTRUTURA DE REPETIO WHILE


ESTRUTURA DE REPETIO

ESTRUTURA DE REPETIO REPEAT


ESTRUTURA DE REPETIO

ESTRUTURA DE REPETIO REPEAT


Vetores

Sintaxe: <nome array>: array [dimenso] of <tipo>;

Exemplo 1: Var vet:array [1..6] of integer;


Begin
vet[2] := 90;
vet[4] := 45;
vet[5] := 30;
end.

35
Vetores
Exemplo 2:
Incluso de 5 valores inteiros em um vetor, e depois disto emitir a soma dos mesmos.
program vet_soma;
var
v: array [1..5] of integer;
soma,cont:integer;
Begin
soma:=0;
writeln('digite os 5 valores');
for cont:=1 to 5 do
readln(v[cont]);
for cont:=1 to 5 do
soma:=soma + v[cont];
writeln('Soma=',soma);
end.
Programao para Engenharia I 36
Matrizes

Sintaxe: <nome array>: array [dimenses] of <tipo>;

Exemplo 1: Var
mat:array[1..5,1..3] of integer; {matriz 19x3}
Begin
mat[1,2]:=10;
mat[3,1]:=11;
mat[5,3]:=12;
mat[2,2]:=78;
end.
37
Matrizes
Exemplo 2:
Ler 6 valores em uma matriz de 2 linhas e 3 colunas e depois disto emitir a soma dos valores.
program matriz;
var
m:array[1..2,1..3] of integer;
soma, contl, contc: integer;
Begin
writeln('Digite os 6 valores');
soma:=0;
for contl:=1 to 2 do
for contc:=1 to 3 do
readln(m[contl,contc]);
for contl:=1 to 2 do
for contc:=1 to 3 do
soma:=soma + m[contl,contc];
writeln('Soma=',soma);
end. 38
Procedimentos

procedure NomeDaProcedure(Parmetro1: Tipo; ParmetroN: Tipo);


var
{declarao de variveis locais, quando necessrias}
Begin

{bloco de instrues}

end;

Profa. Ana Benso Programao para Engenharia I 39


Procedimentos

program ProcTesteSoma;

procedure soma(n1,n2:integer);
begin
Write('A soma dos nmeros : ',(n1+n2));
readln;
end;

begin
Soma(10,20);
end.
Profa. Ana Benso Programao para Engenharia I 40
Funes

function NomeDaFuno(Parmetro1: Tipo; ParmetroN: Tipo): Tipo de retorno;


Var
{declarao de variveis locais, quando necessrias}
Begin

{bloco de instrues}
NomeDaFuno := [ValordeRetorno]; ou Result := [Valor de Retorno];

end;

Profa. Ana Benso Programao para Engenharia I 41


Funes

program FuncTesteSoma;

function soma(n1,n2:integer):integer;
begin
soma := (n1+n2);
end;

begin
Write('A soma dos nmeros : ',Soma(10,20));
readln;
end.
Profa. Ana Benso Programao para Engenharia I 42
DVIDAS ???
DUVIDAS ???
Referncias
PAIVA, S. R. Algoritmos, Tcnicas de Programao e Estruturas de
Dados. Apostila da ASPER, 1995.

PINTO, Wilson Silva Introduo ao Desenvolvimento de Algoritmos e


Estruturas de Dados. rica, 1990.

TREMBLAY, Jean-Paul & BUNT, Richard B. Cincia dos computadores


Uma abordagem algortmica. Mcgraw-Hill, 1993.