Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Pascal - Caccia all'errore! [2]
Forum - Pascal - Caccia all'errore! [2]

Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 1:00
Giovedì, 01/01/1970
Questo topic è stato chiuso dal moderatore

program grafica;
uses crt,graph;
var grdriver,grmode,x,y:integer;
procedure assegnagrafica;
begin
   grdriver:=detect;
   initgraph(grdriver,grmode,'C:\tp\bgi');
end;
procedure disegnaomino(x,y,colore:integer);
begin
   setcolor(colore);
   circle(x,y,10);
   rectangle(x-10,y+10,x+10,y+40);
   line(x-10,y+20,x-15,y+20+15);
   line(x+10,y+20,x+15,y+20+15);
   line(x-5,y+40,x-10,y+40+20);
   line(x+5,y+40,x+10,y+40+20);
end;
begin
   assegnagrafica;
   setbkcolor(black);
   x:=20;y:=200;
   disegnaomino(x,y,white);
   repeat until keypressed;
   repeat
      delay(500);
      disegnaomino(x,y,black);
      x:=x+20;
      disegnaomino(x,y,white)
   until (x>getmaxx-50);
   setcolor(yellow);
   outtextxy(10,400,'Premi un tasto');
   repeat until keypressed
end.



L'omino che si muove, lo visualizza, ma alla fine non mi visualizza la scritta "Premi un tasto". Cosa ho sbagliato?

PM
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 14:32
Domenica, 18/02/2007
Ho notato che se levo il primo "repeat until keypressed;", il secondo poi viene letto, ferma il programma, e quindi visualizzo il messaggio "Premi un tasto". Ma perchè deve esserci per forza un solo "repeat until keypressed"? Non riesco proprio a spiegarmelo. :-?:-?:-?

PM
Avatar
siddy (Normal User)
Newbie


Messaggi: 8
Iscritto: 08/08/2006

Segnala al moderatore
Postato alle 19:11
Martedì, 28/08/2007
Repeat until keypressed sta a significare:
Ripeti finché la funzione keypressed assume il valore di true.

La seconda volta che il codice legge il keypressed, lo dà per true perché non è stato riportato a false nel codice.

Per farlo ti basta scrivere subito dopo la prima delle due istruzioni "readkey;"; poi ti dovrebbe funzionare...

PM
Avatar
gamsah (Ex-Member)
Newbie


Messaggi: 3
Iscritto: 05/05/2006

Segnala al moderatore
Postato alle 23:50
Lunedì, 05/11/2007
quoto :)

PM
Avatar
WARRIOR (Ex-Member)
Guru


Messaggi: 627
Iscritto: 30/03/2007

Segnala al moderatore
Postato alle 14:29
Martedì, 06/11/2007
Se hai qualche problema, apri un nuovo topic, non ne richiami uno vecchio per dire "quoto".

Topic locked.

PM