Reprezentarea Ĺ&#x;i structurarea informatiei
Notiuni prezentate in acest curs Algoritmi Reprezentarea algoritmilor Elaborarea algoritmilor Analiza algoritmilor si complexitate Categorii de prelucrare Ĺ&#x;i prezentare a informaĹŁiilor
1 aprilie 2010
1
Reprezentarea şi structurarea informatiei
Algoritmul
Algoritmul este o succesiune ordonată de operaţii (număr finit de pași) care trebuie efectuate pentru a realiza un anumit scop.
Algoritmii sunt modalităţi prin care se exprimă succesiunea de operaţii prin care un program pe calculator poate ajunge de la datele de intrare furnizate la rezultatele dorite.
2 aprilie 2010
Lect. ing. Florin Postolache
2
Reprezentarea şi structurarea informatiei
Algoritmul
Algoritmul are următoarele caracteristici:
caracter discret - este format din mai mulţi paşi; caracter finit - numărul paşilor este finit; caracter determinist; caracter realizabil - fiecare operaţie prevăzută este realizabilă efectiv; caracter universal - nu se aplică unui caz izolat, ci unui număr de cazuri, care diferă prin datele de intrare.
2 aprilie 2010
Lect. ing. Florin Postolache
3
Reprezentarea şi structurarea informatiei
Reprezentarea algoritmilor
Există diferite metode de reprezentare a algoritmilor:
într-un limbaj natural (de exemplu, în limba română); sub formă de schemă logică (reprezentare grafică). în pseudocod
2 aprilie 2010
Lect. ing. Florin Postolache
4
Reprezentarea şi structurarea informatiei
Reprezentarea algoritmilor
Ca exemplu, vom considera algoritmul de calculare a ariei şi perimetrul unui dreptunghi cu laturile b (baza) şi i (înălţimea)
2 aprilie 2010
Lect. ing. Florin Postolache
5
Reprezentarea şi structurarea informatiei
Reprezentarea algoritmilor
În limbaj natural, se poate descrie astfel:
Pasul 1: se introduc datele b şi i; Pasul 2: dacă oricare din b sau i este număr negativ sau nul, atunci: Pasul 2.1: scrie “Date de intrare incorecte”. Pasul 2.2: stop. Pasul 3: Calculează A=b*i; Pasul 4: Calculează p=2*(b+i); Pasul 5: Scrie “Aria dreptunghiului este”, A Pasul 6: Scrie “Perimetrul dreptunghiului este”, p Pasul 7: Stop
2 aprilie 2010
Lect. ing. Florin Postolache
6
Reprezentarea şi structurarea informatiei
Reprezentarea algoritmilor
Acelaşi algoritm, reprezentat prin schemă logică. Operaţiile sunt reprezentate prin simboluri grafice, iar succesiunea lor prin linii sau săgeţi
2 aprilie 2010
Lect. ing. Florin Postolache
7
Reprezentarea şi structurarea informatiei
Reprezentarea algoritmilor
Acelaşi algoritm, reprezentat în pseudocod (un limbaj special de reprezentare a algoritmilor): citeşte b,i; dacă (b<=0 sau i<=0) atunci scrie “Date de intrare incorecte” altfel A=b*i p=2*(b+i) scrie “Aria este “,a, “perimetrul este ”,b stop
2 aprilie 2010
Lect. ing. Florin Postolache
8
Reprezentarea şi structurarea informatiei
Reprezentarea algoritmilor
Remarcăm că, în toate cazurile, algoritmul indică ce operaţii se execută şi în ce ordine, fără să indice de ce se execută (în ce scop). Limbajul natural nu este suficient de riguros. Schema logică este clară şi intuitivă, indicând riguros atât operaţiile, cât şi succesiunea lor. Totuşi, pentru număr mare de operaţii, devine dificil de reprezentat şi de urmărit. Pseudocodul este riguros şi nu necesită desene. Operaţiile sunt specificate prin cuvinte cheie (de ex. citeste, scrie, daca, altfel, stop)
2 aprilie 2010
Lect. ing. Florin Postolache
9
Reprezentarea şi structurarea informatiei
Elaborarea algoritmilor
Între metodele de elaborare a cele mai importante (numele spre a fi uşor de recunoscut), specificului lor: Greedy – pentru crearea de
algoritmilor se amintesc fiind indicat în engleză cu o scurtă descriere a
submulţimi optimale cu elementele preluate dintr-o mulţime dată şi cu respectarea unor restricţii impuse individual elementelor. Backtracking – pentru crearea de submulţimi optimale cu elementele preluate dintr-o mulţime dată, cu respectarea unor restricţii impuse elementelor dar şi setului (există relaţii între elementele submulţimii soluţie).
2 aprilie 2010
Lect. ing. Florin Postolache
10
Reprezentarea şi structurarea informatiei
Elaborarea algoritmilor
Divide et impera – pentru probleme ce conţin secvenţe
sau piese discrete ordonate, care pot fi divizate în subprobleme care se rezolvă separat şi apoi se obţine soluţia prin combinarea soluţiile parţiale. Branch and Bound – pentru probleme în care soluţiile se pot reprezenta ca noduri în arbore iar căutarea soluţiei se face prin parcurgerea arborelui urmărind totodată o funcţie de cost pentru a limita adâncimea de căutare. Programare dinamica Metode euristice
2 aprilie 2010
Lect. ing. Florin Postolache
11
Reprezentarea şi structurarea informatiei
Analiza algoritmilor si complexitate
Rezolvarea unei probleme se poate face prin mai multe căi – deci prin algoritmi diferiţi, şi răspunde la următoarele întrebări: Soluţia obţinută este corectă? Dacă da este ea optimă? Rezolvarea problemei este inteligibilă şi uşor de modificat? Execuţia algoritmului este eficientă - în sensul timpului de calcul şi a resurselor necesare?
Din punct de vedere practic apar chestiuni teoretice prin care algoritmii se pot analiza şi compara: Durata de execuţie este predictibilă? Cât de complexă este rezolvarea problemei relativ la timpul de calcul necesar?
2 aprilie 2010
Lect. ing. Florin Postolache
12
Reprezentarea şi structurarea informatiei
Categorii de prelucrare si prezentare a informatiei
Calcule matematice Prelucrări de birou Prelucrări prin metode de Inteligenţă Artificială (IA)
2 aprilie 2010
Lect. ing. Florin Postolache
13
Reprezentarea Ĺ&#x;i structurarea informatiei
Intrebari?
ď Ž
1 aprilie 2010
Multumesc !
Bazele Informaticii
14