Fundamentos de Logica de Programação | Linguagem C
Aula6 - Linguagem C
1. 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á
2. 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 ("nnO numero e igual a 9.n");
break;
case 10:
printf ("nnO numero e igual a 10.n");
break;
default:
printf ("nnO numero nao e nem 9 nem 10 nem 11.n");
}
}
3. 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 ********** nn ");
printf("nDigite o Valor Desejado de 1 a 7: ");
scanf("%d",&opcao);
system("cls");
printf("******************* ********************** nn");
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(" nnn******************* ********************** nnn");
system("pause");
}
4. 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 ********** nn ");
printf("nDigite o Valor Desejado de 1 a 12: ");
scanf("%d",&opcao);
system("cls");
printf("******************* ********************** nn");
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(" nnn******************* ********************** nnn");
system("pause");
}
5. 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 ********** nn ");
printf("n1 - EXTRATO ");
printf("n2 - SAQUE ");
printf("n3 - TRANSFERENCIA ENTRE CONTAS ");
printf("nnnDigite a Opcao Desejada ---> ");
scanf("%d",&opcao);
system("cls");
printf("******************* ********************** nn");
switch (opcao)
{
case 1: printf("n Aguarde ... Imprimindo Extrato **** nnnn");
printf(" *** Destaque a Folha ***");
break;
case 2: printf("n Aguarde ... Contando Cedulas **** nnnn");
printf(" *** Retire as Cedulas ***");
break;
case 3: printf("n Informe as Contas e Valores **** nnnn");
printf(" *** TRANSFERENCIA REALIZADA COM SUCESSO ***");
break;
default: printf(" Opcao Invalida "); break;
}
printf(" nnn******************* ********************** nnn");
system("pause");
}
6. 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 ********** nn ");
printf("n1 - CASADO(A) ");
printf("n2 - SOLTEIRO(A) ");
printf("n3 - VIUVO(A) ");
printf("n4 - DESQUITADO(A) ");
printf("n5 - DIVORCIADO(A) ");
printf("nnnDigite a Opcao Desejada ---> ");
scanf("%d",&opcao);
system("cls");
printf("******************* ********************** nn");
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(" nnn******************* ********************** nnn");
system("pause");
}
7. 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("nn 1 - Area do Cubo nn");
printf(" 2 - Volume do Cubo nn");
printf(" Digite a Opcao Desejada: ");
scanf("%d",&op);
system("cls");
switch(op)
{
case 1: printf("nn*** Area do Cubo *** nn");
printf(" Informe a Aresta do Cubo: ");
scanf("%f",&aresta);
system("cls");
printf("nnn");
area=6*aresta*aresta;
printf("Sr(a).: %snn", nome);
printf(" Aresta: %f nn", aresta);
printf(" Area = %f nn",area);
break;
case 2: printf(" *** Volume do Cubo *** nn");
printf(" Informe a Aresta do Cubo: ");
scanf("%f",&aresta);
system("cls");
printf("nnn");
vol=aresta*aresta*aresta;
printf("Sr(a).: %snn", nome);
printf(" Aresta: %f nn", aresta);
8. 8
printf(" Volume = %f nn",vol);
break;
default: printf(" Opcao Invalida "); break;
}
printf(" nnn******************* ********************** nnn");
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("nn 1 - Area da Esfera nn");
printf(" 2 - Volume da Esfera nn");
printf(" Digite a Opcao Desejada: ");
scanf("%d",&op);
system("cls");
switch(op)
{
case 1: printf("nn*** Area da Esfera *** nn");
printf("Informe o Raio da Esfera: ");
scanf("%f",&raio);
system("cls");
printf("nnn");
area=4*pi*raio*raio;
printf("Sr(a).: %snn", nome);
printf (" A Area da Esfera e: %fnn",area);
9. 9
break;
case 2: printf("nn*** Volume da Esfera *** nn");
printf("Informe o Raio da Esfera: ");
scanf("%f",&raio);
system("cls");
printf("nnn");
vol=(4*pi*raio*raio*raio)/3;
printf("Sr(a).: %snn", nome);
printf (" O Volume da Esfera e: %fnn",vol);
break;
default: printf(" Opcao Invalida "); break;
}
printf(" nnn******************* ********************** nnn");
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.
° = ° × 1,8 + 32
F C
° = (° - 32) / 1,8
C F
#include <stdio.h>
main ( )
{
int op;
float cs,fh;
printf("nn 1 - Celsius / Fahrenheit nn");
printf(" 2 - Fahrenheit / Celsius nn");
printf(" Digite a Opcao Desejada: ");
scanf("%d",&op);
system("cls");
switch(op)
{
case 1: printf("nn*** Celsius / Fahrenheit *** nn");
10. 10
printf("Informe a Temperatura em Celsius: ");
scanf("%f",&cs);
system("cls");
printf("nnn");
fh = cs*1.8 + 32;
printf (" A Temperatura Fahrenheit: %f grausnn",fh);
break;
case 2: printf("nn*** Fahrenheit / Celsius *** nn");
printf("Informe a Temperatura em Fahreinheit: ");
scanf("%f",&fh);
system("cls");
printf("nnn");
cs=(fh-32)/1.8;
printf (" A Temperatura Fahrenheit: %f grausnn",cs);
break;
default: printf(" Opcao Invalida "); break;
}
printf(" nnn******************* ********************** nnn");
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 ********** nn ");
printf("nDigite o Preco do Produto: R$ ");
scanf("%f",&preco);
11. 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%%)nn ");
printf(" -----> ");
fflush(stdin);
scanf("%c",&cat);
system("cls");
printf("******************* ********************** nn");
switch (cat)
{
case 'A': printf("n ****** Categoria A (Desconto de 50%%) ****** ");
desc=preco*0.50;
precof=preco-desc;
printf(" nnCategoria: %cnn",cat);
printf(" Valor do Desconto: R$ %fnn",desc);
printf(" Preco Final: R$ %fnn",precof);
break;
case 'B': printf("n ****** Categoria B (Desconto de 25%%) ****** ");
desc=preco*0.25;
precof=preco-desc;
printf(" nnCategoria: %cnn",cat);
printf(" Valor do Desconto: R$ %fnn",desc);
printf(" Preco Final: R$ %fnn",precof);
break;
case 'C': printf("n ****** Categoria C (Desconto de 15%%) ****** ");
desc=preco*0.15;
precof=preco-desc;
printf(" nnCategoria: %cnn",cat);
printf(" Valor do Desconto: R$ %fnn",desc);
printf(" Preco Final: R$ %fnn",precof);
break;
default: printf("n ****** Categoria OUTRAS (Desconto de 5%%) ****** ");
desc=preco*0.05;
precof=preco-desc;
printf(" nnCategoria: %cnn",cat);
printf(" Valor do Desconto: R$ %fnn",desc);
printf(" Preco Final: R$ %fnn",precof);
12. 12
break;
}
printf(" nnn******************* ********************** nnn");
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 ********** nn ");
printf("nDigite o Numero do seu candidato a PRESIDENCIA DA
REPUBLICA: ");
scanf("%d",&opcao);
system("cls");
printf("******************* ********************** nn");
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(" nnn******************* ********************** nnn");
system("pause");
}