1
Estruturas de RepetiçãoEstruturas de Repetição -- IIII
Programação I
ALG
2
Variáveis contadoras
Uma variável é chamada d...
2
7
Variáveis contadoras
Solução
Serão necessárias 10 leituras. Podemos criar uma variável
contadora para controlar este l...
3
13
Variáveis acumuladoras
Solução
Variáveis
num, maior : real;
Início
escrever “Para sair, entre com -1”;
escrever “Entr...
4
19
Repetições encadeadas
Exercício
Escreva o algoritmo anterior em VisuAlg e observe o seu
funcionamento. Em seguida, mo...
5
25
Comando PARA em VisuAlg
Este outro exempo, no entanto, funcionará por causa
do passo -1:
algoritmo "Numeros de 10 a 1...
Upcoming SlideShare
Loading in …5
×

Alg aula 05-2 - estruturas de-repeticao tp1 (para)

17,326 views

Published on

1 Comment
1 Like
Statistics
Notes
  • olá!
    sou muito iniciante nisso tudo e meu professor me passou um algoritmo que não consigo resolver no visualg com laço. Pode me ajudar?

    ele quer que façamos um algoritmo usando enquanto, repita, ou para. o algoritmo deve receber números e só parar de receber quando dermos entrada a um número maior que 200 e no fim devemos escrever o menor valor digitado.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
17,326
On SlideShare
0
From Embeds
0
Number of Embeds
84
Actions
Shares
0
Downloads
58
Comments
1
Likes
1
Embeds 0
No embeds

No notes for slide

Alg aula 05-2 - estruturas de-repeticao tp1 (para)

  1. 1. 1 Estruturas de RepetiçãoEstruturas de Repetição -- IIII Programação I ALG 2 Variáveis contadoras Uma variável é chamada de contadora quando armazena dentro de si um número referente a uma certa quantidade de elementos ou iterações. Este tipo de variável é muito comum em estruturas de repetição, dada as suas diversas aplicações em problemas que envolvem contagens de valores. Exemplo: Imprimir todos os números inteiros de 1 a 100. 3 Variáveis contadoras Solução O algoritmo não tem dados de entrada, e fica assim: Variáveis valor : inteiro; Início escrever “Valores inteiros de 1 a 100”; valor = 1; repita escrever valor; valor = valor + 1; até valor > 100; Fim É possível resolver utilizando o ENQUANTO? 4 Programa em VisuAlg algoritmo "exemplo" var valor: inteiro inicio escrevaL ("Valores inteiros de 1 a 100") valor <- 1 repita escrevaL ( valor ) valor <- valor + 1 ate valor > 100 fimalgoritmo 5 Variáveis contadoras Solução Utilizando o ENQUANTO o algoritmo fica assim: Variáveis valor : inteiro; Início escrever “Valores inteiros de 1 a 100”; valor = 1; enquanto valor <= 100 faça [[ escrever valor; valor = valor + 1; ]]; Fim 6 Variáveis contadoras Exercício: Escrever um programa que leia 10 números inteiros fornecidos pelo usuário, e exiba quantos números ímpares foram informados.
  2. 2. 2 7 Variáveis contadoras Solução Serão necessárias 10 leituras. Podemos criar uma variável contadora para controlar este laço. Precisaremos de uma outra variável para contar a quantidade de números ímpares. Não podemos deixar para contar após a repetição, pois cada número fornecido apaga o anterior. Logo precisamos ir contando após cada entrada, incrementando uma nova variável contadora. Esta nova variável contadora só é incrementada se o número informado for ímpar. 8 Variáveis contadoras Solução Variáveis cont, num, qtd_impar : inteiro; Início cont = 1; qtd_impar = 0 enquanto cont <= 10 faça [[ escrever “Digite um número: ”; ler num; se num % 2 <> 0 então qtd_impar = qtd_impar + 1; cont = cont + 1; ]]; escrever “O total de ímpares foi “ + qtd_impar; Fim A variável é iniciada como 0 pois o usuário poderá informar 10 números pares 9 Programa em VisuAlg algoritmo "exemplo" var cont, num, qtd_impar : inteiro inicio cont <- 1 qtd_impar <- 0 enquanto cont <= 10 faca escreva ("Digite um número: ") leia (num) se num % 2 <> 0 entao qtd_impar <- qtd_impar + 1 fimse cont <- cont + 1 fimenquanto escrevaL ("O total de ímpares foi " , qtd_impar) fimalgoritmo 10 Variáveis acumuladoras Uma variável é chamada de acumuladora quando tem por característica armazenar dentro de si o resultado acumulado de uma série de valores. Quando armazenamos a soma de uma quantidade pequena de números, a atribuição é direta. Numa repetição devemos armazenar a soma de diversos números sucessivos, e para isto utilizamos uma variável acumuladora. Exemplo Calcular a soma de diversos números reais informados pelo usuário. A entrada de dados termina com o número -999. 11 Variáveis acumuladoras Solução O algoritmo fica assim: Variáveis num, soma : real; Início soma = 0; escrever “Para sair, entre com -999”; escrever “Entre com o número: “; ler num; enquanto num <> -999 faça [[ soma = soma + num; escrever “Entre com o número: “; ler num; ]]; escrever “A soma foi ”, soma; Fim A variável é iniciada como 0 pois, caso o usuário forneça -999 na primeira execução, o valor total da soma é 0. 12 Variáveis acumuladoras Exercício Fazer um programa que leia diversos números reais e exiba qual foi o maior de todos. O código -1 sinaliza o fim da leitura.
  3. 3. 3 13 Variáveis acumuladoras Solução Variáveis num, maior : real; Início escrever “Para sair, entre com -1”; escrever “Entre com o número: “; ler num; maior <- num; enquanto num <> -1 faça [[ se num > maior então maior <- num; escrever “Entre com o número: “; ler num; ]]; se maior <> -1 então escrever “O maior número digitado foi ”, maior senão escrever “Nenhum número válido foi informado.”; Fim 14 Variáveis acumuladoras Exercício: Traduzir o programa anterior para VisuAlg. 15 Laços infinitos Ao trabalhar com repetições, é preciso tomar cuidado para não criar um laço infinito, ou seja, um laço que não termina. Neste tipo de situação a máquina permaneceria executando o laço indefinidamente, até que ocorra uma intervenção externa. Exemplo: Imprimir os quadrados dos números inteiros de 1 a 10. 16 Laços infinitos Solução: Variáveis valor, quadrado : real; Início escrever “Quadrados dos números inteiros de 1 a 10”; escrever “Entre com o número: “; valor = 1; repita quadrado = sqr(valor); escrever quadrado; valor = valor - 1; até valor > 10; escrever “Fim da impressão.”; Fim Este decremento provoca um loop infinito. 17 Repetições encadeadas Da mesma forma que é permitido o encadeamento de testes, também é possível encadear comandos de repetição. Um encadeamento de repetições ocorre quando há necessidade de efetuar um laço dentro de outro. Neste tipo de situação, o algoritmo possui repetições controladas por um teste interno e outro externo. Exemplo Imprimir as tabuadas de multiplicação dos números 3, 4, 5 e 6. 18 Repetições encadeadas Solução Variáveis num, mult, cont : inteiro; Início num <- 3; enquanto num <= 6 faça [[ escrever “Tabuada de ”, num; cont = 1; enquanto cont <= 10 faça [[ mult = num * cont; escrever num, “x”, cont, “=“, mult; cont = cont + 1; ]]; num = num + 1; ]]; Fim
  4. 4. 4 19 Repetições encadeadas Exercício Escreva o algoritmo anterior em VisuAlg e observe o seu funcionamento. Em seguida, modifique o mesmo para mostrar a tabuada dos números 1 a 5. 20 Comando PARA É muito comum a existência de repetições que fazem uso de variáveis contadoras, especialmente para contagens de 1 em 1. Para facilitar a construção deste tipo de laço, pode-se utilizar um outro comando de repetição complementar chamada PARA. Sua sintaxe é: para <var> de <valor_inicial> até <valor_final> faça <comando>; 21 Comando PARA Exemplo: Escrever os números inteiros de 1 a 100. Solução com o comando PARA: Variáveis valor : inteiro; Início escrever “Valores inteiros de 1 a 100”; para valor de 1 até 100 faça escrever valor; Fim 22 Comando PARA em VisuAlg Esta estrutura repete uma seqüência de comandos um determinado número de vezes. para <variável> de <valor-inicial> ate <valor-limite> [passo <incremento>] faca <seqüência-de-comandos> fimpara OBS: <valor-inicial >, <valor-limite > e <incremento > são avaliados uma única vez antes da execução da primeira repetição, e não se alteram durante a execução do laço, mesmo que variáveis eventualmente presentes nessas expressões tenham seus valores alterados. 23 Comando PARA em VisuAlg No exemplo a seguir, os números de 1 a 10 são exibidos em ordem crescente. algoritmo "Números de 1 a 10“ var j: inteiro inicio para j de 1 ate 10 faca escreva (j:3) fimpara fimalgoritmo 24 Comando PARA em VisuAlg Importante: Se, logo no início da primeira repetição, <valor- inicial > for maior que <valor-limite > (ou menor, quando <incremento> for negativo), o laço não será executado nenhuma vez. O exemplo a seguir não imprime nada. algoritmo "Numeros de 10 a 1 (não funciona)" var j: inteiro inicio para j de 10 ate 1 faca escreva (j:3) fimpara fimalgoritmo
  5. 5. 5 25 Comando PARA em VisuAlg Este outro exempo, no entanto, funcionará por causa do passo -1: algoritmo "Numeros de 10 a 1 (este funciona)" var j: inteiro inicio para j de 10 ate 1 passo -1 faca escreva (j:3) fimpara fimalgoritmo 26 Exemplo 1: Calcule e exiba a soma de todos os números pares contidos entre zero e um número fornecido via teclado (caso o número fornecido seja par, o mesmo deverá fazer parte da soma). 27 Solução algoritmo "exemplo1" var numero ,i , soma_pares: inteiro inicio soma_pares <-0 escreva("Digite um número > 0:") leia(numero) se numero >0 entao para i de 1 ate numero faca se (i % 2 = 0) entao soma_pares <- soma_pares + i fimse fimpara escrevaL("A soma dos pares é: ", soma_pares) senao escrevaL("Número inválido informado.") fimse fimalgoritmo 28 Comando PARA Exercícios: Faça um programa para exibir os números 1, 4, 9, 16, 25, 36, ... , 10000. Faça um programa que leia 10 valores inteiros e positivos e depois informe: Qual o maior valor; Qual o menor valor; A média dos números lidos. DÚVIDAS ?DÚVIDAS ? Programação I ALG

×