Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
Comandos de Repetição Enquanto e Faça-Enquanto Comandos de Repetição Enquanto Assim como o comando para, o comando enquanto tem como principal objetivo executar um bloco de comandos repetidas vezes. O comando de repetição enquanto possui a seguinte estrutura: enquanto <expressão lógica> { <comandos>; } Basicamente, o comando enquanto executa o bloco de comandos associado enquanto a expressão lógica for avaliada como verdade. No início da execução do comando enquanto, a expressão lógica é avaliada e, caso ela resulte em verdade, os comandos do bloco de comandos associado são executados pela primeira vez. Ao final da execução do bloco de comandos, a expressão lógica é avaliada novamente, e caso ela continue resultando em verdade, os comandos do bloco de comandos são executados novamente. O laço irá executar os comandos do bloco de comandos repetidamente enquanto a expressão lógica for avaliada como verdade. Na primeira ocasião em que a expressão lógica for avaliada como falso, o laço é terminado e a execução do programa prossegue. É importante ressaltar que um laço enquanto pode até mesmo não executar o bloco de comandos nenhuma vez. No início da execução do comando enquanto, quando a expressão lógica é avaliada pela primeira vez, caso ela resulte em falso o comando enquanto não executa o bloco de comandos. Nesse caso, o comando enquanto salta todos os comandos presentes no bloco de comandos associado, e continua a execução do programa normalmente. Vamos ver um algoritmo exemplo que utiliza o comando enquanto: 01 | Algoritmo exemplo_enquanto; 02 | 03 | { 04 | resp: caractere; 05 | 06 | 07 | resp ´n´; 08 | enquanto resp == ´n´ 09 | { 10 | escreva("Você quer parar agora <s/n>?"); 11 | leia(resp); 12 | } 13 | } O exemplo acima utiliza uma variável chamada resp do tipo caracter. Essa variável irá armazenar o valor ´s´ caso o usuário queira continuar dentro do laço ou ´n´ caso o usuário queira parar com o laço. Repare que na linha 07 a variável resp é inicializada com o valor ´n´. Essa inicialização é necessária pois sem ela o laço não é executado nem uma única vez. Na linha 08 está o comando enquanto com a condição de executar o laço enquanto o valor da variável resp for igual a ´n´. Como a variável resp foi inicializada com o valor ´n´, então os comandos pertencentes ao bloco de comandos associado ao comando enquanto (linhas 09, 10, 11 e 12) são executados pela primeira vez. Dentro do laço, o comando escreva (linha 10) pergunta ao usuário se ele deseja parar com o laço, e o comando leia (linha 11) lê do teclado a resposta do usuário. O usuário deve digitar ´s´ ou ´n´. Independentemente da resposta do usuário, a execução volta para a linha 08 na qual a expressão lógica do comando enquanto é avaliada novamente. Caso a resposta do usuário seja igual a ´n´ (ele não quer parar o laço), então o programa irá executar os comandos associados ao comando enquanto novamente. Caso o usuário tenha digitado ´s´ então o laço termina pois a expressão lógica resp == ´n´ é avaliada como falso, pois ´s´ não é igual a ´n´. Ao final da execução do laço enquanto o algoritmo irá continuar a sua execução normalmente. No caso do algoritmo exemplo acima, como não existem mais comandos após o bloco de comandos associado ao comando enquanto, a execução do programa termina. Comando de Repetição Faça-Enquanto O comando de repetição faça-enquanto, assim como os demais comandos de repetição, utiliza uma expressão lógica para controlar até quando o bloco de comandos deve ser executado. A estrutura do comando faça-enquanto é a seguinte: faça { <comandos>; } enquanto <expressão lógica>; O comando faça-enquanto funciona da seguinte forma. Os comandos do bloco de comandos delimitado pelas palavras reservadas { e } são executados pela primeira vez. Quando a execução atinge a palavra reservada enquanto, a expressão lógica é avaliada pela primeira vez. Caso a expressão lógica seja avaliada em verdadeiro, então a execução do algoritmo volta para a palavra reservada {, e os comandos são executados novamente. Caso a expressão lógica seja avaliada como falso, então o laço termina e a execução do programa continua normalmente. Resumidamente, o laço faça-enquanto repete os comando do bloco de comandos associado enquanto a expressão lógica seja avaliada como verdade. É importante ressaltar que os comandos do bloco de comandos delimitado pelas palavras { e } são sempre executados pelo menos uma vez. Vamos ver um exemplo de algoritmo com um laço faça-enquanto: 01 | Algoritmo exemplo_faca_enquanto; 02 | 03 | { 04 | resp: caractere; 05 | 06 | 08 | faça { 10 | escreva("Você quer parar agora <s/n>?"); 11 | leia(Resp); 12 | } enquanto resp == ´n´; 13 | } No exemplo acima, o laço faça-enquanto executa os comandos do bloco de comandos associado (linhas 10 e 11) enquanto a resposta digitada pelo usuário, armazenada na variável resp, é igual ao valor ´n´. Repare que não foi necessário inicializar a variável resp pois o comando leia irá ler a resposta do usuário antes que a condição do comando enquanto seja avaliada. Exercício 1. Faça algoritmo (e um programa) que leia dois números do teclado e mais um operador, o qual pode ser '+', '-', '*', '/'. Por exemplo, o usuário pode digitar 2. 5 3. + 10 O algoritmo (programa) deve calcular o resultado da operação e imprimir na tela do computador. O programa deve perguntar ao usuário se ele quer parar, e caso ele não queira, pedir outros valores para fazer um novo cálculo. 4. Faça um algoritmo (e um programa) capaz de ler uma quantidade não previamente determinada de valores positivos. O usuário deve indicar que quer parar de entrar valores digitando um valor especial, por exemplo -1. Calcule o total dos valores digitados pelo usuário.