Você está na página 1de 15

Universidade Agostinho Neto

Faculdade de Ciências
Ciências da Computação

LÓGICA DE
PROGRAMAÇÃO
Dikiefu Fabiano, MSc.
João Costa, Lic.
Pseudocódigo – Estrutura de Controlo
Estruturas de repetição
Estrutura de Controlo

• Estrutura Sequencial
• Estrutura de Selecção
• Estrutura de Repetição
Estrutura de Repetição
Uma estrutura de repetição define uma região que contém
instruções a serem repetidas. O número de vezes que estas
instruções serão repetidas depende do resultado de um
teste lógico.

Existem dois tipos de laços de repetição:

• Repetição com teste lógico no início


• Repetição com teste lógico no final
Repetição com teste lógico no início
1- Estrutura de repetição Enquanto
Consiste em uma estrutura de controle do fluxo de execução que
permite repetir diversas vezes um mesmo trecho de algoritmo, porem,
sempre verificando antes de cada execução se é “permitido” executar o
mesmo trecho.
enquanto [condição] faca

[intruções]

fimenquanto

 A condição serve para controlar o número de repetições a serem


realizadas pela estrutura
 Quando o resultado de condição for falsa, o comando de repetição não
será executado.
 Se no primeiro teste o resultado for falso, os comandos não são
executados nenhuma vez.
Repetição com teste lógico no início
1- Estrutura de repetição Enquanto
Exemplo1 : Faça um algoritmo para cálculo de média aritmética de 4 notas de
5 alunos

inicio
//comando
real n1 , n2 , n3 , n4 , media
inteiro contador

contador <- 0
enquanto ( contador < 5 ) faca
escreva ( "digite as 4 nota do aluno" , contador )
leia ( n1 , n2 , n3 , n4 )
media <- ( n1 + n2 + n3 + n4 ) / 4
escreva "a média = " , media
contador <- contador + 1
fimenquanto

fimalgoritmo
Repetição com teste lógico no início
1- Estrutura de repetição Enquanto
Exemplo 2: Faça um algoritmo que deve ler a nota de 5 alunos e calcula a
média aritmética da turma.

Algoritmo “media”
INICIO
REAL ma, somatorio, medTurma
INTEIRO cont
cont  0;
Somatorio0;
Enquanto (cont < 5) faça
Escreva (“Introduza a nota do aluno”);
leia(ma);
somatorio  somatorio + ma;
cont  cont + 1;
fimenquanto
medTurma  somatorio/5;
escreva(“media anual da turma”, medTurma);
FIMALGORITMO
Repetição com teste lógico no
início(enquanto)
No exemplo anterior, sabe-se o número de alunos para o
cálculo de média. Portanto, se tivéssemos essa
informação, seria necessário uma estrutura de repetição
que fosse executada por uma quantidade indeterminada
de vezes. Assim, teríamos de encontrar um critério de
parada, que possibilita que a repetição fosse finalizada
após a última media ter sido introduzido. Logo, podemos
utilizar um valor predefinido como finalizador, a ser
informado após a última média.
Seja esse valor -1 que quando encontrado, finaliza a
execução da estrutura de repetição.
Algoritmo “media”
INICIO
REAL ma, somatorio, medTurma
INTEIRO cont
cont  0;
somatorio0;
ma  0;
Escreva(“digite [-1] para finalizar…”);
Enquanto (ma <> -1) faça
Escreva (“Introduza a nota do aluno”);
Leia(ma);
Se( ma <> -1) Então
inicio
somatorio  somatorio + ma;
cont  cont + 1;
fim
fimse
fimenquanto
Se(cont > 0) Então
inicio
medTurma  somatorio/cont;
Escreva(“media anual da turma = ”, medTurma);
fim
Senão
Escreva(“Nenhuma média válida fornecida”);
fimse
FIMALGORITMO
Repetição com teste lógico no final(Repita)
Permite que um bloco ou acção primitiva seja repetida até que uma
determinada condição seja verdadeira.

repita
cmd1
cmd2

cmdn
ate <teste_logico> ;

O bloco (cmd1, cmd2,…) é executado pelo menos uma vez,


independentemente da validade da condição. Isso acontece porque a
inspecção do teste lógico é feita após a execução do bloco.
Repetição com teste lógico no
início(enquanto)
Exemplo: reescrevemos o algoritmo do exemplo 2, que lê a média anual de 5
alunos e calcula a média geral da turma, e utilizando a estrutura de repetição
com teste no final:

Algoritmo media
VAR ma, somatorio, medTurma: REAL
cont: INTEIRO
INICIO
cont  0;
Somatorio0;
repita
Escreva (“Introduza a nota do aluno”);
leia(ma);
somatorio  somatorio + ma;
cont  cont + 1;
ate (cont < 5)
medTurma  somatorio/5;
escreva(“media anual da turma”, medTurma);
FIMALGORITMO
Repetição com variável de controlo - para
Nas estruturas estudadas anteriormente, ocorre casos em que se torna difícil
determinar o número de vezes em que o bloco será executado. Sabemos que
ele será executado enquanto uma condição for verdadeira, no caso de
enquanto, ou até que uma condição seja satisfeita. A estrutura para é
diferente, já que sempre repete a execução do bloco num número
predeterminado de vezes, pois ela não prevê uma condição e possui limites
fixos.
para V de vi ate vf passo p faça Onde:
cmd1; V: variável de controlo
cmd2; vi: valor inicial da variável V
… vf: valor final da variável, ou seja, o valor
cmdn; até qual ela vai chegar
fimpara p: o valor do incremento dado a variável V
Repetição com variável de controlo - para
Exemplo 4: Voltamos ao exemplo 2, resolvendo-o com a repetição “para”

Algoritmo “media”
INICIO
REAL ma, somatorio, medTurma
INTEIRO cont
Somatorio0;
para v de 1 ate 5 passo 1 faça
Escreva (“Introduza a nota do aluno”);
leia(ma);
somatorio  somatorio + ma;
cont  cont + 1;
fimpara
medTurma  somatorio/5;
escreva(“media anual da turma”, medTurma);
FIMALGORITMO
Repetição com variável de controlo - para
Exemplo 5: Elabore um algoritmo que simule uma contagem regressiva de 10
minutos, ou seja, mostre 10:00, e então 9:59, 9:58, …, 9:00; 8:59, 8:58, até 0:00

Algoritmo “TEMPO”
INICIO
INTEIRO MIN, SEG
Escreva (“10:00”);
para MIN de 9 ate 0 passo -1 faça
para SEG de 59 ate 0 passo -1 faça
Escreva (MIN“:”SEG);

fimpara
fimpara
FIMALGORITMO
Bibliografia

1. FOEBELLONE, André; EBERSPACHER, Henri: Lógica de


Programação

2. Forbelone, André Luís Vilar, “Lógica de Programação-


Construção de Algoritmo e estrutura de dados” 3ªEdição
Pearson and Prentice Hall 2005

3. Universidade Vale de Itaja, “Lógica de programação”, pdf

Você também pode gostar