Algoritmos 01 - Semana 08 - Estruturas de repetição

16
Algoritmo 1 Semana 08 ESTRUTURAS DE REPETIÇÃO http://eder.villalba.com.br 1

Transcript of Algoritmos 01 - Semana 08 - Estruturas de repetição

Page 1: Algoritmos 01 - Semana 08 - Estruturas de repetição

http://eder.villalba.com.br

Algoritmo 1Semana 08ESTRUTURAS DE REPETIÇÃO

1

Page 2: Algoritmos 01 - Semana 08 - Estruturas de repetição

Estruturas de Repetição (Parte 01)ENQUANTO... FAÇA

REPITA ATÉ

Page 3: Algoritmos 01 - Semana 08 - Estruturas de repetição

Enquanto... Faça

Page 4: Algoritmos 01 - Semana 08 - Estruturas de repetição

Enquanto... Faça

Na estrutura enquanto..faca, a expressão lógica é avaliada e, se ela for verdadeira, a lista de comandos é executada. Isso se repete até que a condição seja falsa. Veja a sua forma geral:

enquanto <expressão lógica ou relacional> faca

<lista de comandos>

fimenquanto

Vamos ver um exemplo....

Page 5: Algoritmos 01 - Semana 08 - Estruturas de repetição

Enquanto... Faça

1. algoritmo “comEnquanto”

2. var

3. i: numerico

4. inicio

5. i 3

6. enquanto i >=0 faca

7. escreva (i*2)

8. i i - 1

9. fimenquanto

10. fimalgoritmo

I = 3

6

I = 2

4

I = 1

2

I = 0

0

I = -1

Page 6: Algoritmos 01 - Semana 08 - Estruturas de repetição

Repita... Até...

Page 7: Algoritmos 01 - Semana 08 - Estruturas de repetição

Repita... Até...

Nessa estrutura, todos os comandos da lista são executados e uma expressão lógica é avaliada. Isto se repete até que a avaliação da condição resulte em FALSO, quanto então o próximo comando a ser executado é o comando imediatamente após o ate. Cada repetição da lista de comandos também é chamada de iteração e essa estrutura também é chamada de laço de repetição. Sua forma geral é:

repita

<lista de comandos>

ate <expressão lógica ou relacional>

Page 8: Algoritmos 01 - Semana 08 - Estruturas de repetição

Repita... Até...

1. algoritmo “comRepita”

2. var

3. i: numerico

4. inicio

5. i 3

6. repita

7. se i >=0 entao

8. escreva (i*2)

9. fimse

10 i i-1

11. ate i<=0

12. fimalgoritmo

I = 3

6

I = 2

4

I = 1

2

I = 0

Page 9: Algoritmos 01 - Semana 08 - Estruturas de repetição

Exercícios... Exercícios...

Page 10: Algoritmos 01 - Semana 08 - Estruturas de repetição

Algoritmo que escreve os números de 1 a 10.

1. algoritmo "DemonstraRepeticao"

2. VAR

3. i: INTEIRO

4. inicio

5. i 1

6. repita

7. escreva (i)

8. I i + 1

9. ate i > 10

10. fimalgoritmo

No exemplo, a variável i controla o número de repetições do laço. Normalmente, a variável de controle do laço recebe um valor inicial, é incrementada (ou decrementada) de um valor constante no laço e tem seu valor testado no final do laço. Ao chegar a um determinado valor, o laço é interrompido. A inicialização da variável contadora deve acontecer fora do laço, antes do seu início.

Page 11: Algoritmos 01 - Semana 08 - Estruturas de repetição

Algoritmo que escreve os números pares de 10 a 2.

1. algoritmo "DecrementoNumerosPares"

2. var

3. i: inteiro

4. inicio

5. i <- 10

6. Repita

7. escreva (i)

8. i <- i - 2

9. ate i = 0

10. Fimalgoritmo

Page 12: Algoritmos 01 - Semana 08 - Estruturas de repetição

Algoritmo com erro (Loop Infinito)

1. algoritmo “laçoInfinito”

2. VAR

3. Contador: numerico

4. inicio

5. repita

6. Contador <- 1

7. Contador <- Contador + 1

8. ate Contador = 10

9. fimalgoritmo

Um cuidado fundamental que o construtor do algoritmo deve ter é o de certificar-se que a condição para que sejam mantidas as iterações torne-se, em algum momento, falsa, para que o algoritmo não entre em um laço infinito.

No exemplo, a execução do algoritmo entra em um laço infinito porque a inicialização da variável Contador (instrução Contador <- 1) deveria ser feita antes do comando repita, ou seja, antes do laço. No exemplo, ela sempre voltará a ser 1 e nunca alcançará o valor 10.

Page 13: Algoritmos 01 - Semana 08 - Estruturas de repetição

Algoritmo Consertado

1. algoritmo “laçoInfinito Consertado”

2. VAR

3. Soma: REAL

4. inicio

5. Soma <- 1

6. repita

7. Soma <- Soma + 2

8. ate Soma > 10

9. escreva (soma)

10. fimalgoritmo

Quando ocorrer laço infinito no Visualg você ficará sem comunicação. Procure dar Ctrl+ALT+DEL e selecionar o programa Visualg e clicar no botão finalizar. Não se preocupe com seu algoritmo, pois quando ocorre isso o Visualg salva automaticamente.Para recuperar seu algoritmo basta abrir Visualg novamente que mostrará uma janela, perguntando se deseja recuperar ou não o algoritmo perdido no laço infinito.Se você sabe que vai ocorrer um laço infinito e mesmo assim quer executar seu algoritmo, procura executar passo a passo pressionando a tecla F8 para não trancar.

Page 14: Algoritmos 01 - Semana 08 - Estruturas de repetição

Exemplo de Menu 1. algoritmo "Menu"

2. VAR

3. opcao: inteiro

4. inicio

5. repita 6. escreval ("Cadastro de clientes")

7. escreval ("1-Incluir")

8. escreval ("2-Alterar")

9. escreval ("3-Consultar")

10. escreval ("4-Excluir")

11. escreval ("5-Sair")

12. leia(opcao)

13. ate opcao = 5

14. fimalgoritmo

Page 15: Algoritmos 01 - Semana 08 - Estruturas de repetição

Algoritmo que lê diversos números positivos e escreve, para cada um, sua raiz quadrada.

Usando estrutura Enquanto Usando estrutura Repita

1. algoritmo “comEnquanto”

2. var

3. i: numerico

4. inicio

5. leia (i)

6. enquanto i >=0 faca

7. escreva (i^0.5)

8. leia (i)

9. fimenquanto

10. fimalgoritmo

1. algoritmo “comRepita”

2. var

3. i: numerico

4. inicio

5. repita

6. leia (i)

7. se i >=0 entao

8. escreva (i^0.5)

9. fimse

10. ate i<0

11. fimalgoritmo

Page 16: Algoritmos 01 - Semana 08 - Estruturas de repetição

Exercicio

Faça um algoritmo que leia indefinidos números inteiros dados pelo usuário até que ele digite 0.

Imprima: Total de números digitados

Soma dos números digitados

Media dos números digitados

http://eder.villalba.com.br

16