A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Aula 10. Pontifícia Universidade Católica de Goiás PUC GOIÁS Departamento de Computação Informática e Computação Professor: MSc. Mário Oliveira Orsi Cesar.

Apresentações semelhantes


Apresentação em tema: "Aula 10. Pontifícia Universidade Católica de Goiás PUC GOIÁS Departamento de Computação Informática e Computação Professor: MSc. Mário Oliveira Orsi Cesar."— Transcrição da apresentação:

1 Aula 10

2 Pontifícia Universidade Católica de Goiás PUC GOIÁS Departamento de Computação Informática e Computação Professor: MSc. Mário Oliveira Orsi Cesar Augusto da Rocha Magalhães

3 CONTROLE DE FLUXO Aula 10 ESTRUTURA CONDICIONAL 4

4 Uso de um MENU de Opções para executar Instruções No desenvolvimento de um programa que precisa executar uma variedade de instruções dependendo de testes sucessivos (estrutura condicional aninhada) if (tipo == 1) { taxa = 10; } else { if (tipo == 2) { taxa = 8; } else { if (tipo == 3){ taxa = 6; } else { if (tipo == 4){ taxa = 4; } else { if (tipo == 5){ taxa = 2; } else { taxa = 0; } } } } } Podemos utilizar um comando (case-switch) em que: É oferecido um Menu de opções para executar as instruções de acordo com a ESCOLHA ou seja a opção selecionada. Exemplo: Em uma financeira para cada tipo(1 a 5) de empréstimo: tem que ser aplicado uma taxa diferenciada switch (tipo){ case 1: taxa = 10; break; case 2: taxa = 8; break; case 3: taxa = 6; break; case 4: taxa = 4; break; case 5: taxa = 2; break; default: taxa = 0.0; }

5 COMANDO CASE - SWITCH switch(escolha) { case 'a': sentenças de instruções para a opção a ; break; case 'b': sentenças de instruções para a opção b ; break; case 'c': sentenças de instruções para a opção c ; break; default: sentenças de instruções para entrada errada ; break; } escolha (opção do menu) deve ser do TIPO int ou char (apenas um caracter)

6 COMANDO CASE - SWITCH switch(Escolha) { case 1: sentenças de instruções para a opção a ; break; case 2: sentenças de instruções para a opção b ; break; case 3: sentenças de instruções para a opção c ; break; default: sentenças de instruções para entrada errada ; break; } Escolha (opção do menu) deve ser do TIPO int ou char (apenas um caracter)

7 Exercício para ser feito em sala Um estacionamento de veiculos cobra por hora (inteira): R$ 2,00 no período matutino (M) R$ 3,00 no período vespertino (V) R$ 1,00 no período noturno (N) Escrever um programa para ler o total de horas de estacionamento e o período, calcular o total a pagar e mostrar o total de horas, o preço da hora, e o total a pagar solução: Menu Periodo M – matutino Periodo V – vespertino Periodo N – noturno //Se a opção do menu (período) escolhida foi: case‘M’ – mostro o total de horas, o preço da hora, e o total a pagar do per. Mat. case ‘V’ – mostro o total de horas, o preço da hora, e o total a pagar do per. Vesp. case ‘N’ – mostro o total de horas, o preço da hora, e o total a pagar do per. Not. defaut: - mostro mensagem de opção inválida (periodo inválido) switch (periodo)

8 Observações Variáveis a serem Declaradas Para o menu As opções CHAR – opcoes Para o tempo de Estacionamento Para o Preço da Hora e Para o preço Total Float – horas, preco, total #include setlocale(LC_ALL,"") – para acentuação cout<<fixed - para usar setprecision setprecision(x) – para definir o numero de casas decimais opcao=toupper(opcao) - deixa a letra maiúscula

9 Um estacionamento de veiculos cobra por hora (inteira): R$ 2,00 no período matutino (M) R$ 3,00 no período vespertino (V) R$ 1,00 no período noturno (N) Escrever um programa para ler o total de horas de estacionamento e o período, calcular o total a pagar e mostrar o total de horas, o preço da hora, e o total a pagar //Se a opção do menu (período) escolhida foi: case‘M’ – mostro o total de horas, o preço da hora, e o total a pagar do per. Mat. case ‘V’ – mostro o total de horas, o preço da hora, e o total a pagar do per. Vesp. case ‘N’ – mostro o total de horas, o preço da hora, e o total a pagar do per. Not. defaut: - mostro mensagem de opção inválida (periodo inválido) solução: Menu Periodo M – matutino Periodo V – vespertino Periodo N – noturno switch (periodo)

10 #include using namespace std; main() { setlocale(LC_ALL,""); char opcao; float horas,preco,total; cout<<fixed;//para usar setprecision cout<<"\n\nCobrança de Estacionamento"; cout<<"\n\nDigite M – Periodo matutino"; cout<<"\nDigite V – Periodo vespertino"; cout<<"\nDigite N – Periodo noturno"; cout<<"\n\nDigite sua Opção : "; cin>>opcao; opcao=toupper(opcao); // deixa a letra maiúscula system ("cls");

11 switch (opcao) { case 'M' : preco=2.00; break; case 'V' : preco=3.00; break; case 'N' : preco=1.00; break; default : preco=0.00; } if(preco==0) { cout<<"\n\nVoce usou a opção : "<<opcao; cout<<"\nOpção Inválida\n\n"; } else { cout<<"\n\nDigite o tempo de estacionamento em horas : "; cin>>horas; total=horas*preco; cout<<"\n\nTotal de horas estacionado : "<<setprecision(0)<<horas; cout<<"\n\nPreço por hora :"<<setprecision(2)<<preco; cout<<"\n\nTotal a pagar : "<<setprecision(2)<<total<<"\n\n"; } system("PAUSE"); }

12 Escrever um programa que leia 3 notas dos alunos e o tipo de média (aritmética, ponderada ou harmônica. Calcule e mostre o resultado. #include using namespace std; main() { setlocale(LC_ALL,""); cout<<fixed;//para usar setprecision string tipo_media; float n1, n2, n3, media; int opcao; Para que a saída seja apresentada com duas casas decimais  Incluir biblioteca iomanip Definir as variáveis Ler as notas N1 N2 N3 e a OPÇÃO (1) Arit. (2) Pond. ou (3) Harm. Caso a resposta for: calcular e mostrar (1) MEDIA ARITMÉTICA = (N1+N2+N3)/3 (2) MEDIA PONDERADA= (N1*1+N2*2+N3*3)/6 (3) MEDIA HARMÔNICA = 3 / (1/N1+1/N2+1/N3) Implementar o Programa a seguir:

13 cout<<"\n\nCálculo das Médias"; cout<<"\n\nDigite 1 – Para média Aritmética"; cout<<"\nDigite 2 – Para média Ponderada"; cout<<"\nDigite 3 – Para média Harmônica"; cout<<"\n\nDigite sua Opção : "; cin>>opcao; system("cls"); if((opcao==1) || (opcao==2) || (opcao==3)) { cout<<"\n\nDigite a Primeira Nota : "; cin>>n1; cout<<"\n\nDigite a Segunda Nota : "; cin>>n2; cout<<"\n\nDigite a Terceira Nota : "; cin>>n3; } system ("cls");

14 switch (opcao) { case 1: media = (n1+n2+n3)/3; tipo_media="Média Aritmética"; break; case 2: media = (n1+n2*2+n3*3)/6; tipo_media="Média Ponderada"; break; case 3: if ((n1==0) || (n2==0) || (n3==0)) { tipo_media="Zero"; break; } else { media = 3/(1/n1+1/n2+1/n3); tipo_media="Média Harmônica"; break; } default: tipo_media="invalida"; }

15 if (tipo_media=="Zero") { cout<<"\n\nVOCE NAO PODE DIVIDIR POR ZERO."; cout<<"\ n\nNão é possivel calcular a média Harmônica\n\n "; } else if(tipo_media=="invalida") { cout<<"\n\nOpção Inválida"; cout<<"\n\nA opção solicitada foi : "<<opcao<<"\n\n"; } else { cout<<"\n\n"<<tipo_media; cout<<"\n\nMédia : "<<setprecision(2)<<media<<"\n\n"; } system("pause"); }


Carregar ppt "Aula 10. Pontifícia Universidade Católica de Goiás PUC GOIÁS Departamento de Computação Informática e Computação Professor: MSc. Mário Oliveira Orsi Cesar."

Apresentações semelhantes


Anúncios Google