Tipul de date record.ppt
- Количество слайдов: 13
TIPUL DE DATE ARTICOL(RECORD).
PARTEA TEORETICĂ: Mulţimea de valori ale unui tip de date record este constituită din articole( înregistrări ). Articolele sînt formate din componente, denumite câmpuri. Fiecare câmp are un nume ( identificator de câmp). Spre deosebire de componentele unui tablou, câmpurile pot fi de tipuri diferite. Un tip de date articol se defineşte printr-o structură de forma: type
unde T 1, T 2, …, Tn specifică tipul câmpurilor respective. Tipul unui nume de câmp este arbitrar, astfel un câmp poate să fie la rândul său tot de tip articol. Prin urmare, se pot defini tipuri imbricate. Fiind date două variabile de tip articol de acelaşi tip, numele variabilelor pot apărea într-o instrucţiune de atribuire. Această atribuire înseamnă copierea tuturor câmpurilor din membrul drept în membrul stâng. Fiecare componentă a unei variabile de tip record poate fi specificată explicit, prin numelevariabilei şi denumirile de câmpuri, separate prin puncte. Asupra componentelor datelor de tip articol se pot efectua toate operaţiile admise de tipul câmpului respectiv. Orice tip de date articol poate servi ca tip de bază pentru formarea altor tipuri structurate.
Exemplu: program p 1; type student=record NP: string[20]; Am declarat tipul AN: integer; NM: real; end; var a: student; Am declarat variabila a de tipul creat de noi begin Incepe programul a. np: =’Moraru Iurie'; a. an: =1986; Moraru Iurie 1986 8. 6 a. nm: =8. 6; Studentul: Moraru Iurie writeln('Studentul: ', a. np); Anul nasterii: 1986 writeln('Anul nasterii: ', a. an: 5); Are nota medie: 8. 60 writeln('Are nota medie: ', a. nm: 5: 2); readln; Monitorul end.
program p 2; type Elev=record Nr_Ord: integer; N, P: string; An_nast: 1970. . 2000; L_n: 1. . 12; Zi_nast: 1. . 31; end; NR_ord | N(Numele | An_nast | l_n |zi_nast 1 2 3 … 40 Lista. Elevilor=array[1. . 40] of Elev; var E: Elev; LE: Lista. Elevilor; i: integer; n: 1. . 40; sir: string; | P( prenume) Am declarat tipul Elev de tip record in care se contin cimpuri de tipuri diferite. Am declarat un tablou de tipul elev. Declaram variabilele.
Incepe programul. begin writeln('Introduceti numarul de elevi ai clasei: '); write('n= '); readln(n); Incepe ciclul din acest program for i: =1 to n do begin LE[i]. Nr_Ord: =i; writeln('Introduceti datele elevului cu numarul de ordine ', i); write('Numarul de ordine in catalog: '); readln(le[i]. nr_ord); write('Numele: '); readln(le[i]. n); write('Prenumele: '); readln(le[i]. p); write('Anul nasterii: '); readln(le[i]. an_nast); write('Luna nasterii: '); readln(le[i]. l_n); write('Ziua nasterii: '); readln(le[i]. zi_nast) end;
writeln('Elevii nascuti in februarie, prenumele carora incepe cu "A" sint: '); for i: =1 to n do begin if (LE[i]. Luna_Nast=2)and(LE[i]. Prenume[1]='A') then with LE[i] do writeln(Nr_Ord, ’ ’, Nume, ’ ’, Prenume, ’ ’, zi_nast, ’ ’, luna_nast, ‘ ’, an_nast, ’. ’); end; O instructiune de afisare in care se readkey; foloseste un ciclu. end. Sfirsitul programului.
Introduceti numarul de elevi ai clasei: n= 2 Introduceti datele elevului 1 Numarul de ordine din catalog: 1 Numele: Leahu Prenumele: Igor Anul nasterii: 1984 Luna nasterii: 12 Ziua nasterii: 17 Introduceti datele elevului 2 Numarul de ordine din catalog: 2 Numele: Apopii Prenumele: Alexandru Anul nasterii: 1983 Luna nasterii: 2 Ziua nasterii: 12 Elevii nascuti in februarie, prenumele carora incepe cu "A" sint: Apopii Prenumele: Alexandru Data nasterii: 16 2 1983
Program p 3; uses crt; type data=record z: 1. . 31; l: 1. . 12; a: integer; end; persoana=record np: string; dn: data; end; Declaram un tip data Declaram un alt tip persoana cu variabila dn de tipul data creat de noi. lista=array[1. . 50] of persoana; Avem un tablou de tipul persoana.
var n, i, z: integer; lp: lista; Declaram variabilele. NP 1 2 3 … 50 | DN begin clrscr; Write('Introdu numarul persoanelor: '); readln(n); for i: =1 to n do with lp[i] do begin writeln; writeln('Introdu datele persoanei: ', i); write('Nume Prenume: '); readln(np); write('data nasterii: '); readln(dn. z); Incepe programul write('luna nasterii: '); readln(dn. l); write('anul nasterii: '); readln(dn. a); end;
Partea, deja introdusa, a programului are rolul de citrea datelor introduse de la tastatura, iar partea care va urma doar afiseaza datele de pe o linie indicata de utilizator. clrscr; begin write('Introdu numar linei pe care doresti sa o vizualizezi: '); readln(i); writeln(lp[i]. np, ' ', lp[i]. dn. z, ’/', lp[i]. dn. l, ’/', lp[i]. dn. a); end; readln; end. Sfirsitul programului.
Introdu numarul persoanelor: 2 Introdu datele persoanei: 1 Nume Prenume: Sircu Dumitru data nasterii: 14 luna nasterii: 10 anul nasterii: 1985 Introdu datele persoanei: 2 Nume Prenume: Secher Ecaterina data nasterii: 15 luna nasterii: 05 anul nasterii: 1983
Introdu numarul liniei pe care doresti sa o vizualizezi: 1 Sircu Dumitru 14/10/1985


