Upload
tim
View
70
Download
2
Tags:
Embed Size (px)
DESCRIPTION
Backtracking - BALL “Rolling all around”. Producers: Butucea Coman Petrovan. Ana. Antonia. Johana. Backtracking. Manipularea timpului. Cel mai fericit om este acela care traieste in prezent....insa trecutul sta la baza unui prezent sigur!. - PowerPoint PPT Presentation
Citation preview
Backtracking - BALL“Rolling all around”
Producers:
ButuceaButucea
Coman Coman
PetrovaPetrovann
Ana
Antonia
Johana
Backtracking Backtracking
Cel mai fericit om este acela care traieste in prezent....insa trecutul sta la baza unui prezent sigur!
Spre deosebire de realitatea ce ne inconjoara , backtracking-ul aduce o idee originala la care multi dintre noi
visam si anume schimbarea trecutului cu scopul de a aduce un viitor
benefic…
Backtracking-ul permite reintoarcerea la un nivel inferior
pentru rezolvarea solutiei!
Manipularea timpuluiManipularea timpului
De ce problema Bilei?...
Putem asocia principiile acestei probleme cu cele ale vietii cotidiene…
Constransi de situatiile dificile ale vietii, invatam sa le depasim urmand anumite drumuri cu un grad mai mic de dificultate.
De ce nu…?
Problema BILEI
Se da un teren sub forma de matrice cu n linii si m coloane. Fiecare element al matricei reprezinta
un subteren cu o anumita altitudine data de valoarea retinuta de element(nr. natural). Intr-un
astfel de subteren de coordonate (lin,col) se gaseste o bila. Stiind ca bila se poate deplasa in
orice portiune de teren aflata la N-E-S-V, de altitudine strict inferioara portiunii pe care se
gaseste bila; se cere sa se gaseasca toate posibilitatile ca bila sa paraseasca terenul…
-pentru rezolvarea problemei este necesara utilizarea unei matrici.
-elementele matricei sunt preluate dintr-un fisier;
-initial bila va sta pe o pozitie (lin,col);
-neputandu-se deplasa decat in casutele cu un numar strict inferior, se verifica daca pozitiile N, E, S, V (in aceasta ordine) indeplinesc conditia;
-aceasta se repeta pana cand bila poate iesi din labirint.
Initial : (2,2) Solutii: (2,2) ; (2,3) ; (2,4)
(2,2) ; (2,3) ; (3,3) ; (3,4) ; (2,4)
(2,2) ; (2,3) ; (3,3) ; (3,4)
(2,2) ; (2,3) ; (3,3) ; (3,4) ; (4,4)
Problema Bilei \ C++
#include<fstream.h>#include<conio.h>#include<graphics.h>#include<stdlib.h>int sol[100][3],t[10][10],m,n,i,j,lin,col,p=50,r=50,x,y;void tipar(int k){cout<<"SOLUTIE "<<endl; for(i=1;i<k;i++) cout<<sol[i][1]<<" "<<sol[i][2]<<endl;}void back(int k,int lin,int col){if(lin==0||lin==m+1||col==0||col==n+1) tipar(k); else {sol[k][0]=0; sol[k][1]=lin; sol[k][2]=col; while(sol[k][0]<4) {sol[k][0]++; switch(sol[k][0]) {case 1:if(t[lin-1][col]<t[lin][col]) back(k+1,lin-1,col);break; case 2:if(t[lin][col+1]<t[lin][col]) back(k+1,lin,col+1);break; case 3:if(t[lin+1][col]<t[lin][col]) back(k+1,lin+1,col);break; case 4:if(t[lin][col-1]<t[lin][col]) back(k+1,lin,col-1);break; } } }}
main(){char s[100]; int gd=DETECT, gm; initgraph(&gd,&gm,"C:\\TC\\BGI"); cout<<"m=";cin>>m; cout<<"n=";cin>>n; ifstream f("bilutza.cpp"); for(i=0;i<m;i++) {for(j=0;j<n;j++) {x=i+j; if(x%2==0)setfillstyle(1,BLUE); else setfillstyle(1,CYAN); bar3d(100+r,100+p,r+140,p+140,0,0); f>>t[i][j];itoa(t[i][j],s,10); setcolor(BLACK); settextstyle(5,0,3);outtextxy(r+100,p+100,s); r=r+40; } p=p+40; r=50; }for(i=0;i<m;i++) for(j=0;j<n;j++) f>>t[i][j]; cout<<"lin=";cin>>lin; cout<<"col=";cin>>col; back(1,lin,col); getch();}
BILUTA.EXEExecutabil:
Ce am invatat?
Ce am castigat prin realizarea proiectului?
Am inteles problema “BILEI” si in ce consta utilizarea backtrackingului pentru realizarea problemei;
Am reusit sa cream o solutie a problemei in grafica in c++;
Am gasit o corelatie intre informatica si viata de zi cu zi;
Am reusit sa petrecem o zi intreaga impreuna reusind sa ne cunoastem mai bine descoperind si laturi amuzante si interesante ale informaticii;
Bibliografie:
http://www.google.ro/images Manualul de informatica