Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Л2.doc
Скачиваний:
13
Добавлен:
11.04.2015
Размер:
233.47 Кб
Скачать

2 Введение в язык Паскаль Лекция 2

2.1 Историческая справка

Pascal - разработан в 1968 - 1971 годах Никлаусом Виртом в Цюрихском Институте Информатики (Швейцария).

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

Паскаль - язык, ориентированный на машину фон-неймановского типа; такие языки называются императивными (imperative - содержащий указание на выполнение некоторого действия) или процедурными.

Мы будем описывать Турбо-Паскаль (расширение стандарта Паскаля).

2.2 Алфавит языка Паскаль

Основные символы языка (лексемы) - либо отдельные литеры на клавиатуре, либо их некоторые комбинации.

<лексема>::= <буква>|<цифра>|<спецсимвол>

<буква>::= a|b|...|z|A|B|...|Z|_

<цифра>::= 1|2|3|4|5|6|7|8|9|0

<спецсимвол>::= <знак арифметической операции>|

                               <знак операции сравнение>|

                               <разделитель>|

                               <служебное слово>

<знак арифметической операции>::= *| /| +| -

<знак операции сравнения>::= =| <>| <| >| <=| >=

<разделитель>::= .| ,| ;| :| (| )|{| }|{| }| ^| '| #| $| @

Служебные слова - «зарезервированные» слова - служат для определенных целей.

<служебные слова>::= begin| end| var| const| if| then| else| function| for|......

2.3 Переменные

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

Имя переменной в Паскале синтаксически описывается с помощью идентификаторов:

<идентификатор>::= <буква>{<цифра>|<буква>}

Длина идентификатора произвольна, но компилятор с языка Турбо-Паскаль воспринимает только первые 63 символа.

2.4 Основные понятия языка Паскаль

Операторы. Каждый оператор представляет законченную фразу языка и определяет некоторый вполне законченный этап обработки данных.

Основные операторы (не содержат в своем составе других операторов):

  • Оператор присваивания. Предназначен для изменения значений переменных.

  • Оператор ввода (чтения). Предназначен для ввода в программу входных данных.

  • Оператор вывода (записи). Предназначен для вывода из программы результатов работы.

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

Описания данных. Программа на Паскале начинается с описания используемых переменных. Для каждой переменной указывается ее имя и тип значения.

Описание последовательности действий, которые необходимо выполнить, следует после описания всех переменных.

Пример описания переменных:

var

a:integer;

x,y,z:real;

Sinus:real;

В программе на языке Паскаль любая используемая переменная, за исключением системных (предописанных), должна быть определена, причем определение переменной должно текстуально предшествовать первому ее использованию. Область известности («видимости») переменной ограничивается блоком, в котором она определена. Каждая переменная, описанная в блоке, должна упоминаться в описаниях не более одного раза. Это относится не только к переменным, а вообще ко всем идентификаторам.

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

Пример описания констант:

const

One=1;

HighLimit=1000;

pi=3.14159265358;

Тип константы определяется по ее значению.

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

Использование в программе идентификаторов констант вместо записи конкретных значений считается хорошим стилем программирования, так как делает программу более «читабельной» и способствует лучшему ее пониманию, без какого бы то ни было снижения эффективности (в части быстродействия и объема занимаемой памяти). Кроме того, если некоторые важные для программы значения обозначены идентификаторами (например, границы массивов, показатели точности вычислений), то при необходимости их легко изменить, исправив описание соответствующих констант. В противном случае эти значения будут «растворены» в тексте программы и придется просматривать ее целиком, чтобы произвести нужные изменения.

Грубая схема программы:

const

<описания констант>

var

<описания переменных>

begin

<операторы>

end.