Buscar

Aula 06 - Laços de Repetição Portugol

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 58 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 58 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 58 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

ALGORITMOS E 
PROGRAMAÇÃO I
AULA 05 – Introdução Portugol
Laços de Repetição
Prof. Salatiel Dantas
PORTUGOL
• Vamos supor que você foi contratado para criar um
algoritmo para gerenciar as notas de alunos de uma
escola;
• Qualquer nota digitada é válida? Seria ideal ficar
solicitando a nota enquanto ela não for válida;
• Quantas vezes você deve ler a nota?
2
PORTUGOL
Leia(nota1)
Leia(nota2)
Leia(nota3)
...
Leia(notaN)
3
PORTUGOL
• Se uma turma possuir 100 alunos, poderíamos escrever
100 instruções de leitura de notas:
Leia(nota1)
Leia(nota2)
Leia(nota3)
...
Leia(notaN)
• Inviável em situações reais!
4
PORTUGOL
• Será que poderíamos ter alguma instruções que repetisse
o comando de leitura um número N de vezes?
5
PORTUGOL
• Para esse tipo de situação o portugol dispõe dos
comandos:
• Enquanto;
• Repita ... Ate
• Para ... faca
6
ENQUANTO
• O comando enquanto caracteriza-se por apresentar um
teste lógico no início da instrução;
• O teste lógico sempre retorna um valor booleano. Ou
seja, Verdadeiro ou Falso;
• Esse comando continua a executar um conjunto de
instruções enquanto o teste lógico apresentar valor
verdadeiro;
7
ENQUANTO
• Quantas vezes a tomada de decisão e a entrada de dados
executarão?
8
INÍCIO
FIM
N1
N1 < 0?
N1
sim
não
ENQUANTO
• Primeiro um valor N1 é
lido;
• Em seguida, o valor de N1
é verificado em um teste
lógico;
• Enquanto o valor de N1
for menor que zero.
Ocorrerá a entrada de
Dados;
9
INÍCIO
FIM
N1
N1 < 0?
N1
sim
não
ENQUANTO
• Sintaxe:
10
enquanto (condição de entrada) faca
comando 1;
comando 2;
...
comando n;
fimenquanto
ENQUANTO
• Sintaxe:
• As instruções comando 1, comando 2, ... , comando n
executarão enquanto a condição de entrada for verdadeira
11
enquanto (condição de entrada) faca
comando 1;
comando 2;
...
comando n;
fimenquanto
ENQUANTO
• A instrução ENQUANTO é conhecida também como
repetição com teste no início;
• O teste é realizado logo no início da instrução, e todas as
instruções subordinadas só executarão se esse teste
apresentar, no início, o valor verdadeiro.
• Caso valor do teste seja falso, nenhuma das instruções
subordinadas serão executadas e o programa continuará
sua execução na próxima linha após o bloco enquanto –
fimenquanto.
12
ENQUANTO - EXEMPLO
13
Algoritmo "Contador"
Var
// Seção de Declarações das variáveis
contador: inteiro
Inicio
contador := 1
enquanto (contador <= 10) faca
escreval("Contador -> ", contador)
contador := contador + 1;
fimenquanto
Fimalgoritmo
ENQUANTO
14
Algoritmo "Contador"
Var
// Seção de Declarações das variáveis
contador: inteiro
Inicio
contador := 1
enquanto (contador <= 10) faca
escreval("Contador -> ", contador)
contador := contador + 1;
fimenquanto
Fimalgoritmo
A variável contador,
irá contar alguns
valores de 1 à 10.
ENQUANTO
15
Algoritmo "Contador"
Var
// Seção de Declarações das variáveis
contador: inteiro
Inicio
contador := 1
enquanto (contador <= 10) faca
escreval("Contador -> ", contador)
contador := contador + 1;
fimenquanto
Fimalgoritmo
A variável contador,
irá contar alguns
valores de 1 à 10.
No início do
algoritmo, definimos
contador igual a 1
pois pretendemos
contar a partir do
valor 1.
ENQUANTO
16
Algoritmo "Contador"
Var
// Seção de Declarações das variáveis
contador: inteiro
Inicio
contador := 1
enquanto (contador <= 10) faca
escreval("Contador -> ", contador)
contador := contador + 1;
fimenquanto
Fimalgoritmo
A variável contador,
irá contar alguns
valores de 1 à 10.
No início do
algoritmo, definimos
contador igual a 1
pois pretendemos
contar a partir do
valor 1.
O teste lógico
verifica se o valor
de contador é
menor ou igual ao
valor 10
ENQUANTO
17
Algoritmo "Contador"
Var
// Seção de Declarações das variáveis
contador: inteiro
Inicio
contador := 1
enquanto (contador <= 10) faca
escreval("Contador -> ", contador)
contador := contador + 1;
fimenquanto
Fimalgoritmo
A variável contador,
irá contar alguns
valores de 1 à 10.
No início do
algoritmo, definimos
contador igual a 1
pois pretendemos
contar a partir do
valor 1.
O teste lógico
verifica se o valor
de contador é
menor ou igual ao
valor 10
Estas instruções mostram o
valor atual de contador e em
seguida, soma uma unidade ao
valor de contador.
ENQUANTO
18
Algoritmo "Contador"
Var
// Seção de Declarações das variáveis
contador: inteiro
Inicio
contador := 1
enquanto (contador <= 10) faca
escreval("Contador -> ", contador)
contador := contador + 1;
fimenquanto
Fimalgoritmo
Chamamos de contador porque
essa variável irá controlar
quantas vezes as instruções
dentro do enquanto irão
executar
Sempre que o valor do teste
lógico do enquanto for
verdadeiro, as instruções
subordinadas executarão e a
execução do programa
retornará mais uma vez ao teste
lógico.
ENQUANTO - EXEMPLO
Esse algoritmo é finito?
19
Algoritmo "Contador"
Var
// Seção de Declarações das variáveis
contador: inteiro
Inicio
contador := 1
enquanto (contador <= 10) faca
escreval("Contador -> ", contador)
fimenquanto
Fimalgoritmo
ENQUANTO - EXEMPLO
Esse algoritmo é finito?
Esse algoritmo nunca teria fim, pois o valor de contador sempre
é 1. Então o teste lógico sempre dá verdadeiro
20
Início
contador := 1
enquanto (contador <= 10) faca
escreval("Contador -> ", contador)
fimenquanto
Fimalgoritmo
LOOP INFINITO
• Esse tipo de situação é chamado de LOOP INFINITO;
• O algoritmo executa infinitamente sem terminar;
• Deve-se evitar esse tipo de situação. Sempre é necessário
que o contador chegue a algum valor em que o teste
lógico seja falso.
21
ENQUANTO - EXEMPLO
Esse algoritmo é finito?
Esse algoritmo teria fim, pois o valor de contador chegará a 11.
Então o teste lógico será dá falso
22
Início
contador := 1
enquanto (contador <= 10) faca
escreval("Contador -> ", contador)
contador := contador + 1;
fimenquanto
Fimalgoritmo
REPITA ... ATE
• A instrução REPITA também faz parte dos recursos do
PORTUGOL utilizados para executar um conjunto de
instruções uma quantidade N de vezes;
• Diferente do ENQUANTO, o teste lógico aqui ocorre ao
final da instrução;
• Esse comando continua a executar um conjunto de
instruções enquanto o teste lógico apresentar valor
FALSO;
23
REPITA ... ATE
• Quantas vezes a tomada de decisão e a entrada de dados
executarão?
24
INÍCIO
FIM
N1
N1 > 0?
sim
não
REPITA ... ATE
• Primeiro um valor N1 é lido;
• Em seguida, o valor de N1 é
verificado em um teste lógico;
• Se o valor de N1 for menor que
zero. A execução do programa
retornará a entrada de dados e
solicitar um novo valor para N1;
25
INÍCIO
FIM
N1
N1 > 0?
sim
não
REPITA ... ATE
• Sintaxe:
26
repita
comando 1;
comando 2;
...
comando n;
ate (condição de saída)
REPITA ... ATE
• Sintaxe:
• As instruções comando 1, comando 2, ... , comando n
executarão uma vez e se a condição de saída for FALSA,
executarão mais uma vez.
27
repita
comando 1;
comando 2;
...
comando n;
ate (condição de saída)
REPITA ... ATE
• A instrução REPITA é conhecida também como repetição
com teste no final;
• O teste é realizado ao final de um conjunto de instruções, e
todas as instruções subordinadas só executarão se esse
teste apresentar, no final, o valor FALSO.
• Caso valor do teste seja verdadeiro, nenhuma das
instruções subordinadas serão novamente executadas e o
programa continuará sua execução na próxima linha após
o bloco REPITA – ATE.
28
REPITA ... ATE
• Exemplo
29
REPITA ... ATE
• Exemplo
30
A variável contador,
irá contar alguns
valores de 1 à 10.
REPITA ... ATE
• Exemplo
31
A variável contador,
irá contar alguns
valores de 1 à 10.
Iniciando a variável
contador em 1
REPITA ... ATE
• Exemplo
32
A variável contador,
irá contar alguns
valores de 1 à 10.
Iniciando a variável
contador em 1
Conjunto de instruções
subordinadas ao repita.
Mostram o resultado de
contador, e adicionam o
valor 1 ao valor atual de
contador
REPITA ... ATE
• Exemplo33
A variável contador,
irá contar alguns
valores de 1 à 10.
Iniciando a variável
contador em 1
Conjunto de instruções
subordinadas ao repita.
Mostram o resultado de
contador, e adicionam o
valor 1 ao valor atual de
contador
Teste Lógico verifica se
valor da variável
contador é maior que 10.
Caso o teste resulte em
falso, a execução do
programa retornará ao
início do repita.
PARA
• O comando PARA caracteriza-se por executar uma
sequência de instruções um número finito de vezes;
• Incorpora internamente o funcionamento de um contador
de repetições;
• As instruções internas serão executadas enquanto o
contador não atingir o limite definido.
34
PARA
• Sintaxe:
• Repete todas as instruções comando1, comando2, ...,
comando n, um número previsto de vezes.
35
para variavel de valor_inicial ate valor_final passo p faca
comando 1;
comando 2;
...
comando n;
fimpara
PARA
36
algoritmo “Repetição com o PARA”
var
cont: inteiro
inicio
para cont de 1 ate 5 passo 1 faca
/*instrucões do para*/
escreval(cont)
fimpara
/*instruções após o para*/
Fimalgoritmo
PARA
37
algoritmo “Repetição com o PARA”
var
cont: inteiro
inicio
para cont de 1 ate 5 passo 1 faca
/*instrucões do para*/
escreval(cont)
fimpara
/*instruções após o para*/
Fimalgoritmo
A variável cont será utilizada
como contador da instrução
para.
PARA
38
algoritmo “Repetição com o PARA”
var
cont: inteiro
inicio
para cont de 1 ate 5 passo 1 faca
/*instrucões do para*/
escreval(cont)
fimpara
/*instruções após o para*/
Fimalgoritmo
A variável cont será utilizada
como contador da instrução
para.
Nessa instrução a variável cont
recebe o valor 1 e até que ele
contenha o valor 5 as
instruções subordinadas abaixo
serão executadas.
PARA
39
algoritmo “Repetição com o PARA”
var
cont: inteiro
inicio
para cont de 1 ate 5 passo 1 faca
/*instrucões do para*/
escreval(cont)
fimpara
/*instruções após o para*/
Fimalgoritmo
A variável cont será utilizada
como contador da instrução
para.
Nessa instrução a variável cont
recebe o valor 1 e até que ele
contenha o valor 5 as
instruções subordinadas abaixo
serão executadas.
Ao final da execução das
instruções subordinadas, a
instrução passo 1 adiciona uma
unidade ao valor de cont.
PARA
• O passo da instrução para pode ser valores diferentes de
um:
• Nesse caso, cont vai ser adicionado de duas unidades a
cada rodada do para.
40
para cont de 0 ate 10 passo 2 faca
escreval(cont)
fimpara
PARA
41
algoritmo “Repetição com o PARA”
var
cont: inteiro
inicio
para cont de 0 ate 10 passo 2 faca
/*instrucões do para*/
escreval(cont)
fimpara
/*instruções após o para*/
Fimalgoritmo
PARA
42
algoritmo “Repetição com o PARA”
var
cont: inteiro
inicio
para cont de 0 ate 10 passo 2 faca
/*instrucões do para*/
escreval(cont)
fimpara
/*instruções após o para*/
Fimalgoritmo
A variável cont será utilizada
como contador da instrução
para.
Nessa instrução a variável cont
recebe o valor 0 e até que ele
contenha o valor 10 as
instruções subordinadas abaixo
serão executadas.
Ao final da execução das
instruções subordinadas, a
instrução passo 2 adiciona
duas unidade ao valor de cont.
PARA
• A instrução para pode também executar uma contagem
decrescente de passos:
• Nesse caso, cont vai ser subtraído de uma unidades a cada
rodada do para.
43
para cont de 10 ate 1 passo -1 faca
escreval(cont)
fimpara
PARA
44
algoritmo “Repetição com o PARA”
var
cont: inteiro
inicio
para cont de 10 ate 1 passo -1 faca
/*instrucões do para*/
escreval(cont)
fimpara
/*instruções após o para*/
Fimalgoritmo
PARA
45
algoritmo “Repetição com o PARA”
var
cont: inteiro
inicio
para cont de 10 ate 1 passo -1 faca
/*instrucões do para*/
escreval(cont)
fimpara
/*instruções após o para*/
Fimalgoritmo
A variável cont será utilizada
como contador da instrução
para.
Nessa instrução a variável cont
recebe o valor 10 e até que ele
contenha o valor 1 as
instruções subordinadas abaixo
serão executadas.
Ao final da execução das
instruções subordinadas, a
instrução passo -1 subtrai uma
unidade ao valor de cont.
INSTRUÇÕES DE REPETIÇÃO
• Conhecemos três maneiras de construir laços de repetição:
• Enquanto;
• Repita ... Ate;
• Para.
• É importante perceber que existem laços mais adequados
ou convenientes para cada situação.
46
INSTRUÇÕES DE REPETIÇÃO
Resumo das Estruturas de Repetição
47
Estrutura Condição
Quantidade de 
Execuções
Condição de 
Existência
Enquanto Testada no Início Zero ou Muitas
Condição 
Verdadeira
Repita Testada no Final Uma ou Muitas Condição Falsa
Para Não tem
(Valor final – Valor Incial) 
+ 1
Contador <= Valor 
Final
ENQUANTO - EXERCÍCIO
Construa um algoritmo para somar valores até o usuário digitar
o valor 0. Ou seja, vamos somar todos os valores que o usuário
digitar, porém quando ele digitar 0 o algoritmo acaba, a cada
iteração do loop vamos apresentar o resultado atual da soma.
48
ENQUANTO - EXERCÍCIO
49
ENQUANTO - EXERCÍCIO
50
O teste lógico, verifica se valor
da variável valorEntrada é
diferente de zero. Caso
verdadeiro todas as instruções
abaixo serão executadas e ao
final, o valor de valorEntrada
será testado novamente.
Conjunto de instruções
subordinadas ao Enquanto. Só
executarão caso o teste lógico
apresente valor verdadeiro.
REPITA ... ATE - EXERCÍCIO
Construa um algoritmo para solicitar uma entrada do usuário e
continuar solicitando até que valor seja menor que zero.
51
REPITA ... ATE - EXERCÍCIO
Construa um algoritmo para solicitar uma entrada do usuário e
continuar solicitando até que valor seja menor que zero.
52
REPITA ... ATE - EXERCÍCIO
Construa um algoritmo para solicitar uma entrada do usuário e
continuar solicitando até que valor seja menor que zero.
53
Conjunto de instruções
subordinadas ao repita.
Executarão pelo menos uma vez.
caso o teste lógico apresente
valor FALSO, executarão
novamente
Teste lógico retornará valor
falso se valor de entrada for
maior o igual a zero. Quando
valor de entrada for menor que
zero, o teste lógico resulta em
verdadeiro e encerra o repita.
PARA - EXERCÍCIO
Construa um algoritmo que receba dez valores digitados pelo
usuário e mostre o resultado do somatório.
54
PARA - EXERCÍCIO
55
PARA - EXERCÍCIO
Construa um algoritmo para calcular o fatorial de um numero.
OBS:
Fatorial e a multiplicação de todos os números de 1 ate ao
numero que se esta calculando. Por exemplo: Fatorial de 5
(5!) = 1 * 2 * 3 * 4 * 5 = 120
56
PARA - EXERCÍCIO
57
DÚVIDAS?
Contanto: salatiel.dantas@ufersa.edu.br

Continue navegando