Срочно, пожалуйста! ДАЮ 40 БАЛЛОВ! Определите, что выведет на экран программа при вызове F(5)? (С решением желательно)
procedure F(n: integer);
begin
if n>0 then begin
F(n-1);
write(n);
F(n div 4);
end
end;

Ответы

Ответ дал: nastikots
1

Ответ:

1234151

Объяснение:

процедура F(n):

если n > 0, то

1. вызов процедуры F(n-1)

2. вывод n

3. вызов процедуры F(n div 4)

1)  F(5)         n = 5

5 > 0      Да

1.  F (4)     5 - 1 = 4

2)  F(4)         n = 4

4 > 0      Да

1.  F (3)     4 - 1 = 3

3)  F(3)         n = 3

3 > 0      Да

1.  F (2)     3 - 1 = 2

4)  F(2)         n = 2

2 > 0      Да

1.  F (1)     2 - 1 = 1

5)  F(1)         n = 1

1 > 0      Да

1.  F (0)     1 - 1 = 0

6)  F(0)         n = 0

0 > 0      НЕТ

возвращаемся к пункту 5

5)  F(1)         n = 1

2.  вывод 1

3.  F(0)     1 div 4 = 0

7) F(0)         n = 0

0 > 0      НЕТ

возвращаемся к пункту 5

5)  F(1)         n = 1

пункт 5 закончен

возвращаемся к пункту 4

4)  F(2)         n = 2

2.  вывод 2

3.  F(0)     2 div 4 = 0

8) F(0)         n = 0

0 > 0      НЕТ

возвращаемся к пункту 4

4)  F(2)         n = 2

пункт 4 закончен

возвращаемся к пункту 3

3)  F(3)         n = 3

2.  вывод 3

3.  F(0)     3 div 4 = 0

9) F(0)         n = 0

0 > 0      НЕТ

возвращаемся к пункту 3

3)  F(3)         n = 3

пункт 3 закончен

возвращаемся к пункту 2

2)  F(4)         n = 4

2.  вывод 4

3.  F(1)     4 div 4 = 1

10) F(1)         n = 1

1 > 0      Да

1.  F(0)       1 - 1 = 0

11) F(0)         n = 0

0 > 0      НЕТ

возвращаемся к пункту 10

10) F(1)         n = 1

2.  вывод 1

3.  F(0)     1 div 4 = 0

12) F(0)         n = 0

0 > 0      НЕТ

возвращаемся к пункту 10

10) F(1)         n = 1

пункт 10 закончен

возвращаемся к пункту 2

2)  F(4)         n = 4

пункт 2 закончен

возвращаемся к пункту 1

1)  F(5)         n = 5

2.  вывод 5

3.  F(1)     5 div 4 = 1

13) F(1)         n = 1

2.  вывод 1

3.  F(0)     1 div 4 = 0

14) F(0)         n = 0

0 > 0      НЕТ

возвращаемся к пункту 13

13) F(1)         n = 1

пункт 13 закончен

возвращаемся к пункту 1

1)  F(5)         n = 5

пункт 1 закончен

программа закончена


sotori: Спасибо большое!
Вас заинтересует