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 -
Download

Repetição - Professor Luiz Alberto