Pascal/Tipi di dati: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
ortografia
m Update syntaxhighlight tags - remove use of deprecated <source> tags
Riga 3:
 
Ricordiamo che la dichiarazione di una variabile segue questa sintassi:
<sourcesyntaxhighlight lang=pascal>
var
nome : tipo;
</syntaxhighlight>
</source>
 
== Integer ==
Riga 26:
 
Proviamo a fare un programma che utilizzi alcune operazioni. Ad esempio, il seguente programma valuta se un numero è pari o dispari:
<sourcesyntaxhighlight lang=pascal>
program Pari;
var n:integer;
Riga 35:
readln;
end.
</syntaxhighlight>
</source>
 
Il programma presenta alcuni costrutti che non abbiamo ancora visto, ma la cui interpretazione è semplice. Analizziamo come al solito riga per riga.
Riga 51:
Un semplice esempio di uso potrebbe essere la stampa della tabella dei codici ASCII.
 
<sourcesyntaxhighlight lang=pascal>
program ASCII;
var n:integer;
Riga 58:
writeln(n, ' ==> ', chr(n));
end.
</syntaxhighlight>
</source>
 
Come al solito analizziamo riga per riga.
Riga 68:
 
Per assegnare ad una variabile ''char'' un valore è necessario usare la notazione
<sourcesyntaxhighlight lang=pascal>
nome_variabile := 'carattere';
</syntaxhighlight>
</source>
I due caratteri ' (carattere apice) identificano un valore [[w:alfanumerico|alfanumerico]] e non numerico.
 
Riga 97:
Le variabili di tipo booleano si dichiarano con la parola riservata ''boolean''.
 
<sourcesyntaxhighlight lang=pascal>
var
variabile_booleana:boolean;
</syntaxhighlight>
</source>
Si inizializzano così:
<sourcesyntaxhighlight lang=pascal>
variabile_booleana:=true;
{oppure}
Riga 111:
{ma anche}
num_pari := (n mod 2 = 0);
</syntaxhighlight>
</source>
Potrebbe non essere immediata l'ultima espressione; il suo significato è: assegna alla variabile <code>num_pari</code> il valore dell'espressione <code>n mod 2 = 0</code>; questa espressione contiene un segno di uguaglianza (che è un operatore di confronto) e quindi restituisce ''vero'' o ''falso''.
L'utilizzo di variabili booleane è in genere limitato all'analisi di particolari aspetti dell'input da utente, o all'utilizzo come 'flag' nella programmazione più avanzata.
Riga 121:
La dichiarazione di una variabile string ha sintassi:
 
<sourcesyntaxhighlight lang=pascal>
nome_della_variabile : string[n];
</syntaxhighlight>
</source>
 
Ovvero afferma che la variabile ''nome_della_variabile'' può contenere una riga di massimo ''n'' caratteri.
Riga 129:
Come per le variabili ''char'', anche le variabili ''string'' necessitano una sintassi particolare per l'assegnazione: l'istruzione
 
<sourcesyntaxhighlight lang=pascal>
nome_variabile := 'Ma la volpe col suo balzo ha raggiunto il quieto fido 1234';
</syntaxhighlight>
</source>
 
assegna a nome variabile la stringa alfanumerica (in questo caso ''Ma la volpe col suo balzo ha raggiunto il quieto fido 1234''.
Riga 137:
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:
 
<sourcesyntaxhighlight lang=pascal>
writeln('L'unica soluzione...');
</syntaxhighlight>
</source>
 
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
 
<sourcesyntaxhighlight lang=pascal>
writeln('L''unica soluzione...');
</syntaxhighlight>
</source>
 
è interpretata correttamente.
Riga 151:
L'unico operatore possibile con il tipo string è l'operatore di concatenazione +, che è possibile capire con un esempio:
 
<sourcesyntaxhighlight lang=pascal>
var1 := 'Ma la volpe col suo balzo ';
var2 := 'ha raggiunto il quieto fido';
var3 := var1 + var2 + ' 1234';
</syntaxhighlight>
</source>
 
La variabile var3 alla fine di questo breve listato conterrà così il valore ''Ma la volpe col suo balzo ha raggiunto il quieto fido 1234'', in quanto le stringhe sono state concatenate in una stringa unica.
Riga 162:
 
Una funzionalità interessante relativa alle stringhe è l''''indicizzazione''', per la quale è possibile fare riferimento ad un carattere all'interno della stringa, usando la notazione
<sourcesyntaxhighlight lang=pascal>
variabile[n] {l'n-esimo carattere della stringa in variabile}
</syntaxhighlight>
</source>
 
Riguardo alle stringhe, ricordiamo la funzione <code>length</code> che restituisce la lunghezza di caratteri della stringa passata come paramero.
Riga 245:
* Scrivere un programma che prenda una misura di tempo in secondi e la scriva in giorni, ore, minuti e secondi.
{{cassetto|titolo=Soluzione|testo=
<sourcesyntaxhighlight lang=pascal>
program secondi;
var giorni, ore, min, sec: integer;
Riga 260:
readln;
end.
</syntaxhighlight>
</source>
}}
* Scrivere un programma che faccia il contrario, converta cioè una misura espressa in giorni, ore, minuti e secondi in secondi.
{{cassetto|titolo=Soluzione|testo=
<sourcesyntaxhighlight lang=pascal>
program secondi2;
var giorni, ore, min, sec: integer;
Riga 281:
readln;
end.
</syntaxhighlight>
</source>
}}
* Scrivere un programma "dado" che simuli il lancio di un dado usando la funziona ''random''.
{{cassetto|titolo=Soluzione|testo=
<sourcesyntaxhighlight lang=pascal>
program dado;
var d: integer;
Riga 294:
readln;
end.
</syntaxhighlight>
</source>
Per trasformare il numero restituito da ''randomize'' in un numero da 1 a 6, abbiamo usato questo procedimento:
* il valore minimo che restituisce è quasi 0, mentre quello massimo è quasi 1
Riga 303:
* Scrivere un programma che legga una valùta dall'utente e converta la misura in euro considerando la valute espressa in lire, e viceversa.
{{cassetto|titolo=Soluzione|testo=
<sourcesyntaxhighlight lang=pascal>
program convertitore;
uses crt;
Riga 322:
readln;
end.
</syntaxhighlight>
</source>
}}
[[Categoria:Pascal|Tipi di dati]]