
5. Трассировка участка программы на тестовом примере
1 1 Call: main(_16,_17) ?
2 2 Call: navy(_16) ?
2 2 Exit: navy([[_103/_104/1/0,_112/_113/1/0,_121/_122/1/0,_130/_131/1/0],[_145/_146/2/_140,_154/_155/2/_149,_163/_164/2/_158],[_176/_177/3/_171,_185/_186/3/_180],[_196/_197/4/_191]]) ?
3 2 Call: read(_17) ?
3 2 Exit: read(end_of_file) ?
4 2 Call: search([[_103/_104/1/0,_112/_113/1/0,_121/_122/1/0,_130/_131/1/0],[_145/_146/2/_140,_154/_155/2/_149,_163/_164/2/_158],[_176/_177/3/_171,_185/_186/3/_180],[_196/_197/4/_191]],end_of_file) ?
5 3 Call: search([[_145/_146/2/_140,_154/_155/2/_149,_163/_164/2/_158],[_176/_177/3/_171,_185/_186/3/_180],[_196/_197/4/_191]],end_of_file) ?
6 4 Call: search([[_176/_177/3/_171,_185/_186/3/_180],[_196/_197/4/_191]],end_of_file) ?
7 5 Call: search([[_196/_197/4/_191]],end_of_file) ?
8 6 Call: search([],end_of_file) ?
8 6 Exit: search([],end_of_file) ?
9 6 Call: search_navy([_196/_197/4/_191],end_of_file,[]) ?
10 7 Call: 4=:=1 ?
10 7 Fail: 4=:=1 ?
10 7 Call: 4=:=2 ?
10 7 Fail: 4=:=2 ?
10 7 Call: 4=:=3 ?
10 7 Fail: 4=:=3 ?
10 7 Call: 4=:=4 ?
10 7 Exit: 4=:=4 ?
11 7 Call: search_4deck([_196/_197/4/_191],end_of_file) ?
12 8 Call: choose_place(_196/_197/4/_191,0,0) ?
13 9 Call: member(_196,[0,1,2,3,4,5,6,7,...]) ?
13 9 Exit: member(0,[0,1,2,3,4,5,6,7,...]) ?
14 9 Call: 0>=0 ?
14 9 Exit: 0>=0 ?
15 9 Call: member(_197,[0,1,2,3,4,5,6,7,...]) ?
15 9 Exit: member(0,[0,1,2,3,4,5,6,7,...]) ?
16 9 Call: member(_191,[0,1]) ?
16 9 Exit: member(0,[0,1]) ?
17 9 Call: 0*10+0>0*10+0 ?
17 9 Fail: 0*10+0>0*10+0 ?
16 9 Redo: member(0,[0,1]) ?
16 9 Exit: member(1,[0,1]) ?
17 9 Call: 0*10+0>0*10+0 ?
17 9 Fail: 0*10+0>0*10+0 ?
16 9 Redo: member(1,[0,1]) ?
16 9 Fail: member(_191,[0,1]) ?
15 9 Redo: member(0,[0,1,2,3,4,5,6,7,...]) ?
15 9 Exit: member(1,[0,1,2,3,4,5,6,7,...]) ?
16 9 Call: member(_191,[0,1]) ?
16 9 Exit: member(0,[0,1]) ?
17 9 Call: 0*10+1>0*10+0 ?
17 9 Exit: 0*10+1>0*10+0 ?
18 9 Call: _691 is 0+0*(4-1) ?
18 9 Exit: 0 is 0+0*(4-1) ?
19 9 Call: member(0,[0,1,2,3,4,5,6,7,...]) ?
19 9 Exit: member(0,[0,1,2,3,4,5,6,7,...]) ?
20 9 Call: _773 is 1+(1-0)*(4-1) ?
20 9 Exit: 4 is 1+(1-0)*(4-1) ?
21 9 Call: member(4,[0,1,2,3,4,5,6,7,...]) ?
21 9 Exit: member(4,[0,1,2,3,4,5,6,7,...]) ?
12 8 Exit: choose_place(0/1/4/0,0,0) ?
22 8 Call: _853 is 0+0*(4-1) ?
22 8 Exit: 0 is 0+0*(4-1) ?
23 8 Call: _890 is 1+(1-0)*(4-1) ?
23 8 Exit: 4 is 1+(1-0)*(4-1) ?
24 8 Call: is_reef_ndeck(0/1/0/4,end_of_file) ?
24 8 Fail: is_reef_ndeck(0/1/0/4,end_of_file) ?
12 8 Redo: choose_place(0/1/4/0,0,0) ?
21 9 Redo: member(4,[0,1,2,3,4,5,6,7,...]) ?
21 9 Fail: member(4,[0,1,2,3,4,5,6,7,...]) ?
19 9 Redo: member(0,[0,1,2,3,4,5,6,7,...]) ?
19 9 Fail: member(0,[0,1,2,3,4,5,6,7,...]) ?
16 9 Redo: member(0,[0,1]) ?
16 9 Exit: member(1,[0,1]) ?
17 9 Call: 0*10+1>0*10+0 ?
17 9 Exit: 0*10+1>0*10+0 ?
18 9 Call: _691 is 0+1*(4-1) ?
18 9 Exit: 3 is 0+1*(4-1) ?
19 9 Call: member(3,[0,1,2,3,4,5,6,7,...]) ?
19 9 Exit: member(3,[0,1,2,3,4,5,6,7,...]) ?
20 9 Call: _773 is 1+(1-1)*(4-1) ?
20 9 Exit: 1 is 1+(1-1)*(4-1) ?
21 9 Call: member(1,[0,1,2,3,4,5,6,7,...]) ?
21 9 Exit: member(1,[0,1,2,3,4,5,6,7,...]) ?
12 8 Exit: choose_place(0/1/4/1,0,0) ?
22 8 Call: _853 is 0+1*(4-1) ?
22 8 Exit: 3 is 0+1*(4-1) ?
23 8 Call: _890 is 1+(1-1)*(4-1) ?
23 8 Exit: 1 is 1+(1-1)*(4-1) ?
24 8 Call: is_reef_ndeck(0/1/3/1,end_of_file) ?
24 8 Fail: is_reef_ndeck(0/1/3/1,end_of_file) ?
12 8 Redo: choose_place(0/1/4/1,0,0) ?
21 9 Redo: member(1,[0,1,2,3,4,5,6,7,...]) ?
21 9 Fail: member(1,[0,1,2,3,4,5,6,7,...]) ?
19 9 Redo: member(3,[0,1,2,3,4,5,6,7,...]) ?
19 9 Fail: member(3,[0,1,2,3,4,5,6,7,...]) ?
16 9 Redo: member(1,[0,1]) ?
16 9 Fail: member(_191,[0,1]) ?
15 9 Redo: member(1,[0,1,2,3,4,5,6,7,...]) ?
15 9 Exit: member(2,[0,1,2,3,4,5,6,7,...]) ?
16 9 Call: member(_191,[0,1]) ?
16 9 Exit: member(0,[0,1]) ?
17 9 Call: 0*10+2>0*10+0 ?
17 9 Exit: 0*10+2>0*10+0 ?
18 9 Call: _691 is 0+0*(4-1) ?
18 9 Exit: 0 is 0+0*(4-1) ?
19 9 Call: member(0,[0,1,2,3,4,5,6,7,...]) ?
19 9 Exit: member(0,[0,1,2,3,4,5,6,7,...]) ?
20 9 Call: _773 is 2+(1-0)*(4-1) ?
20 9 Exit: 5 is 2+(1-0)*(4-1) ?
21 9 Call: member(5,[0,1,2,3,4,5,6,7,...]) ?
21 9 Exit: member(5,[0,1,2,3,4,5,6,7,...]) ?
12 8 Exit: choose_place(0/2/4/0,0,0) ?
22 8 Call: _853 is 0+0*(4-1) ?
22 8 Exit: 0 is 0+0*(4-1) ?
23 8 Call: _890 is 2+(1-0)*(4-1) ?
23 8 Exit: 5 is 2+(1-0)*(4-1) ?
24 8 Call: is_reef_ndeck(0/2/0/5,end_of_file) ?
24 8 Fail: is_reef_ndeck(0/2/0/5,end_of_file) ?
12 8 Redo: choose_place(0/2/4/0,0,0) ?
21 9 Redo: member(5,[0,1,2,3,4,5,6,7,...]) ?
21 9 Fail: member(5,[0,1,2,3,4,5,6,7,...]) ?
19 9 Redo: member(0,[0,1,2,3,4,5,6,7,...]) ?
19 9 Fail: member(0,[0,1,2,3,4,5,6,7,...]) ?
16 9 Redo: member(0,[0,1]) ?
16 9 Exit: member(1,[0,1]) ?
17 9 Call: 0*10+2>0*10+0 ?
17 9 Exit: 0*10+2>0*10+0 ?
18 9 Call: _691 is 0+1*(4-1) ?
18 9 Exit: 3 is 0+1*(4-1) ?
19 9 Call: member(3,[0,1,2,3,4,5,6,7,...]) ?
19 9 Exit: member(3,[0,1,2,3,4,5,6,7,...]) ?
20 9 Call: _773 is 2+(1-1)*(4-1) ?
20 9 Exit: 2 is 2+(1-1)*(4-1) ?
21 9 Call: member(2,[0,1,2,3,4,5,6,7,...]) ?
21 9 Exit: member(2,[0,1,2,3,4,5,6,7,...]) ?
12 8 Exit: choose_place(0/2/4/1,0,0) ?
22 8 Call: _853 is 0+1*(4-1) ?
22 8 Exit: 3 is 0+1*(4-1) ?
23 8 Call: _890 is 2+(1-1)*(4-1) ?
23 8 Exit: 2 is 2+(1-1)*(4-1) ?
24 8 Call: is_reef_ndeck(0/2/3/2,end_of_file) ?
24 8 Fail: is_reef_ndeck(0/2/3/2,end_of_file) ?
12 8 Redo: choose_place(0/2/4/1,0,0) ?
21 9 Redo: member(2,[0,1,2,3,4,5,6,7,...]) ?
21 9 Fail: member(2,[0,1,2,3,4,5,6,7,...]) ?
19 9 Redo: member(3,[0,1,2,3,4,5,6,7,...]) ?
19 9 Fail: member(3,[0,1,2,3,4,5,6,7,...]) ?
16 9 Redo: member(1,[0,1]) ?
16 9 Fail: member(_191,[0,1]) ?
15 9 Redo: member(2,[0,1,2,3,4,5,6,7,...]) ?
15 9 Exit: member(3,[0,1,2,3,4,5,6,7,...]) ?
16 9 Call: member(_191,[0,1]) ?
16 9 Exit: member(0,[0,1]) ?
17 9 Call: 0*10+3>0*10+0 ?
17 9 Exit: 0*10+3>0*10+0 ?
18 9 Call: _691 is 0+0*(4-1) ?
18 9 Exit: 0 is 0+0*(4-1) ?
19 9 Call: member(0,[0,1,2,3,4,5,6,7,...]) ?
19 9 Exit: member(0,[0,1,2,3,4,5,6,7,...]) ?
20 9 Call: _773 is 3+(1-0)*(4-1) ?
20 9 Exit: 6 is 3+(1-0)*(4-1) ?
21 9 Call: member(6,[0,1,2,3,4,5,6,7,...]) ?
21 9 Exit: member(6,[0,1,2,3,4,5,6,7,...]) ?
12 8 Exit: choose_place(0/3/4/0,0,0) ?
22 8 Call: _853 is 0+0*(4-1) ?
22 8 Exit: 0 is 0+0*(4-1) ?
23 8 Call: _890 is 3+(1-0)*(4-1) ?
23 8 Exit: 6 is 3+(1-0)*(4-1) ?
24 8 Call: is_reef_ndeck(0/3/0/6,end_of_file) ?
24 8 Fail: is_reef_ndeck(0/3/0/6,end_of_file) ?
12 8 Redo: choose_place(0/3/4/0,0,0) ?
21 9 Redo: member(6,[0,1,2,3,4,5,6,7,...]) ?
21 9 Fail: member(6,[0,1,2,3,4,5,6,7,...]) ?
19 9 Redo: member(0,[0,1,2,3,4,5,6,7,...]) ?
19 9 Fail: member(0,[0,1,2,3,4,5,6,7,...]) ?
16 9 Redo: member(0,[0,1]) ?
16 9 Exit: member(1,[0,1]) ?
17 9 Call: 0*10+3>0*10+0 ?
17 9 Exit: 0*10+3>0*10+0 ?
18 9 Call: _691 is 0+1*(4-1) ?
18 9 Exit: 3 is 0+1*(4-1) ?
19 9 Call: member(3,[0,1,2,3,4,5,6,7,...]) ?
19 9 Exit: member(3,[0,1,2,3,4,5,6,7,...]) ?
20 9 Call: _773 is 3+(1-1)*(4-1) ?
20 9 Exit: 3 is 3+(1-1)*(4-1) ?
21 9 Call: member(3,[0,1,2,3,4,5,6,7,...]) ?
21 9 Exit: member(3,[0,1,2,3,4,5,6,7,...]) ?
12 8 Exit: choose_place(0/3/4/1,0,0) ?
22 8 Call: _853 is 0+1*(4-1) ?
22 8 Exit: 3 is 0+1*(4-1) ?
23 8 Call: _890 is 3+(1-1)*(4-1) ?
23 8 Exit: 3 is 3+(1-1)*(4-1) ?
24 8 Call: is_reef_ndeck(0/3/3/3,end_of_file) ?
24 8 Fail: is_reef_ndeck(0/3/3/3,end_of_file) ?
12 8 Redo: choose_place(0/3/4/1,0,0) ?
21 9 Redo: member(3,[0,1,2,3,4,5,6,7,...]) ?
21 9 Fail: member(3,[0,1,2,3,4,5,6,7,...]) ?
19 9 Redo: member(3,[0,1,2,3,4,5,6,7,...]) ?
19 9 Fail: member(3,[0,1,2,3,4,5,6,7,...]) ?
16 9 Redo: member(1,[0,1]) ?
16 9 Fail: member(_191,[0,1]) ?
15 9 Redo: member(3,[0,1,2,3,4,5,6,7,...]) ?
15 9 Exit: member(4,[0,1,2,3,4,5,6,7,...]) ?
16 9 Call: member(_191,[0,1]) ?
16 9 Exit: member(0,[0,1]) ?
17 9 Call: 0*10+4>0*10+0 ?
17 9 Exit: 0*10+4>0*10+0 ?
18 9 Call: _691 is 0+0*(4-1) ?
18 9 Exit: 0 is 0+0*(4-1) ?
19 9 Call: member(0,[0,1,2,3,4,5,6,7,...]) ?
19 9 Exit: member(0,[0,1,2,3,4,5,6,7,...]) ?
20 9 Call: _773 is 4+(1-0)*(4-1) ?
20 9 Exit: 7 is 4+(1-0)*(4-1) ?
21 9 Call: member(7,[0,1,2,3,4,5,6,7,...]) ?
21 9 Exit: member(7,[0,1,2,3,4,5,6,7,...]) ?
12 8 Exit: choose_place(0/4/4/0,0,0) ?
22 8 Call: _853 is 0+0*(4-1) ?
22 8 Exit: 0 is 0+0*(4-1) ?
23 8 Call: _890 is 4+(1-0)*(4-1) ?
23 8 Exit: 7 is 4+(1-0)*(4-1) ?
24 8 Call: is_reef_ndeck(0/4/0/7,end_of_file) ?
24 8 Fail: is_reef_ndeck(0/4/0/7,end_of_file) ?
12 8 Redo: choose_place(0/4/4/0,0,0) ?
21 9 Redo: member(7,[0,1,2,3,4,5,6,7,...]) ?
21 9 Fail: member(7,[0,1,2,3,4,5,6,7,...]) ?
19 9 Redo: member(0,[0,1,2,3,4,5,6,7,...]) ?
19 9 Fail: member(0,[0,1,2,3,4,5,6,7,...]) ?
16 9 Redo: member(0,[0,1]) ?
16 9 Exit: member(1,[0,1]) ?
17 9 Call: 0*10+4>0*10+0 ?
17 9 Exit: 0*10+4>0*10+0 ?
18 9 Call: _691 is 0+1*(4-1) ?
18 9 Exit: 3 is 0+1*(4-1) ?
19 9 Call: member(3,[0,1,2,3,4,5,6,7,...]) ?
19 9 Exit: member(3,[0,1,2,3,4,5,6,7,...]) ?
20 9 Call: _773 is 4+(1-1)*(4-1) ?
20 9 Exit: 4 is 4+(1-1)*(4-1) ?
21 9 Call: member(4,[0,1,2,3,4,5,6,7,...]) ?
21 9 Exit: member(4,[0,1,2,3,4,5,6,7,...]) ?
12 8 Exit: choose_place(0/4/4/1,0,0) ?
22 8 Call: _853 is 0+1*(4-1) ?
22 8 Exit: 3 is 0+1*(4-1) ?
23 8 Call: _890 is 4+(1-1)*(4-1) ?
23 8 Exit: 4 is 4+(1-1)*(4-1) ?
24 8 Call: is_reef_ndeck(0/4/3/4,end_of_file) ?
24 8 Fail: is_reef_ndeck(0/4/3/4,end_of_file) ?
12 8 Redo: choose_place(0/4/4/1,0,0) ?
21 9 Redo: member(4,[0,1,2,3,4,5,6,7,...]) ?
21 9 Fail: member(4,[0,1,2,3,4,5,6,7,...]) ?
19 9 Redo: member(3,[0,1,2,3,4,5,6,7,...]) ?
19 9 Fail: member(3,[0,1,2,3,4,5,6,7,...]) ?
16 9 Redo: member(1,[0,1]) ?
16 9 Fail: member(_191,[0,1]) ?
15 9 Redo: member(4,[0,1,2,3,4,5,6,7,...]) ?
15 9 Exit: member(5,[0,1,2,3,4,5,6,7,...]) ?
16 9 Call: member(_191,[0,1]) ?
16 9 Exit: member(0,[0,1]) ?
17 9 Call: 0*10+5>0*10+0 ?
17 9 Exit: 0*10+5>0*10+0 ?
18 9 Call: _691 is 0+0*(4-1) ?
18 9 Exit: 0 is 0+0*(4-1) ?
19 9 Call: member(0,[0,1,2,3,4,5,6,7,...]) ?
19 9 Exit: member(0,[0,1,2,3,4,5,6,7,...]) ?
20 9 Call: _773 is 5+(1-0)*(4-1) ?
20 9 Exit: 8 is 5+(1-0)*(4-1) ?
21 9 Call: member(8,[0,1,2,3,4,5,6,7,...]) ?
21 9 Exit: member(8,[0,1,2,3,4,5,6,7,...]) ?
12 8 Exit: choose_place(0/5/4/0,0,0) ?
22 8 Call: _853 is 0+0*(4-1) ?
22 8 Exit: 0 is 0+0*(4-1) ?
23 8 Call: _890 is 5+(1-0)*(4-1) ?
23 8 Exit: 8 is 5+(1-0)*(4-1) ?
24 8 Call: is_reef_ndeck(0/5/0/8,end_of_file) ?
24 8 Fail: is_reef_ndeck(0/5/0/8,end_of_file) ?
12 8 Redo: choose_place(0/5/4/0,0,0) ?
21 9 Redo: member(8,[0,1,2,3,4,5,6,7,...]) ?
21 9 Fail: member(8,[0,1,2,3,4,5,6,7,...]) ?
19 9 Redo: member(0,[0,1,2,3,4,5,6,7,...]) ?
19 9 Fail: member(0,[0,1,2,3,4,5,6,7,...]) ?
16 9 Redo: member(0,[0,1]) ?
16 9 Exit: member(1,[0,1]) ?
17 9 Call: 0*10+5>0*10+0 ?
17 9 Exit: 0*10+5>0*10+0 ?
18 9 Call: _691 is 0+1*(4-1) ?
18 9 Exit: 3 is 0+1*(4-1) ?
19 9 Call: member(3,[0,1,2,3,4,5,6,7,...]) ?
19 9 Exit: member(3,[0,1,2,3,4,5,6,7,...]) ?
20 9 Call: _773 is 5+(1-1)*(4-1) ?
20 9 Exit: 5 is 5+(1-1)*(4-1) ?
21 9 Call: member(5,[0,1,2,3,4,5,6,7,...]) ?
21 9 Exit: member(5,[0,1,2,3,4,5,6,7,...]) ?
12 8 Exit: choose_place(0/5/4/1,0,0) ?
22 8 Call: _853 is 0+1*(4-1) ?