Sumário Algoritmos e Estrutura de Dados Repetição • • • • Estrutura de Repetição Estrutura de Repetição para...faca Estrutura de Repetição enquanto...faca Estrutura de Repetição repita...ate M. Sc. Luiz Alberto [email protected] –1– Repetição Prof. Luiz Alberto - Repetição- Forma Geral de Sintaxe • Conjunto de instruções, ou uma única instrução, que será executada repetidamente, de acordo com o resultado de um teste condicional que compõem a instrução de repetição e permite o laço para nova execução destas instruções que compõem o bloco de repetição. Aula 6– Algoritmo – Estrutura de Repetição –2– Prof. Luiz Alberto - Aula 6– Algoritmo – Estrutura de Repetição –3– Prof. Luiz Alberto - Estrutura de Repetição Exemplo - Tabuada • Possibilitam que o processamento de algumas instruções do algoritmo sejam executadas repetidas vezes, conforme a necessidade da lógica envolvida para solução do problema computacional que se deseje resolver. • Apesar das mesmas instruções serem repetidas em sua execução, geralmente, elas envolvem dados diferentes, o que ocasionará resultados distintos durante sua execução. Aula 6– Algoritmo – Estrutura de Repetição –4– Prof. Luiz Alberto - Exemplo – Tabuada em Portugol algoritmo "tabuada" // Síntese // Objetivo: calcular a tabuada de um número inteiro positivo // Entrada: número inteiro positivo // Saída: tabuada de 1 até 10 do número inteiro positivo informado // Declarações var numero : inteiro inicio escreva ("Informe um número inteiro positivo para tabuada: ") leia (numero) escreva (numero, " x 1 = ", (numero * 1) ) escreva (numero, " x 2 = ", (numero * 2) ) escreva (numero, " x 3 = ", (numero * 3) ) escreva (numero, " x 4 = ", (numero * 4) ) escreva (numero, " x 5 = ", (numero * 5) ) escreva (numero, " x 6 = ", (numero * 6) ) escreva (numero, " x 7 = ", (numero * 7) ) escreva (numero, " x 8 = ", (numero * 8) ) escreva (numero, " x 9 = ", (numero * 9) ) escreva (numero, " x 10 = ", (numero * 10) ) fimalgoritmo Aula 6– Algoritmo – Estrutura de Repetição –6– • Um exemplo simples e didático ao início desta aprendizagem em Programação (instruções de repetição) é o cálculo da tabuada de um número. • Esta realização consiste na mesma operação aritmética (multiplicação) sobre valores numéricos inteiros diferentes e seqüências, que geralmente variam entre um (1) e dez (10) sobre um outro valor inteiro desejado. Aula 6– Algoritmo – Estrutura de Repetição –5– Prof. Luiz Alberto - Estrutura de Repetição • As estruturas de repetição são formadas por um bloco de instrução e um teste condicional, responsável pela verificação de que este bloco, denominado bloco de repetição, será executado ou não repetidas vezes. • Estas estruturas também denominam o teste condicional como expressão de controle, pois sendo seu resultado lógico (verdadeiro ou falsa) resultará na repetição ou não da execução do bloco de repetição. Prof. Luiz Alberto - Aula 6– Algoritmo – Estrutura de Repetição –7– Prof. Luiz Alberto - Estrutura de Repetição Estrutura de Repetição para...faca • As estruturas de repetição atendem a características lógicas diferentes que possam ser encontradas no processamento de dados. • São 3 tipos de instruções de repetição, também chamados de instruções de laço ou looping: • Esta instrução é definida em uma única linha de comando no português estruturado, porém torna implícita três instruções fundamentais a sua execução correta: – para... faca – enquanto... faca – repita... ate Aula 6– Algoritmo – Estrutura de Repetição – atribuição inicial a sua variável de controle; – teste condicional responsável pela repetição ou não de seu bloco; – definição do passo da repetição sobre a variável de controle. –8– Prof. Luiz Alberto - Forma Geral de Sintaxe - para...faca para <variável_controle> de <inicial> ate <final> passo <rep> faca bloco de repetição fimpara • • • • • para, de, ate, passo, faca e fimpara - são palavras reservadas <variável_controle> - variável inteira responsável pelo controle da repetição; <inicial> - valor inteiro inicial que será atribuído a variável de controle no momento em que esta instrução for executada a primeira vez <final> - valor inteiro final que permitirá a execução do bloco de repetição pela última vez <rep> - valor inteiro que define o incremento ou decremento na variável de controle que será realizada a cada nova execução do bloco de repetição, antes da realização do teste condicional que definirá a execução ou não do bloco de repetição Aula 6– Algoritmo – Estrutura de Repetição • A instrução de repetição para...faca repete a execução de seu bloco de repetição um número de vezes fixado em sua definição, sendo possível conhecer previamente a quantidade de vezes que isso ocorrerá durante a execução do algoritmo. – 10 – Prof. Luiz Alberto - Aula 6– Algoritmo – Estrutura de Repetição –9– Prof. Luiz Alberto - Solução do problema da tabuada algoritmo "tabuada" // Síntese // Objetivo: calcular a tabuada de um número inteiro positivo // Entrada: número inteiro positivo // Saída: tabuada de 1 até 10 do número inteiro positivo informado // Declarações var numero, controle : inteiro inicio escreva ("Informe um número inteiro positivo para tabuada: ") leia (numero) para controle de 1 ate 10 passo 1 faca escreval(numero, " x ",controle," = ", (numero * controle) ) fimpara fimalgoritmo Aula 6– Algoritmo – Estrutura de Repetição – 11 – Prof. Luiz Alberto - Estrutura de Repetição enquanto...faca • A instrução de repetição enquanto... faca permite a execução de seu bloco de repetição um número de vezes fixado por uma lógica adequada a solução de um problema computacional ou ainda a quantidade de vezes que seu usuário desejar, sendo ele responsável pelo controle de quantas vezes este bloco de repetição poderá ser executado. Solução do problema da tabuada Fluxograma Aula 6– Algoritmo – Estrutura de Repetição – 12 – Prof. Luiz Alberto - Forma Geral de Sintaxe - enquanto...faca enquanto, faca e fimenquanto - são palavras reservadas <teste_condicional> - expressão relacional que resultará em um dado lógico (verdadeiro ou falso), indicando se o bloco de repetição será executado novamente (resultado verdadeiro) ou não (resultado falso). Aula 6– Algoritmo – Estrutura de Repetição – 14 – – 13 – Prof. Luiz Alberto - Estrutura de Repetição enquanto...faca • A operação de incremento ou decremento da instrução enquanto... faca também deverá ser explícita no bloco de repetição, caso contrário a variável de controle se manterá com o mesmo valor que resultou em sua entrada neste bloco (teste condicional verdadeiro) para execução, ocorrendo o processamento conhecido como laço infinito enquanto (<teste_condicional>) faca bloco de repetição fimenquanto • • Aula 6– Algoritmo – Estrutura de Repetição Prof. Luiz Alberto - – Laço finito: a repetição existente no algoritmo não alterará o valor da variável de controle e manterá o bloco de repetição em constante execução, pois seu teste condicional será sempre verdadeiro e o algoritmo nunca chegará ao final de seu processamento correto. Aula 6– Algoritmo – Estrutura de Repetição – 15 – Prof. Luiz Alberto - Exemplo - enquanto...faca algoritmo "média de peso“ var contador : inteiro peso, soma, media : real inicio contador ←1 // inicialização explícita da variável de controle soma ← 0 // inicialização da variável acumuladora dos pesos enquanto (contador <= 20) faca escreva("Informe o peso do atleta", contador, ": ") leia(peso) soma ← soma + peso // acumulando os pesos informados contador ← contador + 1 // incremento explícito da repetição fim enquanto media ← soma / 20 // calcula média dos pesos acumulados escreva ("Peso médio da equipe = ", media) fimalgoritmo Aula 6– Algoritmo – Estrutura de Repetição – 16 – Exemplo enquanto...faca (Fluxograma) Prof. Luiz Alberto - Aula 6– Algoritmo – Estrutura de Repetição – 17 – Prof. Luiz Alberto - Estrutura de Repetição enquanto...faca Estrutura de Repetição repita...ate • É importante ressaltar que as instruções de repetição estudadas até o momento (para... faca e enquanto... faca) executam o bloco de repetição somente quando o resultado de seu teste condicional é verdadeiro, caso contrário, teste condicional falso, a repetição é encerrada e o algoritmo prossegue sua execução. • Caso o teste condicional seja falso na primeira verificação, antes de executar o bloco de repetição pela primeira vez, a execução se desloca para instrução de encerramento da repetição sem executar nenhuma vez o bloco de repetição. • Esta repetição possui características lógicas diferentes das demais (para... faca e enquanto... faca), sendo estas características relevantes para seu uso correto e eficiente em um algoritmo usando o português estruturado. • Entre as principais diferenças lógicas do repita... ate são destacadas neste estudo os seguintes aspectos: Aula 6– Algoritmo – Estrutura de Repetição – 18 – Prof. Luiz Alberto - – O teste condicional é realizado no final desta instrução de repetição, sendo seu bloco de repetição executado no mínimo uma vez. – A execução repetidas vezes do seu bloco de repetição ocorre somente quando o resultado do teste condicional do repita... ate for falso, pois sendo ele verdadeiro a repetição é encerrada Aula 6– Algoritmo – Estrutura de Repetição – 19 – Prof. Luiz Alberto - Forma geral - repita...ate Exemplo- repita...ate repita bloco de repetição ate (<teste_condicional>) algoritmo "média de peso“ var contador : inteiro peso, soma, media : real inicio contador 1 // inicialização explícita da variável de controle soma 0 // inicialização da variável acumuladora dos pesos repita escreva("Informe o peso do atleta", contador, ": ") leia(peso) soma soma + peso // acumulando os pesos informados contador contador + 1 // incremento explícito da repetição ate (contador > 20) media soma / 20 // calcula média dos pesos acumulados escreva ("Peso médio da equipe = ", media) fimalgoritmo • repita e ate - são as palavras reservadas desta estrutura de repetição • <teste_condicional> - expressão relacional que resultará em um dado lógico (verdadeiro ou falso), indicando se o bloco de repetição será executado novamente (resultado falso) ou não (resultado verdadeiro). Aula 6– Algoritmo – Estrutura de Repetição – 20 – Prof. Luiz Alberto - Aula 6– Algoritmo – Estrutura de Repetição – 21 – Prof. Luiz Alberto - Dúvidas? Exemplorepita...ate (Fluxograma) Aula 6– Algoritmo – Estrutura de Repetição – 22 – Prof. Luiz Alberto - Aula 6– Algoritmo – Estrutura de Repetição – 23 – Prof. Luiz Alberto -