• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Kriptosgeek

[Ajuda] Estou com um problema de logica (Resolvido).

5 mensagens neste tópico

Boas!

Eu estou com um problema ao usar o ciclo While.

Eis um exemplo que eu testei em Javascript e em pascal e que desconheço este erro:

program teste;
uses wincrt;
var a:Integer;
Begin
a:=0;
While (a<50) Do
Begin
a:=a+5;
Write (' ',a);
end;
Write (a);
end.

Resultado deste programa na tela:

5 10 15 20 25 30 35 40 45 5050

Reparem que o 50 so deveria aparecer uma vez e aparece duas vezes e na segunda não foi respeitado o espaço.

A minha questão é: Porque que isto acontece? O 50 foi repetido e ainda mais o espaço não apareceu! Porque?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

lol...tu pedes duas vezes para escrever o 50 LOL.... tipo..

program teste;
uses wincrt;
var a:Integer;
Begin
a:=0;
While (a<50) Do
Begin
a:=a+5;
Write (' ',a);
end;
Readln;
end.

tenta assim...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Exacto, o segundo 50 que te aparece é da penultima linha:

.

.

.

end;

Write (a);

end.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

program teste;
uses wincrt;
var a:Integer;
Begin
a:=0;
While (a<50) Do
Begin
a:=a+5;
Write (' ',a);
end;
Write (a);
end.

Resultado deste programa na tela:

5 10 15 20 25 30 35 40 45 5050

Já está esclarecido a tua dúvida, mas já agora deixo aqui uma nota:

Não deves fazer isto por esta ordem:

While (a<50) Do
Begin
a:=a+5;
Write (' ',a);
end;

Mas sim nesta:

While (a<50) Do
Begin
Write (' ',a);
a:=a+5;
end;

O incremento deve aparecer no fim do ciclo while, porque como estás a fazer é:

Testa se a é menor de 50

Depois incrementas 5 valores

Depois fazes o write

Obviamente que quando fazes o write, a variável pode ou não ser menor do que 50!!

Cumpr. bk@ero  :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Que cromo!!!!  :wallbash: :cheesygrin::P:D

Nem reparei nisso!!!!!!

Deve ter sido ao fazer copy paste de um programa que eu estava a fazer que la deve ter ficado!!

E eu aqui a matar a cabeça com esta porcaria!!!!  :cheesygrin: :cheesygrin: :2funny: :idiot2:

Post escusado!!!!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora