Процедуры и функции

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

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

Стандартные (встроенные) функции

Для выполнения часто встречающихся вычислений и преобразований язык Pascal предоставляет программисту ряд стандартных функций. Значение функции связано с ее именем. Поэтому функцию можно использовать в качестве операнда выражения, например в инструкции присваивания. Так, чтобы вычислить квадратный корень, достаточно записать k:=Sqrt(n), где Sqrt – функция вычисления квадратного корня, n – переменная, которая содержит число, квадратный корень которого надо вычислить.

Математические функции

Математические функции  позволяют выполнять различные вычисления.

Функция Значение
Abs(n) Абсолютное значение n
Sqrt(n) Квадратный корень из n
Sqr(n) Квадрат n
Cos(n) Косинус n
Sin(n) Синус n
Random(n) Случайное целое число в диапазоне от 0 до n - 1

Функции преобразования

Функции преобразования наиболее часто используются в инструкциях, обеспечивающих ввод и вывод информации. Например, для того чтобы вывести в поле вывода (элемент управления Label) диалогового окна значение переменной типа real, необходимо преобразовать число в строку символов, изображающую данное число. Это можно сделать при помощи функции Convert.ToString, которая возвращает строковое представление значения выражения, указанного в качестве параметра функции.

Функция Значение 
Convert.ToString (n) Преобразует числовое значение n в строковое представление
Convert.ToInt32(s) Преобразует строку s в целое число (если это возможно)
Convert.ToDouble(s) Преобразует строку s в вещественное число (если это возможно)
Round(n) Целое, полученное путем округления n 
Trunc(n) Целое, полученное путем отбрасывания дробной части n
Frac(n) Дробное, представляющее собой дробную часть вещественного n
Int(n) Дробное, представляющее собой целую часть вещественного n

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

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

n := Round((x2-x1)/dx);
x1:= (-b + Sqrt(d)) / (2*а);
m := Random(10);
cena := Convert.ToInt32(TextBox.Text);
TextBox.Text := Convert.ToString (100);
mes := 'x1=' + Convert.ToString (xl);

Процедуры программиста

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

Процедура начинается с заголовка, за которым следуют:

  • раздел объявления констант;
  • раздел объявления переменных;
  • раздел инструкций.

В общем виде процедура выглядит так:

procedure Имя (СписокПараметров);
const    // начало раздела объявления констант
var       // начало раздела объявления переменных
begin
//  инструкции программы
end;

Заголовок процедуры состоит из слова procedure, за которым следует имя процедуры, которое используется для вызова процедуры, активизации ее выполнения. Если у процедуры есть параметры, то они указываются после имени процедуры, в скобках. Завершается заголовок процедуры символом «точка с запятой».  Если в процедуре используются именованные константы, то они объявляются в разделе объявления констант, который начинается словом const.  После раздела объявления констант идет раздел объявления переменных, в котором объявляются (перечисляются) все переменные, используемые в программе. Раздел объявления переменных начинается словом var.

За разделом объявления переменных расположен раздел инструкций. Раздел инструкций начинается словом begin и заканчивается словом end, за которым следует символ «точка с запятой». В разделе инструкций находятся исполняемые инструкции процедуры.

Функции программиста

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

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

Объявление функции в общем виде выглядит следующим образом:

function Имя (СписокПараметров): Тип;
const // начало раздела объявления констант
var // начало раздела объявления переменных
begin // начало раздела инструкций
result := Значение; // связать значение с именем функции
end;

Заголовок функции начинается словом function, за которым следует имя функции. После имени функции в скобках приводится список параметров, за которым через двоеточие указывается тип значения, возвращаемого функцией (тип функции). Завершается заголовок функции символом «точка с запятой».

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

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

СТИЛЬ ПРОГРАММИРОВАНИЯ

Работая над программой, программист, особенно начинающий, должен хорошо представлять, что программа, которую он разрабатывает, предназначена, с одной стороны, для пользователя, с другой – для самого программиста. Текст программы нужен прежде всего самому программисту, а также другим людям, с которыми он совместно работает над проектом. Поэтому для того, чтобы работа была эффективной, программа должна быть легко читаемой, ее структура должна соответствовать структуре и алгоритму решаемой задачи. Как этого добиться? Надо следовать правилам хорошего стиля программирования. Стиль программирования – это набор правил, которым следует программист (осознано или потому, что «так делают другие») в процессе своей работы. Очевидно, что хороший программист должен следовать правилам хорошего стиля.

Хороший стиль программирования предполагает:

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

Следование правилам хорошего стиля программирования значительно уменьшает вероятность появления ошибок на этапе набора текста, делает программу легко читаемой, что, в свою очередь, облегчает процессы отладки и внесения изменений. Четкого критерия оценки степени соответствия программы хорошему стилю программирования не существует. Вместе с тем достаточно одного взгляда, чтобы понять, соответствует программа хорошему стилю или нет. Сводить понятие стиля программирования только к правилам записи текста программы было бы неверно. Стиль, которого придерживается программист, проявляется во время работы программы. Хорошая программа должна быть, прежде всего, надежной и дружественной по отношению к пользователю. Надежность подразумевает, что программа, не полагаясь на «разумное» поведение пользователя, контролирует исходные данные, проверяет результат выполнения операций, которые по какой-либо причине могут быть не выполнены, например, операций с файлами. Дружественность предполагает хорошо спроектированные диалоговые окна, наличие справочной системы, разумное и предсказуемое, с точки зрения пользователя, поведение программы.

Добавить комментарий
  • Комментарии не найдены

Please publish modules in offcanvas position.