Aula 4 - Estruturas de Decisão
Aula 4 - Estruturas de Decisão
Aula 4 - Estruturas de Decisão
TOMADA DE DECISÃO
Hugo Fernandes
RECAPITULANDO...
ESTRUTURA DE UM ALGORITMO EM PSEUDOCÓDIGO
RECAPITULANDO...
ALGORITMO EM PSEUDOCÓDIGO
Algoritmo quadrado
var q,n: Inteiro;
Inicio
Escreva("Digite um número);
Leia(n);
q <-- n*n;
Escreva(" O quadrado de " + n + " é " + q)
Fim
RECAPITULANDO...
PARALELO E REALAÇÃO COM A LINGUAGEM C
• As estruturas Condicionais são utilizadas quando se é preciso tomar decisões. Por exemplo,
em um problema quando é necessário dividir um número pelo outro, suponha que o usuário
na hora de digitar o segundo número digite zero? Certamente teremos um resultado
errado, pois não existe este divisão por zero. Para solucionarmos este problema usa-se a
estrutura condicional “se” e “senão”. Esta estrutura pode ser também utilizada para
comparações, como veremos nos exemplos mais adiante.
• As estruturas Condicionais são utilizadas quando se é preciso tomar decisões. Por exemplo,
em um problema quando é necessário dividir um número pelo outro, suponha que o usuário
na hora de digitar o segundo número digite zero? Certamente teremos um resultado
errado, pois não existe este divisão por zero. Para solucionarmos este problema usa-se a
estrutura condicional “se” e “senão”. Esta estrutura pode ser também utilizada para
comparações, como veremos nos exemplos mais adiante.
se (se-então, se-então-senão)
escolha ... caso
ESTRUTURA DE TOMADA DE DECISÃO
ESTRUTURA DE DECISÃO SE SENÃO
Sintaxe:
se <condição> então
senão
fimse
ESTRUTURA DE TOMADA DE DECISÃO
ESTRUTURA DE DECISÃO SE SENÃO
No pseudocódigo: Linguagem C:
Algoritmo ExemploSeEntaoSenao
Início
Leia(Idade)
Escreva("Maior de idade")
Senão
Escreva("Menor de idade")
Fimse
Fim
EXERCÍCIO 1
Faça o algoritmo que peça dois números, calcule e mostre a divisão do primeiro
pelo segundo. Deve-se fazer o tratamento de erro para quando o 2º número for
“zero”.
E X E R C Í C I O 1 - R E SP OSTA
Algoritmo Divisao2Numeros
Var n1,n2,resultado: Real;
Inicio
Escreva(“Digite o 1º número”);
Leia(n1);
Escreva(“Digite o 2º número”);
Leia(n2);
se (n2=0) então
Escreva(“O 2º número não pode ser Zero”);
senão
resultado n1/n2;
Escreva (“O resultado da divisão é:” + resultado);
fim_se
Fim
EXEMPLO EM C – IDENTIFICA SE “A” É MAIOR
QUE “B”
#include <locale.h>
#include <stdlib.h>
void main()
{
// essa instrução configura a saída de texto para PT-Br
setlocale(LC_ALL, "Portuguese");
int a,b;
a = 2;
b = 3;
if(a > b)
printf("A é maior que B");
else
printf("A não é maior que B, pois o valor de B é %d ,enquanto o valor de A é %d", b, a);
}
ESTRUTURA DE TOMADA DE DECISÃO
ESTRUTURA DE DECISÃO ENCADEADA
No pseudocódigo:
Linguagem C:
se (condição) então
if (condição)
se(condição) então
if (condição)
grupo_1_de_comandos
grupo_1_de_comandos
else
else
grupo_2_de_comandos
grupo_2_de_comandos
fim_se
else
senão
grupo_2_de_comandos
grupo_2_de_comandos
fim_se
ESTRUTURA DE TOMADA DE
DECISÃO
ESTRUTURA DE DECISÃO ENCADEADA
Sintaxe:
se <condição> então
se <condição> então
comandos....
senão
comandos
fimse
comandos
fimse
EXERCÍCIO 2
Em um hipotético clube, para poder entrar em uma hipotética festa, a pessoa deve
ser sócia do clube e também de possuir idade maior ou igual a 18 anos. Faça um
algoritmo que atenda essa expectativa.
E X E R C Í C I O 2 - R E SP OSTA
Algoritmo EntradaClube
Var socio: Lógico;
Idade: Inteiro;
Inicio
Escreva(“Digite a idade da pessoa”);
Leia(idade);
Escreva(“A pessoa é sócia do clube? S/N”);
Leia(socio);
se (socio=“S”) então
se(idade>=18) então
Escreva(“Permitida a entrada”);
senão
Escreva(“Não permitida a entra. A pessoa não possui idade mínima”);
fim_se
senão
Escreva(“Não é permitido a entrada de não-sócios”);
fim_se
Fim
ESTRUTURA DE TOMADA DE
DECISÃO
ESTRUTURA DE DECISÃO ESCOLHA
Sintaxe:
escolha (variável_ou_expressão)
caso valor1:
Comandos1
caso valor2:
Comandos2
caso valor3:
Comandos3
senão
Comandos4
fim_escolha
ESTRUTURA DE TOMADA DE DECISÃO
ESTRUTURA DE DECISÃO ESCOLHA
No pseudocódigo:
Linguagem C:
Crie um algoritmo que solicite ao usuário informar de acordo com a indicação de um número,
o menu desejado. Para tanto, temos:
Número Menu/Obs
4 Menu 4
2 Menu 2
3 Menu 3
O algoritmo deve possuir tratamento para caso não seja escolhida uma opção válida.
ESTRUTURA DE TOMADA DE DECISÃO
EXEMPLO
Algoritmo SelecaoMenu
Var numero: Inteiro;
Inicio
Escreva(“Digite o número correspondente ao menu desejado”);
Leia(numero);
escolha (numero)
caso 4:
Escreva(“O menu selecionado foi o 1”)
caso 2:
Escreva(“O menu selecionado foi o 2”)
caso 3:
Escreva(“O menu selecionado foi o 3”)
senão
Escreva(“Opção inválida”)
fim_escolha
Fim
ESTRUTURA DE TOMADA DE DECISÃO
EXEMPLO EM C #include <locale.h>
#include <stdlib.h>
void main()
{
setlocale(LC_ALL, "Portuguese");
int opcaoMenu;
opcaoMenu = 3;
switch(opcaoMenu){
case 1:
printf("Escolhida opção 1");
break;
case 2:
printf("Escolhida opção 2");
break;
case 3:
printf("Escolhida opção 3");
break;
default:
printf("Opção inválida");
}
}
EXERCÍCIO 3
Crie um algoritmo para uma calculadora, onde o usuário irá digitar o primeiro
número, a operação que deseja executar e o segundo número. Dependendo do que
o usuário informar como operador, o algoritmo executará um cálculo diferente
(soma, subtração, multiplicação ou divisão).
escolha (op)
caso “+”:
resultado n1 + n2;
Escreva(“O resultado é :” resultado;
caso “-”:
resultado n1 - n2;
Escreva(“O resultado é :” resultado;
caso “*”:
resultado n1 * n2;
Escreva(“O resultado é :” resultado;
caso “/”:
resultado n1 / n2;
Escreva(“O resultado é :” resultado;
senão
Escreva(“Opção inválida”);
fim_escolha
Fim
DESAFIOS
DESAFIO 1
Algoritmo AjusteSalario
Var salarioAtual, salarioNovo: Real;
Inicio
Escreva(“Digite o salário atual”);
Leia(salarioAtual);