QReferate - referate pentru educatia ta.
Referatele noastre - sursa ta de inspiratie! Referate oferite gratuit, lucrari si proiecte cu imagini si grafice. Fiecare referat, proiect sau comentariu il poti downloada rapid si il poti folosi pentru temele tale de acasa.



AdministratieAlimentatieArta culturaAsistenta socialaAstronomie
BiologieChimieComunicareConstructiiCosmetica
DesenDiverseDreptEconomieEngleza
FilozofieFizicaFrancezaGeografieGermana
InformaticaIstorieLatinaManagementMarketing
MatematicaMecanicaMedicinaPedagogiePsihologie
RomanaStiinte politiceTransporturiTurism
Esti aici: Qreferat » Referate cursuri

Curs algoritm






1.1 Algoritm, program, programare

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 printr-o schema logica se intelege efectuarea tuturor operatiilor precizate prin blocurile schemei logice, in ordinea indicata de sageti.
In descrierea unui algoritm, deci si intr-o schema logica, intervin variabile care marcheaza atat datele cunoscute initial, cat si rezultatele dorite, precum si alte rezultate intermediare necesare in rezolvarea problemei. Intrucat variabila joaca un rol central in programare este bine sa definim acest concept. Variabila defineste o marime care isi poate schimba valoarea in timp. Ea are un nume si, eventual, o valoare. Este posibil ca variabila inca sa nu fi primit valoare, situatie in care vom spune ca ea este neinitializata. Valorile pe care le poate lua variabila apartin unei multimi D pe care o vom numi domeniul variabilei. In concluzie vom intelege prin variabila tripletul
(nume, domeniul D, valoare)
unde valoare apartine multimii D  {nedefinit}.
Blocurile delimitatoare Start si Stop (Fig.1.2.1.a si 1.2.1.b) vor marca inceputul respectiv sfarsitul unui algoritm dat printr-o schema logica. Descrierea unui algoritm prin schema logica va incepe cu un singur bloc Start si se va termina cu cel putin un bloc Stop.



Descarca referat

E posibil sa te intereseze alte referate despre:




Copyright © 2024 - Toate drepturile rezervate QReferat.com Folositi referatele, proiectele sau lucrarile afisate ca sursa de inspiratie. Va recomandam sa nu copiati textul, ci sa compuneti propriul referat pe baza referatelor de pe site.
{ Home } { Contact } { Termeni si conditii }