Sunteți pe pagina 1din 10

Unitatea de curs 4

DATE. STRUCTURI DE DATE Scopul unitii de curs


Prezentarea unor noiuni despre informaii i a principalelor structurilor de date utilizate n prelucrri.

Obiective operaionale

Dup studiul acestei uniti, cursanii vor avea posibilitatea: s identifice diferite tipuri de structuri de date; s cunoasc modul de organizare a acestora in sistemul de calcul; s aprecieze tipul de structur de date potrivit fiecrei situaii.

Cuprinsul unitii de curs


4.1. Informaii. Clasificarea informaiilor 4.2. Date. Reprezentarea datelor 4.3. Clasificarea datelor

4.1. Informaii. Clasificarea informaiilor


Informaia a existat dintotdeauna mpreun cu materia i este un atribut al materiei. Informaia este un mesaj obiectiv care elimin nedeterminarea n legtur cu realizarea unui anumit eveniment. Informaia are caracter de noutate i poate fi reprezentat n forme diferite: articole de ziare i reviste, comunicare prin telefon, telegraf, radio, televiziune i satelii; comunicatele statistice; genele prin care se transmit caracterele ereditare; rezultatele unor experimente, rezultatele unor sondaje de opinie; bilanul contabil al unor firme; legitimaiile de cltorie etc. Prin definiie, informaia are un caracter obiectiv. Opinia nu este o informaie pentru c este subiectiv, dar rezultatul unui sondaj de opinie este o informaie deoarece, ca rezultant de opinii, reflect starea unui segment de populaie. Dezvoltarea activitilor sociale care au ca obiect transmiterea, memorarea sau tratarea informaiei au generat o diversificare fr precedent a naturii informaiilor, concomitent cu creterea exponenial a volumului acesteia. Din multitudinea de criterii posibile de clasificare a informaiilor, trei sunt mai importante: forma, natura i suportul informaiei. Clasificarea informaiei dup forma sa Din punct de vedere al formei concrete, informaia poate fi: - analogic: reprezentarea fenomenelor fizice, imaginilor, sunetelor i imaginilor n micare aa cum sunt ele percepute de dispozitivele tehnice de nregistrare, fr a fi necesar o conversie sau codificare a acestora nainte de transmitere sau memorare pe suporturile tehnice de informaii. Exemple: nregistrarea cu ajutorul casetofonului a mesajelor sonore pe banda magnetic; filmarea unor procese cu ajutorul echipamentelor analogice de imagine i sunet (videorecordere i camere de luat vederi); - digital: pornind de la fenomenul real sau de la forma analogic a acestuia, are loc o codificare numeric. Pe suport tehnic, informaia se reprezint ca o succesiune de valori binare (0 i 1) ordonate dup un sistem de reguli, numit cod. Informaia introdus n sistemele de calcul, prin folosirea tastaturii sau a altor dispozitive de intrare, se transmite i se memoreaz direct sub form digital, fr a mai fi necesar conversia. Pentru procesarea computerizat a informaiei este necesar conversia din form analogic n form digital, cu ajutorul unor dispozitive speciale (de exemplu, modem), care pot fi independente sau pot fi introduse n configuraia sistemului de calcul. Digitizarea informaiei analogice prezint cteva avantaje eseniale: nalt fidelitate a nregistrrii, memorrii i transmiterii informaiei; 51

posibilitatea folosirii sistemului de calcul pentru memorarea i procesarea informaiei digitale, cu toate avantajele ce decurg din aceasta: vitez mare de transfer, capacitate mare de memorare, regsirea selectiv i rapid a informaiei memorate; costul relativ redus al informaiei memorate, procesate i comunicate n form digital.

Clasificarea informaiei dup natura sa Dup natura sa, informaia se prezint sub form de: - date (numerice, alfabetice, alfanumerice), care apar n toate domeniile: activitate economic, cercetare tiinific, proiectare tehnologic, statistic, administraie etc. Asupra datelor se aplic operaii aritmetice i logice i diverse funcii; - texte, organizate sub form de documente, pagini, paragrafe, fraze, cuvinte i caractere. Aceast informaie este destinat prelucrrii cu programe de editare i tehnoredactare a textelor, control gramatical (sintactic) al cuvintelor. Urmeaz punerea n form i apoi n pagin a textului redactat. O pagin de text ocup circa 6 kB; - documente grafice (imagini fixe), destinate perceperii vizuale de ctre utilizator, scrierii la imprimant sau la alte dispozitive de realizare a desenelor (plotter), microfotografierii. Un astfel de document poate conine, ca imagini prelucrate grafic, date sub form de rapoarte i situaii, texte explicative, reprezentri grafice, desene, schie tehnice, imagini foto etc.; - secvene audio, generate de vocea uman, fenomene ale naturii, instrumente muzicale sau sintetizatoare electronice. Astfel, 10 secunde de sunet de joas calitate ocup 200 kB; 10 secunde de sunet de nalt fidelitate pot ajunge la 1,8 MB; - secvene video de natur animat sau filme, percepute de camerele de luat vederi sau generate de programe de grafic bi- sau tridimensional. Acestea sunt de cele mai multe ori nsoite de informaie sonor (voce sau alte sunete). n acest caz, 10 secunde de imagine video fr sunet pot ocupa 5 MB, iar cu sunet, 7 MB. Clasificarea informaiei din punct de vedere al suportului acesteia Dup acest criteriu, distingem: - informaie aflat pe suporturi tehnice de informaii, clasificate la rndul lor n: magnetice: benzile, discurile, cartelele magnetice; optice: dispozitive de tipul CD-urilor. Informaia memorat pe suporturi tehnice este nregistrat i poate fi citit numai cu ajutorul unor dispozitive tehnice de citire/scriere pe suporturi magnetice, sau a unitilor de lectur optic. - informaie aflat pe suporturi grafice de informaii, clasificate la rndul lor n: suporturi opace realizate din hrtie, pentru: documente clasice, documente informatice sau birotice obinute la imprimant, documente realizate cu ajutorul mesei de desen tip plotter. n locul hrtiei se pot utiliza nlocuitori sintetici cu caracteristici i caliti grafice asemntoare sau superioare, toate avnd menirea de fi consultate vizual de ctre utilizator, sau multiplicate tipografic sau xerografic; suporturi transparente realizate din pelicul fotografic, de film, microfilm etc. Acest gen de suport poate fi utilizat numai dup operaia de mrire a imaginii nregistrate.

4.2. Date. Reprezentarea datelor


Orice fel de informaie (numere, litere, desene, sunete) i orice instruciune pe care trebuie s o execute procesorul calculatorului trebuie s fie codificate ntr-o secven de cifre binare. Modalitatea concret prin care diferite tipuri de informaii sunt codificate variaz n funcie de tipul de calculator. Datele sunt materia prim pe care o prelucreaz calculatorul. Datele sunt reprezentarea fizic, pe un suport material, a entitilor din care este format informaia (cifre, litere, semne speciale, desene, sunete etc.), pentru ca aceasta s poat fi prelucrat, transmis sau stocat n calculator. Asociind aceste date cu realizarea pe care o reprezint, putem spune c un calculator, prelucrnd date, prelucreaz de fapt informaie. Deci: Data este un model de reprezentare a informaiei , accesibil unui procesor, model cu care se va putea opera pentru a se obine noi informaii. ntre informaie i dat exist urmtoarele deosebiri: 52

- informaia este obiectul; - data este modelul de reprezentare al obiectului. Din punct de vedere logic, data poate fi reprezentat printr-un triplet de forma: dat = (identificator, valoare, atribute) ale crui elemente vor fi explicate n continuare. Identificatorul datei este un nume care se asociaz datei pentru a o putea distinge de altele i pentru a se putea face referiri la ea n timpul procesului de prelucrare a datelor. Valoarea datei poate fi precizat prin enumerare sau printr-o proprietate comun. n funcie de valoare, datele se clasific n: - variabile: date care, pe parcursul procesului de prelucrare, pot lua orice valori din mulimea de definiie a datei; - constante: date care, pe parcursul procesului de prelucrare, pstreaz aceeai valoare din domeniul de definiie al datei. Atributele datei sunt proprieti ale acesteia i determin modul n care ea poate fi tratat. Exemple de atribute: - tipul datei: definete apartenena acesteia la o anumit clas de date, creia i corespunde un anumit model de reprezentare intern (n calculator). Principalele tipuri de date sunt: tipul alfanumeric; tipul numeric - ntreg, real; tipul logic; - precizia reprezentrii interne: definete ct de fidel reproduce modelul intern de reprezentare, obiectul pe care l reprezint. Precizia depinde de zona de memorie afectat datei. O dat poate fi reprezentat n: simpl precizie; dubl precizie; - ncadrarea valorilor datei n zona afectat : determin modul n care este aliniat data, de exemplu: aliniat la dreapta; aliniat la stnga. Operaia de transformare a informaiei, din forma de reprezentare extern, care este inteligibil pentru om, n forma de reprezentare intern pe care o nelege calculatorul, se numete codificare intern a informaiei. A codifica informaia nseamn a atribui fiecrei entiti informaionale o secven unic de cifre binare. Operaia de codificare presupune existena unui cod. Codul reprezint mulimea de asocieri entitate informaional - secven de cifre binare. Numrul n de simboluri folosite ntr-o secven de cod determin lungimea secvenei de cod. Secvena de cod se mai numete i cuvnt de cod. Reprezentarea intern a datelor se face difereniat, n funcie de tipul datei. Reprezentarea datelor alfanumerice Odat cu dezvoltarea industriei informatice s-a stabilit, pentru reprezentarea informaiei alfanumerice, numrul optim al lungimii de cod la 8 cifre binare. Rezult posibilitatea construirii a 28=256 cuvinte de cod diferite, ceea ce este suficient pentru necesitile unei aplicaii. Lungimea de 8 cifre binare a devenit un standard. Prima firm care a impus acest standard a fost firma IBM, prin codul EBCDIC (Extended Binary Coded Decimal Interchange Code). Acest cod s-a rspndit rapid pe toate echipamentele de calcul, indiferent de firma productoare. Codul ASCII ( American Standard Code for Information Interchange) a fost urmtorul cod pe 8 bii care s-a impus, devenind codul calculatoarelor compatibile IBM-PC. El a derivat din codul ASCII pe 7 bii, care permitea numai 27=128 cuvinte de cod. Mrindu-se lungimea cuvntului de cod la 8 caractere, s-a putut aduga setul extins de caractere ASCII, set de nc 128 caractere. Individual, fiecare caracter (liter, cifr, spaiu sau caracter special - cum ar fi parantezele i semnele de punctuaie) va fi codificat ntr-o secven de 8 cifre binare, folosind codul ASCII. Fiecare caracter de pe tastatur are asignat o secven de cod ASCII prin care poate fi reprezentat n memoria calculatorului. De exemplu, caracterul E va fi reprezentat prin secvena: 01000101 iar caracterul 7 prin secvena de 8 cifre binare: 00110111. Asupra datelor de tip alfanumeric pot aciona operatorii: 53

- de concatenare: din dou iruri de caractere se obine un singur ir. De exemplu, "Turbo"+" Pascal"="Turbo Pascal"; - de comparare: compararea se execut ntre secvenele de cod ASCII. De exemplu, "a">"A", "Anica">"Ani". S-a folosit convenia prin care se delimiteaz un ir de caractere cu ghilimele ("Acesta este un curs de informatic") pentru a deosebi o dat de tip alfanumeric de un identificator de dat sau, n cazul numerelor, pentru a face deosebire ntre reprezentarea numrului printr-o dat de tip alfanumeric i reprezentarea printr-o dat de tip numeric. Reprezentarea numerelor Reprezentarea intern a numerelor se face difereniat, n funcie de tipul informaiei: - numere ntregi: cu semn fr semn - numere reale. Asupra datelor de tip numeric pot aciona operatorii: - aritmetici: prin intermediul lor se pot executa operaii aritmetice: +, -, *,/. De exemplu, v=29/6+4*5.2-1. - de comparare: >, <, =, # (sau <>, adic diferit), >=, <=. De exemplu, 8>4, v<z+4.9. Reprezentarea numerelor ntregi. Fiecare numr ntreg, pozitiv sau negativ, este codificat ca un numr binar de lungime fix: Lungimea secvenei binare trebuie s fie multiplu de 8: 8 bii, 16 bii, 32 bii, ... . Sunt folosite secvene de bii de aceeai lungime pentru fiecare numr, indiferent de mrimea acestuia. Pentru a obine acelai numr de bii sunt adugate zerouri nesemnificative. Atunci cnd se reprezint un numr ntreg cu semn, primul bit din stnga reprezentrii numrului va fi folosit pentru precizarea semnului, astfel: - 1, pentru numr negativ; - 0, pentru numr pozitiv. De exemplu, dac se reprezint un numr ntreg fr semn (numrul 7) folosind un spaiu de memorare de 16 bii, atunci reprezentarea numrului va fi: 710 = 01112 0000 0000 0000 0111 reprezentarea n binar a numrului 7 bii nesemnificativi pentru completarea reprezentrii Numrul cel mai mare care se poate reprezenta pe 16 bii este: 1111111111111111. Acest numr este, n baza 10, 216-1=65 535. Dac reprezentarea se va face folosind doar 8 cifre binare, cel mai mare numr va fi 28-1=255. Dac pentru a reprezenta un numr ntreg cu semn se folosete un spaiu de memorare de 32 de bii, atunci reprezentarea va fi, de exemplu: pentru numrul 7: 710=01112 0 000 0000 0000 0000 0000 0000 0000 0111 reprezentarea n binar a numrului 7 bii nesemnificativi pentru completarea reprezentrii bitul de semn: + pentru numrul -5: 510=1012 1 000 0000 0000 0000 0000 0000 0000 0101 reprezentarea n binar a numrului 5 bii nesemnificativi pentru completarea reprezentrii bitul de semn: Dac pentru a reprezenta un numr ntreg cu semn se folosete un spaiu de memorare de 32 de bii, atunci pentru reprezentarea valorii absolute a numrului vor fi folosii efectiv numai 31 bii. Cel mai mare numr binar care se poate scrie cu 31 de cifre binare este 2 31-1=2 147 483 647. Deci domeniul de definiie al unei date de tip numeric ntreg cu semn, reprezentat pe 32 cifre binare, va fi: 54

-2 147 483 647 ... +2 147 483 647. n mod analog se poate calcula domeniul de definiie pentru reprezentarea unui numr ntreg cu semn pe 8 bii sau pe 16 bii. Pentru a executa operaia 7+(-5)=2, se scade 5 din 7, astfel: 0 000 0000 0000 0000 0000 0000 0000 0111 0 000 0000 0000 0000 0000 0000 0000 0101 0 000 0000 0000 0000 0000 0000 0000 0010 Acest model de reprezentare intern a datelor numerice ntregi cu semn se numete reprezentare prin mrime i semn. Ea este avantajoas deoarece este asemntoare cu scrierea obinuit, dar este dezavantajoas din punct de vedere al modelrii operaiilor matematice cu ajutorul circuitelor electronice. Astfel: - biii de semn ai numerelor trebuie tratai separat; - exist dou reprezentri pentru cifra 0: 0 000 0000 0000 0000 0000 0000 0000 0000 i 1 000 0000 0000 0000 0000 0000 0000 0000; - trebuie definit operaia de scdere. Din aceast cauz se prefer un alt model de reprezentare intern: reprezentarea numerelor prin complementul fa de 2. Complementul unui numr ntreg N n (reprezentat prin n cifre binare) fa de 2 este N n , unde N n = 2 n N n . De exemplu, complementul numrului -7 fa de 2 ntr-o reprezentare cu 16 cifre binare (din care numai 15 se folosesc pentru reprezentarea numrului) se calculeaz astfel: 216 - 000 0000 0000 0111 = 1 0000 0000 0000 0000 000 0000 0000 0111 1111 1111 1111 1001 bitul de semn complementul numrului fa de 2

n aceast reprezentare, pentru a executa operaia 9+(-7)=2, se va aduna complementul fa de 2 al numrului 7 la numrul 9, astfel: 0000 0000 0000 1001 + 1111 1111 1111 1001 1 0000 0000 0000 0010 rezultatul operaiei: +2 Nu mai exist dou reprezentri pentru cifra 0, deoarece 1000 0000 0000 0000 este complementul fa de 2 al numrului -215. Deci, cu ajutorul a n cifre binare, folosind reprezentarea prin complementul fa de 2 se pot reprezenta numere ntregi N din domeniul [-2n-1, 2n-1 -1]. Observaie. Numrul ntreg 7 nu este codificat n acelai mod cu caracterul cifr 7! Reprezentarea numerelor reale. Numerele reale sunt formate din: - semn - parte ntreag - parte fracionar i pot fi reprezentate n dou moduri: - n virgul fix (binary fixed point) - n virgul mobil (binary floating point). Reprezentarea n virgul fix. n aceast reprezentare se presupune c partea ntreag este desprit de partea fracionar printr-o virgul imaginar, aflat ntr-o poziie fix. n acest caz sunt fixe att numrul de poziii ale prii ntregi ct i numrul de poziii ale prii fracionare. Poziia virgulei fixe este o caracteristic a tipului de calculator i a modului n care este construit.

55

De exemplu, dac se reprezint pe 8 bii un numr fracionar cu numrul de poziii ntregi 5, automat numrul de poziii zecimale va fi 3. n cazul n care numrul N care se reprezint este pozitiv, domeniul de valori al datei va fi: 00000,0002N11111,1112 adic 0,010N31,87510. Dac numrul este negativ, se va reprezenta prin complementul fa de 2, primul bit fiind bitul de semn, iar domeniul de valori al datei va fi: 11111,1112N01111,1112 adic -16,87510N15,87510. Aceast reprezentare a numerelor reale este dezavantajoas deoarece nu permite dect reprezentarea unei game restrnse de numere reale. n unele calculatoare, poziia virgulei este plasat la dreapta numrului, lucrndu-se cu numrul real ca i cum ar fi un numr ntreg. Pentru a reprezenta adevrata valoare, n programul care exploateaz numrul respectiv trebuie introdus un factor de scar. De exemplu, numrul 17,84 va fi reprezentat ca un numr ntreg: 17,84*10 2=1784, iar programul va trebui s actualizeze numrul folosind factorul de scar 10-2. Reprezentarea n virgul mobil. n acest caz, numerele sunt reprezentate prin exponent i mantis. Reprezentarea se mai numete i notaie tiinific. Se tie c orice numr poate fi scris explicitnd diferite puteri ale lui 10. n acest mod poate fi controlat poziia virgulei zecimale, iar reprezentarea obinut se numete "n virgul mobil" deoarece virgula zecimal i schimb valoarea n funcie de valoarea exponentului. Exemplu. 14,8= 0,148102=0,148E+2 sau 14,8= 14810-1=148E-1. mantis exponent n mod analog se va reprezenta i intern numrul, singura deosebire fiind codificarea exponentului i a mantisei n sistemul binar. n plus se vor folosi doi bii pentru reprezentarea semnelor mantisei i exponentului. Conform acestei convenii, dac se consider reprezentarea n virgul mobil pe 32 bii, acetia vor fi folosii astfel: 1 bit pentru semnul numrului 1 bit pentru semnul exponentului 7 bii pentru exponent 23 bii pentru mantis. De exemplu, pentru

2,510 = 2510 : 1010 = 110012 : 2 2 = 1100,12 = 0,110012 2 4 = 0,110012 10 21002


mantisa este 11001 exponentul este 410 = 100 2 bitul de semn al numrului este 0 (numrul fiind pozitiv) bitul de semn al exponentului este 0 (exponentul fiind pozitiv) iar reprezentarea numrului este urmtoarea: 0 0 0000100 11001 00 0000 0000 0000 0000 exponent bii nesemnificativi pentru completare valoarea mantisei

mantis bitul de semn pentru exponent bitul de semn pentru numr iar pentru numrul negativ -7, putem scrie:

710 = 1112 = 0,1112 2 3 = 0,1112 10 21112


mantisa este 111 exponentul este 310 = 112 56

deci:

bitul de semn al numrului este 1 (numrul fiind negativ) bitul de semn al exponentului este 0 (exponentul fiind pozitiv) iar reprezentarea numrului este: 1 0 0000011 111 0000 0000 0000 0000 0000 exponent bii nesemnificativi pentru completare valoarea mantisei

mantis bitul de semn pentru exponent bitul de semn pentru numr n aceast reprezentare s-au folosit 32 de bii, din care 7 pentru reprezentarea exponentului i 23 pentru reprezentarea mantisei. Cel mai mare numr pozitiv care se poate scrie n acest caz este
2 23 = (210 ) 23 / 10 (1000) 23 / 10 = (10 3 ) 23 / 10 = 10 69 / 10 10 7

deci numrul maxim de cifre semnificative este 7. Cu 7 cifre binare, cel mai mare exponent care se poate scrie este 2 7 1 = 127 iar factorul de multiplicare cel mai mare va fi 2127 = ( 210 )127 / 10 (1000) 127 / 10 = (10 3 ) 127 / 10 = 10 381 / 10 10 38 . Deci, domeniul de valori al datei reprezentate cu 7 cifre binare pentru exponent i 23 de cifre binare pentru mantis va fi 10 38 ...10 38 , iar data va avea maxim 7 cifre semnificative. Reprezentarea n virgul mobil permite memorarea numerelor reale de diferite dimensiuni cu o precizie foarte mare. n funcie de numrul de bii folosii pentru reprezentarea numrului exist: - reprezentare n simpl precizie - pe 32 de bii - reprezentare n dubl precizie - pe 64 de bii. Domeniul de definiie al datei depinde de spaiul de memorie afectat pentru reprezentare. Valoarea datei se poate modifica n urma unor calcule i spaiul de memorie s-ar putea s nu mai fie suficient. Dac valoarea datei depete domeniul de definiie al datei, calculatorul va semnaliza aceast depire printr-un mesaj (overflow).

4.3. Clasificarea datelor


Atunci cnd informaia este gestionat cu ajutorul tehnicii de calcul, ea devine dat. Datele reprezint deci informaii care fac obiectul prelucrrii pe sistemele de calcul. O prim clasificare a datelor se poate face dup complexitatea lor, n: - date elementare (simple, scalare); - date compuse (structurate). n prima grup intr datele izolate, care au un aport punctual de cunotine, fr a fi nevoie de alte cunotine pentru clarificarea sensului. De exemplu: un numr natural, suma a dou numere reale, mrimea unei fore (exprimat numeric), preul unui produs. Dac data pstreaz aceeai valoare pe parcursul prelucrrii, se numete constant; dac i modific valoarea, se numete variabil. n a doua grup intr informaiile care sunt formate din cunotine asociate ntr-un tot coerent, care au sens numai mpreun. O dat calendaristic, exprimat de exemplu n forma "15 februarie 2001", se compune din cunotinele elementare: numrul 25 (ziua), irul de caractere "aprilie" (luna) i numrul 2001 (anul). Fiecare din aceste elemente are un anume sens n cadrul structurii i un loc fix. Dup modul de selectare a componentelor, se disting: - structuri cu acces direct: o component se poate selecta independent de celelalte componente; - structuri cu acces secvenial: o component se selecteaz dup parcurgerea, n ordine, a componentelor precedente. Dup tipul componentelor, pot fi: 57

- structuri omogene: componentele sunt de acelai tip; - structuri neomogene: componentele sunt de tipuri diferite. Vom folosi, n capitolele urmtoare, date simple dar i unele organizri ale datelor. n continuare vom face unele consideraii cu privire la modul lor de reprezentare n memorie. Tablouri Memoria intern a unui calculator poate fi considerat ca un ir de locaii, deci o structur liniar. Reprezentarea variabilelor simple i a vectorilor este evident: variabilele simple vor ocupa cte o locaie de memorie, iar elementele unui vector vor ocupa, n ordine, locaii succesive de memorie. Fie A o matrice cu m linii i n coloane (deci un tablou bidimensional). Pentru reprezentarea ei se pot folosi dou metode: - sunt memorate succesiv liniile matricei; - sunt memorate succesiv coloanele matricei. S considerm a doua metod. Ea corespunde faptului c matricea este memorat ca un vector n care elementul ai j ocup poziia (j-1)m + i. Fie A1, A2,An mulimi total ordonate. Pentru simplificare vom nota n acelai mod (<, ) cele n relaii de ordine. Atunci pe mulimea A 1xA2xAn se pot introduce urmtoarele relaii de ordine: 1. relaia de ordine lexicografic: pentru a = (a1,a2,,an) i b = (b1,b2,,bn) avem a b dac: i. a = b sau ii. a < b, adic exist i {0,,n-1} astfel nct a1=b1,,ai=bi i ai+1 < bi+1; 2. relaia de ordine invers lexicografic: pentru a = (a1,a2,,an) i b = (b1,b2,,bn) avem a b dac: i. a = b sau ii. a < b, adic exist i {1,,n} astfel nct ai < bi i ai+1=bi+1,,an=bn . Observm c pentru matrice cu m linii i n coloane, ordinea de memorare pe linii corespunde ordinii lexicografice pe {1,,m}x{1,,n} iar ordinea de memorare pe coloane corespunde relaiei de ordine invers lexicografice pe aceeai mulime. Fie A(n1,n2,nk) o structur k-dimensional avnd limitele maxime pentru indici n 1,n2,nk. Fie notaia [s] = {1,2,,s}, s N. Memorarea structurii, conform relaiei de ordine invers lexicografice pe mulimea [n1]x[n2]x[nk], se realizeaz cu ajutorul funciei f dup cum urmeaz: f: [n1]x[n2]x[nk] [n], n = n1n2nk, unde f(i1,i2,,ik) = i1 + (i2 1) n1 + (i3 1) n1n2 ++ (ik 1) n1n2nk-1 = t, ataeaz fiecrui k-uplu de indici (i1,i2,,ik) numrul t al locaiei de memorie ce corespunde elementului A(i1,i2,,ik). Se arat uor c funcia este bijectiv. Tem. Studiai modul n care se memoreaz o matrice cu 3 linii i 2 coloane. Liste Prin list (sau list liniar) nelegem un ir (eventual vid) de elemente aparinnd unei mulimi date. Exemple de liste: elementele unui vector, irul format cu numerele din cartea de telefon, elementele unui tablou oarecare pentru care este stabilit o ordine de memorare. Cele dou capete ale unei liste se numesc baz, respectiv vrf. Prima referire la o list trebuie s fie crearea ei ca o list vid. Asupra listelor se efectueaz operaii de tipul: - accesul la un anumit element, identificat prin numrul de ordine n list sau prin valoare sa; - inserarea unui element ntr-un anumit loc n list; - tergerea (eliminarea) unui element dintr-o list; - concatenarea listelor; - reordonarea elementelor din list conform unui anumit criteriu; - descompunerea unei liste n mai multe liste etc. Memorarea listelor se poate face n mai multe moduri. Alocarea secvenial const n a memora elementele listei n locaii succesive de memorie, conform ordinii acestor elemente n list; n acelai timp se memoreaz adresa de baz (adresa primului element al listei). Un exemplu tipic este cel n care elementele listei sunt memorate ntr-un vector, adresa de baz fiind adresa primului element al vectorului. 58

Alocarea nlnuit presupune c fiecare element al listei este nlocuit cu o celul format din 2 pri: o parte de informaie corespunztoare elementului i o parte de legtur ce conine adresa celulei corespunztoare urmtorului element. Ca i la alocarea secvenial, mai trebuie memorat adresa de baz. n plus, partea de legtur a ultimei celule primete o valoare ce nu poate desemna o legtur (de obicei o valoare 0). Celulele se vor reprezenta deci sub forma: informaie INF LEG legtur

Schematic, vom prezenta legturile cu ajutorul unor sgei, ca n figura urmtoare: la a) se simbolizeaz inserarea unui nod ntr-o list iar la b), eliminarea unui nod dintr-o list. a)

b) Evident, alocarea nlnuit necesit mai mult memorie dect cea secvenial. Trebuie ns menionat c, n aplicaii, partea de informaie este mult mai mare dect cea de legtur. Pe de alt parte, alocarea nlnuit elimin necesitatea deplasrii de elemente pentru operaiile de introducere i de scoatere din list. ntr-adevr, aceste operaii se efectueaz aa cum se arat n figurile a) i b) de mai sus. Un alt avantaj al alocrii nlnuite este acela c permite folosirea unui spaiu comun de memorare pentru mai multe liste, ceea ce implic o economie de memorie, avnd n vedere diferitele operaii de introducere i de scoatere din liste. O list poate fi transformat n list circular, dac n partea de legtur a ultimului element nu vom pune zero, ci adresa primului element din list (eventual cu semn schimbat). De asemenea, pentru listele liniare se poate folosi alocarea dublu nlnuit care difer de cea nlnuit prin structura celulei, care este acum de forma: adresa celulei precedente LS INF LD adresa celulei urmtoare

informaie Alocarea dublu nlnuit necesit un spaiu de memorie mai mare, dar permite refacerea cu uurin a drumului invers de un element la primul element. Folosind tehnica descris la listele circulare, putem obine liste circulare dublu nlnuite. Exemple de liste: 1. Stive. Prin stiv (n englez, stack) nelegem o list liniar cu proprietatea c operaiile de introducere i scoatere (tergere) se fac la vrful stivei. Mecanismul de funcionare al unei stive poate fi reprezentat sub forma manevrrii vagoanelor pe o linie moart (cu un capt nchis) ntr-un depou. Stivele se mai numesc liste push-down sau liste LIFO ( Last In, First Out), adic "ultimul intrat, primul ieit". 2. Cozi. Prin coad nelegem o list n care introducerile se efectueaz la baza listei, iar scoaterile (extragerile) se efectueaz la vrf. Ca modele, ne putem imagina: un ir de clieni care ateapt s fie servii la ghieul unei bnci, mainile care alimenteaz la benzinrie. Cozile se mai numesc liste FIFO (First In, First Out), adic "primul intrat, primul servit". Colecia de date reprezint un ansamblu omogen de date, care se refer la acelai obiect, organizat pe baza unor principii care rspund n mod complet prelucrrilor la care sunt supuse acele date. Formele sub care apar datele depind de modul de reprezentare folosit, care poate fi: semn, figur, numr, text, sunet etc. Astfel, strns legat de noiunea de form (mod) de reprezentare, este noiunea de mediu de reprezentare (mediu de nregistrare) a unei date. Mediul de reprezentare desemneaz suportul pe care este pstrat data, folosind un anume mod de reprezentare. De exemplu, ntr-o carte, textul este reprezentat sub form de semne care alctuiesc cuvinte, iar mediul de reprezentare este hrtia. Acelai text poate fi reprezentat pe un mediu 59

constituit dintr-o band de magnetofon, prin intermediul magnetizrii acesteia corespunztor sunetelor rezultate din pronunarea cuvintelor textului. Prelucrarea datelor presupune totalitatea transformrilor suferite de date, pentru a se obine din ele informaii. Exist mai multe transformri de baz: - generarea, prin care rezult datele primare (de baz); - culegerea i pregtirea, prin care datele primare sunt pregtite pentru prelucrrile ulterioare: selectarea, alegerea din documentele primare a acelor date care vor fi prelucrate cu un anume scop; codificarea, trecerea datelor ntr-o form convenabil prelucrrilor ulterioare, folosind coduri i o funcie care face corespondena ntre forma primar i codul asociat; conversia, care transfer datele de pe un suport pe altul; copierea, multiplicarea, prin care datele sunt reproduse n forma existent pe un mediu identic (de exemplu, pentru siguran); verificarea, urmrirea corectitudinii datelor i eliminarea perturbaiilor provocate de culegere, pregtire sau transmitere; - prelucrarea n scopul obinerii de informaii: sortarea, aranjarea datelor dup anumite criterii; clasificarea, gruparea datelor dup caracteristici comune, fr ca n cadrul grupelor s existe o anumit ordine; compararea, alturarea datelor pentru a se stabili diferenele dintre ele; analiza, examinarea tuturor datelor dintr-un anumit volum de date; sintetizarea, extragerea unei concluzii dintr-un anumit volum de date; calcularea, operaii aritmetice sau logice asupra uneia sau mai multor date; - furnizarea rezultatelor, prin care informaiile se livreaz beneficiarului ntr-o form neleas de acesta; - pstrarea datelor, prin care coleciile de date se arhiveaz, dup anumite reguli, n funcie de scopurile prelucrrilor ulterioare - comunicarea datelor, etapa prin care datele trec de la o transformare la alta. n general, asupra unei colecii de date, se opereaz prin: - introducere de date, prin precizarea modului de stocare a datei; - regsire, prin cutarea i localizarea unei anumite date; - modificare, prin schimbarea unor atribute ale unei date; - distrugere, prin eliminare unei date inutile. n fiecare etap intr date, numite date de intrare i ies date, numite date de ieire. Sistemul de prelucrare a datelor cuprinde toate componentele (metode, tehnici, proceduri, echipamente) i relaiile dintre acestea, pentru a obine informaiile dorite, din datele de intrare. Dac prelucrarea datelor (pentru a se ajunge la rezultatul cerut) se face automatizat, atunci este vorba de un sistem automat de prelucrare a datelor . Elementul principal al unui astfel de sistem este calculatorul electronic.

60