Fala galera! No último artigo discutimos sobre o comando de controle IF. Hoje vamos discutir sobre o While.

O comando While é um comando de LOOP, ou falando em português, um comando de repetição. O comportamento do While é muito diferente do comportamento do comando IF. Em um comando de decisão, é analisada uma condição e, se a resposta for V ou F, algo acontece, ou não, uma única vez.
No caso do While, uma condição também é analisada, uma resposta F sai do bloco de comando e volta para o programa principal, mas uma resposta V executará o bloco de instruções repetidas vezes. A quantidade de vezes que aquele bloco de instruções será executado é definido na condição. A Figura 1 apresenta o fluxograma do While. Portanto, enquanto a condição for verdadeira, repita o bloco de comandos. No momento em que a condição for falsa, sairá do while.
A sintaxe do comando While é a seguinte:
enquanto () faça comandos fimenquanto
Vamos ver um exemplo bem simples: somar os números menores ou iguais a dez.
algoritmo "enquanto_while"
var
n, soma : real
inicio
n <- 0
soma <- 0
enquanto (n <= 10) faca
escreva(" Digite o número: ")
leia(n)
soma <- soma + n
fimenquanto
escreval(" A soma dos números menores ou iguais a 10 é ", soma:5:2)
fimalgoritmo
As linhas de 9 a 13 são as correspondentes ao comando While. Enquanto o valor de N for maior ou igual a 10 faça:
- solicite o número para o usuário;
- leia o número digitado pelo usuário;
- some, de forma acumulativa, os valores digitados pelo usuário.
Vamos agora fazer o teste de mesa desse bloco de código para entender e avaliar o comportamento do comando (Tabela 1). Vamos supor que o usuário digite os seguintes valores para n: 2.5, 3.4, 1.7, 5.6, 10.9.
Tabela 1: Teste de Mesa do comando While
| n | n <= 10 | n | soma <- soma + n | |
| 1 |
0 |
0 <= 10 V | 2.5 |
soma <- 0 + 2.5 2.5 |
| 2 | 2.5 |
2.5 <= 10 V | 3.4 |
soma <- 2.5 + 3.4 5.9 |
| 3 | 3.4 |
3.4 <= 10 V | 1.7 |
soma <- 5.9 + 1.7 7.6 |
| 4 | 1.7 |
1.7 <= 10 V | 5.6 |
soma <- 7.6 + 5.6 13.2 |
| 5 | 5.6 |
5.6 <= 10 V | 10.9 |
soma <- 13.2 + 10.9 24.1 |
| 6 | 10.9 |
10.9 <= 10 F | – | – |
Foram necessárias seis ITERAÇÕES para chegarmos ao resultado final. Na primeira iteração o valor de N é zero, como N é menor que 10, então entra no While e executa os comandos. A soma nesse momento também vale zero, então ao somarmos 0 com 2.5, temos o primeiro valor acumulativo armazenado na variável soma. As outras linhas repetem exatamente o mesmo processo. Vale ressaltar que o valor que digitamos dentro do while é o valor que será avaliado na condição na iteração posterior. O valor 10.9 é maior que 10, então como a resposta da avaliação da condição deu F, não entra no while, terminando aqui a execução do bloco while. Assim, o valor final da soma é 24.1.
Portanto, o comando while deve ser usado sempre que você precisa de um processo repetitivo. Entretanto, o while não é o único comando de repetição disponível. No próximo artigo veremos mais sobre comandos de controle. Tem dúvidas? Deixe nos comentários ok. Abaixo seguem exercícios do IF e do WHILE. Muito Obrigada.
EXERCÍCIOS IF
- Uma empresa decidiu dar uma gratificação de Natal a seus funcionários, baseada no número de horas extras e no número de horas que o funcionário faltou ao trabalho. O valor do prêmio é obtido pela consulta à tabela que se segue, na qual:
H = número de horas extras – (2/3 * ( número de horas falta ))
|
H (MINUTOS) |
PRÊMIO (R$) |
|
>= 2.401 |
500,00 |
|
1.801 até 2.400 |
400,00 |
|
1.201 até 1.800 |
300,00 |
|
600 até 1.200 |
200,00 |
|
< 600 |
100,00 |
- Faça um programa que receba a idade e o peso de uma pessoa. De acordo com a tabela a seguir, verifique e mostre em qual grupo de risco essa pessoa se encaixa.
|
IDADE |
ATÉ 60KG |
ENTRE 60 E 90KG |
ACIMA DE 90KG |
|
Menores que 20 |
9 |
8 |
7 |
|
De 20 a 50 |
6 |
5 |
4 |
|
Maiores que 50 |
3 |
2 |
1 |
- Faça um programa que receba a idade de um nadador e mostre sua categoria, usando as regras a seguir. Para idade inferior a 5, deverá mostrar mensagem.
|
CATEGORIA |
IDADE |
|
Infantil |
5 a 7 |
|
Juvenil |
8 a 10 |
|
Adolescente |
11 a 15 |
|
Adulto |
16 a 30 |
|
Sênior |
Acima de 30 |
- Faça um programa que receba o salário bruto de um funcionário e, usando a tabela a seguir, calcule e mostre o valor a receber. Sabe-se que este é composto pelo salário bruto acrescido de gratificação e descontado o imposto de 7% sobre o salário.
|
SALÁRIO |
GRATIFICAÇÃO |
|
Até R$350,00 |
R$100,00 |
|
R$351,00 até R$600,00 |
R$75,00 |
|
R$601,00 até R$900,00 |
R$50,00 |
|
Acima de R$901,00 |
R$35,00 |
EXERCÍCIOS WHILE
- Uma empresa possui dez funcionários com as seguintes características: código, número de horas trabalhadas no mês, turno de trabalho (M – matutino; V – vespertino; N – noturno), categoria (O – operário; ou G – gerente), valor da hora trabalhada. Sabendo-se que essa empresa deseja informatizar sua folha de pagamento, faça um programa que: a) Leia as informações dos funcionários, exceto o valor da hora trabalhada, não permitindo que sejam informações dos turnos e nem categorias inexistentes. Trabalhe sempre com a digitação de letras maiúsculas; b) Calcule o valor da hora trabalhada, conforme a tabela 1. Adote o valor de R$450,00 para o salário mínimo; c) Calcule o salário inicial dos funcionários com base no valor da hora trabalhada e no número de horas trabalhadas; d) Calcule o valor do auxílio alimentação recebido pelo funcionário de acordo com seu salário inicial, conforme a tabela 2; e) Mostre o código, número de horas trabalhadas, valor da hora trabalhada, salário inicial, auxílio alimentação e salário final (salário inicial + auxílio alimentação).
Tabela 1
|
CATEGORIA |
TURNO |
VALOR DA HORA TRABALHADA |
|
G |
N |
18% do salário mínimo |
|
G |
M ou V |
15% do salário mínimo |
|
O |
N |
13% do salário mínimo |
|
O |
M ou V |
10% do salário mínimo |
Tabela 2
|
SALÁRIO INICIAL |
AUXÍLIO ALIMENTAÇÃO |
|
Até R$300,00 |
20% do salário inicial |
|
Entre R$300,00 e R$600,00 |
15% do salário inicial |
|
Acima de R$600,00 |
5% do salário inicial |
2. Faça um programa que leia o número de termos, determine e mostre os valores de acordo com a série a seguir: SÉRIE = 2, 7, 3, 4, 21, 12, 8, 63, 48, 16, 189, 192, 32, 567, 768, …
3. Faça um programa que receba o salário de um funcionário chamado Carlos. Sabe-se que outro funcionário, João, tem salário equivalente a um terço do salário de Carlos. Carlos aplicará seu salário integralmente na caderneta de poupança, que rende 2% ao mês, e João aplicará seu salário integralmente no fundo de renda fixa, que rende 5% ao mês. O programa deverá calcular e mostrar a quantidade de meses necessários para que o valor pertencente a João iguale ou ultrapasse o valor pertencente a Carlos.
4. Faça um programa que leia um conjunto não determinado de valores e mostre o valor lido, seu quadrado, seu cubo e sua raiz quadrada. Finalize a entrada de dados com um valor negativo ou zero.
FONTE DOS EXERCÍCIOS: Fundamentos da Programação de Computadores, Ascencio.





Elaine,
ótimo artigo, tenho uma pequena observação a fazer: Abaixo do segundo trecho de código está escrito “As linhas de 9 a 13 são as correspondentes ao comando While”, trocar para “As linhas de 11 a 15 são as correspondentes ao comando While” para que corresponda exatamente ao código.
oishe!!!! é vero Rafael!!! Atualizei o post e esqueci de mudar essa informação =) MUITO OBRIGADA