Aula 4 - Estruturas de Decisão

Fazer download em pdf ou txt
Fazer download em pdf ou txt
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