Escolar Documentos
Profissional Documentos
Cultura Documentos
Vania Bogorny e
Deise Saccol
Lgica de
programao
ESTRUTURAS DE DECISO
Comandos de deciso ou desvio fazem parte das
tcnicas de programao, para construir estruturas de
algoritmos que no so totalmente seqenciais.
Com as instrues de desvio pode-se fazer com que o
algoritmo proceda de uma ou outra maneira, de acordo
com as decises lgicas tomadas em funo dos dados
ou resultados anteriores.
As principais estruturas de deciso so:
SE...ENTO
SE...ENTO...SENO
CASO FOR...ENTO
2
Lgica de
programao
- Formato:
Se <operao lgica> ento <aes>
Significado: Se a <operao lgica> resultar em
verdadeiro, ento executar as <aes>. Seno,
simplesmente ignorar as <aes> e seguir para a
prxima instruo no algoritmo.
Usada para decidir se um conjunto de aes
opcionais deve ser executado ou no, dependendo do
valor de algum dado ou de algum resultado que j
tenha sido calculado no algoritmo. O valor do dado
ou do resultado anterior ser testado na operao
lgica.
Lgica de
programao
INCIO
FLUXOGRAMA:
N
OPERAO LGICA:
N<0
Sim
negativo!
No
FIM
4
Lgica de
programao
- Formato:
Se <operao lgica>
Lgica de
programao
ento DIF = N1 - N2
seno DIF = N2 - N1
Mostrar DIF
Lgica de
programao
INCIO
FLUXOGRAMA:
N1
N2
DIF = N2 - N1
No
N1 > N2
Sim
DIF = N1 - N2
DIF
FIM
7
Lgica de
programao
Formato:
Caso <valor 1> ento <aes 1>
Caso <valor 2> ento <aes 2>
Caso <valor 3> ento <aes 3>
Caso <etc., quantos precisar>
Significado: Se <valor> for igual a <valor 1>, ento
executar <aes 1>. Se for igual a <valor 2>, ignorar
<aes 1> e executar <aes 2>, e assim por diante.
Usada para escolher apenas um conjunto de aes
dentre vrios alternativos. Aqui o teste no mais uma
operao lgica: o prprio valor de algum dado ou
resultado anterior (que pode ser de outros tipos alm
do lgico) que vai determinar qual desses conjuntos
de aes ser executado.
9
Lgica de
programao
Ler N1
Ler N2
Ler OPERACAO (que ser do tipo caractere)
Caso OPERACAO:
+ ento RESULT = N1 + N2
- ento RESULT = N1 - N2
* ento RESULT = N1 * N2
/ ento RESULT = N1 / N2
caso contrario exibir Operao no vlida!
Exibir RESULT
10
Lgica de
programao
INCIO
FLUXOGRAMA:
N1, N2
OPER
OPER
+
R = N1 + N2
R = N1 - N2
R = N1 * N2
R = N1 / N2
R
FIM
11
Introduo Linguagem C
Deise Saccol
12
if (a<menor)
menor=a;
if (condio) {
comando1;
comando2;
comando3;
}
if (a<menor) {
menor=a;
printf (%d, menor);
}
em pseudo-cdigo:
se (a<menor) entao menor=a;
13
if (peso= =peso_ideal)
printf (Vc est em forma!);
else
printf (Necessrio fazer dieta!);
em pseudo-cdigo:
se (peso= =peso_ideal)
entao exibir Vc est em forma!
senao exibir Necessrio fazer dieta!
14
Estrutura SWITCH
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");
}
15
Exerccio 1
1) Dados dois nmeros A e B, some 100 ao maior nmero 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");
}
16
Exerccio 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");
}
17
Exerccio 3
Ou utilizando boolean:
#include <stdio.h>
#include <stdlib.h>
main (){
int idade;
bool status;
printf ("Digite a idade da pessoa: ");
scanf ("%d", &idade);
if (idade>=18)
status=true;
else
status=false;
if (status)
printf ("Pessoa eh maior de idade.\n");
else
printf ("Pessoa eh menor de idade.\n");
system("pause");
}
18
Exerccios
4) Faa um algoritmo que leia a quantidade
comprada de um produto e o preo unitrio
deste produto.
- Se o preo total a ser pago for inferior a R$ 100,
ento fornea um desconto de 5%.
- Se o preo total a ser pago ficar entre 100 e
1000, ento fornea um desconto de 5% e
armazene um bnus de 5% em cima do valor
total.
- Se o preo total a ser pago for superior a 1000,
ento fornea um desconto de 10%,
armazene um bnus de 5% em cima do valor
total e escreva na tela que o cliente ser
cadastrado como Cliente Vip.
19
#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 soh: else
{
descontado=valorTotal*0.90;
bonus=valorTotal*0.05;
printf ("\n Cliente vip!\n");
}
printf ("\n Valor Total eh %.2f\n", valorTotal);
printf ("\n Valor com desconto eh %.2f\n", descontado);
printf ("\n Bonus eh %.2f\n", bonus);
system("pause");
}
20
Exerccios
Fazer lista de exerccios parte 1
Fazer lista de exerccios parte 2
21