Вы находитесь на странице: 1из 18

Algoritmos

Aula 05 Loops (for)

Fernando Kenji Kamei

fkenjikamei@gmail.com
O que j vimos at agora...

Definio de variveis
Tipos de variveis
Operadores lgicos e aritmticos
Estruturas Condicionais
IF
IF / ELSE
IF / ELSE IF / ELSE
Algoritmos e Linguagem de Programao | Prof. Fernando Kenji Kamei 2 de 18
Hoje veremos...

Fazendo loops contados com o for

Algoritmos e Linguagem de Programao | Prof. Fernando Kenji Kamei 3 de 18


Problema...

Vimos em aulas anteriores o desafio para Adivinhar um


nmero. Lembra?
Era informado diretamente no programa um nmero
secreto, e o usurio precisava digitar um nmero inteiro,
tentando adivinhar o nmero secreto. De acordo com o
chute do usurio, informava:
Parabns, voc acertou o nmero secreto!
Chute maior que o nmero secreto
Chute menor que o nmero secreto

Algoritmos e Linguagem de Programao | Prof. Fernando Kenji Kamei 4 de 18


Adivinhacao.c
#include <stdio.h>

int main() {
int numeroSecreto = 10;
int chute;

printf("JOGO DE ADIVINHAO\n\n");
printf("Digite um nmero inteiro qualquer: ");
scanf("%d", &chute);

if(chute == numeroSecreto) {
printf("Parabns, voc acertou!");
}
else if(chute > numeroSecreto) {
printf("Chute maior que o nmero
secreto");
}
else {
printf("Chute menor que o nmero
secreto");
}
Algoritmos e Linguagem de Programao | Prof. Fernando Kenji Kamei 5 de 18
}
Analisando o cdigo de Adivinhacao.c

O jogo s permite um nico chute!


E se quisermos dar a chance de X quantidade de chutes ao
usurio? Como fazer?
Copiar e colar o cdigo a quantidade de vezes que queremos?

No parece uma boa soluo, pois se


precisarmos mudar esse trecho de cdigo,
teremos que modific-lo em todas essas partes

Algoritmos e Linguagem de Programao | Prof. Fernando Kenji Kamei 6 de 18


Fazendo loops contados com o for

Podemos utilizar uma estrutura de repetio LOOP: for

for(contador; condio; incremento) { }


for(int i=0; i<=3; i++) { }

O que acontece?

Algoritmos e Linguagem de Programao | Prof. Fernando Kenji Kamei 7 de 18


Fazendo loops contados com o for

for(int i=0; i<3; i++) {


printf(Oi);
}

Qual o resultado disso?

Algoritmos e Linguagem de Programao | Prof. Fernando Kenji Kamei 8 de 18


Fazendo loops contados com o for

for(int i=0; i<3; i++) {


printf(Oi); Esse trecho foi
repetido 3 vezes
}
Oi
Oi
Oi
Algoritmos e Linguagem de Programao | Prof. Fernando Kenji Kamei 9 de 18
Adivinhacao.c usando o FOR
#include <stdio.h>

int main() {
int numeroSecreto = 10;
int chute;
for(int i=0; i<=4; i++) {
printf("JOGO DE ADIVINHAO\n\n");
printf("Digite um nmero inteiro qualquer: ");
scanf("%d", &chute);

if(chute == numeroSecreto) {
printf("Parabns, voc acertou!");
Quantas vezes
} esse trecho ser
else if(chute > numeroSecreto) {
printf("Chute maior que o nmero secreto"); repetido?
}
else {
printf("Chute menor que o nmero secreto");
}
}

Algoritmos e Linguagem de Programao | Prof. Fernando Kenji Kamei 10 de 18


Vamos praticar...

Exerccio 01:
Elabore um programa que imprimi os nmeros de 1 a 100.

Exerccio 02:
Elabore um programa que alm de imprimir os nmeros de 1
a 100, informa se o mesmo par ou impar.

Algoritmos e Linguagem de Programao | Prof. Fernando Kenji Kamei 11 de 18


Vamos praticar...

Exerccio 03:
Vamos melhorar o programa de Adivinhacao.c

Alm de repetirmos, precisamos permitir que o jogador tenha


direito 5 chutes. Deve informar no final com quantos chutes
ele acertou o nmero secreto. Ou, informar tambm caso no
tenha acertado.

Algoritmos e Linguagem de Programao | Prof. Fernando Kenji Kamei 12 de 18


Percebeu algum problema?

No jogo de Adivinhao, temos um problema ao utilizar


o FOR. Pois o for executa um bloco de cdigo sem
saber o que tem dentro. Sendo assim, devemos dar uma
ordem ao for para que ele pare. Para isso, utilizamos o
break.

Algoritmos e Linguagem de Programao | Prof. Fernando Kenji Kamei 13 de 18


Utilizando o comando break...
#include <stdio.h>

int main() {
int numeroSecreto = 10;
int chute;
for(int i=0; i<=4; i++) {
printf("JOGO DE ADIVINHAO\n\n");
printf("Digite um nmero inteiro qualquer: ");
scanf("%d", &chute);

if(chute == numeroSecreto) {
printf("Parabns, voc acertou!"); Utilizando o
break; break para parar
}
else if(chute > numeroSecreto) { a execuo do
printf("Chute maior que o nmero secreto");
} programa
else {
printf("Chute menor que o nmero secreto");
}
}
Algoritmos e Linguagem de Programao | Prof. Fernando Kenji Kamei 14 de 18
Utilizando o comando break...

Assim, o loop pode ser parado quando a condio dele no


for mais atendida, ou utilizando o break (foro a
parada na execuo).

Algoritmos e Linguagem de Programao | Prof. Fernando Kenji Kamei 15 de 18


Um pouco mais sobre o for...

for(contador; condio; incremento) { }

Contador: podemos inici-lo no valor que queremos. Por


exemplo, podemos comea-lo com 2.
Condio: at que a condio seja atingida (>, <, >=, <=,
==)
Incremento: o incremento ++ (incrementa +1), mas
podemos utilizar +2, +3... Ou ainda, o decremento --
(decrementa -1)

Algoritmos e Linguagem de Programao | Prof. Fernando Kenji Kamei 16 de 18


Vamos praticar...

Exerccio 04:
Elabore um programa que imprimi os nmeros de 100 at
chegar a 0.

Algoritmos e Linguagem de Programao | Prof. Fernando Kenji Kamei 17 de 18


Perguntas?

No esqueam de
ler os slides da
prxima aula

Algoritmos e Linguagem de Programao | Prof. Fernando Kenji Kamei 18 de 18

Вам также может понравиться