Informática e Computação Estrutura de Repetição aula 12 Réplica do Calculador Diferencial...

Post on 22-Apr-2015

112 views 2 download

Transcript of Informática e Computação Estrutura de Repetição aula 12 Réplica do Calculador Diferencial...

Informática e Computação

Estrutura de Repetiçãoaula 12

Réplica do Calculador Diferencial criado por Charles Babbage –Wikipédia

Informática e ComputaçãoEstrutura de Repetição

ESTUDO DE CASOS

Programação de Computadores Estrutura de Repetição

“SOLUÇÃO EXERCÍCIO DA AULA ANTERIOR”

Desenvolver um programa que lê a senha (letras e/ou números) e valida a mesma.

#include <iostream>#include<string>using namespace std;main(){ string senha; do { cout << "Digite um senha: "; cin>>senha; } while(senha!="MARIO");

cout<<"Acertou a senha: "<<senha<<endl; system("PAUSE");} validacao_senha.exe

Desenvolver um programa que lê a senha (letras e/ou

números) e valida a mesma.

#include <iostream>#include<string>using namespace std;main(){ string senha; cout << "Digite uma senha: "; cin>>senha; while(senha!="senha") { if(senha!="senha") { system("cls"); cout<<"\n\nVoce errou tente novamente, digitou : "<<senha<<“\n”; cout << "\n\nDigite uma senha: "; cin>>senha; } } system("cls"); cout<<"\n\nAcertou a senha: "<<senha<<"\n\n"; system("pause");} validacao_senha.exe

Versão

02

Estruturas de Repetição

while do - while for

Uma estrutura de repetição tem 4 componentes:

Informática e Computação

Estrutura de Repetição

int numero = 1;

while (numero <= 10) {

cout << numero;

numero = numero + 1;}

1. Inicialização

2.Condição

3.Sentenças

4.Atualização

Informática e ComputaçãoEstrutura de Repetição

for

início;for (inicialização; teste; atualização)

{comando 1;comando 2;...}

fim;

Sin

taxe

:

comandos

teste0

inicialização

atualização

fim

início

1

• Executa sentenças (comandos) enquanto a condição (expressão ou teste) for verdadeira.

• faz a inicialização o teste e atualização num único comando

Informática e Computação Estrutura de Repetição

Exemplo1 for

int numero;for (numero=1 ; numero<=10; numero++)

{cout << numero<<"\t";}

inicio:

MOSTRAR NA TELA OS NUMEROS DE 1 ATÉ 10

início;for (inicialização; teste; atualização)

{comando 1;comando 2;...} fim;

numero=1 numero<=10 numero++

EXECUÇÃO

Informática e Computação Estrutura de Repetição

Exemplo1 for

int numero;for (numero=1 ; numero<=10; numero++)

{cout << numero<< "\t";}

inicio:

Resultado na tela:

1 2 3 4 5 6 8 9 107

MOSTRAR NA TELA OS NUMEROS DE 1 ATÉ 10

numero=1 numero<=10 numero++

numero

EXECUÇÃO

comandos

testeF

inicialização

atualização

fim

início

V

inicialização

Teste V ou F incrementaVentra

F sai

1234567891011

Programação de Computadores Estrutura de Repetição

Desenvolver um programa que tabula a temperatura em Graus Farenheit para Graus Celsius.

C = 5/9*(F-32)

FVaria de 50 a 150 de 10 em 10oF oC

o50 ?

o60 ?

o150 ?

#include <iostream>#include <iomanip>using namespace std;main(){float C;cout<<setiosflags(ios::fixed) // ponto decimal

<<setiosflags(ios::showpoint) //sempre imprimir o ponto decimal

<<setprecision(2); // imprimir com 2 casas decimais

for (int F=50; F<=150;F+=10) { C = 5.0/9*(F-32); cout<<"\t"<<F<<"\t\t "<<C<<"\n\n"; }system("PAUSE");} temperatura1.exe

Desenvolver um programa que tabula a temperatura em Graus Farenheit para Graus Cesius.

C = 5/9*(F-32)

Varia de 50 a 150 de 10 em 10

Estruturas de Repetição

while do - while for

Informática e Computação Estrutura de Repetição

CASOS DE USOS

while (expressão) { ... }– Não há variável contadora– Inicialização, teste ou atualização complexos– Informações da condição obtidas na execução

do { ... } while (expressão);– Executar um bloco pelo menos uma vez– Só é possível avaliar a condição depois de executar– Informações da condição obtidas após execução

Informática e Computação Estrutura de Repetição

CASOS DE USOS

for (inicialização; teste; reinicialização) { ... }

– Há variável contadora de repetições– Inicialização, teste e atualização simples– Separa claramente as instruções de controledas instruções do bloco

Por que usar o for ?

Cabeçalho agrupa:– Inicialização– Condição– Atualização

Separa:– Controle (lógica) de repetição– Código a ser repetido

Informática e Computação Estrutura de Repetição

Programador não“esquece”

nenhuma etapa

Códigoorganizado

Programação de Computadores Estrutura de Repetição

Desenvolver um programa que lê as notas de várias pessoas e determina a maior nota.

Quantidade de pessoas (notas) ?

Usar qual estrutura de repetição ?

Determinação da maior nota ? Ler a 1a nota e armazenar como sendo a maiorLer a 2a nota e se ela for maior, substitui a maior anterior e assim por diante.

Quando parar de entrar com as notas?Usamos um flag (bandeira) ex.: Nota negativa

Variáveis:• Nota• MaiorNota

= -1

MaiorNota = Nota

#include <iostream> // PROCESSA MAIOR NOTAusing namespace std;main(){float NOTA, MAIORNOTA; //estruturas de dados MAIORNOTA = -1; //leia e processe os dados de entrada ( primeira nota e quando parar de ler ) cout<< "(Para finalizar informe uma nota negativa) "<<endl; cout<< "Informe uma nota: "<<endl; cin>>NOTA;while ( NOTA >= 0 ) // repetir enquanto nota por positiva{

if (NOTA > MAIORNOTA)MAIORNOTA = NOTA;

cout<< "Informe outra nota: "; cin>>NOTA;}//exiba os resultados de saídacout<< "A maior nota encontrada foi: "<< MAIORNOTA<<endl;system("PAUSE");} maiornota.exe

Variáveis:• Nota• MaiorNota

Determinação da maior nota ? Ler a 1a nota e armazenar como sendo a maior. Ler a 2a nota e se ela for maior, substitui a maior anterior e assim por diante. Até ler uma nota = -1

//inicialize a maior para que a primeira Nota seja maior

Informática e Computação Estrutura de Repetição

Desafio

Desenvolver um programa que lê as notas de várias pessoas e determina a maior nota bem como

a quantidade de pessoas que tiraram essa nota.

Validar as notas devem ser entre 0 (zero) e 10 (dez)

#include <iostream> // PROCESSA MAIOR NOTAusing namespace std;main(){float NOTA, MAIORNOTA; //estruturas de dados MAIORNOTA = -1; //leia e processe os dados de entrada ( primeira nota e quando parar de ler ) cout<< "(Para finalizar informe uma nota negativa) "<<endl; cout<< "Informe uma nota: "<<endl; cin>>NOTA;while ( NOTA >= 0 ) // repetir enquanto nota por positiva{

if (NOTA > MAIORNOTA)MAIORNOTA = NOTA;

cout<< "Informe outra nota: "; cin>>NOTA;}//exiba os resultados de saídacout<< "A maior nota encontrada foi: "<< MAIORNOTA<<endl;system("PAUSE");} maiornota.exe

Variáveis:• Nota• MaiorNota

//inicialize a maior para que a primeira Nota seja maior

Desafio

Desenvolver um programa que lê as notas de várias pessoas e determina a maior

nota bem como a quantidade de pessoas que tiraram essa nota.

Validar as notas devem ser entre 0 (zero) e 10 (dez)

#include <iostream>using namespace std;main(){ setlocale(LC_ALL,""); float Nota, Maior_Nota=-1; int Quantidade=1; cout<< "\n\nPara finalizar informe uma nota negativa\n\n"; cout<< "Informe uma nota: "; cin>>Nota;

while ( Nota >= 0 ) // repetir enquanto nota por positiva { if (Nota > 10) { cout<<"\nVocê Digitou : "<<Nota<<" Valor Inválido\n"; system("pause"); } else { if (Nota >= Maior_Nota) { if(Maior_Nota==Nota) Quantidade=Quantidade+1; else { Maior_Nota = Nota; Quantidade=1; } } } system("cls"); cout<< "\n\nPara finalizar informe uma nota negativa\n\n"; cout<< "Informe outra nota: "; cin>>Nota; }

cout<< "\n\nA maior nota encontrada foi: "<< Maior_Nota<<"\n\n"; cout<< "A quantidade de Pessoas foi : "<<Quantidade<<"\n\n"; system("pause");}

#include <iostream>using namespace std;main(){ setlocale(LC_ALL,""); float Nota, Maior_Nota=-1; int Quantidade=1; cout<< "\n\nPara finalizar informe uma nota negativa\n\n"; cout<< "Informe uma nota: "; cin>>Nota; while ( Nota >= 0 ) // repetir enquanto nota por positiva { if (Nota > 10) { cout<<"\nVocê Digitou : "<<Nota<<" Valor Inválido\n"; system("pause"); } else { if (Nota >= Maior_Nota) { if(Maior_Nota==Nota) Quantidade=Quantidade+1; else { Maior_Nota = Nota; Quantidade=1; } } } system("cls"); cout<< "\n\nPara finalizar informe uma nota negativa\n\n"; cout<< "Informe outra nota: "; cin>>Nota; } cout<< "\n\nA maior nota encontrada foi: "<< Maior_Nota<<"\n\n"; cout<< "A quantidade de Pessoas foi : "<<Quantidade<<"\n\n"; system("pause");}