Você está na página 1de 34

ESTRUTURA DE

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

Escreva (“Digite um número”) printf(“Escreva um número”);

Leia (n1) scanf(“%d”, &n1);


Algoritmo CalculaIdade #include <locale.h>
Var anoNasc, anoAtual, idade: Inteiro; #include <stdlib.h>
void main()
Inicio {
Escreva (“Digite o ano de nascimento” int anoAtual, anoNasc, idade;
Leia (anoNasc)
printf("Digite o ano atual ");
Escreva (“Digite o ano atual) scanf("%d", &anoAtual);
Leia (anoAtual) printf("Digite o ano de nascimento ");
scanf("%d", &anoNasc);
idade  anoAtual – anoNasc
idade = anoAtual - anoNasc;
Escreva ( “A idade calculada é: ”, idade)
printf("A idade é: %d\n", idade);
Fim
system("pause");
return 0;
}
ESTRUTURA DE TOMADA DE DECISÃO

• 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.

• Nesta estrutura uma operação lógica (<condição>) é avaliada, se o resultado desta


avaliação for verdadeiro (V), então um determinado conjunto de instruções é executado.
Caso contrário, ou seja, quando o resultado da avaliação for falso (F), um comando
diferente é executado.
ESTRUTURA DE TOMADA DE DECISÃO

• 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.

• Nesta estrutura uma operação lógica (<condição>) é avaliada, se o resultado desta


avaliação for verdadeiro (V), então um determinado conjunto de instruções é executado.
Caso contrário, ou seja, quando o resultado da avaliação for falso (F), um comando
diferente é executado.
ESTRUTURAS DE D E C I S Ã O

Neste tipo de estrutura o fluxo de instruções a ser seguido é escolhido em função do


resultado da avaliação de uma ou mais condições. Uma condição é uma expressão
lógica.
A classificação das estruturas de decisão é feita de acordo com o número de
condições a serem testadas e a forma como são testadas. Assim, têm-se dois tipos
de estruturas de decisão:

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

comando 1..... (neste caso a <condição> é verdadeira)

senão

comando 2 (neste caso a <condição> é falsa)

fimse
ESTRUTURA DE TOMADA DE DECISÃO
ESTRUTURA DE DECISÃO SE SENÃO

No pseudocódigo: Linguagem C:

se (condição) então if (condição)


grupo_1_de_comandos grupo_1_de_comandos
senão else
grupo_2_de_comandos grupo_2_de_comandos
fim_se
ESTRUTURA DE TOMADA DE DECISÃO

Algoritmo ExemploSeEntaoSenao

Var Idade: Inteiro;

Início

Leia(Idade)

Se (Idade >= 18) então

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:

escolha (variável_ou_expressão) switch(opcaoMenu){


caso valor1: case 1:
printf("Escolhida opção 1");
Comandos1 break;
caso valor2: case 2:
printf("Escolhida opção 2");
Comandos2
break;
senão default:
Comandos4 printf("Opção inválida");
}
fim_escolha
ESTRUTURA DE TOMADA DE DECISÃO
EXEMPLO

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

O algoritmo deve possuir tratamento para caso não seja


escolhida uma opção válida.
Algoritmo Calculadora
EXERCÍCIO 3 – Var n1,n2, resultado: Real;
Op: Caractere;
RESPOSTA Inicio
Escreva(“Digite o 1º número”);
Leia(n1);
Escreva(“Digite a operação (+, - , * , /)”);
Leia(op);
Escreva(“Digite o 2º número”);
Leia(n2);

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

Cenário, para que o aluno seja considerado APROVADO em um disciplina, o aluno


deve possuir média final igual ou maior que 6 e presencialidade igual ou maior que
75%. Dada essas condições, construa um algoritmo que atenda esse cenário. Exiba
se o aluno está aprovado ou não, bem como se for necessário, se possui ou não o
mínimo de presencialidade exigido.
DESAFIO 1
Resposta
Algoritmo StatusAluno
Var nt1,nt2,presen,resultado: Real;
Inicio
Escreva(“Digite o 1ª nota”);
Leia(nt1);
Escreva(“Digite o 2ª nota”);
Leia(nt2);
Escreva(“Digite a presencialidade do aluno”);
Leia(presen);
resultado  nt1 + nt2;
se (resultado >=6) então
se(presen>75) então
Escreva(“Aluno aprovado!”);
senão
Escreva(“Aluno reprovado por falta”);
fim_se
senão
Escreva(“Aluno reprovado por nota”);
fim_se
Fim
DESAFIO 2
Faça o algoritmo que irá identificar se o aluno está reprovado ou não em uma
disciplina fictícia.
Para tanto, deve-se solicitar ao usuário do algoritmo que digite duas notas. O
algoritmo deve somar essas duas notas e caso o total seja maior ou igual a 6 o
aluno estará aprovado na disciplina, caso contrário, o aluno estará reprovado.
De acordo com essas condições, o algoritmo deve apresentar uma mensagem
ao usuário exibindo se o aluno está aprovado ou reprovado.
DESAFIO 2 –
RESPOSTA
Algoritmo StatusAluno
Var nt1,nt2,resultado: Real;
Inicio
Escreva(“Digite o 1ª nota”);
Leia(nt1);
Escreva(“Digite o 2ª nota”);
Leia(nt2);
resultado  nt1 + nt2;
se (resultado >=6) então
Escreva(“Aluno aprovado!”);
senão
Escreva(“Aluno reprovado!”);
fim_se
Fim
DESAFIO 3

Desenvolva um algoritmo que peça o salário de um funcionário, caso a pessoa ganhe


um salário inferior a R$ 500,00 dê um aumento de 15%, caso contrário exiba a
mensagem que não haverá aumento.
DESAFIO 3 –
RESPOSTA

Algoritmo AjusteSalario
Var salarioAtual, salarioNovo: Real;
Inicio
Escreva(“Digite o salário atual”);
Leia(salarioAtual);

se (salarioAtual < 500,00) então


salarioNovo = salarioAtual + (salarioAtual *0,15);
Escreva("O salário atualizado é de R$", salarioNovo);
senão
Escreva(“Faixa salario não permite reajuste”);
fim_se
Fim
DESAFIO 4
Criar um algoritmo que solicite ao usuário o valor total da compra e a quantidade de
parcelas a financiar e o sistema deve imprimir o valor de cada parcela de acordo
com os juros da tabela abaixo:
Use a estrutura Escolha
Nº Parcelas % de juros
1 0
2 2
4 5
6 10
12 18
24 26
DESAFIO 4
RESPOSTA escolha (nrParcelas)
caso 1:
juros  0;
Algoritmo Calculadora caso 2:
Var valorCompra, valorAtualizado, valorParcela, juros: Real; juros  0,02;
caso 4:
nrParcelas: Int;
juros  0,05;
Inicio caso 6:
Escreva(“Digite o valor da compra”); juros  0,10;
Leia(valorCompra); caso 12:
Escreva(“Digite a quantidade de parcelas”); juros  0,18;
Leia(nrParcelas); caso 24:
juros  0,26;
senão
juros  -1;
fim_escolha

se(juros >= 0) então


valorAtualizado  valorCompra + (valorCompra*juros);
valorParcela  valorAtualizado/nrParcelas;
Escreva("O valor atualizado da compra é de R$ ", valorAtualizado);
Escreva("O valor das parcelas serão de R$ ", valorParcela);
senão
Escreva("Opção de parcela inválida!");
fim_se
Fim

Você também pode gostar