Tipuri de date, variabile, constante, etichete, expresii in Pascal



LIMBAJ DE PROGRAMARE PASCAL Tipuri de date , variabile , constante , etichete , expresii.


Un program in limbajul Pascal contine o descriere a actiunilor ce trebuie sa fie executate de calculator si o descriere a datelor ce sint manevrate de aceste actiuni. Actiunile sint descrise prin instructiuni, iar datele prin declaratii sau definitii. Prin tip de date intelegem o multime de valori.



Se disting trei categorii de tipuri de date:

simple elementare;

compuse structurate;

de referinta pointer.

In general, tipurile de date sint definite explicit prin declaratii type iar operatiile asociate prin declaratii function sau procedure sint specifice programului in care apar. Exista insa tipuri de date elementare de interes mai general, numite tipuri predefinite. Valorile unui tip de date sint referite prin variabile sau constante. Anumite constante sint predefinite.


type I = T;


unde I este un identificator numit numele tipului, iar T specificatia sa. Declaratia variabilelor este precedata de cuvantul cheie var , a constantelor de cuvant cheie const , iar a etichetelor, de cuvant cheie label .

Numele I poate fi folosit pentru referirea la tipul T in declaratiile ulterioare de variabile sau pentru definirea altor tipuri. Exista tipuri de date anonime, definite implicit prin declaratii de variabile de forma:

var v _ 1 , ... , v _ n : T ;

Ex:

label 1, 10 ;

type bin

var bit : bin ;

cifra : 0 . .

const zero = 0 ;

var i : integer ;

etichetele 1 si 10 , tipul bin cu elementele 0 si 1, variabila bit de tipul bin, variabila I de tipul predefinit integer precum si constanta zero avand valoarea 0.

Tipuri de date simple si predefinite.


Tipurile simple sant de trei categorii: predefinite, enumerare si subdomeniu. Tipurile simple se mai numesc si tipuri scalare.

Exista cinci tipuri de date predefinite: integer , real , boolean , char si text.

Tipul integer - este o multime de numere intregi cuprinse intre cel mai mic si cel mai mare numar intreg ce se pot reprezenta pe un calculator gazda al limbajului. Exemplu: elementul -15 al tipului integer poate fi reprezentat prin literele -15 sau -17B.

Fie x reprezentarea in baza 2 a unui numar intreg . Reprezentarea in cod complementar a lui x este:



unde baza b a sistemului de enumeratie, limitele l si l ale exponentului e si numarul n + 1.

Exemplu: b=2, -128<e < 127 iar n = 23.


Elementele tipului real se reprezinta in programe prin literale numerice de formele i . f , i . fEs sau iEs , eventual precedate de semnul + sau - , unde i si f sint numere zecimale intregi fara semn reprezentand partea intreaga si respectiv partea fractionara a literalului numeric.

Exemplu : -0,25 al tipului real poate apare in programe Pascal in una din formele -0.25, -25E-2, -25.0E-2.

In programele Pascal elementele tipului real se presupun a fi scrise in baza 10. Reprezentarea sau memorarea acestora in calculator se face in virgula mobila pe 2 cuvinte 32 biti - simpla precizie sau pe 4 cuvinte 64 biti - dubla precizie. Pozitie binara 15 prima din stanga, in notatia uzuala a primului cuvant este a semnului, in pozitiile 7 - 14 ale primului cuvant se memoreaza caracteristica exponentului marit cu 128, iar in rest se memoreaza mantisa partea fractionara fara prima pozitie dupa virgula.

Caracteristica este: c= 128 + e = 2 + 1= 10000001

Primul cuvant al reprezentarii in calculator este 0 10000001 000000, iar al doilea cuvant 0000000000000000 in baza 2. Reprezentarea octala este 40200, respectiv 0. In mod analogic, -5.0 se va reprezenta prin numerele octale 140640 si 0.

Cel mai mare numar real reprezentabil in simpla precizie este

1 2 10 .

Cel mai mic numar real pozitiv reprezentabil este:

2 = 2 10 .


Numerele reale de forma 0,1 x .... x i,part intervalul
in 2 subintervale de lungime (1- ½) 2 = 2 .


Tipul boolean - contine doua elemente referite prin constantele predefinite false si true . Operatiile predefinite ale aceluiasi tip and, or , not definesc o structura de algebra booleana .

Tipul char - este o multime finita si ordonata de caractere ce contine, printre altele, litere, cifre, si caracterul spatiu.

Reprezentarea interna a unui element de acest tip se face pe 1 byte si are ca valoare codul ASCHII al caracterului respectiv.

In implementarea Pascal q si r se calculeaza prin instructiunile urmatoare:


q : = a div b; r : = a mod b;

if (a < 0) and ( r < > 0) then

begin

r : = r + abs (y) ;

if b < 0 then q : = q + 1 else q : = q - 1

end

In limbajul standard, q si r se calculeaza prin:

q : = a div b; r : = a mod b;

if. (a < 0 ) and ( r < > 0 ) then

if b > 0 then q : = q - 1

else begin q : = q + 1 ; r : = r - 2 * b end

EXEMPLU:

begin

writeln ( ' 8 div 3 = ' , 8 div 3 );

writeln ( ' -8 div 3 = ' , -8 div 3 );

writeln (' 8 div -3 =' , 8 div (-3) );

writeln (' -8 div -3 =' , -8 div (-3) );

writeln (' 8 mod 3 =' , 8 mod 3 );

writeln (' -8 mod 3 =' , -8 mod 3 );

writeln (' 8 mod -3)=', 8 mod (-3) );

writeln (' -8 mod -3 = ', -8 mod (-3) );

end


Operatori rationali uzuali = , < > , < , <= , >, >= conduc la rezultate de tip boolean. Operanzii pot fi de tip integer prin reprezentari binare bit cu bit.

Ex: not 1 este -2 , 6 or 3 este 7 , 6 and 3 este 2 .

Pentru tipurile integer , char si boolean exista functiile succ (succesor) si pred (predecesor).

Pred (c) = chr (ord (c) -1) si succ (c) = chr (ord (c) + 1).

Operatii si functii predefinite asociate.

Ex:

var

a : integer ;

b : real ;

c : char ;

d : boolean ;

begin

c : = ' x ' ;

a : = 1 ;

b : = 1.5 ;

a : = a + trunc ( -b) + round ( b) ;

a : = a mod a div a + ord ( ' x ') ;

b : = succ (a) + b / b - pred ( succ (a) );

c : = chr (ord (c) );

d : = ( b < = b ) and true ;

write ( a , b , c , d )

end.


Tipuri de date enumerare


Un tip enumerare este o multime ordonata de valori specificate prin identificatori.