aula 10 - comando de decisão múltipla e comandos de repetição
TRANSCRIPT
Aula 10 – Comando de DecisãoMúltipla e Comando de Repetição
Prof. André Constantino da SilvaLOGT1 – Lógica
Noturno
18 de maio de 2012
Na aula anterior...
• Resultados dos operadores matemáticos
• Operadores
- Relacionais
- Lógicos
• Comando de Decisão Múltipla
Nesta aula...
• Comando de Decisão Múltipla
• Comandos de Repetição
Comando de Decisão Múltipla
Algumas situações exigem a realização de uma ação dentre várias ações possíveis, baseado no valor de uma variável (condição)
- Estutura escolha
Exemplo
Considere a seguinte classificação de faixa etária de atletas:
Como seria um algortimo que leia a idade do atleta e diga qual é a categoria deste atleta?
Categoria Idade
Infantil 5 a 10 anos
Juvenil 11 a 15 anos
Junior 16 a 20 anos
Profissional 21 a 25 anos
Não classificado Demais idades
Resposta
Usando conhecimentos aprendidosalgoritmo "categorias de atletas"var
idade: inteiroinicio
leia(idade)se (idade >= 5) e (idade <= 10) entao
escreva("Atleta é da categoria Infantil")senao
se (idade >= 11) e (idade <= 15) entaoescreva("Atleta é da categoria Juvenil")
senaose (idade >= 16) e (idade <= 20) entao
escreva("Atleta é da categoria Junior")senao
se (idade >= 21) e (idade <= 25) entaoescreva("Atleta é da categoria Profissional")
senaoescreva("O atleta não pode ser classificado nas categorias")
fimsefimse
fimsefimse
fimalgoritmo
Resposta – Usando Escolha
algoritmo "categorias de atletas"var
idade: inteiroinicio
leia(idade)escolha idade
caso 5, 6, 7, 8, 9, 10escreva("Atleta é da categoria Infantil")
caso 11, 12, 13, 14, 15escreva("Atleta é da categoria Juvenil")
caso 16, 17, 18, 19, 20escreva("Atleta é da categoria Junior")
caso 21, 22, 23, 24, 25escreva("Atleta é da categoria Profissional")
outrocasoescreva("O atleta não pode ser classificado nas categorias")
fimescolhafimalgoritmo
Estrutura do Escolha
escolha <expressão-de-seleção>caso <valor1a>, <valor2a>, ..., <valorna>
<comandos-a>caso <valor1b>, <valor2b>, ..., <valornb>
<comandos-b>caso <valor1c>, <valor2c>, ..., <valornb>
<comandos-c>...outrocaso
< comandos-x>fimescolha
Exercício
Vamos classificar os alunos conforme a frequência na matéria Considerando que a frequência seja um número inteiro de 0 a 10.
Escreva um algoritmo que imprima a qual categoria um aluno pertence.
Categoria Frequência
Assíduo 10
Boa frequência 8 ou 9
Frequência regular 6 ou 7
Baixa frequência 3, 4 ou 5
Baixíssima frequência 0, 1 ou 2
Frequencia não pode ser
negativa
< 0
Frequencia não pode ser
maior que 0
> 10
Exercício
Altere o algoritmo para a seguinte
situação:
Categoria Frequência
Assíduo 9 < frequencia <= 10
Boa frequência 7 < frequencia <= 9
Frequência regular 5 < frequencia <= 7
Baixa frequência 2 < frequencia <= 5
Baixíssima frequência 0 <= frequencia <= 2
Frequencia não pode ser
negativa
< 0
Frequencia não pode ser
maior que 0
> 10
Quando usar qual?
Todos são estruturas de condição
• se-entao
• se-entao-senao
• escolha
Observem
• Onde está a condição na estrutura?
escolha <expressão-de-seleção>
caso <valor1a>, <valor2a>, ...
<comandos-a>
caso <valor1b>, <valor2b>, ...
<comandos-b>
caso <valor1c>, <valor2c>, ...
<comandos-c>
...
outrocaso
< comandos-x>
fimescolha
se <expressão-lógica-verdadeira> entao
<comando(s)1>
senao
<comando(s)2>
fimse
se <expressão-lógica-verdadeira> entao
<comando(s)1>
fimse
Observem
Quantas opções de comandos a executar existem?
escolha <expressão-de-seleção>
caso <valor1a>, <valor2a>, ...
<comandos-a>
caso <valor1b>, <valor2b>, ...
<comandos-b>
caso <valor1c>, <valor2c>, ...
<comandos-c>
...
outrocaso
< comandos-x>
fimescolha
se <expressão-lógica-verdadeira> entao
<comando(s)1>
senao
<comando(s)2>
fimse
se <expressão-lógica-verdadeira> entao
<comando(s)1>
fimse
Estrutura de Repetição
Estrutura de Repetição
• Decidir e controlar quantas vezes uma ação (ou conjunto de ações) deve ser executada
• Também chamadas de estruturas de iteração ou laços
• Em Portugol, temos:- enquanto-faca- para-faca
Exemplo 1
• Imprimir * cem vezes
Exemplo 1
algoritmo " escreve_*_100_vezes"var i: inteiroinicioi <- 1enquanto i <= 100 faca
escreval(“*”)i <- i+1
fimenquantofimalgoritmo
Exemplo 2
• Imprimir de 1 a 5
Exemplo 2
algoritmo " escreve_numeros_1_a_5"var i: inteiroinicioi <- 1enquanto i <= 5 faca
escreval(i)i <- i+1
fimenquantofimalgoritmo
Estrutura de Repetição enquanto-faca
enquanto <expressão-lógica-verdadeira> faca
<seqüência-de-comandos>
fimenquanto
Exemplo 3
Faça um algoritmo que leia um
numero do usuário e só pare de
solicitar o número somente quando
ele digitar 1001
Exemplo 3
algoritmo "digite1001"var numero: inteiroinicioenquanto (numero <> 1001) faca
leia(numero)fimenquantofimalgoritmo
Exemplo 3
Faça um algoritmo que leia uma
palavra do usuário e pare de
solicitar a palavra somente quando
ele digitar sair
Exemplo 3
algoritmo "digiteSair"var texto: caracterinicioenquanto (texto <> "sair") faca
leia(texto)fimenquantofimalgoritmo
Exemplo 4
• Escreva * a quantidade de vezes do
usuário pedir
Exemplo 4
algoritmo "escreva varias vezes"var
quantidade, totalimpresso: inteiroinicio
escreva("Digite a quantidade de vezes: ")leia(quantidade)totalimpresso <- 0enquanto (totalimpresso <> quantidade) faca
escreva("*")totalimpresso <- totalimpresso + 1
fimenquantofimalgoritmo
Exemplo 5
• Leia um número inteiro positivo do
usuário e escreva todos os números
inteiros até o número escolhido
Exemplo 5
algoritmo "escreva numeros inteiros"var
numerodesejado, numeroatual: inteiroinicio
escreva("Digite um numero inteiro: ")leia(numerodesejado)numeroatual <- 0enquanto (numeroatual <> numerodesejado) faca
escreva(numeroatual, " ")numeroatual <- numeroatual + 1
fimenquantoescreva(numeroatual, " ")
fimalgoritmo
Exemplo 6
• Calcular o n-ésimo elemento da
sequência
1, 3, 5, 7, 9, ...
1, 3, 5, 7, 9, ...
algoritmo "categorias de atletas"var
indicedesejado, indice, numeroanterior, numeroatual: inteiroinicio
indice <- 0numeroanterior <- 0numeroatual <- 1leia(indicedesejado)enquanto (indice <> indicedesejado) faca
numeroanterior <- numeroatualnumeroatual <- numeroanterior + 2indice <- indice + 1escreva(numeroatual, " ")
fimenquantofimalgoritmo