Proiect - Turbo Pascal

Proiect
8/10 (1 vot)
Domeniu: Calculatoare
Conține 1 fișier: doc
Pagini : 26 în total
Cuvinte : 3848
Mărime: 28.46KB (arhivat)
Publicat de: Clara Kiss
Puncte necesare: 7
Profesor îndrumător / Prezentat Profesorului: Gheorghita Lucian

Cuprins

  1. 1) Prezentarea tehnicii Backtracking 4
  2. 2) Notiuni despre recurisivitate 7
  3. 3) Backtracking recursiv 9
  4. 4) Alocarea dinamica 11
  5. 4.1 Notiuni generale 11
  6. 4.2 Lista liniara dublu inlantuita 12
  7. 4.2.1 Creare 13
  8. 4.2.2 Adaugare la dreapta 13
  9. 4.2.3 Adaugare in interiorul listei 14
  10. 4.2.4 Stergere in ineteriorul listei 14
  11. 4.2.5 Listare de la stanga la dreapta 15
  12. 5)Enuntul problemei—Problema mixta 16
  13. 6)Explicarea problemei 17
  14. 7)Rezolvarea problemei 19
  15. 8)Biografie 23

Extras din proiect

Capitolul 1

PREZENTAREA TEHNICII BACKTRAKING

Aceasta tehnica se foloseste in rezolvarea problemelor care indeplinesc simultan urmatoarele conditii:

• solutia lor poate fi pusa sub forma unui vector S=x1,x2,x3…xn cu

x1 A1,x2 A2,.....,xn An;

• multimile A1,A2,A3…An sunt multimi finite ,iar elementele lor se considera ca se afla intr-o relatie de ordine bine stabilita

• nu se dispune de o alta metoda de rezolvare ,mai rapida.

Observatii:

- nu pentru toate problemele n este cunoscut de la inceput;

- x1,x2,x3…xn pot fi la randul lor vectori;

- in multe probleme multimile A1,A2,A3…An coincid;

La intalnirea unei astfel de probleme, daca nu cunoastem aceasta tehnica,suntem tentati sa generam toate elementele produsului cartezian A1A2A3…An si fiecare element sa fie testat daca este solutie.Rezolvand problema in acest mod,timpul de executie este atat de mare ,incat poate fi considerat infinit,neavand nici o valoare practica.

De exemplu,daca dorim sa generam toate permutarile unei multimi finite A,nu are rost sa generam produsul cartezian A1A2A3…An pentru ca apoi,sa testam,pentru fiecare element al acestuia,daca este sau nu permutare .

Tehnica Backtracking are la baza un principiu extrem de simplu:

• se construieste solutia pas cu pas:x1x2x3…xn;

• daca se constata ca,pentru o valoare aleasa,nu avem cum sa ajungem la solutie ,se renunta la acea valoare si se reia cautarea din punctul in care am ramas

Concret:

• se alege primul element x1 ce apartine lui A1

• presupunand generate elementele x1,x2,x3…xk apartinand multimilor A1 A 2A3…Ak+1 se alege(daca exista) x,primul element disponibil din multimea Ak+1,apar astfel 2 posibilitati:

1) nu s-a gasit un astfel de element,caz in care se reia cautarea considerand generate elementele x1,x2,x3…xk+1 iar aceasta se reia de la urmatorul element al multimii Ak ramas netestat

2) a fost gasit,caz in care se testeaza daca acesta indeplineste anumite coditii de continuare ,aparand astfel alte doua posibilitati:

2.1) le indeplineste,caz in care se testeaza daca s-a ajuns la solutie si apar din nou doua posibilitati

2.1.1) s-a ajuns la solutie ,se tipareste solutia si se reia algoritmul considerand generate elementele x1,x2,…xk(se cauta in continuare un alt element al multimii Ak+1 ramas netestat)

2.1.2) nu s-a ajuns la solutie ,caz in care se reia algoritmul considerand generate elementele x1,x2,x3…xk+1 si se cauta un prim element xk+2 Ak+2

2.2) nu le indeplineste caz in care se reia algoritmul considerand generate elementele x1x2 x3…xk iar elementul xk+1 se cauta intre elementele multimii Ak+1 ramase netestate.

Algoritmul se termina atunci cand nu mai exista nici un element

x1 A1 netestat.

Observatie: tehnica Backtracking are ca rezultat obtinerea tuturor solutiilor problemei.In cazul in care se cere o singura solutie se poate forta oprirea atunci cand a fost gasita.

Pentru usurarea intelegerii metodei,vom prezenta o rutina unica aplicabila oricarei probleme,rutina care utilizeaza notiunea de stiva.Rutina va apela proceduri si functii care au totdeauna acelasi nume si parametri si care din punct de vedere al metodei realizeaza acelasi lucru.Sarcina rezolvitorului este de a scrie explicit pentru fiecare problema in parte procedurile si functiile apelate de Backtraking.Evident,o astfel de abordare conduce la programe lungi.Nimeni nu ne opreste,ca dupa intelegerea metodei sa scriem programe scurte specifice fiecarei probleme in parte(de exemplu scurtam substantial textul doar daca renuntam la utilizarea procedurilor si functiilor)

Prezentam in continuare rutina Backtracking:

k:=1;init(1,st);

while k>0 do

begin

repeat

succesor(as,st,k);

if as then valid(ev,st,k);

until (not as) or (as and ev );

if as then

if solutie(k) then

tipar

else

begin

k:=k+1;

init(k,st);

end

else

k:=k-1;

end;

Observatie:

Problemele rezolvate prin aceasta metoda necesita un timp indelungat.Din acest motiv,este bine sa utilizam metoda numai atunci cand nu avem la dispozitie un alt algoritm mai eficient.Cu toate ca exista probleme pentru care nu se pot elabora alti algoritmi mai eficienti,tehnica Backtracking trebuie aplicata numai in ultima instanta.

Preview document

Proiect - Turbo Pascal - Pagina 1
Proiect - Turbo Pascal - Pagina 2
Proiect - Turbo Pascal - Pagina 3
Proiect - Turbo Pascal - Pagina 4
Proiect - Turbo Pascal - Pagina 5
Proiect - Turbo Pascal - Pagina 6
Proiect - Turbo Pascal - Pagina 7
Proiect - Turbo Pascal - Pagina 8
Proiect - Turbo Pascal - Pagina 9
Proiect - Turbo Pascal - Pagina 10
Proiect - Turbo Pascal - Pagina 11
Proiect - Turbo Pascal - Pagina 12
Proiect - Turbo Pascal - Pagina 13
Proiect - Turbo Pascal - Pagina 14
Proiect - Turbo Pascal - Pagina 15
Proiect - Turbo Pascal - Pagina 16
Proiect - Turbo Pascal - Pagina 17
Proiect - Turbo Pascal - Pagina 18
Proiect - Turbo Pascal - Pagina 19
Proiect - Turbo Pascal - Pagina 20
Proiect - Turbo Pascal - Pagina 21
Proiect - Turbo Pascal - Pagina 22
Proiect - Turbo Pascal - Pagina 23
Proiect - Turbo Pascal - Pagina 24
Proiect - Turbo Pascal - Pagina 25
Proiect - Turbo Pascal - Pagina 26

Conținut arhivă zip

  • Proiect Atestat - Turbo Pascal.doc

Te-ar putea interesa și

Caiet de practică la calculatoare și automatizări

INFIINTARE: 15.02.1993 sub denumirea de S.C." EFF EFF Romania" S.R.L. Lugoj. DENUMIREA ACTUALA: S.C. NOVAR ELECTRIC ROMANIA SRL SCHIMBARE DE...

Carmangerie

Introducere Schema tehnologică de obţinere a preparatelor cu compoziţie din tocătură Carne în carcase Congelarea Congelarea carcaselor şi...

Aplicație web pentru gestionarea activităților didactice

În zilele noaste calculatorul ocupă o poziție destul de importantă în viața omului oferindui o groaza de avantaje care îi ușureaza munca sau îi...

Posibilități de optimizare a rețelei de aprovizionare la SC Piața de Gros SA București folosind teoria fluxului în rețele de transport - aplicație informatică

INTRODUCERE În cadrul acestei lucrări am încercat să prezint o viziune de ansamblu a activităţii de transport şi aprovizionare, punând accentul pe...

Proiectarea sistemului informatic privind evidența livrărilor de produse pe beneficiari la SC Ursus Breweries SA, Sucursala Timișoara

CAPITOLUL 1. ROLUL INFORMATICII ECONOMICE ÎN MANAGEMENTUL FIRMEI 1.2. Sistemul informaţional Dacă sistemul decizional reprezintă “sistemul...

Implementarea Tipului Abstract de Date Număr Complex

Introducere Limbajul C# fost dezvoltat de o echipă restrânsă de ingineri de la Microsoft, echipă din care s-a evidenţiat Anders Hejlsberg (autorul...

Proiectarea mașinilor - mecanismul CalCebisev

TEMA DE PROIECT Sa se proiecteze o masina pasitoare ce are in componenta 4 mecanisme patrulatere, doua fazate si doua antifazate. Antrenarea...

Funcții recursive - Turbo Pascal

CUVÂNT ÎNAINTE Acest proiect la informatica consta în prezentarea în limbajul de programare Turbo Pascal a unei probleme ce îsi propune sa...

Ai nevoie de altceva?