2 Введение в язык Паскаль Лекция 2
Pascal - разработан в 1968 - 1971 годах Никлаусом Виртом в Цюрихском Институте Информатики (Швейцария).
Цель - инструмент для обучения программированию как систематической дисциплине. Обнаружилась чрезвычайная эффективность при применении и надежность программирования.
Паскаль - язык, ориентированный на машину фон-неймановского типа; такие языки называются императивными (imperative - содержащий указание на выполнение некоторого действия) или процедурными.
Мы будем описывать Турбо-Паскаль (расширение стандарта Паскаля).
2.2 Алфавит языка Паскаль
Основные символы языка (лексемы) - либо отдельные литеры на клавиатуре, либо их некоторые комбинации.
<спецсимвол>::= <знак арифметической операции>|
<знак операции сравнение>|
<знак арифметической операции>::= *| /| +| -
Служебные слова - «зарезервированные» слова - служат для определенных целей.
<служебные слова>::= begin| end| var| const| if| then| else| function| for|.
2.3 Переменные
Содержимое памяти (и определенных регистров) характеризует состояние фон-неймановской машины. Выполнение программ этими машинами ориентировано сугубо на изменение состояний. Соответственно этому в машине шаг за шагом выполняются определенные инструкции (команды), и с каждым шагом изменяется состояние памяти, т.е. содержимое определенных ячеек памяти. С любым элементом данных, используемым в алгоритмическом языке, связано такое понятие языка как переменная. Любая переменная имеет имя (обозначение) и значение. Переменная именует свое значение - элемент данных. Значение переменной во время работы программы меняется. В языке Паскаль любая переменная используется только в рамках какой-то определенной вычислительной структуры, т.е. значением конкретной переменной может быть только элемент данных определенного типа.
Имя переменной в Паскале синтаксически описывается с помощью идентификаторов:
Длина идентификатора произвольна, но компилятор с языка Турбо-Паскаль воспринимает только первые 63 символа.
2.4 Основные понятия языка Паскаль
Операторы. Каждый оператор представляет законченную фразу языка и определяет некоторый вполне законченный этап обработки данных.
Основные операторы (не содержат в своем составе других операторов):
Оператор присваивания. Предназначен для изменения значений переменных.
Оператор ввода (чтения). Предназначен для ввода в программу входных данных.
Оператор вывода (записи). Предназначен для вывода из программы результатов работы.
Из заданных операторов с помощью композиций различных форм можно получать операторы, которые называются производными операторами. Различные формы композиции операторов позволяют задавать последовательное выполнение, разветвление по условию и повторение.
Описания данных. Программа на Паскале начинается с описания используемых переменных. Для каждой переменной указывается ее имя и тип значения.
Описание последовательности действий, которые необходимо выполнить, следует после описания всех переменных.
Пример описания переменных:
В программе на языке Паскаль любая используемая переменная, за исключением системных (предописанных), должна быть определена, причем определение переменной должно текстуально предшествовать первому ее использованию. Область известности («видимости») переменной ограничивается блоком, в котором она определена. Каждая переменная, описанная в блоке, должна упоминаться в описаниях не более одного раза. Это относится не только к переменным, а вообще ко всем идентификаторам.
Паскаль допускает введение в программы объектов, внешне похожих на переменные, но которые, в отличие от них, не могут изменять свое значение. Такие объекты называются константами. Можно сказать, что идентификатор константы является синонимом некоторого определенного значения, которое сопоставляется с этим идентификатором при описании.
Пример описания констант:
Тип константы определяется по ее значению.
Константа может входить во все конструкции, в которых может присутствовать связанное с ней значение. Естественно, не допускаются ситуации, когда идентификатору константы предлагается изменить значение.
Использование в программе идентификаторов констант вместо записи конкретных значений считается хорошим стилем программирования, так как делает программу более «читабельной» и способствует лучшему ее пониманию, без какого бы то ни было снижения эффективности (в части быстродействия и объема занимаемой памяти). Кроме того, если некоторые важные для программы значения обозначены идентификаторами (например, границы массивов, показатели точности вычислений), то при необходимости их легко изменить, исправив описание соответствующих констант. В противном случае эти значения будут «растворены» в тексте программы и придется просматривать ее целиком, чтобы произвести нужные изменения.