aula 10 - comando de decisão múltipla e comandos de repetição

31
Aula 10 Comando de Decisão Múltipla e Comando de Repetição Prof. André Constantino da Silva LOGT1 Lógica Noturno 18 de maio de 2012

Upload: andre-constantino-da-silva

Post on 01-Jul-2015

1.338 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Aula 10 - Comando de Decisão Múltipla e Comandos de Repetição

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

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

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

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

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

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

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

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

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

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
Page 12: Aula 10 - Comando de Decisão Múltipla e Comandos de Repetição

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

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

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

Estrutura de Repetição

Page 16: Aula 10 - Comando de Decisão Múltipla e Comandos 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

Page 17: Aula 10 - Comando de Decisão Múltipla e Comandos de Repetição

Exemplo 1

• Imprimir * cem vezes

Page 18: Aula 10 - Comando de Decisão Múltipla e Comandos de Repetição

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

Exemplo 2

• Imprimir de 1 a 5

Page 20: Aula 10 - Comando de Decisão Múltipla e Comandos de Repetição

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

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

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

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

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

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

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

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

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

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

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

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