Tipurile Intregi

Īntregii sunt numere ca: -80, -12, 0, 1 si 907. Matematic, īntregii se extind la infinit (īn ambele sensuri - pozitiv sau negativ), dar īn programarea calculatoarelor exista limite pentru reprezentarea īntregilor impuse de hardware. Īn implementarile uzuale ale limbajului PASCAL, o valoare tipica a limitei superioare (pentru calculatoarele mici) este 32767, dar calculatoarele puternice permit valori mult mai mari.

Indiferent de limita actuala, constanta maxint este predefinita sa contina pentru fiecare tip de calculator valoarea maxima a īntregului ce poate fi reprezentat īn memoria calculatorului respectiv. Apoi, īn functie de modul de reprezentare (atāt īn program cāt si īn calculator) cel mai mic īntreg negativ permis este, de regula, - maxint-1.

Remarca:

Nu exista o constanta predefinita minint. Exista doar daca o definiti dumneavoastra!

(Turbo) PASCAL 3.0 poate manipula īntregi numai īn domeniul [-32768; +32767]. (Turbo) PASCAL 4.0, 5.0 si 6.0, ca si (Borland) PASCAL 7.0, prin contrast, prevad cinci tipuri diferite de date de tip īntreg.

De exemplu, (Turbo) PASCAL 4.0, 5.0, 6.0 si (Borland) PASCAL 7.0 prevad tipurile de date longint care pot manipula īntregi pāna la 2147483647. Īn legatura cu aceasta, versiunile 4, 5, 6 si 7 ale limbajului PASCAL mai prevad tipuri īntregi (byte, shortint) mai mici decāt tipul de date integer (valoarea maxima 32767). In figurile 3.1 si 3.2 se prezinta diagrama de sintaxa pentru numere īntregi si o lista completa a tipurilor de date pentru (Turbo) PASCAL, versiunile 4.0, 5.0 si 6.0 si (Borland) PASCAL 7.0.

Diagrama de sintaxa a numerelor īntregi


cifra='0', '1', ..., '9'

a) Diagrama de sintaxa pentru numere īntregi exprimate zecimal


cifra_hex='0', '1', ..., '9','A','B', ..., 'F'

b) Diagrama de sintaxa pentru numere īntregi exprimate hexazecimal


  Remarca: Valorile īntregi pot fi exprimate si īn sistemul hexazecimal, cu conditia sa fie precedate de caracterul $. Reamintim ca sistemul hexazecimal utilizeaza 16 caractere, de la 0 la F, adica zece cifre (0 la 9) plus primele sase litere ale alfabetului (A la F) pentru valorile zecimale 10, 11, 12, 13, 14, 15. Asadar, īntregii hexazecimali sunt de la $0000 la $FFFF, altfel spus de la 0 la 65535 īn zecimal. Reprezentarea lui maxint īn memoria calculatorului este functie de numarul de biti (pozitii binare) ale unui cuvānt memorie (o pozitie binara nu poate avea decāt doua valori: 0 sau 1, iar 8 biti formeaza un byte sau octet). Pentru cele mai multe calculatoare, reprezentarea unui īntreg necesita 2 bytes, deci 16 biti (pozitii binare). O pozitie poate fi rezervata semnului.

Īn tabelul de mai jos sunt prezentate tipurile de date integer si extensiile sale:

  Valoare  
Tip Minima Maxima Semn Numar octeti
Shortint -128 127 Da 1
Byte 0 255 Nu 1
Integer -32768 32767 Da 2
Word 0 65535 Nu 2
Longint -2147483648 2147483647 Da 4

Variabilele de tip īntreg sunt comune īn programarea PASCAL. Utilizarea lor principala este pentru numararea unor obiecte (evenimente) sau ca indecsi ale unor variabile structurate.

De retinut domeniul limitat pe care variabilele de tip īntreg īl au la dispozitie.

Exemple: Declararea variabilelor de tip īntreg
VAR.............VAR..............VAR
.a:integer;......a,b,c:integer;.....a,
.b:integer;......a,b,c:integer;.....b,
.c:integer;......a,b,c:integer;.....c:integer;

Remarca: O valoare īntreaga poate fi de asemenea introdusa prin intermediul unei constante. Ea se scrie sub forma unei secvente de cifre precedate, eventual, de semnul + sau - .

(Exemplu: const pozitiv = + 80; negativ = -19325;)

Asupra datelor numerice de tip īntreg se pot executa operatii aritmetice: adunare, scadere, īnmultire, īmpartire cu rezultat de tip īntreg - care accepta numai operanzi de tip īntreg (div) si restul īmpartirii īntregi (mod) - operatie definita pentru operanzi de tip īntreg.


Operanzi binari de tipuri diferite

Sa presupunem ca variabila a este de tip integer, iar variabila b este de tip longint. Ce tip de variabila trebuie declarat pentru c astfel īncāt enuntul:

c := a + b;

sa fie corect ? Variabila c trebuie sa fie de tip longint.

Īn general, cānd exista o combinatie binara ce implica tipuri diferite de variabile numerice, atunci ambele tipuri de variabile sunt transformate īn ceea ce se numeste tipul comun de variabila. Tipul comun de variabila este tipul de variabila īncorporat cu cel mai restrāns domeniu care contine reuniunea valorilor ambelor tipuri de variabile (se mai numeste tipul "mai tare").

Reguli:
  • Rezultatul evaluarii unei expresii īntregi poate fi atribuit unei variabile īntregi sau reale;
  • Executia unei instructiuni (proceduri) read implica o conversie a numerelor introduse de utilizator de la tastatura la forma de reprezentare interna utilizata de calculator pentru numere. Eventualele blancuri ce preced caracterele numerice introduse de la tastatura vor fi ignorate de procedura read. (inclusiv [Enter]);
  • Executia unei instructiuni write implica o conversie - de la modul de reprezentare interna utilizat de calculator la valoarea zecimala afisata;
  • Pentru datele de tip numeric (īntreg) putem considera o serie de functii specifice, precum: pred, succ, abs, sqr etc.

*) Dumnezeu a creat īntregii - ce-i īn plus este munca omului. (Leopold Kronecker).