Главная >> Информатика 9 класс. Босова

§ 2.4. Запись вспомогательных алгоритмов на языке Паскаль

Функции. Запись вспомогательных алгоритмов на языке Паскаль

Описание функции имеет вид:

    function <имя_функции> (<описание входных данных>):
              <тип_функции>;
    begin
      <операторы>;
      <имя_функции> := <результат>
    end;

В заголовке функции после её имени приводится описание входных данных — указывается перечень формальных параметров и их типов. Там же указывается тип самой функции, т. е. тип результата.

Функция — подпрограмма, имеющая единственный результат, записываемый в ячейку памяти, имя которой совпадает с именем функции. Поэтому в блоке функции обязательно должен присутствовать оператор <имя_функции>:=<результат>.

Для вызова функции достаточно указать её имя со списком фактических параметров в любом выражении, в условиях (после слов if, while, until) или в операторе write главной программы.

Пример 2. Напишем программу нахождения максимального из четырёх целых чисел, использующую функцию поиска максимального из двух чисел:

Измените программу так, чтобы с её помощью можно было найти:

    а) максимальное из чисел а, b, с;
    б) максимальное из чисел b, с, d;
    в) минимальное из четырёх чисел;
    г) разность максимального и минимального из четырёх чисел.

Пример 3. В январе Саше подарили пару новорождённых кроликов. Через два месяца они дали первый приплод — новую пару кроликов, а затем давали приплод по паре кроликов каждый месяц. Каждая новая пара также даёт первый приплод (пару кроликов) через два месяца, а затем — по паре кроликов каждый месяц. Сколько пар кроликов будет у Саши в декабре?

Составим математическую модель этой задачи. Обозначим через /(n) количество пар кроликов в месяце с номером n. По условию задачи, ƒ(1) = 1, ƒ(2) = 1, ƒ(3) = 2. Из двух пар, имеющихся в марте, дать приплод в апреле сможет только одна: ƒ(4) = 3. Из пар, имеющихся в апреле, дать приплод в мае смогут только пары, родившиеся в марте и ранее: ƒ(5) = ƒ(4) + ƒ(3) = 3 + 2 = 5. В общем случае: ƒ(n) = ƒ(n - 1) + ƒ(n - 2), n ≥ 3.

Числа 1, 1, 2, 3, 5, 8,... образуют так называемую последовательность Фибоначчи, названную в честь итальянского математика, впервые решившего соответствующую задачу ещё в начале XIII века.

Оформим в виде функции вычисление члена последовательности Фибоначчи.

    function f (n: integer): integer;
    begin
      if (n=l) or (n=2) then f:=1
      else f:=f(n-l)+f(n-2)
    end;

Полученная функция считается рекурсивной — в ней реализован способ вычисления очередного значения функции через вычисление её предшествующих значений.

Напишите программу, вычисляющую и выводящую 10 первых членов последовательности Фибоначи.

САМОЕ ГЛАВНОЕ

Запись вспомогательных алгоритмов в языках программирования осуществляется с помощью подпрограмм. В Паскале различают два вида подпрограмм: процедуры и функции.

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

Функция — подпрограмма, имеющая единственный результат, записываемый в ячейку памяти, имя которой совпадает с именем функции.

 

 

???????@Mail.ru