Pascal/Input e Output: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Ramac (discussione | contributi)
m punteggiatura e contenuto
Ramac (discussione | contributi)
apici
Riga 1:
{{Programmare in Pascal}}
 
Finalmente ci occupiamo del grande problema dell''''input-output'''.<br/>Gran parte delle funzioni di input-output sono contenute nella libreria standard di Pascal. Queste funzioni sono tipicamente:
*''read()'' e ''readln()'' che permettono di leggere l'input dell'utente da tastiera inserendo fra le parentesi il nome della variabile in cui vogliamo salvare il dato. La differenza consiste nel cursore, che nel caso di un'istruzione ''read'' continua sulla stessa riga mentre nel caso di ''readln'' va a capo.
*''write()'' e ''writeln()'' che permettono, come gi&agrave; visto in precedenza, di stampare su schermo il contenuto delle parentesi. Anche in questo caso la differenza &egrave; relativa all'andare a capo
Riga 30:
* stampa del messaggio di benvenuto
* altra funzione dipendente dalla libreria ''crt'' che permette di leggere un solo carattere qualunque da tastiera. Vedremo che questa funzione &egrave; molto utilizzata per risolvere un problema riguardo all'esecuzione dei programmi compilati finora.
==Read e Readln==
Il contenuto delle parentesi che seguono l'istruzione ''read'' o ''readln'' può essere una o più variabili. Nel secondo caso, in fase di esecuzione, i diversi valori di input vanno inseriti separandoli con uno spazio.
==Write e Writeln==
Il contenuto della parentesi che seguono l'istruzione ''writeln'' può essere sia un'espressione (stringa o numerica), sia una variabile sia una combinazione.<br/>
La parte testuale &egrave; compresa tra due apici; per separare il testo dalle variabili si usa una virgola, come nell'esempio precedente.
 
Nel caso si voglia inserire un carattere apice nella propria stringa (per inserire ad esempio un apostrofo) è necessario usare due apici di seguito. Un'istruzione come questa
Il contenuto della parentesi che seguono l'istruzione ''writeln'' può essere sia un'espressione (stringa o numerica), sia una variabile sia una combinazione
writeln('L'unica soluzione...');
La parte testuale &egrave; compresa tra due apici; per separare il testo dalle variabili si usa una virgola,come nell'esempio precedente.
genera infatti un errore, poiché l'apostrofo tra La e unica è interpretato dal compilatore come un apice che delimita la fine della stringa. Un'istruzione invece come questa
writeln('L<nowiki>''</nowiki>unica soluzione...');
è interpretata correttamente.
 
Alcuni compilatori, soprattutto i più vecchi, possono inoltre dare problemi nella stampa dei caratteri accentati: in questi casi l'accento può essere sostituito con un apostrofo che, per il motivo esposto sopra, si deve indicarecon due apici. Un'istruzione come
writeln('Il valore è ');
è preferibile sostituirla quindi con
writeln('Il valore e<nowiki>''</nowiki> ');
(che stampa ''Il valore e<nowiki>'</nowiki>'').
 
==Formattare i numeri==
Quando la variabile inserita nel ''writeln'' è di tipo ''real'' si deve specificare con quante cifre dev'essere rappresentato il numero e quante di queste devono essere decimali; per fare ci&ograve; si utilizza la sintassi
nome_della_variabile : numero_di_cifre : numero_di_cifre_decimali;
Ad esempio:
writeln(n:8:6);
Ovvero, il contenuto della variabile ''n'' verrà rappresentato con 8 cifre, di cui 6 decimali.
<br/>Una istruzione come questa
writeln(n);
stamperebbe invece il valore di ''n'' in notazione esponenzionaleesponenziale (ad esempio 3.4E4 anzich&egrave;anziché 34.000).
 
Riguardo input e output, si può anche fare un esempio con i numeri di con un programma che calcoli il quadrato di un numero reale: