construcao de algoritmos - aula 08

48
Disciplina: Constr. de Algoritmos e Prog. de Sistemas Professor: Jeovane Reges Caxias – MA 2016 ACULDADE DE CIÊNCIAS E TECNOLOGIA DO MARANHÃO

Upload: facema-faculdade-de-ciencias-e-tecnologia-do-maranhao

Post on 16-Feb-2017

41 views

Category:

Education


5 download

TRANSCRIPT

Page 1: Construcao de Algoritmos - Aula 08

Disciplina: Constr. de Algoritmos e Prog. de SistemasProfessor: Jeovane Reges

Caxias – MA2016

ACULDADE DE CIÊNCIAS E TECNOLOGIA DO MARANHÃO

Page 2: Construcao de Algoritmos - Aula 08

2

Link Drive

bit.ly/ads-algoritmos

Page 3: Construcao de Algoritmos - Aula 08

3

Algoritmos

Page 4: Construcao de Algoritmos - Aula 08

4

Controle de Fluxo

<Comandos de Repetições>

Page 5: Construcao de Algoritmos - Aula 08

5

• Algoritmos• Comandos de Repetições• Introdução• Na aula anterior, vimos como realizar desvios

condicionais em um algoritmo. Criamos algoritmos onde um bloco de comandos é

executado somente se determinada condição for atendida.

• Há casos em que um bloco de comandos deve ser executado "mais de uma vez".

• Tal repetição ocorrerá enquanto (ou até que) uma dada condição seja satisfazível.

Page 6: Construcao de Algoritmos - Aula 08

6

O objetivo de tais comandos é executar uma instrução (ou conjunto de instruções) repetidas vezes,

enquanto (ou até que) uma dada condição seja satisfeita.

Page 7: Construcao de Algoritmos - Aula 08

7

• Algoritmos• Exemplo:• Algoritmo que escreva cinco vezes a frase:

"Programação", de que forma você faria?

algoritmo "Repete Frase"var inicio escreval("Programação") escreval("Programação") escreval("Programação") escreval("Programação") escreval("Programação")fimalgoritmo

Page 8: Construcao de Algoritmos - Aula 08

8

• Algoritmos• Comandos de Repetições• Exemplo:• Parece simples, não? Mas, e se

mudássemos o número de repetições?

• Se, ao invés de cinco mensagens, tivéssemos que imprimir cem mensagens? Ou cinco mil mensagens?

• Seria um tanto exaustivo ficar digitando tantas vezes o mesmo comando.

Page 9: Construcao de Algoritmos - Aula 08

9

A solução para esse impasse é a utilização dos comandos de

repetições.

Page 10: Construcao de Algoritmos - Aula 08

10

• Algoritmos• Comandos de Repetições• Introdução• Os comandos de repetição classificam-se

em: Comando com teste condicional no início;

• <comandos ENQUANTO ... FAÇA>

Comando com variável de controle. • <comandos PARA>

Comando com teste condicional no final; e• <comandos REPITA ... ATÉ>

Page 11: Construcao de Algoritmos - Aula 08

11

Comandos de Repetições<enquanto>

Page 12: Construcao de Algoritmos - Aula 08

12

• Algoritmos• Comandos de Repetições• Comando enquanto

Sintaxe

enquanto ([expressão]) faca // Instruções lógicas abaixo. [bloco de instruções]fimenquanto

É obrigatório o espaço existente entre a expressão e os comandos enquanto e faca.

Page 13: Construcao de Algoritmos - Aula 08

13

• Algoritmos• Comandos de Repetições• Comando enquanto• Se a expressão for considerada

verdadeira, a sequência de comandos será executada. O "teste" volta a ser realizado sempre que os

blocos de comandos definidos no enquanto são executados.

• Se a expressão for considerada falsa, a sequência de comandos não será executada. O que significa que ela jamais pode ser

executada.

Page 14: Construcao de Algoritmos - Aula 08

14

Enquanto (eu for estudante) faca escreval("Sou liso!")fimenquanto

Page 15: Construcao de Algoritmos - Aula 08

15

• Algoritmos• Exemplo:• Faça um algoritmo que escreva cinco

vezes a frase: "Programação".algoritmo "Repete Frase"var contador: inteiroinicio contador ← 1 enquanto (contador <= 5) faca escreval("Programação") contador ← contador + 1 fimenquantofimalgoritmo

Page 16: Construcao de Algoritmos - Aula 08

16

Problema IFaça um algoritmo que imprima os números no intervalo de 1 à 10 na

tela.

Page 17: Construcao de Algoritmos - Aula 08

17

• Algoritmos• Comandos de Repetições

Resolução do Problema I

algoritmo "Problema 01"var contador: inteiroinicio contador ← 1 enquanto (contador <= 10) faca escreval(contador) contador ← contador + 1 fimenquantofimalgoritmo

Page 18: Construcao de Algoritmos - Aula 08

18

Problema IIFaça um algoritmo que

apresente os valores contidos no intervalo de 1 até onde o

usuário "desejar".

Page 19: Construcao de Algoritmos - Aula 08

19

• Algoritmos• Comandos de Repetições

Resolução do Problema IIalgoritmo "Problema 02"var contador, valor: inteiroinicio contador ← 1 escreva("Quer contar até quanto? ") leia(valor)

enquanto (contador <= valor) faca escreval(contador) contador ← contador + 1 fimenquantofimalgoritmo

Page 20: Construcao de Algoritmos - Aula 08

20

Problema IIIFaça um algoritmo que realize a soma dos valores contidos

no intervalo de 1 à 5.

Page 21: Construcao de Algoritmos - Aula 08

21

• Algoritmos• Comandos de Repetições

Resolução do Problema IIIalgoritmo "Problema 03"var contador, soma: inteiroinicio contador ← 1 soma ← 0

enquanto (contador <= 5) faca soma ← soma + contador contador ← contador + 1 fimenquanto

escreval(soma)fimalgoritmo

Page 22: Construcao de Algoritmos - Aula 08

22

Problema IVFaça um algoritmo que dados

cinco valores "fornecidos" pelo usuário, apresente o maior valor

digitado.

Page 23: Construcao de Algoritmos - Aula 08

23

• Algoritmos

algoritmo "Problema 04"var // mv → maior valor contador, valor, mv: inteiroinicio escreva("Digite um valor: ") leia(valor) mv ← valor

contador ← 2 enquanto (contador <= 5) faca escreva("Digite um valor: ") leia(valor) se (valor > mv) entao mv ← valor fimse contador ← contador + 1 fimenquanto escreval(mv)fimalgoritmo

Reso

luçã

o do

Pro

blem

a IV

Page 24: Construcao de Algoritmos - Aula 08

24

O comando ENQUANTO testa uma condição e, enquanto essa

condição for verdadeira, as instruções associadas ao comando

serão executadas.

Page 25: Construcao de Algoritmos - Aula 08

25

Comandos de Repetições

<Para>

Page 26: Construcao de Algoritmos - Aula 08

26

• Algoritmos• Comandos de Repetições• Comando para• O comando para é muito similar ao

comando enquanto, visto anteriormente.

• Basicamente, o comando para é usado para repetir um comando ou uma sequência de comandos diversas vezes.

Page 27: Construcao de Algoritmos - Aula 08

27

• Algoritmos• Comandos de Repetições• Comando para • A quantidade de execuções (repetições)

que o comando irá repetir é conhecida previamente. Há uma variável que funciona como contador

para essas repetições.

Esta variável deve cessar a repetição no momento em que a contagem chegar ao final.

Há, também, um valor de incremento, que define de quantas em quantas unidades a repetição executará.

Page 28: Construcao de Algoritmos - Aula 08

28

• Algoritmos• Comandos de Repetições• Comando para

Sintaxes: VInt ← variável inteiro, VI ← valor inicial, VF ← valor

final e VInc ← valor de incremento.

para <VInt> de <VI> ate <VF> [passo <VInc>] faca <bloco de instruções>fimpara

OU

para <VInt> de <VI> ate <VF> faca <bloco de instruções>fimpara

"Opcional"

Page 29: Construcao de Algoritmos - Aula 08

29

• Algoritmos• Comandos de Repetições• Exemplo:• Faça um algoritmo que escreva cinco

vezes a frase: "Programação".

algoritmo "Repete Frase"var contador: inteiroinicio para contador de 1 ate 5 faca escreval("Programação") fimparafimalgoritmo

Page 30: Construcao de Algoritmos - Aula 08

30

• Algoritmos• Comandos de Repetições• Comando para

A variável de controle deve ser uma variável numérica do tipo inteiro.

O valor inicial corresponde ao valor de inicialização da variável antes da primeira repetição.

O valor final corresponde ao valor máximo que a variável pode alcançar.

Se o valor de incremento NÃO for definido, assume-se o valor = 1.

Pode ser atribuído um valor negativo ao valor de incremento.

Page 31: Construcao de Algoritmos - Aula 08

31

Problema VFaça um algoritmo que imprima os números no intervalo de 1 à 10 na

tela.

Page 32: Construcao de Algoritmos - Aula 08

32

• Algoritmos• Comandos de Repetições

Resolução do Problema V

// Utilizando enquanto...

// Utilizando o "Enquanto"contador ← 1enquanto (contador <= 10) faca escreval(contador) contador ← contador + 1fimenquanto

Page 33: Construcao de Algoritmos - Aula 08

33

• Algoritmos• Comandos de Repetições

Resolução do Problema V

Saída: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10

algoritmo "Problema 05"var contador: inteiroinicio para contador de 1 ate 10 faca escreval(contador) fimparafimalgoritmo

Page 34: Construcao de Algoritmos - Aula 08

34

Problema VIFaça um algoritmo que

apresente os valores contidos no intervalo de 1 até onde o

usuário "desejar".

Page 35: Construcao de Algoritmos - Aula 08

35

• Algoritmos• Comandos de Repetições

Resolução do Problema VI

algoritmo "Problema 06"var contador, valor: inteiroinicio escreva("Deseja contar até quanto? ") leia(valor)

para contador de 1 ate valor faca escreval(contador) fimparafimalgoritmo

Page 36: Construcao de Algoritmos - Aula 08

36

Problema VIIFaça um algoritmo que realize a soma dos valores contidos

no intervalo de 1 à 5.

Page 37: Construcao de Algoritmos - Aula 08

37

• Algoritmos• Comandos de Repetições

Resolução do Problema VII

algoritmo "Problema 07"var contador, soma: inteiroinicio soma ← 0

para contador de 1 ate 5 faca soma ← soma + contador fimpara

escreval(soma)fimalgoritmo

Page 38: Construcao de Algoritmos - Aula 08

38

Problema VIIIFaça um algoritmo que dados

cinco valores "fornecidos" pelo usuário, apresente o maior valor

digitado.

Page 39: Construcao de Algoritmos - Aula 08

39

• Algoritmos

algoritmo "Problema 08"Var // mv → maior valor contador, valor, mv: inteiroinicio escreva("Digite um valor: ") leia(valor) mv ← valor

para contador de 2 ate 5 faca escreva("Digite um valor: ") leia(valor)

se (valor > mv) entao mv ← valor fimse fimpara escreval(mv)fimalgoritmoRe

solu

ção

do P

robl

ema

VIII

Page 40: Construcao de Algoritmos - Aula 08

40

Comandos de Repetições

<Repita>

Page 41: Construcao de Algoritmos - Aula 08

41

• Algoritmos• Comandos de Repetições• Comando repita

Sintaxe

repita // Instruções lógicas abaixo. [bloco de instruções]ate ([expressão])

Esta expressão será avaliada após a execução das instruções contidas no laço. Caso a expressão seja

VERDADEIRA, então o laço terá sua execução INTERROMPIDA.

Page 42: Construcao de Algoritmos - Aula 08

42

• Algoritmos• Comandos de Repetições• ER com teste condicional no final• Este tipo de laço executa o bloco de

comandos e em seguida avalia a expressão condicional.

• A repetição ocorre se o valor dessa expressão for falso.

• Se esse valor for verdadeiro, a execução prossegue adiante (encerra).

Page 43: Construcao de Algoritmos - Aula 08

43

Enquanto (eu for estudante) faca escreval("Sou liso!")fimenquanto

Repita escreval("É liso!")ate (você é analista?)

Page 44: Construcao de Algoritmos - Aula 08

44

Problema IXFaça um algoritmo que faça a

leitura de vários números digitados pelo usuário, até que se digite um número negativo.

Page 45: Construcao de Algoritmos - Aula 08

45

• Algoritmos• Comandos de Repetições

Resolução do Problema IX

algoritmo "Problema 09"var valor: inteiroinicio repita escreva("Digite um valor: ") leia(valor) ate(valor < 0)fimalgoritmo

Page 46: Construcao de Algoritmos - Aula 08

46

Problema XDadas várias idades digitadas pelo usuário diga quantas idades são "maiores do que 18 anos e quantas são menores do que 18". O algoritmo encerra quando for digitada uma

idade NEGATIVA.

Page 47: Construcao de Algoritmos - Aula 08

47

• Algoritmos• Comandos de Repetições

algoritmo "Problema 10"var idade, menores, maiores: inteiroinicio repita escreva("Digite uma idade: ") leia(idade) se (idade >= 18) entao maiores ← maiores + 1 senão se (idade > 0) entao menores ← menores + 1 fimse fimse ate(idade < 0) // resultado finalfimalgoritmoRe

solu

ção

do P

robl

ema

X

Page 48: Construcao de Algoritmos - Aula 08

48

O comando REPITA executa as instruções até que a condição seja

verdadeira. Ou seja, se a condição for falsa, o ciclo continua, caso contrário, a

repetição é encerrada.