Buscar

Aulas 10 e 11 - Estrutura de repetição

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Curso : Análise e desenvolvimento de Sistemas
ALGORITMOS - CCT0001
Aulas 10 e11
Estrutura de repetição
Profª. Marília S. Mendes
mariliamendes@gmail.com
26/09/2012
1
Estrutura de repetição
Importância
Os conceitos ensinados permitem desenvolver algoritmos que repitam um conjunto de instruções
Objetivo
Introduzir as três estruturas de repetição que podem ser usadas em um algoritmo
Enquanto/Faça
Repita/Até
Para/Faça
26/09/2012
2
Estrutura de repetição
Como escrever algoritmos
que façam iteração 
de instruções?
26/09/2012
3
Estrutura de repetição
Existem situações que o processamento de um valor uma única vez não é suficiente para resolver o problema. 
Quando isto ocorre, deve-se utilizar uma estrutura de repetição.
Estruturas de repetição permitem que um ou mais instruções sejam executadas um número definido de vezes, ou enquanto uma determinada condição não é alcançada.
26/09/2012
4
Estrutura de repetição
As estruturas de repetição também são conhecidas como Laços ou Loops
As estruturas de repetição das linguagens de programação são de dois tipos:
Condicional 
Repetem até satisfazer a condição de repetição
São usadas quando não se sabe previamente quantas vezes deve-se executar as instruções do bloco de repetição
Contada
Repetem um número contado (pré-definido) de vezes
São usadas quando se sabe previamente quantas vezes deve-se executar as instruções do bloco de repetição
26/09/2012
5
Estrutura de repetição
As estruturas de repetição condicional podem executar seus testes:
No Início
Enquanto/Faça 
No Fim
Repita/Até
As estruturas de repetição contada utilizam uma variável para controlar a quantidade de repetições
Para/Faça
26/09/2012
6
Estrutura de Repetição – 
Enquanto/Faça
Semântica: 
Faz o teste no início do laço. Se o resultado for V as instruções do laço e/são executadas. Volta-se para o início do laço e testa-se novamente a sua condição. Isto é repetido enquanto a condição testada for V.
Estrutura de Repetição – 
Enquanto/Faça
Sintaxe
Enquanto (<condição>) faça
	<Comando1>;
	<Comando 2>;
		....
	<Comando N>;
FimEnquanto
Exemplo 1:
 	n <- 1;
Enquanto (n<=10) faça
	escreva (n);
	n <- n + 1;
FimEnquanto
Os comandos serão executados 10 vezes.
Estrutura de Repetição – 
Comando Enquanto/Faça
26/09/2012
9
Estrutura de Repetição – 
Comando Enquanto/Faça
Fluxograma
Pseudocódigo
enquanto(CONT< 100)faça
escreva(“Digite o número:”);
leia (NUM);
SOMA <- SOMA + NUM;
CONT<-CONT+ 1;
fim_enquanto
Estrutura de Repetição – 
Comando Enquanto/Faça
Os comandos que estão no “lado S” do comando enquanto, são aqueles que serão repetidos. No exemplo do slide anterior, um comando leia e dois comandos de atribuição de valores.
A condição para repetição é a seguinte: enquanto a variável CONT apresentar valor menor do que 100, os comandos devem ser repetidos.
Na prática acontece o seguinte: é realizado o teste lógico para determinar se a condição é verdadeira. Se a condição for verdadeira ele executa os comandos que estão no “lado S” e volta para o teste lógico da condição. Caso continue verdadeiro, repete e testa novamente, caso a condição se apresente como falsa, ele interrompe a repetição (“vai para o lado ‘N’”) e continua a sequencia normal de comandos.
Estrutura de Repetição – 
Comando Enquanto/Faça
Resumindo... 
Não se sabe de antemão quantas vezes o bloco de repetição será executado. Isto é, ele pode ser executado várias vezes ou nenhuma vez
Testa a condição antes de entrar na estrutura de repetição
Repete a execução do bloco de instruções toda vez que condição for V
O bloco de instruções A execução do bloco é finalizada quando a condição for F
Estrutura de Repetição – 
Repita/Até
Semântica: 
Efetua um teste lógico no fim do laço, garantindo que pelo menos uma vez as instruções deste são executadas. Ao contrário do enquanto, esta só repete o laço se o resultado do teste for F
Estrutura de Repetição – 
Repita/Até
Sintaxe
Repita
	<Comando1>;
	<Comando 2>;
	...
	<Comando N>;
Até (<Condição>)
Exemplo :
 n <- 1;
Repita
	 Escreva n;
 n <- n + 1;
Até (n > 10)
O comando será executado 10 vezes.
Estrutura de Repetição – 
Repita/Até
26/09/2012
15
Estrutura de Repetição – 
Comando Repita/Até
Fluxograma
Pseudocódigo
repita
escreva(“Digite o número:”);
leia (NUM);
SOMA <- SOMA + NUM;
CONT<-CONT+ 1;
até(CONT> = 100)
Estrutura de Repetição – 
Comando Repita/Até
Esse comando executa pelo menos uma vez os comandos a serem repetidos. Isso nem sempre é interessante para o funcionamento do algoritmo.
Como ele funciona de modo inverso ao comando enquanto, observe que a condição testada é exatamente o inverso para a mesma situação.
O “lado N” (quando o comando volta para repetir os comandos) não pode ter nenhum comando.
Estrutura de Repetição – 
Comando Repita/Até
Resumindo... 
Não se sabe de antemão quantas vezes o bloco de repetição será executado. Todavia é garantido que ele será executado pelo menos uma vez
Testa a condição depois de entrar na estrutura de repetição
Repete a execução do bloco de instruções toda vez que a condição for F
A execução do bloco é finalizada quando a condição for V
Observações importantes
Toda repetição condicional pode ser representada por uma estrutura do tipo Enquanto/Faça ou Repita/Até. Todavia, perceba que a primeira repete somente quando a condição é V e a segunda somente quando a condição é F. Por isso, a condição de uma é a negação da outra!
Nos laços condicionais a variável que é testada, deve estar sempre associada a uma instrução que a atualize no interior do laço. Pois, se isto não ocorrer, o algoritmo ficará repetindo indefinidamente este laço, gerando uma situação conhecida como “laço/loop” infinito”
Exercícios
Faça um algoritmo para imprimir os números pares entre 10 e 20.
Algoritmo
Var
	inicio
	n<-10
	enquanto(n<=20)faça
	 escreva(n)
	 n<-n+2
Fimenquanto
fim
20
Exercícios
2. Faça um algoritmo para escrever os números múltiplos de 5 entre 1 e 100.
Exercícios
3. Faça um algoritmo que mostre quantos números múltiplos de 3 existem entre 1 e 100.
Exercícios
4. Faça um algoritmo para ler a idade de 5 amigos de uma sala, fazer a média e imprimir.
Teste de Mesa
Nem sempre será possível ter em mão ferramentas computacionais para testar os algoritmos. Nessa situação, é necessário testar o programa utilizando apenas “papel e caneta”, ou seja, simular o funcionamento do programa no papel.
Teste de Mesa
Crie uma tabela onde cada linha tenha o nome de uma das variáveis do algoritmo. Todas as variáveis devem ser colocadas na tabela. 
Observe se a quantidade de vezes que se deseja repetir é alta. Se for, altere para uma quantidade menor, e possível de ser testada em um tempo razoável. 
Toda entrada de dados (comando leia) indica que um valor será inserido pelo usuário, ou seja, não é possível determinar qual será esse valor, então, cada vez que um comando leia for encontrado é necessário determinar um valor qualquer para a variável de entrada (“chutar o valor”).
Seguir o algoritmo comando por comando, do início até o fim, fazendo o que os comandos determinam que deve ser feito. Só parar o teste quando encontrar o comando fim.
Cada vez que ocorrer um comando de entrada de dados ou de atribuição de valor, na tabela, alterar o valor da variável utilizada pelo comando. Lembre que esses comandos substituem o valor anteriormente armazenado na variável.
Quando ocorrerem comandos que tenham condições a serem testadas, testar a condição.
Chegando ao final do algoritmo, conferir se foram apresentados os resultados corretos (esperados).
Com isso é possível garantir que o algoritmo funciona corretamente.
INDENTAÇÃO
Observações para construção de algoritmos
Ler atentamente a especificação do problema até compreende-lo.
Ler novamente, anotando os pontos fundamentais:
Variáveis, Constantes, Decisões, Repetições e Condições de Parada
Escrever em português, da forma que desejar, a entrada, o processamento e a saída dos resultados desejados
Ao fim deste passo, deverá ser possível visualizar todas as estruturas de decisão e repetição necessárias
ao algoritmo final
Escrever o algoritmo em pseudo-código
Importante: veja se variáveis foram inicializadas e se as expressões lógicas das estruturas de decisão e de repetição estão corretas
Verifique a corretude do algoritmo
Aplique a técnica de teste de mesa
Exercícios
5. Faça um algoritmo que:
Leia um número indeterminado de linhas contendo cada idade de um indivíduo. A última linha, que não entrará nos cálculos terá valor da idade igual a zero.
Calcule e escreva a idade média desse grupo de indivíduos.
Encadeando as Estruturas de Repetição
Encadeando Diversas Estruturas
Encadeando Diversas Estruturas
Encadeando Diversas Estruturas
Exercícios
6. Faça um algoritmo que leia 20 números inteiros e mostre qual é a média desses números.
7. Faça um algoritmo que leia o nome e o sexo de 56 pessoas e informe o nome e se ela é homem ou mulher. No final informe total de homens e de mulheres..
8. Faça um algoritmo que leia 15 números inteiros e mostre qual foi o maior e o menor valor fornecido.
9. Faça um algoritmo que apresente a tabuada de um número N. O valor de N será apresentado pelo usuário.
10. Faça um algoritmo para ler 10 números e mostrar a quantidade dos números maiores que 100.
Exercícios
11. Faça o algoritmo que apresente o peso total que será carregado por um caminhão. Sabe-se que esse caminhão carrega 25 caixas, com pesos diferentes. 
12. Escreva um algoritmo que receba o preço e a quantidade de 20 diferentes produtos e mostre o valor total da compra.
13.Escreva um algoritmo que solicite ao usuário que digite o seu login e a sua senha. Caso o login e a senha estejam errados, pedir para digitar novamente. Caso estejam corretos, escrever: “Login efetuado com sucesso.” O login deve ser o seu nome e a senha deve ser a palavra “digital”.
Exercícios
14. Faça o algoritmo que controle a entrada de pessoas em um elevador. O algoritmo receberá, como dado de entrada, o peso de cada pessoa que entra no elevador e essa entrada só vai ser encerrada quando o elevador não suportar mais a entrada de pessoas (limite ultrapassado).
As limitações de entrada de pessoas no elevador são duas:
O peso máximo suportado pelo elevador é de 1.250 kg;
A quantidade máxima de pessoas suportada pelo elevador é de 15 pessoas.
Quando algum dos limites for superado, o programa deve indicar o peso e a quantidade de pessoas que o elevador irá carregar (lembre que a última pessoa que entrou no elevador teve que sair dele).
Exercícios
15. Escreva um algoritmo que receba uma quantidade indeterminada de números positivos e diga quantos deles estão no intervalo de 0 a 25, quantos estão no intervalo de 26 a 50 e quantos são maiores que 50. O algoritmo deve parar quando o usuário digitar um número negativo.
16. Escreva um algoritmo que receba um número diversas vezes e mostre o seu inverso (1/n). O algoritmo encerra quando o valor digitado é zero, exibindo uma mensagem de erro que diz que não se pode dividir por zero.

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais