Estruturas de Decisão 1:
Comando SE
Bruno Cartaxo
http://sites.google.com/site/brunocartaxo
[email protected]
Tópicos a serem discutidos na disciplina
• Introdução a computadores e algoritmos
• Tipos de dados, operadores, variáveis, E/S
• Verificação manual de algoritmos e modularização
• Estruturas de decisão: comandos SE e CASO
• Estruturas de repetição: comandos ENQUANTO e PARA
• Vetores
• Introdução à Java
• Trabalhando com strings em Java
• Estruturas de decisão em Java
• Estruturas de repetição em Java
Estruturas de decisão
•
Existem
situações
em que desejamos que
nem todos os comandos de um
algoritmo sejam executados
.
•
Nestas situações,
ensinamos o computador a tomar decisões
, optando ou não
por executar determinados comandos.
•
Como os
computadores não tomam decisões sozinhos
, devemos instruí-lo a
seguir um determinado caminho no algoritmo.
Comando SE
•
Estrutura de decisão básica em algoritmos.
•
Sintaxe:
se <expressão_lógica> então <comandosV>;
se < expressão_lógica > então < comandosV > senão < comandosF>;
Exemplo 1
Faça um algoritmo que leia a idade de uma pessoa e escreva a
Exemplo 1
–
Estruturando solução
•
Entradas
• Idade do usuário
•
Saídas
• Informar se o usuário é maior de idade
•
Detalhes
Exemplo 1 - Algoritmo
Variáveis
idade : inteiro;
Início
escrever “Digite sua idade: “; ler idade;
se idade >= 18 então
escrever “Você é maior de idade.”;
Exemplo 1
–
Execuções do algoritmo
Digite sua idade: 30 Você é maior de idade.
Exemplo 2
•
Faça um algoritmo que leia a idade de uma pessoa e escreva a
mensagem “Você é maior de idade” se ela tiver 18 anos ou mais, ou
Exemplo 2
–
Estruturando solução
•
Entradas
• Idade do usuário
•
Saídas
• Informar se o usuário é ou não maior de idade
•
Detalhes
Exemplo 2 - Algoritmo
Variáveis
idade : inteiro;
Início
escrever “Digite sua idade: “; ler idade;
se idade >= 18 então
escrever “Você é maior de idade.” senão
escrever “Você é menor de idade.”;
Exemplo 2
–
Execuções do algoritmo
Digite sua idade: 30 Você é maior de idade.
Digite sua idade: 16
Exemplo 3
Exemplo 3
–
Estruturando solução
•
Entradas
• Número inteiro
•
Saídas
• Informar se o número é par ou ímpar
•
Detalhes
Exemplo 3 - Algoritmo
Variáveis
numero : inteiro;
Início
escrever “Digite um número inteiro: “; ler numero;
se numero % 2 = 0 então
escrever “O número é par.” senão
escrever “O número é ímpar.”;
Exemplo 3
–
Execuções do algoritmo
Digite um número inteiro: 7 O número é ímpar.
Exemplo 4
Exemplo 4
–
Estruturando solução
•
Entradas
• Número inteiro
•
Saídas
• Informar se o número é par e é divisível por 3
•
Detalhes
Exemplo 4 - Algoritmo
Variáveis
numero : inteiro;
Início
escrever “Digite um número inteiro: “; ler numero;
se (numero % 2 = 0) E (numero % 3 = 0) então
escrever “O número é par e divisível por 3.”;
Exemplo 4
–
Execuções do algoritmo
Digite um número inteiro: 6
O número é par e divisível por 3.
Exemplo 5
Exemplo 5
–
Estruturando solução
•
Entradas
• Preço do primeiro produto • Preço do segundo produto
•
Saídas
• Informar qual produto é o mais caro
•
Detalhes
Exemplo 5 - Algoritmo
Variáveis
preco_produto_1: real; preco_produto_2: real;
Início
escrever “Digite o preço do primeiro produto: “; ler preco_produto_1;
escrever “Digite o preço do segundo produto: “;
ler preco_produto_2;
se preco_produto_1 > preco_produto_2 então
escrever “O primeiro produto é mais caro.”; senão
escrever “O segundo produto é mais caro.”;
Exemplo 5
–
Execuções do algoritmo
Digite o preço do primeiro produto : 54 Digite o preço do segundo produto: 23.5 O primeiro produto é mais caro.
Exemplo 6
Exemplo 6
–
Estruturando solução
•
Entradas
• Primeiro número • Segundo número
•
Saídas
• Informar se o primeiro número é divisível pelo segundo, ou não
•
Detalhes
Exemplo 6 - Algoritmo
Variáveis
numero_1: inteiro; numero_2: inteiro;
Início
escrever “Digite o primeiro número: “; ler numero_1;
escrever “Digite o segundo número : “;
ler numero_2;
se numero_1 % numero_2 = 0 então
escrever numero_1, “ é divisível por ”, numero_2;
senão
escrever numero_1, “ não é divisível por ”, numero_2;
Exemplo 6
–
Execuções do algoritmo
Digite o primeiro número: 25 Digite o segundo número : 5 25 é divisível por 5
Testes aninhados
•
Em determinadas situações
é necessária a realização de testes dentro de outros
testes
.
•
Normalmente esta necessidade
surge da combinação de decisões
a serem
tomadas.
•
Este tipo de estrutura é
chamado de aninhamento
ou encadeamento.
•
Quando ocorre um aninhamento de testes,
o algoritmo possui um comando de
decisão dentro de outro
.
Exemplos de aninhamento
...
se
A > B
então
se
K > M
então
C <- K
senão
C <- M;
...
...
se
X < Y
então
S <- X + Y
senão
se
X < A + B
A <- C;
senão
Exemplo 7
Um quiosque de sorvetes vende casquinhas somente nos sabores Chocolate (letra
‘C’) e Morango (letra ‘M’), não permitindo misturar os sabores num mesmo
sorvete.
Faça um algoritmo para exibir uma mensagem nas seguintes situações:
• Sorvete de chocolate com mais de três bolas: “desconto de 10%”;Exemplo 7
–
Estruturando solução
•
Entradas
• Sabor do sorvete • Número de bolas
•
Saídas
• Informar se haverá desconto e qual o valor
•
Detalhes
Exemplo 7 - Algoritmo
Módulo LER_DADOS_SORVETE;
[[
escrever “Digite o sabor do sorvete (C ou M): “;
ler sabor;
escrever “Digite a quantidade de bolas: ”; ler bolas;
]];
Módulo IMPRIMIR_DESCONTO;
[[
se sabor = ‘C’ então
se bolas > 3 então
escrever “Desconto de 10%” senão
escrever “Desconto de 5%”;
]];
Variáveis
sabor :
caractere
;
bolas :
inteiro
;
Início
LER_DADOS_SORVETE;
IMPRIMIR_DESCONTO;
Exemplo 7
–
Execuções do algoritmo
Digite o sabor do sorvete (C ou M): C Digite a quantidade de bolas: 5
Desconto de 10%
Digite o sabor do sorvete (C ou M): C Digite a quantidade de bolas: 2
Desconto de 5%
Exemplo 8
Fazer um algoritmo para ler as três notas de um aluno em uma
disciplina, e depois imprimir a média aritmética das notas e a situação
do aluno, a partir das seguintes regras:
•
Média >= 7.0
–
Aprovado;
•
4 <= Média < 7
–
Prova Final;
Exemplo 8
–
Estruturando solução
•
Entradas
• Primeira nota • Segunda nota • Terceira nota
•
Saídas
• Informar se o aluno está aprovado, em prova final ou reprovado
•
Detalhes
Exemplo 8 - Algoritmo
Variáveis
nota_1:
real
;
nota_2:
real
;
nota_3:
real
;
media:
real
;
Início
LER_NOTAS_ALUNO;
CALCULAR_MEDIA_ALUNO;
IMPRIMIR_SITUACAO_ALUNO;
Exemplo 8 - Algoritmo
Módulo LER_NOTAS_ALUNO [[
escrever“Digite a primeira nota do aluno: “; ler nota_1;
escrever“Digite a segunda nota do aluno: “;
ler nota_2;
escrever“Digite a terceira nota do aluno: “;
ler nota_3; ]];
Módulo IMPRIMIR_SITUACAO_ALUNO [[
semedia >= 7 então
escrever “Aprovado”; senão
se media >= 4 então
escrever “Prova Final”; senão
escrever “Reprovado”;
]];
Módulo CALCULAR_MEDIA_ALUNO [[
Exemplo 8
–
Execuções do algoritmo
Digite a primeira nota do aluno: 8 Digite a segunda nota do aluno: 6 Digite a terceira nota do aluno: 7 Aprovado
Digite a primeira nota do aluno: 5 Digite a segunda nota do aluno: 5 Digite a terceira nota do aluno: 8 Prova Final
Exemplo 9
Um casal possui três filhos: Marcos, Zé e Luíza. Faça um algoritmo para
ler as idades dos filhos e exibir quem é o caçula da família; suponha
Exemplo 9
–
Estruturando solução
•
Entradas
• Idade de Marcos • Idade de Zé
• Idade de Luíza
•
Saídas
• Informar quem é o filho caçula.
•
Detalhes
Exemplo 9 - Algoritmo
Variáveis
idade_marcos:
inteiro
;
idade_ze :
inteiro
;
idade_luiza :
inteiro
;
Início
LER_IDADES_FILHOS;
IMPRIMIR_CACULA;
Exemplo 9 - Algoritmo
Módulo LER_IDADES_FILHOS [[
escrever“Digite a idade de marcos: “; leridade_marcos;
escrever“Digite a idade de Zé: “;
leridade_ze;
escrever“Digite a idade de Luíza: “;
leridade_luiza; ]];
Módulo IMPRIMIR_CACULA
[[
se (idade_marcos < idade_ze) E (idade_marcos < idade_luiza) então escrever “Marcos é o caçula.”;
senão
se (idade_ze < idade_marcos) E (idade_ze < idade_luiza) então escrever “Zé é o caçula.”;
senão
Exemplo 9
–
Execuções do algoritmo
Digite a idade de marcos: 10 Digite a idade de zé: 3
Digite a idade de luíza : 2 Luíza é a caçula.
Digite a idade de marcos: 4 Digite a idade de zé: 2
Digite a idade de luíza : 5 Zé é a caçula.
Digite a idade de marcos: 1 Digite a idade de zé: 6