aula 10 - comando de decisão múltipla e comandos de repetição
TRANSCRIPT
![Page 1: Aula 10 - Comando de Decisão Múltipla e Comandos de Repetição](https://reader031.vdocuments.site/reader031/viewer/2022020101/55939c141a28abed618b45f1/html5/thumbnails/1.jpg)
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
![Page 2: Aula 10 - Comando de Decisão Múltipla e Comandos de Repetição](https://reader031.vdocuments.site/reader031/viewer/2022020101/55939c141a28abed618b45f1/html5/thumbnails/2.jpg)
Na aula anterior...
• Resultados dos operadores matemáticos
• Operadores
- Relacionais
- Lógicos
• Comando de Decisão Múltipla
![Page 3: Aula 10 - Comando de Decisão Múltipla e Comandos de Repetição](https://reader031.vdocuments.site/reader031/viewer/2022020101/55939c141a28abed618b45f1/html5/thumbnails/3.jpg)
Nesta aula...
• Comando de Decisão Múltipla
• Comandos de Repetição
![Page 4: Aula 10 - Comando de Decisão Múltipla e Comandos de Repetição](https://reader031.vdocuments.site/reader031/viewer/2022020101/55939c141a28abed618b45f1/html5/thumbnails/4.jpg)
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
![Page 5: Aula 10 - Comando de Decisão Múltipla e Comandos de Repetição](https://reader031.vdocuments.site/reader031/viewer/2022020101/55939c141a28abed618b45f1/html5/thumbnails/5.jpg)
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
![Page 6: Aula 10 - Comando de Decisão Múltipla e Comandos de Repetição](https://reader031.vdocuments.site/reader031/viewer/2022020101/55939c141a28abed618b45f1/html5/thumbnails/6.jpg)
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
![Page 7: Aula 10 - Comando de Decisão Múltipla e Comandos de Repetição](https://reader031.vdocuments.site/reader031/viewer/2022020101/55939c141a28abed618b45f1/html5/thumbnails/7.jpg)
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
![Page 8: Aula 10 - Comando de Decisão Múltipla e Comandos de Repetição](https://reader031.vdocuments.site/reader031/viewer/2022020101/55939c141a28abed618b45f1/html5/thumbnails/8.jpg)
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
![Page 9: Aula 10 - Comando de Decisão Múltipla e Comandos de Repetição](https://reader031.vdocuments.site/reader031/viewer/2022020101/55939c141a28abed618b45f1/html5/thumbnails/9.jpg)
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
![Page 10: Aula 10 - Comando de Decisão Múltipla e Comandos de Repetição](https://reader031.vdocuments.site/reader031/viewer/2022020101/55939c141a28abed618b45f1/html5/thumbnails/10.jpg)
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
![Page 11: Aula 10 - Comando de Decisão Múltipla e Comandos de Repetição](https://reader031.vdocuments.site/reader031/viewer/2022020101/55939c141a28abed618b45f1/html5/thumbnails/11.jpg)
![Page 12: Aula 10 - Comando de Decisão Múltipla e Comandos de Repetição](https://reader031.vdocuments.site/reader031/viewer/2022020101/55939c141a28abed618b45f1/html5/thumbnails/12.jpg)
Quando usar qual?
Todos são estruturas de condição
• se-entao
• se-entao-senao
• escolha
![Page 13: Aula 10 - Comando de Decisão Múltipla e Comandos de Repetição](https://reader031.vdocuments.site/reader031/viewer/2022020101/55939c141a28abed618b45f1/html5/thumbnails/13.jpg)
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
![Page 14: Aula 10 - Comando de Decisão Múltipla e Comandos de Repetição](https://reader031.vdocuments.site/reader031/viewer/2022020101/55939c141a28abed618b45f1/html5/thumbnails/14.jpg)
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
![Page 15: Aula 10 - Comando de Decisão Múltipla e Comandos de Repetição](https://reader031.vdocuments.site/reader031/viewer/2022020101/55939c141a28abed618b45f1/html5/thumbnails/15.jpg)
Estrutura de Repetição
![Page 16: Aula 10 - Comando de Decisão Múltipla e Comandos de Repetição](https://reader031.vdocuments.site/reader031/viewer/2022020101/55939c141a28abed618b45f1/html5/thumbnails/16.jpg)
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
![Page 17: Aula 10 - Comando de Decisão Múltipla e Comandos de Repetição](https://reader031.vdocuments.site/reader031/viewer/2022020101/55939c141a28abed618b45f1/html5/thumbnails/17.jpg)
Exemplo 1
• Imprimir * cem vezes
![Page 18: Aula 10 - Comando de Decisão Múltipla e Comandos de Repetição](https://reader031.vdocuments.site/reader031/viewer/2022020101/55939c141a28abed618b45f1/html5/thumbnails/18.jpg)
Exemplo 1
algoritmo " escreve_*_100_vezes"var i: inteiroinicioi <- 1enquanto i <= 100 faca
escreval(“*”)i <- i+1
fimenquantofimalgoritmo
![Page 19: Aula 10 - Comando de Decisão Múltipla e Comandos de Repetição](https://reader031.vdocuments.site/reader031/viewer/2022020101/55939c141a28abed618b45f1/html5/thumbnails/19.jpg)
Exemplo 2
• Imprimir de 1 a 5
![Page 20: Aula 10 - Comando de Decisão Múltipla e Comandos de Repetição](https://reader031.vdocuments.site/reader031/viewer/2022020101/55939c141a28abed618b45f1/html5/thumbnails/20.jpg)
Exemplo 2
algoritmo " escreve_numeros_1_a_5"var i: inteiroinicioi <- 1enquanto i <= 5 faca
escreval(i)i <- i+1
fimenquantofimalgoritmo
![Page 21: Aula 10 - Comando de Decisão Múltipla e Comandos de Repetição](https://reader031.vdocuments.site/reader031/viewer/2022020101/55939c141a28abed618b45f1/html5/thumbnails/21.jpg)
Estrutura de Repetição enquanto-faca
enquanto <expressão-lógica-verdadeira> faca
<seqüência-de-comandos>
fimenquanto
![Page 22: Aula 10 - Comando de Decisão Múltipla e Comandos de Repetição](https://reader031.vdocuments.site/reader031/viewer/2022020101/55939c141a28abed618b45f1/html5/thumbnails/22.jpg)
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
![Page 23: Aula 10 - Comando de Decisão Múltipla e Comandos de Repetição](https://reader031.vdocuments.site/reader031/viewer/2022020101/55939c141a28abed618b45f1/html5/thumbnails/23.jpg)
Exemplo 3
algoritmo "digite1001"var numero: inteiroinicioenquanto (numero <> 1001) faca
leia(numero)fimenquantofimalgoritmo
![Page 24: Aula 10 - Comando de Decisão Múltipla e Comandos de Repetição](https://reader031.vdocuments.site/reader031/viewer/2022020101/55939c141a28abed618b45f1/html5/thumbnails/24.jpg)
Exemplo 3
Faça um algoritmo que leia uma
palavra do usuário e pare de
solicitar a palavra somente quando
ele digitar sair
![Page 25: Aula 10 - Comando de Decisão Múltipla e Comandos de Repetição](https://reader031.vdocuments.site/reader031/viewer/2022020101/55939c141a28abed618b45f1/html5/thumbnails/25.jpg)
Exemplo 3
algoritmo "digiteSair"var texto: caracterinicioenquanto (texto <> "sair") faca
leia(texto)fimenquantofimalgoritmo
![Page 26: Aula 10 - Comando de Decisão Múltipla e Comandos de Repetição](https://reader031.vdocuments.site/reader031/viewer/2022020101/55939c141a28abed618b45f1/html5/thumbnails/26.jpg)
Exemplo 4
• Escreva * a quantidade de vezes do
usuário pedir
![Page 27: Aula 10 - Comando de Decisão Múltipla e Comandos de Repetição](https://reader031.vdocuments.site/reader031/viewer/2022020101/55939c141a28abed618b45f1/html5/thumbnails/27.jpg)
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
![Page 28: Aula 10 - Comando de Decisão Múltipla e Comandos de Repetição](https://reader031.vdocuments.site/reader031/viewer/2022020101/55939c141a28abed618b45f1/html5/thumbnails/28.jpg)
Exemplo 5
• Leia um número inteiro positivo do
usuário e escreva todos os números
inteiros até o número escolhido
![Page 29: Aula 10 - Comando de Decisão Múltipla e Comandos de Repetição](https://reader031.vdocuments.site/reader031/viewer/2022020101/55939c141a28abed618b45f1/html5/thumbnails/29.jpg)
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
![Page 30: Aula 10 - Comando de Decisão Múltipla e Comandos de Repetição](https://reader031.vdocuments.site/reader031/viewer/2022020101/55939c141a28abed618b45f1/html5/thumbnails/30.jpg)
Exemplo 6
• Calcular o n-ésimo elemento da
sequência
1, 3, 5, 7, 9, ...
![Page 31: Aula 10 - Comando de Decisão Múltipla e Comandos de Repetição](https://reader031.vdocuments.site/reader031/viewer/2022020101/55939c141a28abed618b45f1/html5/thumbnails/31.jpg)
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