Tipuri de date structurate

Tipurile de date descrise mai sus se numesc tipuri de date simple. Caracteristica principală, prin care puteți determina valoarea unui tip simplu, este: un nume - o valoare.







Oportunități semnificativ mai mari includ date structurate, definite de dezvoltatorul programului (în limitele capacităților limbajului de programare folosit de el). Prin structurarea acestor programe de împingere ca problema logica aplicată și un argument pur utilitarist: în cazul în care nu poate fi posibil în problema unui număr mare de date de intrare și de ieșire separată de denumire fiecare dintre ele.

Desigur, acțiunile dezvoltatorului algoritmului și ale programului sunt limitate de capacitățile limbajului de programare la care este orientat. În diferite limbi, posibilitățile de structurare a variabilelor la nivelul structurilor complexe nu coincid, însă multe structuri au devenit de mult tradiționale și sunt implementate în majoritatea limbajelor de programare practic utilizate.

Tipurile de date structurate sunt clasificate în funcție de următoarele caracteristici principale: omogenă - eterogenă, ordonată - dezordonată, acces direct - acces secvențial, static - dinamic. Aceste semne se confruntă reciproc numai în interiorul perechii și, dincolo de acestea, pot fi combinate.

Dacă toate elementele care formează o structură sunt de același tip (de exemplu, întregi sau simboluri), atunci structura este omogenă; dacă în ea "elemente" de natură diferită (de exemplu, numerele alternative cu simboluri) sunt amestecate, atunci nu este omogenă.

Structura se numește ordonată. Dacă există o ordine de ordine între elementele sale. Un exemplu de structură matematică ordonată este o secvență numerică în care fiecare element (cu excepția primului) are precedentul și următorul. Prezența unui indice în înregistrarea elementelor structurii indică deja ordonarea (deși indicele pentru acesta nu este un semn obligatoriu).

Prin metoda de acces, structurile comandate pot avea acces direct și secvențial. Cu acces direct, fiecare element al structurii este disponibil pentru utilizator în orice moment, indiferent de alte elemente. Privind la tabela liniară a numerelor, putem scrie sau înlocui imediat, să spunem, al zecelea element. Cu toate acestea, în cazul în care masa nu este pe suport de hârtie, dar, să zicem, într-un fel înregistrate pe bandă, apoi imediat a zecea inaccesibile pentru noi - noi trebuie să eliminați mai întâi anterior nouă. În ultimul caz, avem de-a face cu acces secvențial.

Dacă dimensiunea structurii (lungime, număr de elemente) nu poate fi schimbată "în mișcare", dar fixată în avans, atunci o astfel de structură se numește statică. instrumente software informatică sunt, uneori, nu permit să se stabilească dimensiunea structurii și instalați-l în cursul rezolvării problemei și schimba atunci când este necesar, stimul care este foarte convenabil. O astfel de structură se numește dinamică. De exemplu, în cazul în care descrie modelele de trafic coadă în magazin, noi nu știm dinainte cât de mulți oameni va fi un moment sau altul, iar structura de date corespunzătoare (de exemplu, o listă cu numele membrilor coada de așteptare) pentru a reprezenta mai bine dinamica.

Cele mai tradiționale și cunoscute tipuri de date structurate este o matrice (numită și un tip obișnuit) - o structură statică omogenă comandată a accesului direct.

Indicii calculați permit utilizarea unei singure denumiri a elementelor matrice pentru descrierea operațiilor comune de același tip în construcțiile ciclice ale programelor. O caracteristică importantă a matricei este caracterul său static. Matricea trebuie să fie descrisă în program (adică tipul și numărul componentelor), iar caracteristicile sale nu pot fi modificate în timpul execuției programului.

Fig. 3.1. O matrice unidimensională este un set de elemente (componente)

Componentele matricei pot fi nu numai cele mai simple date, ci și structurale, inclusiv matricele. În acest caz, obținem o serie de tablouri - o matrice multidimensională. Pentru a indexa componentele elementare în acest caz, pot fi necesare doi, trei sau mai mulți indici.

Fig. 3.2. Imaginea grafică a unei matrice bidimensionale

Înregistrări, seturi, fișiere

Fig. 3.3. Ilustrație a "înregistrării"

Înregistrările "B" constau din trei câmpuri care au în mod constant tipuri "text", "întreg", "număr real". Câmpul 1 - numele părții, al 2-lea - numărul de catalog condițional, a 3-a lungime. Când se lucrează cu o singură înregistrare (care se întâmplă rar), numele câmpului poate fi folosit ca o variabilă obișnuită, adică Puteți modifica valoarea unui câmp utilizând o operație de atribuire sau orice alte operațiuni disponibile peste valorile acelui tip. Dacă această înregistrare este - doar o parte din setul de date, numele domeniului este format din două părți și se numește etsya nume calificat al câmpului (Figura 3.3 Componente nume V.name V.number, V.length.).







Atât înregistrările, cât și matricele au o proprietate comună - accesul aleator la componente. Înregistrările sunt mai universale în sensul că nu necesită identitatea tipurilor componentelor lor. Arrays oferă mai multă flexibilitate - indicii componentelor lor pot fi calculați în contrast cu numele câmpurilor de înregistrare.

În mod substanțial, alte posibilități sunt date de structura de date care modelează proprietățile unui set de obiecte matematice.

Deasupra setului, pot fi efectuate următoarele operații:

1) uniunea seturilor (operațiunea adițională "+");

2) intersecția seturilor (operația de multiplicare '*');

3) Diferența set-teoretică (scăderea seturilor "-");

4) verificarea apartenenței elementului la set.

Diferențele dintre multitudinea de matrice și foarte importantă - o multitudine de dimensiuni predeterminate nu este specificată (deși limitată la o punere în aplicare de calculator, de exemplu, 255), nu există nici o altă modalitate de a accesa elementele setului, pe lângă verificarea set accesorii.

Mai complicate decât cele discutate mai sus, din structurile de date furnizate în sistemele de programare moderne este o coadă (fișier).

Conceptul de "fișier", pentru uzul său obișnuit, este folosit în domeniul informaticii în mai multe sensuri care nu coincid în întregime. Aici vom considera doar vizualizarea fișierului ca o structură dinamică ordonată omogen a accesului secvențial - o coadă.

O coadă este un set ordonat liniar de componente consecutive ce urmează unul pe altul, accesate de următoarele reguli:

1) noile componente pot fi adăugate numai la "coada" coadajului;

Dimensiunea coada nu este specificată în prealabil și poate fi considerată teoretic infinită. Pentru a stoca (stoca) componentele de coadă, sunt adesea folosite dispozitive externe de stocare de capacitate mare - discuri magnetice și benzi magnetice. Prin urmare, celălalt nume al coadă este un fișier (în engleză acest cuvânt are mai multe semnificații, inclusiv "lista de fișiere", "rang", "coadă").

Din punct de vedere istoric, cuvântul "fișier" a fost folosit pentru prima dată în domeniul informaticii pentru a desemna un set consecutiv de date sau comenzi (program) stocate pe un dispozitiv de stocare extern. Oarecum mai târziu, abstract, independent de discurile și casetele magnetice, au fost recunoscute ca proprietăți ale cozii ca structuri de date, utile pentru rezolvarea multor probleme de procesare a informațiilor. Acest principiu de extragere și adăugare a componentelor în coada de așteptare este adesea numit "primul în primul rând" (abrevierea engleză este "FIFO") (a se vedea figura 3.4.).

Fig. 3.4. Ilustrația "coadă"

În limbile de programare există și varietăți de fișiere care nu se supun condiției unei secvențe de acces la componentele sale (așa-numitele fișiere de acces direct). Nu mai sunt cozi.

Există o altă structură de date (și adesea este folosită), în care elementul care a fost plasat pentru prima dată este ultima, iar invers, cea care intră ultima este prima (abrevierea engleză "LIFO"). O astfel de structură se numește o stivă (sau un magazin - similar unui magazin de arme mici) (a se vedea Figura 3.5.).

Fig. 3.5. Ilustrația "stivei"

Organizarea ierarhică a datelor

În toate structurile discutate mai sus, elementele individuale (componente, elemente, componente) ale structurii au fost oficial echivalente. Există totuși o gamă largă de sarcini în care unele date sunt în mod natural "legate" de altele. În acest caz, apare o structură ierarhică (ierarhică) de date. Să ne limităm la un exemplu concret. Imaginați-vă un arbore genealogic a cărui rădăcină este numele persoanei, la nivelul următor - numele părinților săi, iar în următorii - numele părinților părinților etc. O astfel de structură se numește arbore binar (a se vedea figura 3.6.).

Cum se structurează aceste date (nume)? Pentru a le plasa într-o matrice sau într-o înregistrare text, este dificil să se prezinte o secvență logică justificată. Cel mai rezonabil lucru este să creați o structură dinamică, cum este cea prezentată în Fig. 3.6. Limbile de programare moderne vă permit să faceți acest lucru și să vă ocupați de astfel de structuri cu o eficiență ridicată.

Fig. 3.6. O structură tip "copac binar", o pereche de cercuri orizontale apropiate - nume de sex masculin și de sex feminin

Operațiuni de date

În timpul procesului de informare, datele sunt convertite de la un tip la altul folosind metode. Prelucrarea datelor implică multe operații diferite.

În structura posibilelor operații cu date, se pot distinge următoarele principale:

# 61623; culegerea de date - acumularea de informații pentru a asigura o plinătate suficientă pentru luarea deciziilor;

# 61623; formalizarea datelor - aducerea datelor provenind din surse diferite în aceeași formă pentru a le face comparabile, adică pentru a spori nivelul de disponibilitate al acestora;

# 61623; filtrarea datelor - examinarea datelor "de prisos", în care nu este necesară luarea deciziilor; în același timp, nivelul "zgomotului" ar trebui să scadă, iar fiabilitatea și caracterul adecvat al datelor ar trebui să crească;

# 61623; sortarea datelor - comandarea datelor în funcție de o anumită caracteristică pentru confortul de utilizare; crește disponibilitatea informațiilor;

# 61623; arhivarea datelor - organizarea stocării datelor într-o formă convenabilă și ușor accesibilă; servește la reducerea costurilor economice ale stocării datelor și la creșterea fiabilității globale a procesului de informare în ansamblul său;

# 61623; protecția datelor - un set de măsuri care vizează prevenirea pierderii, reproducerii și modificării datelor;

# 61623; transport de date - recepție și transmitere (livrare și livrare) a datelor între participanții la distanță ai procesului de informare; în timp ce sursa datelor din domeniul informaticii se numește de obicei serverul, iar consumatorul - clientul;

# 61623; conversia datelor - transferul datelor de la o formă la alta sau de la o structură la alta. Conversia datelor este adesea asociată cu o schimbare a tipului media, de exemplu cărțile pot fi stocate în formă de hârtie obișnuită, dar puteți utiliza atât o formă electronică, cât și un microfilm.







Articole similare

Trimiteți-le prietenilor: