1
Unesp – Campus de Guaratinguetá
Curso de Programação Computadores Prof. Aníbal Tavares
Profa. Cassilda Ribeiro
5- A Lógica da Programação Comandos If
Comandos If -else - else
2
5. A Lógica da programação
Neste tópico começaremos a ver em detalhes, a lógica que está por traz dos programas computacionais. Para tanto vamos, ao mesmo tempo, aprender a fazer algoritmos e a colocá-los em linguagem C.
Exemplo 1:Dados os comprimentos dos lados de um triângulo (nas variáveis LADO1 e LADO2), fazer um algoritmo para determinar e imprimir o comprimento do terceiro lado (HIPOTENUSA).
Suponha que todas as variáveis sejam inteiras.
5.1 Introdução
lado1
lado2
hipotenusa ?
H = (L
12+L
22)
1/23
Algoritmo: Pitágoras
variáveisLADO1, LADO2, Q1, Q2: inteiros.
HIPOTENUSA:real;
Inicio
1. [Ler dados conhecidos]
Leia (LADO1, LADO2);
2. [Calcular os quadrados dos lados conhecidos]
Q1 LADO1 ↑ 2;
Q2 LADO2 ↑ 2;
3. [Calcular o comprimento do terceiro lado]
HIPOTENUSASQRT (Q1 + Q2);
4. [Sair resultado]
Escreva(´Lados =`, LADO1, LADO2, HIPOTENUSA);
Fim
Declarações
Instruções
5.1 Introdução
4
// Dados os 2 catetos de um triângulo, //este programa calcula a hipotenusa!
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
main() { //Inicio
floatL1, L2, H;
printf(“Forneça L1 e L2:”);
scanf(“%f%f”,&L1,&L2);
H = sqrt(L1*L1 + L2*L2);
printf(“L1=%f, L2=%f, H=%f \n”,L1,L2,H);
system(“pause”);
}//Fim
Código C
Algoritmo: Pitágoras Declarar variáveis;
Inicio
Leia (L1, L2);
Q1 L1 ↑2;
Q2 L2 ↑2;
HSQRT (Q1 + Q2);
Escreva(L1,L2,H);
Fim
Algoritmo
5.1 Introdução
5
Para se descobrir isto, deve-se rastrear o algoritmo, isto é, executá-lo manualmente, com dados numéricos, utilizando lápis e papel para registrar os valores tomados pelas variáveis a cada passo.
Depois de elaborado um algorítmo, como saber se ele faz o que se supõe que faça?
5.2. Rastreando um Algoritmo
O exemplo 2 a seguir ilustra o rastreamento do algoritmo do exemplo 1.
3 4 Algoritmo 5
4
5.2. Rastreando um Algoritmo
6
Algoritmo: Pitágoras Declarar variáveis;
Inicio
Leia (L1, L2);
Q1 L1 ↑2;
Q2 L2 ↑2;
HSQRT (Q1 + Q2);
Escreva(L1,L2,H);
Fim
Algoritmo
Q2
?
Passo L1 L2 Q1 H Saída
3 4 9 ? ?
1
3 4 9 16 ? ?
2
5.2. Rastreando um Algoritmo
Suponha que conheçamos os dois catetos de um triângulo retângulos cujas medidas são 3cm e 4cm. Então os dados de entrada são 3 e 4.
Exemplo 2: Rastrear Pitágoras
1
3 4 9 16 5 ?
3
3 4 9 16 5 3,4,5
4
2
3 4
7
5.2. Rastreando um Algoritmo
Fazer um algorítmo que leia quatro notas (NOTA1,
NOTA2, NOTA3 e NOTA4 )e calcula a nota média,
armazena o resultado na variável MEDIA. O resultado final deve ser impresso com uma
mensagem explicativa. Toda as variáveis são reais.
Exemplo 3: Calcular Média
Algoritmo Notas
Variáveis N1, N2, N3, N4, MEDIA;
Inicio
1. [Ler as notas individuais]
Escreva(“digite as 4 notas”) Leia ( N1, N2, N3, N4 );
2. [Calcular a nota média]
MEDIA ( N1 + N2 + N3 + N4 ) / 4.0;
3. [Sair resultados]
Escreva (´Nota Final =`, MEDIA);
Fim
Algoritmo
Aqui está sendo dada uma ordem para que o computador leia os
dados necessários para calcular a média. 8
Fazer um algorítmo que leia quatro notas (NOTA1,
NOTA2, NOTA3 e NOTA4 )e calcula a nota média,
armazena o resultado na variável MEDIA. O resultado final deve ser impresso com uma
mensagem explicativa. Toda as variáveis são reais.
Exemplo 3: Calcular Média
Algoritmo Notas
Variáveis N1, N2, N3, N4, MEDIA;
Inicio
1. [Ler as notas individuais]
Escreva(“digite as 4 notas”) Leia ( N1, N2, N3, N4 );
2. [Calcular a nota média]
MEDIA ( N1 + N2 + N3 + N4 ) / 4.0;
3. [Sair resultados]
Escreva (´Nota Final =`, MEDIA);
Fim
Algoritmo
Aqui está sendo dada uma ordem para que o computador escreva na tela o valor da média que ele calculou.
5.2. Rastreando um Algoritmo
9
Passo N1 N2 N3 N4 M Saída
6.0 6.5 8.0 9.5 ? ?
1
6.0 6.5 8.0 9.5 7.5 ?
2
6.0 6.5 8.0 9.5 7.5 7.5
3
Algoritmo Notas
Variáveis N1, N2, N3, N4, M;
Inicio
1. [Ler as notas individuais]
Escreva(“forneça n1, n2, n3, n4”) Leia ( N1, N2, N3, N4 );
2. [Calcular a nota média]
MEDIA ( N1 + N2 + N3 + N4 ) / 4.0;
3. [Sair resultados]
Escreva (´Nota Final =`, MEDIA);
Fim
Algoritmo
1 2
3
main() {
floatn1, n2, n3, n4, m;
printf(“Forneça n1, n2, n3 e n4:”);
scanf(“%f%f%f%f”,&n1,&n2,&n3,&n4);
m = (n1 + n2 + n3 + n2)/4.0;
printf(“ Nota Final = %f \n”,m);
system(“pause”);
}
Código C
1 2
3
5.2. Rastreando um Algoritmo
10
Uma outra forma de escrever em Linguagem C o programa associado ao algoritmo que resolve o Exemplo 3 é:
/* ---*
* Programa do exemplo 3- Tópico 5 *
* Cálculo da média final entre 4 notas *
*---*/
#include <stdio.h>
#include <stdlib.h>
main() {
float NOTA1, NOTA2, NOTA3, NOTA4, MEDIA;
printf("DIGITE A NOTA1 ");
scanf("%f",&NOTA1);
Aqui está sendo dada uma ordem para que o computador escreva a frase “DIGITE A NOTA1”
Aqui está sendo dada uma ordem para que o computador guarde na memória a NOTA1 que foi digitada
5.3. Trabalhando com a Linguagem C
continua na pg. seguinte
11
printf("NOTA1=%f\n",NOTA1);
printf("\nDIGITE A NOTA2 ");
scanf("%f",&NOTA2);
printf("NOTA2=%f\n",NOTA2);
printf("\nDIGITE A NOTA3 ");
scanf("%f",&NOTA3);
printf("NOTA3=%f\n“ ,NOTA3);
printf("\nDIGITE A NOTA4 ");
scanf("%f",&NOTA4);
printf("NOTA4=%f\n",NOTA4);
MEDIA = (NOTA1+NOTA2+NOTA3+NOTA4)/4.0;
printf("\n ");
printf("NOTA FINAL = %f\n", MEDIA);
system("pause");
}
Aqui está sendo dada uma ordem para que o computador escreva a frase “NOTA1=”, seguido do valor da variável que está armazenado na memória.
Aqui está sendo calculado o valor da MEDIA
Aqui está sendo dada uma ordem para que o
computador escreva a frase “NOTA FINAL=”, seguido do valor da MEDIA que foi calculada anteriormente.
5.3. Trabalhando com a Linguagem C
12
Ao se executar o programa do exemplo 3, aparece a seguinte tela:
5.3. Trabalhando com a Linguagem C
13
Exemplo 4:Fazer um algoritmo que leia um valor em dólar e o converta para real.
O Exemplo 4 em
Linguagem C torna-se:
Algoritmo Conversão
Variáveis:Qdolar, Qreal,taxa: real Inicio
1.[Ler a taxa e quantidade Qdolar]
Leia (taxa, Qdolar)
2. [Converter dolar para real]
Qrealtaxa * Qdolar.
3. [Sair resultados]
Escreva (Qdolar“dolar =Qreal reais) Fim
5.3. Trabalhando com a Linguagem C
14
/*====================================
* Este eh o programa do exemplo 4- tópico 5 *
*====================================*/
#include <stdio.h>
#include <stdlib.h>
main() {
floattaxa, Qdolar, Qreal;
//ler dados
printf("digite o valor da taxa em reais\n");
scanf("%f",&taxa);
printf("digite a quantidade de dolares que deseja trocar\n");
scanf("%f",&Qdolar);
//Converter dolar para real Qreal = taxa * Qdolar;
// Sair resultados
printf ("%.2f dolares = %.2f reais\n",Qdolar,Qreal);
system("pause");
}//Fim
Ordena ao computador que escreva na tela a frase em vermelho
Ordena ao computador que leia e armazene na memória o número digitado pelo usuário
5.3. Trabalhando com a Linguagem C
15
Algoritmo Converte_Chuva Variáveis: POL, MILIM: real.
Inicio
1. [Ler dados conhecidos]
Escreva (“ Digite o valor da chuva em polegadas”) Leia ( POL )
2. [Converter polegadas em milímetros]
MILIM 25.4 * POL 3. [Sair resultado]
Escreva (´Quantidade de chuva em mm =`,MILIMETROS) Fim
Exemplo 5:Fazer um algoritmo que leia uma quantidade de chuvas em polegadas e converta para milímetros. Todas as variáveis são reais. Todas as variáveis em questão são reais.
Colocando o Exemplo 5 em Linguagem C
5.3. Trabalhando com a Linguagem C
16
Programa do Exemplo 5
/*======================================
* Este é o programa do exemplo 5 - tópico 5 *
*======================================*/
# include <stdio.h>
# include <stdlib.h>
main() {
float POL,MILIM;
printf("Digite o valor da chuva em polegadas=");
scanf("%f",&POL);
printf("\n ");
printf("Chuva em Polegadas = %f\n", POL);
MILIM = 25.4 * POL;
printf ("\n");
printf("Chuva em Milímetros = %f\n", MILIM);
printf("\n ");
system("pause");
}
5.3. Trabalhando com a Linguagem C
17
Programa do Exemplo 5 : Continuação
Ao se executar o programa do exemplo 5, aparece a seguinte tela:
5.3. Trabalhando com a Linguagem C
18
Algoritmo Lanchonete
Variáveis: HAM , CHE , C1, FRITAS, REFRI, MILK: inteiro
CONTA, C1, C2, C3, C4, C5, CUSTO1 CUSTO2 CUSTO3 CUSTO4, CUSTO5 : real.
inicio
1.[Ler dados de entrada]
Leia ( HAM , C1 ) Leia ( CHE , C2 ) Leia (FRITAS , C3 ) Leia ( REFRI , C4 ) Leia ( MILK , C5 )
Exemplo 6:Fazer um algoritmo que leia uma quantidade de itens comprados ( HAM, CHE, FRITAS, REFRI, MILK ), bem como seus custos ( C1, C2, C3, C4, C5 ) e calcule a conta final. As variáveis relativas a itens comprados são inteiras e as variáveis relativas a custo são reais.
: Algoritmo do Exemplo 6
5.3. Trabalhando com a Linguagem C
19
2. [Calcular o custo total de cada item]
CUSTO1 HAM * C1 CUSTO2 CHE * C2 CUSTO3 FRITAS * C3 CUSTO4 REFRI * C4 CUSTO5 MILK * C5 3. [Calcular a conta final]
CONTA CUSTO1 + CUSTO2 + CUSTO3 + CUSTO4 + CUSTO5 4. [Impressão de resultados]
Escreva (´Hambúrguer (R$´,C1`)`,CUSTO1) Escreva (´Chesburguer (R$´,C2`)`,CUSTO2) Escreva (´Batatas fritas (R$´,C3`)`,CUSTO3) Escreva (´Refrigerantes (R$´,C4`)`,CUSTO4) Escreva (´Milkshake (R$´,C5`)`,CUSTO5) Escreva (´Total`,CONTA)
Saída
Algoritmo do Exemplo 6
Colocando o Exemplo 6 em Linguagem C
5.3. Trabalhando com a Linguagem C :
20
Programa do Exemplo 6
/* ---
* Programa do exemplo 6 - Tópico 5 *
* Cálculo da Conta de uma Lanchonete *
*---*/
#include <stdio.h>
#include <stdlib.h>
main() {
float C1, C2, C3, C4,C5, CONTA; //Declara variáveis float CUSTO1, CUSTO2, CUSTO3, CUSTO4,CUSTO5;
int HAM, CHE, FRITAS, REFRI, MILK;
/*Ler dados de entrada*/
printf("DIGITE A quantidade de hamburgueres\n");
printf("consumida e o seu custo unitario ");
scanf("%d%f",&HAM,&C1);
printf("\n\n");
5.3. Trabalhando com a Linguagem C :
21
Programa do Exemplo 6 : Continuação
printf("DIGITE A quantidade de Chesburgueres\n");
printf("consumida e o seu custo unitario ");
scanf("%d%f",&CHE,&C2);
printf("\n\n");
printf("DIGITE A quantidade de Fritas\n");
printf("consumida e o seu custo unitario ");
scanf("%d%f",&FRITAS,&C3);
printf("\n\n");
printf("DIGITE A quantidade de Refrigerantes\n");
printf("consumida e o seu custo unitario ");
scanf("%d%f",&REFRI,&C4);
printf("\n\n");
22
Programa do Exemplo 6 : Continuação
printf("DIGITE A quantidade de Milkshake\n");
printf("consumida e o seu custo unitario ");
scanf("%d%f",&MILK,&C5);
/*
Calcular o custo de cada item*/CUSTO1 = HAM * C1;
CUSTO2 = CHE * C2;
CUSTO3 = FRITAS * C3;
CUSTO4 = REFRI * C4;
CUSTO5 = MILK * C5;
/*Calcular a conta final*/
CONTA = CUSTO1 + CUSTO2 + CUSTO3 + CUSTO4 + CUSTO5;
23
Programa do Exemplo 6 : Continuação
/*Impressão de resultados*/
printf("===================================\n\n");
printf ("Hamburguer (%f R$) = %f\n",C1,CUSTO1);
printf ("Chesburguer (%f R$) = %f\n",C2,CUSTO2);
printf ("Batatas fritas(%f R$) = %f\n",C3,CUSTO3);
printf ("Refrigerantes (%f R$) = %f\n",C4,CUSTO4);
printf ("Milkshake (%f R$) = %f\n",C5,CUSTO5);
printf ("==================Total = %f\n\n",CONTA);
system("pause");
}
Ao se executar o programa do exemplo 6, aparece a seguinte tela:
24
Programa do Exemplo 6 : Continuação
25
Suponha que temos duas variáveis numéricas, A e B, cujos valores são diferentes, e desejamos imprimir a maior delas.
5.4 Seleção de Ações Alternativas
Neste caso utilizamos uma construção chamada Se_Então_Senão
SIM NÃO
A > B ?
escreva (A) escreva (B)
26
Em Linguagem Algorítmica a construção Se_Então_Senão tem o seguinte formato:
Se “condição”
então “alternativa verdadeira”
senão “alternativa falsa”
Exemplo:
Se A > B
então Escreva ( A ) senão Escreva ( B )
5.4 Seleção de Ações Alternativas
27
Um conjunto especial de operadores relacionais é solicitado para expressar condições. São eles:
!=
<=
>=
==
<
>
Operador em Linguagem C
não igual ( diferente de )
≠
menor do que ou igual a
≤
maior do que ou igual a
≥
igual a
=
menor do que
<
maior do que
>
Significado Operador em
Linguagem Algorítmica
5.4 Seleção de Ações Alternativas
28
Exemplo 7:Fazer um algorítmo em que dadas as três notas individuais em três aspectos do ano escolar (Lab, Exame_inter, Exame_final) para um estudante chamado Nome. O algorítmo deve calcular a média final com pesos de 20%, 30% e 50%, respectivamente. O relatório de saída deve fornecer o nome do aluno, suas notas individuais,sua média final e uma mensagem caso o aluno esteja reprovado. A variável Média é real.
Algoritmo Relatório
Variáveis: Lab, Exame_inter, Exame_final, Média : reais Nome : cadeia de caractere
Início
1. [Ler dados]
Leia [Nome, Lab, Exame_inter, Exame_final]
2. [Calcular a média]
Média 0.2 * Lab + 0.3 * Exame_inter + 0.5 * Exame_final
5.4 Seleção de Ações Alternativas
29
3. [Imprimir resultados]
Escreva (´Nome estudante:´, Nome) Escreva (´Nota Laboratório:`, Lab)
Escreva (´Exame Intermediário:`, Exame_inter) Escreva (´Exame Final`, Exame_final)
Escreva ( ´Média Final:`, Média) 4. [Verificar se tem aluno reprovado]
Se Media < 5.0
então Escreva (´Reprovado`) Fim
5.4 Seleção de Ações Alternativas
Exemplo 7: Continuação....
30
5.4 Seleção de Ações Alternativas
Exemplo 8: Faça um algoritmo que leia dois valores, determine o maior deles e o imprima com uma mensagem de identificação. Assumir que todas as variáveis são inteiras.
Algoritmo Mostre
Variáveis: Valor1, Valor2, Max : inteiras Início
1. [Ler os valores]
Leia ( Valor1, Valor2 ) 2. [Determinar o maior]
Se Valor1 > Valor2 então Max Valor1
Escreva (´O Primeiro valor é maior`) senão Max Valor2
Escreva (´O Segundo Valor é maior`)
3. [Imprimir o maior valor]
Escreva (´Maior Valor =`, Max) 4. [Terminar]
Fim
31
5.4.1
5.4.1 Diagrama de blocos Diagrama de blocos - - Fluxograma Fluxograma 5.4 Seleção de Ações Alternativas
Como já foi dito anteriormente, antes de se fazer um programa, deve-se fazer um algoritmo de problema. Para tanto temos utilizado uma linguagem algorítmica que também chamamos de portugol.
Uma outra maneira de se escrever algoritmos é através de fluxograma ou diagrama de bloco. No fluxograma, as ações a serem executadas são representadas de maneira gráfica.
Embora a linguagem algorítmica seja mais utilizada, existem vários livros que utilizam o fluxograma para explicar partes do algoritmo, devido ao seu forte apelo visual
A seguir mostramos rapidamente as ferramentas utilizadas para a
confecção de um fluxograma. 32
Símbolo
Símbolo Descrição Descrição
Inicio/Fim Delimita o início ou o final das instruções.
Leitura de dados (através do teclado, pex).
Leitura
Avaliação de uma condição.
Cond
Apresentação de resultados.
Resultados
Operacoes Atribuição ou operação de processamento.
Fluxo de execução.
Conexão entre partes do algoritmo.
5.4.1 Diagrama de blocos - Fluxograma 5.4.1 Diagrama de blocos - Fluxograma
5.4.1 Diagrama de blocos - Fluxograma
33
Suponha duas variáveis numéricas, A e B, com valores diferentes, e deseja-se imprimir a
maior delas.
Problema Maior
Variaveis A, B;
Inicio 1. Ler(A,B);
2. Se (A > B) entao imprimir A;
Senao imprimir B;
Fim
Algoritmo Maior V
Inicio Ler A,B;
Se A>B
Escreva(B);
Escreva(A);
Final
F 5.4.1 Diagrama de blocos - Fluxograma
34
Exemplo 9 : Faça um algoritmo que leia três números A, B e C e imprima o valor do maior. Assumir valores distintos e reais.
Algorítmo Max_3
Variáveis A, B, C, Max : reais Início
1. [Ler dados]
Leia (A, B, C)
Em algumas aplicações, uma das alternativas de uma estrutura Se_Então_Senão pode envolver outras decisões
5.4.2 Seleção de Ações Alternativas : Ses Encaixados
5.4.2 Seleção de Ações Alternativas : Ses Encaixados35
2. [Determinar o maior valor, comparando pares]
Se A > B
Então Se A > C
então Max A ( A > B,A > C ) senão Max C ( C > A > B ) Senão Se B > C
então Max B ( B > A, B > C ) senão Max C ( C > B > A ) 3. [Imprimir o maior valor]
Escreva (´Maior valor =`, Max) 4. [Terminar]
Fim
Exemplo 9: Continuação....
Se A > B
Se A > C V F
V V
A; B;
Se B > C F
C;
C;
F Inicio Ler A,B,C;
Escreva(Max);
Final
5.4.2 Seleção de Ações Alternativas : Ses Encaixados
36
Ex1: Se C1
então Se C2 então S1 senão S2
Em que condições S2 é executado?
Cuidado com a paragrafação
onde: C1 e C2 significam condições e S1 e S2, comandos
Isso não fica claro.
5.4.2 Seleção de Ações Alternativas : Ses Encaixados
37
Ex2:
Se C1 Se C1
então Se C2 então Se C2 então S1 então S1 senão S2 senão S2
5.4.2 Seleção de Ações Alternativas : Ses Encaixados
Neste exemplo, o comando SeC2só será executado se a condição C1for Verdadeira. Se C1for falsa, nenhum comando será Executado.
Neste exemplo, o comando SeC2só será executado se a condição C1for verdadeira. Se ela for falsa, o comando S2será executado
38
5.4.2 Seleção de Ações Alternativas : Ses Encaixados
Exemplo 10:Uma empresa decidiu dar uma gratificação de Natala seus funcionários. Esta gratificação é calculada com base no número de horas extras trabalhadas e o número de horas de falta. A fórmula para se calcular o prêmio é a seguinte:
Extra – 2 /3 * Faltas.
O prêmio é distribuído segundo a tabela a seguir:
10
<= 10 horas
20
> 10 mas <= 20 horas
30
> 20 mas <= 30 horas
40
> 30 mas <= 40 horas
50
> 40 horas
Prêmio (R$)
Extra – 2/3 * Faltas Pede-se um algoritmo e um programa em C, para
ler informações de funcionários e calcular o
prêmio a ser dado.
39
Algoritmo Bônus
Variáveis: Extras, Faltas, Pagamentos : reais Nome : cadeia
Início
1. [Ler informações de um funcionário]
Leia (Nome, Extras, Faltas) 2. [Calcular o prêmio]
Se Extras – (2/3.0) * Faltas > 40 Então Pagamento 50
Senão Se Extras – (2/3.0) * Faltas >30 Então Pagamento 40
Senão Se Extras – (2/3.0) * Faltas >20 Então Pagamento 30
Senão Se Extras – (2/3.0)*Faltas>10 Então Pagamento 20 Senão Pagamento 10 3. [Imprimir resultados]
Escreva (´Prêmio para`, Nome,`=R$`, Pagamento) Fim
Exemplo 10: continuação
Se A > 40
Se A > 30
Se A > 20
Se A > 10 V F
F
F
V
V
F
V
P←←←←50;
P←←←←40;
P←←←←30;
P←←←←20;
P←←←←10; 40
Podemos melhorar este algorítmo, calculando ovalor do teste (Extra – (2/3.0) * Faltas)somente uma vez. Para isto vamos introduzir uma variável temporária (Valor_teste).2.1 [Calcular o valor teste]
Valor_teste Extras – (2/3.0) * Faltas 2.2 [Calcular o prêmio]
Se (Valor_teste > 40) Então Pagamento 50 Senão Se Valor_teste > 30
Então Pagamento 40 Senão Se Valor_teste > 20
Então Pagamento 30 Senão Se Valor_teste > 10
Então Pagamento 20 Senão Pagamento 10 Exemplo 10:
continuação
41
Comando if
# Sintaxe:
if ( expressão é verdadeira )
execute comando ou bloco de comandos
# Exemplo:
Falso = 0 Verdadeiro ≠0
if (contador > 9) contador = 0;
5.4.3 Seleção de Ações Alternativas: O Comando if
Em linguagem C a construção Se – Então - Senão é feita através do:
42
# Exemplo:
OBS: Quando dentro do comando if, forem executados mais de um comando (bloco de comando) é
necessário colocar chaves, {}, para marcar o inicio e o fim dos comandos a serem executados.
if (contador >9) {
contador = 0;
soma = 32 }
Aqui tem duas ações sendo feitas dentro da condição verdadeira
Chave marcando o fim da condição verdadeira Chave marcando o inicio da condição verdadeira
5.4.3 Seleção de Ações Alternativas: O Comando if
43
Fazer um programa em C que leia um número e impri- ma uma mensa- gem dizendo se ele é maior que 10, menor ou igual a 10.
#include <stdio.h>
#include <stdlib.h>
main ()
{ /* Inicio do programa */
int num;
printf("Digite um numero: ");
scanf("%d",&num);
if (num > 10)
printf ("\n\n O numero e maior que 10");
if (num == 10) { /* Inicio do if */
printf("\n\n Voce acertou!\n");
printf("O numero digitado e igual a 10.");
} /* fim do if*/
if (num < 10)
printf("\n\n O numero e menor que 10");
system("pause");
}
Observe a chave { marcando o inicio do if
Exemplo 11
5.4.3 Seleção de Ações Alternativas: O Comando if
44
5.4.4 Seleção de Ações Alternativas: O Comando else else
O Comandoelsepode ser considerado um complemento docomando if, cujos comandos serão executados SOMENTE SE a expressão, especificada após o comando if, for 0 (falsa).
#
Sintaxe:if ( expressão é verdadeira )
execute comando1 ou bloco1 de comandos
else
execute comando2 ou bloco2 de comandos
Falso = 0 Verdadeiro ≠0
45
#include <stdio.h>
#include <stdlib.h>
main ( ) {
intnum;
printf ("Digite um numero: ");
scanf ("%d", &num);
if(num == 10) {//inicio então printf ("\n\n Voce acertou!\n");
printf ("O numero e igual a 10.\n");
}//fim então else{//inicio senão
printf ("\n\n Voce errou!\n");
printf ("O numero e diferente de 10.\\nn");
}//fim senão system("pause");
}
Refazer o programa em C do exemplo 11 anterior, utilizando o comando else
Exemplo 12 Exemplo 12 5.4.4 Seleção de Ações Alternativas: O Comando else else
46
5.4.5 Seleção de Ações Alternativas: if-else encaixados
É possível aninhar construções do tipo if-else em diversos níveis.
if (cond1) /* if1 */
if (cond2) /* if2 */
comando if2 ;
else /* else2 */
comando else2 ;
else /* else1 */
if (cond3) /* if3 */
if (cond4) /* if4 */
comando if4 ;
else /* else4 */
comando else4 ;
else /* else3 */
comando else3 ;
47
5.4.6- Exercícios resolvidos - Comando If If- - else else Exercício 1 Colocar o Exemplo 7 em Linguagem C
#include <stdlib.h>
#include <stdio.h>
main() {
// declarar variáveis
floatlab,exame1, exame_final, media;
charnome[30];
//1. [Ler dados]
printf( "Digite o nome do aluno: ");
scanf("%s",&nome);
printf("\n\n");
printf("Digite as notas de: lab, exame1 e exame_final, do aluno:%d\n", nome);
scanf("%f%f%f",&lab,&exame1,&exame_final);
//2. [Calcular a média]
media= 0.2*lab + 0.3* exame1 + 0.5*exame_final; continua na página seguinte 48
Continuação do Exercício 1 // 3. [imprimir resultados]
printf ("\nNome. estudante:%s\n",nome);
printf("\n");
printf("Nota Laboratorio: %f\n\n",lab);
printf("Exame1: %f\n\n",exame1);
printf("Exame Final: %f\n\n",exame_final);
printf("Media Final: %f\n\n",media);
if(media < 5.0)
printf("Reprovado\n\n\n");
else
printf("Aprovado\n\n");
system("PAUSE");
}// fim programa
5.4.6- Exercícios resolvidos - Comando If If- - else else
49
Exercício 2: Colocar o Exemplo 9 em Linguagem C
#include <stdlib.h>
#include <stdio.h>
main( )
{// declarar variáveis floatA, B, C, max;
//1. [Ler dados]
printf( "Digite tres numeros A, B, C\n");
scanf("%f%f%f",&A,&B,&C);
// 2. [Determinar o maior valor, comparando pares]
if(A > B) { if(A > C)
{ max = A ; //( A > B , A > C ) printf( "\nO maior valor eh o A\n");
} else
{ max = C ; // (A > B e C >A ) printf( "\nO maior valor eh o C\n");
} }
continua na página 50 Exemplo 9 :Faça um programa que leia três números A, B e C e imprima o valor do maior.Assumir valores distintos e reais.5.4.6- Exercícios resolvidos - Comando If If- - else else
50
Continuação do Exercício 2 else
{ if(B > C) // ( B > A, B > C ) { max = B;
printf( "\nO maior valor eh o B\n");
} else
{ max = C; // ( C > B > A )
printf( "\nO maior valor eh o C\n");
} }
// 3. [Imprimir o maior valor]
printf ("\nMaior valor =%f\n\n", max);
system("pause");
} //4. Fim do programa
5.4.6- Exercícios resolvidos - Comando If If- - else else
51
#include <stdlib.h>
#include <stdio.h>
main ( ) {
int a, b, c, maior, meio, menor ; // declaração de variáveis.
// Leitura de dados
printf(" Entre com tres numeros inteiros\n");
scanf("%d %d %d", &a, &b, &c);
if ( a > b ) if ( a > c )
{ maior = a;
if ( b > c ) { meio = b; menor = c; } else { meio = c; menor = b; } }
else { maior = c; meio = a; menor = b; }
continua na próxima páginaExercício 3: Refazer o programa do Exercício 2 para imprimir os 3 números na ordem crescente.
5.4.6- Exercícios resolvidos - Comando If If- - else else
52
else
if ( a > c ) { maior = b; meio = a; menor = c; } else
{ menor = a;
if ( b > c ) { maior = b; meio = c; } else { maior = c; meio = b; } }
printf("Em ordem crescente: %d %d %d\n\n", menor, meio, maior);
system("pause");
} //fim programa
Continuação do Exercício 3
5.4.6- Exercícios resolvidos - Comando If If- - else else
53
5.4.7- Exercícios para Casa - Comando If If- - else else
1) Colocar em Linguagem C os algoritmos dos exemplos 8, e 10.
2) Fazer um programa em C que leia 4 números (A, B, C, D) e encontre o maior deles. Imprima uma mensagem dizendo qual deles é o maior e o valor do maior.
3) Faça um programa em C que calcule o aumento de salário para o corrente ano. Se salário >1000 o aumento é de 5%. Senão o aumento é de 7%.
4) Preparar um algoritmo e um programa em C para ler os comprimentos dos três lados de um triângulo (S1, S2, e S3) e determinar que tipo de triângulo temos, com base nos seguintes casos. Sejam A o maior dos lados de S1, S2, e S3 e B e C os outros dois lados. Então:
Se A ≥B + C nenhum triangulo é formado
Se A2 = B2+ C2um triangulo retangulo é formado, Se A2 > B2+ C2um triangulo obtusangulo é formado Se A2< B2+ C2um triangulo acutangulo é formado
53 54
5) Faça um programa que leia dois valores, o primeiro servindo de indicador de operação e o segundo correspondendo ao raio de uma circunferência. Caso o primeiro valor lido seja igual a 1, calcular e imprimir a área desta circunferência. Se o valor lido for 2, calcular e imprimir o perímetro da circunferência. E se o valor lido for diferente destes dois valores; imprimir uma mensagem dizendo que o indicador de operação foi mal fornecido.
6) Fazer um programa que: dada a altura e peso de uma pessoa, calcule seu índice de massa corporal. Fórmula: peso dividido por altura ao quadrado. Faixas: <= 18,5 - abaixo do peso normal; > 18,5 e <= 25 - peso normal; > 25 e <=30 - peso acima do normal; acima de 30 - peso excessivo.
54
5.4.7- Exercícios para Casa - Comando If If- - else else
55
7) Faça um programa que leia dois valores, o primeiro servindo de indicador de operação e o segundo correspondendo ao raio de uma circunferência. Caso o primeiro valor lido seja igual a 1, calcular e imprimir a área desta circunferência. Se o valor lido for 2, calcular e imprimir o perímetro da circunferência. E se o valor lido for diferente destes dois valores; imprimir uma mensagem dizendo que o indicador de operação foi mal fornecido.
8)Fazer um programa que resolva uma equação de segundo grau, realizando consistências dos valores do discriminante e do coeficiente "a". Caso o discriminante seja negativo, deverá apenas ser impressa a mensagem: " Esta equação não possui raízes reais"
. Caso o coeficiente "a" seja igual à zero, deverá ser impressa a mensagem: " Esta não é uma equação de segundo grau" e deverá ser fornecido o valor da única raiz. Se o discriminante for maior ou igual a zero e o coeficiente "a" não for nulo, deverão ser impressas:
"as raízes da equação: ax2 + bx + c = 0 são R1 = xxx e R2 = xxx".
55
5.4.7- Exercícios para Casa - Comando If If- - else else
56
Resolução Exercícios para Casa (1)
#include <stdlib.h>
#include <stdio.h>
// Programa: Mostre o maior de 2 numeros main()
{
int Valor1, Valor2, Max;
//1. [Ler os valores]
printf("Digite dois numeros \n");
scanf("%d%d",&Valor1,&Valor2 );
//2. [Determinar o maior]
if (Valor1 > Valor2) { Max = Valor1;
printf ("\nO Primeiro valor eh maior\n");
}
Colocar o exemplo 8
em C
na próxima continua página57
else
{ Max = Valor2;
printf ("\nO Segundo Valor eh maior\n");
}
//3. [Imprimir o maior valor]
printf("Maior Valor =%d\n\n", Max);
//4. [Terminar]
system("PAUSE");
}
Resolução Exercício para Casa 1
58
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
main()
{ int a, b, c;
float delta, raiz1, raiz2;
printf("digite os coeficientes a, b, c da equacao\n");
scanf("%d%d%d",&a,&b,&c);
if(a==0)
{ printf(" esta equacao eh de 1o. grau\n");
raiz1= -c/b;
printf(" sua raiz eh: %f \n", raiz1);
} else
{ delta=(pow(b,2)-4*a*c);
if(delta >= 0)
{ raiz1=(b+sqrt(delta))/(2*a);
raiz2=(b-sqrt(delta))/(2*a);
printf("as raizes sao:R1= %f,R2=%f \n",raiz1,raiz2);
}
else printf("Esta equacao nao possui raizes reais\n");
}
system("PAUSE");
}
Resolução Exercício para Casa (8)
59
5.4.8 Aplicação: O paradoxo da inovação
Os dados do censo (que ocorre a cada 10 anos) de 1880 dos EUA levaram quase 8 anos para serem processados.
Temia-se que os dados do censo de 1890 não estivessem processados em 1900.
Herman Hollerith (estatístico):
Foi encarregado pela Agência Estatística dos EUA de desenvolver uma técnica para acelerar o processamento dos dados do censo, levando apenas 3 anos.
60
Lei de Moore:O fundador da Intel, Gordon Moore, constatou que a capacidade de processamento dos computadores dobra a cada 1 ano, enquanto os custos permanecem fixos.
Problema:Imagine que uma tarefa deve ser processada e levará 8 anos e que não pode ser movida da máquina uma vez iniciada. De acordo com a Lei de Moore deve-se esperar a melhoria dos processadores ou deve-se começar hoje ?
?
Solução: O senso comum diz que é melhor começar agora, mas antes de por a mão na massa é bom olhar a Tabela dada a seguir:
!
5.4.8 Aplicação: O paradoxo da inovação
61
Tempo Total (anos) Tempo de
Desenvolvimento (anos)
Tempo de Processamento
(anos)
0 8 8
1 4 5
Início
0º. ano 1º. ano
2 2 4
2º. ano
Final 8º. ano 5º. ano 4º. ano
3 1 4
3º. ano 4º. ano
4 0,5 4,5
4º. ano 4º. ano
!
Observação: É melhor começar no 2º. ou 3º. Ano, pois com isso pode-se terminar antes a tarefa. Esta análise também pode ser útil para dividir recursos entre produção e pesquisa.5.4.8 Aplicação: O paradoxo da inovação
62
Forma Geral:O paradoxo da inovação pode ser formulado de acordo com três parâmetros: tempo de desenvolvimento t, taxa de aperfeiçoamento ae tempo de processamento p.
a
tt p
y ( 1 / ) +
=
No caso anterior, os valores eram:
p = 8 e a = 50% = 0.5. y t
t2 + 8
=
A fórmula para o caso geral será dada por:
Considerando-se t variável, a e p fixos, para encontrar o menor tempo y, pode-se fazer dy/dt = 0.
Alternativa: Vale a pena esperar se
p/(1/a) > 1 5.4.8 Aplicação: O paradoxo da inovação
63
Tempo Total (anos) Tempo de
Desenvolvimento (anos)
Tempo de Processamento
(anos)
0 8 8
1 4 5
Início
0º. ano 1º. ano
2 2 4
2º. ano
Final 8º. ano 5º. ano 4º. ano
3 1 4
3º. ano 4º. ano
4 0,5 4,5
4º. ano 4º. ano
No caso anterior: 8/(1/0.5) = 4 > 1 5.4.8 Aplicação: O paradoxo da inovação
64
// Programa: paradoxo da inovação.
#include <stdio.h>
#include <stdlib.h>
main() {
floata, p, r;
printf(“Forneça a e p:”);
scanf(“%f %f”,&a,&p);
r = p/(1/a);
if (r > 1.0) printf(“Espere”);
else
printf(“Comece”);
system(“pause”);
}
Código C
Algoritmo: Inovação variáveis: r,p,a: real;
Inicio
Escreva(“Forneça a e p”) Leia (a, p);
r (p/(1/a));
Se (r > 1.0)
Então Escreva(‘Espere’);
Senão
Escreva(‘Comece’);
Fim
Exemplo 12
5.4.8 Aplicação: O paradoxo da inovação
65
Um problema simples: Ano Bissexto. Simples ?
Quantos dias demora a Terra para dar uma volta completa no Sol ?
5.4.8 Aplicação: Ano Bissexto
66
Egito Antigo: 365 dias
Roma Antiga: 365,25 dias 4 anos = 1 dia intercalar Calendário Alexandrino
Calendário Juliano 4 anos = 1 ano bissexto
Mas o ano solar dura:
365,242199 dias !
3300 1 400
1 100
1 4
365 1
365,242199 ≅ + − + −
Ou seja:
5.4.8 Aplicação: Ano Bissexto
67
Ano Calendário Ano Solar
1º Ano
2º Ano
3º Ano
4º Ano
+ − + −
3300 1 400
1 100
1 4 365 1
* 2
3300 1 400
1 100
1 4
365 + 1 − + −
+ − + −
3300 1 400
1 100
1 4 365 1
* 3 365 dias
2*365 dias
− + −
+ +
3300 1 400
1 100
* 1 4 4 365 4
* 4 3*365 dias
4*365 dias
Mais um dia no ano ! Ano Bissexto !
Mas e quanto aos demais termos ?
5.4.8 Aplicação: Ano Bissexto
68
Em 1582, Gregório XIII:
Calendário Gregoriano
Nova definição para ano bissexto
3300 1 400
1 100
1 4
365 1
365,242199 ≅ + − + −
Cada 4 anos + 1 dia Cada 100 anos - 1 dia Cada 400 anos + 1 dia
5.4.8 Aplicação: Ano Bissexto
69
Algoritmo
OBSERVAÇÃO:Subtrair 1 dia do calendário a cada 3300 anos Seresto(ano/100) é 0 então
Se(ano/400) = 0 entãobissexto; (b) Senãonão_bissexto; (c) Senão
Se (ano/4) = 0 entãobissexto; (a) Senãonão_bissexto; (c) (a)Não divisível por 100 e
divisível por 4.
(b) Divisível por 100 e 400.
(c) Os demais anos não são Bissextos.
Exemplo 16- Ano Bissexto
Em 1582, Gregório XIII:
Calendário Gregoriano
Nova definição para ano bissexto
5.4.8 Aplicação: Ano Bissexto
70
//Exemplo 13: Programa que calcula quando um anoéBissexto
# include <stdio.h>
# include <stdlib.h>
main ( )
{intano, resto;
printf("Forneca o ano:");
scanf("%d",&ano);
if(ano%100== 0) if(ano%400== 0)
printf("O Ano %d eh bissexto \n\n", ano);
else
printf(" O Ano %d Nao e bissexto \n\n", ano);
else
if(ano%4== 0)
printf("O Ano %d eh bissexto \n\n", ano );
else
printf(" O Ano %d nao eh bissexto \n", ano);
system("pause");
}
5.4.8 Aplicação: Ano Bissexto- Programa em C
71
a) Exemplo de Conjunção : UM < 2 e UM < 0
verdadeiro falso falso
5.4.9 Seleção de Ações Alternativas: Condições Compostas Utilização de Condições Compostas
Utilização de Condições Compostas
Alguns problemas ficam mais simples se utilizarmos condições compostas ao invés de relações simples.
As condições compostas podem ser do tipo “e”
conjunção, “ou” disjunção e “não” negação.
Seja a variável UM = 1. As expressões a seguir resultam em:
72
b) Exemplo de disjunção : UM < 2 ou UM < 0
verdadeiro falso verdadeiro
c) Exemplo de negação : Não UM < 2
falso
OBS: As condições compostas podem ser utilizadas tanto nos comandos “Se” como nos
“repita condicionais”.
5.4.9 Seleção de Ações Alternativas: Condições Compostas
73
1) Suponha que I e J sejam variáveis inteiras com valores 6 e 12, respectivamente. Quais das seguintes condições são verdadeiras?
a) 2 * 1 ≤ J b) 2 * I – 1 < J c) I > 0 e I ≤ 10
d) I > 25 ou (I < 8 e J > 10) e) I < 4 ou J > 5
f) Não I > 6
Verdadeiro Verdadeiro
Verdadeiro Verdadeiro
Verdadeiro Verdadeiro
5.4.9 Seleção de Ações Alternativas: Condições Compostas
74
2) Assuma que A, B, C e D são variáveis e S
1, S
2, S
3e S
4são comandos ou alternativas.
a) Usando condições compostas reescreva as instruções abaixo:
Se A > B Então Se B ≤ C
então Se C ≠ D então S
1senão S
2senão S
3Senão S
45.4.9 Seleção de Ações Alternativas: Condições Compostas
75
Solução 1:
Se (A > B e B ≤ C) Então Se C ≠ D
então S
1senão S
2Senão Se (A > B e B > C) Então S
3Se (A ≤ B) Então S
4Solução 2:
Se (A > B e B ≤ C ) e (C ≠ D) então S
1Se (A > B e B ≤ C ) e (C = D) então S
2Se (A > B) e (B > C) então S
3Se (A ≤ B) então S
45.4.9 Seleção de Ações Alternativas: Condições Compostas
76
b) Reescrever a instrução abaixo, como uma estrutura “Se”
utilizando somente condições simples.
Se (A < B e C ≠ D) e (B > D ou B = D) então S
1Solução : Se A < B
Então Se C ≠ D
então Se B ≥ D então S
15.4.9 Seleção de Ações Alternativas: Condições Compostas
77
Operadores Lógicos em C Operadores Lógicos em C
Operador Significado
&& Conjunção lógica (“and”).
|| Disjunção lógica (“or”).
! Negação lógica (“not”).
A !A
Verdade Falso Falso Verdade
Negação
A B
Falso Falso Verdade Falso
Conjunção
Falso Verdade Verdade Verdade
A&&B Falso Falso Falso Verdade
A B
Falso Falso Verdade Falso
Conjunção
Falso Verdade Verdade Verdade
A||B Falso Verdade Verdade Verdade
5.4.9 Seleção de Ações Alternativas: Condições Compostas
78
# include <stdio.h>
# include <stdlib.h>
main ( ) {
intano, resto;
printf("Forneca o ano:");
scanf("%d",&ano);
if((ano%100== 0) && (ano%400== 0)) printf("O Ano %d eh bissexto \n\n", ano);
else { if((ano%4== 0) && (ano%100!= 0)) printf("O Ano %d eh bissexto \n\n", ano );
else
printf(" O Ano %d nao eh bissexto \n", ano); } system("pause");
}
Exemplo14:Refazer o programa do Ano Bissexto usando Condições Compostas
5.4.9 Seleção de Ações Alternativas: Condições Compostas
79
Exemplo15: Usando condições compostas, fazer um algoritmo em um programa em C que leia três números, A, B e C e imprima o maior deles. Assuma que os valores são diferentes.
Algorítmo Max_3
Variáveis A, B, C, Max : real Início
1. [Ler dados]
Leia ( A, B, C )
2. [Determinar o maior valor]
Se (A > B e A > C) então Max A Se (B > A e B > C) então Max B Se (C > A e C > B) então Max C 3. [Imprimir maior valor]
Escreva (´Maior valor =`, Max ) 4. [Terminar]
Fim
5.4.9 Seleção de Ações Alternativas: Condições Compostas
80
#include <stdlib.h>
#include <stdio.h>
main() { //Inicio
float A, B, C, Max;
// 1. [Ler dados]
printf("Digite tres numero diferentes\n");
scanf("%f%f%f",&A,&B,&C );
//2. [Determinar o maior valor]
if (A > B && A > C) Max = A;
if (B > A && B > C) Max = B;
if (C > A && C > B) Max = C;
//3. [Imprimir maior valor]
printf("Maior valor =%3.1f\n\n", Max ) system("pause");
}
Programa em C
5.4.9 Seleção de Ações Alternativas: Condições Compostas
81
Exemplo16: Fazer um algoritmo e um programa em C, utilizando condições compostas, que leia três números e imprima o maior e menor deles. Assume-se que os valores são diferentes.
Algorítmo Max_Min_3
Variáveis A, B, C, Max, Min : real Início
1. [Ler dados]
Leia ( A, B, C )
2. [Determinar o maior e menor valor]
Se (A > B e A > C) e (B < C) então Max A Min B Se (A > B e A > C) e (C < B) então Max A
Min C Se (B > A e B > C) e (A > C) então Max B
Min C
Se (B > A e B > C) e (A < C) então Max B Min A Se (C > A e C > B) e (B > A) então Max C
Min A Se (C > A e C > B) e (B < A) então Max C
Min B 3. [Imprimir o maior e o menor valor]
Escreva (´Maior valor =`, Max ) Escreva (´Menor valor =`, Min ) 4. [Terminar]
Fim
5.4.9 Seleção de Ações Alternativas: Condições Compostas
82
#include <stdlib.h>
#include <stdio.h>
main() {
float A,B, C,Max, Min;
//1. [Ler dados]
printf("Digite tres numeros diferentes\n" );
scanf("%f%f%f",&A,&B,&C);
//2. [Determinar o maior e menor valor]
if(A > B && A > C && B > C) { Max = A;
Min = C;}
if(A > B && A > C && B < C) { Max = A;
Min = B;}
if(B > A && B > C && A > C) { Max = B;
Min =C;} continua na próxima pg . . .
Programa em C
5.4.9 Seleção de Ações Alternativas: Condições Compostas
83
if(B > A && B > C && A < C)
… continuação
{Max= B;
Min = A;
}
if(C > A && C > B && B >A) { Max =C;
Min= A;
}
if (C > A && C > B && B < A) {Max = C;
Min = B;
}
//3. [Imprimir o maior e o menor valor]
printf("Maior valor =%4.1f\n\n",Max);
printf("Menor valor =%4.1f\n\n", Min);
system( "PAUSE");
}
5.4.9 Seleção de Ações Alternativas: Condições Compostas
84
5.4.10 Seleção de Ações Alternativas: Comando Switch Switch
Quando for necessário escolher uma dentre várias opções, ao invés de aninhar construções do tipo if-else em diversos níveis, pode ser preferível utilizar o comando Switch.
switch (expressão) {
case (constante 1): intruções 1; break;
case (constante 2): intruções 2; break;
...
case (constante n): intruções n; break;
default:instruções;
}
85
Fazer um programa que leia um caractere chindicando o estado civil e imprima uma mensagem de acordo com a correspondência:
Se (ch = C) Escreva(‘Casado’);
Se (ch = S) Escreva(‘Solteiro’);
Se (ch = D) Escreva(‘Divorciado’);
Se (ch = V) Escreva(‘Viuvo’);
Default Escreva(‘Estado Incorreto’);
Exemplo 17: Estado Civil
#include <stdio.h>
#include <stdlib.h>
main ( ) {
charch;
printf (“Qual estado civil: ");
scanf ("%c", &ch);
switch(ch) {
case ‘C’: printf (“Casado \n”); break;
case ‘S’: printf (“Solteiro \n”); break;
case ‘D’: printf (“Divorcio \n”); break;
case ‘V’: printf (“Viuvo \n”); break;
default: printf(“Est. Inc.”); break;
}//fim switch
system("pause");
}
Programa: Estado Civil
Não esquecer o break !
5.4.10 Seleção de Ações Alternativas: Comando Switch Switch
86
#include <stdio.h>
#include <stdlib.h>
main ( ) {
charch;
printf (“Qual estado civil: ");
scanf ("%c", &ch);
switch(ch) {
case ‘C’: printf (“Casado \n”);
case ‘S’: printf (“Solteiro \n”);
case ‘D’: printf (“Divorcio \n”);
case ‘V’: printf (“Viuvo \n”);
default: printf(“Est. Inc.”);
}//fim switch
system("pause");
}
Programa: Estado Civil
Qual estado civil: C Casado
Solteiro Divorcio Viuvo
Pressione uma tecla para continuar…
Resultado da Execução
!
Sem o break; todos os case abaixo do case
selecionado serão executados.
5.4.10 Seleção de Ações Alternativas: Comando Switch Switch
87
1) Escreva um programa que pede para o usuário entrar um número correspondente a um dia da semana e que então apresente na tela o nome do dia, utilizando o comando switch.
2) Dadas as seguintes informações de um funcionário: Numero funcional, idade, cargo e o seu salário bruto e considerando que:
a)O salário bruto teve um reajuste de 38%.
b)O funcionário receberá uma gratificação de 20% do salário bruto.
c)O Salário liquido total é descontado em 15%
Faça um programa para:
•Imprimir Numero funcional, idade e cargo.
•Imprimir o salário bruto.
•Imprimir o salário líquido.
5.4.10 Seleção de Ações Alternativas: Comando Switch Switch Exercícios
88
Mas, Continua...