Tipi di variabili
Qui di seguito vengono elencati i tipi interi, che non accettano cioè la virgola.
Type | Range | Format |
Integer | -32768..32767 | Signed 16-bit |
Cardinal | 0..2147483647 | Unsigned 32-bit |
Shortint | -128..127 | Signed 8-bit |
Smallint | -32768..32767 | Signed 16-bit |
Longint | -2147483648..2147483647 | Signed 32-bit |
Byte | 0..255 | Unsigned 8-bit |
Word | 0..65535 | Unsigned 16-bit |
Qui di seguito vengono elencati i tipi reali, che ovviamente possono essere utilizzati come interi, tuttavia sono molto più lenti (non più di tanto tuttavia).
Type | Range | Significant digits | Size in bytes |
Real | 2.9 x 10-39 .. 1.7 x 1038 | 11-12 | 6 |
Single | 1.5 x 10-45 .. 3.4 x 1038 | 7-8 | 4 |
Double | 5.0 x 10-324 .. 1.7 x 10308 | 15-16 | 8 |
Extended | 3.4 x 10-4932 .. 1.1 x 104932 | 19-20 | 10 |
Comp | -263+1 .. 263 -1 | 19-20 | 8 |
Currency | -922337203685477.5808.. 922337203685477.5807 | 19-20 | 8 |
Per dichiarare una variabile ricordo che si deve utilizzare la dicitura Var nome_variabile: tipo; ad esempio
Var Var1,
Var2,
Var3 : Integer;
R1,
R2,
R3 : Real;
Le Stringhe: giochiamo con le lettere
Un tipo particolare ch merita una trattazione a parte sono le stringhe: dovete pensare ad
una stringa come una linea di un quaderno nella quale potete immettere testo, numeri
nonchè caratteri come linee apostrofi etc.
Il compilatore condidererà stringa tutto ciò che trova tra due apici, ad esempio quando
è stato mostrata la sintassi di WriteLn si è detto che il testo andava immesso tra due
apici, questo perchè altro non era che una stringa!
L'esempio che segue chiarisce l'utilizzo delle stringhe.
{$APPTYPE CONSOLE}
Program Stringhe;
Uses
Forms;
Var Nome: String;
Begin
Write('Inserisci il tuo nome: ');
ReadLn(Nome);
WriteLn;
WriteLn;
Write('Benvenuto ');
Write(Nome);
WriteLn(' nel fantastico mondo della programmazione Pascal');
Nome:= Nome + ' premi invio per continuare';
WriteLn(Nome);
ReadLn;
End.
Il programma non è poi niente di così complesso: si limita a chiedere una stringa e
rivisualizzarla sucessivamente, appare più interessante l'uso di Nome:= Nome + ' premi
invio per continuare', questa istruzione altro non fa che accodare al nome precedentemente
immesso un altro pezzo di stringa. Si descriveranno qui di seguito alcuni metodi usati
frequentemente con le strighe:
AnsiUpperCase
AnsiUpperCase serve per rendere maiuscola una stringa, l'esempio che segue chiarirà
meglio l'utilizzo:
{$APPTYPE CONSOLE}
Program Stringhe;
Uses
SysUtils;
Var S: String;
Begin
Write('Inserisci una stringa: ');
ReadLn(S);
WriteLn;
WriteLn;
WriteLn(AnsiUpperCase(S) + ' questa stringa è stata passata a maiuscola');
WriteLn('premi invio');
ReadLn;
End.
La prima volta che si guarda il listato si potrebbe essere messi in crisi dalla
sostituzione di Uses Forms con Uses SysUtils, nella realtà questo avviene in quanto la
funzione AnsiUpperCase è dichiarata nella unit SysUtils, ad ogni modo verrà chiarito
questo concetto nel Capitolo 7, questo non deve assolutamente spaventarvi!
INTtoSTR ed STRtoINT
Questi due metodi servono per passare da stringhe a interi e viceversa: ad esempio avendo
una variabile I contenente un dato numero che deve essere trasferito nella stringa S si
dovrà eseguire la seguente riga di codice:
S:= INTtoSTR(I);
Il che tradotto in linguaggio parlato starebbe ne più ne meno a: -trasforma l'intero I in
stringa e memorizza il risultato nella variabile S.
Viceversa STRtoINT provvede all'operazione inversa, volete magari un esempio? Questo è
compito vostro!
Non preoccupativi a capire tutto quanto esposto in questo capitolo in special modo le tabelle ad inizio capitolo, vi basti sapere che se volete fare una divisione dovrete utilizzare un Real, se lavorate su operazioni intere l'integer è d'obbligo. Inoltre si noti che le istruzioni INTtoSTR ed STRtoINT non lavorano con i numeri con la virgola. Ora rilassatevi, rileggete i capitoli precedenti e soprattutto provate a creari piccoli programmi VOSTRI utilizzando magari le stringhe, d'ora in avanti la strada sarà in salita.
Corso interamente creato da VB.