Proiectarea și Utilizarea Structurilor de Date și Algorimilor

Curs
8/10 (1 vot)
Domeniu: Automatică
Conține 10 fișiere: doc
Pagini : 36 în total
Cuvinte : 19373
Mărime: 166.89KB (arhivat)
Publicat de: Benone Toader
Puncte necesare: 0
Profesor îndrumător / Prezentat Profesorului: Sorin Moraru

Extras din curs

Cursul îşi propune să asigure studenţilor cunoştinţe aprofun¬date privind proiectarea şi utilizarea structurilor de date şi algorimilor, în contextul anumitor tehnici de programare.

Pe importanţa domeniului nu trebuie insistat prea mult, dat fiind că presiunea exercitată asupra industriei software-ului este mai mare ca oricând şi având în vedere creşterea dramatică a numărului de utilizatori, noile tipuri de aplicaţii şi noile modele de calcul, precum şi faptul că performanţa este aspectul critic al succesului.

Sunt prezentate tipuri de date, inistându-se pe cele definite de utilizator. De asemeni, sunt abordate structurile de date (liste, arbori, grafuri) prin prisma tehnicilor de rezultate din necesitatea combinării procesărilor on-line, a încărcării şi a creşterii sprijinului decizional.

Cursul tratează aspectele legate, pe de o parte, de cunoaşterea modalităţilor de rezolvare a problemelor cu care utilizatorul are de-a face, eventual a unor metode generale de rezolvare, aplicabile unor categorii largi de probleme, iar pe de altă parte cunoaşterea unei metode sistematice de trecere de la problemă la program, prin intermediul algoritmilor specifici.

1. TIPURI DE DATE

În memoria calculatorului orice dată apare ca o succesiune de biţi. Modul în care pentru astfel de succesiuni se asociază o valoare depinde de interpretarea ce i se dă. La nivelul limbajului de programare o astfel de interpretare este reprezentată de tipul datelor. Un tip de date este o mulţime de valori şi un set de operaţii definit asupra acestora. Majoritatea limbajelor de programare oferă cel puţin echivalentul unui tip întreg. Pentru acest tip valorile posibile sunt cuprinse între două limite. Valorile concrete pentru aceste limite pot să varieze de la o implementare la alta. Setul de operaţii considerat pentru tipul întreg conţine de obicei operaţii aritmetice şi relaţionale.

La nivelul limbajului de programare datele apar ca variabile sau constante. În cazul variabilelor tipul este fixat prin declararea acestora:

Int x; /* în C*/

Pentru constante tipul rezultă din forma de scriere. De exemplu 125 este o constantă de tip întreg, iar 3.14 e-2 o constantă de tip real.

Orice limbaj de programare pune la dispoziţia programatorului câteva tipuri de date predefinite ( standard). De exemplu în C int, char, float, etc. Acestea sunt tipuri simple de date, care se referă la valori elementare. Totodată, limbajele de programare includ mecanismele necesare construiri unor tipuri noi, prin restrângeri sau combinări ale tipurilor deja definite. Aceste mecanisme se numesc

constructori de tipuri şi joacă un rol esenţial în programare. Exemple de constructori sunt enumerările şi subdomeniile, care definesc tipuri simple. Alţi constructori, foarte des folosiţi, sunt tablourile şi înregistrările. Ei produc tipuri structurate, prin combinarea unor tipuri cunoscute.

Noile tipuri construite pot avea nume sau pot fi anonime. În general limbajele de programare au mecanisme prin care asociază nume diferitelor tipuri definite de utilizatori ( type, typedef).

De asemeni, orice limbaj include:

• Mecanismele de definire a tipurilor, deci de precizare a structurii şi a tipurilor componente (aceste mecanisme sunt constructorii, menţionaţi anterior);

• Mecanismele de selecţie a valorii unei componente;

• Definiţiile operaţiilor permise asupra valorilor (compuse) ale tipului definit.

În mod necesar, operaţiile permise asupra unei componente sunt cele specifice tipului componentei.

Un limbaj de programare îl oferă programatorului pentru definirea de tipuri noi. Sunt însă destule situaţii în care structurile pe care un limbaj le permite nu ajung. O problemă de clasificare se rezolvă mai uşor cu o structură arborescentă, iar o problemă de optimizare a traseelor de transport în comun se rezolvă mai natural pe o structură de graf.

Limbajele de programare orientate pe obiecte rezolvă elegant aceste probleme, permiţând definirea de tipuri care “imită” fidel caracteristicile şi comportarea obiectelor din realitatea problemelor de rezolvat. Un pas important în aceeaşi direcţie poate fi făcut si cu mijloacele mai modeste ale unui limbaj tradiţional. În acest sens, sunt importante aspecte:

• Cum putem reprezenta mai simplu legăturile dintre componentele unei structuri;

• Cum putem asocia structurilor operaţii de acces şi de modificare a componentelor;

• Cum putem conferi acestor operaţii o generalitate cât mai mare;

• Cum putem izola structura, cum o putem “încapsula”, asigurând astfel atât protejarea sa faţă de restul programului, cât şi ascunderea amănuntelor de implementare a structurii.

1.1. Tipuri de date definite de utilizator

Informaţia prelucrată în program este organizată în general în ansambluri de date de tipuri diferite, astfel încât tipurile predefinite nu sunt suficiente pentru o reprezentare convenabilă. (Diversitatea aplicaţiilor programării, a fenomenelor şi mărimilor ce pot fi modelate cu ajutorul sistemelor de calcul face practic imposibilă stabilirea "apriori" a tuturor tipurilor de date care ar fi necesare unui proiect).

Ca urmare, strategia adoptată de realizatorii unor limbaje de programare este următoarea:

• se pune la dispoziţia utilizatorului un nucleu de tipuri de date primitive suficient de mic pentru a nu încărca limbajul, dar având un grad mare de generalitate (date întregi, reale, adrese, caractere, etc.)

• se oferă posibilitatea compunerii datelor, astfel încât pornind de la primitivele limbajului, să se construiască structuri de date oricât de complicate.

Limbajul C oferă următoarele posibilităţi:

- declaraţia typedef - asociază un nume unui tip.

- structura - este o colecţie de obiecte de orice tip referite cu un nume comun.

- câmpul de biţi - este un membru al unei structuri care are alocat un grup de biţi, în interiorul unui cuvânt de memorie.

- uniunea - permite utilizarea în comun a unei zone de memorie de către mai multe obiecte de tipuri diferite.

- enumerarea - este o listă de identificare cu valori întregi, constante.

1.1.1. Structuri

O declaraţie de structură precizează identificatorii şi tipurile elementelor componente şi constituie o definire a unui tip de date nou. Acestui tip i se poate asocia un nume.

Preview document

Proiectarea și Utilizarea Structurilor de Date și Algorimilor - Pagina 1
Proiectarea și Utilizarea Structurilor de Date și Algorimilor - Pagina 2
Proiectarea și Utilizarea Structurilor de Date și Algorimilor - Pagina 3
Proiectarea și Utilizarea Structurilor de Date și Algorimilor - Pagina 4
Proiectarea și Utilizarea Structurilor de Date și Algorimilor - Pagina 5
Proiectarea și Utilizarea Structurilor de Date și Algorimilor - Pagina 6
Proiectarea și Utilizarea Structurilor de Date și Algorimilor - Pagina 7
Proiectarea și Utilizarea Structurilor de Date și Algorimilor - Pagina 8
Proiectarea și Utilizarea Structurilor de Date și Algorimilor - Pagina 9
Proiectarea și Utilizarea Structurilor de Date și Algorimilor - Pagina 10
Proiectarea și Utilizarea Structurilor de Date și Algorimilor - Pagina 11
Proiectarea și Utilizarea Structurilor de Date și Algorimilor - Pagina 12
Proiectarea și Utilizarea Structurilor de Date și Algorimilor - Pagina 13
Proiectarea și Utilizarea Structurilor de Date și Algorimilor - Pagina 14
Proiectarea și Utilizarea Structurilor de Date și Algorimilor - Pagina 15
Proiectarea și Utilizarea Structurilor de Date și Algorimilor - Pagina 16
Proiectarea și Utilizarea Structurilor de Date și Algorimilor - Pagina 17
Proiectarea și Utilizarea Structurilor de Date și Algorimilor - Pagina 18
Proiectarea și Utilizarea Structurilor de Date și Algorimilor - Pagina 19
Proiectarea și Utilizarea Structurilor de Date și Algorimilor - Pagina 20
Proiectarea și Utilizarea Structurilor de Date și Algorimilor - Pagina 21
Proiectarea și Utilizarea Structurilor de Date și Algorimilor - Pagina 22
Proiectarea și Utilizarea Structurilor de Date și Algorimilor - Pagina 23
Proiectarea și Utilizarea Structurilor de Date și Algorimilor - Pagina 24
Proiectarea și Utilizarea Structurilor de Date și Algorimilor - Pagina 25
Proiectarea și Utilizarea Structurilor de Date și Algorimilor - Pagina 26
Proiectarea și Utilizarea Structurilor de Date și Algorimilor - Pagina 27
Proiectarea și Utilizarea Structurilor de Date și Algorimilor - Pagina 28
Proiectarea și Utilizarea Structurilor de Date și Algorimilor - Pagina 29
Proiectarea și Utilizarea Structurilor de Date și Algorimilor - Pagina 30
Proiectarea și Utilizarea Structurilor de Date și Algorimilor - Pagina 31
Proiectarea și Utilizarea Structurilor de Date și Algorimilor - Pagina 32
Proiectarea și Utilizarea Structurilor de Date și Algorimilor - Pagina 33
Proiectarea și Utilizarea Structurilor de Date și Algorimilor - Pagina 34
Proiectarea și Utilizarea Structurilor de Date și Algorimilor - Pagina 35
Proiectarea și Utilizarea Structurilor de Date și Algorimilor - Pagina 36

Conținut arhivă zip

  • CursPCLP-1.doc
  • CursPCLP-10.doc
  • CursPCLP-11.doc
  • CursPCLP-2.doc
  • CursPCLP-3-4.doc
  • CursPCLP-5.doc
  • CursPCLP-6.doc
  • CursPCLP-7.doc
  • CursPCLP-8.doc
  • CursPCLP-9.doc

Alții au mai descărcat și

Inginerie Software

Laborator 1 UML – Unified Modeling Language Diagrama cazurilor de utilizare (Use Case Diagram) Introducere UML este un limbaj de modelare bazat...

Java

Java este o tehnologie inovatoare lansata de compania Sun Microsystems 1n 1995, care a avut un impact remarcabil asupra a1ntregii comunitatsi a...

Roboți Industriali

Manipulatorul este sistemul mecanic automat a carui comanda se bazeaza pe sisteme rigide care presupun o interventie in structura fizica a...

Mașini cu acționări electrice

1. ELEMENTE GENERALE 1.1 Definiţii. Elemente constructive Maşina electrică este un sistem de circuite electrice plasate pe miezuri magnetice în...

Sisteme Multiprocesor

Curs 1 Introducere Abordarea structurală a sistemelor de proiectare pentru procese complexe cum sunt comanda numerică cu calculatorul (CNC) a...

Robotică

1. INTRODUCERE 1.1. Terminologia de baza Elemente si articulatii: Elementele sunt partile solide ale structurii unui robot iar articulatiile...

Cursuri AC

caracterizarea noţiunii de informaţie, reprezentarea şi prelucrarea acesteia în sistemele tehnice; - obţinerea prin rafinări succesive a unui...

Sisteme cu Microprocesoare

Structura generala a unui sistem cu microprocesor pentru conducerea proceselor Sistem cu microprocesor (SMP) Caracterizare din punct de vedere...

Te-ar putea interesa și

Memoria Internă

Societatea contemporană este confruntată cu unul dintre cele mai spectaculoase fenomene cunoscute vreodată: informatizarea electronică. Este un...

Managementul proiectelor în construcții

CAPITOLUL1 PREZENTAREA GENERALA A ACTIVITATII DE CONSTRUCTII Rezumat Dupa o succinta istorie a realizarilor si prezentarea principalelor...

Curs C++

Limbajele C si C++ sunt limbaje de programare de nivel înalt. Limbajul C a aparut în anii 1970 si a fost creat de Dennis Ritchie în...

Ai nevoie de altceva?