Введение в язык паскаль. Общая характеристика языка паскаль, страница 4

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

1. В каждый момент времени в ящике может храниться не более одного значения.

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

3. Значение, помещенное в ящик, будет храниться в нем до тех пор, пока в этот ящик не будет помещено новое значение (в момент присваивания соответствующей переменной этого нового значения) — при этом предыдущее содержимое ящика безвозвратно теряется (уничтожается).

4. Находящееся в ящике значение считается текущим значением соответствующей переменной. Это текущее значение может быть выдано из ящика для использования сколько угодно раз, но при этом содержимое ящика не меняется: из него каждый раз выдается копия хранящегося значения с сохранением оригинала в ящике без какого-либо изменения,

5. К началу выполнения программы содержимое всех запоминающих ящиков считается неопределенным; в частности, их нельзя считать и пустыми, поскольку эти ящики могли использоваться при выполнении предыдущих программ, после чего в ящиках могло что-то остаться.

В свете сказанного следует вернуться к символу " : = " из числа разделителей. При описании процессов обработки данных особенно часто приходится задавать такое действие, как присваивание переменной величине ее нового текущего значения, для чего приходится использовать выражения типа "присвоить значение", "положить равным" и т.д., которые являются синонимами. Поскольку это действие встречается особенно часто, то для его обозначения вместо служебного слова используется символ ":=", который легко запоминается и вместе с тем обеспечивает компактность и наглядность записи. Например, запись z : = х + у означает, что переменной z должно быть присвоено новое текущее значение, равное значению суммы х + у. В математике для этой цели обычно используется знак равенства " = ", например z = х. Однако этот знак в математике используется и для обозначения операции сравнения. Для устранения возможности неоднозначного понимания, в паскале символ " = " используется только для обозначения операции сравнения, а для обозначения операции присваивания выбран символ " : = ", изображаемый парой литер. •ЩЯ.

Функции и процедуры

Понятие функции хорошо известно из школьного курса математики. С помощью функций задаются самые различные зависимости одних значений (значений функции) от других значений (аргументов функции). Заметим лишь, что в алгоритмических языках допускаются только такие функции, для которых заданы алгоритмы вычисления их значений. В математике такое требование не является обязательным - можно, например, использовать функцию f(x,y), значение которой равно количеству простых чисел в интервале (х, у) — даже в том случае, если мы не знаем, как именно следует вычислять значение этой функции при любых конкретных значениях аргументов х и у. Таким образом, в алгоритмическом языке любая функция задается некоторой вычислительной процедурой, выполнение которой и дает значение функции. Программист может .ввести в употребление любые нужные ему в данной программе функции.

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