UNIVERSIDADE FEDERAL DE
UBERLÂNDIA
ENGENHARIA CIVIL
Introdução à Algoritmos
Professora: Fabíola Gonçalves.
AGENDA

Estruturas de repetição:




2

Introdução;
Comando enquanto ... faça;
Comando faça ... enquanto;
Comando repita;
Comando para.
ESTRUTURAS DE REPETIÇÃO


Permite que uma sequência de comandos seja executada
repetidamente, enquanto uma determinada condição
seja satisfeita.
Existem 2 tipos:

Condicional – repetição ocorre enquanto a condição
for verdadeira;


Ex.: ENQUANTO e REPITA.
Incondicional – tem um número pré-determinado de
repetições.

Ex.: PARA.
ESTRUTURAS DE REPETIÇÃO - COMANDO
ENQUANTO
Comando enquanto.
 Linguagem Algorítmica:

enquanto condição faça
comando-A1;
comando-A2;
...
...
comando-An;
fim-enquanto
ESTRUTURAS DE REPETIÇÃO - COMANDO
ENQUANTO
A condição é testada no início da repetição;
Enquanto a condição for Verdadeira, o bloco de comandos
é executado;
 O bloco de comandos pode ser executado 0 ou + vezes;
 Para a execução quando a condição se tornar Falsa.

5

ESTRUTURAS DE REPETIÇÃO - COMANDO
ENQUANTO

Exemplo 1:
...
leia (SENHA);
enquanto (SENHA # “XYZ”) faça
escreva (“Senha inválida”);
escreva (“Digite a senha novamente”);
leia (SENHA);
fim-enquanto
...

Como o teste da condição é realizado no início do laço,
a sequência de comandos será executada zero ou mais
vezes, dependendo da avaliação da condição.
ESTRUTURAS DE REPETIÇÃO - COMANDO
ENQUANTO

Exemplo 2:
Algoritmo EXEMPLO_DE_ENQUANTO {escrever os números inteiros de 1 a 100}
N : inteiro
início
N <-1;
enquanto N ≤ 100 faça
escreva (N);
N <-(N + 1);
fim-enquanto
fim


O comando escreva será executado repetidas vezes enquanto a variável
N possuir um valor igual ou inferior a 100.
O algoritmo terá como saída a sequência dos números inteiros de 1 a
100.
ESTRUTURAS DE REPETIÇÃO COMANDO
ENQUANTO

Exemplo 3:
inicio
numero ← 1;
enquanto numero # 0 faça
escreva(“o quadrado de”, numero, “ é: “ );
escreva(numero^2);
leia(numero);
fim-enquanto
escreva(“FIM DO PROGRAMA”);
fim
8
Algoritmo EXEMPLO_ENQUANTO {calculo do quadrado de um número}
numero : inteiro
ESTRUTURAS DE REPETIÇÃO COMANDO
ENQUANTO

Exemplo 4:
Algoritmo EXEMPLO_ENQUANTO {soma valores}
inicio
soma <- 0;
leia (valor);
enquanto valor # -1 faça
soma <- (soma + valor);
leia(valor);
fim-enquanto
escreva(“O valor da soma é: ”, soma );
fim
9
valor, soma: inteiro;
ESTRUTURAS DE REPETIÇÃO
COMANDO ENQUANTO
Exercício:
Elabore um algoritmo para determinar o
menor número inteiro fornecido pelo usuário.
Considere que o número zero indica o fim da
entrada de dados.
2.
Achar o maior e o menor número de uma série
de números positivos fornecidos pelo usuário.
10
1.
ESTRUTURAS DE REPETIÇÃO
COMANDO FAÇA ... ENQUANTO

Sintaxe:
faça
enquanto <condição>;

Exemplo:
numero ← 1;
faça
escreva(“o quadrado de “, numero, “ é: “);
escreva(numero^2);
leia(numero);
enquanto numero ≠ 0;
escreva(“FIM DO PROGRAMA”);
11
comando-A1;
comando-A2;
...
...
comando-An;
ESTRUTURAS DE REPETIÇÃO
COMANDO REPITA
A condição é testada no final da repetição;
 Enquanto a condição for Falsa, o bloco de
comandos é executado;

Lembrando que condição é uma expressão lógica
sempre testada ao final de cada interação!
O bloco de comandos é executado pelo menos 1
vez.
 Para a execução quando a condição se tornar
Verdadeira.

12

ESTRUTURAS DE REPETIÇÃO
COMANDO REPITA-ATE

Sintaxe:
comando-A1;
comando-A2;
...
...
comando-An;
ate <condição>

A1, A2, A3, ... , A4 serão executados pelo menos
uma vez.

Até que a condição seja testada e se torne ??
13
repita
ESTRUTURAS DE REPETIÇÃO
COMANDO REPITA-ATE

Exemplo:
escreva(“o quadrado de “, numero, “ é: “);
escreva(numero^2);
leia(numero);
ate numero = 0
escreva(“FIM DO PROGRAMA”);

Neste caso calcularemos o quadrado do número
enquanto o usuário não entrar com um valor 0.

Mas se ele entrar com 0 o que a algoritmo imprimirá?
14
numero ← 1;
repita
ESTRUTURAS DE REPETIÇÃO
COMANDO REPITA-ATE

15
O comando repita-até é equivalente ao comando
enquanto-faça, vejam:
REPETIÇÃO POR VARIÁVEL DE CONTROLE


Número de repetições for previamente conhecido.
Uso de contador para controlar o número de repetições.


Contador: uma variável do tipo inteiro.
Sintaxe do Comando:
para i de valor até l passo p faça
comando-C1;
comando-C2;
...
...
comando-An;
fim-para
OBS: Quando o passo p for =1 não é necessário
colocar essa esta especificação
REPETIÇÃO POR VARIÁVEL

Exemplo:
Algoritmo LAÇO_CONTADOR
NUM,SOMA,CONT : inteiro;
início
SOMA <-0;
para CONT de 1 até 100 faça
leia (NUM);
SOMA <- (SOMA + NUM);
fim-para
escreva (SOMA);
fim
Fim_Algoritmo
DE CONTROLE
REPETIÇÃO POR VARIÁVEL DE CONTROLE

Também conhecido como Controle por Contador o comando
para é, na verdade, o comando enquanto utilizando uma
variável de controle em uma notação compacta.
Neste caso sempre existirá uma inicialização de variável de
controle
 Um teste para verificar se a variável atingiu o limite
 E, ainda, um acréscimo na variável de controle

REPETIÇÃO POR VARIÁVEL DE CONTROLE
COMANDO PARA

Exemplos:
/* O que será impresso?*/
para cont = 10 ate 1 passo -1 faça
escreva(“O valor de cont é”, cont );
fim-para
19
para cont = 1 ate 9 passo 2 faça
escreva(“O valor de cont é”, cont);
fim-para
Pergunta: O que será impresso??
REPETIÇÃO POR VARIÁVEL DE CONTROLE
COMANDO PARA

Exercício:
--Faça um algoritmo que, sem utilizar o operador de
exponenciação, realize a operação X^Y, para qualquer X
e Y fornecido pelo usuário.
Reescreva o algoritmo acima, utilizando as demais
estruturas de repetição.
20
-- Construa um algoritmo que calcule e imprima a
somatória de N números (sendo N > 0). Considere como
dados de entrada a quantidade de números a serem
lidos e os valores dos respectivos números.
CONTROLE POR ENTRADA (FLAG)

Quando não conhecemos o número de repetições e este
for determinado por um valor que será lido (flag);


devemos utilizar um controle de repetições por entrada,
também conhecido como controle por sentinela.
Exemplo: este algoritmo lê um conjunto de números
inteiros e exibe o valor médio dos mesmos.

Obs: a condição de saída do laço será a leitura do valor
0 (flag).
CONTROLE POR ENTRADA (FLAG)
Algoritmo LAÇO_COM_FLAG
NUM,CONT,SOMA,MEDIA : inteiro;
início
Sentinela
SOMA <-0;
CONT <-0;
leia (NUM);
enquanto (NUM # 0) faça
SOMA <- (SOMA + NUM);
CONT <- (CONT + 1);
escreva(Entre com um valor ou entre com o sair e visualizar a media)
leia (NUM);
fim-enquanto
MEDIA <- (SOMA div CONT);
escreva (MEDIA);
fim
Fim_Algoritmo
Flag
EXERCÍCIOS
Qual a utilidade da estrutura de repetição?
 Em que consiste o controle de repetições por contador?
 Em que consiste o controle de repetições por flag?
 Faça um algoritmo que mostre todos os números inteiros
de 1 a 50.
 Faça um algoritmo que mostre todos os números inteiros
pares de 2 a 100.
 Faça um algoritmo que gere a seguinte série: 10, 20, 30,
40, ..., 990, 1000.
 Escreva um algoritmo que leia três números e imprima o
maior deles.

EXERCÍCIOS

Faça o acompanhamento da execução
algoritmo abaixo e preencha a Tabela
Variáveis:
do
de
EXERCÍCIOS
Escreva um algoritmo que leia 10 números e imprima
o maior deles.
 Escreva um algoritmo que leia três números e os
imprima em ordem crescente.
 Escreva um algoritmo que leia uma certa quantidade
de números e imprima o maior deles e quantas vezes o
maior número foi lido. A quantidade de números a
serem lidos deve ser fornecida pelo usuário. Assuma
que o usuário sempre fornecerá um número positivo.

Download

Estrutura_repeticao - Facom - Universidade Federal de Uberlândia