1) procedure F (n:integer); 2) begin 3) if n > 2 then begin 4) writeln (n); 5) F (n-3); 6) F (n-4) 7) end 8) end;
-первый вызов- со входным параметром n=10 -в строке 3 проверяется, что n больше двух, -так как n действительно больше двух, то выполняются три следующие строки № 4,5,6 (а строка 7 -это указатель конца блока, выполняемого при истинности проверки) -строка 4 печатает значение n, то есть 10 -строка 5 вызывает этот алгоритм вновь, со входным параметром 7 -строка 6 опять вызывает алгоритм, со входным параметром 6 И в каждом вызове будут ещё два вызова, со входными параметрами на три и четыре меньше, чем был И так далее, каждый вызов будет вновь вызывать алгоритм, и печатать n до тех пор, пока n будет больше двух.
итак, получим ветвление вызовов, и вот значение n в каждом из них: 10 7 6 4 3 3 2 1 0 0 -1 0 -1
но, не все из этих n будут напечатаны, а только те, которые больше двух. если по порядку, то вот что будет напечатано: 10 7 4 3 6 3
У меня получилось так. условия: 1. Спрайт [не в бутылке, не в банке] 2. Пепси [не в бутылке], 3. Кола [не в банке], 4. Миринда []
это то что явно написано в условии.
дальше: сказано про сосуд с колой, что он находится между кувшином и мириндой. вывод именно из этого условия следующий: - кола не в кувшине (потому что рядом) - миринда не в кувшине (тоже потому что рядом)
допишем это в наш список: 1. Спрайт [не в бутылке, не в банке] 2. Пепси [не в бутылке], 3. Кола [не в банке, не в кувшине], 4. Миринда [не в кувшине]
дальше сказано про стакан что он около банки и Пепси вывод конкретно из этого условия такой: - Пепси не в стакане (потому что рядом) - Пепси не в банке (потому что рядом)
допишем в список того что мы знаем: 1. Спрайт [не в бутылке, не в банке] 2. Пепси [не в бутылке, не в стакане, не в банке], 3. Кола [не в банке, не в кувшине], 4. Миринда [не в кувшине]
теперь мы знаем что Пепси точно находится в кувшине, потому что она не находится в трёх других сосудах.
допишем в список того что мы знаем: 1. Спрайт [не в бутылке, не в банке] 2. Пепси кувшин 3. Кола [не в банке, не в кувшине], 4. Миринда [не в кувшине]
а значит спрайт и остальные напитки не могут быть в кувшине. значит для спрайта остаётся только быть в стакане.
1. Спрайт стакан 2. Пепси кувшин 3. Кола [не в банке, не в кувшине], 4. Миринда [не в кувшине]
теперь кола не может быть в стакане, для неё остаётся только бутылка. и для миринды остаётся последний сосуд - банка.
ответ: бутылка (Кола), стакан (Спрайт), кувшин (Пепси), банка (Миринда)или КСПМ
1) procedure F (n:integer);
2) begin
3) if n > 2 then begin
4) writeln (n);
5) F (n-3);
6) F (n-4)
7) end
8) end;
-первый вызов- со входным параметром n=10
-в строке 3 проверяется, что n больше двух,
-так как n действительно больше двух, то выполняются три следующие строки № 4,5,6 (а строка 7 -это указатель конца блока, выполняемого при истинности проверки)
-строка 4 печатает значение n, то есть 10
-строка 5 вызывает этот алгоритм вновь, со входным параметром 7
-строка 6 опять вызывает алгоритм, со входным параметром 6
И в каждом вызове будут ещё два вызова, со входными параметрами на три и четыре меньше, чем был
И так далее, каждый вызов будет вновь вызывать алгоритм, и печатать n до тех пор, пока n будет больше двух.
итак, получим ветвление вызовов, и вот значение n в каждом из них:
10
7 6
4 3 3 2
1 0 0 -1 0 -1
но, не все из этих n будут напечатаны, а только те, которые больше двух. если по порядку, то вот что будет напечатано:
10
7
4
3
6
3
сумма всех этих чисел равна 33
ответ: 33.
условия:
1. Спрайт [не в бутылке, не в банке]
2. Пепси [не в бутылке],
3. Кола [не в банке],
4. Миринда []
это то что явно написано в условии.
дальше: сказано про сосуд с колой, что он находится между кувшином и мириндой.
вывод именно из этого условия следующий:
- кола не в кувшине (потому что рядом)
- миринда не в кувшине (тоже потому что рядом)
допишем это в наш список:
1. Спрайт [не в бутылке, не в банке]
2. Пепси [не в бутылке],
3. Кола [не в банке, не в кувшине],
4. Миринда [не в кувшине]
дальше сказано про стакан что он около банки и Пепси
вывод конкретно из этого условия такой:
- Пепси не в стакане (потому что рядом)
- Пепси не в банке (потому что рядом)
допишем в список того что мы знаем:
1. Спрайт [не в бутылке, не в банке]
2. Пепси [не в бутылке, не в стакане, не в банке],
3. Кола [не в банке, не в кувшине],
4. Миринда [не в кувшине]
теперь мы знаем что Пепси точно находится в кувшине, потому что она не находится в трёх других сосудах.
допишем в список того что мы знаем:
1. Спрайт [не в бутылке, не в банке]
2. Пепси кувшин
3. Кола [не в банке, не в кувшине],
4. Миринда [не в кувшине]
а значит спрайт и остальные напитки не могут быть в кувшине. значит для спрайта остаётся только быть в стакане.
1. Спрайт стакан
2. Пепси кувшин
3. Кола [не в банке, не в кувшине],
4. Миринда [не в кувшине]
теперь кола не может быть в стакане, для неё остаётся только бутылка.
и для миринды остаётся последний сосуд - банка.
ответ: бутылка (Кола), стакан (Спрайт), кувшин (Пепси), банка (Миринда)или КСПМ