Previzualizare curs:

Extras din curs:

Aparitia primelor calculatoare electronice a constituit un salt urias in directia automatizarii activitatii umane. Nu exista astazi domeniu de activitate in care calculatorul sa nu isi arate utilitatea.

Calculatoarele pot fi folosite pentru a rezolva probleme, numai daca pentru rezolvarea acestora se concep programe corespunzatoare de rezolvare. Termenul de program (programare) a suferit schimbari in scurta istorie a informaticii. Prin anii '60 problemele rezolvate cu ajutorul calculatorului erau simple si se gaseau algoritmi nu prea complicati pentru rezolvarea lor. Prin program se intelegea rezultatul scrierii unui algoritm intr un limbaj de programare. Din cauza cresterii complexitatii problemelor, astazi pentru rezolvarea unei probleme adesea vom concepe un sistem de mai multe programe.

Dar ce este un algoritm? O definitie matematica, riguroasa, este greu de dat, chiar imposibila fara a introduce si alte notiuni. Vom incerca in continuare o descriere a ceea ce se intelege prin algoritm.

Ne vom familiariza cu aceasta notiune prezentand mai multe exemple de algoritmi si observand ce au ei in comun. Cel mai vechi exemplu este algoritmul lui Euclid, algoritm care determina cel mai mare divizor comun a doua numere naturale. Evident, vom prezenta mai multi algoritmi, cei mai multi fiind legati de probleme accesibile absolventilor de liceu.

Vom constata ca un algoritm este un text finit, o secventa finita de propozitii ale unui limbaj. Din cauza ca este inventat special in acest scop, un astfel de limbaj este numit limbaj de descriere a algoritmilor. Fiecare propozitie a limbajului precizeaza o anumita regula de calcul, asa cum se va observa atunci cand vom prezenta limbajul Pseudocod.

Oprindu-ne la semnificatia algoritmului, la efectul executiei lui, vom observa ca fiecare algoritm defineste o functie matematica. De asemenea, din toate sectiunile urmatoare va reiesi foarte clar ca un algoritm este scris pentru rezolvarea unei probleme. Din mai multe exemple se va observa insa ca, pentru rezolvarea aceleasi probleme, exista mai multi algoritmi.

Pentru fiecare problema P exista date presupuse cunoscute (date initiale pentru algoritmul corespunzator, A) si rezultate care se cer a fi gasite (date finale). Evident, problema s-ar putea sa nu aiba sens pentru orice date initiale. Vom spune ca datele pentru care problema P are sens fac parte din domeniul D al algoritmului A. Rezultatele obtinute fac parte dintr-un domeniu R, astfel ca executand algoritmul A cu datele de intrare x?D vom obtine rezultatele r?R. Vom spune ca A(x)=r si astfel algoritmul A defineste o functie

A : D ---> R .

Algoritmii au urmatoarele caracteristici: generalitate, finitudine si unicitate.

Prin generalitate se intelege faptul ca un algoritm este aplicabil pentru orice date initiale x?D. Deci un algoritm A nu rezolva problema P cu niste date de intrare, ci o rezolva in general, oricare ar fi aceste date. Astfel, algoritmul de rezolvare a unui sistem liniar de n ecuatii cu n necunoscute prin metoda lui Gauss, rezolva orice sistem liniar si nu un singur sistem concret.

Prin finitudine se intelege ca textul algoritmului este finit, compus dintr-un numar finit de propozitii. Mai mult, numarul transformarilor ce trebuie aplicate unei informatii admisibile x?D pentru a obtine rezultatul final corespunzator este finit.

Prin unicitate se intelege ca toate transformarile prin care trece informatia initiala pentru a obtine rezultatul r?R sunt bine determinate de regulile algoritmului. Aceasta inseamna ca fiecare pas din executia algoritmului da rezultate bine determinate si precizeaza in mod unic pasul urmator. Altfel spus, ori de cate ori am executa algoritmul, pornind de la aceeasi informatie admisibila x?D, transformarile prin care se trece si rezultatele obtinute sunt aceleasi.

In descrierea algoritmilor se folosesc mai multe limbaje de descriere, dintre care cele mai des folosite sunt:

limbajul schemelor logice;

limbajul Pseudocod.

In continuare vom folosi pentru descrierea algoritmilor limbajul Pseudocod care va fi definit in cele ce urmeaza. In ultima vreme schemele logice sunt tot mai putin folosite in descrierea algoritmilor si nu sunt deloc potrivite in cazul problemelor complexe. Prezentam insa si schemele logice, care se mai folosesc in manualele de liceu, intrucat cu ajutorul lor vom preciza in continuare semantica propozitiilor Pseudocod.

1.2 Scheme logice

Schema logica este un mijloc de descriere a algoritmilor prin reprezentare grafica. Regulile de calcul ale algoritmului sunt descrise prin blocuri (figuri geometrice) reprezentand operatiile (pasii) algoritmului, iar ordinea lor de aplicare (succesiunea operatiilor) este indicata prin sageti. Fiecarui tip de operatie ii este consacrata o figura geometrica (un bloc tip) in interiorul careia se va inscrie operatia din pasul respectiv.

Prin executia unui algoritm descris

Download gratuit

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

Structură de fișiere:
  • Algoritmi.doc
Alte informații:
Tipuri fișiere:
doc
Diacritice:
Da
Nota:
9/10 (5 voturi)
Nr fișiere:
1 fisier
Pagini (total):
57 pagini
Imagini extrase:
52 imagini
Nr cuvinte:
17 570 cuvinte
Nr caractere:
90 478 caractere
Marime:
84.84KB (arhivat)
Publicat de:
Anonymous A.
Nivel studiu:
Facultate
Tip document:
Curs
Domeniu:
Limbaje de Programare
Tag-uri:
computere, programare, algoritmi, scripturi
Predat:
la facultate
Materie:
Limbaje de Programare
Sus!