26
VisuALG – Estruturas de Repetição Professora: Ana Paula Cação [email protected]

VisuALG Estruturas de Repetição · estrutura de repetição, teremosum problema de repetiçãoinfinita ou ciclo infinito; • A repetição infinita irá bloquear o software, que

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: VisuALG Estruturas de Repetição · estrutura de repetição, teremosum problema de repetiçãoinfinita ou ciclo infinito; • A repetição infinita irá bloquear o software, que

VisuALG – Estruturas de Repetição

Professora:

Ana Paula Caçã[email protected]

Page 2: VisuALG Estruturas de Repetição · estrutura de repetição, teremosum problema de repetiçãoinfinita ou ciclo infinito; • A repetição infinita irá bloquear o software, que

VisuALG: Introdução a

ESTRUTURAS DE REPETIÇÃO

Page 3: VisuALG Estruturas de Repetição · estrutura de repetição, teremosum problema de repetiçãoinfinita ou ciclo infinito; • A repetição infinita irá bloquear o software, que

Estruturas de Repetição

• Executar tarefas repetitivas;

• Três principais opções:

– enquanto <condição> faca

fimenquanto

– repita ... ate < condição >

– para <contagem> faca

fimpara

Page 4: VisuALG Estruturas de Repetição · estrutura de repetição, teremosum problema de repetiçãoinfinita ou ciclo infinito; • A repetição infinita irá bloquear o software, que

enquanto – faca

• Verifica primeiro, executadepois;

• Repete apenas enquanto <condição> = verdade;

enquanto <condição> faca

...

fimenquanto x: inteiro

x < - 1

enquanto (x <= 10) faca

escreval(x)

x <- x+ 1 fimenquanto

Exemplo –Contagem até10

Page 5: VisuALG Estruturas de Repetição · estrutura de repetição, teremosum problema de repetiçãoinfinita ou ciclo infinito; • A repetição infinita irá bloquear o software, que

enquanto – faca

Page 6: VisuALG Estruturas de Repetição · estrutura de repetição, teremosum problema de repetiçãoinfinita ou ciclo infinito; • A repetição infinita irá bloquear o software, que
Page 7: VisuALG Estruturas de Repetição · estrutura de repetição, teremosum problema de repetiçãoinfinita ou ciclo infinito; • A repetição infinita irá bloquear o software, que

repita –ate

• Executa primeiro, verifica depois:

• Repete apenas enquanto: <condição> =falso;

repita

...

ate <clausula> x: inteiro

x < - 1

repita

escreval(x)

x <- x+ 1 ate (x > 10)

Exemplo –Contagem até10

Page 8: VisuALG Estruturas de Repetição · estrutura de repetição, teremosum problema de repetiçãoinfinita ou ciclo infinito; • A repetição infinita irá bloquear o software, que

repita –ate

• Exemplo:opcao: inteiro

repita

escreval("1 - Dizer olá!")

escreval("2 – Dizer oi! ")

escreval("0 - Sair do programa")

leia(opcao)

se (opcao = 1) entao

escreval("Olá!")

fimse

se (opcao = 2) entaoescreval("Oi!")

fimse

ate (opcao =0)

Page 9: VisuALG Estruturas de Repetição · estrutura de repetição, teremosum problema de repetiçãoinfinita ou ciclo infinito; • A repetição infinita irá bloquear o software, que
Page 10: VisuALG Estruturas de Repetição · estrutura de repetição, teremosum problema de repetiçãoinfinita ou ciclo infinito; • A repetição infinita irá bloquear o software, que

para – faca

x: inteiro

para x de 1 ate 10 passo 1 faca

escreval(x)fimpara

• Repetição condicionada a uma contagem:

Opcional

x: inteiro

para x de 1 ate 10 faca

escreval(x)fimpara

para <variável> de <valor inicial> ate <valor final> [passo <incremento>]faca

...

fimpara

Exemplo –Contagematé 10 Exemplo –Contagem até 10 c/passo

Atenção: a <variável> utilizada nesta estrutura terá o seu valor

alterado.

Page 11: VisuALG Estruturas de Repetição · estrutura de repetição, teremosum problema de repetiçãoinfinita ou ciclo infinito; • A repetição infinita irá bloquear o software, que

para – faca

• Exemplo: soma, num: real

i, n: inteiro

escreva("Digite o número de elementos:")

leia(n)

soma <- 0

para i de 1 ate n faca

escreva("Digite um número: ")

leia(num)

soma <- soma + num

fimpara

escreval("Total dos ", n, " elementos: ", soma)

Page 12: VisuALG Estruturas de Repetição · estrutura de repetição, teremosum problema de repetiçãoinfinita ou ciclo infinito; • A repetição infinita irá bloquear o software, que

Exemplo Prático

Page 13: VisuALG Estruturas de Repetição · estrutura de repetição, teremosum problema de repetiçãoinfinita ou ciclo infinito; • A repetição infinita irá bloquear o software, que

Estruturas de Repetição

Como terminam as

CONDIÇÕES

Page 14: VisuALG Estruturas de Repetição · estrutura de repetição, teremosum problema de repetiçãoinfinita ou ciclo infinito; • A repetição infinita irá bloquear o software, que

Fim das Condições

• Se uma estrutura de repetição serve para

executar uma determinada tarefa váriasvezes,

é necessário indicar quando é que as

repetições devem parar:

– Pode ser feita por um número pré-determinado

de vezes;

– Pode ser feita até que um evento ocorra;

– Pode ser feita até a solicitação do utilizador;

Page 15: VisuALG Estruturas de Repetição · estrutura de repetição, teremosum problema de repetiçãoinfinita ou ciclo infinito; • A repetição infinita irá bloquear o software, que

Fim das Condições

• Para Faca é mais simples e adequada para ser

usada nos casos de um número pré

determinado de repetições;

– Principalmente em intervalos numéricos, contadorese

outros do género;

• Repita Ate() e Enquanto () Faca são mais

adequadas para repetir até que “algo” aconteça:

– Algo pode ser um comando do utilizador ou atése

obter uma informação ou valor esperado;

Page 16: VisuALG Estruturas de Repetição · estrutura de repetição, teremosum problema de repetiçãoinfinita ou ciclo infinito; • A repetição infinita irá bloquear o software, que

Fim das Condições

• Caso a condição não tenha fim, em qualquer

estrutura de repetição, teremos um problema

de repetição infinita ou ciclo infinito;

• A repetição infinita irá bloquear o software,

que não será capaz de terminar aoperação.

Page 17: VisuALG Estruturas de Repetição · estrutura de repetição, teremosum problema de repetiçãoinfinita ou ciclo infinito; • A repetição infinita irá bloquear o software, que

Fim das Condições

• Exemplo de ciclo infinito com EnquantoFaca:

cont: inteiro

cont <-1

enquanto (cont < 10) faca

escreva(cont)fimenquanto

Page 18: VisuALG Estruturas de Repetição · estrutura de repetição, teremosum problema de repetiçãoinfinita ou ciclo infinito; • A repetição infinita irá bloquear o software, que

Variáveis de Controlo

• Exemplos de variáveis de controle comEnquanto:

cont: inteiro

cont <-1

enquanto (cont < 10) faca

escreva(cont)

cont <- cont +1

fimenquanto

• Exemplos de variáveis de controle com Para Faca:

cont: inteiro

para cont de 1 ate 10faca

escreva(cont)

fimpara

Page 19: VisuALG Estruturas de Repetição · estrutura de repetição, teremosum problema de repetiçãoinfinita ou ciclo infinito; • A repetição infinita irá bloquear o software, que

Estruturas de Repetição

ACUMULADORES ECONTADORES

Page 20: VisuALG Estruturas de Repetição · estrutura de repetição, teremosum problema de repetiçãoinfinita ou ciclo infinito; • A repetição infinita irá bloquear o software, que

Acumuladores e Contadores

• Contagens, somas e multiplicações:

– São utilizadas com frequência emalgoritmos;

– Geralmente associadas à repetições;

– São representadas por variáveisnuméricas;

– E são incrementadas/alteradas de acordo com a

ocorrência de alguns padrões.

Page 21: VisuALG Estruturas de Repetição · estrutura de repetição, teremosum problema de repetiçãoinfinita ou ciclo infinito; • A repetição infinita irá bloquear o software, que

Contadores

• Contagem:

– É usada para, por exemplo:

• contabilizar o número de execuções de umarepetição;

• determinar o número de vezes que um particular valor (ouação)

ocorre numa determinadasequência;

• entre outros;

– A variável associada geralmente começa no valor

zero (elemento neutro dasoma);

– Sempre que conveniente, acrescenta-se 1 ao contador.

Page 22: VisuALG Estruturas de Repetição · estrutura de repetição, teremosum problema de repetiçãoinfinita ou ciclo infinito; • A repetição infinita irá bloquear o software, que

Acumuladores e Contadores

• Somas ou Produtos Acumulativos:

– São frequêntes em cálculos de somatórios, produtos ou consolidações de resultados (totais, médias,...);

– Somatório:• Geralmente são inicializadas no valor zero (elemento neutro da

soma);

• Sempre que apropriado, soma-se outros valores à própria variável;

– Produto:• São inicializadas usualmente com o valor um (elemento neutro da

multiplicação);

• Sempre quando necessário, são atualizadas com o resultado doseu valor corrente multiplicado por um novo termo.

Page 23: VisuALG Estruturas de Repetição · estrutura de repetição, teremosum problema de repetiçãoinfinita ou ciclo infinito; • A repetição infinita irá bloquear o software, que

Estruturas deRepetição

EXEMPLOS

Page 24: VisuALG Estruturas de Repetição · estrutura de repetição, teremosum problema de repetiçãoinfinita ou ciclo infinito; • A repetição infinita irá bloquear o software, que

Exemplo (repita –ate)

Escrever a tabuada de um número:1.x, y: inteiro

2.escreva(“Digite um número para a tabuada:”)

3.leia(x) 4.

y <-0

5.repita

6.escreval(x, “x”, y, “=“, x*y) 7. y

<- y +1

8. ate(y >10)

Contador

Page 25: VisuALG Estruturas de Repetição · estrutura de repetição, teremosum problema de repetiçãoinfinita ou ciclo infinito; • A repetição infinita irá bloquear o software, que

Exemplo (enquanto – faca)

Ler números introduzidos pelo utilizador até que ele digite 0(zero);

Mostrar a soma dos números e a média;

1. dig, soma, qtdade: inteiro

2. media: real

3. soma <- 0

4. qtdade <-0

5. escreva("Informe um número(0 para sair): ")

6. leia(dig)

7. enquanto (dig <> 0) faca

8. soma <- soma + dig

9. qtdade <- qtdade +1

10. escreva("Informe um número(0 para sair): ")

11. leia(dig)

12. fimenquanto

13. media <- soma / qtdade

14. escreva("Qtdade: ", qtdade, " Soma: ", soma, " Média: ", media)

Contador

Somatório

Page 26: VisuALG Estruturas de Repetição · estrutura de repetição, teremosum problema de repetiçãoinfinita ou ciclo infinito; • A repetição infinita irá bloquear o software, que

Exemplo (para – faca)

1. x, y, z, multi: inteiro

2. escreva("Escreva x: ")

3. leia(x)

4. escreva("Escreva y: ")

5. leia(y)

6. multi <-0

7. para z de y ate 1 passo -1faca

8. multi <-multi +x

9. fimpara

Multiplicar dois números apenas com somas:

10. escreva("A Multiplicação de x por y é : ",multi)

Somatório