Sunteți pe pagina 1din 3

4.3 pag.116 Gremalschi.

TIPURI DE DATE ARTICOL (RECORD)


Mulimea de valori ale unui tip de date record este constituit din articole
(nregistrri). Articolele sunt formate din componente, denumite cmpuri. Spre
deosebire de componentele unui tablou, cimpurile pot fi de tipuri diferite.
Fiecare cimp are un nume (identificator de cimp).
Un tip de date articol se definete printr-o structur de forma
type <Nume tip > = record
<Nume c imp 1> : T};
<Nume cimp 2> : T2 ;

<Nume c imp n> : Tn;


end;
unde T , T2 , Tn specific tipul cimpurilor respective. Tipul unui nume de cimp
este arbitrar, astfel un cimp poate s fie la rindul lui tot de tip articol. Prin
urmare, se pot defini tipuri imbricate.
Exemple:
1) type Elev=record
Nume : string;
Prenume : string;
NotaMedie : real;
end;
Var El, E2 : Elev;
2) type Punct=record
x : real; { coordonata x)
y : real; { coordonata y}
end;
var PI, P2 : Punct;
3) type Triunghi = record
A : Punct; { virful A}
B : Punct; { virful B}
C : Punct; { virful C}
end;
var TI, T2, T3 : Triunghi;
Fiecare component a unei variabile de tip r e c o r d poate fi specificatexplicit,
prin numele variabilei i denumirile de cimpuri, separate prin puncte.
Exemple:
El.Nume,
El.Prenume,
El.NotaMedie;
E2.Nume,
E2 .Prenume, E2.NotaMedie;
Pl.x, Pl.y, P2.x, P2.y;

TI.A,
Tl.B, Tl.C,
T2.A, T2.B, T2.C,
Tl.A.x, Tl.A.y, T2.B.X, T2.B.y;
Asupra componentelor datelor de tip articol se pot efectua toate operaiile
admise de tipul cimpului respectiv. Programul ce urmeaz compar notele medii
a doi elevi i afieaz pe ecran numele i prenumele elevului cu nota medie mai
bun. Se consider c elevii au note medii diferite.
Orice tip de date record poate servi ca tip de baz pentru formarea altor tipuri
structurate.
Exemplu:
type ListaElevilor= array[1. .40] of Elev;
var LE: ListaElevilor;
Probleme
Elaborai un program care citete de pe tastatur datele referitoare la n
persoane (n <50) i afieaz pe ecran:
a) persoanele nscute in ziua z a lunii;
b) persoanele nscute in luna l a anului;
c) persoanele nscute in anul a;
d) persoanele nscute pe data z.l.a;
e) persoana cea mai in virst;
f) persoana cea mai tinr;
g) virsta fiecrei persoane in ani, luni, zile;
h) lista persoanelor care au mai mult de v ani;
i) lista persoanelor in ordine alfabetic;
j) lista persoanelor ordonat conform datei naterii;
k) lista persoanelor de aceeai virst (nscui in acelai an).
2. Se consider n puncte (n <30) pe un plan euclidian. Fiecare punct i este
definit prin coordonatele sale xi, yi. Distana dintre punctele i i j se
calculeaz dup formula
d ij

xi y j y i
2

Elaborai un program care afieaz pe ecran punctele distana dintre care


este maxim.
3. Aria triunghiului este dat de formula lui Heron
s p ( p a )( p b)( p c ) ,,
unde p este semiperimetrul, iar a, b i c sint lungimile laturilor respective.
Utilizind tipurile de date Punct i Triunghi din paragraful in studiu,
elaborai un program care citete de la tastatur informaiile referitoare la
n triunghiuri (w<10) i afieaz pe ecran:
a) aria fiecrui triunghi;
b) coordonatele virfurilor triunghiului cu aria maxim;

c) coordonatele virfurilor triunghiului cu aria minim;


d) informaiile referitoare la fiecare triunghi in ordinea creterii ariilor.
4.Un cerc poate fi definit prin coordonatele x, y i raza r. Elaborai un
program care citete de la tastatur datele referitoare la n cercuri (n <50) i
afieaz pe ecran:
a) coordonatele centrului i raza cercului cu aria maxim;
b) numrul de cercuri incluse in cercul cu raza maxim i coordonatele
centrelor respective;
c) coordonatele centrului i raza cercului cu aria minim;
d) numrul de cercuri in care este inclus cercul cu raza minim i
coordonatele centrelor respective.