Общие пояснения к использованию процедур и функций.

Пояснения к лабораторной работе

Требования к программе и отчету по работе

Вопросы, изучаемые в работе

Задачи лабораторной работы

Лабораторная работа N 7

Программирование процедур на Паскале

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

Задание (общее ко всем вариантам).

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

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

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

Оформить отчет по лабораторной работе аналогично оформлению предыдущих работ.

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

· Алгоритмы каждой подпрограммы и основной программы выполнить отдельно.

· Все значения, на которые по смыслу накладываются ограничения, должны при вводе проверяться.

· Все выводимые данные должны подписываться.

Содержание программы.

  • Заголовок программы с комментарием;
  • Описание типов массивов;
  • Описание переменных основной программы;
  • Описание процедур и функций;
  • Ввод необходимых исходных данных с клавиатуры;
  • Открытие входных и выводного файлов;
  • Ввод необходимых исходных данных из файла;
  • Вывод исходных данных, в том числе массива в выводной файл. При выводе массива использовать созданную процедуру;
  • Обработка массива в соответствии с заданием с применением разработанной процедуры или функции;
  • Вывод результатов обработки в выводной файл, возможно с применением процедуры;
  • Закрытие всех файлов.

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

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

PROCEDURE <имя процедуры>(<список параметров>); – для процедуры и

FUNCTION <имя функции>(<список аргументов>):<тип результата>; – для функции.

Список аргументов это, по существу, список входных параметров.

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

Следует иметь в виду, что если во внешней программе переменная описана, а в процедуре – нет, ее использование в теле процедуры означает работу с переменной внешней программы (так называемые глобальные переменные).

Выполняемый блок (который должен быть заключен в скобки Begin .. End) заканчивается символом ";", а не точкой. В функции, в отличие от процедуры, в выполняемом блоке имени функции обязательно должно быть присвоено значение, которое и будет являться ее значением. Такое присваивание может встречаться несколько раз, конечным значением будет результат последнего присваивания. Внутри выражений тела функции ее имя встречаться не должно, если это не специальная рекурсивная функция.

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