Baixe o app para aproveitar ainda mais
Prévia do material em texto
Algoritmos e Estruturas de Dados I 1 Algoritmos e Estruturas de Dados I Algoritmos com Repetição Profa. Márcia Cristina Moraes Profa. Milene Selbach Silveira Prof. Iara C. de Almeida Material para estudo: Forbellone, A. e Eberspächer, H. (2005) � capítulo 3 (estrutura de repetição) � a sintaxe utilizada em nossos algoritmos será diferenciada em alguns poucos detalhes, mas a lógica é a mesma Calcular média das notas de aluno Algoritmo Média inteiro: num real: n1, n2, n3, m Início escreva(“Informe seu número de matrícula e suas três notas”) leia(num, n1, n2, n3) m ←(n1 + n2 + n3)/3 escreva(“Média = ”, m) Fim Como calcular a média das notas de 30 alunos ? Solução simplista: executar 30 vezes este algoritmo Solução correta: trabalhar com algoritmo de repetição! Algoritmos e Estruturas de Dados I 2 Algoritmos com Repetição � Algoritmos que repetem uma ou mais instruções. � Todo o algoritmo que tem a execução de um ou mais de seus passos repetido duas ou mais vezes é denominado de algoritmo de repetição (Orth, 2001). Algoritmo com Repetição - Enquanto � Sempre que quisermos realizar uma instrução ou uma sequência de instruções mais de uma vez, necessitamos de uma instrução de repetição. Sequência de Instruções: 1 ou mais instruções quaisquer Enquanto <condição> faça Início <sequencia de instruções> Fim Algoritmos e Estruturas de Dados I 3 � Também é preciso uma variável que conte quantas vezes é executada a “sequência de passos” que se pretende repetir � Esta variável contador deve � receber um valor inicial, � ser incrementada sempre que “a sequência de passos foi repetida”, e � ser comparada ao valor final Algoritmo com Repetição Variável Contador � Também é preciso uma variável que conte quantas vezes é executada a “sequência de passos” que se pretende repetir � Esta variável contador deve � receber um valor inicial �permite iniciar a contagem � ser incrementada sempre que “a sequência de passos foi repetida” � permite contar n vezes � ser comparada ao valor final � permite finalizar a contagem Algoritmo com Repetição Variável Contador Algoritmos e Estruturas de Dados I 4 Exemplo Algoritmo Média inteiro: num, cont real: n1, n2, n3, m Início cont � 0 {inicialização do contador} enquanto (cont < 30) faça Início escreva (“Informe seu número de matrícula e suas três notas”) leia(num, n1, n2, n3) m � (n1 + n2 + n3)/3 escreva(“Média = ”, m) cont � cont + 1 {incremento do contador} Fim Fim Exercício 1 � Faça um algoritmo que leia 20 pares de valores a e b, e para cada par de valores lido escreve qual é o maior valor. SUGESTÃO (1) especificar um algoritmo para determinar o maior de um par de valores … e, só depois, (2) verificar o que é preciso para repetir 20 vezes os passos definidos em (1) Algoritmos e Estruturas de Dados I 5 Exercício 2 � Escreva um algoritmo que lê um número inteiro n. Calcule e escreva a tabuada (de 1 a 10) deste número � No exemplo anterior, caso se queira saber ao final a média geral desta turma, deve-se se utilizar o conceito de variável acumulador. � Variável acumulador é qualquer variável que recebe um valor inicial constante e é incrementada em algum outro ponto do algoritmo de um valor variável. soma � 0 .... ... soma � soma + valor Exemplo: Inicialização da variável acumulador Incremento da variável acumulador de um valor variável Algoritmo com Repetição Variável Acumulador Algoritmos e Estruturas de Dados I 6 Exemplo Algoritmo MédiaGeral inteiro: num, cont real: n1, n2, n3, m, mg, soma Início cont � 0 {inicialização do contador} soma � 0 {inicialização do acumulador} enquanto (cont < 30) faça Início escreva(“Informe seu número de matrícula e suas três notas”) leia(num, n1, n2, n3) m � (n1 + n2 + n3)/3 escreva(“Média = “, m) soma � soma + m {incremento do acumulador} cont � cont + 1 {incremento do contador} Fim mg � soma/30 {calcula média DEPOIS do laço} escreva(“Media Geral = “, mg) Fim Exercício 3 � Escrever um algoritmo que lê o código e o valor de 25 produtos e calcula e apresenta o valor total a ser pago por eles. Algoritmos e Estruturas de Dados I 7 Exercício 4 � Escrever um algoritmo que lê um número n e calcula o somatório de n. Por exemplo: S = 1 + 2 + 3 + 4 + ... + n. Ao final do cálculo, escrever o valor do somatório calculado. Algoritmo com Repetição – Enquanto com número desconhecido de repetições � No exemplo anterior sabíamos exatamente o número de vezes que o laço de repetição deveria ocorrer, mas existem casos em que o número de repetição pode estar condicionado a um valor de entrada. � Por exemplo: ler um conjunto não determinado de números de alunos. O algoritmo deve parar quando o número do aluno for um número negativo. Algoritmos e Estruturas de Dados I 8 Algoritmo MédiaGeralCondicional inteiro: num, cont real: n1, n2, n3, m, mg, soma Início soma � 0 {inicialização do acumulador} cont � 0 {inicialização do contador} escreva(“Informe seu número de matrícula”) leia(num) {leitura da matrícula do aluno ANTES} enquanto (num > 0) faça {número de aluno válido? Continua!} Início escreva(“Informe suas três notas”) leia(n1,n2,n3) m � (n1 + n2 + n3)/3 escreva(“Média = “, m) soma � soma + m {incremento do acumulador} cont � cont + 1 {incremento do contador} escreva(“Informe seu número de matrícula”) leia(num) {novo aluno} Fim mg � soma/cont escreva(“Media Geral = “, mg) Fim Exemplo Comparação dos Algoritmos Enquanto Contado Enquanto Condicional Algoritmo MédiaGeralCONTADA inteiro: num, cont real: n1, n2, n3, m, mg, soma Início cont � 0 soma � 0 enquanto (cont < 30) faça Início escreva(“Informe....”) leia(num, n1, n2, n3) m � (n1 + n2 + n3)/3 escreva(“Média = “, m) soma � soma + m cont � cont + 1 Fim mg � soma/30 escreva(“Media Geral = “, mg) Fim Algoritmo MédiaGeralCONDICIONAL inteiro: num, cont real: n1, n2, n3, m, mg, soma Início soma � 0 cont � 0 escreva(“Informe seu número...”) leia(num) enquanto (num > 0) faça Início escreva(“Informe... notas”) leia(n1,n2,n3) m � (n1 + n2 + n3)/3 escreva(“Média = “, m) soma � soma + m cont � cont + 1 escreva(“Informe seu número...”) leia(num) Fim mg � soma/cont escreva(“Media Geral = “, mg) Fim Algoritmos e Estruturas de Dados I 9 Exercício 5 � Faça um algoritmo que lê uma quantidade não determinada de valores e verifica qual o maior e qual o menor valor digitados. O algoritmo pára quando for digitado o valor 0 (zero). Algoritmo com Repetição - Para � Outra forma de repetição… Para variável de Exp1 até Exp2 [passo Exp3] Início <instruções> Fim � Variável: variável de controle � Exp1, Exp2, Exp3 são constantes ou expressões aritméticas � Exp1 representa o valor inicial � Exp2 representa o valor final � Exp3 representa o valor a ser incrementado a cada iteração. Se não for especificado este item, assume-se o valor 1 Algoritmos e Estruturas de Dados I 10 Algoritmo com Repetição - Para � Na instrução “Para” ocorrem 3 passos: 1) inicialização da variável de controle com o valor inicial igual a Exp1 2) um teste que verifica se o valor da variável de controle já ultrapassou o seu valor final indicado em Exp2 3) a cada nova repetição ocorrerá um incremento da variável de controle de um valor igual ao que esta estabelecido em Exp3 ou de 1 caso não tenha esta especificação Exemplos Para i de 1 até 5 Início Instruções Fim A cada repetição ocorre o incremento de 1 na variável i Para x de a até b passo 2 Início Instruções Fim Para i de n até 1 passo -1 Início Instruções Fim Quando o incremento é negativo o testeé sempre se o valor da variável é menor do que o valor final especificado A cada repetição ocorre o incremento de 2 na variável x Algoritmos e Estruturas de Dados I 11 Exemplo Algoritmo MédiaGeralPARA inteiro: num, cont real: n1, n2, n3, m, mg, soma Início soma � 0 Para cont de 1 até 30 Início escreva(“Informe...”) leia(num, n1, n2, n3) m � (n1 + n2 + n3)/3 escreva(“Média = “, m) soma � soma + m Fim mg � soma/30 escrever(“Media Geral = “, mg) Fim Qual o valor de cont após o laço de repetição? Exercício � Modifique os exercícios 1, 2 e 3 para que eles sejam realizados com a instrução Para. Algoritmos e Estruturas de Dados I 12 Algoritmo com Repetição - Repita � Além do “Enquanto” e do “Para” podemos ainda usar o “Repita” Repita Inicio <instruções> Fim até <condição> Exemplo Algoritmo MédiaGeralPARA inteiro: num, cont real: n1, n2, n3, m, mg, soma Início cont � 0 soma � 0 Repita Inicio escreva(“Informe...”) leia(num, n1, n2, n3) m � (n1 + n2 + n3)/3 escreva(“Média = “, m) soma � soma + m cont� cont + 1 Fim Até cont == 30 mg � soma/30 escrever(“Media Geral = “, mg) Fim Enquanto Contado Algoritmo MédiaGeralCONTADA inteiro: num, cont real: n1, n2, n3, m, mg, soma Início cont � 0 soma � 0 Enquanto (cont < 30) faça Início escreva(“Informe....”) leia(num, n1, n2, n3) m � (n1 + n2 + n3)/3 escreva(“Média = “, m) soma � soma + m cont � cont + 1 Fim mg � soma/30 escreva(“Media Geral = “, mg) Fim Repita Algoritmos e Estruturas de Dados I 13 Bibliografia � Orth, Afonso Inácio. Algoritmos e Programação. Editora AIO. 2001. � Forbellone, A. e Eberspacher, H. Lógica de Programação: A Construção de Algoritmos e Estruturas de Dados. Makron Books, São Paulo, 3ª edição. 2005.
Compartilhar