| Va messo in evidenza che il programma di
prova, in accordo con quanto richiesto da INnumer,
provvede a definire
per se stesso e per questa procedura le
3 variabili:
|
“string:Array [0..77] of
Char", il vettore dei caratteri acquisiti, di
dimensione
massima di 78 caratteri, che pụ essere riempita anche
parzialmente. |
| “lung:integer",
il numero intero dei caratteri effettivamente acquisiti (rispetto a quelli che era
possibile inserire, indicati da "max") |
| “num:longint",
il numero intero del valore numerico
decimale corrispondente alla stringa
numerica Ascii acquisita. |
Esempio di
Applicazione |
|
|
|
|
PROGRAM Prova_INnumer;
USES Crt, giobe;
VAR
i,lung:integer;
num:longint;
tasto:char;
stringa:array [0..77] of
char;
PROCEDURE Stampa
(rig,col,txt,sfo:integer);
BEGIN
ViaCur; textcolor (0); textbackground (3);
gotoxy(col,rig);
FOR i:=1 TO 76 DO write (' ');
gotoxy(col+1,rig);
write('Immesse ',lung,' ');
IF lung=1 THEN write('cifra')
ELSE write('cifre');
write(' decimali,');
textcolor (txt); textbackground (sfo);
write(' ');
FOR i:=1 TO lung DO write
(stringa[i]);
write(' ');
textcolor (0); textbackground (3);
write ('; il numero decimale corrispondente è ');
textcolor (txt); textbackground
(sfo);
write(' ',num,' ');
textcolor (0); textbackground (3); write('.');
textcolor(0); textbackground(7);
END;
PROCEDURE Messaggio
(riga,A,B,C:integer);
BEGIN
gotoxy(3,riga);
write(' Acquisizione di numero con max 10 cifre, ');
IF A=1 THEN write (' con ')
ELSE write ('senza');
write (' cornice ');
gotoxy(3,riga+1);write(' ');
IF B=1 THEN write (' con ')
ELSE write ('senza');
write (' giustificazione automatica a destra ');
IF C=1 THEN begin gotoxy(3,riga+2);
FOR i:=1 TO 56 DO write(' ');
END;
BEGIN
ViaCur;
Riempi1 (7,1,'°');
Riempi3 (1,1,0,7,' ');
Riempi3 (25,25,0,7,' ');
gotoxy (6,1); textcolor (0);
write('Test per la Procedura ~INnumer~');
Messaggio (3,1,0,1);
INnumer (num,lung,stringa,10,4,64,15,1,1,0);
Stampa (7,3,15,1);
Messaggio (9,1,1,1);
INnumer (num,lung,stringa,10,10,64,14,4,1,1);
Stampa (13,3,14,4);
Messaggio (15,0,0,0);
INnumer(num,lung,stringa,10,15,64,15,1,0,0);
Stampa (18,3,15,1);
Messaggio (20,0,1,0);
INnumer(num,lung,stringa,10,20,64,14,4,0,1);
Stampa (23,3,14,4);
textcolor(0); textbackground(7);
gotoxy (27,25);
write(' Premere un tasto per continuare');
ViaCur; tasto:=readkey;
Riempi3 (25,25,15,0,' ');
gotoxy (1,24);
RipCur;
END.
|
|