• Nenhum resultado encontrado

Estruturas de Repetição

N/A
N/A
Protected

Academic year: 2022

Share "Estruturas de Repetição"

Copied!
15
0
0

Texto

(1)

Algoritmos e Lógica de Programação

C t ã d C t ã d Construção de Construção de Algoritmos

Algoritmos

Reinaldo Gomes reinaldo@cefet-al.br

Estruturas de Repetição

Estruturas de Repetição

„

Com o conhecimento adquirido até aqui, ainda não é possível fazer iterações!

é possível fazer iterações!

„

Como escrever algoritmos que façam iteração de instruções?

„

Usar Estruturas de Repetição!

2

(2)

Estruturas de Repetição

„

Existem situações que o processamento de um valor uma única vez não é suficiente para resolver valor uma única vez não é suficiente para resolver o problema

„

Quando isto ocorre, deve-se utilizar uma estrutura de repetição

„

Estruturas de repetição permitem que um ou mais instruções sejam executadas um número definido de vezes, ou enquanto uma determinada condição

não é alcançada

3

Estruturas de Repetição

„

As estruturas de repetição também são conhecidas como Laços ou Loops

„

As estruturas de repetição das linguagens de programação são de dois tipos

ƒ Condicional

• Repetem até satisfazer a condição de repetição

• São usadas quando não se sabe previamente quantas vezes São usadas quando não se sabe previamente quantas vezes deve-se executar as instruções do bloco de repetição

ƒ Contada

• Repetem um número contado (pré-definido) de vezes

(3)

Estruturas de Repetição

„

As estruturas de repetição condicional podem executar seus testes:

executar seus testes:

ƒ No Início

• Enquanto/Faça

ƒ No Fim

• Repita/Até

„

As estruturas de repetição contada utilizam uma variável para controlar a quantidade de repetições

ƒ Para/Faça

5

Estruturas de Repetição Condicionais

„

Normalmente, a utilização de uma estrutura de repetição requer o uso de dois tipos de variáveis:

repetição requer o uso de dois tipos de variáveis:

ƒ Contadora: é inicializada antes da estrutura de repetição e é incrementada no interior desta por um valor constante

ƒ Acumuladora: é inicializada antes da estrutura de

ƒ Acumuladora: é inicializada antes da estrutura de repetição e é incrementada no interior desta por um valor variável

6

(4)

Estruturas de Repetição Condicionais

„

Exemplos

Algoritmo variávelAcumuladora:

...

soma ← 0;

<estrutura de repetição>

Algoritmo variávelContadora:

...

cont← 0;

<estrutura de repetição>

7 ...

soma ← soma + X;

... Variável

<fim estrutura de repetição>

...

...

cont← cont + 1;

... Constante

<fim estrutura de repetição>

...

Estruturas de Repetição Condicionais

„

Estrutura de repetição Enquanto/Faça

„

Semântica:

„

Semântica:

ƒ Faz o teste no início do laço. Se o resultado for V as instruções do laço e/são executadas. Volta-se para o início do laço e testa-se novamente a sua condição Isto é repetido enquanto a condição. Isto é repetido enquanto a condição testada for V.

(5)

Estruturas de Repetição Condicionais

„

Estrutura de repetição Enquanto/Faça

„

Resumindo

„

Resumindo...

ƒ Não se sabe de antemão quantas vezes o bloco de repetição será executado. Isto é, ele pode ser executado várias vezes ou nenhuma vez

ƒ Testa a condição antes de entrar na estrutura de repetição

repetição

ƒ Repete a execução do bloco de instruções toda vez que condição for V

ƒ O bloco de instruções A execução do bloco é finalizada

quando a condição for F 9

Estruturas de Repetição Condicionais

Algoritmo ExemploEnquantoFaça Inteiro : x;

Início

Escreva(“Digite um valor”);

Leia (x);

Enquanto (x<>0) faça Se (x > 0) Então

Escreva (“X > 0”);

Senão

Escreva (“X < 0”);

Escreva(“Digite um valor”);

Leia (x);

Fim Enquanto;

Escreva (“X = 0”);

Fim. 10

(6)

Estruturas de Repetição Condicionais

„

Estrutura de repetição Repita/Até

„

Sintaxe:

Repita

<Comando1>;

. . .

<ComandoN>;

Até <expressão lógica>;

11

Estruturas de Repetição Condicionais

„

Estrutura de repetição Repita/Até

„

Semântica:

ƒ Efetua um teste lógico no fim do laço, garantindo que pelo menos uma vez as instruções deste são

t d A t á i d executadas. Ao contrário do enquanto, esta só repete o laço se o resultado do teste for F

(7)

Estruturas de Repetição Condicionais

„

Estrutura de repetição Repita/Até

„

Resumindo

„

Resumindo...

ƒ Não se sabe de antemão quantas vezes o bloco de repetição será executado. Todavia é garantido que ele será executado pelo menos uma vez

ƒ Testa a condição depois de entrar na estrutura de repetição

repetição

ƒ Repete a execução do bloco de instruções toda vez que a condição for F

ƒ A execução do bloco é finalizada quando a condição for V 13

Estruturas de Repetição Condicionais

Algoritmo ExemploRepitaAté Inteiro : x;

I í i Início Repita

Escreva(“Digite um valor”);

Leia (x);

Se (x > 0) Então Escreva (“X > 0”);

S ã Senão

Se (x < 0) Então

Escreva (“X < 0”);

Até (x = 0);

Escreva (“X = 0”);

Fim. 14

(8)

Estruturas de Repetição Condicionais

„

Questão de Implementação I

ƒ Toda repetição condicional pode ser representada por Toda repetição condicional pode ser representada por uma estrutura do tipo Enquanto/Faça ou Repita/Até.

Todavia, perceba que a primeira repete somente

quando a condição é V e a segunda somente quando a condição é F. Por isso, a condição de uma é a negação da outra

15

Estruturas de Repetição Condicionais

„

Questão de Implementação II

ƒ Nos laços condicionais a variável que é testada deve Nos laços condicionais a variável que é testada, deve estar sempre associada a uma instrução que a atualize no interior do laço. Pois, se isto não ocorrer, o algoritmo ficará repetindo indefinidamente este laço, gerando uma situação conhecida como “laço/loop”

(9)

Estruturas de Repetição Condicionais

Algoritmo ExemploEnquantoFaça_LoopInfinito Inteiro : x;

Início Início

Escreva(“Digite um valor”);

Leia (x);

Enquanto (x<>0) faça Se (x > 0) Então

Escreva (“X > 0”);

Senão Senão

Escreva (“X < 0”);

Escreva(“Digite um valor”);

{Leia (x); - sem este Leia(x), o laço repete infinitamente!}

Fim Enquanto;

Escreva (“X = 0”);

Fim. 17

Estrutura de Repetição Contada

„

Estrutura de repetição Para/Faça

„

Sintaxe:

Para<Contador> de <Inicio> até <Fim>[, passo <N>] Faca

<Instrução1>;

. . .

<InstruçãoN>;

Fim_Para

18

(10)

Estrutura de Repetição Contada

„

Estrutura de repetição Para/Faça

„

Semântica:

ƒ Repete as instruções enquanto a variável contador não atingir o valor final. Ressalta-se que a

iá l t d é i t variável contador é previamente inicializada e incrementada ou decrementada de uma constante a cada repetição

19

Estrutura de Repetição Contada

„

Estrutura de repetição Para/Faça

„

Resumindo...

ƒ Sabe-se de antemão quantas vezes o bloco de repetição será executado. Isto é, repete enquanto o valor final não atingir o valor final da variável de controle

ƒ Incrementa automaticamente a variável de controle cada

ƒ Incrementa automaticamente a variável de controle cada vez que o bloco é executado (incremento 1 é o padrão)

ƒ A variável de controle deve ser um número inteiro

A variável de controle não pode ser modificada dentro do

(11)

Estrutura de Repetição Contada

Algoritmo ExemploParaFaça inteiro : x, i, contP;

Início contP← 0;

Para i← 1 até 20 faça Escreva(“Digite um valor”);

Leia (x);

S ( 0) E tã Se (x > 0) Então

contPcontP + 1;

Fim Para;

Escreva (“positivos = ”,contP);

Fim. 21

Estrutura de Repetição Contada

„

Atenção

„

Atenção

ƒ Pode-se implementar um laço PARA com um laço CONDICIONAL, entretanto o controle do

incremento/decremento da variável contadora é seu. O laço PARA faz isso implicitamente!

22

(12)

Estrutura de Repetição Contada

Algoritmo ExemploParaFaçaComEnquanto Var x, i, contP: inteiro

í Início

contP0; i1;

Enquanto (i <= 20) faça Escreva(“Digite um valor”);

Leia (x);

Se (x > 0) Então

contPcontP + 1;

i i+1; {Incremento explícito da variável contadora}

Fim Enquanto;

Escreva (“positivos = ”+contP);

Fim. 23

Estrutura de Repetição Contada

Algoritmo ExemploParaFaçaComRepita Var x, i, contP: inteiro

í Início

contP0; i1;

Repita

Escreva(“Digite um valor”);

Leia (x);

Se (x > 0) Então( )

contPcontP + 1;

i i+1; {Incremento explícito da variável contadora}

Até (i > 20);

(13)

Comparando as Estruturas de Repetição

Enquanto/Faca Repita/Ate Para/Faca Enquanto/Faca Repita/Ate Para/Faca Tipo de

Estrutura

Condicional Condicional Contada Ocorrência do

Teste Início Fim Início

Quantidade de 0 ou muitas No mínimo uma ((fim-início) div

25 Quantidade de

Repetições

0 ou muitas No mínimo uma ((fim início) div passo) + 1 Condição para

Repetir V F Início <= Fim ou

Início >= Fim

Encadeando Estruturas de Repetição

„

Semelhante as estruturas de decisão composta, as estruturas de repetição também podem ser

estruturas de repetição também podem ser encadeadas/aninhadas.

„

Esta abordagem é usada quando há a

necessidade de se usar laços dentro de laços.

ƒ Por exemplo: fazer um algoritmo para gerar toda a tabuada de soma de 1 a 10

26

(14)

Encadeando Estruturas de Repetição

Algoritmo TabuadaSoma Var r, n1, n2: inteiro Início

n1← 1;

Enquanto (n1<=10) faça Para n2 ← 1 até 10 faça

r ←n1 + n2;

E ( 1 “ ” 2 “ ” ) Escreva (n1,“ + ”,n2,“ = ”,r);

Fim Para n1 ← n1+1;

Fim Enquanto

Fim. 27

Encadeando Diversas Estruturas

„ Também pode-se encadear estruturas de repetição com estruturas de decisão

Algoritmo TabuadaSomaComParidade Var r, n1, n2: inteiro

Início n1← 1;

Enquanto (n1<=10) faça Para n2 ← 1 até 10 faça

r ←n1 + n2;

Se (r mod 2 = 0)( )

Escreva (n1,“ + ”,n2,“ = ”,r, “ = Par”);

Senão

Escreva (n1,“ + ”,n2,“ = ”,r, “ = Impar”);

Fim Para

(15)

Algoritmos e Lógica de Programação

C t ã d C t ã d Construção de Construção de Algoritmos

Algoritmos

Reinaldo Gomes reinaldo@cefet-al.br

Estruturas de Repetição

Referências

Documentos relacionados

Mudanças internas no trabalho são as principais causas de agravos à saúde por estresse. Combater os problemas em todos os sentidos é fundamental para a empresa a fim de

Jesus aproveita para ensinar aos seus discípulos, que somos todos nós, que as riquezas servem para serem partilhadas com os mais necessitados, que para Deus o que conta é

Aos Sindicatos Profissionais de cada base de representação dos trabalhadores, elencados na introdução deste Instrumento Coletivo, e à Federação respectiva, serão devidas, por todos

Comparecer ao CETE para confirmar ou alterar os dados mencionados no cadastro e para entregar a &#34;Carta de Confirmação de Estágio Supervisionado Obrigatório&#34; ou a

Nota: Se o idioma de áudio / legendas / menu do disco seleccionado não estiver disponível no DVD, será utilizado o idioma predefi nido do disco. Controlo parental Permite impedir

comemorativos são tradicionais desde a inauguração do restaurante, há 15 anos Opção com estadia no Hotel Mercure Lourdes Belo Horizonte tem preço especial - Fotos: Paulo Cunha /

O processo de transformação bacteriana utilizada na Biologia Molecular ocorre in vitro, e pode ser afetado pelo tamanho e conformação da molécula de DNA a ser introduzida na

• Repetição contável: executa um bloco de código um número predeterminado de vezes..