Algoritmos 01 - Semana 08 - Estruturas de repetição
-
Upload
eder-samaniego -
Category
Education
-
view
372 -
download
2
Transcript of Algoritmos 01 - Semana 08 - Estruturas de repetição
![Page 1: Algoritmos 01 - Semana 08 - Estruturas de repetição](https://reader035.fdocument.pub/reader035/viewer/2022062710/55b2a2d8bb61ebfd028b46de/html5/thumbnails/1.jpg)
http://eder.villalba.com.br
Algoritmo 1Semana 08ESTRUTURAS DE REPETIÇÃO
1
![Page 2: Algoritmos 01 - Semana 08 - Estruturas de repetição](https://reader035.fdocument.pub/reader035/viewer/2022062710/55b2a2d8bb61ebfd028b46de/html5/thumbnails/2.jpg)
Estruturas de Repetição (Parte 01)ENQUANTO... FAÇA
REPITA ATÉ
![Page 3: Algoritmos 01 - Semana 08 - Estruturas de repetição](https://reader035.fdocument.pub/reader035/viewer/2022062710/55b2a2d8bb61ebfd028b46de/html5/thumbnails/3.jpg)
Enquanto... Faça
![Page 4: Algoritmos 01 - Semana 08 - Estruturas de repetição](https://reader035.fdocument.pub/reader035/viewer/2022062710/55b2a2d8bb61ebfd028b46de/html5/thumbnails/4.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062710/55b2a2d8bb61ebfd028b46de/html5/thumbnails/5.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062710/55b2a2d8bb61ebfd028b46de/html5/thumbnails/6.jpg)
Repita... Até...
![Page 7: Algoritmos 01 - Semana 08 - Estruturas de repetição](https://reader035.fdocument.pub/reader035/viewer/2022062710/55b2a2d8bb61ebfd028b46de/html5/thumbnails/7.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062710/55b2a2d8bb61ebfd028b46de/html5/thumbnails/8.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062710/55b2a2d8bb61ebfd028b46de/html5/thumbnails/9.jpg)
Exercícios... Exercícios...
![Page 10: Algoritmos 01 - Semana 08 - Estruturas de repetição](https://reader035.fdocument.pub/reader035/viewer/2022062710/55b2a2d8bb61ebfd028b46de/html5/thumbnails/10.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062710/55b2a2d8bb61ebfd028b46de/html5/thumbnails/11.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062710/55b2a2d8bb61ebfd028b46de/html5/thumbnails/12.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062710/55b2a2d8bb61ebfd028b46de/html5/thumbnails/13.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062710/55b2a2d8bb61ebfd028b46de/html5/thumbnails/14.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062710/55b2a2d8bb61ebfd028b46de/html5/thumbnails/15.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062710/55b2a2d8bb61ebfd028b46de/html5/thumbnails/16.jpg)
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