Buscar

Estrutura de controle - Linguagem de programação C

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