1) se scrie programul in intregime
#include<iostream.h>
int a[20], n;
int pivot(int st, int dr)
{
int aux, i,j,di,dj;
i=st;
j=dr;
di=0;
dj=1;
while(i
{
if
(a[i]>a[j])
{
aux=a[i];
a[i]=a[j];
a[j]=aux;
aux=di;
di=dj;
dj=aux;
}
i=i+di;
j=j-dj;
}
return i;
}
void dei(int st, int dr)
{
int p;
if ( st < dr )
{
p=pivot(st,dr);
dei(st,p-1);
dei(p+1,dr);
}
}
int main()
{
int i;
cout<<"n=";
cin>>n;
for (i=1;i<=n;i++)
{
cout<<"a["<
cin>>a[i];
}
dei(1,n);
cout<<"vectorul
sortat este: ";
for(i=1;i<=n;i++)
cout<
return 0;
}
2) se stabilesc breakpoint-uri(puncte de
oprire) la instructiuni valide cu F9 sau Debug->Toggle Breakpoint(un
breakpoint se scoate tot cu F9)
-in ex
dat in fata lui cout<<"n="; din main

3) un breakpoint are bulina rosie la
inceput

4) se apasa F5 sau Debug->Go
=>ecranul negru(terminal)

5) incepe rularea programului, peste
bulina rosie apare o sageata galbena care stabileste punctul de plecare
6) se deschide fereastra QuickWatch cu
Shift+F9 sau Debug->QuickWatch
7) apare o fereastra in care se vor
adauga pe rand variabilele de urmarit



8) se trece la instructiunea urmatoare
prin F10 sau Debug->Step Over

9) daca se apasa din nou F10 se permite introducerea datelor in
terminal

10) se da valoare lui n=9
11) se trece la instructiunea urmatoare,
adica for
12) se apasa F10 =>trece la
instructiunea urmatoare
13) se vede in fereastra QuickWatch ca i
a devenit 1

14) se apasa F10 si apare in terminal
a[1]

15) se apasa iar F10 si se poate
introduce valoarea lui a[1]=6 apoi Enter

16) valoarea 6 ajunge in vector si
sageata galbena revine la for

17) F10, sageata trece la urmatoare instr(adica cout),
se vede in QuickWatch ca i devine 2
18) F10 si apare in terminal a[2]=

19) F10 si se poate da valoare, adica 2
apoi se apasa Enter si 2 ajunge in vector


20) se repeta pt toate valorile
vectorului a
21) dupa ce s-a dat si valoare lui a[9]=7
se vad in QuickWatch elementele din vectorul a

22) F10, i este 10 si sageata trece la
urmatoarea instr , adica dei(1,n)

PASII DE LA 8-21 POT FI INLOCUITI CU 23
23) se pune cursorul in punctul in care vrem sa ajungem si
apasam Ctrl+F10 sau Debug->Run to Cursor=>introduc
valorile n, a[1]..a[9] si se opreste in fata la dei(1,n)
24) F11 sau Debug->Step Into pt a
intra in interiorul functiei dei

25) sageata galbena a sarit la prima
instr din fct dei

26) F10 , se trece la urm. instr. adica p=pivot(st,dr)

27) se observa in QuickWatch st=1, dr=9
28) F11 pt a intra in interiorul fct pivot

29) cu F10 se trece prin fiecare instr
din fct pivot si se observa modif din
QuickWatch
30) F10 pana ultima instr din pivot adica
return i

31) F10, sageata galbena ajunge iar in
dei la instr dei(st,p-1)

32) F11, s-a ajuns la prima instr din dei

33) F10, sageata trece la p=pivot(st,dr)
=daca F11, se intra in fct
pivot
=daca F10, se executa instr
din pivot fara a vedea pas cu pas
34) s-a ales F10 , se trece la
dei(st,p-1) si p=3

35) F10, se trece la dei(p+1,dr)

36) F10, termina fct dei pt st=1,dr=5

37) F10, se ajunge iar la dei(p+1,dr) cu
st=1, dr=9

38) F10, se termina fct dei pt st=1,
dr=9, sus in QuickWatch se observa vectorul a

39) F10, se trece in main la
cout<<"vectorul sortat este: "

40) F10, se apare mesajul in terminal,
sageata galbena trece la instr urm, adica for

41) F10, se trece la instr cout din for

42) F10, se afiseaza prima valoare din
vectorul sortat si sageata galbena revine la instr for

43) F10, se trece la instr cout din for,
se observa in QuickWatch ca i isi schimba val, i=2
44) F10, se afiseaza urmatoarea val din
vectorul sortat
45) F10 pana afiseaza toate valorile

46) F10 si se ajunge la return 0 din main
=> sfarsit program

