Você está na página 1de 33

Linguagem de

Programação I

Estrutura de controle
Linguagem C
Adaptado do material da Profª Ms. Lília Marta
Brandão Soussa Modesto

1
Desvio Condicional Simples
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; Exemplo:
if (<condição>) if (A > B)
{ {
<instrução 1 para condição verdadeira>; X = A;
<instrução 2 para condição verdadeira>; A = B;
<instrução 3 para condição verdadeira>; B = X;
<instrução n para condição verdadeira>; }
} Z = A / 2;
<instrução para condição falsa ou após ser verdadeira>;
2
Desvio Condicional Simples
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.
/* Programa 01 */
Algoritmo: #include <stdio.h>
1- Ler dois números, no caso #include <stdlib.h>
variáveis N1 e N2; void main(void)
2- Efetuar a soma de N1 e {
N2, atribuindo o seu int N1, N2, SOMA;
resultado na variável printf ("\n Digite 2 numeros inteiros: ");
SOMA; scanf ("%d%d", &N1, &N2);
3- Se o valor da variável SOMA SOMA= N1 + N2;
for maior que 10 então if (SOMA >= 10)
apresentar o seu valor. printf ("\n O resultado eh %d\n", SOMA);
system("pause");

3
Desvio Condicional Simples
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.

4
Desvio Condicional Simples
/* 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");
}

5
Desvio Condicional Composto
if (<condição>) Exemplo:
<instrução para condição verdadeira>; if (X == 5)
else Y = X * 3;
<instrução para condição falsa>; else
Y = X + 5;
if (<condição>) Exemplo:
{ if (X == 5)
<instrução 1 para condição verdadeira>; {
<instrução 2 para condição verdadeira>; Y = X * 3;
<instrução n para condição verdadeira>; Z = X;
} X = Y + Z;
else }
{ else
<instrução 1 para condição falsa>; {
<instrução 2 para condição falsa>; Y = X + 5;
<instrução n para condição falsa>; Z = X – 2;
} }
6
Desvio Condicional Encadeado
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%
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.
7
Desvio Condicional Encadeado
/* 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”);

} 8
Operador Lógico .e.
Este operador é utilizado quando todas as
condições necessitam ser verdadeiras.

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”);

9
Operador Lógico .ou.
Este operador é utilizado quando pelo menos
uma condição necessita ser verdadeira.

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”);

10
Operador Lógico .não.
Este operador é utilizado quando for necessário
inverter o resultado lógico da condiçã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”);

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
Exemplo
/* 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”);
}
13
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>
14
Operador (Ternário)
<variável> = <condição>?<operação1>:<operação2>;
#include <stdio.h>
Exemplo:
#include <stdlib.h>
int main (void )
Numero = 3 => x = 4
{
int numero, x; Numero = -1 => x = -2

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);
}
15
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.

16
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");


}

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

if (a == b) printf(”\n Iguais");
else printf(”\n Diferentes");

/* printf("\n%s", a == b ? "Iguais\n" : "Diferentes\n"); */


}
18
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).
19
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();

20
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 == '/’ && N2 ! = 0) )
printf ("\n %.1f %c %.1f = %.1f \n\n",N1,OP,N2,RES);
}

21
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; printf ("\n O resultado eh %d\n",
else SOMA >= 10 ? SOMA + 5 : SOMA -
SOMA = SOMA - 7; 7);
printf ("\n O resultado eh %d\n", SOMA);
}

23
Exercícios
/* 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);
}

24
Exercícios
/* 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);
}

25
Exercícios
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.

26
Exercícios
/* 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);
} 27
Exercícios
/* 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 >= 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);
}

28
Exercícios
7) Faça um programa que simule uma calculadora
com as 4 operações básicas (Adição / Subtração /
Multiplicação / Divisão).
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
29
Exercícios
/* Programa Calculadora */
#include <stdio.h> switch (OP)
#include <stdlib.h> {
int main(void) case '+' : RES = N1 + N2;
{ break;
float N1, N2, RES; case '–' : RES = N1 - N2; break;
char OP; case '*' : RES = N1 * N2;break;
printf ("\n Calculadora das 4 operacoes case '/' : if (N2 != 0)
basicas \n"); RES = N1 / N2;
printf ("\n Digite um numero: "); else
scanf ("%f", &N1); printf ("\n Divisao por
printf ("\n Digite outro numero: "); ZERO");
scanf ("%f", &N2); break;
printf ("\n Digite a operacao [+ – / *]: "); default : printf ("\n Opcao
fflush(stdin); Invalida");break;
OP = getchar(); }
if (OP == '+' || OP == '–' || OP == '*' ||
OP == '/')
printf ("\n %.1f %c %.1f = %.1f
\n\n",N1,OP,N2,RES);
system("pause");
return(0);
} 30
Exercícios
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
Opção Promoção Especificação Preço
(R$)
1 Big Super 2 hambúrgueres, queijo, batata frita e 8,50
Sanduba refrigerante
2 Quase Super 1 hambúrguer, batata frita e refrigerante 6,00
Sanduba
3 Mirrandus 1 misto quente e refrigerante 4,00
Sanduba

31
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 AC    R 2
2 Triângulo Bh
AT 
2
3 Trapézio
( B  b)  h
ATR 
2
4 Retângulo AR  L1 L2
32
Linguagem de
Programação I

Estrutura de controle
Linguagem C
Adaptado do material da Profª Ms. Lília Marta
Brandão Soussa Modesto

33