Pascal/Input e Output: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
BimBot (discussione | contributi)
m Robot: Changing template: Programmare in Pascal
Ramac (discussione | contributi)
m sintassi colorata
Riga 6:
 
Un semplice esempio basato sull'uso delle variabili e dell'input-output potrebbe essere un modo per personalizzare un programma, salvando in una stringa il nome dell'utente per inserirlo nelle domande.
<source lang=pascal>
 
program username;
var name: String[50];
uses crt;
begin
clrscr;
writeln('Inserisci il nome');
readln(name);
clrscr;
writeln('Benvenuto, ', name);
readkey;
end.
</source>
 
Analizziamo come al solito il listato riga per riga:
* dichiarazione del nome
* dichiarazione della variabile ''name'' di tipo Stringa di dimensione 50
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.
 
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 problema relativo agli apici nelle stringhe, si deve indicare con due apici. Un'istruzione come
<source lang=pascal>
writeln('Il valore è ');
</source>
è preferibile sostituirla quindi con
<source lang=pascal>
writeln('Il valore e<nowiki>''</nowiki> ');
writeln(che stampa ''Il valore e<nowiki>'</nowiki>'').;
</source>
(che stampa ''Il valore e''').
 
=== Formattare i numeri ===
Line 46 ⟶ 50:
nome_della_variabile : numero_di_cifre [: numero_di_cifre_decimali];
Ad esempio:
<source lang=pascal>
writeln(n:8:6);
writeln(10+2n:48:6);
writeln(n10+2:4);
</source>
Ovvero, nel primo caso il contenuto della variabile ''n'' verrà rappresentato con 8 cifre di cui 6 decimali; nel secondo caso verranno stampati 2 spazi vuoti e poi il numero 12.
<br/>Una istruzione come questa
<source lang=pascal>
writeln(n);
writeln(n:8:6);
</source>
stamperebbe invece il valore di ''n'' in notazione esponenziale (ad esempio 3.4E4 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:
<source lang=pascal>
 
program quadrato_di_un_numero;
var n,r:real;
uses crt;
begin
clrscr;
writeln('Inserisci un numero reale');
readln(n);
clrscr;
r:=sqr(n);
writeln('Il quadrato del numero inserito è',r:10:6');
readkey;
end.
</source>
 
*il programma stampa la stringa 'Inserisci un numero reale';
*con ''readln(n)'' assegna alla variabile n un valore immesso da tastiera;