Buscar

Aula03 Algoritmosp2

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 32 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 32 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 32 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Programação de Computadores
Algoritmos - Parte 2
Prof. Dr. Erivelton Geraldo Nepomuceno
Depto. Engenharia Elétrica
Sala 4.23 EL – Prédio do DEPEL
http://www.ufsj.edu.br/nepomuceno 
nepomuceno@ufsj.edu.br 
1/32
Estrutura seqüencial
● Em um algoritmo:
○ Há uma ordem para execução de comandos
○ Do primeiro ao último
○ De cima para baixo
● Paradigma da programação estruturada
● Há outros:
○ Programação orientada a objetos
○ Programação orientada a variáveis
○ Etc.
Algoritmo
 d1
 d2
 d3
 .
 .
 .
 dm
 c1
 c2
 c3
 .
 .
 .
 cn
fim algoritmo
2/32
Fixando 1
● Crie um algoritmo que leia dois valores 
numéricos A e B, calcule (A + B) x B e 
escreva o resultado na tela
3/32
Solução 1
Algoritmo
 declare A, B, C numérico
 leia A, B
 C ← (A + B) × B
 escreva A, B, C
fim algoritmo
4/32
Fixando 2
● Crie um algoritmo que leia os coeficientes 
a, b e c de uma equação de segundo grau 
com raízes reais, calcule as raízes e 
escreva o resultado na tela
5/32
Solução 2
Algoritmo
 declare A, B, C, DELTA, X1, X2 numérico
 leia A, B, C
 DELTA ← B2 – 4 × A × C
 X1 ← (- B + √DELTA) / (2 × A)
 X2 ← (- B - √DELTA ) / (2 × A)
 escreva X1, X2
fim algoritmo
6/32
Fixando 3
● Crie um algoritmo que leia os coeficientes 
a, b e c de uma equação de segundo grau 
qualquer, identifique se tem raízes reais e:
○ caso tenha raízes reais, calcule as raízes e 
escreva o resultado na tela 
○ caso não tenha, avise o usuário
7/32
Solução 3?
Algoritmo
 declare A, B, C, DELTA, X1, X2 numérico
 leia A, B, C
 DELTA ← B2 – 4 × A × C
 X1 = (- B + √DELTA) / (2 × A)
 X2 = (- B - √DELTA ) / (2 × A)
 escreva X1, X2
 escreva “Não tem raízes reais”
fim algoritmo
Como resolver essa questão? Como escolher o comando a ser 
executado de acordo com o sinal de DELTA?
É possível fazer desvios nesse “percurso”?
É possível controlar o fluxo de execução do algoritmo?
Estruturas de controle de fluxo!
8/32
Estrutura condicional
● Estrutura condicional simples
● Sintaxe PORTUGOL:
● Testa-se uma condição
○ Execução de comandos da estrutura: apenas se a condição for 
verdadeira
● Exemplo:
se condição
 então seqüência de comandos
fim se
Algoritmo
 declare A, B, C numérico
 leia A, B, C
 se A + B < C
 então escreva “MENSAGEM”
 fim se
fim algoritmo 9/32
Estrutura condicional
● Estrutura condicional composta
● Sintaxe PORTUGOL:
● Testa-se uma condição
○ Executa-se seqüência A caso a condição seja verdadeira
○ Executa-se seqüência B caso a condição seja falsa
se condição
 então seqüência A de comandos
 senão seqüência B de comandos
fim se
10/32
Exemplo
Algoritmo
 declare A, B, X, Y numérico
 leia A, B
 se A = B
 então X ← 1,5
 Y ← 2,5
 senão X ← -1,5
 Y ← 2,5
 fim se
 escreva X, Y
fim algoritmo
11/32
Exemplo: cálculo do módulo
Algoritmo
 declare X, Y numérico
 leia X
 se X >= 0
 então Y ← X
senão Y ← -X
 fim se
 escreva Y
fim algoritmo
Algoritmo
 declare X numérico
 leia X
 se X < 0
 então X ← -X
 fim se
 escreva X
fim algoritmo 12/32
Solução 3!
Algoritmo
 declare A, B, C, DELTA, X1, X2 numérico
 leia A, B, C
 DELTA ← B2 – 4 × A × C
 se DELTA >= 0
 então X1 ← (- B + √DELTA) / (2 × A)
 X2 ← (- B - √DELTA ) / (2 × A)
 escreva X1, X2
 senão escreva “Não existem raízes reais”
 fim se
fim algoritmo
13/32
Exercícios
● Leia três valores inteiros, determine e 
imprima o menor deles
● Dados três valores, verifique se podem ser 
os comprimentos dos lados de um triângulo 
e, se forem, determinem e qual é o seu tipo 
do triângulo (escaleno, isósceles ou 
eqüilátero)
14/32
Estrutura de repetição
● Seqüência de comandos é executada até 
que uma condição seja verdadeira
● Condição é uma expressão lógica
● Laço repita / interrompa
○ Interrupção em diversos pontos
15/32
Interrupção no início
repita
 se condição
 então interrompa
 fim se
 seqüência B de comandos
fim repita
SINTAXE PORTUGOL
Algoritmo
 declare PAR, SOMA numérico
 SOMA ← 0
 PAR ←100
 repita
 se PAR > 200
 então interrompa
 fim se
 SOMA ← SOMA + PAR
 PAR ← PAR + 2
 fim repita
 escreva SOMA
fim algoritmo
EXEMPLO
Soma números pares de 100 a 200
Reescreva o algoritmo de 
maneira que o usuário informe os 
valores inicial e final do 
somatório. Teste se o valor 
inicial informado é de fato par e, 
se não for, corrija-o
EXERCÍCIO
16/32
Exercício
Reescreva o algoritmo de 
maneira que o usuário informe os 
valores inicial e final do 
somatório. Teste se o valor 
inicial informado é de fato par.
MODIFICAÇÃO
Algoritmo
 declare PAR, SOMA, FIM numérico
 SOMA ← 0
 leia PAR, FIM
 se RESTO(PAR,2) ≠ 0
então PAR ← PAR - RESTO(PAR,2) 
 fim se
 repita
 se PAR > FIM
 então interrompa
 fim se
 SOMA ← SOMA + PAR
 PAR ← PAR + 2
 fim repita
 escreva SOMA
fim algoritmo
RESPOSTA
17/32
Interrupção no interior
repita
 seqüência A de comandos
 se condição
 então interrompa
 fim se
 seqüência B de comandos
fim repita
SINTAXE PORTUGOL
Algoritmo
 declare PAR, SOMA numérico
 SOMA ← 0
 PAR ←98
 repita
 PAR ← PAR + 2
 se PAR > 200
 então interrompa
 fim se
 SOMA ← SOMA + PAR
 fim repita
 escreva SOMA
fim algoritmo
EXEMPLO
Soma números pares de 100 a 200
18/32
Interrupção no fim
repita
 seqüência A de comandos
 se condição
 então interrompa
 fim se
fim repita
SINTAXE PORTUGOL
Algoritmo
 declare PAR, SOMA numérico
 SOMA ← 0
 PAR ←100
 repita
 SOMA ← SOMA + PAR
 PAR ← PAR + 2
 se PAR > 200
 então interrompa
 fim se
 fim repita
 escreva SOMA
fim algoritmo
EXEMPLO
Soma números pares de 100 a 200
19/32
Laço repita-até
● Seqüência de comandos é executada até 
que uma condição seja verdadeira
● Equivalente ao repita com interrupção no 
fim
● Estrutura condicional pode ser omitida
20/32
Laço repita-até
repita
 seqüência de comandos
até condição
SINTAXE PORTUGOL
Algoritmo
 declare PAR, SOMA numérico
 SOMA ← 0
 PAR ←100
 repita
 SOMA ← SOMA + PAR
 PAR ← PAR + 2
 até PAR > 200
 escreva SOMA
fim algoritmo
EXEMPLO
Soma números pares de 100 a 200
21/32
Laço enquanto-faça
● Seqüência de comandos é executada 
enquanto uma condição é / permanece 
verdadeira
● Semelhante ao repita com interrupção no 
início
● Estrutura condicional pode ser omitida
22/32
Laço enquanto-faça
enquanto condição faça
 seqüência de comandos
fim enquanto
SINTAXE PORTUGOL
Algoritmo
 declare PAR, SOMA numéricoSOMA ← 0
 PAR ←100
 enquanto PAR <= 200 faça
 SOMA ← SOMA + PAR
 PAR ← PAR + 2
 fim enquanto
 escreva SOMA
fim algoritmo
EXEMPLO
Soma números pares de 100 a 200
23/32
Variantes laço enquanto-faça
CONTROLADO POR CONTADOR
•Declarado e iniciado fora do laço
•Incrementado dentro do laço
Quando se sabe o número de vezes 
que o laço será repetido
CONTROLADO POR SENTINELA
•Identificador de fim deve ser 
exclusivo
Informação especial que identifica o 
fim do laço
24/32
Laço para-faça
● Laço é executado um número fixo de vezes
● A quantidade é controlada por uma variável 
contadora
● Semelhante ao laço enquanto-faça variante 
controlado por contador
● Inicialização e incremento do contador são 
omitidos 
25/32
Laço para-faça
SINTAXE PORTUGOL
Algoritmo
 declare FATORIAL, N, I numérico
 
 FATORIAL ← 1
 leia N
 para I = 1 até N faça
 FATORIAL ← FATORIAL × 
I
 fim para
 escreva FATORIAL 
fim algoritmo
EXEMPLO
Calcula o fatorial de N
para contador = valor1 até valor2 faça
 seqüência de comandos
fim para
26/32
Exercícios
● Calcule o fatorial de N usando o laço 
enquanto-faça
● Num frigorífico existem 90 bois. Cada boi 
traz preso em seu pescoço um cartão 
contendo seu número de identificação e 
seu peso. Faça um algortimo que escreva 
o número e o peso do boi mais gordo e do 
boi mais magro.
27/32
Resumo PORTUGOL
28/32
29/32
30/32
31/32
32/32

Continue navegando