Использование подпрограмм Паскаль – Процедуры и функции


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

ПЛАН

  • объявления массива
  • Операции с массивами Вывод массива Введение массива
  • Поиск минимального (максимального) элемента массива поиск заданного элемента массива
  • Сортировка массива
  • Сортировка методом прямого выбора сортировки методом обмена

Еще одним важным компонентом программы на Lazarus есть процедуры и функции. Главный файл проекта просто запускает на выполнение форму со всеми ее событиями, поэтому тела программы, как такового (как это было в предыдущих версиях языка Pascal) уже нет.

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

подпрограмма

Подпрограмма — это поименована (т.е. каждая подпрограмма имеет свое уникальное для данной программы или модуля имя) последовательность операторов, определенных и записаны только в одном месте программы (модуля) так, что их можно использовать при выполнении одного или нескольких фрагментов программы (модуля ). Это делается в двух случаях:

  • Одинаковая последовательность операторов используется во многих моментах реализации алгоритма. Тогда для экономии места и объема программы эту последовательность операторов «выносят» к подпрограмме, а затем просто вызывают эту подпрограмму в соответствующих моментах.
  • Для выделения фрагмента алгоритма в отдельный блок. Этим достигается лучшая визуализация выполнения алгоритма.

В Lazarus существует два типа подпрограмм: процедуры и функции.

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

Читать  Лабораторная работа №1 – Структурное программирование на Паскале

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

Переменные, константы, и другие описательные блоки подпрограммы «работают» только в этом подпрограмме (локальные переменные, локальные типы и др.) Кроме того подпрограмма может использовать все переменные, типы и др., Описаны в самом модуле (перед текстом подпрограммы).

Локальные и глобальные переменные

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

Переменные, которые описываются в подпрограмме распространяют свое действие только на эту подпрограмму и называются локальными.

Глобальные переменные, имена которых совпадают с локальными подпрограмм и функций, не «действуют» в этих подпрограммах и функциях. Все же локальные переменные там можно использовать.

процедуры

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

Рассмотрим общий вид процедуры: procedure имья_процедуры (описание параметров) блок описания локальных констант, переменных, типов; begin

последовательность операторов;

end;

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

Читать  Лабораторная работа №1 Паскаль – Составление и отладка линейных программ

Например

Reset (Input)

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

var в описании процедуры носит такое же нагрузки, как и в описании функции.Пример.Найти площадь четырехугольника по известным 4 сторонами и 1 диагональю. var

Form1: TForm1; a, b, c, d, e: integer; s1, s2, s: real;

 

implementation

procedure geron (x, y, z: integer; var st: real) var p: real;

begin p = (x + y + z) / 2;

st = sqrt (p * (px) * (py) * (pz)) end;

 

procedure TForm1.Button1Click (Sender: TObject); begin

a = strtoint (edit1.text) b = strtoint (edit2.text) c = strtoint (edit3.text) d = strtoint (edit4.text) e = strtoint (edit5.text) geron (a, b, e, s1)

geron (c, d, e, s2) s = s1 + s2; Edit6.text = floattostr (s) end;

 функции

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

Например, если обратиться к стандартным функциям, то функция sin имеет действительное значение, strtoint — целое, floattostr — строчное.

Рассмотрим общий вид функции:

function имя_функции (описание параметров): тип; блок описания локальных констант, переменных, типов; begin

последовательность операторов;

имя_функции = остаточне_значення_функции; end;

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

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

Создадим функцию TRIK для проверки неравенства треугольника.

Function trik (x, y, z: integer): Boolean; Begin

If (x + y> z) and (x + z> y) and (y + z> x) then trik = true else trik = false; End;

Тогда процедура решения задачи с помощью функции geron иметь вид:

[Всего голосов: 3    Средний: 5/5]