Linguagem C: while e do-while - Introdução à linguagem C(++)

Propaganda
Introdução
while
Exemplos
Exercícios
Linguagem C: while e do-while
Introdução à linguagem C(++)
Profs. Anilton, Lasaro e Paulo Coelho
Faculdade de Computação
Universidade Federal de Uberlândia
Profs. Anilton, Lasaro e Paulo Coelho
Linguagem C: while e do-while
FACOM/UFU
Introdução
while
Exemplos
Exercícios
Organização
Introdução
while
Exemplos
Exercícios
Profs. Anilton, Lasaro e Paulo Coelho
Linguagem C: while e do-while
FACOM/UFU
Introdução I
I
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Suponha de você deseja fazer um programa para calcular
ler duas notas, calcular e imprimir a média de dez alunos
da disciplina. A maneira menos prática de fazer isso seria:
...
float nota1, nota2, media;
cout << "Entre nota 1 e nota 2 do aluno 1: " << endl;
cin << nota1 << nota2;
media = (nota1 + nota2) / 2;
cout << "A media das notas eh " << media << endl;
cout << "Entre nota 1 e nota 2 do aluno 2: " << endl;
cin << nota1 << nota2;
media = (nota1 + nota2) / 2;
cout << "A media das notas eh " << media << endl;
cout << "Entre nota 1 e nota 2 do aluno 3: " << endl;
cin << nota1 << nota2;
media = (nota1 + nota2) / 2;
cout << "A media das notas eh " << media << endl;
cout << "Entre nota 1 e nota 2 do aluno 4: " << endl;
cin << nota1 << nota2;
media = (nota1 + nota2) / 2;
Introdução II
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
cout << "A media das notas eh " << media << endl;
cout << "Entre nota 1 e nota 2 do aluno 5: " << endl;
cin << nota1 << nota2;
media = (nota1 + nota2) / 2;
cout << "A media das notas eh " << media << endl;
cout << "Entre nota 1 e nota 2 do aluno 6: " << endl;
cin << nota1 << nota2;
media = (nota1 + nota2) / 2;
cout << "A media das notas eh " << media << endl;
cout << "Entre nota 1 e nota 2 do aluno 7: " << endl;
cin << nota1 << nota2;
media = (nota1 + nota2) / 2;
cout << "A media das notas eh " << media << endl;
cout << "Entre nota 1 e nota 2 do aluno 8: " << endl;
cin << nota1 << nota2;
media = (nota1 + nota2) / 2;
cout << "A media das notas eh " << media << endl;
cout << "Entre nota 1 e nota 2 do aluno 9: " << endl;
cin << nota1 << nota2;
media = (nota1 + nota2) / 2;
cout << "A media das notas eh " << media << endl;
cout << "Entre nota 1 e nota 2 do aluno 10: " << endl;
Introdução III
43
cin << nota1 << nota2;
media = (nota1 + nota2) / 2;
cout << "A media das notas eh " << media << endl;
...
I
propenso a erros
I
difícil de estender
I
retrabalho
I
A linguagem C fornece estruturas de repetições, as quais
permitem repetir um determinado conjunto de comandos.
40
41
42
while I
I
O comando while permite repetir um bloco de comandos.
I
Sua forma geral é muito simples:
1
2
3
4
5
I
while (<condicao>)
{
// bloco de comandos
// a ser repetido
}
O bloco de comandos entre as chaves será repetido
enquanto a condição dentro dos parênteses for verdadeira.
while II
I
De volta ao nosso exemplo, podemos reescrevê-lo de
maneira mais inteligente:
1
...
float nota1, nota2, media;
int i = 1; // valor inicial do identificador do aluno
2
3
4
5
6
7
8
9
10
11
12
13
while (i <= 10)
{
cout << "Entre nota 1 e nota 2 do aluno " << i << ": " <<
endl;
cin << nota1 << nota2;
media = (nota1 + nota2) / 2;
cout << "A media das notas eh " << media << endl;
i++; // aumentamos o valor de i no final de cada calculo da
media
}
...
do-while I
I
Uma variação do comando while
I do-while
I
1
2
3
4
5
6
(faça-enquanto ou repita-enquanto)
Sua forma geral é dada por:
do
{
\\ bloco de comandos
\\ a ser repetido
}
while (<condicao>);
do-while II
I
1
2
3
Reescrevendo o exemplo:
...
float nota1, nota2, media;
int i = 1; // valor inicial do identificador do aluno
4
14
do
{
cout << "Entre nota 1 e nota 2 do aluno " << i << ": " <<
endl;
cin << nota1 << nota2;
media = (nota1 + nota2) / 2;
cout << "A media das notas eh " << media << endl;
i++; // aumentamos o valor de i no final de cada calculo da
media
}
while (i <= 10);
...
I
Qual a diferença entre while e do-while?
5
6
7
8
9
10
11
12
13
Exemplos I
I
Some todos os números pares entre 1 e 999.
I int some = 2 + 4 + 6 + 8 ...
I
1
2
3
4
5
6
7
8
9
10
Ou, utilizando o while, teríamos:
...
int n = 2, // primeiro par maior do que 1
soma = 0; // soma inicialmente zerada
while (n < 999)
{
soma = soma + n;
n += 2; //Observe o uso de +=
}
cout << "O valor da soma eh " << soma << endl;
...
Exemplos II
I
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Maior dentre 10 números inteiros lidos. Utilizando o
do-while:
...
int i = 0, // contador da qtde de numeros lidos
maior, n;
do
{
cout << "Entre um numero: ";
cin >> n;
if (i == 0) // se for o primeiro numero lido
{
// ele serah o menor
maior = n;
}
else
// a partir do segundo
{
if(n > maior) // atualizo o maior
{
maior = n;
}
}
i++;
Exemplos III
20
21
22
}
while (i < 10);
...
Introdução
while
Exemplos
Exercícios
Fatorial
Faça uma função que recebe um número inteiro positivo e
retorna o fatorial deste número. A função principal deve ler o
número do qual se deseja calcular o fatorial e imprimir o
resultado.
Profs. Anilton, Lasaro e Paulo Coelho
Linguagem C: while e do-while
FACOM/UFU
Introdução
while
Exemplos
Exercícios
Primo
Faça uma função que recebe um número inteiro positivo e
retorna true se o número for primo ou false, caso contrário. A
função principal deve ler o número e imprimir o resultado.
Profs. Anilton, Lasaro e Paulo Coelho
Linguagem C: while e do-while
FACOM/UFU
Introdução
while
Exemplos
Exercícios
Primo II
Modifique o programa anterior para imprimir todos os números
primos abaixo de dois milhões.
Profs. Anilton, Lasaro e Paulo Coelho
Linguagem C: while e do-while
FACOM/UFU
Introdução
while
Exemplos
Exercícios
Espelhar
Faça um programa que leia um número inteiro positivo e
imprima esse número de trás pra frente. A impressão deve ser
feita pela função auxiliar inverteNumero.
Profs. Anilton, Lasaro e Paulo Coelho
Linguagem C: while e do-while
FACOM/UFU
Download