tipuri-de-date-in-pascal.pdf
TRANSCRIPT
-
8/11/2019 Tipuri-de-Date-in-PASCAL.pdf
1/11
Proiect PASCAL
Tipuri de date in PASCAL
Profesor:Turcan Miroslav
Liceul Academic Igor Vieru
Clasificarea si utilizarea tipurilor de date din programele PASCAL
-
8/11/2019 Tipuri-de-Date-in-PASCAL.pdf
2/11
2
In cadrul programelor PASCAL variabilele au rolul de a rezerva in memoria
calculatorului un spatiu in care urmeaza sa fie inscrise date primate de la utilizator sau
rezultate in timpul diverselor prelucrari.
Tipurile de date care pot fi luate de variabile sunt urmatoarele:
Tip numeric
Tip logic Tip caracterRezervarea spatiului de memorie se face in partea de declaratii a programului
PASCAl, spre exemplu avand:
var k,i:integer ;r:char;produs:array[1..50] of string;pret:array[1..50]of integer;prettot:longint;
In exemplul anterior, se folosesc tipuri de data numeric si character, identificatorii
variabilelor fiind urmatorii: k , i , r , produs , prt , prettot
Datele numerice in Pascal sunt de mai multe tipuri, dupa cum urmeaza:
Pentru numere intregi:
INTEGERpermit stocarea numerelor intregiintre32768 si 32767
SHORTINTpermit stocarea numerelor intre -128 si 127
LONGINTpermit stocarea numerelor intre 2147483648 si 2147483647
BYTE - - permit sticarea numerelor intre 0 si 255
WORDpermit stocarea numerelor intre 0 si 65535
Pentru numere reale:
REAL
SINGLE
DOUBLE
EXTENDED
COMP
In cazul datelor reale afisarea se face folosind caracterul E urmat de o cifra, ceea ce
inseamna de fapt 10 la puterea indicata de cifra respectiva.
Iata un mic programel care ne afiseaza un numar introdus de la tastatura ca numar real:
program afisarereal;uses crt;varnum: real ;
beginclrscr;
write ('introduceti numarul pentru a fi afisat in format real n=');readln (num);writeln ('formatul de data tip real este n=' , num);
readkey ;
-
8/11/2019 Tipuri-de-Date-in-PASCAL.pdf
3/11
3
end.
Cod sursa: numar_re.pas
Iata cum functioneaza:
Daca se doreste ca utilizatorul sa poata citi numerele introduse intr-un format inteligibil se
realizeaza formatarea datelor de iesire, specificandu-se numarul de caractere ce vor fi
afisate INAINTE si DUPA virgula, astfel:
NUMAR:INAINTE:DUPA
INAINTE SI DUPA REPREZINTA CIFRE. EXEMPLU: NUMAR:8:2 este un numar cu
8 cifre inainte si doua cifre dupa virgula.
Programul anterior care va fi transformat astfel incat sa afiseze o cifra introdusa de la
tastatura folosind atat caracterul E cat si un format definit de utilizator arata asa:
program afisarereal;uses crt;varnum: real ;
beginclrscr;
write ('introduceti numarul pentru a fi afisat in format real n=');readln (num);writeln ('formatul de data tip real este n=' , num);writeln ('formatul inteligibil n=' , num:8:2);
readkey ;end.
Cod sursa: numar_re.pas
Iata cum functioneaza:
-
8/11/2019 Tipuri-de-Date-in-PASCAL.pdf
4/11
4
Datele de tip sir de caractere se declara folosind STRING ( sir de caractere ).
Iata un programel care foloseste date de tip STRING:
program sircaractrere;uses crt;varnume , prenume : string ;
beginclrscr;
write ('Care este numele tau de familie ? ');readln (nume);write ( 'care este prenumele tau ? ');readln (prenume);writeln ('Ma bucur de cunostinta, ',nume,' ', prenume);readkey ;
end.
Cod sursa : sircarac.pas
Iata cum functioneaza:
-
8/11/2019 Tipuri-de-Date-in-PASCAL.pdf
5/11
5
Datele de tip logic se declara folosind folosinf BOOLEAN
Iata un programel care foloseste date de tip BOOLEAN:
PROGRAM LOGICTEST;USES CRT;VARTEST : BOOLEAN ;TERMEN1 , TERMEN2 , REZULTAT1 , REZULTAT2 :INTEGER ;
BEGINCLRSCR;WRITELN ( 'SA INVATAM ADUNAREA A DOUA NUMERE INTREGI.');WRITE ('INTRODUCETI PRIMUL NUMAR = ');READLN (TERMEN1);WRITE ('INTRODUCETI AL DOILEA NUMAR = ');READLN (TERMEN2);WRITE ('INTRODUCETI REZULTATUL ADUNARII = ');READLN (REZULTAT1);REZULTAT2:=TERMEN1+TERMEN2 ;IF REZULTAT1=REZULTAT2 THEN
BEGINTEST := TRUE ;
WRITELN ('VALOAREA DE ADEVAR A CORECTITUDINII OPERATIEI ESTE ', TEST);END
ELSEBEGINTEST := FALSE ;WRITELN ('VALOAREA DE ADEVAR A CORECTITUDINII OPERATIEI ESTE '
, TEST);END ;
READKEY;END.
Cod sursa: testlogi.pas
Iata cum functioneaza:
-
8/11/2019 Tipuri-de-Date-in-PASCAL.pdf
6/11
6
Daca programul PASCAL pe care intentionam sa il cream presupune operarea cu un
numar mare sau foarte mare de date, acestea vor trebui declarate in cadtul unor variabile
de tip tablouARRAY - care poate avea 1 sau mai multe dimensiuni. Tabloul cu odimensiune este de fapt un sir, tabloul cu doua dimensiuni este o matrice.
Declararea tablourilor se realizeaza astfel:
Array [tipindice1, tipindice2] of TipElemente;
TipElemente reprezinta unul din tipurile de date despre care am vorbit in paginile
anterioare.
Iata in continuare codul sursa al unui program care realizeaza un listing al produselor
cumparate, pretul lor si pretul total:
-
8/11/2019 Tipuri-de-Date-in-PASCAL.pdf
7/11
7
program calculproduse;uses crt;var k,i:integer ;r:char;produs:array[1..50] of string;pret:array[1..50]of integer;
prettot:longint;begin
clrscr;k:=0;{cate produse se introduc}prettot:=0;writeln ('doriti sa introduceti date pe bon');
writeln ('d/n ? ');
readln (r);while (upcase(r)='D') dobegin
write ('introduceti numele produsului : ');
k:=k+1;readln (produs[k]);write ('introduceti pretul : ');readln (pret[k]);prettot:=prettot+pret[k];writeln ('mai introduceti produse ? d/n ') ;readln (r);
end ;writeln ('*********************************');for i:=1 to k do
beginwriteln (produs[i],', pret: ',pret[i]);
end;
writeln ('*********************************');writeln ('* aveti de achitat: ' , prettot:10 ,' *' ) ;writeln ('*********************************');write ('apasati orice tasta pentru iesire...');readkey;
end.
Cod sursa: bon.pas
Iata cum functioneaza programul:
-
8/11/2019 Tipuri-de-Date-in-PASCAL.pdf
8/11
8
Dezvoltarea programului astfel incat sa permita operarea cu preturi cu virgula si sa
permita si introducerea de cantitati pentru fiecare produs este prezentata in continuare:
program calculproduse;uses crt;var k,i:integer ;r:char;produs: array[1..50] of string;pret: array [1..50] of real ;cantitate : array [1..50] of integer;valoare: array [1..50] of real ;
prettot: real;begin
clrscr;k:=0;{cate produse se introduc}prettot:=0;writeln ('doriti sa introduceti date pe bon');
writeln ('d/n ? ');
readln (r);while (upcase(r)='D') dobegin
write ('introduceti numele produsului : ');
k:=k+1;readln (produs[k]);write ('introduceti cantitatea : ');readln (cantitate[k]);write ('introduceti pretul : ');readln (pret[k]);valoare[k]:=cantitate[k]*pret[k] ;prettot:=prettot+valoare[k];writeln ('mai introduceti produse ? d/n ') ;readln (r);
end ;writeln ('******************************************************');writeln ('*produs*pret*cantitate************************valoare*');
for i:=1 to k do
-
8/11/2019 Tipuri-de-Date-in-PASCAL.pdf
9/11
9
beginwriteln ('*',produs[i],' ' ,pret[i]:8:2, ' ', cantitate[i] ,
', valoare: ',valoare[i]:8:2,'*');end;
writeln ('******************************************************');writeln ('* aveti de achitat: ' , prettot:10:2
,' *' ) ;writeln ('******************************************************');write ('apasati orice tasta pentru iesire...');readkey;
end.
Cod sursa: bon_mare.pas
Iata ce afiseaza la rulare pe ecran:
In afara tipurilor de date prezentate, in PASCAL se mai pot folosi si tipuri de date definite
de utilizator.
Defiitiile de tip sunt plasate sub cuvantul cheiei TYPE, in cadrul programului trebuint sa
se gaseasca dupa definirea constantelor si inaintea declaratiilor de variabile.
Iata un program care foloseste TYPE:
-
8/11/2019 Tipuri-de-Date-in-PASCAL.pdf
10/11
10
program inregistrari;uses crt;
type elev=recordnume: string;
varsta: integer;end;vare:array [1..5] of elev;i:integer;cautv:integer;
beginclrscr;writeln ('introduceti numele, varsta a 5 de elevi');for i:=1 to 5 dobeginwriteln ('introduceti numele');
readln ( e[i].nume );writeln ('introduceti varsta ');readln ( e[i].varsta);end ;write ('introduceti varsta maxima cautata = ');readln (cautv);for i:=1 to 5 dobeginif ( e[i].varsta < cautv) thenbeginwriteln (e[i].nume , ' ' , ' ' , e[i].varsta);end;end;
readkey;end.
Cod sursa: elevi.pas
Iata ce afiseaza la rulare:
Bibliografie:
-
8/11/2019 Tipuri-de-Date-in-PASCAL.pdf
11/11
11
1. Suport curs
2. Daniela SaruAlgoritmi si limbaje de programare (Manual)Editura Didactica
si Pedagogica, Bucuresti , 1998
3. Ghid PascalOKKO Software OradeaSoftware educational