PDA

Visualizza la versione completa : [PASCAL] Come creare programma MATRIX


lomiz
02-11-2005, 15:21
Voglio creare un programmino tipo matrix.
Soltanto che non saprei come far trasportare nella riga sotto ogni lettera che l'utente scrive al momento in cui la scrive, ed anche come cancellare la singola lettera della riga precedente.
Mi sapete dire se c' qualche comando che mi puo aiutare?
grazie :ciauz:

LeleFT
03-11-2005, 14:37
Mi sa che devi utilizzare la Unit CRT e la procedura GotoXY().

Hai a disposizione la guida per ulteriori informazioni.


Ciao. :ciauz:

netarrow
03-11-2005, 20:55
dimmi se ti pu andare: http://www.pierotofy.it/data/programs/Pascal/Matrix10.zip

:ciauz:

lomiz
03-11-2005, 21:33
E' da piero che mi era venuta l'idea ma non era esattamente quello che volevo fare xk volevo far cadere a cascata le lettere digitate dall'utente. Non lettere predefinite dal programmatore o random come fa piero.

lomiz
04-11-2005, 16:47
Originariamente inviato da Mico:
__________________________________________________ _________________________________________
cmq x quanto riguarda il codice:

code:Program MATRIX;
USES wincrt;
var a,b:integer;
var c:char;
BEGIN
READLN (c);
for a:1 to 1000 d (*Mi da qua l'erroreTO expected but:found*)
BEGIN
b:=(a+1);
gotoxy (1,b);
WRITELN (d);
DELAY (250);
clrscr;
end;
REPEAT UNTIL KEYPRESSED
END.
penso ke devi scrivere for a:=1 to 1000 do

__________________________________________________ _______________________________________

Quando ho scritto il codice avevo dimenticato il do.
Ma anche corretto mi da sempre l'errore su TO.
Qualche consiglio?

:master:

LeleFT
04-11-2005, 16:49
L'errore dovuto al fatto che non hai usato la sintassi corretta del FOR:


FOR variabile := valore1 To valore2 Do
<istruzione>


Se noti nel tuo codice manca il simbolo di uguale dopo i due punti.

In effetti, quello che viene fatto dall'istruzione FOR assegnare il valore1 alla variabile ed incrementarla ad ogni ciclo fino a raggiungere il valore 2. Per questo stata adottata la stessa sintassi dell'assegnazione.


Ciao. :ciauz:

lomiz
04-11-2005, 17:21
Grazie leleFT. Ho aggiunto l'uguale dopo i due punti ma adesso mi da 6 errori!

Ecco il codice e gli errori:
__________________________________________________ ___________________
Program MATRIX;
USES wincrt;
var a,b:integer;
var c:char;
BEGIN
READLN (c);
for a:=1 to 1000 do
BEGIN
b:=(a+1);
gotoxy (1,b);(*Error:Identifier not found GOTOXY*.Error:Illegal expression*)
WRITELN (d); (*Error:Identifier not found D*)
DELAY (250);
clrscr; (*Error:Identifier not found CLRSCR*. Error illegal expression*)
end;
REPEAT UNTIL KEYPRESSED
END.

(*Fatal: There were 5 errors compiling module, stopping*)

__________________________________________________ ___________________

netarrow
04-11-2005, 18:13
direi che manca la uses crt

aggiungila cos:



USES wincrt, crt; { wincrt non so che }


Inoltre d non la vedo dichiarata.

:ciauz:

lomiz
04-11-2005, 21:53
Grazie netarrow. Quasi mi vergogno di aver fatto degli errori cos stupidi. Si vede che sono ai primi mesi di programmazione!
Avrei un'altro quesito da porre: possibile che l'utente possa inserire una seconda stringa mentre vede la prima che ha inserito scendere a cascata? In pratica mentre il programma usa il GOTOXY per la caduta della prima stringa si possono inserire altre stringe che si vedono cadere in contemporanea?
Non so se mi sono spiegato bene
Rimetto il codice principale:

Program MATRIX;
USES wincrt, crt;
var a,b:integer;
var c:string;
BEGIN
READLN (c);
for a:=1 to 1000 do
BEGIN
b:=(a+1);
gotoxy (1,b);
WRITELN (c);
DELAY (200);
clrscr;
end;
REPEAT UNTIL KEYPRESSED
END.

Loading