TIPURI DE DATE STRUCTURATE TIPUL DE DATE ~RECORD~

Slides:



Advertisements
Similar presentations

Advertisements

Adobe photoshop.  De multe ori ne facem fotografii si unele nu le facem publice pentru ca ori am avut un cos in acel moment sau un alt aspect negativ.
Noua generaţie de clienţi. Noua generaţie de clienţi este aici.
În general exist ă 2 forme mari de conservare : “in situ” şi “ex situ” 1. Conservarea “ in situ” Aceast ă metod ă de conservare const ă în.
Batalia sexelor O lume dominata de barbati vs o lume dominata de femei.
Caracteristici ale corpurilor cu viata
1 const #define DIMENSIUNE 1000 const int DIMENSIUNE = 1000; Utilizarea valorilor constante este importantă, de exemplu, în declararea tablourilor de date.
ICF Capitol Local Bine ati venit. Ore de Pregatire Continua Sesiunea 1.
Present Perfect Simple prezentare. Schema de formare: Afirmativ: S + have/has + V(III)/ V(-ed)… Negativ: S + have/has + not + V(III)/ V(-ed)… Interogativ:
POSTA ELECTRONICA Ana-Maria Tache Ioana Cristina Ciufu.
Februarie 2018 ASE Bucuresti
ACTIVITATEA 1 -,, PROFESOR IT LA PAPI’’
Oracle Academy Lead Adjunct
IntraShip inovatie, flexibilitate, rapiditate.
Funcţii Excel definite de utilizator (FDU) în VBA
Placa de bază.
Instrumente CASE Curs nr. 7.
Posibilităţi de analiză în timp real a parametrilor de calitate a apei cu ajutorul sistemului informatic de management SIVECO Business Analyzer September.
Căutarea şi regăsirea informaţiei.
PASII INSTALARII SISTEMULUI DE OPERARE
Windows Movie Maker.
Dispozitive de stocare
IF Clause prezentare.
CREATE, DROP,ALTER INSERT, UPDATE, DELETE
Structura pipeline a unui procesor MIPS
Căutarea şi regăsirea informaţiei.
Paxos Made Simple Autor: Puşcaş Radu George
Gestionarea datelor stiintifice
Retele de calculatoare
Reflexia luminii.
Software product management
CONVERSII INTRE SISTEME DE NUMERATIE
Programarea Orientată Obiect (POO)
WebSite Social Tema 2 WebSite Social.
MICROSOFT EXCEL.
Problema rucsacului lacom
MANAGEMENT EDUCAŢIONAL PERFORMANT Limbajul de programare Borland Pacal
Tipuri structurate Tipul tablou
SUBNETAREA.
Programarea calculatoarelor şi limbaje de programare I Capitolul 8
Web Form BuilDer Coffee Cup.
Modificarea structurii unei tabele
Curs 6: Introducere în programarea SAS
Totul despre: Valentine’s day.
MICROSOFT EXCEL Notiuni introductive
Formatarea paragrafului
Funcții C/C++ continuare
prof. mrd. Negrilescu Nicolae Colegiul National Vlaicu Voda
ACES – Academy of Central European Schools
Biletul la ordin internațional – explicații
INTERNET SERVICII INTERNET.
Eclipsele de soare si de luna
Forms (Formulare).
A great way to create a channel of communication
SUBSTANTE PURE SI AMESTECURI DE SUBSTANTE
Managementul Proiectelor Informatice
Functia de documentare
SOAP -Simple Object Access Protocol-
SALONIC 29 MARTIE - 4 APRILIE 2016
Programarea in limbajul Java 2004 Lecturer: Gavrila Cristian
Realizarea prezentarilor cu Microsoft PowerPoint
Crearea unei aplicatii Windows Forms simple
CECUL INTERNAȚIONAL.
Refracţia luminii.
XIII. Regimurile politice postbelice
Harti de imagini, Cadre, Stiluri
Despre lamaie.net De ce sunt lamaile acre? Realizatori: Cristina Cazan
Tabele WEB.
Administrare Oracle 9i Suport de curs
Presentation transcript:

TIPURI DE DATE STRUCTURATE TIPUL DE DATE ~RECORD~ învăţare prin proiecte “Să învăţăm inteligent”

Ce este tipul record? Cum am vazut deja la tipul string, exista posibilitati de a stoca in memorie cantitati mari de date, cu elemente de acelasi tip. Ce se intampla in cazul in care vreau sa stochez mai multe tipuri de date intr-un singur element ? Un caz concret ar fi varstele unor oameni. Avem nevoie de un loc pentru nume si de un loc pentru varsta ... o variabila string si o variabila byte. Tipul record (inregistrare) permite crearea unui tip de date care sa permita gruparea unor date de tipuri diferite.

Declararea unui tip inregistrare: Mulţimea de valori ale unui tip de date record este constituită din înregistrări . Inregistrarile sînt formate din componente, denumite câmpuri. Spre deosebire de componentele unui tablou, câmpurile pot fi de tipuri diferite. Fiecare câmp are un nume ( identificator de câmp ). Un tip de date articol se defineşte printr-o structură de forma type <nume tip> = record <nume câmp 1> : T1; <nume câmp 2> : T2; . . . . . . . . . . . . . . . . . . <nume câmp n> : Tn; end; unde T1,T2,…,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 imbricante. Fiind date două variabile de tip articol de acelaşi tip, numele variabilelor pot apărea într-o ins- trucţ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 numeleva- riabilei şi denumirile de câmpuri, separate prin puncte. Asupra componentelor datelor de tip RECORD se pot efectua toate operaţiile admise de tipul câmpului respectiv. Orice tip de date RECORD poate servi ca tip de bază pentru formarea altor tipuri structurate.

Observatie “with… do ” Declaraţia “with”, în asociere cu înregistrările, permite un mod rapid şi uşor acces pentru fiecare dintre membrii înregistrărilor fără a se utiliza punct Ex: type Person = Record Age : Integer; Sex : char; end; var Student : Person; begin Student.Age := 23; Student.Sex := ‘b’; with Student do begin Age := 19; Sex := ‘f’ end; with Student do begin Writeln( 'Age := ', Age ); if Sex=‘b’ then Writeln( 'Sex := barbat' ) else Writeln( 'Sex := femeie' ) end end end.

Sa vedem cum facem un programel … …care sa citeasca si sa afiseze numele si varstele a doua persoane. type   persoana = record {tip inregistrare, definit de noi}     nume: String;     varsta: Byte;   end;   var first, second: persoana; {tipul nostru inregistrare} Begin   Write('Dati numele primei persoane: ');   ReadLn(first.nume);   Write('Dati varsta primei persoane: ');   ReadLn(first.varsta);   Write('Dati numele celei de-a doua persoane:');   ReadLn(second.nume);   Write('Dati varsta celei de-a doua persoane: ');   ReadLn(second.varsta);    WriteLn('1. Nume: ', first.nume,  ' - varsta: ', first.varsta,  ' de ani.');   WriteLn('2. Nume: ', second.nume, ' - varsta: ', second.varsta, ' de ani.'); end. Dupa cum se poate vedea in program, fiecare camp dintr-o inregistrare se apeleaza folosind numele inregistrarii . (punct) numele campului (fara spatii).

Aplicatie Se consideră informaţia despre elevii unei clase: numărul de ordine( tip integer ), numele şi prenumele( tip string ), anul naşterii( 1970-2000 ), luna naşterii( 1-12 ), ziua naşterii( 1-31 ). Să se afişeze lista elevilor născuţi în luna mai, prenumele cărora începe cu litera „B”.

Rezolvare Type Elev=record Nr_Ord:integer; Nume,Prenume:string; An:1970..2000; Luna:1..12; Zi:1..31; end; ListaElevilor=array[1..40] of Elev; var E:Elev; LE:ListaElevilor; i:integer; n:1..40; sir:string; begin writeln('Introduceti numarul de elevi ai clasei:'); write('n= '); readln(n); for i:=1 to n do 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].nume); write('Prenumele: ');readln(le[i].prenume); write('Anul nasterii: ');readln(le[i].an_nast); write('Luna nasterii: ');readln(le[i].luna_nast); write('Ziua nasterii: ');readln(le[i].zi_nast) writeln('Elevii nascuti in februarie, prenumele carora incepe cu "A" sint:'); for i:=1 to n do begin if (LE[i].LunaNastere=2)and(LE[i].Prenume[1]='A') then with LE[i] do writeln(Nr_Ord,' ',Nume,' ',Prenume,' ',zi,' ',luna,' ',an'.') end; readln; end.

REZULTATUL PROGRAMULUI: Introduceti numarul de elevi ai clasei: n=4   Elevii nascuti in februarie, prenumele carora incepe cu “B” sint:  Nr: 2 Numele: Barbu Prenumele: Alexandru Data nasterii: 16 5 1983 Nr: 3 Numele: Bucur Prenumele: Andrei Data nasterii: 23 5 1986 Introduceti datele elevului 1 Numarul de ordine din catalog: 1 Numele: Ceahu Prenumele: Igor Anul nasterii: 1984 Luna nasterii: 12 Ziua nasterii: 17 Introduceti datele elevului 2 Numarul de ordine din catalog: 2 Numele: Barbu Prenumele: Alexandru Anul nasterii: 1983 Luna nasterii: 5 Ziua nasterii: 16 Introduceti datele elevului 3 Numarul de ordine din catalog: 3 Numele: Bucur Prenumele: Andrei Anul nasterii: 1986 Ziua nasterii: 23  Introduceti datele elevului 4 Numarul de ordine din catalog: 4 Numele: Profir Prenumele: Arcadii Anul nasterii: 1987 Luna nasterii: 3 Ziua nasterii: 21  

CONCLUZII: Utilizarea tipului de date structurat record permite lucrul cu o cantitate mai mare de date în comparaţie cu alte tipuri de date structurate studiate până acum. Un avantaj mare pentru tipul articol reprezintă faptul că el poate fi utilizat aproximativ ca un tablou, dar câmpurile sale, spre deosebire de elementele tabloului, pot fi de tipuri total diferite.

Probleme propuse 1) Se citesc data naşterii unei persoane si data curenta . sa se determine vârsta in ani împliniti a persoanei respective. 2) In registrul unei discoteci sunt trecute persoanele care intra si vârstele lor ( in ani si luni ). Ştiind ca ultima persoana intrata este Dorina Vlad , sa se calculeze media de vârsta a celor ce frecventează discoteca (in ani si luni, aproximativ la numere naturale ). 3) Se citesc de la tastatura n perechi de numere reale reprezentând puncte din plan (în ordinea abscisă, ordonată). Scrieţi un program care să determine măsura celui mai mare segment având ca extremităţi două dintre punctele date. 4) Se introduc de la tastatură mediile generale, numerele şi sexul elevilor dintr-o clasă , să se afişeze clasamentul la învăţătură ale elevilor şi mediile lor în ordine descrescătoare , marcînd cu o fetele şi cu un “#” băieţii cu medii pînă la 6 (exclusiv), cu două steluţe respectiv cu două caractere”#” elevii cu medii între 6 şi 9 (incliv) şi cu trei steluţe respectiv trei caractere “#” pe cei cu medii peste 9. 5) Cunoscandu-se coeficienţii unui număr complex, sa se afişeze modulul si conjugatul sau.

Succes !