1 / 15

Aula 10

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.

glenda
Download Presentation

Aula 10

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Aula 10

  2. 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

  3. CONTROLE DE FLUXO Aula 10 ESTRUTURA CONDICIONAL 4

  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

  5. 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; }

  6. 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; }

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

  8. 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

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

  10. #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");

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

  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"); }

More Related