Algoritmos e Estruturas de Dados I – Estrutura de Repetição Profa. Mercedes Gonzales Márquez.

Slides:



Advertisements
Apresentações semelhantes
Estruturas de Controle
Advertisements

Estruturas de Repetição
LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS INSTRUÇÕES DE CONTROLE – PARTE I Prof. Thiago Pereira Rique
Algoritmos.
Introdução a Algoritmos Seqüenciais
Programação de Computadores - 3
Estruturas de repetição
Lógica de Programação Módulo II
Introdução à Lógica de Programação (cont.)
Estruturas de Controle
THOBER CORADI DETOFENO, MSC. Aula 07
EQUAÇÕES POLINOMIAIS Prof. Marlon.
Rodrigo de Toledo (original: Claudio Esperança)
Lógica de Programação Módulo II
O Portal do Estudante de Computação
Algoritmos e Estruturas de Dados I – Estruturas de Dados
Algoritmos e Estruturas de Dados I – Estruturas de Controle de Fluxo
Professor: Juliano Lucas Gonçalves
Comandos de Repetição Comando Para-Faça
Linguagem de Programação II Parte IV
Linguagem de Programação I Parte III
Estruturas de Repetição
Estruturas de Dados Módulo 3 – Controle de Fluxo
Operadores Relacionais, Lógicos e comandos de condição
Instituto Federal de Santa Catarina
Aula 6 - Estruturas de Controle
Algoritmos e Estruturas de Dados I – Recursão
Linguagem de Programação JAVA
Estrutura de Decisão Multipla
Algoritmos e Estruturas de Dados I – Recursão
Faculdade Talentos Humanos - FACTHUS - Algoritmo I - Rogério Rodrigues
BC-0505 Processamento da Informação
Algoritmos e Estruturas de Dados I – Estrutura Condicional
BC-0505 Processamento da Informação
Algoritmos e Estrutura de Dados I
Algoritmos e Estruturas de Dados I – Estruturas de Dados
Algoritmos e Estruturas de Dados I – Estruturas de Controle de Fluxo
Algoritmos - exercícios
Algoritmos e Estruturas de Dados I – Estrutura de Repetição
Algoritmos Comandos de repetição.
Algoritmo e Programação
Aula 5 - Exercícios Prof. Leandro M. Almeida.
Algoritmos e Estruturas de Dados I – Estrutura de Repetição
Algoritmos e Estruturas de Dados I – Estruturas de Dados
Fundamentos de linguagens de programação
Algoritmos.
Algoritmos e Estruturas de Dados I – Estruturas de Controle de Fluxo
Profa. Mercedes Gonzales Márquez
Lógica de Programação EAGS SIN – Módulo II
Introdução a Programação
Informática e Computação Aula Estrutura de Repetição
Algoritmo e Estrutura de Dados I
Exercícios (Algoritmo Narrativo, Fluxograma e Pseudocódigo) RESOLVIDO
Algoritmos e Programação I
ALGORITMOS Profº Antonio Carlos Marcelino de Paula.
Fundamentos de Programação Aula 4. 2 Conteúdo Estruturas Básicas de Programação –Repetição, laço, loop ou iteração Exercícios.
Linguagem de Programação I Parte IV
Exercícios Faça um algoritmos para trocar uma lampada queimada.
Algoritmos – Exercícios
Andréa Iabrudi 1 Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Programação de Computadores I.
Metodologia da Pesquisa em Ensino de Ciências I
Algoritmos – Aula 04 Comandos de repetição.
Comandos de Repetição (While, Do..While e For)
Estrutura de Repetição
1 Estruturas de Controle Algoritmos Algoritmos –Série de ações em uma ordem específica As ações executadas Ordem na qual as ações são executadas.
1Unidade 04 – Estruturas de Repetição Algoritmos e Linguagens de Programação Estruturas de Repetição Prof.: Guilherme Baião S. Silva
Lógica de programação Introdução à lógica de programação
Conteúdo de Laços de Repetição para os alunos do 7º ano EVL.
Lógica de Programação Aula 06 Prof. Marcelo Marcony.
Transcrição da apresentação:

Algoritmos e Estruturas de Dados I – Estrutura de Repetição Profa. Mercedes Gonzales Márquez

Estrutura de Repetição Referência bibliográfica : SALVETTI/BARBOSA e HARRY FARRER Execução de uma seqüência de ações repetidas vezes. O computador abandona o fluxo natural da execução (de cima para baixo) e volta a executar a seqüência de ações desejada. Pode apresentar duas formas: 1.Repetição com variável de controle: O número de repetições no loop (laço) está previamente determinado pelo valor inicial e pelo valor final da variável de controle. 2.Repetição controlada por condição Não sabemos a-priori quantas vezes executar a repetição. A execução do loop deve ser controlada por uma condição. A condição pode controlar a interrupção da repetição no início ou no final da sequência de comandos desta.

Repetição com variável de controle 1. Repetição com variável de controle Formato : Formato : Para v_controle de v_inicial até v_final passo v_passo repita Para v_controle de v_inicial até v_final passo v_passo repita sequência de comandos sequência de comandos Fim para Fim para O número de repetições no loop (laço) está previamente determinado pelo valor inicial e pelo valor final da variável de controle. Quando valor_passo é 1, podemos omitir a especificação de passo.

Repetição com variável de controle Exemplo: Exemplo: Algoritmo Algoritmo inteiro: i Inicio Para i de 1 até 5 repita escreva (i) escreva (i) Fim Para Fim ParaFim

Repetição com variável de controle Exercício 2. (1º forma) Faça um algoritmo que imprima os 4 primeiros números inteiros pares positivos. Algoritmo Algoritmo inteiro: i Inicio Para i de 1 até 4 repita escreva (2*i) escreva (2*i) Fim Para Fim

Repetição com variável de controle Exercício 2. (2º forma) Faça um algoritmo que imprima os 4 primeiros números inteiros pares positivos. Algoritmo Algoritmo inteiro: i Inicio Para i de 2 até 8 passo 2 repita escreva (i) escreva (i) Fim Para Fim

Repetição com variável de controle Exercício 2. (3º forma) Faça um algoritmo que imprima os 4 primeiros números inteiros pares positivos. Algoritmo Algoritmo inteiro: i,n Inicio n←0 Para i de 1 até 4 repita n ←n+2 escreva (n) escreva (n) Fim Para Fim

Repetição com variável de controle Exercício 3. Faça um algoritmo que imprima a soma dos 4 primeiros números inteiros positivos. Algoritmo Algoritmo inteiro: i,s Inicio s←0 Para i de 1 até 4 repita s ←s+i Fim Para escreva (s) Fim is

Exercício 4. Faça um algoritmo que imprima a soma dos 4 primeiros números inteiros pares positivos. is Algoritmo Algoritmo inteiro: i,s Inicio s←0 Para i de 1 até 4 repita s ←s+2*i Fim Para escreva (s) Fim Repetição com variável de controle

Exercício 5. Faça um algoritmo que imprima a soma dos n primeiros números inteiros pares positivos. Algoritmo Algoritmo inteiro: i,s,n Inicio leia (n) s←0 Para i de 1 até n repita s ←s+2*i Fim Para escreva (s) Fim Repetição com variável de controle

Exercício 6. Faça um algoritmo que imprima a soma dos n primeiros números inteiros ímpares positivos. Algoritmo Algoritmo inteiro: i,s,n Inicio leia (n) s←0 Para i de 1 até n repita s ←s+2*i-1 Fim Para escreva (s) Fim Repetição com variável de controle

Algoritmo Algoritmo inteiro: i,s Inicio s ←1 Para i de 1 até 100 repita s ←s+1/(2*i) Fim Para Fim Exercício 7. Desenvolver um algoritmo para calcular a soma: Repetição com variável de controle

Exercício 8. Tem-se a altura e o nome de 50 pessoas. Fazer um algoritmo que escreva o nome da pessoa mais alta. Se tiver mais de uma pessoa possuíndo a maior altura, escreva o nome de quaisquer delas. Algoritmo Algoritmo inteiro: i Literal: nome,nomemaisalta Real:altura, maioraltura Inicio maioraltura←0 Para i de 1 até 50 repita leia (nome,altura) se (altura>maioraltura) então maioraltura←altura nomemaisalta←nome fim se Fim Para escreva (nomemaisalta,maioraltura) Fim Repetição com variável de controle

Exercício 9. Num frigorífico existem 90 bois. Cada boi traz preso no pescoço um cartão contendo seu número de identificação e seu peso. Fazer um algoritmo que escreva o número e peso do boi mais gordo e do boi mais magro. Algoritmo Algoritmo inteiro: i,numero,gordo,magro Real:peso,pesomenor, pesomaior Inicio pesomenor←10000 pesomaior←0 Para i de 1 até 90 repita leia (numero,peso) se (peso>pesomaior) então pesomaior←peso gordo←numero fim se se (peso<pesomenor) então pesomenor←peso magro←numero fim se Fim Para escreva (gordo,pesomaior) escreva (magro,pesomenor) Fim Repetição com variável de controle

Exercício 10. Exercício 10. Deseja-se fazer um levantamento a respeito da ausência de alunos à primeira prova de Programação de Computadores para cada uma das 14 turmas existentes. Para cada turma é fornecido um conjunto de valores sendo que os dois primeiros valores do conjunto correspondem à identificação da turma (A, ou B. ou C.... ) e ao número de alunos matriculados, e os demais valores deste conjunto contêm o número de matrícula do aluno e a letra A ou P para o caso de o aluno estar ausente ou presente, respectivamente. Fazer um algoritmo que: para cada turma, calcule a porcentagem de ausência e escreva a identificação da turma e a porcentagem calculada;. determine e escreva quantas turmas tiveram porcentagem de ausência superior a 5%.. Repetição com variável de controle

Exercício 11. Sendo H=1+1/2+1/3+1/ /N faça um algoritmo para calcular H. O número N é lido. Algoritmo Algoritmo inteiro: i,n real: H Inicio leia (n) H ←0 Para i de 1 até n repita H ←H+1/i Fim Para escreva (H) Fim Repetição com variável de controle

Exercício 12. Faça um algoritmo que calcule a seguinte soma ( o símbolo representa somatório. Algoritmo Algoritmo inteiro: i,s Inicio s ←0 Para i de 1 até 10 repita s ←s+i**2 Fim Para Fim Resolvendo o somatório Repetição com variável de controle Resolvendo o somatório

Exercício 13. Faça um algoritmo que calcule e escreva o valor da seguinte somatória Algoritmo Algoritmo inteiro: i,s Início s ←0 Para i de 0 até 4 repita s ←s+2**i/3**i Fim Para Fim -Procurando uma fórmula Algoritmo Algoritmo inteiro: i,s Início s ←1 Para i de 1 até 4 repita s ←s+2**i/3**i Fim Para Fim ou Repetição com variável de controle

Exercício 14. Faça um algoritmo que calcule e escreva o valor da seguinte somatória -Procurando uma fórmula Algoritmo Algoritmo inteiro: i,s Início s ←1 Para i de 1 até 4 repita s ←s+2**i/3**(i+1) Fim Para Fim Repetição com variável de controle

Exercício 15. Faça um algoritmo que calcule e escreva o valor da seguinte somatória -Procurando uma fórmula Algoritmo Algoritmo inteiro: i,s Início s ←1 Para i de 1 até 4 repita s ←s+2**i/3**(5-i) Fim Para Fim Repetição com variável de controle

Exercício 16. Faça um algoritmo que calcule e escreva o valor da seguinte somatória -Procurando uma fórmula Algoritmo Algoritmo inteiro: i,s Início s ←1 Para i de 1 até 4 repita s ←s+(-1 )**i*2**i/3**i Fim Para Fim Algoritmo Algoritmo inteiro: i,s Início s ←1 Para i de 1 até 4 repita s ←s+(-2)**i/3**i Fim Para Fim Repetição com variável de controle

Exercício 17. Faça um algoritmo que calcule e escreva o valor da seguinte somatória Algoritmo Algoritmo inteiro: i,s Inicio s ←0 Para i de 1 até 15 repita s ←s+2**(i-1)/(16-i)**2 Fim Para Fim -Procurando uma fórmula Repetição com variável de controle

Exercício 18. Exercício 18. O sistema de avaliação de uma determinada disciplina obedece aos seguintes critérios: durante o semestre são dadas três notas;. a nota final é obtida pela média aritmética das notas dadas durante o curso; é considerado aprovado o aluno que obtiver a nota final superior ou igual a 6.0 e que tiver comparecido a um mínimo de 40 aulas. Fazer um algoritmo que: a) Leia um conjunto de dados contendo o número de matrícula, as três notas e a frequência (número de aulas frequentadas) de 100 alunos. b) Calcule: a nota final de cada aluno; a maior e a menor nota da turma; a nota média da turma; o total de alunos reprovados; a porcentagem de alunos reprovados por infrequência. c) Escreva: para cada aluno, o número de matrícula, a frequência, a nota final e o código (aprovado ou reprovado) o que foi calculado no Item b (2, 3, 4 e 5). Repetição com variável de controle

Exercício 19. Exercício 19. Uma companhia de teatro planeja dar uma série de espetáculos. A direção calcula que, a RS 5,00 o ingresso, serão vendidos 120 ingressos, e as despesas montarão em RS 200,00. A uma diminuição de RS 0,50 no preço dos ingressos espera-se que haja um aumento de 26 ingressos vendidos. Fazer um algoritmo que escreva uma tabela de valores do lucro esperado em função do preço do ingresso, fazendo-se variar este preço de R$ 5,00 a R$ 1.00 de RS 0,50 em RS 0,50. Escreva, ainda. O lucro máximo esperado, o preço e o número de ingressos correspondentes. Repetição com variável de controle

Exercício 20. Exercício 20. O número 3025 possui a seguinte característica: Algoritmo inteiro: i Inicio Para i de 1000 até 9999 repita Se (((mod(i,100)+div(i,100))**2)=i) escreva (i) Fim se Fim Para Fim Repetição com variável de controle Faça um algoritmo que pesquise e imprima todos os números de quatro algarismos que apresentam tal característica.

Exercício 21. Partindo-se de um único casal de coelhos filhotes recém-nascidos e supondo que um casal de coelhos torna-se fértil após dois meses de vida, a partir de então, produz um novo casal a cada mês e que os coelhos nunca morrem, a quantidade de casal de coelhos após n meses é dado pelo n-ésimo termo da seguinte sequência: Essa seqüência chama-se seqüência de Fibonacci. Repetição com variável de controle

(a) Mostre como os termos dessa série correspondem à solução do problema proposto. meses Repetição com variável de controle

Algoritmo Algoritmo inteiro: i,n,fibonacci,fib0,fib1 Inicio leia (n) fib0 ←1 fib1←1 Para i de 2 até n repita fibonacci ←fib0+fib1 fib0 ←fib1 fib1 ←fibonacci Fim Para Fim b) Redija um algoritmo para calcular a quantidade de casais de coelhos após n meses. Repetição com variável de controle

Exercício 22. Faça um algoritmo que Exercício 22. Faça um algoritmo que calcule o valor do seno de A através da seguinte série: O valor de A e o número N de termos da série devem ser lidos. Algoritmo inteiro: i,n real: A Inicio leia (n,A) soma←A den←1 num←A Para i de 2 até n repita num← -num*A*A den←den*(2*i-1)*(2*i-2) soma←soma+num/den Fim Para Fim Repetição com variável de controle

Repetição controlada por condição As vezes precisamos que nosso algoritmo realize uma certa quantidade de repetições, mas não sabemos o número exato de repetições necessárias. Exemplo: Faça um algoritmo que determine os quadrados de um conjunto de números inteiros positivos. Neste caso não podemos usar a estrutura de repetição com variável de controle pois o conjunto de dados de entrada é formado por um número desconhecido de elementos. Não é fornecida pelo usuário a quantidade de números existem no conjunto. O que desejamos é repetir o bloco de comandos (leitura, comandos, saída) enquanto existir um número inteiro positivo na lista de entrada dos dados.

Repetição controlada por condição Nestes casos usamos a repetição controlada por condição. Repetição controlada por condição. Não sabemos a-priori quantas vezes executar a repetição. A execução do loop deve ser controlada por uma condição. Esta repetição é também chamada de repetição controlada por sentinela ou flag. No exemplo, a condição para interromper a repetição é que o número não seja positivo. O valor sentinela será então qualquer número que não seja positivo. Por exemplo, o número zero ou o número -1.

Representamos essa estrutura de repetição através de uma das duas instruções: (1) enquanto-faça (2) repita-até-que. As duas instruções são equivalentes. Entretanto, há situações em que uma é preferível à outra. Repetição controlada por condição

Instrução Enquanto-Faça Formato. Enquanto faça Fim enquanto Nesta instrução, só é executado se for verdadeira. Antes de ser executado pela primeira vez é necessário que a esteja definida. Se na primeira vez em que a for testada ela for falsa, o loop não é executado nenhuma vez. Dentro do loop deve existir uma instrução que altera o valor da, caso contrário, o loop pode se tornar de execução infinita (não parar). Repetição controlada por condição

Exemplo 1. Faça um algoritmo que determine os quadrados de um conjunto de números inteiros positivos. Algoritmo inteiro: numero Inicio leia (numero) enquanto (numero>0) faça escreva (numero*numero) leia (numero) fim enquanto Fim Repetição controlada por condição

Exemplo 2: Faça um algoritmo que leia uma lista de números inteiros. A leitura de dados terminará quando for ingressado o número zero (flag). Pede-se a soma e a média de todos os números lidos (excluindo o zero). Algoritmo inteiro: numero,soma,cont real: media Inicio cont ←0 soma ←0 leia (numero) enquanto (numero<>0) faça soma ← soma+numero cont ← cont+1 leia (numero) fim enquanto se (cont>0) então media ←soma/cont escreva (media) fim se Fim Repetição controlada por condição

Exercício 3. Exercício 3. Escrever um algoritmo que receba dois números inteiros positivos, e determine o produto dos mesmos, utilizando o seguinte método de multiplicação: dividir, sucessivamente, o primeiro número por 2, até que se obtenha 1 como quociente; paralelamente, dobrar, sucessivamente, o segundo número; somar os números da segunda coluna que tenham um número ímpar na primeira coluna. O total obtido é o produto procurado. Exemplo:9 x 6 9 6→ →+48 ___ 54 Repetição controlada por condição

Algoritmo inteiro: i,a,b,pro Inicio leia (a,b) pro←0 Enquanto (a<>1) faça Se (mod(a,2)<>0) então pro←pro+b Fim se a←div(a,2) b←b*2 Fim enquanto pro ←pro+b Fim Repetição controlada por condição

Exemplo 4: Faça um algoritmo que encontre a primeira potência de 2 maior que Repetição controlada por condição

Exemplo 5: Faça um algoritmo que calcule a soma dos divisores de um número n, exceto ele próprio. Algumas observações se fazem necessárias: (A) Se um número inteiro X possui um divisor Y menor que sua raiz quadrada, o quociente da divisão de X por Y será maior que a raiz quadrada de X e será, também, um divisor de X. (B) Se um número inteiro X possui um divisor Y igual a sua raiz quadrada, o quociente da divisão de X por Y será o próprio divisor Y.

Solução 1. Algoritmo inteiro:n, soma,divisor Inicio leia (n) soma←1 divisor←1 Enquanto (divisor<n)) faça Se (mod(n,divisor)=0) então soma←soma+divisor Fim se divisor←divisor+1 Fim enquanto Fim Repetição controlada por condição

Algoritmo inteiro:n, soma,divisor Inicio leia (n) soma←1 divisor←2 Enquanto (divisor<sqr(n)) faça Se (mod(n,divisor)=0) então soma←soma+divisor+div(n,divisor) Fim se divisor←divisor+1 Fim enquanto se (divisor=sqr(n)) soma ←soma+divisor fim se Fim Repetição controlada por condição

Exemplo 6: Faça um algoritmo que determine se um número inteiro n é um número primo. Um número inteiro X é um número primo se ele possui como únicos divisores 1 e ele próprio.

Solução 1. Algoritmo inteiro:n,j logico:primo Inicio leia (n) primo←1 Para j de 2 até n-1 repita Se (mod(n,j)=0) entáo primo←0 Fim se Fim enquanto Se (primo) então escreva (“O número é primo”) Fim se Fim Repetição controlada por condição

Solução 2. Algoritmo inteiro:n,j Inicio leia (n) j←2 Enquanto (j 0) faça j←j+1 Fim enquanto Se (mod(n,j)=0 && j<=sqr(n)) então escreva (“O número não é primo”) Fim se Fim Repetição controlada por condição

Exemplo 7: São dados um número n e quatro outros, “a”, “b”, “c”, e “d”, correspondentes, respectivamente, às extremidades dos intervalos [a,b] e [c,d], sendo a ?

Quando temos um único valor n. Algoritmo inteiro:n Inicio leia (n) se (n>=c e n<=b) então Escreva (“n pertence a ambos intervalos”) senão se (n>=a e n<=b) então Escreva (“n pertence ao intervalo [a b]”) senão se (n>=c e n<=d) então Escreva (“n pertence ao intervalo [c d]) senão Escreva (“n não pertence a nenhum dos dois intervalos”) Fim se Fim Repetição controlada por condição

Faça para vários valores de n conforme pede o enunciado. Repetição controlada por condição

Instrução Repita-Até-Que Formato. repita até que Nesta instrução, pelo menos uma vez porque somente após a sua execução a é testada. Dentre as instruções do loop deve existir pelo menos uma que altere o valor de. Para o mesmo problema as condições de controle dos comandos enquanto-faça e repita-até-que são condições complementares. Observe que a negação de A>0 é A<=0 e vice-versa. Repetição controlada por condição

Algoritmo inteiro: numero Inicio leia (numero) repita escreva (numero*numero) leia (numero) até que (numero<=0) Fim Algoritmo inteiro: numero Inicio leia (numero) enquanto (numero>0) faça escreva (numero*numero) leia (numero) fim enquanto Fim Exemplo comparativo.- Faça um algoritmo que determine os quadrados de um conjunto de números inteiros positivos. Observe que a primeira estrutura de repetição (enquanto-faça) é mais conveniente para resolver o problema proposto. Repetição controlada por condição

Exercício2: Suponha que no ano N a população americana seja maior que a brasileira. Sabendo-se que os Estados Unidos possuem um crescimento anual de 2% na sua população e que o Brasil tem crescimento anual de 4%, determinar o ano em que as duas populações serão iguais (em quantidade). São dados os números de habitantes dos Estados Unidos e do Brasil no ano N. Algoritmo inteiro: ano,br,am Inicio leia (ano,br,am) enquanto (am>br) faça am ←am*1.02 br ←br*1.04 ano ←ano+1 fim enquanto escreva (ano) Fim Algoritmo inteiro: ano,br,am Inicio leia (ano,br,am) repita br ←br*1.04 am ←am*1.02 ano ←ano+1 até que (br>=am) escreva (ano) Fim

1. Se usarmos repita-até-que, as duas populações primeiro sofrem um acréscimo, e depois o teste da condição será executado. Esta instrução é indicada se considerarmos sabido que inicialmente a população americana é de fato maior que a população brasileira. 2. Se usarmos enquanto-faça Se os valores de entrada fossem desconhecidos, esta instrução é mais adequada, pois primeiro o teste da condição é efetuado e conforme o resultado do teste o bloco será ou não executado dentro do loop. Repetição controlada por condição