• Nenhum resultado encontrado

5- A Lógica da Programação Comandos If-else

N/A
N/A
Protected

Academic year: 2022

Share "5- A Lógica da Programação Comandos If-else"

Copied!
22
0
0

Texto

(1)

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

3

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

(2)

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

(3)

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

(4)

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

(5)

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 :

(6)

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

(7)

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

(8)

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

(9)

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 Encaixados

35

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

(10)

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 Natal

a 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

P50;

P40;

P30;

P20;

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

(11)

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 do

comando 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

(12)

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

(13)

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

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

(14)

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

(15)

57

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

(16)

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

t

t p

y ( 1 / ) +

=

No caso anterior, os valores eram:

p = 8 e a = 50% = 0.5. y t

t

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

(17)

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

(18)

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

(19)

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

3

e S

4

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

1

senão S

2

senão S

3

Senão S

4

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

1

senão S

2

Senão Se (A > B e B > C) Então S

3

Se (A ≤ B) Então S

4

Solução 2:

Se (A > B e B ≤ C ) e (C ≠ D) então S

1

Se (A > B e B ≤ C ) e (C = D) então S

2

Se (A > B) e (B > C) então S

3

Se (A ≤ B) então S

4

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

1

Solução : Se A < B

Então Se C ≠ D

então Se B ≥ D então S

1

5.4.9 Seleção de Ações Alternativas: Condições Compostas

(20)

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

(21)

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;

}

(22)

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

Fim do if

Referências

Documentos relacionados

É primeiramente no plano clínico que a noção de inconscien- te começa a se impor, antes que as dificuldades conceituais envolvi- das na sua formulação comecem a ser

- Se o estagiário, ou alguém com contacto direto, tiver sintomas sugestivos de infeção respiratória (febre, tosse, expetoração e/ou falta de ar) NÃO DEVE frequentar

No caso dos dispositivos para testes de rastreio do sangue (à excepção dos testes de HBsAg e anti-HBc), todas as amostras verdadeiras positivas devem ser identificadas como

* Movement based refers to any Creative work, from any artistic area, using the movement as basis of work, research or critical approach. Movement understood as the movement of

Licenciatura em Pedagogia Paula Macchione Saes 255º Licenciatura em Pedagogia Luana Pommé Ferreira da Silva 256º Licenciatura em Pedagogia Lucas Gustavo Fiuza 257º Licenciatura

Artigo 17.. b) Promover as acções necessárias aos trabalhos de avaliação de candidaturas a financiamentos de programas e projectos de investigação cien- tífica e

Este Plano de Dados M2M se destina à prestação do Serviço Móvel Pessoal por meio de rede virtual (RV-SMP), exclusivamente para o tráfego de dados M2M (machine-to-machine), com o fim

DE SALDOS SEM TRANSIÇÃO DE SALDOS Secretaria: Capítulo: Divisão: 0 - ADMINISTRAÇÃO INTERNA. 04 - SERVIÇOS DE INVESTIGAÇÃO E FORÇAS DE SEGURANÇA E RESPECTIVOS 02 - POLÍCIA