Você está na página 1de 44

Instituto Federal Catarinense

Técnico em Informática
Disciplina: Algoritmos

Estruturas de Repetição

Professor: Ricardo Annes


1
[Forbellone]
• Capítulo 3
− Estruturas de controle do fluxo de execução
− Estruturas sequenciais
− Estruturas de seleção
− Estruturas de repetição
− Aplicações específicas de cada estrutura

− Resumo (páginas 30-67)


2
Fluxo de execução
• Sequência
• Seleção
○ SE
○ ESCOLHA
• Repetição
○ ENQUANTO
○ REPITA
○ PARA

3
Enquanto

Enquanto <condição> faça // Executa os comandos enquanto a


comando1; // condição for verdadeira!
comando2;
comando3;
teste no início
. . .
FimEnquanto;

V
? comandos

F
4
Repita
Repita
teste no final
comando1;
comando2; ...
até <condição> ; // Repete até que a condição seja verdadeira.

comandos

F
?
V

5
Repita
Repita
comando1;
comando2;
comando3;
. . .
até <condição> ; // Repete até que a condição seja verdadeira
// REPETE ENQUANTO A CONDIÇÃO FOR FALSA!!!

6
Repita
Início
Real: X, Y ← 1,5;
Leia(X);
X ← Y + 0,4;
Repita
Escreva(X+Y);
X ← X - 0,1;
Até X > Y;
Escreva(X, Y);
Fim.

7
Repita
Início
Real: X, Y ← 1,5;
// Leia(X);
X ← Y + 0,4;
Repita
Escreva(X+Y);
X ← X - 0,1;
Até X < Y;
Escreva(X, Y);
Fim.

8
Repita
Início
Real: X, Y ← 1,5;
//Leia(X);
X ← Y + 0,4;
➔ Reescrever com o ENQUANTO e
Repita
fazer o teste de mesa!
Escreva(X+Y);
X ← X - 0,1;
Até X < Y;
Escreva(X, Y);
Fim.
9
Enquanto
Início
Real: X, Y ← 1,5;
//Leia(X);
X ← Y + 0,4;
Enquanto X >= Y faça
Escreva(X+Y);
X ← X - 0,1;
FimEnquanto;
Escreva(X, Y);
Fim.
10
Enquanto X Repita
Dica:
Inverter a condição
Negar a condição

A=B não (A = B) ≡ A <> B


A>B não (A > B) ≡ A <= B
A<B não (A < B) ≡ A >= B
A>=B não (A >= B) ≡ A < B
A<=B não (A <= B) ≡ A > B
A <> B não (A<>B) ≡ A = B
11
Estrutura de Repetição
com variável de controle

Para V de Vi até Vf [passo p] faça


comando1;
comando2;
comando3;
. . .

FimPara;

12
Estrutura de Repetição

Para i de 1 até 5 passo 1 faça


Escreva(i);
Fimpara;

➔ Reescreva usando o comando Enquanto


➔ Reescreva usando o comando Repita

13
Estrutura de Repetição

Para X de 10 até 0 passo -2 faça


Escreva(X);
Fimpara;

➔ Reescreva usando o comando Enquanto


➔ Reescreva usando o comando Repita

14
Estrutura de Repetição

Passo positivo até <= (enquanto)

1 2 3 4 5 i <= 5

Passo negativo até >= (enquanto)

10 8 6 4 2 i >= 2
15
Estrutura de Repetição

Para X de 10 até 20 faça


Escreva(X);
Fimpara;

16
Estrutura de Repetição

Para X de 1 até 1,5 passo 0,3 faça


Escreva(X);
Fimpara;

17
Estrutura de Repetição
Início
//Declaração de variáveis
caractere: resp;
Repita
// faz alguma coisa
...
Escreva (“Quer continuar?”);
Leia(Resp);
até resp <> “sim”;
Fim.

18
Estrutura de Repetição
Início
//Declaração de variáveis
caractere: resp <- “sim”;
Enquanto resp = “sim” faça
// faz alguma coisa
...
Escreva (“Quer continuar?”);
Leia(Resp);
FimEnquanto;
Fim.

19
Estrutura de Repetição
Comparação entre as estruturas de repetição

ESTRUTURA CONDIÇÃO QT DE EXEC. COND. DE EXECUÇÃO


enquanto início 0 ou + verd.
repita final mínimo 1 falso
para “não tem” (vf-vi)div p)+1 v<=vf

20
Exercícios
1. Construa um algoritmo que mostre a tabuada de um valor fornecido
pelo usuário.

Variações:
1a. Várias tabuadas fornecidas pelo operador
1b. Todas as tabuadas: de 1 a 10!

21
Exercícios
Início
Início caractere: resp;
Inteiro: X, i; Inteiro: X, I;
Leia(X); Repita
Para I de 1 até 10 faça Leia(X);
Escreva(X*I); Para I de 1 até 10 faça
FimPara; Escreva(X*I);
Fim. FimPara;
Escreva (“Quer continuar?”);
Leia(Resp);
até resp <> “sim”;
Fim. 22
Exercícios
2. faça um algoritmos que mostre os valores inteiros do intervalo
fornecido pelo usuário.

Variações:
2a. Se 1º valor for maior que o 2º?
2b. Generalizar para qualquer situação > ou <

23
Exercícios
2. faça um algoritmos que mostre os valores inteiros do intervalo
fornecido pelo usuário.

Início
Inteiro: i, A, B.
Leia(A,B);
Para i de A até B passo 1 faça
Escreva(i)
FimPara;
Fim. 24
Exercícios
2. faça um algoritmos que mostre os valores inteiros do intervalo
fornecido pelo usuário.
A B i
Início 2 5 2 TELA
Inteiro: i, A, B. 3 2
Leia(A,B); 4 3
Para i de A até B faça 5 4
Escreva(i) 6 5
FimPara;
Fim. 25
Exercícios
2. faça um algoritmos que mostre os valores inteiros do intervalo
fornecido pelo usuário.
A B i
Início 7 5 TELA
Inteiro: i, A, B.
Leia(A,B);
Para i de A até B faça
Escreva(i)
FimPara;
Fim. 26
Exercícios
Início Só funciona para B > A!
Inteiro: i, A, B.
A B i
Leia(A,B);
7 5 TELA
Para i de A até B faça
Escreva(i)
FimPara;
Fim.

27
Exercícios
2. faça um algoritmos que mostre os valores inteiros do intervalo
fornecido pelo usuário.
A B i
Início 7 5 7 TELA
Inteiro: i, A, B. 6 7
Leia(A,B); 5 6
Para i de A até B passo -1 faça 4 5
Escreva(i)
FimPara;
Fim. 28
Exercícios
Início
Inteiro: i, A, B, p <- 1;
A B i
Leia(A,B);
TELA
Se A > B então p <- -1; FimSe;
Para i de A até B passo p faça
Escreva(i)
FimPara;
Fim.
29
Exercícios
3. faça um algoritmo que mostre os 10 primeiros números pares.

30
Exercícios
4. faça um algoritmo que lê o nome e a idade de alguém e mostre o
nome e o grupo etário que pertence.

1. Criança: 1a 7
2. Pré-adole: 8 a 17
3. Adole 18 a 24
4. Adulto 25 a 64
5. Velho + 65

31
Exercícios 2
1. Construa um algoritmo que mostre se um dado número é primo
(primo1.cpp)

2. Números primos no intervalo de A a B.(primos.cpp)

3. Raiz quadrada (Equação de Pell) (RaizQuaPell.cpp)


24 - 1 = 23
23 - 3 = 20
20 - 5 = 15
15 - 7 = 8 parte inteira da raiz de 24 é 4.

4. Sequência de Fibonacci 1, 1, 2, 3, 5, 8, 13, 21, …..(fibonacci.cpp) 32


Exercícios 2
1. Construa um algoritmo que mostre se um dado número é primo.

Início
Inteiro: x, i, c <- 0;
leia(x);
Para i de 2 até x-1 faça
se x mod i <> 0 então c <- c + 1; fimse;
FimPara;
Se c = 0 então escreva(“é primo”); fimse;
Fim.

33
Exercícios 3
5. Dado um número x inteiro quantas divisões por 2 posso executar
antes que o número fique menor que 1. (div2.cpp)

6. Dado X e Y calcular Xy com uma estrutura de repetição usando *


(potencia.cpp)

7. Escreva um algoritmos que some valores digitados pelo operador.


Use uma estrutura enquanto para repetir até o fim.

34
Estrutura de Repetição
1) Crie uma tabela com graus C e F de 0 a 10 de 1 em 1 e de 15 a 100
de 5 em 5. (f=cx1,8+32) (TabCF.cpp)
2) teste de mesa
Início
Inteiro: c <- 0, p <- 1;
Enquanto c <=50 faça
Escreva(c);
c <- c + p;
p <- p + 1;
FimEnquanto;
Fim.
35
Estrutura de Repetição
3) teste de mesa
Início
Inteiro: c <- 0, p <- 1;
Enquanto c <=50 faça
Escreva(c);
c <- c + p;
p <- p + 1;
FimEnquanto;
Fim.

36
Estrutura de Repetição
3) Escreva um algoritmo que calcule e mostre os números primos
menores que 100, apresentar em ordem decrescente. (exerep3.cpp)

4) Escreva um algoritmo que calcule e mostre os resultados das divisões


sucessivas de A por B enquanto esse resultado for maior que zero
(exerep4.cpp)

5) Euaq: calcule e mostre uma PA de valor incial A razão B e X


elementos (exerep5.cpp).

37
Estrutura de Repetição
6) Euaq: calcule e mostre uma PA de valor incial A razão B e valor final
menor que X (exerep6.cpp).

7) Euaq: calcule e mostre uma PG de valor inicial A e razão B com X


elementos.

8) Euaq: calcule e mostre a sequência dos números triangulares a partir


de I até F.

38
Início
Real: T1, T2;
Caractere: Nome;
Escreva(“Digite nome e as notas do 1º e 2º trimestre: “);
Leia(Nome, T1, T2);
Se T2 > T1 * 1,5
então Escreva (Nome, “Você ganhou um caneta!”);
Senão Se T2 > T1*1,3
então Escreva (Nome, “Você ganhou uma lápis!”);
Senão Escreva (Nome, “Continue estudando próximo trimestre
tem mais!”); FimSe;

Fim.
39
Codificação de Algoritmos
● Sintaxe de uma linguagem C
○ Traduzir de pseudocódigo para C
● Ferramenta DEV C++

➔ Mapeamento de pseudocódigo para C


➔ Explicar a ferramenta

Vamos usar o lab. só para traduzir pseudocódigos,


não para criar algoritmos!
40
Exercícios com Vetor
1)Escreva um algoritmo que crie um vetor com X elementos e leias os
valores dos elementos da entrada padrão; mostre o vetor em ordem
inversa.

2)Escreva um algoritmo que preencha um vetor de Reais com os valores


de A até B de C em C, mostre os elementos do vetor das posições
ímpares. (vet08.cpp)

3) idem….mostre os elementos pares do vetor.

41
Fui claro?

Prof. Ricardo Annes


ricardo.annes@ifc.edu.br
42
Exercícios (enquanto)
Início
Real: A, B, C ← 0;
Escreva(“Digite um valor: “);
Leia(A);
B ← A * 2;
Enquanto A < B faça
C ← C + A;
A ← A + 0,5;
FimEnquanto;
Escreva(A, B, C);
Fim.
43
Exercícios (enquanto)
Início
Inteiro: A, B, C ← 0; Teste de mesa.
Escreva(“Digite um valor: “);
Leia(A);
B ← A * 2;
Enquanto A < B faça
C ← C + A;
Se A > (B – A)/2 então Escreva (A, C); FimSe;
A ← A + 1;
FimEnquanto;
Escreva(A, B, C);
Fim. 44

Você também pode gostar