Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика часть 1.pdf
Скачиваний:
17
Добавлен:
02.05.2015
Размер:
489.96 Кб
Скачать

слагаемых и простых выражений. Синтаксис класса выражение и нескольких связанных с ним классов представлен на рис. 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