![](/user_photo/2706_HbeT2.jpg)
- •Текстовый редактор
- •Прогон и отладка программы
- •Справочная служба Турбо Паскаля
- •Строка
- •Строка
- •Задание 2. Разветвления
- •Простейшие циклы
- •Вложенные циклы
- •Примечания
- •Строка
- •Процедуры и функции
- •Процедуры ввода
- •Обозначение
- •Представим определение языка Показушка в расширенной форме Бэкуса-Наура
- •Предложение
- •Синтаксис Паскаля
- •Задание 14
- •Операторы Паскаля
- •Задание 15
- •Новые типы данных. Определение типа. Диапазоны.
![](/html/2706/482/html__9VTDceJaw.fpHT/htmlconvd-O2A2xD54x1.jpg)
слагаемых и простых выражений. Синтаксис класса выражение и нескольких связанных с ним классов представлен на рис. 3
Пример синтаксического анализа выражения a+b*100
“a” |
“+” |
“b” |
“*” |
“100” |
Имя_переменной |
“+” Имя_переменной |
“*” |
Число_без_зна |
|
|
|
|
|
ка |
Переменная |
“+” |
Переменная |
“*” |
Константа_без |
|
|
|
|
_знака |
Множитель |
“+” |
Множитель |
“*” |
Множитель |
слагаемое |
“+” |
слагаемое |
|
|
|
Простое_выражение |
|
|
|
|
|
выражение |
|
|
Задание 14
Пусть a, b, ch – имена переменных, а с – имя константы. С помощью подробного синтаксического анализа покажите, что следующие выражения синтаксически правильны в стандартном Паскале. Полагая a=4, b=6, c=10, ch=”d” вычислите значения этих выражений.
1.c-1=b div a
2.c mod a
3.ch <> “a”
4.a+b*c
5.a+b+c
6.(a+b)*c
7.a*b-30 div c
8.a+4*b-2*c div 5
9.a*b mod 3 = 0
10.a+b*c = a*b+c
11.a+4*b+c
12.(a+b) div 3
13.a mod 5 = 0
14.cos(a) –c < 5
15.a*b > c
Операторы Паскаля
Основное в программе для вычислительной машины – выполняемые ей действия. Описывают эти действия операторы. Операторы бывают простыми и структурными (рис. 4).
Приведенный синтаксис обладает одним важным свойством. Он построен так, что лексема, с которой начинается оператор, однозначно определяет тип этого оператора. Например, если оператор начинается с имени переменной, то это может быть только оператор присваивания, если со служебного слова if – условный оператор и так далее.
Пример синтаксического анализа оператора cost:=cost+number*price:
“cost” “:=” “cost” “+” “number” “*” “price”
Имя_пер “:=” Имя_пер “+” Имя_пере “*” Имя_переме
еменной |
|
еменной |
|
менной |
нной |
Перемен |
“:=” |
Перемен “+” Переменн “*” Переменная |
|||
ная |
|
ная |
|
ая |
|
Перемен |
“:=” |
Множит “+” |
Множите “*” Множитель |
||
ная |
|
ель |
|
ль |
|
Перемен |
“:=” |
слагаемо |
“+” |
|
слагаемое |
ная |
|
е |
|
|
|
Перемен |
“:=” |
|
Простое_выражение |
||
ная |
|
|
|
|
|
Перемен |
“:=” |
|
|
выражение |
|
ная |
|
|
|
|
|
Оператор_присваивания Простой_оператор оператор
54