Você está na página 1de 64

9002 Aula 08

Algoritmos e Programao de Computadores


Instituto de Engenharia UFMT
Primeiro Semestre de 2015

13 de abril de 2015

Roteiro
1

Reviso

Comandos de Repetio

Construo Enquanto-Faa

Comando while

Sumilao de cdigo

O que vem depois

IEng - UFMT (2015/1)

9002 Aula 08

13 de abril de 2015

2 / 26

Reviso
Nas aulas anteriores, vimos como escrever programas capazes de
executar comandos de forma linear, e, se necessrio, tomar decises
com relao executar ou no um bloco de comandos.

Fig 1 - Fluxogramas dos algoritmos das aulas anteriores.


IEng - UFMT (2015/1)

9002 Aula 08

13 de abril de 2015

3 / 26

Reviso

Vimos, ainda, um procedimento de simulao (=teste de mesa), que


pode e deve ser utilizado para testar o algoritmo.
Esta tcnica de simulao composta apenas por dois passos:
I
I

Reservar espao para cada varivel


Executar em sequncia cada um dos passos do algoritmo.

IEng - UFMT (2015/1)

9002 Aula 08

13 de abril de 2015

4 / 26

Exemplo at 4

Programa que imprime todos os nmeros inteiros entre 1 e 4


...
printf(1);
printf(2);
printf(3);
printf(4);
...

IEng - UFMT (2015/1)

9002 Aula 08

13 de abril de 2015

5 / 26

Exemplo at 4

Programa que imprime todos os nmeros inteiros entre 1 e 4


...
printf(1);
printf(2);
printf(3);
printf(4);
...

IEng - UFMT (2015/1)

9002 Aula 08

13 de abril de 2015

5 / 26

Exemplo at 4

Programa que imprime todos os nmeros inteiros entre 1 e 4


...
printf(1);
printf(2);
printf(3);
printf(4);
...

IEng - UFMT (2015/1)

9002 Aula 08

13 de abril de 2015

5 / 26

Exemplo at 4

Programa que imprime todos os nmeros inteiros entre 1 e 4


...
printf(1);
printf(2);
printf(3);
printf(4);
...

IEng - UFMT (2015/1)

9002 Aula 08

13 de abril de 2015

5 / 26

Exemplo at 4

Programa que imprime todos os nmeros inteiros entre 1 e 4


...
printf(1);
printf(2);
printf(3);
printf(4);
...

IEng - UFMT (2015/1)

9002 Aula 08

13 de abril de 2015

5 / 26

Exemplo at 100
Programa que imprime todos os nmeros inteiros entre 1 e 100
...
printf(1);
printf(2);
printf(3);
printf(4);
printf(5);
printf(6);
...
printf(99);
printf(100);
...

IEng - UFMT (2015/1)

9002 Aula 08

13 de abril de 2015

6 / 26

Exemplo at 100
Programa que imprime todos os nmeros inteiros entre 1 e 100
...
printf(1);
printf(2);
printf(3);
printf(4);
printf(5);
printf(6);
...
printf(99);
printf(100);
...

IEng - UFMT (2015/1)

9002 Aula 08

13 de abril de 2015

6 / 26

Exemplo at 100
Programa que imprime todos os nmeros inteiros entre 1 e 100
...
printf(1);
printf(2);
printf(3);
printf(4);
printf(5);
printf(6);
...
printf(99);
printf(100);
...

IEng - UFMT (2015/1)

9002 Aula 08

13 de abril de 2015

6 / 26

Exemplo at 100
Programa que imprime todos os nmeros inteiros entre 1 e 100
...
printf(1);
printf(2);
printf(3);
printf(4);
printf(5);
printf(6);
...
printf(99);
printf(100);
...

IEng - UFMT (2015/1)

9002 Aula 08

13 de abril de 2015

6 / 26

Exemplo at 100
Programa que imprime todos os nmeros inteiros entre 1 e 100
...
printf(1);
printf(2);
printf(3);
printf(4);
printf(5);
printf(6);
...
printf(99);
printf(100);
...

IEng - UFMT (2015/1)

9002 Aula 08

13 de abril de 2015

6 / 26

Exemplo at 100
Programa que imprime todos os nmeros inteiros entre 1 e 100
...
printf(1);
printf(2);
printf(3);
printf(4);
printf(5);
printf(6);
...
printf(99);
printf(100);
...

IEng - UFMT (2015/1)

9002 Aula 08

13 de abril de 2015

6 / 26

Exemplo at 100
Programa que imprime todos os nmeros inteiros entre 1 e 100
...
printf(1);
printf(2);
printf(3);
printf(4);
printf(5);
printf(6);
...
printf(99);
printf(100);
...

IEng - UFMT (2015/1)

9002 Aula 08

13 de abril de 2015

6 / 26

Exemplo at 100
Programa que imprime todos os nmeros inteiros entre 1 e 100
...
printf(1);
printf(2);
printf(3);
printf(4);
printf(5);
printf(6);
...
printf(99);
printf(100);
...

IEng - UFMT (2015/1)

9002 Aula 08

13 de abril de 2015

6 / 26

Exemplo at 100
Programa que imprime todos os nmeros inteiros entre 1 e 100
...
printf(1);
printf(2);
printf(3);
printf(4);
printf(5);
printf(6);
...
printf(99);
printf(100);
...

IEng - UFMT (2015/1)

9002 Aula 08

13 de abril de 2015

6 / 26

Exemplo at 100
Programa que imprime todos os nmeros inteiros entre 1 e 100
...
printf(1);
printf(2);
printf(3);
printf(4);
printf(5);
printf(6);
...
printf(99);
printf(100);
...

IEng - UFMT (2015/1)

9002 Aula 08

13 de abril de 2015

6 / 26

Exemplo at n dado
Programa que imprime todos os nmeros inteiros entre 1 e n (dado).
Sabendo que os valores de n variam entre 1 e 100.
...
int n;
scanf("%d", &n);
printf(1);
if (n>=2)
printf(2);
if (n>=3)
printf(3);
/* repete 96 vezes o bloco acima */
if (n>=100)
printf(100);
...
IEng - UFMT (2015/1)

9002 Aula 08

13 de abril de 2015

7 / 26

Exemplo at n dado
Programa que imprime todos os nmeros inteiros entre 1 e n (dado).
Sabendo que os valores de n variam entre 1 e 100.
...
int n;
scanf("%d", &n);
printf(1);
if (n>=2)
printf(2);
if (n>=3)
printf(3);
/* repete 96 vezes o bloco acima */
if (n>=100)
printf(100);
...
IEng - UFMT (2015/1)

9002 Aula 08

13 de abril de 2015

7 / 26

Exemplo at n dado
Programa que imprime todos os nmeros inteiros entre 1 e n (dado).
Sabendo que os valores de n variam entre 1 e 100.
...
int n;
scanf("%d", &n);
printf(1);
if (n>=2)
printf(2);
if (n>=3)
printf(3);
/* repete 96 vezes o bloco acima */
if (n>=100)
printf(100);
...
IEng - UFMT (2015/1)

9002 Aula 08

13 de abril de 2015

7 / 26

Exemplo at n dado
Programa que imprime todos os nmeros inteiros entre 1 e n (dado).
Sabendo que os valores de n variam entre 1 e 100.
...
int n;
scanf("%d", &n);
printf(1);
if (n>=2)
printf(2);
if (n>=3)
printf(3);
/* repete 96 vezes o bloco acima */
if (n>=100)
printf(100);
...
IEng - UFMT (2015/1)

9002 Aula 08

13 de abril de 2015

7 / 26

Exemplo at n dado
Programa que imprime todos os nmeros inteiros entre 1 e n (dado).
Sabendo que os valores de n variam entre 1 e 100.
...
int n;
scanf("%d", &n);
printf(1);
if (n>=2)
printf(2);
if (n>=3)
printf(3);
/* repete 96 vezes o bloco acima */
if (n>=100)
printf(100);
...
IEng - UFMT (2015/1)

9002 Aula 08

13 de abril de 2015

7 / 26

Exemplo at n dado
Programa que imprime todos os nmeros inteiros entre 1 e n (dado).
Sabendo que os valores de n variam entre 1 e 100.
...
int n;
scanf("%d", &n);
printf(1);
if (n>=2)
printf(2);
if (n>=3)
printf(3);
/* repete 96 vezes o bloco acima */
if (n>=100)
printf(100);
...
IEng - UFMT (2015/1)

9002 Aula 08

13 de abril de 2015

7 / 26

Exemplo at n dado
Programa que imprime todos os nmeros inteiros entre 1 e n (dado).
Sabendo que os valores de n variam entre 1 e 100.
...
int n;
scanf("%d", &n);
printf(1);
if (n>=2)
printf(2);
if (n>=3)
printf(3);
/* repete 96 vezes o bloco acima */
if (n>=100)
printf(100);
...
IEng - UFMT (2015/1)

9002 Aula 08

13 de abril de 2015

7 / 26

Repetindo...

Se observarmos com ateno, perceberemos que, nestes casos, blocos de


comandos so executados vrias vezes (repetidamente) para obter o
resultado.

IEng - UFMT (2015/1)

9002 Aula 08

13 de abril de 2015

8 / 26

Estruturas de repetio

Permitem que uma sequncia de comandos seja executada repetidas


vezes. Cada uma destas execues chamada de iterao.
A execuo termina quando um critrio de parada atingido.
Veremos o comando while que implementa uma construo do tipo
Enquanto-Faa.

IEng - UFMT (2015/1)

9002 Aula 08

13 de abril de 2015

9 / 26

Construo Enquanto-Faa
Nesta construo, o critrio de parada testado antes que a
sequncia de comandos da ao seja executada. Deste modo, a ao
executada enquanto a condio for verdadeira.

Fig. 2 - Fluxograma.
IEng - UFMT (2015/1)

9002 Aula 08

13 de abril de 2015

10 / 26

Construo Enquanto-Faa

Trs questes so fundamentais:


Qual ao deve ser repetida?
Quantas vezes a repetio deve ser realizada?
Qual condio pode ser utilizada para representar esta repetio?

Importante
Lembre-se de que um algoritmo deve sempre terminar. A condio
projetada deve deixar de ser verdadeira em algum momento. Por isto, a
ao deve alterar as variveis envolvidas na condio de parada.

IEng - UFMT (2015/1)

9002 Aula 08

13 de abril de 2015

11 / 26

Construo Enquanto-Faa

Trs questes so fundamentais:


Qual ao deve ser repetida?
Quantas vezes a repetio deve ser realizada?
Qual condio pode ser utilizada para representar esta repetio?

Importante
Lembre-se de que um algoritmo deve sempre terminar. A condio
projetada deve deixar de ser verdadeira em algum momento. Por isto, a
ao deve alterar as variveis envolvidas na condio de parada.

IEng - UFMT (2015/1)

9002 Aula 08

13 de abril de 2015

11 / 26

Construo Enquanto-Faa
Vamos refletir novamente sobre problema de imprimir os nmeros inteiros
entre 1 e 100.
Qual ao deve ser executada?
R: Impresso dos nmeros 1, 2, 3, ... 100
Ideia: Utilizar uma varivel, por exemplo, i para representar os
nmeros. Iniciar i com valor 1. Incrementar i repetidamente.
Quantas vezes a ao deve ser repetida?
R. 100 vezes.
Qual condio pode ser utilizada para representar esta repetio?
R. Como a varivel i indica quantas repeties foram executadas,
podemos utiliz-la diretamente. Nossa condio pode ser, por
exemplo, i 100.

IEng - UFMT (2015/1)

9002 Aula 08

13 de abril de 2015

12 / 26

Construo Enquanto-Faa
Vamos refletir novamente sobre problema de imprimir os nmeros inteiros
entre 1 e 100.
Qual ao deve ser executada?
R: Impresso dos nmeros 1, 2, 3, ... 100
Ideia: Utilizar uma varivel, por exemplo, i para representar os
nmeros. Iniciar i com valor 1. Incrementar i repetidamente.
Quantas vezes a ao deve ser repetida?
R. 100 vezes.
Qual condio pode ser utilizada para representar esta repetio?
R. Como a varivel i indica quantas repeties foram executadas,
podemos utiliz-la diretamente. Nossa condio pode ser, por
exemplo, i 100.

IEng - UFMT (2015/1)

9002 Aula 08

13 de abril de 2015

12 / 26

Construo Enquanto-Faa
Vamos refletir novamente sobre problema de imprimir os nmeros inteiros
entre 1 e 100.
Qual ao deve ser executada?
R: Impresso dos nmeros 1, 2, 3, ... 100
Ideia: Utilizar uma varivel, por exemplo, i para representar os
nmeros. Iniciar i com valor 1. Incrementar i repetidamente.
Quantas vezes a ao deve ser repetida?
R. 100 vezes.
Qual condio pode ser utilizada para representar esta repetio?
R. Como a varivel i indica quantas repeties foram executadas,
podemos utiliz-la diretamente. Nossa condio pode ser, por
exemplo, i 100.

IEng - UFMT (2015/1)

9002 Aula 08

13 de abril de 2015

12 / 26

Construo Enquanto-Faa
Vamos refletir novamente sobre problema de imprimir os nmeros inteiros
entre 1 e 100.
Qual ao deve ser executada?
R: Impresso dos nmeros 1, 2, 3, ... 100
Ideia: Utilizar uma varivel, por exemplo, i para representar os
nmeros. Iniciar i com valor 1. Incrementar i repetidamente.
Quantas vezes a ao deve ser repetida?
R. 100 vezes.
Qual condio pode ser utilizada para representar esta repetio?
R. Como a varivel i indica quantas repeties foram executadas,
podemos utiliz-la diretamente. Nossa condio pode ser, por
exemplo, i 100.

IEng - UFMT (2015/1)

9002 Aula 08

13 de abril de 2015

12 / 26

Construo Enquanto-Faa
Vamos refletir novamente sobre problema de imprimir os nmeros inteiros
entre 1 e 100.
Qual ao deve ser executada?
R: Impresso dos nmeros 1, 2, 3, ... 100
Ideia: Utilizar uma varivel, por exemplo, i para representar os
nmeros. Iniciar i com valor 1. Incrementar i repetidamente.
Quantas vezes a ao deve ser repetida?
R. 100 vezes.
Qual condio pode ser utilizada para representar esta repetio?
R. Como a varivel i indica quantas repeties foram executadas,
podemos utiliz-la diretamente. Nossa condio pode ser, por
exemplo, i 100.

IEng - UFMT (2015/1)

9002 Aula 08

13 de abril de 2015

12 / 26

Construo Enquanto-Faa
Vamos refletir novamente sobre problema de imprimir os nmeros inteiros
entre 1 e 100.
Qual ao deve ser executada?
R: Impresso dos nmeros 1, 2, 3, ... 100
Ideia: Utilizar uma varivel, por exemplo, i para representar os
nmeros. Iniciar i com valor 1. Incrementar i repetidamente.
Quantas vezes a ao deve ser repetida?
R. 100 vezes.
Qual condio pode ser utilizada para representar esta repetio?
R. Como a varivel i indica quantas repeties foram executadas,
podemos utiliz-la diretamente. Nossa condio pode ser, por
exemplo, i 100.

IEng - UFMT (2015/1)

9002 Aula 08

13 de abril de 2015

12 / 26

Construo Enquanto-Faa

Fig. 3 - Fluxograma.
IEng - UFMT (2015/1)

9002 Aula 08

13 de abril de 2015

13 / 26

Comando while
O comando while utilizado para executar um bloco de comandos
enquando uma condio for satisfeita

Sintaxe do while
while (condicao) {
ao;
}
Funcionamento:
Passo 1: Testa condio:
Se condio for verdadeira, executa o Passo 2.
Se condio for falsa, executa o Passo 4 (pula o bloco de
comandos).
Passo 2: Executa o bloco de comandos.
Passo 3: Volta para o Passo 1.
Passo 4: Executa os comandos fora do bloco repetitivo.
IEng - UFMT (2015/1)

9002 Aula 08

13 de abril de 2015

14 / 26

Comando while
O comando while utilizado para executar um bloco de comandos
enquando uma condio for satisfeita

Sintaxe do while
while (condicao) {
ao;
}
Funcionamento:
Passo 1: Testa condio:
Se condio for verdadeira, executa o Passo 2.
Se condio for falsa, executa o Passo 4 (pula o bloco de
comandos).
Passo 2: Executa o bloco de comandos.
Passo 3: Volta para o Passo 1.
Passo 4: Executa os comandos fora do bloco repetitivo.
IEng - UFMT (2015/1)

9002 Aula 08

13 de abril de 2015

14 / 26

Imprimindo os 100 primeiros nmeros inteiros.

...
i = 1;
while(i <= 100) {
printf(%d, i);
i = i + 1;
}
...

IEng - UFMT (2015/1)

9002 Aula 08

13 de abril de 2015

15 / 26

Imprimindo os 100 primeiros nmeros inteiros.

...
i = 1;
while(i <= 100) {
printf(%d, i);
i = i + 1;
}
...

IEng - UFMT (2015/1)

9002 Aula 08

13 de abril de 2015

15 / 26

Imprimindo os 100 primeiros nmeros inteiros.

Fig. 3 - Relao entre o fluxograma e a construo.

IEng - UFMT (2015/1)

9002 Aula 08

13 de abril de 2015

16 / 26

Imprimindo os n primeiros nmeros inteiros.

int i = 1, n;
scanf("%d", &n);
while (i <= n) {
printf("%d ", i);
i++;
}

IEng - UFMT (2015/1)

9002 Aula 08

13 de abril de 2015

17 / 26

Exerccio

Exerccio
Calcule a diviso inteira de dois numeros positivos usando apenas soma e
subtrao.

IEng - UFMT (2015/1)

9002 Aula 08

13 de abril de 2015

18 / 26

Soluo em C

...
scanf("%d %d", &dividendo, &divisor);
contador = 0;
while (dividendo >= divisor) {
dividendo = dividendo - divisor;
contador++;
}
...

IEng - UFMT (2015/1)

9002 Aula 08

13 de abril de 2015

19 / 26

Simulao Manual - Recapitulando

Simulando cdigo
Bem simples: Existem apenas 2 passos.
I
I

Reservar os espaos para os nossos objetos


Executar em sequncia cada um dos passos do algoritmo.

IEng - UFMT (2015/1)

9002 Aula 08

13 de abril de 2015

20 / 26

Simulando

...
scanf("%d %d", &dividendo, &divisor); /*1*/
contador = 0; /*2*/
while (dividendo >= divisor) { /*3*/
dividendo = dividendo - divisor; /*3.1*/
contador++; /*3.2*/
}
...

IEng - UFMT (2015/1)

9002 Aula 08

13 de abril de 2015

21 / 26

Simulando

...
scanf("%d %d", &dividendo, &divisor); /*1*/
contador = 0; /*2*/
while (dividendo >= divisor) { /*3*/
dividendo = dividendo - divisor; /*3.1*/
contador++; /*3.2*/
}
...

Reservando espao para as variveis

IEng - UFMT (2015/1)

9002 Aula 08

13 de abril de 2015

21 / 26

Simulando
...
scanf("%d %d", &dividendo, &divisor); /*1*/
contador = 0; /*2*/
while (dividendo >= divisor) { /*3*/
dividendo = dividendo - divisor; /*3.1*/
contador++; /*3.2*/
}
...

Reservando espao para as variveis


Aps executar a linha 1.
Tipo inteiro positivo inteiro positivo
Nome
dividendo
divisor
Valor
21
7
IEng - UFMT (2015/1)

9002 Aula 08

inteiro positivo
contador
?
13 de abril de 2015

21 / 26

Simulando
...
scanf("%d %d", &dividendo, &divisor); /*1*/
contador = 0; /*2*/
while (dividendo >= divisor) { /*3*/
dividendo = dividendo - divisor; /*3.1*/
contador++; /*3.2*/
}
...

Reservando espao para as variveis


Aps executar a linha 2.
Tipo inteiro positivo inteiro positivo
Nome
dividendo
divisor
Valor
21
7
IEng - UFMT (2015/1)

9002 Aula 08

inteiro positivo
contador
0
13 de abril de 2015

21 / 26

Simulando
...
scanf("%d %d", &dividendo, &divisor); /*1*/
contador = 0; /*2*/
while (dividendo >= divisor) { /*3*/
dividendo = dividendo - divisor; /*3.1*/
contador++; /*3.2*/
}
...

Aps executar a linha 3.1.


Tipo inteiro positivo
Nome
dividendo
Valor
14

IEng - UFMT (2015/1)

inteiro positivo
divisor
7

9002 Aula 08

inteiro positivo
contador
0

13 de abril de 2015

21 / 26

Simulando
...
scanf("%d %d", &dividendo, &divisor); /*1*/
contador = 0; /*2*/
while (dividendo >= divisor) { /*3*/
dividendo = dividendo - divisor; /*3.1*/
contador++; /*3.2*/
}
...

Aps executar a linha 3.2.


Tipo inteiro positivo
Nome
dividendo
Valor
14

IEng - UFMT (2015/1)

inteiro positivo
divisor
7

9002 Aula 08

inteiro positivo
contador
1

13 de abril de 2015

21 / 26

Simulando
...
scanf("%d %d", &dividendo, &divisor); /*1*/
contador = 0; /*2*/
while (dividendo >= divisor) { /*3*/
dividendo = dividendo - divisor; /*3.1*/
contador++; /*3.2*/
}
...

Aps executar a linha 3.1.


Tipo inteiro positivo
Nome
dividendo
Valor
7

IEng - UFMT (2015/1)

inteiro positivo
divisor
7

9002 Aula 08

inteiro positivo
contador
1

13 de abril de 2015

21 / 26

Simulando
...
scanf("%d %d", &dividendo, &divisor); /*1*/
contador = 0; /*2*/
while (dividendo >= divisor) { /*3*/
dividendo = dividendo - divisor; /*3.1*/
contador++; /*3.2*/
}
...

Aps executar a linha 3.2


Tipo inteiro positivo
Nome
dividendo
Valor
7

IEng - UFMT (2015/1)

inteiro positivo
divisor
7

9002 Aula 08

inteiro positivo
contador
2

13 de abril de 2015

21 / 26

Simulando
...
scanf("%d %d", &dividendo, &divisor); /*1*/
contador = 0; /*2*/
while (dividendo >= divisor) { /*3*/
dividendo = dividendo - divisor; /*3.1*/
contador++; /*3.2*/
}
...

Aps executar a linha 3.1.


Tipo inteiro positivo
Nome
dividendo
Valor
0

IEng - UFMT (2015/1)

inteiro positivo
divisor
7

9002 Aula 08

inteiro positivo
contador
2

13 de abril de 2015

21 / 26

Simulando
...
scanf("%d %d", &dividendo, &divisor); /*1*/
contador = 0; /*2*/
while (dividendo >= divisor) { /*3*/
dividendo = dividendo - divisor; /*3.1*/
contador++; /*3.2*/
}
...

Aps executar a linha 3.2.


Tipo inteiro positivo
Nome
dividendo
Valor
0

IEng - UFMT (2015/1)

inteiro positivo
divisor
7

9002 Aula 08

inteiro positivo
contador
3

13 de abril de 2015

21 / 26

Simulao Manual - Exerccio

Simulando cdigo
Simule o algoritmo para dividendo igual 35 e divisor igual 6.

IEng - UFMT (2015/1)

9002 Aula 08

13 de abril de 2015

22 / 26

Soluo em C (completo)
#include <stdio.h>
int main() {
int dividendo, divisor, contador;
// l dividendo e divisor
scanf("%d %d", &dividendo, &divisor);
// realiza a diviso
contador = 0;
while (dividendo >= divisor) {
dividendo = dividendo - divisor;
contador++;
}
// mostra resultado da diviso
printf("%d\n", contador);
return 0;
}
IEng - UFMT (2015/1)

9002 Aula 08

13 de abril de 2015

23 / 26

Casos especiais do while


Casos especiais
1

O que acontece se a condio for falsa na primeira vez?


while (a!=a) a = a+1;
R: Ele nunca entra na repetio (loop).

O que acontece se a condio for sempre verdadeira?


while (a==a) a = a+1;
R: Ele entra na repetio e nunca sai (loop infinito).

O que acontece no programa de diviso quando o dividendo menor que o


divisor?

IEng - UFMT (2015/1)

9002 Aula 08

13 de abril de 2015

24 / 26

Casos especiais do while


Casos especiais
1

O que acontece se a condio for falsa na primeira vez?


while (a!=a) a = a+1;
R: Ele nunca entra na repetio (loop).

O que acontece se a condio for sempre verdadeira?


while (a==a) a = a+1;
R: Ele entra na repetio e nunca sai (loop infinito).

O que acontece no programa de diviso quando o dividendo menor que o


divisor?

IEng - UFMT (2015/1)

9002 Aula 08

13 de abril de 2015

24 / 26

Casos especiais do while


Casos especiais
1

O que acontece se a condio for falsa na primeira vez?


while (a!=a) a = a+1;
R: Ele nunca entra na repetio (loop).

O que acontece se a condio for sempre verdadeira?


while (a==a) a = a+1;
R: Ele entra na repetio e nunca sai (loop infinito).

O que acontece no programa de diviso quando o dividendo menor que o


divisor?

IEng - UFMT (2015/1)

9002 Aula 08

13 de abril de 2015

24 / 26

Exerccio

Faa um programa que l um nmero n e imprime o resultado da


soma
n
X

i=1
2

Faa um programa que l um nmero n e imprime o fatorial de n


(segundo exerccio da lista).

Faa um programa que l dois nmeros inteiros n e a e imprime o


resultado de an .

IEng - UFMT (2015/1)

9002 Aula 08

13 de abril de 2015

25 / 26

Nas prximas aulas...

Nas prximas aulas veremos:


Outras construes iteartivas e seus respectivos comandos em C:
1
2

Para-Faa - for
Repita-At - do...while

Outros problemas cujas solues envolvem o uso de comandos de


repetio.

IEng - UFMT (2015/1)

9002 Aula 08

13 de abril de 2015

26 / 26

Você também pode gostar