Faceti un referat despre Algoritm si structuri de date, urgent‼ ve rog!
Răspunsuri la întrebare
Răspuns:
Prefat¸˘a
Cˆand dorim s˘a reprezent˘am obiectele din lumea real˘a ˆıntr-un program pe
calculator, trebuie s˘a avem ˆın vedere:
• modelarea obiectelor din lumea real˘a sub forma unor entit˘at¸i matematice
abstracte ¸si tipuri de date,
• operat¸iile pentru ˆınregistrarea, accesul ¸si utilizarea acestor entit˘at¸i,
• reprezentarea acestor entit˘at¸i ˆın memoria calculatorului, ¸si
• algoritmii pentru efectuarea acestor operat¸ii.
Primele dou˘a elemente sunt ˆın esent¸˘a de natur˘a matematic˘a ¸si se refer˘a la
”ce” structuri de date ¸si operat¸ii trebuie s˘a folosim, iar ultimile dou˘a elemente
implic˘a faza de implementare ¸si se refer˘a la ”cum” s˘a realiz˘am structurile de date
¸si operat¸iile. Algoritmica ¸si structurile de date nu pot fi separate. De¸si algoritmica
¸si programarea pot fi separate, noi nu vom face acest lucru, ci vom implementa
algoritmii ˆıntr-un limbaj de programare (Pascal, C/C++, Java). Din aceast˘a cauz˘a
acest curs este ¸si o init¸iere ˆın algoritmic˘a ¸si programare.
Scopul cursului este subordonat scopului specializ˘arii (informatic˘a, ˆın cazul
nostru) care este s˘a preg˘ateasc˘a speciali¸sti competent¸i, cu ˆınalt˘a calificare ˆın
domeniul informaticii, cadre didactice competente ˆın acest domeniu (profesor de
informatic˘a ˆın gimnaziu ¸si liceu), informaticieni ˆın diverse domenii cu profil tehnic,
economic, etc. ce pot ˆıncepe lucrul imediat dup˘a absolvirea facult˘at¸ii.Dezideratul
final este deci competent¸a. Competent¸a ˆıntr-un domeniu de activitate implic˘a
experient¸˘a ˆın rezolvarea problemelor din acel domeniu de activitate. Atˆat
competent¸a cˆat ¸si experient¸a ˆın rezolvarea problemelor se pot obt¸ine numai dac˘a
permanent se ˆıntreprind eforturi pentru ˆınsu¸sirea de noi cuno¸stint¸e. De exemplu,
orice informatician (programator sau profesor) care elaboreaz˘a programe pentru
rezolvarea unor probleme diverse, trebuie s˘a aib˘a competent¸e conform schemei1:
PROBLEMA
(model fizic)
ALGORITMICA
(model virtual) PROGRAMARE
Gandire algoritmica Experienta
(rezolvarea de probleme)
Cursul de Algoritmi ¸si structuri de date este util (¸si chiar necesar) pentru
formarea competent¸elor ¸si abilit˘at¸ilor unui bun programator sau profesor de
informatic˘a. Pentru a vedea care sunt aceste competent¸e ¸si abilit˘at¸i putem, de
1M. Vlada; E-Learning ¸si Software educat¸ional; Conferint¸a Nat¸ional˘a de ˆInv˘at¸˘amˆant Virtual,
Bucure¸sti, 2003
exemplu, s˘a citim Programa pentru informatic˘a - Concursul nat¸ional unic pentru
ocuparea posturilor didactice declarate vacante ˆın ˆınv˘at¸˘amˆantul preuniversitar.
2
ˆIntr-un fel, primul semestru al cursului Algoritmi ¸si structuri de date este
echivalent cu ceea ce se pred˘a la informatic˘a ˆın clasa a IX-a iar al doilea semestru cu
clasa a X-a (specializarea: matematic˘a-informatic˘a, intensiv informatic˘a). Diferent¸a
este dat˘a ˆın primul rˆand de dificultatea problemelor abordate de c˘atre noi ˆın cadrul
acestui curs. Din aceast˘a cauz˘a vom avea ˆın vedere ¸si ce prevede Pograma ¸solar˘a
pentru clasa a IX-a, Profil real, Specializarea: Matematic˘a-informatic˘a, intensiv
informatic˘a. De asemenea, merit˘a s˘a vedem ce p˘areri au cei care au terminat de
curˆand o facultate cu un profil de informatic˘a ¸si care au un ˆınceput de carier˘a
reu¸sit. Vom ˆınt¸elege de ce acest curs este orientat pe rezolvarea de probleme.
Alegerea limbajului Java pentru prezentarea implement˘arilor algoritmilor a
fost f˘acut˘a din cˆateva considerente. Java verific˘a validitatea indicilor tablourilor
(programele nu se pot termina printr-o violare de memorie sau eroare de sistem).
Java realizeaz˘a gestiunea automat˘a a memoriei (recupereaz˘a automat memoria
care nu mai este necesar˘a programului) ceea ce simplific˘a scrierea programelor
¸si permite programatorului s˘a se concentreze asupra esent¸ei algoritmului. Exist˘a
documentat¸ie pe internet. Compilatorul de Java este gratuit. Un program scris ˆın
Java poate fi executat pe orice calculator (indiferent de arhitectur˘a sau sistem de
operare).
Student¸ii nu sunt obligat¸i s˘a realizeze implement˘arile algoritmilor ˆın Java;
ei pot folosi Pascal sau C/C++. Algoritmii prezentat¸i ˆın curs sunt descri¸si ˆın limbaj
natural sau ˆın limbaj algoritmic iar implement˘arile sunt ˆın limbajul de programare
Java. Java este un limbaj orientat-obiect, dar noi vom utiliza foarte put¸in
Explicație: