Baixe o app para aproveitar ainda mais
Prévia do material em texto
Comandos Comandos d d ld d lcondicionais e de seleçãocondicionais e de seleção Condicional • seleção simples • seleção dupla • seleção múltipla 1 Comando condicional simplesComando condicional simples if ( expressão lógica ) C Linguagem algorítmica if ( expressão lógica ) { comando1; d se < expressão lógica > < comandoS >comandon; } < comandoS > < expressão lógica > verdadeira expressão lógica falsa < comando1 > + de 1 < comando2 > comando 2 Comando de seleção duplaComando de seleção dupla se < expressão lógica >if (expressão lógica) Linguagem algorítmicaC p g < comando > senão < comando > ( p g ) comando; else comando; < expressão lógica > verdadeirafalsa < comando1 >< comando1 > + de 1 < comando2 >< comando2 > comando 3 Constantes Sintaxe: Constantes Sintaxe #define < identificador em maiúsculas> <valor inicial> V l l i id tifi d d d d d Valores ou locais identificados onde os dados armazenados nunca se alteram durante a execução de um programa. C j id tifi d ( d ) d d l d Caso sejam identificadas (nomeadas), devem ser declaradas antes de serem usadas, com a especificação do conteúdo válido seguindo a referência às bibliotecas utilizadasválido, seguindo a referência às bibliotecas utilizadas. Identificadores de constantes devem utilizar apenas p letras maiúsculas! E #d fi PI 3 1416 // l d i lEx: #define PI 3.1416 // valor do pi, real #define INT5 5 // valor 5, inteiro 4 Seja o problema:j p Imprimir uma mensagem de acordo com um p g código recebido: 1 Mensagem 11 - Mensagem 1 2 - Mensagem 2 3 - Mensagem 3 4 - Mensagem 44 Mensagem 4 Para qualquer valor diferente de 1, 2, 3 ou 4 d t d 4, deve ser apresentada a mensagem “Mensagem de erro”. 5 Soluções: If e If elseç /* Imprime uma mensagem, de acordo com um código lido - solução usando If simples */ /* Imprime uma mensagem, de acordo com um código lido – solução usando if – else */ #include <stdio h>p #include <stdio.h> #include <stdlib.h> int main ( ) { #include <stdio.h> #include <stdlib.h> int main ( ) { int cod;{ int cod; printf("\nCodigo (1 a 4): "); scanf ("%d", &cod); if (cod == 1) int cod; printf("\nCodigo (1 a 4): "); scanf ("%d", &cod); if (cod == 1) printf ("\nMensagem 1\n");if (cod == 1) printf ("\nMensagem 1\n"); if (cod == 2) printf ("\nMensagem 2\n"); p ( g ) else if (cod == 2) printf ("\nMensagem 2\n"); else f ( d 3) p g if (cod == 3) printf ("\nMensagem 3\n"); if (cod == 4) printf ("\nMensagem 4\n"); if (cod == 3) printf ("\nMensagem 3\n"); else if (cod == 4) i tf ("\ M 4\ ")printf ( \nMensagem 4\n );if (cod < 1 || cod > 4) printf ("\nMensagem de erro\n"); system("Pause"); return 0; printf ("\nMensagem 4\n"); else // sobrou erro! printf ("\nMensagem de erro\n"); system("Pause"); return 0; 6 return 0; } return 0; } Comando de Seleção múltiplaComando de Seleção múltipla < expressão > Expressão = x1 Expressão = x2 Expressão = xn Expressão = x2 < comando n>< comando 1 > < comando 2 > 7 Comando de seleção múltiplap funcionamento NN N N Cod = 3Cod = 2 Cod = 4 SS S Cod = 1 S Mensagem 4 S Mensagem 2 S Mensagem 3 S ErroMensagem 1 S Mensagem 4Mensagem 2 Mensagem 3 ErroMensagem 1 Testes feitos em ordemTestes feitos em ordem 8 Comando de seleção múltipla seletor ç p C Linguagem algorítmica switch (expressão) { escolha ( expressão) opção < conteúdo 1 > : case constante1 : instruções1 ; case constante2 : < comando >; opção < conteúdo 2 > : d constante2 instruções2 ; ... case constante : < comando >; ... opção < conteúdo n > :case constanten : instruçõesn ; [default: i t õ ] opção < conteúdo n > : < comando >; [ por faltainstruções; ] } [ p < comandos > ] fim escolha 9 Comando de seleção múltiplaComando de seleção múltipla • Expressão: int, long ou char. seletorC switch (expressão) { • Constantes: literais, do mesmo tipo da expressão. case constante1 : instruções1 ; case constante2 : p p • Valor da expressão comparado a conteúdos (na sequência em queconstante2 instruções2 ; ... case constante : conteúdos (na sequência em que estão). • Se expressão = conteúdo (semprecase constanten : instruçõesn ; [default: i t õ ] • Se expressão = conteúdo (sempre constante literal), comando associado é executado até que instruções; ] } q break seja encontrado. • Se nenhum conteúdo for igual,Se nenhum conteúdo for igual, comandos associado a default (opcional!) são executados.10 Solução: switch/case Solução: switch/case -- Executa todas as instruções após a condição Executa todas as instruções após a condição //Prog. incorreto, apresenta mais de uma mensagem por codigo #include <stdio h> pp de sucessode sucesso #include <stdio.h> #include <stdlib.h> int main ( ) { Expressão { int cod ; printf("\nCodigo (1 a 4): "); scanf ("%d" &cod);scanf ( %d , &cod); switch (cod) { case 1: printf ("\nMensagem 1\n"); Lista de constantes case printf ( \nMensagem \n ); case 2: printf ("\nMensagem 2\n"); case 3: printf ("\nMensagem 3\n"); case 4: printf ("\nMensagem 4\n");p ( g ) default: printf ("\nMensagem de erro\n"); } system("Pause"); return 0; } 11 Solução: switch/case Solução: switch/case -- Executa todas as instruções após a condição Executa todas as instruções após a condição //Prog. incorreto, apresenta mais de uma mensagem por codigo #include <stdio h> pp de sucessode sucesso Comando break:#include <stdio.h> #include <stdlib.h> int main ( ) { Comando break: • Uso limitado ao switch (programação estruturada!); { int cod ; printf("\nCodigo (1 a 4): "); scanf ("%d" &cod); • Interrompe a execução interna do switch, transferindo e execução para o próximo comando do programa.scanf ( %d , &cod); switch (cod) { case 1: printf ("\nMensagem 1\n"); • Sintaxe: break; . case printf ( \nMensagem \n ); case 2: printf ("\nMensagem 2\n"); case 3: printf ("\nMensagem 3\n"); case 4: printf ("\nMensagem 4\n");p ( g ) default: printf ("\nMensagem de erro\n"); } system("Pause"); return 0; } 12 Solução: switch/case Solução: switch/case -- Executa todas as instruções após a condição Executa todas as instruções após a condição //Prog. incorreto, apresenta mais de uma mensagem por codigo #include <stdio h> pp de sucessode sucesso #include <stdio.h> #include <stdlib.h> int main ( ) {{ int cod ; printf("\nCodigo (1 a 4): "); scanf ("%d" &cod);scanf ( %d , &cod); switch (cod) { case 1: printf ("\nMensagem 1\n");break;p f ( \ g m \ ); ; case 2: printf ("\nMensagem 2\n");break; case 3: printf ("\nMensagem 3\n");break; case 4: printf ("\nMensagem 4\n");break;p ( g ) default: printf ("\nMensagem de erro\n"); } system("Pause"); Usado somente com switch! system( Pause ); return 0; } 13 Uso de seleção condicionalç 9Condicional Simples : if9Condicional Simples : if ¾ execução de comando (simples ou composto) depende de 1 condição: pode ou não ser executado. 9Seleção Dupla : if-else ¾ 2 comandos (simples o composto) c ja e ec ção é¾ 2 comandos (simples ou composto), cuja execução é mutuamente exclusiva: nunca acontece de serem executados juntos ou de nenhum dos 2 ser executado. 9Seleção múltipla : switch ¾ grupos de 1 ou mais comandos cuja decisão de execução depende da comparação de um valor obtido com diversos possíveis valores pré-estabelecidos (+ de 2). 14 Seja o problema:Seja o problema: Fazer um programa que calcule o preço de um Fazer um programa que calcule o preço de um produto, a partir do tempo levado em sua produção e dotempo gasto no projeto do produto (mínimo 1 e do tempo gasto no projeto do produto (mínimo 1 mês cada). Usar a seguinte a tabela para calcular o preço:g p p ç – 2 meses: R$ 1.000,00 – 3 meses: R$ 1.500,00 – 4 meses: R$ 2.000,00 – mais de 4 meses: R$ 2.500,00 15 Preço de um produto, a partir do tempo Preço de um produto, a partir do tempo //Calcula preco a ser cobrado por um servico #i l d tdi h levado em sua produçãolevado em sua produção #include <stdio.h> #include <stdlib.h> int main ( ) {{ int tempo_prod, tempo_projeto; printf("Tempo de projeto: "); scanf("%d", &tempo_projeto); i tf("T d d ")printf("Tempo de producao: "); scanf("%d", &tempo_prod); switch (tempo_prod + tempo_projeto) {{ case 2 : printf ("\nPreco: R$ 1.000,00\n"); break; case 3 : printf ("\nPreco: R$ 1.500,00\n"); b k;break; case 4 : printf ("\nPreco: R$ 2.000,00\n"); break; default: printf ("\nPreco: R$ 2.500,00\n");p ( $ , ); } return 0; } Expressão inteira com operadores 16 Seja o problema:j p Fazer um programa que simule uma calculadora que executa as quatro operações aritméticas que executa as quatro operações aritméticas (soma, subtração, produto e divisão). O programa deve ler os dois valores (operandos) e O programa deve ler os dois valores (operandos) e a operação que deverá ser efetuada. Após o cálculo, dar a resposta.p , p 17 //executa uma das quatro operações aritméticas sobre dois operandos #i l d tdi h#include <stdio.h> #include <stdlib.h> int main ( ) { float operando1 operando2; Solução não float operando1, operando2; char operador; printf("\nOperador: "); scanf("%c", &operador); printf("\nOperando 1: "); Solução não controla o problema da divisão por zeroprintf( \nOperando 1: ); scanf("%f", &operando1); printf("\nOperando 2: "); scanf("%f", &operando2); switch (operador) divisão por zero. switch (operador) { case '+': printf("\nresultado: %f\n", operando1 + operando2); break; case '-': printf("\nresultado: %f\n", operando1 - operando2);case : printf( \nresultado: %f\n , operando1 operando2); break; case '*': printf("\nresultado: %f\n", operando1 * operando2); break; case '/': printf("\nresultado: %f\n", operando1 / operando2);p ( , p p ); break; default: printf ("\nOperador invalido"); } return 0; } 18 //executa uma das quatro operações aritméticas sobre dois operandos: #include <stdio.h> #include <stdlib.h> i t i ( )int main ( ) { float operando1, operando2; char operador; printf("\nOperador: ");printf( \nOperador: ); scanf("%c", &operador); printf("\nOperando 1: "); scanf("%f", &operando1); printf("\nOperando 2: "); Solução controla o problema da scanf("%f", &operando2); switch (operador) { case '+': printf("\nresultado: %f\n", operando1 + operando2); break; o problema da divisão por zero. break; case '-': printf("\nresultado: %f\n", operando1 - operando2); break; case '*': printf("\nresultado: %f\n", operando1 * operando2); break;; case '/': if (operando2) // verdadeiro se diferente de zero!!! printf("\nresultado: %f\n", operando1 / operando2); else printf ("\nDivisao por zero\n"); breakbreak; default: printf ("\nOperador invalido"); } return 0; }} 19 Seja o problema:j p Processar e informar uma venda de livros em uma livraria. Para isso, obter código do tipo de livro vendido (A, B, C) e ú d id d g p número de unidades. Preços: Tipo A - R$ 10,00 p Tipo B - R$ 20,00 Tipo C - R$ 30,00 20 // Calcula preço de uma venda de livro: #include <stdio.h> #include <stdlib h>#include <stdlib.h> int main ( ) { char codigo; float a pagar;float a_pagar; int numero_unidades; printf("Codigo do livro: "); scanf("%c", &codigo); printf("Numero de unidades: "); printf( Numero de unidades ); scanf("%d", &numero_unidades); switch (codigo) { case 'A': ' ' d d * 10 case 'a': a_pagar = numero_unidades * 10; break; case 'B': case 'b': a_pagar = numero_unidades * 20; b k Default com mais de um comando. break; case 'C': case 'c': a_pagar = numero_unidades * 30; break; default: printf("Codigo errado!"); Imprime se p m t 0!default: printf("Codigo errado!"); a_pagar = 0; } printf("\nO valor total a pagar eh: R$ %.2f\n", a_pagar); return 0; pagamento = 0! return 0; } 21 // Calcula preço de uma venda de livro: #include <stdio.h> #include <stdlib.h>#include stdlib.h int main ( ) { char codigo; float a_pagar; i t id dint numero_unidades; printf("Codigo do livro: "); scanf("%c", &codigo); printf("Numero de unidades: "); s nf("%d" &n m nid d s);scanf("%d", &numero_unidades); switch (codigo) { case 'A': case 'a': a pagar = numero unidades * 10; case a : a_pagar numero_unidades 10; break; case 'B': case 'b': a_pagar = numero_unidades * 20; break; break; case 'C': case 'c': a_pagar = numero_unidades * 30; break; default: printf("Codigo errado!\n"); Imprime somente se p m t ! 0!p ( g )a_pagar = 0; } if (a_pagar > 0) // só imprime se válido printf("\nO valor total a pagar eh: R$ %.2f\n", a_pagar); return 0; pagamento != 0! return 0; } 22 // Calcula preço de uma venda de livro: #include <stdio.h> #include <stdlib.h> Para integrar#include stdlib.h #include <ctype.h> // funções toupper e tolower int main ( ) { char codigo; fl t case 'A': e case 'a':float a_pagar; int numero_unidades; printf("Codigo do livro: "); scanf("%c", &codigo); di t l ( di ); // con erte caractere lido para minúsc la se possí el case a : codigo = tolower(codigo); // converte caractere lido para minúscula, se possível printf("Numero de unidades: "); scanf("%d", &numero_unidades); switch (codigo) {{ case 'a': a_pagar = numero_unidades * 10; break; case 'b': a_pagar = numero_unidades * 20; break; break; case 'c': a_pagar = numero_unidades * 30; break; default: printf("Codigo errado!\n"); a_pagar = 0; _p g } if (a_pagar > 0) // só imprime se válido printf("\nO valor total a pagar eh: R$ %.2f\n", a_pagar); return 0; }} 23 Seja o problema:j p Processar e informar uma venda de livros em uma livraria. Para isso, obter código do tipo de livro vendido (A, B, C) e ú d id d g p número de unidades. Preços: Tipo A - R$ 10,00 p Tipo B - R$ 20,00 Tipo C - R$ 30,00 Se tipo = B, ofereça 10% de desconto para compras a vista. 24 ... char codigo; float a_pagar, desconto; int numero unidades resposta; Oferece descontoint numero_unidades, resposta;printf("Codigo do livro: "); scanf("%c", &codigo); printf("Numero de unidades: "); scanf("%d", &numero_unidades); switch (codigo) Oferece desconto no livro B switch (codigo) { case 'A': case 'a': a_pagar = numero_unidades * 10; break; case 'B':case B : case 'b': printf("A vista? (1 - sim; 0 - nao): "); scanf("%d", &resposta); a_pagar = numero_unidades * 20; if (resposta) // se a vista, calcula e informa o desconto {{ desconto = a_pagar * 0.1; a_pagar = a_pagar - desconto; printf("\nO valor do desconto eh: R$ %.2f\n", desconto); } break;break; case 'C': case 'c': a_pagar = numero_unidades * 30; break; default: printf("Codigo errado!\n");default: printf( Codigo errado!\n ); a_pagar = 0; } if (a_pagar > 0) // só imprime se válido printf("\nO valor total a pagar eh: R$ %.2f\n", a_pagar); system("Pause");system( Pause ); return 0; } 25 Seja o problema:Seja o problema: Fornecido um código caractere correspondente a Fornecidoum código caractere, correspondente a um estado civil, devolver por extenso o estado civil correspondente.p Devem ser aceitas na entrada tanto maiúsculas quanto minúsculas. Codificação dos estados civis considerados: S - Solteiro C C dC - Casado D - Divorciado V ViúvV - Viúvo Qualquer outro caractere de entrada deve ser acusado como estado civil incorretoacusado como estado civil incorreto. 26 //Apresenta o estado civil correspondente ao caractere informado #include <stdio.h> #include <stdlib h>#include <stdlib.h> #include <ctype.h> // funções toupper e tolower int main ( ) { char estado civil; char estado_civil; printf("\nEstado Civil (C - Casado, S - Solteiro, D - Divorciado ou V - Viuvo):"); scanf("%c", &estado_civil); switch (estado civil) Valores literais char devem serswitch (estado_civil) { case 'c': case 'C': printf ("\nCasado\n"); break; Valores literais char devem ser colocados entre apóstofros. break; case 's': case 'S': printf ("\nSolteiro\n"); break; 'd' O modo de funcionamento do h/ case 'd': case 'D': printf ("\nDivorciado\n"); break; case 'v': 'V' i f ("\ Vi \ ") switch/case permitiu aceitar para cada opção de estado civil t t iú l t case 'V': printf ("\nViuvo\n"); break; default: printf ("\nEstado Civil incorreto\n"); } tanto maiúscula quanto minúscula. return 0; } 27 //Apresenta o estado civil correspondente ao caractere informado #include <stdio.h> #include <stdlib.h> #include <ctype.h> // funções toupper e tolower int main ( ) { { char estado_civil; printf("\nEstado Civil (C - Casado, S - Solteiro, D - Divorciado ou V - Viuvo):"); scanf("%c", &estado_civil); estado_civil = tolower(estado_civil); // se maiúscula, converte pata minúscula switch (estado_civil) { case 'c': printf ("\nCasado\n"); Reduz testecase c : printf ( \nCasado\n ); break; case 's': printf ("\nSolteiro\n"); break; Reduz teste apenas para minúsculas case 'd': printf ("\nDivorciado\n"); break; case ‘v': printf ("\nViuvo\n"); break;break; default: printf ("\nEstado Civil incorreto\n"); } return 0; }} 28 Seja o problema:j p C f t i t i f id t 0 10 Conforme uma nota inteira fornecida, entre 0 10, imprimir uma das seguintes mensagens: 0 a 5 – Reprovado0 a 5 Reprovado 6 a 9 – Aprovado 10 – Aprovado com louvor. pro a o com ou or. Em C, esse problema pode ser resolvido tanto ã d f p p por uma sucessão de ifs, quanto por um comando switch/case. 29 Mensagem dependendo de nota inteira: com ifs //Recebida uma nota, fornecer uma das seguintes mensagens: //0 a 6: Reprovado; 7 a 9: Aprovado; 10: Aprovado com louvor. inteira: com ifs p ; p ; p m #include <stdio.h> #include <stdlib.h> int main ( ) { { int nota; printf("\nNota (0 a 10): "); scanf("%d", ¬a); if (nota <0 || nota > 10) // elimina notas inválidasif (nota <0 || nota > 10) // elimina notas inválidas printf(“Nota inválida!\n”); else if (nota <=6) printf("\nReprovado\n");printf( \nReprovado\n ); else if (nota nota <= 9) printf("\nAprovado\n"); else // só sobrou nota = 10else // só sobrou nota = 10 printf("\nAprovado com louvor\n"); return 0; } 30 // Recebida uma nota fornecer uma das seguintes mensagens: Mensagem dependendo de nota inteira: com switch/case. // Recebida uma nota, fornecer uma das seguintes mensagens: //0 a 6: Reprovado; 7 a 9: Aprovado; 10: Aprovado com louvor. #include <stdio.h> #include <stdlib.h> int main ( ) { { int nota; printf("\nNota (0 a 10): "); scanf("%d", ¬a); if (nota < 0 || nota > 10)( || ) printf(“Nota inválida!\n”); else switch (nota) { case 0:case 0: case 1: case 2: case 3: case 4: case 5: case 5: case 6: printf("\nReprovado\n"); break; case 7: case 8:case 8 case 9: printf("\nAprovado\n"); break; case 10: printf("\nAprovado com louvor\n"); // ou default } return 0; return 0; } 31 Mas se a nota não for inteira? Nesse caso, em C, apenas ifs podem ser usados para testar as podem ser usados para testar as condições. Switch/case não é mais uma opção, já que só opera com expressões int long ou charexpressões int, long ou char. 32 Aninhamento de switch/cases: Seja o problema: Realizar uma de três tarefas conforme solicitação do Realizar uma de três tarefas, conforme solicitação do usuário: 1 - emissão de mensagens de aprovação ou reprovação dependendo do valor de uma nota inteira;dependendo do valor de uma nota inteira; 2 - cálculo do preço a ser pago por um serviço; 3 - indicação por extenso de um estado civil informado. Na solução apresentada a seguir, foram usados comandos Na solução apresentada a seguir, foram usados comandos switch/case para resolver, tanto a ativação das opções do usuário, quanto a solução de cada tarefa solicitada. T i i h d i h/ d Tem-se assim um aninhamento de switch/cases no caso do cálculo do preço de um serviço. Observar que nesses casos os valores das expressões são 33 Observar que nesses casos os valores das expressões são avaliados de forma independente nos switch/cases. /* Obtém dados e informa resultados, a partir de opção do usuário: #include <stdio.h> #include <stdlib.h> int main ( ) switch (opcao) { case 1: printf("\nNota (0 a 10): "); ( ) { int opcao; // define o que sera feito int tempo_prod, tempo_projeto; // variaveis para calculo preco servico int nota; // varivavel para opcao relativa a nota h d i il // i l d d i il p f( \ ( ) ); scanf("%d", ¬a); switch (nota) { case 0: case 1: Aninhamento de switch/cases char estado_civil; // variavel para opcao de estado civil printf (“ Informe o que deseja que seja executado:\n”); printf("\nOpcao 1 - mensagem nota"); printf("\nOpcao 2 - preco servico"); i tf("\ O 3 t d i il\ \ ") (...) } // fim do switch/case da nota break; case 2: printf("Tempo de projeto: "); scanf("%d", &tempo_projeto);printf("\nOpcao 3 - estado civil\n\n"); scanf("%d", &opcao); ( , p _p j ); printf("Tempo de producao: "); scanf("%d", &tempo_prod); switch (tempo_prod + tempo_projeto) { case 2 : printf ("\nPreco: R$ 1.000,00\n");p ( $ , ) break; (...) } // fim do switch/case da preco servico break; case 3: printf("\nEstado Civil (C - Casado, S - Solteiro, D - Divorciado ou p ( ( , , V - Viuvo):"); scanf(" %c", &estado_civil); switch (estado_civil) { case 'c': case 'C': printf ("\nCasado\n"); break; (...) } // fim do switch/case do estado civil break; } // /} // fim do switch/case opcao return 0; } 34 Vantagens e Desvantagens do it h/switch/case: V tVantagens • O código produzido é mais claro. A ló i fi i id t Desvanta ens • A lógica fica mais evidente. Desvantagens • Serve como alternativa apenas para casos em que sejam testadas apenas igualdades envolvendo sejam testadas apenas igualdades envolvendo expressões int, long ou char. • Não pode testar intervalos!! (IF...ELSE é mais abrangente!!) 35 Uso de seleção condicionalç 9Condicional Simples : if9Condicional Simples : if ¾ execução de comando (simples ou composto) depende de 1 condição: pode ou não ser executado. 9Seleção Dupla : if-else ¾ 2 comandos (simples ou composto), cuja execução é mutuamente exclusiva: nunca acontece de seremmutuamente exclusiva: nunca acontece de serem executados juntos ou de nenhum dos 2 ser executado. 9Seleção múltipla : switchSeleção múltipla : switch ¾ grupos de 1 ou mais comandos cuja decisão de execução depende da comparação de um valor obtido com diversos possíveis valores pré-estabelecidos (+ de 2). ¾ Adequado para a implementaçãode menus. ¾ Indequado para associar comandos a intervalos ou diversos valores 36 Ex:Ex: Fazer o trecho de um programa C que, dependendo do conteúdo de “codigo”, atribua o conteúdo especificado na tabela abaixo à variável “resultado”. Codigo ResultadoCodigo Resultado 1 Resultado + 5 2 Inalterado2 Inalterado 3 Resultado – 2 4 Inalterado 5 Resultado – 2 6 2* (Resultado +1) 7 Inalterado7 Inalterado 8 0 9 09 0 10 0 11 123 37 ... //uso de seleção dupla if (codigo == 1) Resultado + 51 Inalterado4 Resultado –23 Inalterado2 ResultadoCódigo ( g ) resultado = resultado + 5; else if (codigo == 3 || codigo == 5) 08 Inalterado7 2* (Resultado +1)6 Resultado –25 Inalterado4 if (codigo 3 || codigo 5) resultado = resultado – 2; else if (codigo == 6) 12311 010 09 if (codigo == 6) resultado = 2 * (resultado + 1); else if ( di > 7 && di < 11) código if (codigo > 7 && codigo < 11) resultado = 0; else g inválido? if (codigo == 11) resultado = 123; ... resultado = 123; else resultado = 123; elseelse If (codigo != 4 && codigo != 2 && codigo != 7) printf(“código inválido!”); else If (codigo < 1 || codigo > 11) printf(“código inválido!”); 38 ... // uso de switch case: switch (codigo) Resultado + 51 I lt d2 ResultadoCódigo switch (codigo) { case 1: resultado = resultado + 5; break; 2* (Resultado +1)6 Resultado –25 Inalterado4 Resultado –23 Inalterado2 break; case 2: case 4: case 7: break; // não faz nada 12311 010 09 08 Inalterado7 ( ) case 3: case 5: resultado = resultado – 2; break; case 6: resultado = 2 * (resultado + 1); 12311 case 6: resultado = 2 * (resultado + 1); break; case 8: case 9:case 9: case 10: resultado = 0; break; case 11: resultado = 123; break; default: printf(“Codigo informado invalido!”); // não precisa break } 39 Escreva um programa para fazer o cálculo das seguintes conversões entre sistemas de medida:seguintes conversões entre sistemas de medida: a) dada uma temperatura na escala Celsius fornecer a a) dada uma temperatura na escala Celsius, fornecer a equivalente em graus Fahrenheit, e vice-versa; fórmula de conversão: 1º F = (9 / 5)º C + 32 ( ) b) dada uma medida em polegadas, fornecer a equivalente em milímetros, e vice-versa; ó l lfórmula de conversão: 1 pol = 24,5 mm O programa deve mostrar uma tela com as quatro as possíveis mudanças de sistema de medida e solicitar possíveis mudanças de sistema de medida, e solicitar qual a que deverá ser realizada. Em seguida, deve ler o valor e fornecer o valor convertido como resposta. 40
Compartilhar