Индуктивное определение объектов информатика егэ

Всего: 163    1–20 | 21–40 | 41–60 | 61–80 …

Добавить в вариант

Ниже на пяти языках программирования записан рекурсивный алгоритм F.

Бейсик Python

SUB F(n)

    IF n > 3 THEN

         F(n 2)

         F(n − 2)

    END IF

    PRINT N

END SUB

def F(n):

    if n > 3:

        F(n // 2)

        F(n − 2)

    print(n)

Паскаль Алгоритмический язык

procedure F(n: integer);

begin

    if n > 3 then begin

        F(n div 2);

        F(n − 2);

    end;

    write(n);

end;

алг F(цел n)

нач

    если n > 3 то

        F(div(n,2))

        F(n − 2)

    все

    вывод n

кон

С++

void F (int n)

{

     if (n > 3) {

        F (n / 2);

        F (n − 2);

    }

    std::cout << n;

}

Запишите подряд без пробелов и разделителей все числа, которые будут показаны на экране при выполнении вызова F(9). Числа должны быть записаны в том же порядке, в котором они выводятся на экран.


Ниже на пяти языках программирования записан рекурсивный алгоритм F.

Бейсик Python

SUB F(n)

    IF n > 2 THEN

         F(n − 2)

         PRINT n;

         F(n 2)

    END IF

END SUB

def F(n):

    if n > 2:

        F(n − 2)

        print(n, end=»)

        F(n // 2)

Паскаль Алгоритмический язык

procedure F(n: integer);

begin

    if n > 2 then begin

        F(n − 2);

        write(n);

        F(n div 2);

    end;

end;

алг F(цел n)

нач

    если n > 2 то

        F(n − 2)

        вывод n

        F(div(n,2))

    все

кон

С++

void F (int n)

{

     if (n > 2) {

        F (n − 2);

        std::cout << n;

        F (n / 2);

    }

}

Запишите подряд без пробелов и разделителей все числа, которые будут показаны на экране при выполнении вызова F(9). Числа должны быть записаны в том же порядке, в котором они выводятся на экран.


Ниже на пяти языках программирования записан рекурсивный алгоритм F.

Бейсик Python

DECLARE SUB F(n)

SUB F(n)

    IF n > 2 THEN

        PRINT n

        F(n — 3)

        F(n – 4)

    END IF

END SUB

def F(n):

    if n > 2:

        print(n)

        F(n — 3)

        F(n – 4)

Паскаль Алгоритмический язык

procedure F(n: integer);

begin

    if n > 2 then begin

        writeln(n);

        F(n — 3);

        F(n – 4)

    end

end;

алг F(цел n)

нач

    если n > 2 то

        вывод n, нс

        F(n — 3)

        F(n – 4)

    все

кон

Си

void F(int n) {

    if (n > 2) {

        cout << n;

        F(n — 3);

        F(n – 4);

    }

}

Чему равна сумма напечатанных на экране чисел при выполнении вызова F(10)?

Источник: Демонстрационная версия ЕГЭ—2017 по информатике.


Ниже на пяти языках программирования записан рекурсивный алгоритм F.

Бейсик Python

SUB F(n)

    IF n > 3 THEN

         F(n − 2)

         F(n 2)

    END IF

    PRINT N

END SUB

def F(n):

    if n > 3:

        F(n − 2)

        F(n // 2)

    print(n)

Паскаль Алгоритмический язык

procedure F(n: integer);

begin

    if n > 3 then begin

        F(n − 2);

        F(n div 2);

    end;

    write(n);

end;

алг F(цел n)

нач

    если n > 3 то

        F(n − 2)

        F(div(n,2))

    все

    вывод n

кон

С++

void F (int n)

{

     if (n > 3) {

        F (n − 2);

        F (n / 2);

    }

    std::cout << n;

}

Запишите подряд без пробелов и разделителей все числа, которые будут показаны на экране при выполнении вызова F(9). Числа должны быть записаны в том же порядке, в котором они выводятся на экран.


Обозначим через a mod b остаток от деления натурального числа a на натуральное число b. Алгоритм вычисления значения функции F(n), где n  — натуральное число, задан следующими соотношениями:

F(0) = 0;

F(n) = n + F(n − 3), если n mod 3  =  0, и n > 0;

F(n) = n + F(n − (n mod 3)), если n mod 3 > 0.

Чему равно значение функции F(22)?


Обозначим через a mod b остаток от деления натурального числа a на натуральное число b. Алгоритм вычисления значения функции F(n), где n  — натуральное число, задан следующими соотношениями:

F(0) = 0;

F(n) = n + F(n − 3), если n mod 3  =  0, и n > 0;

F(n) = n + F(n − (n mod 3)), если n mod 3 > 0.

Чему равно значение функции F(26)?


Ниже на четырёх языках программирования записан рекурсивный алгоритм F.

Бейсик Паскаль

SUB F(n)

  IF n > 0 THEN

    F(n — 4)

    F(n 3)

    PRINT n

  END IF

END SUB

procedure F(n: integer);

begin

  if n > 0 then

  begin

    F(n — 4);

    F(n div 3);

    writeln(n)

  end

end;

Си++ Алгоритмический язык

void F(int n)

{

if (n > 0)

  {

    F(n — 4);

    F(n / 3);

    cout << n << endl;

  }

}

алг F(цел n)

нач

  если n > 0 то

    F(n — 4)

    F(div(n, 3))

    вывод n, нс

  все

кон

Python

def F(n):

    if n > 0:

        F(n — 4)

        F(n // 3)

        print(n)

Чему равна сумма всех чисел, напечатанных на экране при выполнении вызова F(10)?


Алгоритм вычисления значения функции F(n), где n  — натуральное число, задан следующими соотношениями:

F(n) = 2 при n ≤ 2;

F(n) = F(n − 1) + 2 · F(n − 2) при n > 2.

Чему равно значение функции F(5)? В ответе запишите только натуральное число.

Источник: ЕГЭ по информатике 30.05.2013. Основная волна. Сибирь. Вариант 1.


Алгоритм вычисления значения функции F(n), где n  — натуральное число, задан следующими соотношениями:

F(n) = 2 при n ≤ 2;

F(n) = 2 · F(n − 1) + F(n − 2) при n > 2.

Чему равно значение функции F(5)? В ответе запишите только натуральное число.

Источник: ЕГЭ по информатике 30.05.2013. Основная волна. Сибирь. Вариант 2.


Алгоритм вычисления значения функции F(n), где n  — натуральное число, задан следующими соотношениями:

F(n) = n + 4 при n ≤ 2;

F(n) = F(n − 1) + F(n − 2) при n > 2.

Чему равно значение функции F(6)? В ответе запишите только натуральное число.

Источник: ЕГЭ по информатике 30.05.2013. Основная волна. Урал. Вариант 2.


Алгоритм вычисления значения функции F(n), где n  — натуральное число, задан следующими соотношениями:

F(n) = 2 при n ≤ 2;

F(n) = F(n − 1) × F(n − 2) при n> 2.

Чему равно значение функции F(5)? В ответе запишите только натуральное число.

Источник: ЕГЭ по информатике 08.07.2013. Вторая волна. Вариант 802.


Ниже на пяти языках программирования записан рекурсивный алгоритм F.

Бейсик Python

SUB F(n)

    IF n > 0 THEN

         PRINT N

         F(n − 4)

         F(n 2)

    END IF

END SUB

def F(n):

    if n > 0:

        print(n)

         F(n − 4)

         F(n // 2)

Паскаль Алгоритмический язык

procedure F(n: integer);

begin

    if n > 0 then begin

        write(n);

        F(n − 4);

        F(n div 2);

    end

end;

алг F(цел n)

нач

    если n > 0 то

        вывод n

        F(n − 4)

        F(div(n,2))

    все

кон

С++

void F (int n)

{

     if (n > 0) {

        std::cout << n;

        F (n − 4);

        F (n / 2);

    }

}

Запишите подряд без пробелов и разделителей все числа, которые будут напечатаны на экране при выполнении вызова F(9). Числа должны быть записаны в том же порядке, в котором они выводятся на экран.


Ниже на пяти языках программирования записан рекурсивный алгоритм F.

Бейсик Python

SUB F(n)

    IF n > 0 THEN

         PRINT N

         F(n 2)

         F(n − 4)

    END IF

END SUB

def F(n):

    if n > 0:

        print(n)

         F(n // 2)

         F(n − 4)

Паскаль Алгоритмический язык

procedure F(n: integer);

begin

    if n > 0 then begin

        write(n);

        F(n div 2);

        F(n − 4);

    end

end;

алг F(цел n)

нач

    если n > 0 то

        вывод n

        F(div(n,2))

        F(n − 4)

    все

кон

С++

void F (int n)

{

     if (n > 0) {

        std::cout << n;

        F (n / 2);

        F (n − 4);

    }

}

Запишите подряд без пробелов и разделителей все числа, которые будут напечатаны на экране при выполнении вызова F(9). Числа должны быть записаны в том же порядке, в котором они выводятся на экран.


Алгоритм вычисления значения функции F(n), где n — натуральное число, задан следующими соотношениями:

F(1) = 5;F(2) = 5;

F(n) = 5*F(n − 1) − 4*F(n − 2) при n >2.

Чему равно значение функции F(13)? В ответе запишите только натуральное число.


Алгоритм вычисления значения функции F(n), где n  — натуральное число, задан следующими соотношениями:

F(n) = 2 при n ≤ 2;

F(n) = F(n − 1) + 3 · F(n − 2) при n > 2.

Чему равно значение функции F(5)? В ответе запишите только натуральное число.

Источник: ЕГЭ по информатике 30.05.2013. Основная волна. Сибирь. Вариант 5.


Алгоритм вычисления значения функции F(n), где n  — натуральное число, задан следующими соотношениями:

F(n) = n при n ≤ 2;

F(n) = F(n − 1) + 2×F(n − 2) при n > 2.

Чему равно значение функции F(6)? В ответе запишите только натуральное число.

Источник: ЕГЭ по информатике 30.05.2013. Основная волна. Урал. Вариант 4.


Алгоритм вычисления значения функции F(n), где n  — натуральное число, задан следующими соотношениями:

F(n) = n + 3 при n ≤ 2;

F(n) = F(n − 1) + F(n − 2) при n > 2.

Чему равно значение функции F(7)? В ответе запишите только натуральное число.

Источник: ЕГЭ по информатике 30.05.2013. Основная волна. Центр. Вариант 2.


Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующими рекуррентными соотношениями:

F(n) = 2 при n = 1;

F(n) = F(n − 1) · n при n ≥ 2.

Чему равно значение функции F(5)?

В ответе запишите только натуральное число.

Источник: ЕГЭ по информатике 05.05.2014. Досрочная волна. Вариант 1.


Ниже на пяти языках программирования записан рекурсивный алгоритм F.

Бейсик Python

SUB F(n)

    PRINT n

    IF n < 5 THEN

        F(n + 1)

        F(n + 2)

    END IF

END SUB

def F(n):

    print(n)

    if n < 5:

        F(n + 1)

        F(n + 2)

Алгоритмический язык Паскаль

алг F(цел n)

нач

    вывод n, нс

    если n < 5 то

        F(n + 1)

        F(n + 2)

    все

кон

procedure F(n: integer);

begin

    writeln(n);

    if n < 5 then

    begin

        F(n + 1);

        F(n + 2)

    end

end

Си

void F(int n)

{

    cout << n;

    if (n < 5)

    {

        F(n + 1);

        F(n + 2);

    }

}

Чему равна сумма всех чисел, напечатанных на экране при выполнении вызова F(2)?


Ниже на пяти языках программирования записана рекурсивная функция F.

Бейсик Python

FUNCTION F(n)

    IF n > 3 THEN

         F = F(n-2) + F(n2)

     ELSE

         F = n

    END IF

END FUNCTION

def F(n):

    if n > 3:

        return F(n-2) + F(n//2)

    else:

        return n

Паскаль Алгоритмический язык

function F(n: integer): integer;

begin

    if n > 3 then

        F := F(n-2) + F(n div 2)

    else

        F := n

end;

алг цел F(цел n)

нач

    если n > 3

        то

         знач := F(n-2) + F(div(n,2))

        иначе

            знач := n

    все

кон

Си

int F(int n)

{

    if (n > 3)

        return F(n-2) + F(n/2);

    else

        return n;

}

Чему будет равно значение, вычисленное при выполнении вызова F(9)?

Всего: 163    1–20 | 21–40 | 41–60 | 61–80 …

Чтобы ввести определения ряда понятий чаще всего в математике используют термин «индуктивное определение». Давайте рассмотрим некоторый пример:

Дж. Пеано писал, что натуральные числа – это:

  • число нуль;

  • числа, которые стоят правее натурального;

  • если же натуральное число равно следующему последовательному числу, то оно равно и предыдущему;

  • нуль – это первое натуральное число.

Можно заметить, что выше указаны определения натуральных чисел, но в то же время там описаны основные свойства натурального числа. 

Такое определение объекта и является индуктивным.

Задание 7460

Внимательно прочитайте текст задания и выберите верный ответ из списка

Решение

Задание 7467

Введите ответ в поле ввода

Решение

Задание 7492

Внимательно прочитайте текст задания и выберите верный ответ из списка

Решение

Задание 7499

Введите ответ в поле ввода

Решение

Задание 7524

Внимательно прочитайте текст задания и выберите верный ответ из списка

Решение

Задание 7531

Введите ответ в поле ввода

Решение

Задание 7556

Внимательно прочитайте текст задания и выберите верный ответ из списка

Решение

Задание 7563

Введите ответ в поле ввода

Решение

Задание 7588

Внимательно прочитайте текст задания и выберите верный ответ из списка

Решение

Задание 7595

Введите ответ в поле ввода

Решение

Задание 7620

Внимательно прочитайте текст задания и выберите верный ответ из списка

Решение

Задание 7627

Введите ответ в поле ввода

Решение

Задание 7652

Внимательно прочитайте текст задания и выберите верный ответ из списка

Решение

Задание 7659

Введите ответ в поле ввода

Решение

Задание 7684

Внимательно прочитайте текст задания и выберите верный ответ из списка

Решение

Задание 7691

Введите ответ в поле ввода

Решение

Задание 7716

Внимательно прочитайте текст задания и выберите верный ответ из списка

Решение

Задание 7723

Введите ответ в поле ввода

Решение

Задание 7748

Внимательно прочитайте текст задания и выберите верный ответ из списка

Решение

Задание 7755

Введите ответ в поле ввода

Решение

Задание 7780

Внимательно прочитайте текст задания и выберите верный ответ из списка

Решение

Задание 7787

Введите ответ в поле ввода

Решение

Задание 7812

Внимательно прочитайте текст задания и выберите верный ответ из списка

Решение

Задание 7819

Введите ответ в поле ввода

Решение

Задание 7851

Введите ответ в поле ввода

Решение

Задание 7883

Введите ответ в поле ввода

Решение

Задание 7915

Введите ответ в поле ввода

Решение

Задание 7940

Внимательно прочитайте текст задания и выберите верный ответ из списка

Решение

Задание 7947

Введите ответ в поле ввода

Решение

Задание 7978

Введите ответ в поле ввода

Решение

Задание 8010

Введите ответ в поле ввода

Решение

Задание 8042

Введите ответ в поле ввода

Решение

Задание 8066

Введите ответ в поле ввода

Решение

Задание 8093

Введите ответ в поле ввода

Решение

Задание 8120

Введите ответ в поле ввода

Решение

Задание 8121

Введите ответ в поле ввода

Решение

Задание 8147

Введите ответ в поле ввода

Решение

Задание 8174

Введите ответ в поле ввода

Решение

Задание 8201

Введите ответ в поле ввода

Решение

Задание 8228

Введите ответ в поле ввода

Решение

  • Взрослым: Skillbox, Хекслет, Eduson, XYZ, GB, Яндекс, Otus, SkillFactory.
  • 8-11 класс: Умскул, Лектариум, Годограф, Знанио.
  • До 7 класса: Алгоритмика, Кодланд, Реботика.
  • Английский: Инглекс, Puzzle, Novakid.

Индуктивное определение объектов

Обычно индуктивное определение объектов K производится следующим образом:

  1. Необходимо задать класс простейших объектов A из класса К, подлежащего определению [Базис индуктивного определения];
  2. Формируется свод правил R, согласно которым возможно строить новые объекты класса К из уже определённых [Шаг индуктивного определения];
  3. К объектам определяемого класса К относятся только такие объекты, которые получаются согласно пунктам 1 и 2 данного определения.

Индуктивное определение объектов тесно связано с понятием обобщённого принципа индукции, который формулируется следующим образом: «Для доказательства, что любой объект класса, заданного индуктивным определением, обладает неким свойством Р, достаточно сначала узнать, что исходный объект, заданный пунктом 1 правила, имеет свойство Р [Базис индукции]. После этого требуется доказать, что свойство Р будет иметь любой объект, полученный по правилам индуктивного определения из объектов, у которых уже имеется данное свойство [Шаг индукции]».

Приведём несколько примеров работы этого определения.

Пример 1. Индуктивное определение класса высказывательных формул в математической логике

Предположим, что у нас есть множество высказывательных переменных (p1, p2, …, pn) и символы математических операций (^ – конъюнкция, ˅ – дизъюнкция, ¬ – отрицание, → – импликация, ↔ – эквивалентность). Далее необходимо дать следующее индуктивное определение:

  1. Высказывательные переменные p1, p2, …, pn мы считаем атомарными формулами [Базис индуктивного определения].
  2. Если Φ и Ψ являются уже построенными высказывательными формулами, то все возможные формальные выражения (Φ ^ Ψ, Φ ˅ Ψ, Φ → Ψ, Φ ↔ Ψ, ¬ Φ) также являются высказывательными формулами.
  3. К высказывательным формулам относятся только те формальные выражения, которые можно построить согласно пунктам 1 и 2 данного определения.

Пример 2. Индуктивное определение класса термов (терм – формальный аналог имени существительного)

Предположим, что у нас есть попарно непересекающиеся множества:

  • Множество предметных переменных (х1, х2, …, хn);
  • Множество предметных констант (с1, с2, …, сn);
  • Для каждого целого положительного n нам дано множество символов n-местных функций

Далее необходимо дать индуктивное определение класса термов:

  1. Предметные переменные и константы считаются атомарными термами [Базис индуктивного определения].
  2. Для любых целых положительных n и k, если t1, t2, …, tn – какие-либо n уже построенных термов, то формальное выражение  также является термом.
  3. Термами считаются только те формальные выражения, которые мы получаем, опираясь на пункты 1 и 2 определения.

Это определение достаточно часто применяется при создании грамматик языков программирования.

  • Взрослым: Skillbox, Хекслет, Eduson, XYZ, GB, Яндекс, Otus, SkillFactory.
  • 8-11 класс: Умскул, Лектариум, Годограф, Знанио.
  • До 7 класса: Алгоритмика, Кодланд, Реботика.
  • Английский: Инглекс, Puzzle, Novakid.

Индуктивное определение объектов

Индуктивные определения обычно используются в математике для точного определения ряда основных понятий. В качестве примера рассмотрим определение понятия натурального числа, предложенное итальянским математиком Дж. Пеано:

  1. «0» есть натуральное число;
  2. если п – натуральное число, то следующее непосредственно за ним число n‘ также будет натуральным числом;
  3. никаких других натуральных чисел, кроме тех, которые образуются с помощью правил 1 и 2, нет;
  4. для любых натуральных чисел выполняется условие: если последующие их числа равны, т. е. m‘=n, то равны и предыдущие числа, m=n. 
  5.  нуль не следует ни за каким натуральным числом.

В этом определении, с одной стороны, перечисляются способы образования натуральных чисел, а с другой – указываются свойства, которыми они обладают. Нередко сюда относят и принцип математической индукции.

В логике индуктивные определения используются для точного описания способов образования ее исходных объектов, например, какие формулы, являются формулами исчисления высказываний или предикатов.

Разбор 11 задания ЕГЭ 2017 года по информатике из проекта демоверсии. Это задание базового уровня сложности. Примерное время выполнения задания 5 минут.

Проверяемые элементы содержания: умение исполнить рекурсивный алгоритм.
Элементы содержания, проверяемые на ЕГЭ: индуктивное определение объектов.

Ниже на пяти языках программирования записан рекурсивный алгоритм F.

Разбор 11 задания ЕГЭ 2017

Чему равна сумма напечатанных на экране чисел при выполнении вызова F(10)?

Ответ: ________

Разбор 11 задания ЕГЭ 2017:

procedure F(n: integer);
begin
if n > 2 then begin
writeln(n);
F(n — 3);
F(n – 4)
end
end;

После каждого вызова на экран выводится значение параметра функции, если выполняется условие n>2.

Запишем все вызовы в виде дерева.

Разбор 11 задания ЕГЭ 2017 2

Складываем все значения параметров, которые больше 2.

Разбор 11 задания ЕГЭ 2017 3

Получаем ответ: 10+7+4+3+6+3=33

Ответ: 33

Опубликовано: 04.10.2016
Обновлено: 12.03.2020

Задание №11.
Умение исполнить рекурсивный алгоритм. Уровень сложности задания — базовый, максимальный балл за выполнение — 1, примерное время выполнения задания — 5 минут.
Знать: индуктивное определение объектов.
Уметь: строить информационные модели объектов, систем и процессов  в виде алгоритмов.

Задание относится к базовому уровню сложности и обычно не вызывает у учащихся особых хлопот, но бывают задания более сложные и, из-за невнимательности, можно потерять драгоценные баллы.

Особых методик решения таких заданий я не встречал. Все просто, как дважды два. Выполняем алгоритм шаг за шагом и приходим к результату.

Пример задания. Дан рекурсивный алгоритм F. Приведите последовательность чисел (без пробелов и разделите­лей), которые будут напечатаны на экране при выполнении вызова F(4).

procedure F(n: integer);
begin
  write (n);
  if n > 1 then
  begin
     F(n — 1) ;
     F(n — 2)
  end
end;

Разбор задания. Конечно, это не самое сложное из того, что может быть на экзамене, но чтобы понять, как решаются задания такого типа, этого вполне достаточно. Выполнять алгоритм будем построчно и записывать ход решения тоже будем построчно (можно записывать ход решения в виде дерева, но я делаю так).

1. Начинаем с функции, которая стоит у нас в условии — F(4) и прогоняем весь наш алгоритм от первой до последней строчки.


F(4) выводит на экран 4, затем проверяется условие  n > 1, так как оно истинно вызывается F(3), вызывается F(2). Мы не знаем, что выведет на экран F(3) и F(2), следовательно их тоже прогоним через алгоритм.

F(3) выводит на экран 3, затем проверяется условие  n > 1, так как оно истинно вызывается F(2), вызывается F(1).
F(2) выводит на экран 2, затем проверяется условие  n > 1, так как оно истинно вызывается F(1), вызывается F(0). Мы ещё не знаем, что выводят F(1) и F(0), так что продолжаем.

F(1) выводит на экран 1, затем проверяется условие  n > 1, но 1 не больше 1 и это условие ложно, на этом шаге процедура заканчивает свою работу.
F(0) выводит на экран 0, затем проверяется условие  n > 1, но 0 не больше 1 и это условие ложно, на этом шаге процедура заканчивает свою работу.

Теперь мы все делаем в обратном порядке, записывая полученные результаты, пока не дойдем до процедуры F(4).

F(0) выводит на экран 0
F(1) выводит на экран 1
F(2) выводит на экран 210
F(3) выводит на экран 32101
F(4) выводит на экран 432101210

Ответ: 432101210.

Пример задания. (задания взяты с сайта К.Ю. Полякова http://kpolyakov.spb.ru)

Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующими соотношениями:

F(n) = 1 при n = 1;
F(n) = n + F(n − 1), если n – чётно,
F(n) = 2 × F(n − 2), если n > 1 и при этом n – нечётно.

Чему равно значение функции F(26)?

Решение. Такого типа задания довольно легко решаются вручную на бумаге, но это сделать довольно просто, если мы ищем значение функции F от небольшого значения переменной n. А если нас попросят найти значение функции F(100), что тогда? На бумаге и вручную будет затрачено довольно много времени. Выход есть, даже два! Можно решить задание с помощью процессора электронных таблиц, например Microsoft Excel, а ещё можно написать программу и программа эта не так уж и сложна. Мы разберём второй вариант.

Сначала опишем функцию:
function F(n:integer):integer;

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

Теперь нам просто надо вызвать функцию F(n) с нужным нам параметром.

begin 
   writeln(F(26));
end.

Полный текст программы:

function F(n:integer):integer;

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

begin 
   writeln(F(26));
end.

Ответ: 4122.

Пример задания. Алгоритм вычисления значения функций F(n) и G(n), где n – натуральное число, задан следующими соотношениями:

F(1) = G(1) = 1
F(n) = 3·F(n–1) + G(n–1) – n + 5, если n > 1
G(n) = F(n–1) + 3·G(n–1) – 3·n, если n > 1

Чему равно значение F(14) + G(14)?

Решение. Особых отличий в написании программы для этого примера нет. Просто тут у нас две функции – F(n) и G(n).

Сначала опишем функцию F(n):

function F(n:integer):integer;
begin
  if
n = 1 then
   
F := 1
  else if n > 1 then
   
F:= 3*F(n-1) + G(n-1) — n + 5;
end;

Теперь опишем функцию G(n):

function G(n:integer):integer;
begin
  if
n = 1 then
   
G := 1
  else if n > 1 then
   
G:= F(n-1) + 3*G(n-1) — 3 * n;
end;

Напишем саму программу

begin
   writeln(F(14) + G(14));
end.

Запускаем и видим, что программа не «пошла». А вся причина в том, что функции «друг друга не видят». Для исправления данной ошибки в самом начале программы добавим несколько строк кода:

function F(n:integer):integer;
forward;
function G(n:integer):integer;
forward;

forward это процедурная директива (предописание), другие процедуры и функции могут вызывать предописанную подпрограмму, делая возможной взаимную рекурсию.

Полный текст программы:

function F(n:integer):integer;
forward;
function G(n:integer):integer;
forward;

function F(n:integer):integer;
begin
  if
n = 1 then
   
F := 1
  else if n > 1 then
   
F:= 3*F(n-1) + G(n-1) — n + 5;
end;

function G(n:integer):integer;
begin
  if
n = 1 then
   
G := 1
  else if n > 1 then
   
G:= F(n-1) + 3*G(n-1) — 3 * n;
  end;

begin
  writeln(F(14) + G(14));
end.

Ответ: 37282721.

Понравилась статья? Поделить с друзьями:
  • Индикаторы егэ химия
  • Инициалы считаются за слово в егэ
  • Индикатор по обществознанию егэ
  • Инженеры или инженера егэ
  • Индивидуум может быть справедливо принуждаем совершать некоторые положительные действия егэ ответы