Comandos de decisão
Luis Otavio Alvares
Adaptado de slides das Profas. Patrícia Jaques, Mônica Py e Deise Sacol
1
Operadores Relacionais
Operador
Exemplo
Significado
==
x == y
O conteúdo de x é igual ao de y?
!=
x != y
O conteúdo de x é diferente do de y?
<=
x <= y
O conteúdo de x é menor ou igual ao de y?
>=
x >= y
O conteúdo de x é maior ou igual ao de y?
<
x < y
O conteúdo de x é menor que o de y?
>
x > y
O conteúdo de x é maior que o de y?
As expressões relacionais em C retornam :
1 se verdadeiro
0 se falso.
2
Operadores Lógicos
• && (E lógico): retorna verdadeiro se ambos os operandos são
verdadeiros e falso nos demais casos.
Exemplo: if( a>2 && b<3).
• || (OU lógico): retorna verdadeiro se pelo menos um dos
operandos é verdadeiro, e falso se ambos são falsos.
Exemplo: if( a>1 || b<2).
• ! (NÃO lógico): usada com apenas um operando. Retorna
verdadeiro se o operando é falso e vice-versa.
Exemplo: if( !var ).
3
Operadores Lógicos
Tabela E
Tabela OU
Tabela NÃO
VeVV
V ou V  V
Não V  F
VeFF
V ou F  V
Não V  F
FeVF
F ou V  V
FeFF
F ou F  F
4
Estrutura condicional simples
• Comando if
if (condição)
comando;
Exemplo em pseudo-código:
SE a<menor ENTÃO menor=a;
if (a<menor)
menor=a;
if (condição) {
comando1;
comando2;
comando3;
…
}
5
if (a<menor) {
menor=a;
printf (“%d”, menor);
}
Estrutura condicional composta
• Comando if...else
if (condição)
comando1;
else
comando2;
Executa o comando1 se a condição for
qualquer coisa diferente de zero (verdadeira),
senão executa o comando2
Exemplo:
if (condição) {
comando1;
comando2;
}
else {
comando3;
comando4;
}
6
if (peso==peso_ideal)
printf (“Voce esta’ em forma!”);
else
printf (“Melhor fazer dieta!”);
em pseudo-código:
se (peso= peso_ideal)
entao exibir “Voce esta’ em forma!”
senao exibir “Melhor fazer dieta!”
Exemplo 1
1) Dados dois números inteiros A e B, some 100 ao maior número e
imprima.
#include <stdio.h>
#include <stdlib.h>
main(){
int A, B, soma;
printf ("Digite o valor de A: ");
scanf ("%d", &A);
printf ("Digite o valor de B: ");
scanf ("%d", &B);
if (A>B)
soma=A+100;
else
soma=B+100;
printf ("O maior valor adicionado de 100 resulta em %d\n", soma);
system("pause");
}
7
Exemplo 2
2) Escreva um algoritmo para determinar se uma pessoa é maior ou menor
de idade.
#include <stdio.h>
#include <stdlib.h>
main (){
int idade;
printf ("Digite a idade da pessoa: ");
scanf ("%d", &idade);
if (idade>=18)
printf ("Pessoa eh maior de idade.\n");
else
printf ("Pessoa eh menor de idade.\n");
system("pause");
}
8
Lembretes importantes no uso do comando if
A condição deve estar sempre entre parênteses.
É possível usar mais de um comando
no if, após a condição ou após o else, mas
então os comandos devem estar
entre chaves (constituindo-se em um bloco).
É possível aninhar ifs, e então cada else vai
corresponder ao if imediatamente anterior, se
não houver blocos delimitados por chaves alterando isso.
Exercícios
4) Faça um algoritmo que leia a quantidade comprada de um
produto e o preço unitário deste produto.
- Se o preço total a ser pago for inferior a R$ 100, então forneça
um desconto de 5%.
- Se o preço total a ser pago ficar entre 100 e 1000, então
forneça um desconto de 5% e armazene um bônus de 5%
sobre o valor total.
- Se o preço total a ser pago for superior a 1000, então forneça
um desconto de 10%, armazene um bônus de 7% sobre o
valor total e o cliente será considerado como ‘Cliente Vip’.
10
#include <stdio.h>
#include <stdlib.h>
main(){
int qtdade;
float preco, valorTotal, descontado, bonus;
printf ("\nDigite a qtdade: ");
scanf ("%d", &qtdade);
printf ("\nDigite o preco unitario: ");
scanf ("%f", &preco);
valorTotal=qtdade*preco;
if (valorTotal<100)
descontado=valorTotal*0.95;
else if (valorTotal>=100 && valorTotal<=1000)
{
descontado=valorTotal*0.95;
bonus=valorTotal*0.05;
}
else if (valorTotal>1000) //poderia ser so’ else
{
descontado=valorTotal*0.90;
bonus=valorTotal*0.07;
printf ("\n Cliente vip!\n");
}
printf ("\n Valor Total e’ %.2f\n", valorTotal);
printf ("\n Valor com desconto e’ %.2f\n", descontado);
printf ("\n Bonus e’ %.2f\n", bonus);
system("pause");
}
11
Exercícios
• Fazer lista de exercícios
12
Comando switch
Uma variável é testada sucessivamente contra uma lista de constantes inteiras ou
caracteres. Depois de encontrar uma coincidência, o comando ou o bloco de
comandos é executado.
Sintaxe:
Switch(variável)
{
case constante1:
sequência de comandos
break;
case constante2:
sequência de comandos
break;
…..
default:
sequência de comandos
}
O comando default é opcional
Se nenhuma coincidencia for
encontrada, o comando default
será executado
Exemplo de comando switch
#include<stdio.h>
#include<stdlib.h>
main()
{
int numero;
printf("digite o mes");
scanf ("%d",&numero);
switch (numero){
case 1: printf ("Janeiro\n"); break;
case 2: printf ("Fevereiro\n"); break;
case 3: printf ("Marco\n"); break;
case 4: printf ("Abril\n"); break;
case 5: printf ("Maio\n"); break;
case 6: printf ("Junho\n"); break;
case 7: printf ("Julho\n"); break;
case 8: printf ("Agosto\n"); break;
case 9: printf ("Setembro\n"); break;
case 10: printf ("Outubro\n"); break;
case 11: printf ("Novembro\n"); break;
case 12: printf ("Dezembro\n"); break;
default: printf ("Mes invalido\n");
}
system ("pause");
14 }
Download

else