Aula6 - Linguagem C

12
1 Prof. Fabiano Russo Linguagem C O Comando switch O comando switch é próprio para se testar uma variável em relação a diversos valores pré-estabelecidos. Sua forma geral é: Sintaxe switch (variável) { case constante_1: declaração_1; break; case constante_2: declaração_2; break; . . . case constante_n: decalração_n; break; default: declaração_default; } Podemos fazer uma analogia entre o switch e a estrutura if-else-if. A diferença fundamental é que a estrutura switch não aceita expressões. Aceita apenas constantes. O switch testa a variável e executa a declaração cujo case corresponda ao valor atual da variável. A declaração default é opcional e será executada apenas se a variável, que está sendo testada, não for igual a nenhuma das constantes. O comando break, faz com que o switch seja interrompido assim que uma das declarações seja executada. Mas ele não é essencial ao comando switch. Se após a execução da declaração não houver um break, o programa continuará

Transcript of Aula6 - Linguagem C

Page 1: Aula6 - Linguagem C

1

Prof. Fabiano Russo

Linguagem C

O Comando switch

O comando switch é próprio para se testar uma variável em relação a diversos valores pré-estabelecidos. Sua forma geral é:

Sintaxe

switch (variável)

{ case constante_1: declaração_1; break;

case constante_2: declaração_2; break;

.

.

.

case constante_n: decalração_n; break;

default: declaração_default;

}

Podemos fazer uma analogia entre o switch e a estrutura if-else-if. A diferença fundamental é que a estrutura switch não aceita expressões. Aceita apenas constantes. O switch testa a variável e executa a declaração cujo case corresponda ao valor atual da variável. A declaração default é opcional e será executada apenas se a variável, que está sendo testada, não for igual a nenhuma das constantes. O comando break, faz com que o switch seja interrompido assim que uma das declarações seja executada. Mas ele não é essencial ao comando switch. Se após a execução da declaração não houver um break, o programa continuará

Page 2: Aula6 - Linguagem C

2

executando. Isto pode ser útil em algumas situações, mas eu recomendo cuidado. Veremos agora um exemplo do comando switch: Por Exemplo: #include <stdio.h> main () { int num; printf ("Digite um numero: "); scanf ("%d",&num); switch (num) { case 9: printf ("\n\nO numero e igual a 9.\n"); break; case 10: printf ("\n\nO numero e igual a 10.\n"); break; default: printf ("\n\nO numero nao e nem 9 nem 10 nem 11.\n"); } }

Page 3: Aula6 - Linguagem C

3

Exercícios

1) Faça um algoritmo que ao escolher uma opção inteira de 1 até 7 mostre o dia da semana correspondente ou mostrar mensagem de erro. #include<stdio.h> main() { int opcao; printf(" ********* DIA DA SEMANA ********** \n\n "); printf("\nDigite o Valor Desejado de 1 a 7: "); scanf("%d",&opcao); system("cls"); printf("******************* \\ ********************** \n\n"); switch (opcao) { case 1: printf("\n DOMINGO "); break; case 2: printf("\n SEGUNDA - FEIRA "); break; case 3: printf("\n TERCA - FEIRA "); break; case 4: printf("\n QUARTA - FEIRA "); break; case 5: printf("\n QUINTA - FEIRA "); break; case 6: printf("\n SEXTA - FEIRA "); break; case 7: printf("\n SABADO "); break; default: printf(" Opcao Invalida "); break; } printf(" \n\n\n******************* \\ ********************** \n\n\n"); system("pause"); }

Page 4: Aula6 - Linguagem C

4

2) Faça um algoritmo que ao escolher uma opção inteira de 1 até 12 mostre o mês do ano correspondente ou mostrar mensagem de erro. #include<stdio.h> main() { int opcao; printf(" ********* MES DO ANO ********** \n\n "); printf("\nDigite o Valor Desejado de 1 a 12: "); scanf("%d",&opcao); system("cls"); printf("******************* \\ ********************** \n\n"); switch (opcao) { case 1: printf("\n JANEIRO "); break; case 2: printf("\n FEVEREIRO "); break; case 3: printf("\n MARCO "); break; case 4: printf("\n ABRIL "); break; case 5: printf("\n MAIO "); break; case 6: printf("\n JUNHO "); break; case 7: printf("\n JULHO "); break; case 8: printf("\n AGOSTO "); break; case 9: printf("\n SETEMBRO "); break; case 10: printf("\n OUTUBRO "); break; case 11: printf("\n NOVEMBRO "); break; case 12: printf("\n DEZEMBRO "); break; default: printf(" Opcao Invalida "); break; } printf(" \n\n\n******************* \\ ********************** \n\n\n"); system("pause"); }

Page 5: Aula6 - Linguagem C

5

3) Faça um algoritmo que permita ao usuário, através de uma escolha, solicitar o extrato ou o saque ou uma transferência entre contas ou opção inválida. #include<stdio.h> main() { int opcao; printf(" ********* CAIXA RAPIDO ********** \n\n "); printf("\n1 - EXTRATO "); printf("\n2 - SAQUE "); printf("\n3 - TRANSFERENCIA ENTRE CONTAS "); printf("\n\n\nDigite a Opcao Desejada ---> "); scanf("%d",&opcao); system("cls"); printf("******************* \\ ********************** \n\n"); switch (opcao) { case 1: printf("\n Aguarde ... Imprimindo Extrato **** \n\n\n\n"); printf(" *** Destaque a Folha ***"); break; case 2: printf("\n Aguarde ... Contando Cedulas **** \n\n\n\n"); printf(" *** Retire as Cedulas ***"); break; case 3: printf("\n Informe as Contas e Valores **** \n\n\n\n"); printf(" *** TRANSFERENCIA REALIZADA COM SUCESSO ***"); break; default: printf(" Opcao Invalida "); break; } printf(" \n\n\n******************* \\ ********************** \n\n\n"); system("pause"); }

Page 6: Aula6 - Linguagem C

6

4) Faça um algoritmo que permita ao usuário através de uma escolha que leia opção do estado civil de uma pessoa e mostre: Casado(a); Solteiro(a); Viúvo(a); Desquitado(a); Divorciado(a) ou mostrar a mensagem opção invalida. #include<stdio.h> main() { int opcao; printf(" ********* ESTADO CIVIL ********** \n\n "); printf("\n1 - CASADO(A) "); printf("\n2 - SOLTEIRO(A) "); printf("\n3 - VIUVO(A) "); printf("\n4 - DESQUITADO(A) "); printf("\n5 - DIVORCIADO(A) "); printf("\n\n\nDigite a Opcao Desejada ---> "); scanf("%d",&opcao); system("cls"); printf("******************* \\ ********************** \n\n"); switch (opcao) { case 1: printf("\n *** CASADO(A) "); break; case 2: printf("\n *** SOLTEIRO(A) "); break; case 3: printf("\n *** VIUVO(A) "); break; case 4: printf("\n *** DESQUITADO(A) "); break; case 5: printf("\n *** DIVORCIADO(A) "); break; default: printf(" Opcao Invalida "); break; } printf(" \n\n\n******************* \\ ********************** \n\n\n"); system("pause"); }

Page 7: Aula6 - Linguagem C

7

5) Faça um algoritmo que leia o nome do usuário que solicite o cálculo e que permita a escolha para a realização dos cálculos da área e volume do cubo ou mostrar mensagem de erro. #include <stdio.h> main ( ) { int op; float vol,area,aresta; char nome[60]; printf(" Informe o Nome Completo: "); gets(nome); printf("\n\n 1 - Area do Cubo \n\n"); printf(" 2 - Volume do Cubo \n\n"); printf(" Digite a Opcao Desejada: "); scanf("%d",&op); system("cls"); switch(op) { case 1: printf("\n\n*** Area do Cubo *** \n\n"); printf(" Informe a Aresta do Cubo: "); scanf("%f",&aresta); system("cls"); printf("\n\n\n"); area=6*aresta*aresta; printf("Sr(a).: %s\n\n", nome); printf(" Aresta: %f \n\n", aresta); printf(" Area = %f \n\n",area); break; case 2: printf(" *** Volume do Cubo *** \n\n"); printf(" Informe a Aresta do Cubo: "); scanf("%f",&aresta); system("cls"); printf("\n\n\n"); vol=aresta*aresta*aresta; printf("Sr(a).: %s\n\n", nome); printf(" Aresta: %f \n\n", aresta);

Page 8: Aula6 - Linguagem C

8

printf(" Volume = %f \n\n",vol); break; default: printf(" Opcao Invalida "); break; } printf(" \n\n\n******************* \\ ********************** \n\n\n"); system("pause"); } 6) Faça um algoritmo que leia o nome do usuário que solicite o cálculo e que permita a escolha para a realização dos cálculos da área e volume da esfera ou mostrar mensagem de erro. #include <stdio.h> main ( ) { int op; float vol,area,pi=3.14,raio; char nome[60]; printf(" Informe o Nome Completo: "); gets(nome); printf("\n\n 1 - Area da Esfera \n\n"); printf(" 2 - Volume da Esfera \n\n"); printf(" Digite a Opcao Desejada: "); scanf("%d",&op); system("cls"); switch(op) { case 1: printf("\n\n*** Area da Esfera *** \n\n"); printf("Informe o Raio da Esfera: "); scanf("%f",&raio); system("cls"); printf("\n\n\n"); area=4*pi*raio*raio; printf("Sr(a).: %s\n\n", nome); printf (" A Area da Esfera e: %f\n\n",area);

Page 9: Aula6 - Linguagem C

9

break; case 2: printf("\n\n*** Volume da Esfera *** \n\n"); printf("Informe o Raio da Esfera: "); scanf("%f",&raio); system("cls"); printf("\n\n\n"); vol=(4*pi*raio*raio*raio)/3; printf("Sr(a).: %s\n\n", nome); printf (" O Volume da Esfera e: %f\n\n",vol); break; default: printf(" Opcao Invalida "); break; } printf(" \n\n\n******************* \\ ********************** \n\n\n"); system("pause"); } 7) Faça um algoritmo que permita a escolha para a realização dos cálculos para converter temperatura de Celsius em Fahrenheit e vice-versa ou mostrar mensagem de erro. °F = °C × 1,8 + 32 °C = (°F - 32) / 1,8 #include <stdio.h> main ( ) { int op; float cs,fh; printf("\n\n 1 - Celsius / Fahrenheit \n\n"); printf(" 2 - Fahrenheit / Celsius \n\n"); printf(" Digite a Opcao Desejada: "); scanf("%d",&op); system("cls"); switch(op) { case 1: printf("\n\n*** Celsius / Fahrenheit *** \n\n");

Page 10: Aula6 - Linguagem C

10

printf("Informe a Temperatura em Celsius: "); scanf("%f",&cs); system("cls"); printf("\n\n\n"); fh = cs*1.8 + 32; printf (" A Temperatura Fahrenheit: %f graus\n\n",fh); break; case 2: printf("\n\n*** Fahrenheit / Celsius *** \n\n"); printf("Informe a Temperatura em Fahreinheit: "); scanf("%f",&fh); system("cls"); printf("\n\n\n"); cs=(fh-32)/1.8; printf (" A Temperatura Fahrenheit: %f graus\n\n",cs); break; default: printf(" Opcao Invalida "); break; } printf(" \n\n\n******************* \\ ********************** \n\n\n"); system("pause"); } 8) Faça um algoritmo para ler o preço e a categoria de um produto. Calcular e mostrar o reajuste de acordo com a categoria. Se a categoria for A=50%, B=25%, C=15% e outras 5%. #include<stdio.h> main() { float preco,desc,precof; char cat; printf(" ********* Desconto por Categoria de Produto ********** \n\n "); printf("\nDigite o Preco do Produto: R$ "); scanf("%f",&preco);

Page 11: Aula6 - Linguagem C

11

printf("\nInforme a Categoria do Produto: "); printf("\n Categoria A (Desconto de 50%%)"); printf("\n Categoria B (Desconto de 25%%) "); printf("\n Categoria C (Desconto de 15%%)"); printf("\n Categoria OUTRAS (Desconto de 5%%)\n\n "); printf(" -----> "); fflush(stdin); scanf("%c",&cat); system("cls"); printf("******************* \\ ********************** \n\n"); switch (cat) { case 'A': printf("\n ****** Categoria A (Desconto de 50%%) ****** "); desc=preco*0.50; precof=preco-desc; printf(" \n\nCategoria: %c\n\n",cat); printf(" Valor do Desconto: R$ %f\n\n",desc); printf(" Preco Final: R$ %f\n\n",precof); break; case 'B': printf("\n ****** Categoria B (Desconto de 25%%) ****** "); desc=preco*0.25; precof=preco-desc; printf(" \n\nCategoria: %c\n\n",cat); printf(" Valor do Desconto: R$ %f\n\n",desc); printf(" Preco Final: R$ %f\n\n",precof); break; case 'C': printf("\n ****** Categoria C (Desconto de 15%%) ****** "); desc=preco*0.15; precof=preco-desc; printf(" \n\nCategoria: %c\n\n",cat); printf(" Valor do Desconto: R$ %f\n\n",desc); printf(" Preco Final: R$ %f\n\n",precof); break; default: printf("\n ****** Categoria OUTRAS (Desconto de 5%%) ****** "); desc=preco*0.05; precof=preco-desc; printf(" \n\nCategoria: %c\n\n",cat); printf(" Valor do Desconto: R$ %f\n\n",desc); printf(" Preco Final: R$ %f\n\n",precof);

Page 12: Aula6 - Linguagem C

12

break; } printf(" \n\n\n******************* \\ ********************** \n\n\n"); system("pause"); } 9) Faça um algoritmo que simule uma urna eletrônica para eleição do Presidente da Republica ou mostrar mensagem de voto anulado. #include<stdio.h> main() { int opcao; printf(" ********* URNA ELETRÔNICA ********** \n\n "); printf("\nDigite o Numero do seu candidato a PRESIDENCIA DA REPUBLICA: "); scanf("%d",&opcao); system("cls"); printf("******************* \\ ********************** \n\n"); switch (opcao) { case 13: printf("\n PT ** Dilma Roussef - 13 ** "); break; case 43: printf("\n PARTIDO VERDE ** Marina Silva - 43 ** "); break; case 45: printf("\n PSDB ** Jose Serra - 45 **"); break; case 50: printf("\n PSOL ** Plinio Arruda - 50 **"); break; default: printf(" ******* VOTO ANULADO ******* "); break; } printf(" \n\n\n******************* \\ ********************** \n\n\n"); system("pause"); }