Comando de Controle While

PSEUDOCODIGO bubble sort switch case

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

While
Figura 1: 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:

Vamos ver um exemplo bem simples: somar os números menores ou iguais a dez.

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

 nn <= 10nsoma <- soma + n
1

0

0 <= 10

V

2.5

soma <- 0 + 2.5

2.5

 22.5

 2.5 <= 10

V

 3.4

soma <- 2.5 + 3.4

5.9

 33.4

 3.4 <= 10

V

1.7

soma <- 5.9 + 1.7

7.6

 41.7

 1.7 <= 10

V

5.6

soma <- 7.6 + 5.6

13.2

 55.6

5.6 <= 10

V

10.9

soma <- 13.2 + 10.9

24.1

610.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

  1. 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

  1. 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

  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

  1. 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

  1. 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.

Outros artigos da série

<< Comando de Controle IFComando de Controle Switch Case >>
Website | Veja + conteúdo

Atuo como Professora de Informática e Computação desde 2001, atendendo de forma especial a Terceira Idade e Concurseiros. Desde 2009 venho atuando como Docente no Ensino Superior em diversos cursos de Graduação e Pós Graduação Lato Sensu, tanto presenciais, quanto semipresenciais e à distância. Ministrei várias disciplinas onde ensino os estudantes a desenvolverem plataformas e sistemas computacionais. Orientei vários trabalhos acadêmicos, desenvolvi inúmeros materiais, trabalhei com pesquisa, ensino, extensão e inovação, ministrei palestras em vários eventos. Mais recentemente venho ofertando serviços na área de tecnologia como desenvolvimento de sistemas, treinamentos, consultoria, mentoria, etc. Comecei meu Doutorado na área de Machine Learning (Multi-label Classification) na UFSCar em 02/2019 e devo terminar em 01/2023. Também estudo canto, jogo vôlei, sou geek, nerd, otaku e gamer!

Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Comentários:
Notificações
Notificar
guest
2 Comentários
recentes
antigos mais votados
Inline Feedbacks
View all comments
Rafael Calai
rafael
06/10/2016 11:38

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.

Elaine Cecília Gatto
Elaine Cecília Gatto
Reply to  rafael
06/10/2016 17:31

oishe!!!! é vero Rafael!!! Atualizei o post e esqueci de mudar essa informação =) MUITO OBRIGADA

Talvez você goste:

Séries



Outros da Série

Menu