Вопрос задан 26.06.2023 в 17:49. Предмет Информатика. Спрашивает Позднякова Арина.

Паскаль: 43 - Рекурсивные алгоритмы Помогите, что знаете, хотя бы на 3 задания 2. Алгоритм

вычисления значения функции F(n), где n - натуральное число, задан следующими соотношениями: F(0) = 1, F(1) = 1 F(n) = F(n-1)+F(n-2), при n > 1 Чему равно значение функции F(7)? 3. Алгоритм вычисления значения функции F(n), где n - натуральное число, задан следующими соотношениями: F(0) = 1, F(1) = 1 F(n) = F(n-1)*F(n-2)+2, при n > 1 Чему равно значение функции F(5)? 5. Дан рекурсивный алгоритм: procedure F(n: integer); begin writeln('*'); if n > 0 then begin F(n-2); F(n-2); F(n div 2); end end; Сколько символов "звездочка" будет напечатано на экране при выполнении вызова F(6)? 6. Дан рекурсивный алгоритм: procedure F(n: integer); begin writeln('*'); if n > 0 then begin F(n-3); F(n-2); F(n div 2); F(n div 2); end end; Сколько символов "звездочка" будет напечатано на экране при выполнении вызова F(6)? 7. Дан рекурсивный алгоритм: procedure F(n: integer); begin writeln('*'); if n > 0 then begin writeln('*'); F(n-2); F(n-2); F(n div 2); end end; Сколько символов "звездочка" будет напечатано на экране при выполнении вызова F(6)?
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Андреев Артём.

Задание 2.

program prog;

function F(n:integer):integer;

begin

   if n<=1 then F:=1

   else F:=F(n-1)+F(n-2)

end;

begin

   write(F(7))

end.

Вывод программы: 21

Задание 3.

program prog;

function F(n:integer):integer;

begin

   if n<=1 then F:=1

   else F:=F(n-1)*F(n-2)+2

end;

begin

   write(F(5))

end.

Вывод программы: 87

Задание 5.

program prog;

procedure F(n:integer);

begin

   write('*');

   if n > 0 then begin

       F(n-2);

       F(n-2);

       F(n div 2);

   end

end;

begin

   F(5);

end.

Вывод программы (34 звёздочки):

**********************************

Задание 6.

program prog;

procedure F(n: integer);

begin

   write('*');

   if n > 0 then begin

       F(n-3);

       F(n-2);

       F(n div 2);

       F(n div 2);

   end

end;

begin

   F(6);

end.

Вывод программы (97 звёздочек):

*************************************************************************************************

Задание 7.

program prog;

procedure F(n: integer);

begin

   write('*');

   if n > 0 then begin

       write('*');

       F(n-2);

       F(n-2);

       F(n div 2);

   end

end;

begin

   F(6);

end.

Вывод программы (77 звёздочек):

*****************************************************************************

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для решения этих задач, мы можем использовать рекурсивные функции. Давайте рассмотрим каждую задачу по очереди:

  1. Алгоритм вычисления значения функции F(n), где n - натуральное число, задан следующими соотношениями: F(0) = 1, F(1) = 1, F(n) = F(n-1) + F(n-2), при n > 1. Чему равно значение функции F(7)?

Для вычисления F(7) с помощью рекурсии, используем следующий Pascal-код:

pascal
function F(n: integer): integer; begin if n = 0 then F := 1 else if n = 1 then F := 1 else F := F(n-1) + F(n-2); end;

Вызываем функцию и выводим результат:

pascal
writeln(F(7)); // Выведет 13
  1. Алгоритм вычисления значения функции F(n), где n - натуральное число, задан следующими соотношениями: F(0) = 1, F(1) = 1, F(n) = F(n-1) * F(n-2) + 2, при n > 1. Чему равно значение функции F(5)?

Для вычисления F(5) с помощью рекурсии, используем следующий Pascal-код:

pascal
function F(n: integer): integer; begin if n = 0 then F := 1 else if n = 1 then F := 1 else F := F(n-1) * F(n-2) + 2; end;

Вызываем функцию и выводим результат:

pascal
writeln(F(5)); // Выведет 9
  1. Дан рекурсивный алгоритм:
pascal
procedure F(n: integer); begin writeln('*'); if n > 0 then begin F(n-2); F(n-2); F(n div 2); end; end;

Сколько символов "*" будет напечатано на экране при выполнении вызова F(6)?

Давайте рассмотрим шаги вызова функции:

  • F(6) вызывает F(4) два раза и F(3) один раз.
  • F(4) вызывает F(2) два раза и F(2) один раз.
  • F(2) вызывает F(0) два раза и F(0) один раз.

Таким образом, "*" будет напечатано 2 * 2 + 2 * 2 + 2 * 1 = 10 раз.

  1. Дан рекурсивный алгоритм:
pascal
procedure F(n: integer); begin writeln('*'); if n > 0 then begin F(n-3); F(n-2); F(n div 2); F(n div 2); end; end;

Сколько символов "*" будет напечатано на экране при выполнении вызова F(6)?

Давайте рассмотрим шаги вызова функции:

  • F(6) вызывает F(3) два раза, F(4) один раз и F(3) один раз.
  • F(3) вызывает F(0) два раза и F(1) два раза.
  • F(4) вызывает F(1) два раза и F(2) один раз.
  • F(2) вызывает F(0) два раза и F(0) два раза.

Таким образом, "*" будет напечатано 2 * 2 + 1 * 2 + 2 * 2 + 2 * 2 = 12 раз.

  1. Дан рекурсивный алгоритм:
pascal
procedure F(n: integer); begin writeln('*'); if n > 0 then begin writeln('*'); F(n-2); F(n-2); F(n div 2); end; end;

Сколько символов "*" будет напечатано на экране при выполнении вызова F(6)?

Давайте рассмотрим шаги вызова функции:

  • F(6) вызывает F(4) два раза и F(3) один раз.
  • F(4) вызывает F(2) два раза и F(2) один раз.
  • F(2) вызывает F(0) два раза и F(0) один раз.
  • F(3) вызывает F(1) два раза и F(2) один раз.
  • F(2) вызывает F(0) два раза и F(0) один раз.

Таким образом, "*" будет напечатано 2 * 2 + 1 * 2 + 2 * 2 + 2 * 2 = 12 раз.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос