150 likes | 255 Views
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 Augusto da Rocha Magalhães. CONTROLE DE FLUXO Aula 10 ESTRUTURA CONDICIONAL 4.
E N D
Pontifícia Universidade Católica de Goiás PUC GOIÁSDepartamento de ComputaçãoInformática e Computação Professor: MSc. Mário Oliveira Orsi Cesar Augusto da Rocha Magalhães
CONTROLE DE FLUXO Aula 10 ESTRUTURA CONDICIONAL 4
Uso de um MENU de Opções para executar Instruções 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; } } } } } 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; } 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. No desenvolvimento de um programa que precisa executar uma variedade de instruções dependendo de testes sucessivos (estrutura condicional aninhada) Exemplo: Em uma financeira para cada tipo(1 a 5) de empréstimo: tem que ser aplicado uma taxa diferenciada
COMANDO CASE - SWITCH escolha (opção do menu) deve ser do TIPO int ou char (apenas um caracter) 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; }
COMANDO CASE - SWITCH Escolha (opção do menu) deve ser do TIPO int ou char(apenas um caracter) 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; }
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 switch (periodo) //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 (periodoinválido)
ObservaçõesVariáveis a serem DeclaradasPara o menuAs opçõesCHAR – opcoesPara o tempo de EstacionamentoPara o Preço da HoraePara o preço TotalFloat – horas, preco, total #include <iomanip> setlocale(LC_ALL,"") – para acentuaçãocout<<fixed - para usar setprecisionsetprecision(x) – para definir o numero de casas decimaisopcao=toupper(opcao) - deixa a letra maiúscula
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 ObservaçõesVariáveis a serem DeclaradasPara o menuAs opçõesCHAR – opcoesPara o tempo de EstacionamentoPara o Preço da HoraePara o preço TotalFloat – horas, preco, total #include <iomanip> setlocale(LC_ALL,"") – para acentuaçãocout<<fixed - para usar setprecisionsetprecision(x) – para definir o numero de casas decimaisopcao=toupper(opcao) - deixa a letra maiúscula //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) solução: Menu Periodo M – matutino Periodo V – vespertino Periodo N – noturno
#include <iostream > #include <iomanip> usingnamespacestd; main() { setlocale(LC_ALL,""); charopcao; 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");
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"); }
Implementar o Programa a seguir: 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 <iostream > #include <iomanip> usingnamespacestd; main() { setlocale(LC_ALL,""); cout<<fixed;//para usar setprecision string tipo_media; float n1, n2, n3, media; intopcao; 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) Para que a saída seja apresentada com duas casas decimais Incluir biblioteca iomanip
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");
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"; }
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"); }