Функции и процедуры
Понятие функции хорошо известно из школьного курса математики. С помощью функций задаются самые различные зависимости одних значений (значений функции) от других значений (значений аргументов). Заметим лишь, что в алгоритмических языках допускаются только такие функции, для которых заданы алгоритмы вычисления их значений. В математике такое требование не является обязательным — можно, например, использовать функцию f(x,y), значение которой равно количеству простых чисел в интервале (х, у) — даже в том случае, если мы не знаем, как именно следует вычислять значение этой функции при любых конкретных значениях аргументов х и у.
Таким образом, в алгоритмическом языке любая функция задается некоторой вычислительной процедурой, выполнение которой и дает значение функции. Программист может, ввести в употребление любые нужные ему в данной программе функции.
Наряду с функциями, предназначенными для вычисления отдельного значения, можно вводить в употребление и процедуры более общего характера, представляющие собой некоторые вполне законченные этапы решения задачи — упорядочение компонент вектора по их убыванию, сложение матриц и т.п.
Вводимые в употребление функции и процедуры должны быть определены (описаны) в разделе функций и процедур паскаль-программы. При 'Таком описании каждой функции (процедуре) дается свое имя. Сама процедура формулируется, в основном в терминах формальных параметров — идентификаторов, которые в описании процедуры представляют те заранее не фиксируемые значения или программные объекты, к которым должна применяться эта процедура. Все эти формальные параметры в явном виде перечисляются в описании процедуры или функции.
Для использования в программе какой-либо функции или процедуры достаточно указать ее имя и задать ее фактические параметры, т.е. те конкретные значения и (или) объекты, к которым должна быть применена указанная процедура или функция. Для обращения к функциям и процедурам в Турбо Паскале имеются соответствующие понятия — вызов функции и оператор процедуры.
Некоторые функции и процедуры, например элементарные функции математического анализа (sin (x), ln(х) и т.д.) или процедуры ввода/вывода используются во многих программах. Для удобства их использования, в Турбо Паскале зафиксирован некоторый набор так называемых стандартных функций и процедур, которые можно использовать в любой программе без их явного описания. Можно считать, что к началу трансляции любой паскаль-программы в соответствующий ее раздел автоматически вставляются описания всех стандартных функций и процедур, используемых в этой программе. За каждой из них в языке закреплено некоторое стандартное имя. Однако эти имена не являются зарезервированными словами, так что программист может по своему усмотрению переопределить любое из этих стандартных имен.
Синтаксис языка.
Для облегчения понимания текста паскаль-программы и упрощения транслятора, язык Турбо Паскаль требует выполнения определенных правил записи текста программы, которые не находят своего отражения в синтаксисе языка. При формулировании этих правил мы будем использовать понятие "разделитель текста", понимая под этим термином пробел, конец строки и комментарий.
Пробел — это литера, не имеющая графического изображения: пробелу соответствует пустая позиция в строчке текста (на листе бумаги, бланке, экране дисплея и т.д.). Однако пробел имеет определенное представление (свой цифровой код) в машине и вводится в машину вместе с остальными литерами текста программы,
Конец строки – это управляющая литера, также не имеющая графического изображения. Дело в том, что при записи текста паскаль-программы он естественным образом разбивается на отдельные строчки — хотя бы в силу ограниченности листа бумаги, бланка или экрана дисплея, на которых фиксируется этот текст. Число возможных позиций в строчке обычно фиксировано, однако число литер в части текста, образующей очередную строчку, может быть меньше числа возможных позиций. Разбиение всего текста на отдельные строчки производится программистом по своему усмотрению. Чтобы указать, что очередная часть текста должна образовывать новую строчку, и служит управляющая литера "конец строки", которая заносится в исходный текст при его нанесении на внешние носители данных или при его непосредственном вводе в машину с помощью клавиатуры терминала. Как и в случае пробела, эта литера тоже имеет свой код, который фиксируется на внешнем носителе данных или непосредственно вводится в машину при наборе текста на клавиатуре.
Упомянутые выше правила записи текста паскаль-программы состоят в следующем:
- между двумя последовательными конструкциями языка, любая из которых является идентификатором, числом или служебным словом, обязательно должен находиться хотя бы один разделитель текста;
- разделители текста не должны встречаться внутри идентификаторов, чисел и служебных слов;
- кроме случаев, указанных в предыдущем пункте, между двумя последовательными основными символами языка может встречаться любое число разделителей текста и они не влияют на смысл программы (при трансляции паскаль-программы в машинную программу разделители текста в указанных здесь случаях игнорируются).
Управляющая литера "конец строки" в тексте не задается в явном виде: переход на следующую строчку текста автоматически подразумевает наличие этой управляющей литеры.
В тех случаях, когда в тексте надо явно указать наличие пробела (это бывает существенно при записи текста вручную на обычном листе бумаги, а не на бланке), мы будем изображать его литерой " _ ", например
begin_if_ x<25_then_x :=x + 1 _else_x : =0
Сформулированные выше правила записи текста программы отвечают и на вопрос о том, где могут быть помещены комментарии. И хотя в этом отношении возможности весьма велики, обычно комментарии помещают между достаточно крупными синтаксическими единицами – описаниями, операторами и т.д.
Дата добавления: 2021-03-18; просмотров: 359;