Structuri de Date și Algoritmi

Previzualizare curs:

Extras din curs:

Curs 1

Structuri de date

Structurile de date erau definite în limbajul C drept organizarea datelor primare. În limbajul C++, acestea reprezinta o colectie de date împreuna cu operatiile lor (data obiect).

De exemplu, prin multimea N a numerelor naturale se va întelege si elementele multimii N, dar si operatiile ce se pot efectua cu acestea: 1, 2, 3, ..., +, -, *, /. Sau prin multimea numerelor complexe:

C: {z = a + bi/a si bÎR, i = sqrt(-1)}, -, +, *, /, etc.

Algoritmul se defineste ca o metoda de rezolvare a unei probleme într-un numar de pasi, metoda efectiva (pas cu pas), finita (are un numar finit de pasi) si cu o intrare si o iesire (I/O).

Un algoritm poate avea un limbaj natural (o specificatie), un limbaj matematic (alta specificatie), un limbaj de programare (alta specificatie), s.a.m.d. Între limbajul natural si cel în C++, de exemplu, vom folosi

un pseudolimbaj (de trecere).

Modele de calcul

Masina este un model de calcul care se constituie din Unitate Centrala (U.C.), Memorie (M), I/O.

Exemple de modele de calcul:

Masina Von Newman - presupune executia pe baza modelului de calcul cu:

Programarea este în acest caz programare imperativa procedurala.

Masina RAM (Random Acces Memory) cu:

- model bazat pe algebra booleana;

- programarea este imperativa procedurala;

- evolutia se face prin set redus de instruciuni;

- viteza foarte mare de executie.

Masina TURING

1. MODELUL functional - bazat pe teoria l - calcul.

Limbajele în acest model sunt LISP, ML, MIRANDA, etc. iar programarea este în acest caz programare functionala.

2. MODELUL logic - bazat pe predicate de ordin I.

Un exemplu de limbaj în acest model este PROLOG.Iar programarea se numeste programare logica.

În cele ce urmeaza ne vom limita la modelul Von Newman.

Asadar limbajul C++ se constituie din:

- variabile;

- identificatori;

- constante;

- operatori numerici obisnuiti;

- operatori relationali;

- structuri de control a executiei: if/else, while, do/while, for, etc.

Analiza performantelor algoritmului

Analiza performantelor (estimarea algoritmului) se impune înca înainte de scrierea programelor.

Etapele de realizare a unui produs software (software engineering)

Aceasta stiinta pune în evidenta metodologii clare pentru modele.

Modelul initial:waterfall (cascada):

Etapele de realizare ale unui produs software:

O prima faza:

- se pleaca de la cerinte;

- se obtin specificatii;

- se face analiza specificatiilor;

A doua faza (DESIGN):

- proiectare de ansamblu (se sparge modulul în submodule, etc);

- proiectarea structurilor de date;

- proiectarea algoritmilor;

- analiza performantelor;

- codarea (scrierea programului);

A treia faza:

- testarea;

Ultima faza:

- implementarea.

Programul rezultat se compara cu cerintele, si daca nu corespunde, se reia ciclul ori de câte ori este nevoie.

Analiza performantelor presupune ¾ renuntând la acuratete ¾ estimarea timpului de lucru si a spatiului de stocare, nestiind înca limbajul care va fi folosit si calitatea programului ce se va obtine.

Presupunând ca modelul RAM de masina pe care lucram executa instructiuni pseudocod, si ca fiecare instructiune pseudocod consuma acelasi timp de executie,rezulta ca timpul estimat pentru executia unui algoritm este proportional cu numarul instructiunilor executate de acel algoritm.

Timpul de executie al algoritmului depinde de:

- dimensiunea datelor de intrare

- spatiul de memorie suplimentar ocupat

Dimensiunea datelor de intrare este o functie f(n) care calculeaza, pentru un n dat, numarul de instructiuni al algoritmului respectiv.

Observații:

Un curs foarte explicit si dupa care eu am invatat

Facultatea de Automatica si Calculatoare

Download gratuit

Documentul este oferit gratuit,
trebuie doar să te autentifici in contul tău.

Structură de fișiere:
  • Structuri de Date si Algoritmi.doc
Alte informații:
Tipuri fișiere:
doc
Nota:
8.5/10 (2 voturi)
Nr fișiere:
1 fisier
Pagini (total):
70 pagini
Imagini extrase:
68 imagini
Nr cuvinte:
12 595 cuvinte
Nr caractere:
68 979 caractere
Marime:
193.27KB (arhivat)
Publicat de:
NNT 1 P.
Nivel studiu:
Facultate
Tip document:
Curs
Domeniu:
Calculatoare
Predat:
la facultate
Materie:
Calculatoare
Profesorului:
Barsan M.
Sus!