Algo 07 Linguagem Algoritmica 4 6pp-EST de REPETIÇÃO

5
1 Algoritmos e Lógica de Programação Construção de Construção de Algoritmos Algoritmos Reinaldo Gomes [email protected] Estruturas de Repetição Algoritmos Algoritmos Estruturas de Repetição Com o conhecimento adquirido até aqui, ainda não é possível fazer iterações! Como escrever algoritmos que façam iteração de Como escrever algoritmos que façam iteração de instruções? Usar Estruturas de Repetição! 2 Estruturas de Repetição Existem situações que o processamento de um 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 deve-se executar as instruções do bloco de repetição Contada Repetem um número contado (pré-definido) de vezes São usadas quando se sabe previamente quantas vezes deve-se executar as instruções do bloco de repetição 4 Estruturas de Repetição As estruturas de repetição condicional podem 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: Contadora: é inicializada antes da estrutura de repetição e é incrementada no interior desta por um l t t valor constante Acumuladora: é inicializada antes da estrutura de repetição e é incrementada no interior desta por um valor variável 6

description

Linguagem Algoritmica

Transcript of Algo 07 Linguagem Algoritmica 4 6pp-EST de REPETIÇÃO

1Algoritmos e Lgica de ProgramaoConstruo deConstruo de Algoritmos AlgoritmosReinaldo [email protected] de RepetioAlgoritmos AlgoritmosEstruturas de Repetio Com o conhecimento adquirido at aqui, ainda no possvel fazer iteraes! Como escrever algoritmos que faam iterao de Como escrever algoritmos que faam iterao de instrues? Usar Estruturas de Repetio!2Estruturas de Repetio Existem situaes que o processamento de um valor uma nica vez no suficiente para resolver o problema Quando isto ocorre, deve-se utilizar uma estrutura de repetio Estruturas de repetio permitem que um ou mais instrues sejam executadas um nmero definido de vezes, ou enquanto uma determinada condio no alcanada3Estruturas de Repetio As estruturas de repetio tambm so conhecidas como Laos ou Loops As estruturas de repetio das linguagens de programao so de dois tipos Condicional Repetem at satisfazer a condio de repetio So usadas quando no se sabe previamente quantas vezes deve-se executar as instrues do bloco de repetio Contada Repetem um nmero contado (pr-definido) de vezes So usadas quando se sabe previamente quantas vezes deve-se executar as instrues do bloco de repetio4Estruturas de Repetio As estruturas de repetio condicional podem executar seus testes: No Incio Enquanto/Faa No Fim Repita/At As estruturas de repetio contada utilizam uma varivel para controlar a quantidade de repeties Para/Faa5Estruturas de Repetio Condicionais Normalmente, a utilizao de uma estrutura de repetio requer o uso de dois tipos de variveis: Contadora: inicializada antes da estrutura de repetio e incrementada no interior desta por um l t t valor constante Acumuladora: inicializada antes da estrutura de repetio e incrementada no interior desta por um valor varivel62Estruturas de Repetio Condicionais ExemplosAlgoritmo varivelAcumuladora:...Algoritmo varivelContadora:...7...soma 0;

...soma soma + X;... Varivel

......cont 0;

...cont cont + 1;...Constante

...Estruturas de Repetio Condicionais Estrutura de repetio Enquanto/Faa Semntica: Faz o teste no incio do lao. Se o resultado for V as instrues do lao e/so executadas. Volta-se para o incio do lao e testa-se novamente a sua condio. Isto repetido enquanto a condio testada for V.8Estruturas de Repetio Condicionais Estrutura de repetio Enquanto/Faa Resumindo... No se sabe de antemo quantas vezes o bloco de repetio ser executado. Isto , ele pode ser executado vrias vezes ou nenhuma vez Testa a condio antes de entrar na estrutura de repetio Repete a execuo do bloco de instrues toda vez que condio for V O bloco de instrues A execuo do bloco finalizada quando a condio for F9Estruturas de Repetio CondicionaisAlgoritmo ExemploEnquantoFaaInteiro : x;IncioEscreva(Digite um valor);Leia (x);Enquanto (x0) faa q ( ) Se (x > 0) EntoEscreva (X > 0);SenoEscreva (X < 0);Escreva(Digite um valor);Leia (x);Fim Enquanto;Escreva (X = 0);Fim.10Estruturas de Repetio Condicionais Estrutura de repetio Repita/At Sintaxe:Repita Repita;. . .;At ;11Estruturas de Repetio Condicionais Estrutura de repetio Repita/At Semntica: Efetua um teste lgico no fim do Efetua um teste lgico no fim do lao, garantindo que pelo menos uma vez as instrues deste so executadas. Ao contrrio do enquanto, esta s repete o lao se o resultado do teste for F123Estruturas de Repetio Condicionais Estrutura de repetio Repita/At Resumindo... No se sabe de antemo quantas vezes o bloco de repetio ser executado. Todavia garantido que ele ser executado pelo menos uma vez Testa a condio depois de entrar na estrutura de repetio Repete a execuo do bloco de instrues toda vez que a condio for F A execuo do bloco finalizada quando a condio for V13Estruturas de Repetio CondicionaisAlgoritmo ExemploRepitaAtInteiro : x;IncioRepitaEscreva(Digite um valor);L i( ) Leia (x);Se (x > 0) EntoEscreva (X > 0);SenoSe (x < 0) EntoEscreva (X < 0);At (x = 0);Escreva (X = 0);Fim.14Estruturas de Repetio Condicionais Questo de Implementao I Toda repetio condicional pode ser representada por uma estrutura do tipo Enquanto/Faa ou Repita/At. Todavia, perceba que a primeira repete somente quando a condio V e a segunda somente quando aquando a condio V e a segunda somente quando a condio F. Por isso, a condio de uma a negao da outra15Estruturas de Repetio Condicionais Questo de Implementao II Nos laos condicionais a varivel que testada, deve estar sempre associada a uma instruo que a atualize no interior do lao. Pois, se isto no ocorrer, o algoritmo ficar repetindo indefinidamente este laogerandoficar repetindo indefinidamente este lao, gerando uma situao conhecida como lao/loop16Estruturas de Repetio CondicionaisAlgoritmo ExemploEnquantoFaa_LoopInfinitoInteiro : x;IncioEscreva(Digite um valor);Leia (x);Enquanto (x0) faa Enquanto (x0) faaSe (x > 0) EntoEscreva (X > 0);SenoEscreva (X < 0);Escreva(Digite um valor);{Leia (x); - sem este Leia(x), o lao repete infinitamente!}Fim Enquanto;Escreva (X = 0);Fim.17Estrutura de Repetio Contada Estrutura de repetio Para/Faa Sintaxe:Para de at [passo ] Faca Para de at [, passo ] Faca;. . .;Fim_Para184Estrutura de Repetio Contada Estrutura de repetio Para/Faa Semntica: Repete as instrues enquanto a Repete as instrues enquanto a varivel contador no atingir o valor final. Ressalta-se que a varivel contador previamente inicializada e incrementada ou decrementada de uma constante a cada repetio19Estrutura de Repetio Contada Estrutura de repetio Para/Faa Resumindo... Sabe-se de antemo quantas vezes o bloco de repetio ser executado. Isto , repete enquanto o valor final no atingir o valor final da varivel de controle Incrementa automaticamente a varivel de controle cada vez que o bloco executado (incremento 1 o padro) A varivel de controle deve ser um nmero inteiro A varivel de controle no pode ser modificada dentro do bloco20Estrutura de Repetio ContadaAlgoritmo ExemploParaFaainteiro : x, i, contP;InciocontP 0;Para i 1 at 20 faa Para i 1 at 20 faaEscreva(Digite um valor);Leia (x);Se (x > 0) EntocontP contP + 1;Fim Para;Escreva (positivos = ,contP);Fim.21Estrutura de Repetio Contada Ateno Pode-se implementar um lao PARA com um lao CONDICIONAL, entretanto o controle do incremento/decremento da varivel contadora seu. O lao PARA faz isso implicitamente!22Estrutura de Repetio ContadaAlgoritmo ExemploParaFaaComEnquantoVar x, i, contP: inteiroInciocontP 0; i 1;Enquanto (i 0) EntocontP contP + 1;i i+1; {Incremento explcito da varivel contadora}Fim Enquanto;Escreva (positivos = +contP);Fim.23Estrutura de Repetio ContadaAlgoritmo ExemploParaFaaComRepitaVar x, i, contP: inteiroInciocontP 0; i 1;RepitaEscreva(Digite um valor);Leia (x);Se (x > 0) EntocontP contP + 1;i i+1; {Incremento explcito da varivel contadora}At (i > 20);Escreva (positivos = +contP);Fim.245Comparando as Estruturas de RepetioEnquanto/Faca Repita/Ate Para/FacaTipo de EstruturaCondicional Condicional Contada25Ocorrncia do TesteIncio Fim IncioQuantidade de Repeties0 ou muitas No mnimo uma ((fim-incio) divpasso) + 1Condio paraRepetirV F Incio = FimEncadeando Estruturas de Repetio Semelhante as estruturas de deciso composta, as estruturas de repetio tambm podem ser encadeadas/aninhadas. Esta abordagem usada quando h a necessidade de se usar laos dentro de laos. Por exemplo: fazer um algoritmo para gerar toda a tabuada de soma de 1 a 1026Encadeando Estruturas de RepetioAlgoritmo TabuadaSomaVar r, n1, n2: inteiroIncion1 1;Enquanto (n1