Скачиваний:
13
Добавлен:
01.05.2014
Размер:
442.37 Кб
Скачать

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) ?

10

Соседние файлы в папке Морской бой на языке Пролог