SlideShare uma empresa Scribd logo
1 de 4
1
Estruturas de RepetiçãoEstruturas de Repetição -- II
Programação I
ALG
2
Estruturas de repetição
Diferente do ser humano, o computador não se cansa
de realizar operações repetitivas.
Diante disto, podemos incluir nos algoritmos as
estruturas de repetição.
O que é uma repetição?
Também chamada a laço ou loop;
É uma instrução que permite a execução de um trecho de
algoritmo várias vezes seguidas.
Nesta aula veremos:
Repetição com teste no início;
Repetição com teste no final;
Repetição com variável de controle.
3
Comandos REPITA e ENQUANTO
Tanto o comando REPITA quanto o comando
ENQUANTO permitem repetir um ou mais comandos no
corpo de um algoritmo.
A sintaxe dos comandos é:
repita
<comando1>;
<comando2>;
.
.
.
<comandoN>;
até <expr>;
enquanto <expr> faça
<comando>;
4
Comando REPITA
O comando REPITA indica que todos os comandos entre a palavra
repita e a palavra até encontram-se dentro de um laço e devem ser
executados.
Após a palavra até deve haver uma expressão lógica que:
Se falsa, indica que o laço deve ser executado novamente;
Se verdadeira, indica que o laço acabou e o algoritmo deve continuar
sendo executado.
Esta estrutura é chamada de repetição com teste no final
A decisão entre repetir e parar o laço é feita ao final do comando.
É garantido que o laço será executado aos menos uma vez.
5
Comando REPITA em VisuAlg
Teste realizado após a execução do corpo do
loop.
O corpo do loop sempre executa ao menos uma vez.
O código continuará sendo executado enquanto a
instrução for FALSA.
repita
<seqüência-de-comandos>
ate <expressão-lógica>
6
Exemplo comando repita
algoritmo "Números de 1 a 10 (com repita)"
var j: inteiro
inicio
j <- 1
repita
escreva (j:3)
j <- j + 1
ate j > 10
fimalgoritmo
2
7
Comando ENQUANTO
O comando ENQUANTO indica que o comando seguinte será
executado, desde que o resultado da expressão lógica seja
verdadeiro.
Apesar do ENQUANTO permitir apenas a repetição de um único
comando, nada que impede que seja utilizado um bloco de
comandos.
Ao encontrar o fim do comando (ou do bloco), o computador volta
para a 1ª linha do laço e avalia novamente a expressão lógica:
Se verdadeira, o computador fará uma nova execução do trecho;
Se falsa, o computador pára a execução e continua no próximo
comando após o trecho repetido.
Esta estrutura é chamada de repetição com teste no início
A decisão entre repetir e parar o laço é feita no início do comando.
Se o teste for falso desde o início, o laço não será executado.
8
Comando Enquanto em VisuAlg
Implementado com a instrução enquanto .. faca
instrução que efetua o teste antes da execução
do corpo do loop.
O corpo do loop pode nunca ser executado.
Esta estrutura repete uma seqüência de comandos
enquanto uma determinada condição (especificada
através de uma expressão lógica) for satisfeita.
enquanto <expressão-lógica> faca
<seqüência-de-comandos>
fimenquanto
9
Exemplo comando enquanto .. faca
algoritmo "Números de 1 a 10 (enquanto..faca)"
var j: inteiro
inicio
j <- 1
enquanto j <= 10 faca
escreva (j:3)
j <- j + 1
fimenquanto
fimalgoritmo
10
Comandos REPITA e ENQUANTO
Exercício:
Fazer um programa para ler diversos números informados pelo
usuário usando o comando REPITA, e após cada leitura exibir
se o número é par ou ímpar. Considere que ao fornecer um
valor negativo o usuário deseja encerrar e entrada de dados.
11
Comandos REPITA e ENQUANTO
Solução
Quantos dados serão fornecidos?
Quantas variáveis serão necessárias?
Temos que identificar o trecho que será repetido e adicioná-lo
dentro de um comando de repetição, declarando apenas as
variáveis necessárias para uma repetição.
12
Comandos REPITA e ENQUANTO
Solução usando repita(cont.)
O algoritmo fica assim:
Variáveis
num : inteiro;
Início
repita
escrever “Para sair, entre com um valor menor que 0”;
escrever “Entre com o número: “;
ler num;
se num % 2 = 0 então
escrever “O número é par”
senão
escrever “O número é ímpar”;
até num < 0;
Fim
3
13
Solução em VisuAlg usando REPITA
var
num : inteiro
inicio
repita
escreval("Para sair, entre com um valor menor que 0")
escreva ("Entre com o número: ")
leia( num)
se num % 2 = 0 entao
escreval ("O número é par")
senao
escreval ("O número é ímpar")
fimse
ate num < 0
fimalgoritmo
14
Comandos REPITA e ENQUANTO
Exercício:
Refazer o programa anterior, só que desta vez usando
ENQUANTO.
15
Comandos REPITA e ENQUANTO
Solução usando enquanto (cont.)
O algoritmo fica assim:
Variáveis
inteiro: num =0;
Início
enquanto num >= 0 faça
[[
escrever “Para sair, entre com um valor menor que 0”;
escrever “Entre com o número: “;
ler num;
se num % 2 = 0 então
escrever “O número é par”
senão
escrever “O número é ímpar”;
]];
Fim
16
Solução em VisuAlg usando ENQUANTO
var
num : inteiro
inicio
enquanto num >= 0 faca
escreval("Para sair, entre com um valor menor que 0")
escreva ("Entre com o número: ")
leia( num)
se num % 2 = 0 entao
escreval ("O número é par")
senao
escreval ("O número é ímpar")
fimse
fimenquanto
fimalgoritmo
17
Comandos REPITA e ENQUANTO
Solução (cont.)
Executando o teste de mesa para os valores 8, 11, 21, 8 e -1,
teríamos as seguintes mensagens:
8
O número é par
11
O número é ímpar
21
O número é ímpar
8
O número é par
-1
O número é ímpar
Esta mensagem
não deveria ser exibida
18
Comandos REPITA e ENQUANTO
Solução (cont.)
Como podemos contornar este problema?
Adicionando mais uma condição ao comando SE
se num >=0 e num %2 = 0
Solução pouco elegante, pois este teste é sempre verdadeiro,
exceto no último caso
Utilizando o comando ENQUANTO ao invés do comando
REPITA
4
19
Comandos REPITA e ENQUANTO
Solução (cont.)
Como podemos contornar este problema?
Retirando a leitura da variável de dentro do laço:
Será gerado um laço infinito, pois num será lida apenas uma
vez, e se for >= 0, o laço nunca terminará.
Iniciar a variável para um valor padrão que sempre
executará na 1ª vez:
Caímos no mesmo problema que no algoritmo utilizando o
comando REPITA.
Colocar uma leitura antes do laço, e uma segunda leitura
como últimos comandos dentro do laço.
20
Comandos REPITA e ENQUANTO
Solução (cont.)
O algoritmo fica assim:
Variáveis
num : inteiro;
Início
escrever “Para sair, entre com um valor menor que 0”;
escrever “Entre com o número: “;
ler num;
enquanto num >= 0 faça
[[
se num % 2 = 0 então
escrever “O número é par”
senão
escrever “O número é ímpar”;
escrever “Entre com o número: “;
ler num;
]];
Fim
21
Exercício:
Implemente a solução anterior usando o
VisuAlg.
DÚVIDAS ?DÚVIDAS ?
Programação I
ALG

Mais conteúdo relacionado

Mais procurados

Semana 04 Estruturas Condicionais
Semana 04   Estruturas CondicionaisSemana 04   Estruturas Condicionais
Semana 04 Estruturas CondicionaisEder Samaniego
 
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)Gercélia Ramos
 
aula 06 - Logica de programacao
aula 06 - Logica de programacaoaula 06 - Logica de programacao
aula 06 - Logica de programacaoAislan Rafael
 
05 - Operadores relacionais e estruturas de repetição - v1.0
05 - Operadores relacionais e estruturas de repetição - v1.005 - Operadores relacionais e estruturas de repetição - v1.0
05 - Operadores relacionais e estruturas de repetição - v1.0César Augusto Pessôa
 
PHP 5.3 - Estruturas de Controle
PHP 5.3 - Estruturas de ControlePHP 5.3 - Estruturas de Controle
PHP 5.3 - Estruturas de ControleGeorge Mendonça
 
Algoritmo 01 - Semana 01
Algoritmo 01 - Semana 01Algoritmo 01 - Semana 01
Algoritmo 01 - Semana 01Eder Samaniego
 
Algoritmos - Comandos de Repetição
Algoritmos - Comandos de RepetiçãoAlgoritmos - Comandos de Repetição
Algoritmos - Comandos de RepetiçãoElaine Cecília Gatto
 
Aula 01 - Revisão Algoritmo 1
Aula 01  - Revisão Algoritmo 1Aula 01  - Revisão Algoritmo 1
Aula 01 - Revisão Algoritmo 1Eder Samaniego
 
Linguagens de Programação II - Aula 3
Linguagens de Programação II - Aula 3Linguagens de Programação II - Aula 3
Linguagens de Programação II - Aula 3guestd6da1cd
 
Logica Algoritmo 05 Repeticao
Logica Algoritmo 05 RepeticaoLogica Algoritmo 05 Repeticao
Logica Algoritmo 05 RepeticaoRegis Magalhães
 
Estruturas de repetição (parte 01)
Estruturas de repetição (parte 01)Estruturas de repetição (parte 01)
Estruturas de repetição (parte 01)Eder Samaniego
 
Algoritmos 01 - Semana 06 - Múltipla Escolha
Algoritmos 01 - Semana 06 - Múltipla EscolhaAlgoritmos 01 - Semana 06 - Múltipla Escolha
Algoritmos 01 - Semana 06 - Múltipla EscolhaEder Samaniego
 
Aula 04 estruturas de repetição
Aula 04   estruturas de repetiçãoAula 04   estruturas de repetição
Aula 04 estruturas de repetiçãoTácito Graça
 
Estruturas de Repetição - FOR, WHILE e DO WHILE
Estruturas de Repetição - FOR, WHILE e DO WHILEEstruturas de Repetição - FOR, WHILE e DO WHILE
Estruturas de Repetição - FOR, WHILE e DO WHILENeto Côrtes
 
Comandos de pascal e estrutura de repetição (para...fazer)
Comandos de pascal e estrutura de repetição (para...fazer)Comandos de pascal e estrutura de repetição (para...fazer)
Comandos de pascal e estrutura de repetição (para...fazer)111111119
 
Aula 04 Estruturas de repetição 02 - Para Faça
Aula 04  Estruturas de repetição 02 - Para FaçaAula 04  Estruturas de repetição 02 - Para Faça
Aula 04 Estruturas de repetição 02 - Para FaçaEder Samaniego
 

Mais procurados (20)

Algoritmos Aula 11
Algoritmos Aula 11Algoritmos Aula 11
Algoritmos Aula 11
 
Semana 04 Estruturas Condicionais
Semana 04   Estruturas CondicionaisSemana 04   Estruturas Condicionais
Semana 04 Estruturas Condicionais
 
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
 
aula 06 - Logica de programacao
aula 06 - Logica de programacaoaula 06 - Logica de programacao
aula 06 - Logica de programacao
 
Algoritmos - Aula 07 A - Lacos
Algoritmos - Aula 07 A - LacosAlgoritmos - Aula 07 A - Lacos
Algoritmos - Aula 07 A - Lacos
 
05 - Operadores relacionais e estruturas de repetição - v1.0
05 - Operadores relacionais e estruturas de repetição - v1.005 - Operadores relacionais e estruturas de repetição - v1.0
05 - Operadores relacionais e estruturas de repetição - v1.0
 
PHP 5.3 - Estruturas de Controle
PHP 5.3 - Estruturas de ControlePHP 5.3 - Estruturas de Controle
PHP 5.3 - Estruturas de Controle
 
Algoritmo 01 - Semana 01
Algoritmo 01 - Semana 01Algoritmo 01 - Semana 01
Algoritmo 01 - Semana 01
 
Algoritmos - Comandos de Repetição
Algoritmos - Comandos de RepetiçãoAlgoritmos - Comandos de Repetição
Algoritmos - Comandos de Repetição
 
Aula 01 - Revisão Algoritmo 1
Aula 01  - Revisão Algoritmo 1Aula 01  - Revisão Algoritmo 1
Aula 01 - Revisão Algoritmo 1
 
Linguagens de Programação II - Aula 3
Linguagens de Programação II - Aula 3Linguagens de Programação II - Aula 3
Linguagens de Programação II - Aula 3
 
Logica Algoritmo 05 Repeticao
Logica Algoritmo 05 RepeticaoLogica Algoritmo 05 Repeticao
Logica Algoritmo 05 Repeticao
 
Estruturas de repetição (parte 01)
Estruturas de repetição (parte 01)Estruturas de repetição (parte 01)
Estruturas de repetição (parte 01)
 
Algoritmos 01 - Semana 06 - Múltipla Escolha
Algoritmos 01 - Semana 06 - Múltipla EscolhaAlgoritmos 01 - Semana 06 - Múltipla Escolha
Algoritmos 01 - Semana 06 - Múltipla Escolha
 
Aula 04 estruturas de repetição
Aula 04   estruturas de repetiçãoAula 04   estruturas de repetição
Aula 04 estruturas de repetição
 
Estruturas de Repetição - FOR, WHILE e DO WHILE
Estruturas de Repetição - FOR, WHILE e DO WHILEEstruturas de Repetição - FOR, WHILE e DO WHILE
Estruturas de Repetição - FOR, WHILE e DO WHILE
 
Algoritmos Aula 09
Algoritmos Aula 09Algoritmos Aula 09
Algoritmos Aula 09
 
Comandos de pascal e estrutura de repetição (para...fazer)
Comandos de pascal e estrutura de repetição (para...fazer)Comandos de pascal e estrutura de repetição (para...fazer)
Comandos de pascal e estrutura de repetição (para...fazer)
 
Aula 04 Estruturas de repetição 02 - Para Faça
Aula 04  Estruturas de repetição 02 - Para FaçaAula 04  Estruturas de repetição 02 - Para Faça
Aula 04 Estruturas de repetição 02 - Para Faça
 
Algoritmo 04 - Estruturas de decisão
 Algoritmo 04 - Estruturas de decisão Algoritmo 04 - Estruturas de decisão
Algoritmo 04 - Estruturas de decisão
 

Semelhante a Alg aula 05-1 - estruturas de-repeticao tp1 (repita e enquanto)

Aula 05 - Comandos de repeticao - JAVA.pdf
Aula 05 - Comandos de repeticao - JAVA.pdfAula 05 - Comandos de repeticao - JAVA.pdf
Aula 05 - Comandos de repeticao - JAVA.pdfCarlosCarlos73688
 
Alg aula 05-2 - estruturas de-repeticao tp1 (para)
Alg   aula 05-2 - estruturas de-repeticao tp1 (para)Alg   aula 05-2 - estruturas de-repeticao tp1 (para)
Alg aula 05-2 - estruturas de-repeticao tp1 (para)Thalles Anderson
 
Algoritimos. Comamandos de condição e repetição
Algoritimos. Comamandos de condição e repetiçãoAlgoritimos. Comamandos de condição e repetição
Algoritimos. Comamandos de condição e repetiçãoEderson Marques
 
Capítulo 08 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 08 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Capítulo 08 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 08 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Os Fantasmas !
 
Estrutura de linguagem C++
Estrutura de linguagem C++Estrutura de linguagem C++
Estrutura de linguagem C++Verônica Veiga
 
Guia prático para criar algoritmos
Guia prático para criar algoritmosGuia prático para criar algoritmos
Guia prático para criar algoritmosMauro Pereira
 
0000364 aula 5 estruturas de decisão
0000364 aula 5   estruturas de decisão0000364 aula 5   estruturas de decisão
0000364 aula 5 estruturas de decisãoEvelyneBorges
 
Capítulo 07 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 07 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Capítulo 07 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 07 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Os Fantasmas !
 
15080590 aula6-estrutura-de-repeticao
15080590 aula6-estrutura-de-repeticao15080590 aula6-estrutura-de-repeticao
15080590 aula6-estrutura-de-repeticaoLee Aragão
 

Semelhante a Alg aula 05-1 - estruturas de-repeticao tp1 (repita e enquanto) (20)

Aula 05 - Comandos de repeticao - JAVA.pdf
Aula 05 - Comandos de repeticao - JAVA.pdfAula 05 - Comandos de repeticao - JAVA.pdf
Aula 05 - Comandos de repeticao - JAVA.pdf
 
Construcao de Algoritmos - Aula 08
Construcao de Algoritmos - Aula 08Construcao de Algoritmos - Aula 08
Construcao de Algoritmos - Aula 08
 
Apostila c
Apostila cApostila c
Apostila c
 
Repetir
RepetirRepetir
Repetir
 
ptt
pttptt
ptt
 
Aula05 - Lógica de Programação
Aula05 - Lógica de ProgramaçãoAula05 - Lógica de Programação
Aula05 - Lógica de Programação
 
02 controle de fluxo
02   controle de fluxo02   controle de fluxo
02 controle de fluxo
 
Alg aula 05-2 - estruturas de-repeticao tp1 (para)
Alg   aula 05-2 - estruturas de-repeticao tp1 (para)Alg   aula 05-2 - estruturas de-repeticao tp1 (para)
Alg aula 05-2 - estruturas de-repeticao tp1 (para)
 
Aula03 - JavaScript
Aula03 - JavaScriptAula03 - JavaScript
Aula03 - JavaScript
 
Algoritimos. Comamandos de condição e repetição
Algoritimos. Comamandos de condição e repetiçãoAlgoritimos. Comamandos de condição e repetição
Algoritimos. Comamandos de condição e repetição
 
JAVA - Controle de programa
JAVA - Controle de programaJAVA - Controle de programa
JAVA - Controle de programa
 
Capítulo 08 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 08 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Capítulo 08 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 08 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
 
Estrutura de linguagem C++
Estrutura de linguagem C++Estrutura de linguagem C++
Estrutura de linguagem C++
 
Java3
Java3Java3
Java3
 
Guia prático para criar algoritmos
Guia prático para criar algoritmosGuia prático para criar algoritmos
Guia prático para criar algoritmos
 
0000364 aula 5 estruturas de decisão
0000364 aula 5   estruturas de decisão0000364 aula 5   estruturas de decisão
0000364 aula 5 estruturas de decisão
 
Capítulo 07 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 07 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Capítulo 07 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 07 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
 
15080590 aula6-estrutura-de-repeticao
15080590 aula6-estrutura-de-repeticao15080590 aula6-estrutura-de-repeticao
15080590 aula6-estrutura-de-repeticao
 
Cap08
Cap08Cap08
Cap08
 
Cap08
Cap08Cap08
Cap08
 

Mais de Thalles Anderson (20)

Minipa et 1110
Minipa et   1110Minipa et   1110
Minipa et 1110
 
Minipa et 1001
Minipa et   1001Minipa et   1001
Minipa et 1001
 
Apostila usando multímetro
Apostila usando multímetroApostila usando multímetro
Apostila usando multímetro
 
Informática básica
Informática básicaInformática básica
Informática básica
 
Cabling 96
Cabling 96Cabling 96
Cabling 96
 
Cabos e linhas
Cabos e linhasCabos e linhas
Cabos e linhas
 
Código de cores tabela
Código de cores tabelaCódigo de cores tabela
Código de cores tabela
 
Dimensionamento cabos baixa tensão
Dimensionamento cabos baixa tensãoDimensionamento cabos baixa tensão
Dimensionamento cabos baixa tensão
 
Dimensionamento
DimensionamentoDimensionamento
Dimensionamento
 
Fibras ópticas
Fibras ópticasFibras ópticas
Fibras ópticas
 
Linhas de transmissão
Linhas de transmissãoLinhas de transmissão
Linhas de transmissão
 
Topologias de redes
Topologias de redesTopologias de redes
Topologias de redes
 
Windows xp
Windows xpWindows xp
Windows xp
 
Windows vista
Windows vistaWindows vista
Windows vista
 
Tcp e ip
Tcp e ipTcp e ip
Tcp e ip
 
Sockets
SocketsSockets
Sockets
 
Redes 6
Redes 6Redes 6
Redes 6
 
Redes 5
Redes 5Redes 5
Redes 5
 
Redes 4
Redes 4Redes 4
Redes 4
 
Redes 3
Redes 3Redes 3
Redes 3
 

Alg aula 05-1 - estruturas de-repeticao tp1 (repita e enquanto)

  • 1. 1 Estruturas de RepetiçãoEstruturas de Repetição -- II Programação I ALG 2 Estruturas de repetição Diferente do ser humano, o computador não se cansa de realizar operações repetitivas. Diante disto, podemos incluir nos algoritmos as estruturas de repetição. O que é uma repetição? Também chamada a laço ou loop; É uma instrução que permite a execução de um trecho de algoritmo várias vezes seguidas. Nesta aula veremos: Repetição com teste no início; Repetição com teste no final; Repetição com variável de controle. 3 Comandos REPITA e ENQUANTO Tanto o comando REPITA quanto o comando ENQUANTO permitem repetir um ou mais comandos no corpo de um algoritmo. A sintaxe dos comandos é: repita <comando1>; <comando2>; . . . <comandoN>; até <expr>; enquanto <expr> faça <comando>; 4 Comando REPITA O comando REPITA indica que todos os comandos entre a palavra repita e a palavra até encontram-se dentro de um laço e devem ser executados. Após a palavra até deve haver uma expressão lógica que: Se falsa, indica que o laço deve ser executado novamente; Se verdadeira, indica que o laço acabou e o algoritmo deve continuar sendo executado. Esta estrutura é chamada de repetição com teste no final A decisão entre repetir e parar o laço é feita ao final do comando. É garantido que o laço será executado aos menos uma vez. 5 Comando REPITA em VisuAlg Teste realizado após a execução do corpo do loop. O corpo do loop sempre executa ao menos uma vez. O código continuará sendo executado enquanto a instrução for FALSA. repita <seqüência-de-comandos> ate <expressão-lógica> 6 Exemplo comando repita algoritmo "Números de 1 a 10 (com repita)" var j: inteiro inicio j <- 1 repita escreva (j:3) j <- j + 1 ate j > 10 fimalgoritmo
  • 2. 2 7 Comando ENQUANTO O comando ENQUANTO indica que o comando seguinte será executado, desde que o resultado da expressão lógica seja verdadeiro. Apesar do ENQUANTO permitir apenas a repetição de um único comando, nada que impede que seja utilizado um bloco de comandos. Ao encontrar o fim do comando (ou do bloco), o computador volta para a 1ª linha do laço e avalia novamente a expressão lógica: Se verdadeira, o computador fará uma nova execução do trecho; Se falsa, o computador pára a execução e continua no próximo comando após o trecho repetido. Esta estrutura é chamada de repetição com teste no início A decisão entre repetir e parar o laço é feita no início do comando. Se o teste for falso desde o início, o laço não será executado. 8 Comando Enquanto em VisuAlg Implementado com a instrução enquanto .. faca instrução que efetua o teste antes da execução do corpo do loop. O corpo do loop pode nunca ser executado. Esta estrutura repete uma seqüência de comandos enquanto uma determinada condição (especificada através de uma expressão lógica) for satisfeita. enquanto <expressão-lógica> faca <seqüência-de-comandos> fimenquanto 9 Exemplo comando enquanto .. faca algoritmo "Números de 1 a 10 (enquanto..faca)" var j: inteiro inicio j <- 1 enquanto j <= 10 faca escreva (j:3) j <- j + 1 fimenquanto fimalgoritmo 10 Comandos REPITA e ENQUANTO Exercício: Fazer um programa para ler diversos números informados pelo usuário usando o comando REPITA, e após cada leitura exibir se o número é par ou ímpar. Considere que ao fornecer um valor negativo o usuário deseja encerrar e entrada de dados. 11 Comandos REPITA e ENQUANTO Solução Quantos dados serão fornecidos? Quantas variáveis serão necessárias? Temos que identificar o trecho que será repetido e adicioná-lo dentro de um comando de repetição, declarando apenas as variáveis necessárias para uma repetição. 12 Comandos REPITA e ENQUANTO Solução usando repita(cont.) O algoritmo fica assim: Variáveis num : inteiro; Início repita escrever “Para sair, entre com um valor menor que 0”; escrever “Entre com o número: “; ler num; se num % 2 = 0 então escrever “O número é par” senão escrever “O número é ímpar”; até num < 0; Fim
  • 3. 3 13 Solução em VisuAlg usando REPITA var num : inteiro inicio repita escreval("Para sair, entre com um valor menor que 0") escreva ("Entre com o número: ") leia( num) se num % 2 = 0 entao escreval ("O número é par") senao escreval ("O número é ímpar") fimse ate num < 0 fimalgoritmo 14 Comandos REPITA e ENQUANTO Exercício: Refazer o programa anterior, só que desta vez usando ENQUANTO. 15 Comandos REPITA e ENQUANTO Solução usando enquanto (cont.) O algoritmo fica assim: Variáveis inteiro: num =0; Início enquanto num >= 0 faça [[ escrever “Para sair, entre com um valor menor que 0”; escrever “Entre com o número: “; ler num; se num % 2 = 0 então escrever “O número é par” senão escrever “O número é ímpar”; ]]; Fim 16 Solução em VisuAlg usando ENQUANTO var num : inteiro inicio enquanto num >= 0 faca escreval("Para sair, entre com um valor menor que 0") escreva ("Entre com o número: ") leia( num) se num % 2 = 0 entao escreval ("O número é par") senao escreval ("O número é ímpar") fimse fimenquanto fimalgoritmo 17 Comandos REPITA e ENQUANTO Solução (cont.) Executando o teste de mesa para os valores 8, 11, 21, 8 e -1, teríamos as seguintes mensagens: 8 O número é par 11 O número é ímpar 21 O número é ímpar 8 O número é par -1 O número é ímpar Esta mensagem não deveria ser exibida 18 Comandos REPITA e ENQUANTO Solução (cont.) Como podemos contornar este problema? Adicionando mais uma condição ao comando SE se num >=0 e num %2 = 0 Solução pouco elegante, pois este teste é sempre verdadeiro, exceto no último caso Utilizando o comando ENQUANTO ao invés do comando REPITA
  • 4. 4 19 Comandos REPITA e ENQUANTO Solução (cont.) Como podemos contornar este problema? Retirando a leitura da variável de dentro do laço: Será gerado um laço infinito, pois num será lida apenas uma vez, e se for >= 0, o laço nunca terminará. Iniciar a variável para um valor padrão que sempre executará na 1ª vez: Caímos no mesmo problema que no algoritmo utilizando o comando REPITA. Colocar uma leitura antes do laço, e uma segunda leitura como últimos comandos dentro do laço. 20 Comandos REPITA e ENQUANTO Solução (cont.) O algoritmo fica assim: Variáveis num : inteiro; Início escrever “Para sair, entre com um valor menor que 0”; escrever “Entre com o número: “; ler num; enquanto num >= 0 faça [[ se num % 2 = 0 então escrever “O número é par” senão escrever “O número é ímpar”; escrever “Entre com o número: “; ler num; ]]; Fim 21 Exercício: Implemente a solução anterior usando o VisuAlg. DÚVIDAS ?DÚVIDAS ? Programação I ALG