Prévia do material em texto
Estrutura de controle Linguagem C Linguagem de Programação I 1 Adaptado do material da Profª Ms. Lília Marta Brandão Soussa Modesto if (<condição>) <instrução para condição verdadeira>; <instrução para condição falsa ou após ser verdadeira>; Exemplo: if (X != 10) printf (“\n Valor diferente de 10”); Y = X * 3; Desvio Condicional Simples if (<condição>) { <instrução 1 para condição verdadeira>; <instrução 2 para condição verdadeira>; <instrução 3 para condição verdadeira>; <instrução n para condição verdadeira>; } <instrução para condição falsa ou após ser verdadeira>; Exemplo: if (A > B) { X = A; A = B; B = X; } Z = A / 2; 2 Desvio Condicional Simples 3 Exemplo: Crie um programa que leia dois valores numéricos, efetue a adição e apresente o seu resultado caso o valor somado seja maior que 10. Algoritmo: 1- Ler dois números, no caso variáveis N1 e N2; 2- Efetuar a soma de N1 e N2, atribuindo o seu resultado na variável SOMA; 3- Se o valor da variável SOMA for maior que 10 então apresentar o seu valor. /* Programa 01 */ #include <stdio.h> #include <stdlib.h> void main(void) { int N1, N2, SOMA; printf ("\n Digite 2 numeros inteiros: "); scanf ("%d%d", &N1, &N2); SOMA= N1 + N2; if (SOMA >= 10) printf ("\n O resultado eh %d\n", SOMA); system("pause"); } Desvio Condicional Simples 4 Exercício: Crie um programa que leia duas notas, calcule a média aritmética e apresente a mensagem APROVADO se a média for maior ou igual a 7,0 e REPROVADO se a média for menor que 7,0. Algoritmo: 1- Ler duas notas, no caso variáveis N1 e N2; 2- Calcular a média de N1 e N2, atribuindo o seu resultado na variável MEDIA; 3- Se o valor da variável MEDIA for maior ou igual a 7,0 então apresentar a mensagem APROVADO. 4- Se o valor da variável MEDIA for maior ou igual a 7,0 então apresentar a mensagem REPROVADO. Desvio Condicional Simples 5 /* Programa 01 */ #include <stdio.h> #include <stdlib.h> void main(void) { float N1, N2, MEDIA; printf ("\n Digite a primeira nota: "); scanf ("%f", &N1); printf ("\n Digite a segunda nota: "); scanf ("%f", &N2); MEDIA = (N1 + N2)/2; if (MEDIA >= 7) printf ("\n APROVADO"); if (MEDIA < 7) printf ("\n REPROVADO"); system("pause"); } if (<condição>) <instrução para condição verdadeira>; else <instrução para condição falsa>; Exemplo: if (X == 5) Y = X * 3; else Y = X + 5; if (<condição>) { <instrução 1 para condição verdadeira>; <instrução 2 para condição verdadeira>; <instrução n para condição verdadeira>; } else { <instrução 1 para condição falsa>; <instrução 2 para condição falsa>; <instrução n para condição falsa>; } Exemplo: if (X == 5) { Y = X * 3; Z = X; X = Y + Z; } else { Y = X + 5; Z = X – 2; } Desvio Condicional Composto 6 7 Exemplo: Crie um programa que efetue o cálculo do reajuste de salário, segundo a tabela abaixo: Salário Reajuste < 500 15% >= 500 e <= 1000 10% > 1000 5% Desvio Condicional Encadeado Algoritmo: 1- Ler um valor para a variável SAL; 2- Verificar se o valor de SAL < 500, se sim reajustar em 15%; 3- Caso contrário, verificar se o valor de SAL <= 1000, se sim reajustar em 10%; 4- Caso contrário, reajustar SAL em 5%; 5- Apresentar o valor da variável SAL. /* Programa Reajusta Salário */ #include <stdio.h> #include <stdlib.h> #include <locale.h> void main() { float SAL; setlocale(LC_ALL, ""); printf ("\nDigite o Salário: "); scanf ("%f", &SAL); if (SAL < 500) SAL = SAL * 1.15; else if (SAL <= 1000) SAL = SAL * 1.10; else SAL = SAL * 1.05; printf ("\nSalário = %.2f\n", SAL); system("pause”); } Desvio Condicional Encadeado 8 Operador Lógico .e. Linguagem C: if (<condição1> && <condição2>) <instrução para condição1 e condição2 verdadeiras>; Exemplo: if (X >= 0 && X <= 9) printf (“\nValor válido”); Este operador é utilizado quando todas as condições necessitam ser verdadeiras. 9 Operador Lógico .ou. Linguagem C: if (<condição1> || <condição2>) <instrução para condição1 ou condição2 verdadeiras>; Exemplo: if (X == ‘F’ || X == ‘M’) printf (“\nOpção válida”); Este operador é utilizado quando pelo menos uma condição necessita ser verdadeira. 10 Operador Lógico .não. Linguagem C: if ( ! (<condição>)) <instrução para condição não verdadeira>; Exemplo: if ( ! ( X > 5)) printf (“\nValor menor ou igual a 5”); Este operador é utilizado quando for necessário inverter o resultado lógico da condição. 11 Exemplo Crie um programa que leia três valores para os lados de um triângulo, considerando lados como: A, B e C. Verifique se os lados formam realmente um triângulo, se sim, apresente qual tipo de triângulo é: equilátero, isósceles ou escaleno. Obs: É triângulo quando cada lado é menor que a soma dos outros dois lados. Então: A<B+C, B<A+C e C<A+B. Equilátero: possui todos os lados iguais: A=B e B=C Isósceles: possui 2 lados iguais e 1 diferente. (A=B e A<>C) ou (A=C e A<>B) ou (B=C e B<>A) Escaleno: possui todos os lados diferentes. A<>B, A<>C e B<>C. 12 /* Programa TRIANGULO */ #include <stdio.h> #include <stdlib.h> void main(void) { float A, B, C; printf ("\n Digite os 3 lados: "); scanf ("%f %f %f", &A, &B, &C); if (A < B+C && B < A+C && C < A+B) if (A == B && B == C) printf ("\n Triangulo Equilátero\n"); else if (A == B || A == C || B == C) printf ("\n Triangulo Isosceles\n"); else printf ("\n Triangulo Escaleno\n"); else printf ("\n Nao eh um triangulo\n"); System(“pause”); } Exemplo 13 14 Operador (Ternário) O Operador Ternário(?) é uma forma de simplificada de usar um único If-Else, podendo ser usado para atribuição ou para executar um comando. <variável> = <condição>?<operação1>:<operação2>; Se <condição> for verdadeira <variável> recebe resultado da <operação1> Senão <variável> recebe rsultado da <operação2> 15 Operador (Ternário) <variável> = <condição>?<operação1>:<operação2>; #include <stdio.h> #include <stdlib.h> int main (void ) { int numero, x; printf("Digite um numero: "); scanf("%d",&numero); x = numero >= 0 ? ++numero: --numero; printf("O novo valor de X e: %d\n", x); system("pause"); return(0); } Exemplo: Numero = 3 => x = 4 Numero = -1 => x = -2 16 Operador (Ternário) <condição>?<operação1>:<operação2>; #include <stdio.h> #include <stdlib.h> void main (void ) { int numero, x; printf("Digite um numero: "); scanf("%d",&numero); printf("O novo valor de X e: %d\n", numero >= 10 ? ++numero: --numero); system("pause"); } Aqui, já testa, substitui e o printf exibe. 17 Operador (Ternário) <condição>?<operação1>:<operação2>; #include <stdio.h> #include <stdlib.h> Void main (void ) { int a,b; printf("Entre com dois numeros: \n"); scanf("%d %d",&a,&b); /* a == b ? printf("Iguais") : printf("Diferentes"); */ printf("\n%s", a == b ? "Iguais\n" : "Diferentes\n"); } 18 Operador (Ternário) <condição>?<operação1>:<operação2>;#include <stdio.h> #include <stdlib.h> Void main (void ) { int a,b; printf("Entre com dois numeros: \n"); scanf("%d %d",&a,&b); if (a == b) printf(”\n Iguais"); else printf(”\n Diferentes"); /* printf("\n%s", a == b ? "Iguais\n" : "Diferentes\n"); */ } 19 Estrutura de Controle com Múltipla Escolha Sintaxe: switch <variável> { case <opção 1> : <operação 1>; break; case <opção 2> : <operação 2>; break; ... case <opção n> : <operação n>; break; default : <operação>; break; } Exemplo: Faça um programa que simule uma calculadora com as 4 operações básicas (Adição / Subtração / Multiplicação / Divisão). 20 Estrutura de Controle com Múltipla Escolha /* Programa Calculadora */ #include <stdio.h> #include <stdlib.h> void main(void) { float N1, N2, RES; char OP; printf ("\n Calculadora das 4 operacoes basicas \n"); printf ("\n Digite um numero: "); scanf ("%f", &N1); printf ("\n Digite outro numero: "); scanf ("%f", &N2); printf ("\n Digite a operacao [+ - / *]: "); fflush(stdin); OP = getchar(); 21 Estrutura de Controle com Múltipla Escolha switch (OP) { case '+' : RES = N1 + N2; break; case '-' : RES = N1 - N2; break; case '*' : RES = N1 * N2; break; case '/' : if (N2 != 0) RES = N1 / N2; else printf ("\n Divisao por ZERO”); break; default : printf ("\n Opcao Invalida"); break; } if (OP == '+' || OP == '-' || OP == '*' || OP == '/') printf ("\n %.1f %c %.1f = %.1f \n\n",N1,OP,N2,RES); } Exercícios 1) Faça um programa que leia dois números inteiros, e efetue a adição. Caso o resultado seja maior ou igual a 10, somar a ele mais 5 e mostrar o resultado; caso contrário, subtrair dele 7 e mostrar o resultado. 2) Faça um programa que leia quatro números inteiros e verifique para cada um se ele é divisível por 2 ou 3. 3) Faça um programa que leia um número e verifique se ele está entre 20 e 90, e mostre a mensagem se ele está entre esta faixa ou não. 22 Exercícios /* Programa 01 */ #include <stdio.h> #include <stdlib.h> void main(void) { int N1, N2, SOMA; printf ("\n Digite 2 numeros inteiros: "); scanf ("%d%d", &N1, &N2); SOMA= N1 + N2; if (SOMA >= 10) SOMA = SOMA + 5; else SOMA = SOMA - 7; printf ("\n O resultado eh %d\n", SOMA); } 23 printf ("\n O resultado eh %d\n", SOMA >= 10 ? SOMA + 5 : SOMA - 7); Exercícios 24 /* Programa 02 */ #include <stdio.h> #include <stdlib.h> void main(void) { int N1, N2, N3, N4, RESTO; printf ("\n Digite 4 numeros inteiros: "); scanf ("%d%d%d%d", &N1, &N2, &N3, &N4); if(N1 % 2 == 0 || N1 % 3 == 0 ) printf ("\n O numero %d eh divisivel por 2 ou 3\n", N1); if (N2 % 2 == 0 || N2 % 3 == 0 ) printf ("\n O numero %d eh divisivel por 2 ou 3\n", N2); if (N3 % 2 == 0 || N3 % 3 == 0 ) printf ("\n O numero %d eh divisivel por 2 ou 3\n", N3); if (N4 % 2 == 0 || N4 % 3 == 0 ) printf ("\n O numero %d eh divisivel por 2 ou 3\n\n", N4); } Exercícios 25 /* Programa 03 */ #include <stdio.h> #include <stdlib.h> int main(void) { system("color f0"); int N; printf ("\n Digite um numero: "); scanf ("%d", &N); if (N >= 20 && N <= 90) printf ("\n O numero %d esta na faixa de 20 a 90\n", N); else printf ("\n O numero %d nao esta na faixa de 20 a 90\n\n", N); system("pause"); return(0); } 4) Faça um programa que leia o sexo de uma pessoa (F/f/M/m), e imprima se é “Feminino” ou “Masculino” ou “inválido”. 5) Faça um programa que leia quatro valores referentes a quatro notas escolares de um aluno e imprima a mensagem dizendo que o aluno foi aprovado, se o valor da média escolar for maior ou igual a 7, prestará exame final de a média for menor que 7 e maior ou igual a 5 ou foi reprovado de a média for menor que 5. Apresente junto com a mensagem o valor da média do aluno para qualquer condição. Exercícios 26 /* Programa 04 */ #include <stdio.h> #include <stdlib.h> int main(void) { system("color f0"); int a; char S; printf ("\n Digite o sexo: "); fflush(stdin); S = getchar(); if (S == 'f' || S == 'F') // aspas simples para caracter e duplas para string printf ("\n O sexo eh Feminino \n"); else if(S == 'm' || S == 'M') printf ("\n O sexo eh Masculino \n"); else printf ("\n O sexo eh invalido \n\n"); system("pause"); return(0); } Exercícios 27 /* Programa 05 */ #include <stdio.h> #include <stdlib.h> int main(void) { system("color f0"); float n1, n2, n3, n4, media; printf ("\n Digite 4 notas: "); scanf ("%f%f%f%f", &n1, &n2, &n3, &n4); media = (n1 + n2 + n3 + n4) / 4; if (media >= 7) printf ("\n Aluno aprovado com media %.2f\n\n", media); else if (media < 7) || (media >= 5) printf ("\n Aluno prestará exame final com media %.2f\n\n", media); else printf ("\n Aluno reprovado com media %.2f\n\n", media); system("pause"); return(0); } Exercícios 28 6) Faça um programa que leia três valores (variáveis A, B e C) e efetue o cálculo da equação completa de segundo grau, apresentando as duas raízes, se para os valores informados for possível efetuar o referido cálculo. Lembre-se de que a variável A deve ser diferente de zero. Considere X1 e X2 as variáveis para as raízes. E use as fórmulas: X1 = -B + √Δ e X2 = -B - √Δ 2 * A 2 * A Δ = B2 – 4 * A * C Exercícios 29 7) Faça um programa que simule uma calculadora com as 4 operações básicas (Adição / Subtração / Multiplicação / Divisão). /* Programa Calculadora */ #include <stdio.h> #include <stdlib.h> int main(void) { float N1, N2, RES; char OP; printf ("\n Calculadora das 4 operacoes basicas \n"); printf ("\n Digite um numero: "); scanf ("%f", &N1); printf ("\n Digite outro numero: "); scanf ("%f", &N2); printf ("\n Digite a operacao [+ – / *]: "); fflush(stdin); OP = getchar(); Exercícios 30 switch (OP) { case '+' : RES = N1 + N2; break; case '–' : RES = N1 - N2; break; case '*' : RES = N1 * N2; break; case '/' : if (N2 != 0) RES = N1 / N2; else printf ("\n Divisao por ZERO"); break; default : printf ("\n Opcao Invalida");break; } if (OP == '+' || OP == '–' || OP == '*' || OP == '/') printf ("\n %.1f %c %.1f = %.1f \n \n",N1,OP,N2,RES); system("pause"); return(0); } 31 Opção Promoção Especificação Preço (R $) 1 B i g S u p e r Sanduba 2 hambúrgueres, queijo, batata frita e refrigerante 8,50 2 Q u a s e S u p e r Sanduba 1 hambúrguer, batata frita e refrigerante 6,00 3 M i r r a n d u s Sanduba 1 misto quente e refrigerante 4,00 8) Faça um programa que mostre um menu com a opção Promoção e Preço. Leia o pedido de um cliente de fast food, baseado, no menu, e mostre a especificação que ele escolheu. Use o comando Switch... Case Exercícios 32 Exercícios 9) Faça um programa leia as opções do menu e calcule as áreas dos polígonos abaixo. Utilize o Switch... case.Opção Polígono Fórmula 1 Circunferência 2 Triângulo 3 Trapézio 4 Retângulo 2RAC ⋅=π 2 hBAT ⋅ = 2 )( hbBATR ⋅+ = 21 LLAR ⋅= Estrutura de controle Linguagem C Linguagem de Programação I 33 Adaptado do material da Profª Ms. Lília Marta Brandão Soussa Modesto