Buscar

Algoritmos - aula 08

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 22 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 22 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 22 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

Algoritmos
Mairum Ceoldo 
Andrade
Aula 8
Conteúdo
• Comando de repetição com teste lógico no 
início – ENQUANTO
• Comando de repetição com teste lógico no 
fim – FAÇA ... ENQUANTO
• Quando utilizar cada estrutura de repetição.
2
Comando - ENQUANTO
• Estrutura usada quando o número de repetições 
for desconhecido. 
• Controla a repetição com um teste(condição) no 
início.
• Ideal para trechos de proteção na entrada de 
dados.
• O usuário decide quando interrompe a repetição.
3
Comando ENQUANTO
UAL
4
enquanto( <condição> )
{
bloco de comandos
}
<condição>
variável operador valor
• Estrutura relacional ou condição que será 
utilizada como validação para execução do 
bloco de comandos.
• Pode ser uma única expressão simples ou 
um conjunto de expressões relacionais e 
lógicas, como as utilizadas nos comandos 
condicionais, vistas anteriormente.
• Exemplos: i >= 10; i>strtam(nome); i <= x+10 
Comando ENQUANTO
C++
5
while ( <condição> )
{
bloco de comandos
}
<condição>
variável operador valor
• Estrutura relacional ou condição que 
será utilizada como validação para 
execução do bloco de comandos.
• Pode ser uma única expressão simples 
ou um conjunto de expressões relacionais e 
lógicas, como as utilizadas nos comandos 
condicionais, vistas anteriormente.
• Exemplos: i >= 10; i>strlen(nome); i <= x+10 
Comando ENQUANTO
Fluxograma
6
BLOCO DE 
COMANDOS
V
F
TESTE
Digite 
numero>0 
NUM
Num * 2
fim
Início
F
V
Digite 
numero>0 
NUM
Num > 0 ?
Contagem de números 
positivos e negativos
7
UAL C++
prog exemplo
int numero, pos, neg; 
numero <- 1;
pos <- 0;
neg <- 0;
enquanto(numero <> 0) {
imprima “\n Escreva o número: “;
leia numero;
se (numero > 0) {
pos<- pos +1;
} senão {
se (numero < 0) {
neg<- neg +1;
}
}
}
imprima “\nTotal de números positivo: “, pos;
imprima ”\nTotal de números negativos”, neg;
fimprog
#include <iostream>
using namespace std;
int main() {
int numero = 1;
int pos, neg;
pos = neg = 0;
while(cont != 0) {
cout<<”\nEscreva o número”;
cin>>numero;
if( (numero > 0)
pos++;
else {
if( (numero < 0)
neg++;
}
}
cout<<”\nTotal de números positos: ”<<pos;
cout<<”\nTotal de números negativos: ”<<neg;
} 
Comando – FAÇA...ENQUANTO
• Estrutura usada quando o número de repetições 
for desconhecido. 
• Controla a repetição com um teste(condição) ao 
final.
• Ideal para programas que funcionam através de 
um menu.
• O usuário decide quando interrompe a repetição.
8
Comando FAÇA...ENQUANTO
UAL
9
faça
{
bloco de comandos
}
enquanto( <condição> )
<condição>
variável operador valor
• Estrutura relacional ou condição que 
será utilizada como validação para execução do 
bloco de comandos novamente.
• Pode ser uma única expressão simples ou um 
conjunto de expressões relacionais e lógicas, 
como as utilizadas nos comandos condicionais, 
vistas anteriormente.
• Exemplos: i >= 10; i>strtam(nome); i <= x+10 
Comando FAÇA...ENQUANTO
C++
10
do
{
bloco de comandos
}
while( <condição> )
<condição>
variável operador valor
• Estrutura relacional ou condição que 
será utilizada como validação para 
execução do bloco de comandos.
• Pode ser uma única expressão simples ou um 
conjunto de expressões relacionais e lógicas, 
como as utilizadas nos comandos condicionais, 
vistas anteriormente.
• Exemplos: i >= 10; i>strlen(nome); i <= x+10 
Comando FAÇA...ENQUANTO
Fluxograma
11
BLOCO DE 
COMANDOS
V
F
TESTE
Digite 
numero>0 
NUM
Num * 2
fim
Início
F
V
Num > 0 ?
Contagem de números 
positivos e negativos
12
UAL C++
prog exemplo
int total; 
real nota, soma, maior, menor, media;
string resposta;
soma <- 0.0;
total <- 0;
faca {
total <- total +1;
imprima “\nNota “, total, “: “;
leia nota;
soma <- soma + nota;
se (total == 1) {
maior <- nota;
menor <- nota;
} senao {
se (nota > maior) {
maior <- nota;
}
se (nota < menor) {
menor <- nota;
}
}
imprima “Deseja continuar [s] ou [n]? ”;
leia resposta;
} enquanto(resposta==“s“ || resposta==”S”)
media <- soma / total;
escreva “\nMédia das notas: “, media;
escreva ”\nMaior nota..........: ”, maior;
escreva ”\nMenor nota.........: ”, menor;
fimprog
#include <iostream>
using namespace std;
int main()
{
int total;
float nota, soma, maior, menor, media;
char resposta;
soma = 0;
total = 0;
do{
total++;
cout<<”\nNota ”<<total<<”: ”;
cin>>nota;
if( (total == 1) {
maior = nota;
menor = nota;
} else {
if (nota > maior)
maior = nota;
if (nota < menor)
menor = nota;
}
cout“\nDeseja continuar [s] ou [n]? ”;
cin>>resposta;
} while(resposta==‘n’ || resposta==’N’);
media = soma / total;
cout << “\nMédia das notas: “ << media;
cout << ”\nMaior nota..........: ” << maior;
cout << ”\nMenor nota.........: << menor;
} 
prog exemplo
int total; 
real nota, soma, maior, menor, media;
string resposta;
soma <- 0.0;
total <- 0;
faca {
total <- total +1;
imprima “\nNota “, total, “: “;
leia nota;
soma <- soma + nota;
se (total == 1) {
maior <- nota;
menor <- nota;
} senao {
se (nota > maior) {
maior <- nota;
}
se (nota < menor) {
menor <- nota;
}
}
imprima “Deseja continuar [s] ou [n]? ”;
leia resposta;
} enquanto(resposta==“s“ || resposta==”S”)
media <- soma / total;
escreva “\nMédia das notas: “, media;
escreva ”\nMaior nota..........: ”, maior;
escreva ”\nMenor nota.........: ”, menor;
fimprog 
#include <iostream>
using namespace std;
int main()
{
int total;
float nota, soma, maior, menor, media;
char resposta;
soma = 0;
total = 0;
do{
total++;
cout<<”\nNota ”<<total<<”: ”;
cin>>nota;
if( (total == 1) {
maior = nota;
menor = nota;
} else {
if (nota > maior)
maior = nota;
if (nota < menor)
menor = nota;
}
cout“\nDeseja continuar [s] ou [n]? ”;
cin>>resposta;
} while(resposta==‘n’ || resposta==’N’);
media = soma / total;
cout << “\nMédia das notas: “ << media;
cout << ”\nMaior nota..........: ” << maior;
cout << ”\nMenor nota.........: << menor;
} 
Comando simulando comando
13
#include <iostream>
using namespace std;
int main()
{
int valor;
for(;;)
{
cout <<“\nValor: “;
cin >> valor;
if(valor <= 0) 
break;
cout << valor*valor 
<<“\n”;
}
system(“pause”);
} 
Comando simulando comando
14
#include <iostream>
using namespace std;
int main()
{
int valor;
for(;;)
{
cout <<“\nValor: “;
cin >> valor;
cout << valor*valor 
<<“\n”;
if(valor <= 0) 
break;
}
system(“pause”);
} 
Comando simulando comando
15
#include <iostream>
using namespace std;
int main()
{
int valor, i;
i = 0;
while(i <= 3)
{
cout <<“\nValor: “;
cin >> valor;
cout << valor*valor <<“\n”;
i++;
}
system(“pause”);
} 
Comando simulando comando
16
#include <iostream>
using namespace std;
int main()
{
int valor = 1;
while(valor > 0)
{
cout <<“\nValor: “;
cin >> valor;
cout << valor*valor <<“\n”;
if(valor <= 0)
break;
}
system(“pause”);
} 
Comando simulando comando
17
#include <iostream>
using namespace std;
int main()
{
int valor, i;
i = 1;
do {
cout <<“\nValor: “;
cin >> valor;
cout << valor*valor <<“\n”;
i++;
}
while(i <= 3);
system(“pause”);
} 
Comando simulando comando
18
#include <iostream>
using namespace std;
int main(){
int valor;
do {
cout <<“\nValor: “;
cin >> valor;
if(valor <= 0)
break;
cout << valor*valor <<“\n”;
}
while(valor > 0);
system(“pause”);
} 
Quando usar cada um?
PARA
Número de repetições conhecido
ENQUANTO
Número de repetições desconhecido
FAÇA...ENQUANTO
Número de repetições desconhecido
Executo primeiro e testo depois
19
Algoritmos
Mairum Ceoldo 
Andrade
Atividade 8
21
1) Qual(is) a(s) desvantagem(ens) em se usar a 
estrutura while para simular a estrutura
do…while?
R: Forçar a entrada e fazer dois testes.
R: while – Início do...while - Final
2) Identifique, nas estruturas abaixo, qual testa no 
início e qual testa ao final.
a) while
b) do...while
22
R: O programa entrou em loop.
3) Foi feito um programa, cuja finalidade era só 
permitir entrar com números de três algarismos. 
A seguinte linha enquanto(x>=100 && x<=999) foi 
colocada logo depois da entrada de dados. Sabe-
se que foi digitado o número 53.O que aconteceu?
...
leia x;
equanto(x>=1 && 
x<=100)
{
...
}
...

Outros materiais