Sunteți pe pagina 1din 11

Proiect PASCAL

Tipuri de date in PASCAL


Clasificarea si utilizarea tipurilor de date din programele PASCAL
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 caracter
Rezervarea spatiului de memorie se face in partea de declaratii a programului
PASCAl, spre eemplu avand:
var k,i:integer ;
r:char;
produs:array[1..50] of string;
pret:array[1..50]of integer;
prettot:longint;
In eemplul anterior, se folosesc tipuri de data numeric si c!aracter, identificatorii
variabilelor fiind urmatorii: " , i , r , produs , pr#t , prettot
$atele numerice in Pascal sunt de mai multe tipuri, dupa cum urmeaza:
Pentru numere intregi:
I%T&'&R ( permit stocarea numerelor intregiintre ( )*+,- si )*+,+
S./RTI%T ( permit stocarea numerelor intre 01*- si 1*+
L/%'I%T ( permit stocarea numerelor intre *12+2-),2- si *12+2-),2+
34T& 0 0 permit sticarea numerelor intre 5 si *66
7/R$ ( permit stocarea numerelor intre 5 si ,66)6
Pentru numere reale:
R&AL
SI%'L&
$/83L&
&9T&%$&$
C/:P
In cazul datelor reale afisarea se face folosind caracterul & urmat de o cifra, ceea ce
inseamna de fapt 15 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;
var
num: real ;
begin
clrscr;
*
rite !"introduceti numarul pentru a fi afisat in format real n#"$;
readln !num$;
riteln !"formatul de data tip real este n#" , num$;
readkey ;
end.
%od sursa: numar&re.pas
Iata cum functioneaza:
$aca se doreste ca utilizatorul sa poata citi numerele introduse intr0un format inteligibil se
realizeaza formatarea datelor de iesire, specificandu0se numarul de caractere ce vor fi
afisate I%AI%T& si $8PA virgula, astfel:
%8:AR:I%AI%T&:$8PA
I%AI%T& SI $8PA R&PR&;I%TA CI<R&. &9&:PL8: %8:AR:-:* este un numar cu
- 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 & cat si un format definit de utilizator arata asa:
program afisarereal;
uses crt;
var
num: real ;
begin
clrscr;
rite !"introduceti numarul pentru a fi afisat in format real n#"$;
readln !num$;
riteln !"formatul de data tip real este n#" , num$;
riteln !"formatul inteligibil n#" , num:':($;
readkey ;
end.
)
Cod sursa: numar=re.pas
Iata cum functioneaza:
$atele de tip sir de caractere se declara folosind STRI%' > sir de caractere ?.
Iata un programel care foloseste date de tip STRI%':
program sircaractrere;
uses crt;
var
nume , prenume : string ;
begin
clrscr;
rite !"%are este numele tau de familie ) "$;
readln !nume$;
rite ! "care este prenumele tau ) "$;
readln !prenume$;
riteln !"*a bucur de cunostinta, ",nume," ", prenume$;
readkey ;
end.
Cod sursa : sircarac.pas
2
Iata cum functioneaza:
$atele de tip logic se declara folosind folosinf 3//L&A%
Iata un programel care foloseste date de tip 3//L&A%:
+,-.,/* 0-.1%2342;
5434 %,2;
6/,
2342 : 7--03/8 ;
23,*381 , 23,*38( , ,39502/21 , ,39502/2( :1823.3, ;
73.18
%0,4%,;
:,12308 ! "4/ 186/2/* /;58/,3/ / ;-5/ 85*3,3 182,3.1."$;
:,123 !"182,-;5%321 +,1*50 85*/, # "$;
,3/;08 !23,*381$;
:,123 !"182,-;5%321 /0 ;-103/ 85*/, # "$;
,3/;08 !23,*38($;
:,123 !"182,-;5%321 ,39502/250 /;58/,11 # "$;
,3/;08 !,39502/21$;
,39502/2(:#23,*381<23,*38( ;
1= ,39502/21#,39502/2( 2>38
73.18
2342 :# 2,53 ;
:,12308 !"6/0-/,3/ ;3 /;36/, / %-,3%2125;1811 -+3,/2131 3423
" , 2342$;
38;
3043
73.18
2342 :# =/043 ;
:,12308 !"6/0-/,3/ ;3 /;36/, / %-,3%2125;1811 -+3,/2131 3423
" , 2342$;
38; ;
,3/;?3@;
38;.
%od sursa: testlogi.pas
6
Iata cum functioneaza:
$aca 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 tablou ( ARRA4 0 care poate avea 1 sau mai multe dimensiuni. Tabloul cu o
dimensiune este de fapt un sir, tabloul cu doua dimensiuni este o matrice.
$eclararea tablourilor se realizeaza astfel:
Arra@ Atipindice1, tipindice*B of Tip&lementeC
Tip&lemente 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:
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;Acate produse se introducB
prettot:#0;
riteln !"doriti sa introduceti date pe bon"$;
riteln !"dCn ) "$;
readln !r$;
hile !upcase!r$#";"$ do
begin
rite !"introduceti numele produsului : "$;
k:#k<1;
readln !produs[k]$;
rite !"introduceti pretul : "$;
readln !pret[k]$;
prettot:#prettot<pret[k];
riteln !"mai introduceti produse ) dCn "$ ;
readln !r$;
end ;
riteln !"DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD"$;
for i:#1 to k do
begin
riteln !produs[i],", pret: ",pret[i]$;
end;
riteln !"DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD"$;
riteln !"D aveti de achitat: " , prettot:10 ," D" $ ;
riteln !"DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD"$;
rite !"apasati orice tasta pentru iesire..."$;
readkey;
end.
%od sursa: bon.pas
+
1ata cum functioneaEa programul:
$ezvoltarea 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;Acate produse se introducB
prettot:#0;
riteln !"doriti sa introduceti date pe bon"$;
riteln !"dCn ) "$;
readln !r$;
hile !upcase!r$#";"$ do
begin
rite !"introduceti numele produsului : "$;
k:#k<1;
readln !produs[k]$;
rite !"introduceti cantitatea : "$;
readln !cantitate[k]$;
rite !"introduceti pretul : "$;
readln !pret[k]$;
valoare[k]:#cantitate[k]Dpret[k] ;
prettot:#prettot<valoare[k];
riteln !"mai introduceti produse ) dCn "$ ;
readln !r$;
end ;
riteln !"DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD"$;
riteln !"DprodusDpretDcantitateDDDDDDDDDDDDDDDDDDDDDDDDvaloareD"$;
-
for i:#1 to k do
begin
riteln !"D",produs[i]," " ,pret[i]:':(, " ", cantitate[i] ,
", valoare: ",valoare[i]:':(,"D"$;
end;
riteln !"DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD"$;
riteln !"D aveti de achitat: " ,
prettot:10:( ," D" $ ;
riteln !"DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD"$;
rite !"apasati orice tasta pentru iesire..."$;
readkey;
end.
%od 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.
$efiitiile de tip sunt plasate sub cuvantul c!eiei T4P&, in cadrul programului trebuint sa
se gaseasca dupa definirea constantelor si inaintea declaratiilor de variabile.
D
Iata un program care foloseste T4P&:
program inregistrari;
uses crt;
type elev#record
nume: string;
varsta: integer;
end;
var
e:array [1..5] of elev;
i:integer;
cautv:integer;
begin
clrscr;
riteln !"introduceti numele, varsta a 5 de elevi"$;
for i:#1 to 5 do
begin
riteln !"introduceti numele"$;
readln ! e[i].nume $;
riteln !"introduceti varsta "$;
readln ! e[i].varsta$;
end ;
rite !"introduceti varsta maFima cautata # "$;
readln !cautv$;
for i:#1 to 5 do
begin
if ! e[i].varsta G cautv$ then
begin
riteln !e[i].nume , " " , " " , e[i].varsta$;
end;
end;
readkey;
end.
%od sursa: elevi.pas
Iata ce afiseaza la rulare:
15
3ibliografie:
1. Suport curs
*. $aniela Saru ( Algoritmi si limbaEe de programare >:anual? ( &ditura $idactica si
Pedagogica, 3ucuresti , 1DD-
). '!id Pascal ( /FF/ SoftGare /radea ( SoftGare educational
11

S-ar putea să vă placă și