Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


If_else_em_linguagem_c_pdf, Exercícios de Informática

Documento detalhato sobre as condiçoes em linguagem c, usando IF e ELSE

Tipologia: Exercícios

2021

Compartilhado em 22/01/2021

nilson-dias
nilson-dias 🇦🇴

5 documentos

1 / 28

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
1
Unesp – Campus de Guaratinguetá
Curso de Programação Computadores
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 = (L12+L22)1/2
3
Algoritmo: Pitágoras
variáveis LADO1, 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
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
Código C
// Dados os 2 catetos de um triângulo,
//este programa calcula a hipotenusa!
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
main()
{ //Inicio
float L1, L2, H, Q1,Q2;
printf(“Forneça L1 e L2:”);
scanf(“%f%f”,&L1,&L2);
Q1=pow(L1,2);
Q2=pow(L2,2);
H = sqrt(Q1 + Q2);
printf(“L1=%f, L2=%f, H=%f \n”,L1,L2,H);
system(“pause”);
}//Fim
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c

Pré-visualização parcial do texto

Baixe If_else_em_linguagem_c_pdf e outras Exercícios em PDF para Informática, somente na Docsity!

1

5- A Lógica da Programação^ Comandos IfComandos If Unesp – Campus de Guaratinguetá^ Curso de Programação ComputadoresProfa. Cassilda Ribeiro

- -elseelse

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, aomesmo tempo, aprender a fazer algoritmos e a colocá-los emlinguagem C. Exemplo 1:^ Dados os comprimentos dos lados de um triângulo (nasvariáveis LADO1 e LADO2), fazer um algoritmo para determinar eimprimir^ o^ comprimento^ do

terceiro^ lado^ (HIPOTENUSA).

5.1 Introdução Suponha que todas as variáveis sejam inteiras. hipotenusa lado1 lado

? 22 1/2^ H = (L+L)^12

3 Algoritmo: Pitágorasvariáveis^ LADO1, 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]HIPOTENUSA^ SQRT (Q1 + Q2);4. [Sair resultado]Escreva^ (´Lados =`, LADO1, LADO2, HIPOTENUSA); Fim

Declarações Instruções

5.1 Introdução

5.1 Introdução^ Algoritmo Algoritmo: PitágorasDeclarar variáveis;InicioLeia (L1, L2);Q1 ^ L1^ ↑^ 2;Q2 ^ L2^ ↑^ 2;H SQRT (Q1 + Q2);Escreva(L1,L2,H);Fim

Código C // Dados os 2 catetos de um triângulo,//este programa calcula a hipotenusa! #include #include #include main() { //Inicio float L1, L2, H, Q1,Q2;printf(“Forneça L1 e L2:”); scanf(“%f%f”,&L1,&L2);Q1=pow(L1,2);Q2=pow(L2,2);H = sqrt (Q1 + Q2);printf(“L1=%f, L2=%f, H=%f \n”,L1,L2,H);system(“pause”); }//Fim

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

5.2. Rastreando um Algoritmo tomados pelas variáveis a cada passo. L1=3Algoritmo L2=4^ O exemplo 2^ a seguir ilustra o rastreamento doalgoritmo do exemplo 1.

H=5 4

5.2. Rastreando um Algoritmo Depois de elaborado um algoritmo, como saber seele faz o que se supõe que faça?

Algoritmo Algoritmo: PitágorasDeclarar variáveis;Inicio Leia (L1, L2);Q1 ^ L1^ ↑^ 2; Q2 ^ L2^ ↑^ 2;H SQRT (Q1 + Q2);Escreva(L1,L2,H); Fim^6

5.2. Rastreando um Algoritmo Exemplo 2: Rastrear Pitágoras Suponha que conheçamos osdois catetos de um triânguloretângulos cujas medidas são3cm e 4cm. Então os dados deentrada são 3 e 4.^ Q2 Passo^ L1^ L2^ Q1^ H^ Saída 1?^3 4 9?^? 23 4 9 16?^?

1

2 3 4 7

5.2. Rastreando um Algoritmo Exemplo 3: Calcular Média Fazer um algorítmo que leiaquatro notas (NOTA1, NOTA2, NOTA3 e NOTA4 )^ e calcula a nota média,armazena o resultado navariável^ MEDIA. Oresultado final deve serimpresso com umamensagem explicativa. Todaas variáveis são reais.

Algoritmo Algoritmo NotasVariáveis N1, N2, N3, N4, MEDIA; Inicio1. [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 Aqui está sendo dada uma ordem para que o computador leia osdados necessários para calcular a média.

Exemplo 3: Calcular Média^ Fazer um algorítmo que leiaquatro notas (NOTA1,^ NOTA2, NOTA3 e NOTA4 )^ e calcula a nota média,armazena o resultado navariável^ MEDIA. Oresultado final deve serimpresso com umamensagem explicativa. Todaas variáveis são reais.

Algoritmo Algoritmo NotasVariáveis N1, N2, N3, N4, MEDIA; Inicio1. [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 Aqui está sendo dada uma ordem para que o computadorescreva na tela o valor da média que ele calculou.

5.2. Rastreando um Algoritmo

13 Exemplo 4:^ Fazer um algoritmo que leia um valor em dólar e oconverta para real.

O^ Exemplo 4^ emLinguagem C torna-se: Algoritmo ConversãoVariáveis:^ Qdolar, Qreal,taxa: real Inicio 1.[Ler a taxa e quantidade Qdolar]Leia (taxa, Qdolar)2. [Converter dolar para real]Qreal^ ^ taxa * Qdolar.3. [Sair resultados]Escreva (Qdolar“dolar =Qreal reais

)

5.3. Trabalhando com a Linguagem C Fim

/==================================== Este eh o programa do exemplo 4- t

ópico 5^ * ====================================/ #include #include main(){ float^ taxa, 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); Ordena ao computador queescreva na tela a frase emvermelho system("pause");} //Fim

Ordena aocomputador queleia e armazenena memória onúmero digitadopelo 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 * POL3. [Sair resultado]Escreva (´Quantidade de chuva em mm =`

,MILIMETROS) Exemplo 5:^ Fazer um algoritmo que leia uma quantidade dechuvas em polegadas e converta para milímetros. Todas asvariáveis são reais. Todas as variáveis em questão são reais. Fim

Colocando o^ Exemplo 5 em Linguagem C

5.3. Trabalhando com a Linguagem C

Programa do Exemplo 5

/====================================== Este é o programa do exemplo 5 - tópico 5

======================================/ # include # include 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);

5.3. Trabalhando com a Linguagem Cprintf("\n "); system("pause"); }

17

5.3. Trabalhando com a Linguagem C Programa do Exemplo 5 : Continuação Ao se executar o programa do exemplo 5, aparece aseguinte tela:

Exemplo 6:^ Fazer um algoritmo que leia uma quantidade deitens comprados ( HAM, CHE, FRITAS, REFRI, MILK ), bemcomo seus custos ( C1, C2, C3, C4, C5 ) e calcule a contafinal. As variáveis relativas a itens comprados são inteiras e asvariáveis relativas a custo são reais. Algoritmo LanchoneteVariáveis:^ HAM , CHE , C1, FRITAS, REFRI, MILK: inteiroCONTA, 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 )

: Algoritmo do Exemplo 6 5.3. Trabalhando com a Linguagem C 19

  1. [Calcular o custo total de cada item]CUSTO1^ ^ HAM * C1CUSTO2^ ^ CHE * C2CUSTO3^ ^ FRITAS * C3CUSTO4^ ^ REFRI * C4CUSTO5^ ^ MILK * C53. [Calcular a conta final]CONTA^ ^ CUSTO1 + CUSTO2 + CUSTO3 + CUSTO4 + CUSTO54. [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 :

Programa do Exemplo 6^20 _/ ------------------------------------_**^ Programa do exemplo 6 - Tópico

__*^ Cálculo^ da^ Conta de uma

Lanchonete^ _ -------------------------------------/_* **#include #include **^ 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 "); 5.3. Trabalhando com a Linguagem C : scanf("%d%f",&HAM,&C1);printf("\n\n");

25

5.4 Seleção de Ações Alternativas Suponha que temos duas variáveis numéricas, A e B,cujos valores são diferentes, e desejamos imprimir amaior delas. Neste caso utilizamos uma construção chamadaSe_Então_Senão^ SIM^

NÃO A > B?

escreva (A)^

escreva (B)

Em Linguagem Algorítmica a construção

Se_Então_Senão

tem o seguinte formato:Se “condição” então “alternativa verdadeira

5.4 Seleção de Ações Alternativassenão “alternativa falsa” Exemplo:^ Se A > B^ então^ Escreva ( A )^ senão^ Escreva ( B ) 27

^ Um conjunto especial de operadores relacionais ésolicitado para expressar condições. São eles:^ Operador^ > < ==>= <=^ !=

5.4 Seleção de Ações Alternativas emOperador^ emLinguagem CLinguagem^ SignificadoAlgorítmica^ maior do que >^ menor do que <^ igual a =^ maior do que ou igual a≥^ menor do que ou igual a≤^ não igual ( diferente de )≠

5.4 Seleção de Ações Alternativas Exemplo 7:^ Fazer um algorítmo em que dadas as três notas individuais emtrês aspectos do ano escolar (Lab, Exame_inter, Exame_final) para um estudantechamado 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 estejareprovado. A variável Média é real. Algoritmo RelatórioVariáveis:^ Lab, Exame_inter, Exame_final, Média : reaisNome : 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

29

5.4 Seleção de Ações Alternativas Exemplo 7: Continuação.... 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.0então Escreva (´Reprovado`) Fim

5.4 Seleção de Ações Alternativas Exemplo 8:^ Faça um algoritmo que leia dois valores, determine o maiordeles e o imprima com uma mensagem de identificação. Assumir quetodas as variáveis são inteiras. Algoritmo MostreVariáveis:^ Valor1, Valor2, Max : inteiras Início 1. [Ler os valores]Leia ( Valor1, Valor2 )2. [Determinar o maior]Se Valor1 > Valor2então Max^ ^ Valor1Escreva (´O Primeiro valor é maior) senão Max^ ^ Valor2Escreva (´O Segundo Valor é maior

  1. [Imprimir o maior valor]Escreva (´Maior Valor =`, Max)4. [Terminar] Fim ) 31

5.4.15.4.1^ Diagrama de blocosDiagrama de blocos

  • -^ FluxogramaFluxograma

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 temosutilizado uma linguagem algorítmica que também chamamos deportugol.  Uma outra maneira de se escrever algoritmos é através defluxograma ou diagrama de bloco. No fluxograma, as ações aserem executadas são representadas de maneira gráfica.  Embora a linguagem algorítmica seja mais utilizada, existemvários livros que utilizam o fluxograma para explicar partes doalgoritmo, devido ao seu forte apelo visual  A seguir mostramos rapidamente as ferramentas utilizadas para aconfecção de um fluxograma.^

Símbolo^ Símbolo

DescriçãoDescrição

5.4.1 Diagrama de blocos - Fluxograma Delimita o início ou o final das instruções. Inicio/Fim^ 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.

37

Ex2: Se C^

Se^ C

então^ Se^ C^

então^ Se^ C2 então S1 então^ S1 senão S2 senão^ S

5.4.2 Seleção de Ações Alternativas :

Ses Encaixados

Neste exemplo, o comando Se^ C2^ só será executadose a condição^ C1^ forVerdadeira. Se^ C1^ for falsa,nenhum comando seráExecutado.

Neste exemplo, o comando Se^ C2^ só será executado se acondição^ C1^ for verdadeira. Seela for falsa, o comando^ S2^ seráexecutado

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 nonúmero de horas extras trabalhadas e o número de horas defalta. 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 Prêmio (R$)Extra – 2/3 * Faltas (^) > 40 horas Pede-se um algoritmo eum programa em C, paraler informações defuncionários^ e calcular oprêmio a ser dado. 39 Exemplo 10: continuação Algoritmo BônusVariáveis: Extras, Faltas, Pagamentos : reaisNome : 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 > 40Então Pagamento^ ^50 Senão Se Extras – (2/3.0) * Faltas >30Então Pagamento^ ^40 Senão Se Extras – (2/3.0) * Faltas >20Então Pagamento^ ^30 Senão Se Extras – (2/3.0)*Faltas>10Então Pagamento^ ^20 Senão Pagamento^ ^10 3. [Imprimir resultados]Escreva (^ ´Prêmio para, Nome,=R$`, Pagamento) Fim

V Se A > 40^ P ←←←← 50; F V Se A > 30^ P ←←←← 40;F V Se A > 20 P ←←←← 30;F V Se A > 10^ P ←←←← 20; F P ←←←← 10; ^ Podemos melhorar este algorítmo, calculando o

valor do teste (Extra – (2/3.0) * Faltas)^ somente uma vez. Para isto vamosintroduzir uma variável temporária (Valor_teste).^ 2.1 [Calcular o valor teste]Valor_teste^ ^ Extras – (2/3.0) * Faltas2.2 [Calcular o prêmio]Se (Valor_teste > 40)Então Pagamento^ ^50 Senão Se Valor_teste > 30Então Pagamento^ ^40 Senão Se Valor_teste > 20Então Pagamento^ 

Exemplo 10:^ continuação^30 Senão Se Valor_teste > 10Então Pagamento^ ^20 Senão Pagamento^ ^10

41 Comando^ if # Sintaxe: if ( expressão é verdadeira )^ execute comando ou bloco de comandos # Exemplo:

Falso = 0Verdadeiro^ ≠^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:^ if ( contador > 9 )^ contador = 0;

OBS:^ Quando dentro do comando # Exemplo:

if, forem executados mais de um comando (bloco de comando) énecessário colocar chaves, {}, para marcar oinicio e o fim dos comandos a serem executados.^ if (contador >

Aqui tem duas açõessendo feitas dentro dacondição verdadeira) { contador = 0;soma = 32 }

5.4.3 Seleção de Ações Alternativas: O Comando if Chave marcando o inicioda condição verdadeira Chave marcando o fimda condição verdadeira 43

#include #include ^ main () Fazer um{^ /* Inicio do programa /programa em C^ int^ num;^ printf^ ("Digite um numero: "que leia umnúmero e impri-ma uma mensa-gem dizendo seele é maior que10, menor ouigual a 10. ); scanf ("%d",&num); if (num > 10)printf ("\n\n O numero digitado eh 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 digitado eh menor que 10");system("pause"); }

5.4.3 Seleção de Ações Alternativas: O Comando if Exemplo 11 Observe achave^ { marcando oinicio do if

5.4.4 Seleção de Ações Alternativas: O Comando

elseelse

O Comando^ else^ pode ser considerado um complemento docomando^ if, cujos comandos serão executadosSOMENTE SE^ a expressão, especificada após ocomando^ if , for 0 (falsa). #^ Sintaxe:^ if ( expressão é verdadeira

Falso = 0Verdadeiro^ ≠^0 ) execute comando1 ou bloco1 de comandos else execute comando2 ou bloco2 de comandos

49 Exercício 2: Colocar o^ Exemplo 9

em Linguagem C #include #include ^ main( ){// declarar variáveis^ float^ A, 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"^

Exemplo 9 :^ Faça um programaque leia três números A, B); } else { max = C ; // (A > B e C >A )^ continua na página 50 printf( "\nO maior valor eh o C\n" ); } } e C eimprima o valor do maior.Assumirvalores distintos e reais.

5.4.6- Exercícios resolvidos - Comando

IfIf--^ elseelse

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"

5.4.6- Exercícios resolvidos - Comando} } // 3. [Imprimir o maior valor] printf ("\nMaior valor =%f\n\n", max);system("pause"); } //4. Fim do programa

IfIf--^ elseelse

51

#include #include main ( ){ int a, b, c, maior, meio, menor ;

5.4.6- Exercícios resolvidos - Comando^ If-^ elseIf-else^ Exercício 3: Refazer o programa doExercício 2^ para imprimir os 3números na ordem crescente.^ // 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; }}continua na próximaelse { maior = c; meio = a; menor = b; }^ página

elseif^ ( 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-^ elseIf-else

53

5.4.7- Exercícios para Casa - Comando

If-^ elseIf-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 encontreo maior deles. Imprima uma mensagem dizendo qual deles é o maiore o valor do maior. 3)^ Faça um programa em C que calcule o aumento de salário para ocorrente ano. Se salário >1000 o aumento é de 5%. Senão oaumento é de 7%.4)^ Preparar^ um^ algoritmo^

e^ um^ programa^ em^ C^ para

ler^ os comprimentos dos três lados de um triângulo (S

, S, e^ S) e 123 determinar que tipo de triângulo temos, com base nos seguintescasos. Sejam A o maior dos lados de S

, S, e^ Se B e C os outros 123 dois lados. Então:Se A^ ≥^ B + C nenhum triangulo é formado^2 2 2 Se A= B+ Cum triangulo retangulo é formado,^2 2 2 Se A> B+ Cum triangulo obtusangulo é formado^2 2 2 Se A< B+ Cum triangulo acutangulo é formado

53

  1. Faça um programa que leia dois valores, o primeiro servindo deindicador de operação e o segundo correspondendo ao raiode uma circunferência. Caso o primeiro valor lido seja igual a1, calcular e imprimir a área desta circunferência. Se o valorlido for 2, calcular e imprimir o perímetro da circunferência. Ese o valor lido for diferente destes dois valores; imprimir umamensagem^ 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 pesonormal; > 18,5 e <= 25 - peso normal; > 25 e <=30 - pesoacima do normal; acima de 30 - peso excessivo.

54

5.4.7- Exercícios para Casa - Comando

If-^ elseIf-else

55 7 ) Faça um programa que leia dois valores, o primeiro servindo deindicador de operação e o segundo correspondendo ao raio deuma^ 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 lidofor diferente destes dois valores; imprimir uma mensagem dizendoque 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á apenasser impressa a mensagem: " Esta equação não possui raízes reais". Caso o coeficiente "a" seja igual à zero, deverá ser impressa amensagem: " Esta não é uma equação de segundo grau" e deveráser fornecido o valor da única raiz. Se o discriminante for maior ouigual 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

IfIf--^ elseelse

Resolução Exercícios para Casa (1) #include #include // 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"

Ex casa 1: Colocaro exemplo 8 em C^ continuana próximapágina

TempoTotal(anos)^61 Tempo de^ Tempo deDesenvolvimentoProcessamento(anos)(anos)^0

Início 0º. ano 1º. ano^2

2º. ano

Final 8º. ano 5º. ano 4º. ano 3 1

3º. ano^

4º. ano 4 0,^

4º. ano^

4º. ano 5.4.8 Aplicação: O paradoxo da inovaçãoObservação:^ É melhor começar no 2º. ou 3º. Ano, pois comisso pode-se terminar antes a tarefa. Esta análise também! pode ser útil para dividir recursos entre produção e pesquisa.

Forma Geral:^ O paradoxo da inovação pode ser formuladode acordo com três parâmetros: tempo de desenvolvimento

t, taxa de aperfeiçoamento^ a^ e tempo de processamento

p. pty +=^ t^ a )/ (^1) (

No caso anterior, os valores eram:^ p = 8 e a = 50% = 0.5.

(^8) ty += t 2

A fórmula para o caso geralserá dada por:^ Considerando-se^ t^ variável,

a^ e^ p

fixos, para encontrar o menortempo^ y, pode-se fazer^ dy/dt = 0.

Alternativa:^ Valea pena esperar sep/(1/a) > 1

5.4.8 Aplicação: O paradoxo da inovação 63

TempoTotal(anos) Tempo de^ Tempo deDesenvolvimentoProcessamento(anos)(anos)^0

Início 0º. ano 1º. ano^2

2º. ano

Final 8º. ano 5º. ano 4º. ano 3 1

3º. ano^

4º. ano 4 0,^

4º. ano^

4º. ano

5.4.8 Aplicação: O paradoxo da inovação^ No caso anterior: 8/(1/0.5) = 4 > 1

5.4.8 Aplicação: O paradoxo da inovação^ Código C^ Exemplo 12^ // Programa: paradoxo da inovação. Algoritmo: Inovação^ #include variáveis: r,p,a: real;#include Inicio^ main()Escreva(“Forneça a e p”){Leia (a, p);^ float^ a, p, r;printf(“Forneça a e p:”);r  (p/(1/a));scanf(“%f %f”,&a,&p);Se (r > 1.0)r = p/(1/a);Então Escreva(‘Espere’);^ if^ (r > 1.0)Senãoprintf(“Espere”);Escreva(‘Comece’);^ elseFim^ printf(“Comece”);system(“pause”);}

65

5.4.8 Aplicação: Ano Bissexto Um problema simples: Ano Bissexto. Simples?^ Quantos dias demora a Terra para dar umavolta completa no Sol?

Egito Antigo:^ 365 dias4 anos = 1 dia intercalarCalendário Alexandrino Roma Antiga:^ 365,25 dias4 anos = 1 ano bissextoCalendário Juliano Mas o ano solar dura:^ 365,242199 dias!

(^111133004001004) (^365) 365,

−+−+ ≅

Ou seja:

5.4.8 Aplicação: Ano Bissexto 67

Ano Calendário^

Ano Solar 1º Ano 2º Ano 3º Ano 4º Ano

365 dias2*365 dias^1111 ^ −+−+^365 *^3 ^33004001004 

 1114 −+−++ * 4  33004001004  3*365 dias^365 ^4 4365 dias^ Mais um dia no ano !Ano Bissexto!^ Mas e quanto aos demais termos?

5.4.8 Aplicação: Ano Bissexto

Em 1582, Gregório XIII: Nova definição para ano bissextoCalendário Gregoriano

(^111133004001004) (^365) 365,

−+−+ 5.4.8 Aplicação: Ano Bissexto≅ Cada 4 anos + 1 dia Cada 100 anos - 1 dia Cada 400 anos + 1 dia

73

1) Suponha que I e J sejam variáveis inteiras com valores 6e 12, respectivamente. Quais das seguintes condiçõessão verdadeiras? a)^ 2 * 1^ ≤^ J b)^ 2 * I – 1 < J^ Verdadeiro c)^ I > 0 e I^ ≤^10 Verdadeiro d)^ I > 25 ou (I < 8 e J > 10) e)^ I < 4 ou J > 5 f)^ Não I > 6

Verdadeiro^ Verdadeiro^ Verdadeiro Verdadeiro

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

Condições Compostas

2) Assuma que A, B, C e D são variáveis e S

, S, Se Ssão 12 3 4

comandos ou alternativas. a) Usando condições compostas reescreva as instruçõesabaixo:^ Se A > BEntã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

b) Reescrever a instrução abaixo, como uma estrutura “Se”utilizando somente condições simples.Se (A < B e C

5.4.9 Seleção de Ações Alternativas:^ Condições Compostas^ ≠^ D) e (B > D ou B = D)então S^1 Solução :^ Se A < BEntão Se C^ ≠^ D então Se B^ ≥^ D então S^1

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”). Negação A !A Verdade Falso Falso Verdade Conjunção A B^ A&&B Falso Falso^ Falso Verdade Falso^ Falso Falso Verdade^ Falso Verdade Verdade^ Verdade

Conjunção A B^ A||B Falso Falso^ Falso Verdade Falso^ Verdade Falso Verdade^ Verdade Verdade Verdade^ Verdade 5.4.9 Seleção de Ações Alternativas:

Condições Compostas

include # include main ( ) { int^ ano, 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"); 5.4.9 Seleção de Ações Alternativas: Exemplo14:^ Refazer o programa do Ano Bissexto usando CondiçõesCompostas }

Condições Compostas 79

Exemplo15:^ Usando condições compostas, fazer um algoritmo em umprograma em C que leia três números, A, B e C e imprima o maiordeles. Assuma que os valores são diferentes.^ Algorítmo Max_3Variáveis A, B, C, Max : real^ Início^ 1. [Ler dados]^ Leia ( A, B, C )

  1. [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
  1. [Imprimir maior valor] Escreva (´Maior valor =`, Max ) 4. [Terminar] Fim 5.4.9 Seleção de Ações Alternativas:

Condições Compostas

**#include #include **^ 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