Algoritmos - capítulo 6

2,295 views

Published on

Algoritmos com repetição.

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,295
On SlideShare
0
From Embeds
0
Number of Embeds
44
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Algoritmos - capítulo 6

  1. 1. Algoritmos e lógica de programação Estruturas de Repetição por Carlos Emilio Padilla Severo
  2. 2. Cronograma Introdução Conceito sobre laços de repetição Condição de parada Condição de parada no início Condição de parada no fim Considerações sobre condições de parada Contagem de repetições Contador x acumulador Repetição indeterminada Repetição com variável de controle Apresentação do trabalho de avaliação
  3. 3. Introdução... Contexto: Considere o problema de cálculo da média aritmética de um aluno. No problema em questão devemos obter as notas das avaliações para podermos calcular a média, vejamos o algoritmo. variaveis numerico n1, n2, me Inicio ler n1 ler n2 me := (n1 + n2) / 2 escrever me fim
  4. 4. Introdução Note que o algoritmo anterior calcula a média somente para um único aluno. Devemos reescrever o algoritmo se desejarmos calcular a média de um novo aluno, vejamos: variaveis numerico n1, n2, me1, me2 inicio A solução é simples, mas ler n1 inviável quando o grupo de ler n2 alunos cresce (imagine 50 me1 := (n1 + n2) / 2 escrever me1 alunos!!!) ler n1 ler n2 me2 := (n1 + n2) / 2 escrever me2 fim
  5. 5. Ufa !!! Pode ser melhor. Muitas vezes necessitamos repetir uma instrução, ou sequência de instruções (bloco) em um algoritmo. Evitando a reescrita de uma porção do código diversas vezes no algoritmo. Viabilizando a execução de instruções que são repetidas múltiplas vezes. Exemplo: desejamos calcular a média aritmética de um grupo de alunos de uma única vez, mas como ??? A solução é a utilização de um controle de repetição.
  6. 6. Conceito sobre laço de repetição... As estruturas algorítmicas de repetição, também chamadas de laços de repetição, permitem o controle do número de vezes que uma ou um bloco de instruções será executado. Em inglês são denominadas de loop ou looping, visto que controlam a execução finita de instruções em círculos, que ao término segue seu curso normal. O número de repetições pode ser indeterminado, porém é sempre finito.
  7. 7. Condição de parada Todo laço de repetição necessita de uma condição de parada, a qual interrompe a repetição determinando o prosseguimento do fluxo de execução do algoritmo até seu final. A condição de parada pode ser colocada: no início do laço de repetição; ou no final do laço de repetição.
  8. 8. Condição de parada no início Consiste em uma estrutura de controle de fluxo de execução que permite repetir diversas vezes um mesmo trecho do algoritmo, porém, verificando antes se é possível a repetição. variaveis numerico contador, n1, n2, me inicio faca enquanto(contador <= 50) ler n1 Início do laço ler n2 Fluxo Repetição me := (n1 + n2) / 2 de escrever me Fim do laço execução contador := contador + 1 fim_faca fim
  9. 9. Condição de parada no fim Formada por uma estrutura de controle de fluxo de execução que permite repetir diversas vezes um mesmo trecho do algoritmo até que uma determinada condição seja verdadeira. variaveis numerico contador, n1, n2, me inicio contador := 1 repetir Fluxo Início do laço ler n1 de ler n2 Repetição execução me := (n1 + n2) / 2 escrever me Fim do laço contador := contador + 1 ate(contador > 50) fim OBS: no Ambap (ILA) essa estrutura não foi implementada.
  10. 10. Considerações Condições de parada no início podem determinar que um bloco de instruções não seja executado. Já condições de parada no final determinam a execução do bloco de instruções pelo menos uma vez. A condição de parada no início é a negação da condição de parada no final e vice-versa. faca enquanto(contador <=50) repita ... ... fim_faca ate(contador > 50)
  11. 11. Contagem de repetições O processo de contagem do número de repetições ocorre na linha de incremento da variável contador. Quando o bloco de instruções é repetido, o valor da variável vai aumentando em uma unidade, simulando uma contagem de execuções, surge daí a denominação contador. variaveis numerico contador, n1, n2, me inicio contador := 1; faca enquanto(contador <= 50) ler n1 ler n2 me := (n1 + n2) / 2 escrever me contador := contador + 1 fim_faca fim
  12. 12. Contador x acumulador Realizando uma alteração no algoritmo de cálculo da média dos alunos, poderíamos acrescentar o cálculo da média geral do grupo, acumulando a média de cada aluno em um acumulador de controle. variaveis numerico contador, n1, n2, me, mg, acumulador inicio contador := 1 acumulador := 0 faca enquanto(contador <= 50) ler n1 ler n2 me := (n1 + n2) / 2 escrever me contador := contador + 1 NOTA acumulador := acumulador + me fim_faca O contador e o acumulador são mg := acumulador / 50 semelhantes, a diferença está escrever mg no valor somado que para o fim contador é constante e para o acumulador é variável.
  13. 13. Repetição indeterminada Neste tipo de estrutura de repetição não sabemos previamente o número de repetições que irão ocorrer no laço. variaveis numerico numero, chute, tentativa inicio tentativa := 0 ler numero faca enquanto(chute<>numero) ler chute se(chute > numero) escrever “Chutou alto.” senao se(chute < numero) escrever “Chutou baixo.” fim_se fim_se tentativa := tentativa + 1 fim_faca escrever tentativa fim
  14. 14. Variável de controle Como vimos através do algoritmo anterior, ocorrem casos em que se torna difícil determinar o número de vezes que o bloco será executado. Sabemos somente que será executado enquanto uma condição for satisfeita, ou até que uma condição seja satisfeita. Já a estrutura para sempre executa um bloco um número pré-determinado de vezes, pois possui limites fixos de execução.
  15. 15. Variável de controle (exemplo) variaveis numerico contador, n1, n2, me, mg, acumulador inicio acumulador := 0 para contador de 1 ate 50 passo 1 ler n1 ler n2 me := (n1 + n2) / 2 escrever me acumulador := acumulador + me proximo mg := acumulador / 50 escrever mg fim
  16. 16. Trabalho de avaliação Um rei requisitou os serviços de um sábio e disse-lhe que pagaria qualquer preço. O sábio necessitando de alimentos perguntou ao rei se poderia receber em grãos de trigo dispostos em um tabuleiro de xadrez, de tal forma que o primeiro quadro deveria conter apenas um grão e os próximos o dobro do anterior. O rei achou o trabalho barato e mandou o sábio fazer o serviço, sem verificar que seria impossível o pagamento. Crie uma algoritmo para apresentar a solução para o problema.
  17. 17. Referências bibliográficasFORBELLONE, A. L. V.; EBERSPÄCHER, H. F. Lógica de Programação. 2ª Edição, São Paulo: Pearson, 2000.GUIMARÃES, A. M.; LAGES, N. A. C. Algoritmos e Estruturas de Dados. Rio de Janeiro: LTC, 1994.PINTO, Wilson Silva – Introdução ao Desenvolvimento de Algoritmos e Estruturas de Dados. São Paulo: Érica, 1990.FARRER, H. et. al. Algoritmos Estruturados. Rio de Janeiro: LTC, 1999.

×