Anda di halaman 1dari 4

Comandos de Repetio

O VisuAlg implementa as trs estruturas de repetio usuais nas linguagens de programao: o lao contado para...ate...faca (similar ao for...to...do do Pascal), e os laos condicionados enquanto...faca (similar ao while...do) e repita...ate (similar ao repeat...until). A sintaxe destes comandos explicada a seguir. Para ... faa Esta estrutura repete uma sequncia de comandos um determinado nmero de vezes. para <varivel> de <valor-inicial> ate <valor-limite> [passo <incremento>] faca <seqncia-de-comandos> fimpara a varivel contadora que controla o nmero de repeties do lao. Na verso atual, deve ser necessariamente uma varivel do tipo inteiro, como todas as expresses deste comando. uma expresso que especifica o valor de inicializao da varivel contadora antes da primeira repetio do lao. uma expresso que especifica o valor mximo que a varivel contadora pode alcanar. opcional. Quando presente, precedida pela palavra passo, uma expresso que especifica o incremento que ser acrescentado varivel contadora em cada repetio do lao. Quando esta opo no utilizada, o valor padro de <incremento> 1. Vale a pena ter em conta que tambm possvel especificar valores negativos para<incremento>. Por outro lado, se a avaliao da expresso <incremento > resultar em valor nulo, a execuo do algoritmo ser interrompida, com a impresso de uma mensagem de erro. Indica o fim da sequncia de comandos a serem repetidos. Cada vez que o programa chega neste ponto, acrescentado varivel contadora o valor de <incremento >, e comparado a <valor-limite >. Se for menor ou igual (ou maior ou igual, quando <incremento > for negativo), a sequncia de comandos ser executada mais uma vez; caso contrrio, a execuo prosseguir a partir do primeiro comando que esteja aps o fimpara.

<varivel > <valor-inicial> <valor-limite >

<incremento >

fimpara

<valor-inicial >, <valor-limite > e <incremento > so avaliados uma nica vez antes da execuo da primeira repetio, e no se alteram durante a execuo do lao, mesmo que variveis eventualmente presentes nessas expresses tenham seus valores alterados. No exemplo a seguir, os nmeros de 1 a 10 so exibidos em ordem crescente. algoritmo "Nmeros de 1 a 10" var j: inteiro inicio para j de 1 ate 10 faca escreva (j) fimpara fimalgoritmo

Importante: Se, logo no incio da primeira repetio, <valor-inicial > for maior que <valor-limite > (ou menor, quando <incremento> for negativo), o lao no ser executado nenhuma vez. O exemplo a seguir no imprime nada. algoritmo "Numeros de 10 a 1 (no funciona)" var j: inteiro inicio para j de 10 ate 1 faca escreva (j) fimpara fimalgoritmo

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) fimpara fimalgoritmo

Enquanto ... faa Esta estrutura repete uma sequncia de comandos enquanto uma determinada condio (especificada atravs de uma expresso lgica) for satisfeita. enquanto <expresso-lgica> faca <seqncia-de-comandos> fimenquanto Esta expresso que avaliada antes de cada repetio do lao. Quando seu resultado for VERDADEIRO, <seqncia-decomandos> executada. Indica o fim da <seqncia-de-comandos> que ser repetida. Cada vez que a execuo atinge este ponto, volta-se ao incio do lao para que <expresso-lgica> seja avaliada novamente. Se o resultado desta avaliao for VERDADEIRO, a <seqncia-decomandos> ser executada mais uma vez; caso contrrio, a execuo prosseguir a partir do primeiro comando aps fimenquanto.

<expresso-lgica>

fimenquanto

O mesmo exemplo anterior pode ser resolvido com esta estrutura de repetio: algoritmo "Nmeros de 1 a 10 (com enquanto...faca)" var j: inteiro inicio j <- 1 enquanto j <= 10 faca escreva (j) j <- j + 1 fimenquanto fimalgoritmo

Importante: Como o lao enquanto...faca testa sua condio de parada antes de executar sua sequncia de comandos, esta sequncia poder ser executada zero ou mais vezes.

Repita ... at Esta estrutrura repete uma sequncia de comandos at que uma determinada condio (especificada atravs de uma expresso lgica) seja satisfeita. repita <seqncia-de-comandos> ate <expresso-lgica> repita Indica o incio do lao. Indica o fim da <sequncia-de-comandos> a serem repetidos. Cada vez que o programa chega neste ponto, <expressolgica> avaliada: se seu resultado for FALSO, os comandos presentes entre esta linha e a linha repita so executados; caso contrrio, a execuo prosseguir a partir do primeiro comando aps esta linha

ate <expresso-lgica>

Considerando ainda o mesmo exemplo: algoritmo "Nmeros de 1 a 10 (com repita)" var j: inteiro inicio j <- 1 repita escreva (j) j <- j + 1 ate j > 10 fimalgoritmo Importante: Como o lao repita...ate testa sua condio de parada depois de executar sua sequncia de comandos, esta sequncia poder ser executada uma ou mais vezes.

Exerccios Propostos 1- Faa um algoritmo para calcular a rea de um tringulo. O algoritmo no pode permitir a entrada de dados invlidos, ou seja, medidas menores ou iguais a zero. 2- Faa um algoritmo que leia uma quantidade indefinida de idades. A ltima, que no entrar nos clculos, dever conter o valor da idade igual a zero. Calcule e mostre a idade mdia desse grupo de indivduos. 3- Faa um algoritmo que receba uma quantidade indefinida de nmeros (que devem ser todos positivos), calcule e mostre a quantidade de nmeros entre 30 e 90. A digitao do valor zero finaliza a leitura dos nmeros. 4- Faa um algoritmo que calcule a soma dos primeiros 50 nmeros pares. Esse algoritmo no recebe valor via teclado. Os primeiros nmeros pares so: 2, 4, 6, 8...

5 Faa um algoritmo que receba duas notas de seis alunos, calcule e mostre: a) a mdia aritmtica das duas notas de cada aluno; b) a mensagem que est na tabela a seguir: Mdia aritmtica Menos de 3,0 Entre 3,0 e 6,9 Igual ou acima de 7,0 c) o total de alunos aprovados; d) o total de alunos de exame; e) o total de alunos reprovados; e f) a mdia da classe. 6- Em um campeonato de futebol existem cinco times e cada time possui onze jogadores. Faa um programa que receba a idade, o peso e a altura de cada um dos jogadores, calcule e mostre: a) a quantidade de jogadores com idade inferior a 18 anos; b) a mdia das idades dos jogadores de cada time; c) a mdia das alturas de todos os jogadores do campeonato; e d) a porcentagem de jogadores com mais de 80 quilos entre todos os jogadores do campeonato. 7- A prefeitura de uma cidade fez uma pesquisa entre os seus habitantes, coletando dados sobre o salrio e o nmero de filhos. A prefeitura deseja saber: a) a mdia do salrio da populao; b) a mdia do nmero de filhos; c) o maior salrio; d) a porcentagem de pessoas com salrio at R$ 1000,00. O final da leitura de dados dar-se- com a entrada de um salrio negativo. Mensagem Reprovado Exame Aprovado