- Введение в тему
- Процедуры
- Функции
- научиться создавать процедуру на языке программирования Pascal
- научиться создавать функцию на языке программирования Pascal
- Что такое вспомогательный алгоритм?
- Как записываются вспомогательные алгоритмы для исполнителя Робот?
Введение в тему
Вспомогательными алгоритмами являются подпрограммы. В языке программирования Pascal имеются два вида продпрограмм: процедуры и функции.
Понимание, чем отличаются процедуры от функций, а также умение создавать их, увеличит скорость разработки программ. Например, можно написать программу для нахождения наибольшего общего делителя двух чисел, а можно создать такую процедуру/функцию. Создание процедуры/функции обеспечит возможность её быстрого внедрения в другие программы.
Процедуры
Процедура — это подпрограмма, в которой может быть любое количество входных и выходных данных.
Общий вид процедуры:
procedure «имя_процедуры» («формальные параметры»; var «имя параметра: тип»);
begin
«исполняемая часть процедуры»
end;

Учтём свойство алгоритма «массовость» для написания программы и доработаем условие. Теперь нужно будет найти не 5!, а n!, т. е. можно указывать различные значения для которых факториала программа будет рассчитывать факториал.
Пример 1
Написать программу нахождения факториала. Представить решение в виде процедуры.
Рассмотрим, что собой представляет процедура, и научимся писать программу с применением процедур.
Решение
- Для лучшего понимания особенностей описания и размещения процедур и функций сначала напишем данную программу без использования вспомогательных алгоритмов.

Б) в программном блоке организуем просьбу к пользователю ввести число, для которого нужно рассчитать факториал. Присвоим переменной факториал (F) значение равное 1 и организуем в цикле for нахождение произведения чисел по число введенное пользователем. Также организуем вывод факториала и его значения (рис. 3).

Готовая программа будет иметь вид (рис. 4).

Результат нахождения 5! показан на рис. 5.

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

Результат нахождения 5! для доработанной программы представлен на рис. 7.


2. Уберём из раздела описания переменных переменную F (рис. 8).

3. Далее создадим процедуру. Назовем её Factorial и пропишем всё, что относится к вычислению факториала (рис. 9).
4. Далее следует основная часть программы, в которой остаётся обращение к пользователю ввести число, для которого нужно рассчитать факториал, считывание этого числа и обращение к процедуре по имени с выводом его значения (рис. 10).

Готовая программа с процедурой имеет следующий вид (рис. 11).

Пример работы программы с использованием процедуры представлен на рис. 12.

Функции
Функция — это подпрограмма, после выполнения которой, выводится единственный результат.
Общий вид функции:
function «имя_функции» («формальные параметры»): «тип результата»;
«раздел описания функции»
begin
«исполняемая часть функции»
end;
Рассмотрим реализацию предыдущей задачи через написание функции.
Пример 2
Написать программу нахождения факториала. Представить решение в виде функции.
Решение


3. Допишем основную программу (рис. 15).

Готовая программа с функцией имеет следующий вид (рис. 16).

Пример работы программы с использованием функции представлен на рис. 17.

Анализируя программу, реализованную как с помощью процедуры, так и через функцию, следует отметить, что конструкция описания процедур и функций в Pascal схожа с описанием обычной программы.
Контрольные вопросы
- Что такое процедура?
- Что такое функция?
- В чём особенности написания процедур на языке Pascal?
- В чём особенности написания функций на языке Pascal?
- Изучите описанные выше программы, реализованные через процедуру и функцию. С какого числа программа неправильно рассчитывает результат вычисления факториала? Что следует исправить, чтобы программы выводили верный результат?