| | | |

Minicurso de C++ para Matemática

Ajude a manter o site livre, gratuito e sem propagandas. Colabore!

3.3 Repetição

Estruturas de repetição são instruções que permitem a execução repetida de um bloco computacional. São três instruções disponíveis while, do ... while e for.

3.3.1 while

A sintaxe da instrução while é

1while (condition) {
2 block
3}

Isto é, enquanto (while) a expressão condition == true, o bloco computacional block é repetidamente executado. Ao final de cada execução, a condição é novamente verificada. Quando condition == false, block não é executado e o código segue para a primeira instrução após o escopo do while.

Como aplicação, o seguinte código computa o fatorial de um número n.

Código 9: While.cpp
1int fatorial(int n) {
2 int i = 0;
3 int fat = 1;
4
5 while (i+1 <= n) {
6 fat *= i+1;
7 i += 1;
8 }
9
10 return fat;
11}
Observação 3.3.1.

As instruções de controle break, continue são bastante úteis em várias situações. A primeira, encerra as repetições e, a segunda, pula para uma nova repetição.

E. 3.3.1.

Use while para imprimir os dez primeiros números ímpares.


1int n = 1;
2int i = 1;
3while (i <= 10) {
4 std::cout << n
5 << std::endl;
6 n += 2;
7 i += 1;
8}
E. 3.3.2.

Use a instrução while para criar um método que retorne o n-ésimo termo da função de Fibonacci333Leonardo Fibonacci, 1170 - 1250, matemático italiano. Fonte: Wikipédia: Leonardo Fibonacci., n1.


1int fibonacci(int n) {
2 if ((n == 1) or (n == 2))
3 return 1;
4 else {
5 int i = 2;
6 int f0 = 1;
7 int f1 = 1;
8 int fa;
9 while (i+1 <= n) {
10 fa = f0 + f1;
11 f0 = f1;
12 f1 = fa;
13 i += 1;
14 }
15 return fa;
16 }
17}

3.3.2 do ... while

Diferentemente da instrução while, a do ... while verifica a condição de repetição ao final do escopo do seu bloco computacional.

Como aplicação, o seguinte método usa desta instrução para computar o fatorial de um número natual n. Compare com o Código 9.

Código 10: DoWhile.cpp
1int fatorial(int n) {
2 int i = 0;
3 int fat = 1;
4
5 do {
6 fat *= i+1;
7 i += 1;
8 } while (i < n);
9
10 return fat;
11}
E. 3.3.3.

Use do..while para imprimir os dez primeiros números ímpares.


1int n = 1;
2int i = 1;
3do {
4 std::cout << n
5 << std::endl;
6 n += 2;
7 i += 1;
8} while (i-1 < 10);
E. 3.3.4.

Use a instrução while para criar um método que retorne o n-ésimo termo da função de Fibonacci444Leonardo Fibonacci, 1170 - 1250, matemático italiano. Fonte: Wikipédia: Leonardo Fibonacci., n1.


1int fibonacci(int n) {
2 if ((n == 1) or (n == 2))
3 return 1;
4 else {
5 int i = 2;
6 int f0 = 1;
7 int f1 = 1;
8 int fa;
9 do {
10 fa = f0 + f1;
11 f0 = f1;
12 f1 = fa;
13 i += 1;
14 } while (i < n);
15 return fa;
16 }
17}

3.3.3 for

A estrutura for tem a sintaxe

1for (init; condition; iter) {
2 block;
3}

onde, init é a instrução de inicialização, condition é o critério de parada, iter é a instrução do iterador.

Como aplicação, o seguinte método usa desta instrução para computar o fatorial de um número natual n. Compare com as versões anteriores Código 9 e Código 10.

Código 11: For.cpp
1int fatorial(int n) {
2 int fat = 1;
3
4 for (int i=1; i<=n; i++)
5 fat *= i;
6
7 return fat;
8}
E. 3.3.5.

Use for para imprimir os dez primeiros números ímpares.


1int n = 1;
2for (int i=0; i<10; i++) {
3 std::cout << n << std::endl;
4 n += 2;
5}
E. 3.3.6.

Use a instrução for para criar um método que retorne o n-ésimo termo da função de Fibonacci555Leonardo Fibonacci, 1170 - 1250, matemático italiano. Fonte: Wikipédia: Leonardo Fibonacci., n1.


1int fibonacci(int n) {
2
3 if ((n == 1) or (n == 2))
4 return 1;
5 else {
6 int f0 = 1;
7 int f1 = 1;
8 int fa;
9 for (int i=2; i<n; ++i) {
10 fa = f0 + f1;
11 f0 = f1;
12 f1 = fa;
13 }
14 return fa;
15 }
16}

Envie seu comentário

Aproveito para agradecer a todas/os que de forma assídua ou esporádica contribuem enviando correções, sugestões e críticas!

Opcional. Preencha seu nome para que eu possa lhe contatar.
Opcional. Preencha seu e-mail para que eu possa lhe contatar.
As informações preenchidas são enviadas por e-mail para o desenvolvedor do site e tratadas de forma privada. Consulte a política de uso de dados para mais informações.

Licença Creative Commons
Este texto é disponibilizado nos termos da Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional. Ícones e elementos gráficos podem estar sujeitos a condições adicionais.

Pedro H A Konzen
| | | |