
Bom, além do controle while existe um outro muito usado. É o for. Na verdade, o for pode ser feito num loop while normalmente, mas é mais prático o uso do for nos casos em que ele se aplica. For é usado para a criação de contadores. Lembram de brincar de esconder? Vou contar até 100...
for (variavel=1; variavel<=100; variavel++) { comandos }
Tradução usando um while:
variavel=1;
while (variavel<=100) {
comandos;
variavel++;
}
- "Opa, Guilherme. Esse tal de variavel++ a gente também não viu ainda!"
- "espera um pouco que explico tudo."
Como funcionou o while:
- a variável foi setada com um valor inicial, no caso, 1.
- enquanto a variável não chegar a um valor, repete o conjunto de comandos. Mas nesse conjunto, no final, tem um comando que incrementa a variável.
Vamos fazer um exemplo para rodar no DS. Novamente copie a PAlibTemplate e renomeie. Abra o projeto e dê dois clicks em main.c. Digite o seguinte, após "PA_InitVBL();":
s8 x=1;
PA_InitText(0,0);
PA_SetTextCol(0,31,31,31);
PA_OutputSimpleText(0,0,0,"while");
PA_OutputSimpleText(0,16,0,"for");
x=1;
while (x<20) {
PA_OutputText(0,0,x,"%d",x);
x++;
}
for (x=1; x<20; x++) {
PA_OutputText(0,16,x,"%d",x);
}
O que o programa faz:
- Inicializa o texto na tela de baixo com a cor branca
- Faz o loop while com x começando em 1, verificando que x seja menor que 20
- imprime na coluna 0, linha x, o resultado de x
- acresce x
- encerra o loop while
- faz um for com x somando de 1 até 19 (último valor menor que 20)
- imprime na coluna 16, linha x, o valor de x
- encerra o loop for
Exercício:
Faça um programa que mostre os números pares de 2 a 40 na tela de cima do DS. A resposta (só a parte a ser incluída no main.c) estará nos comentários.
9 comentários:
Resposta do exercício.
s8 x=1;
PA_InitText(1,0);
PA_SetTextCol(1,31,31,31);
PA_OutputSimpleText(1,0,0,"numero pares de 2 a 40");
for (x=2; x<=40; x+=2) {
PA_OutputText(1,0,x/2,"%d",x);
}
PS: A gente quer fazer rápido para colocar a resposta do exercício e acaba esquecendo de colocar todas as letras. O correto é numeros pares e não numero pares. hehehehehe
Puxa... e eu achando que teria um comando especial para pares, que desleixo de minha parte. Era só colocar +2...
Nossa eu fiz bem diferente o exercício...acho que o meu também tá certo porém não consegui imprimir na tela corretamente, dá uma olhada:
s8 x=1;
PA_InitText(0,0);
PA_SetTextCol(0,31,31,31);
PA_OutputSimpleText(0,0,0,"Exercicio");
for (x=1; x<=20; x++) {
if (x%2==0) {
PA_OutputText(0,0,x,"%d",x);
}
}
for (x=21; x<=40; x++) {
if (x%2==0) {
PA_OutputText(0,16,x,"%d",x);
}
}
Ele começou a imprimir até o 20, porém, quando ele vai imprimir o 22 que seria na coluna 16 ele começa na mesma linha do 20 da coluna 0. O que eu fiz de errado?
Rodolpho, pelo que eu entendi tu queres escrever somente nas linhas pares. Então no teu segundo comando PA_OutputText, tu tens que colocar x-20 ao invés de x, senão ele já começa escrevendo na linha 22.
Aaaah tá valeu cara, é que não consegui identificar todos os parâmetros, agora intendi direitinho.
Valeu e parabéns pelas matérias.
Só uma duvida na linha de comando PA_OutputText(1,0,x/2,"%d",x); o "X/2" é para que?
É que no for, eu estou amentando o x de 2 em 2. Mas eu quero que a resposta saia uma linha em baixo da outra, então eu preciso da metade de x.
Postar um comentário