|
ACEST PROIECT LA INFORMATICA CONSTA IN
PREZENTAREA IN LIMBAJUL DE PROGRAMARE TURBO PASCAL A UNEI PROBLEME CE ISI
PROPUNE SA EXPUNA CAT MAI MULTE DINTRE CUNOSTINTELE ACUMULATE DEA LUNGUL
CELOR 4 ANI DE LICEU.
PE LANGA NOTIUNILE DE TEORIE CE VOR FACE OBIECTUL
ACESTUIA(BACKTRACKING,RECURSIVITATE, ALOCARE DINAMICA),EXPLICAREA
APROFUNDATA A TUTUROR PASILOR ALGORITMULUI ,ATASAREA FISIERULUI CE
DEMONSTREAZA CORECTITUDINEA PROBLEMEI, VOR INCERCA SA DOVEDEASCA PREGATIREA
CAT MAI TEMEINICA A AUTOAREI.
CUPRINS
1) Prezentarea tehnicii Backtracking.............................4
2) Notiuni despre recurisivitate....................................7
3) Backtracking recursiv.............................................9
4) Alocarea dinamica................................................11
4.1 Notiuni generale...........................................11
4.2 Lista liniara dublu inlantuita............................12
4.2.1
Creare................................................................13
4.2.2 Adaugare la
dreapta.........................................13
4.2.3 Adaugare in interiorul
listei.............................14
4.2.4 Stergere in ineteriorul
listei..............................14
4.2.5 Listare de la stanga la
dreapta.........................15
5)Enuntul problemei-Problema mixta.............................16
6)Explicarea
problemei........................................................17
7)Rezolvarea problemei.............................................19
8)Biografie..............................................................23
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 A1A2 |