TURBO PASCAL |
Новости
|
Процедуры и функцииКод между последними операторами begin и end программы уп- равляет логикой программы. В очень простой программе в этой сек- ции кода может содержаться все, что вам нужно. В более крупных и сложных программах размещение в этой секции всего программного кода может затруднить чтение и понимание программы. К тому же ее будет труднее разрабатывать. Процедуры и функции позволяют разделить логику программы на более мелкие и управляемые фрагменты и аналогичны подпрограммам в других языках. Как и в основном блоке программы, все действия в процедурах и функциях заключаются в begin и end. Каждый из этих сегментов кода выполняет конкретную задачу. ┌──────────────────────────────────────────────────────────┐ │ Процедура или функция │ │┌────────────────────────────────────────────────────────┐│ ││ Заголовок процедуры или функции ││ │└────────────────────────────────────────────────────────┘│ │┌────────────────────────────────────────────────────────┐│ ││ Блок процедуры или функциями ││ ││ begin ││ ││┌──────────────────────────────────────────────────────┐││ │││ Логика │││ ││└──────────────────────────────────────────────────────┘││ ││ end; ││ │└────────────────────────────────────────────────────────┘│ └──────────────────────────────────────────────────────────┘ Рис. 1.1 Диаграмма процедуры или функции. Если вы обнаружите, что в вашей диаграмме одни и те же дейс- твия выполняются многократно, такую логику желательно выделить в процедуру или функцию. Вы можете один раз записать этот код в процедуре или функции, а затем многократно вызывать его в прог- рамме. Приведем пример функции. Следующая функция GetNumber получа- ет число от пользователя: function GetNumber: Real; var Responce: Real; begin Write('Введите число: '); Readln(Response); GetNumber := Response; end; Процедура или функция должна содержаться в программе перед секцией основного кода. В основном коде она может затем использо- ваться (вызываться). ┌──────────────────────────────────────────────────────────┐ │ Процедура или функция │ │┌────────────────────────────────────────────────────────┐│ ││ Заголовок процедуры или функции ││ │└────────────────────────────────────────────────────────┘│ │┌────────────────────────────────────────────────────────┐│ ││ Блок процедуры или функциями ││ ││┌──────────────────────────────────────────────────────┐││ │││ Процедуры или функции (0 или более) │││ ││└──────────────────────────────────────────────────────┘││ ││ begin ││ ││┌──────────────────────────────────────────────────────┐││ │││ Логика │││ ││└──────────────────────────────────────────────────────┘││ ││ end; ││ │└────────────────────────────────────────────────────────┘│ └──────────────────────────────────────────────────────────┘ Рис. 1.2 Простая программа на Паскале. В следующем примере дается набросок программы, в которой ис- пользуется функция GetNumber. Программист разделил логику прог- раммы на три задачи: 1. Получение числа от пользователя. 2. Выполнение с этим числом необходимых вычислений. 3. Печать отчета. Основная логика программы заключена в последнем блоке begin..end. Program Report; var A: Real; { другие описания } . . . function GetNumber: Real; var Responce: Real; begin Write('Введите число: '); Readln(Response); GetNumber := Response; end; procedure Calculate(X: Real); . . . procedure PrintReport; . . . begin A: = GetNumber; Calculate(A); PrintReport; end. Основная логика программы достаточно проста для понимания. Все детали убраны в тела процедур и функций. Использование проце- дур и функций позволяет вам рассматривать программу более удобным и модульным способом. |
(с)Все права защищены По всем интересующим вопросам прошу писать на электронный адрес |