Răspuns :
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:
Vă mulțumim pentru vizita pe site-ul nostru dedicat Informatică. Sperăm că informațiile prezentate v-au fost utile. Dacă aveți întrebări sau aveți nevoie de suport suplimentar, nu ezitați să ne contactați. Ne bucurăm să vă revedem și vă invităm să ne adăugați în lista de favorite!