CAPITOLO 4

Tipi di variabili

Nella programmazione Pascal si dovrà imparare le sottili differenze che esistono tra le variabili numeriche, qui di seguito riporto un estratto della guida ufficiale di Delphi:

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.