- •Тема 1. Основные понятия языка Object Pascal
 - •1.1. Синтаксические диаграммы
 - •Пример синтаксической диаграммы
 - •1.2. Cостав языка
 - •Алфавит языка
 - •Идентификаторы — это имена переменных, констант, процедур, функций, типов, меток, т.е. имя определенного
 - •1.3. Тип данных
 - •1.3.1. Система типов языка Object Pascal
 - •стандартные скалярные типы данных
 - •Таблица простых типов
 - •1.3.2. Описание данных
 - •Описание констант
 - •1.3.3. Стандартный логический тип
 - •Дополнительные целочисленные типы
 - •1.3.5. Стандартный вещественный тип
 - •вещественные константы:
 - •Дополнительные вещественные типы
 - •1.3.6. Стандартный символьный тип
 - •1.4. Арифметические и логические выражения
 - •терм
 - •Приоритет (ранги) операций:
 - •Примеры вычисления выражений
 - •1.5. Стандартные функции
 - •Примеры задания стандартных функций
 - •Примеры использования стандартных функций
 - •Примеры стандартных функций
 
1.4. Арифметические и логические выражения
Выражение  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
  | 
	простое  | 
	
  | 
	
  | 
	
  | 
	операция  | 
	
  | 
	простое  | 
	
  | 
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|||
  | 
	выражение  | 
	
  | 
	
  | 
	
  | 
	отношения  | 
	
  | 
	выражение  | 
	
  | 
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
Операции отношения: = <> < > <= >=
Простое выражение
+
терм
–
 операция типа сложения 
 Операции типа сложения: + - or
21
терм
множитель
операция типа умножения
Операции типа умножения: * / div mod and
множитель
not
переменная
константа без знака
(  | 
	выражение  | 
	)  | 
	22  | 
  | 
	
  | 
	
  | 
Приоритет (ранги) операций:
  | 
	
  | 
	операции  | 
	
  | 
	ранг  | 
|
- (унарный минус) not  | 
	
  | 
	0  | 
|||
*  | 
	/  | 
	div  | 
	mod  | 
	and  | 
	1  | 
+  | 
	-  | 
	or  | 
	
  | 
	
  | 
	2  | 
<  | 
	<=  | 
	=  | 
	<>  | 
	>= >  | 
	3  | 
Примеры записи арифметических выражений
a1 x1 a2 x2  | 
	
  | 
	((a1*x1)-(а2*х2))/(х1-х2)  | 
||
x1 x2  | 
	
  | 
|||
  | 
	
  | 
|||
  | 
	m n( y x)  | 
	
  | 
||
a w  | 
	4c  | 
	
  | 
	a+(w+(m+n*(y+x)/(4*c)))  | 
|
  | 
	
  | 
|||
  | 
||||
a b / c  | 
	
  | 
	a+b/(-c)  | 
||
  | 
	
  | 
	
  | 
	23  | 
|
Примеры вычисления выражений
Var a,b: real; i,j: integer;
. . .
a  | 
	3.2  | 
	b  | 
	0.1  | 
	i  | 
	1  | 
	j  | 
	2  | 
a + b  | 
	3.3  | 
	b + i  | 
	1.1  | 
	i + j  | 
	3  | 
(a + b) < (b + i)
 False
a + b < a + b + i
 True
((a+b<a+b+i) or (j<i)) and (‘c’<‘a’)  | 
	False  | 
24
1.5. Стандартные функции
тип аргу-  | 
	
  | 
	
  | 
	
  | 
	
  | 
мента  | 
	
  | 
	
  | 
	
  | 
	
  | 
  | 
	Integer  | 
	Real  | 
	Boolean  | 
	Char  | 
тип функции  | 
	
  | 
	
  | 
	
  | 
	
  | 
Integer  | 
	Pred Succ  | 
	Trunc  | 
	SizeOf  | 
	Ord  | 
  | 
	Abs Sqr  | 
	Round  | 
	
  | 
	SizeOf  | 
  | 
	Ins Dec  | 
	SizeOf  | 
	
  | 
	
  | 
  | 
	Low High  | 
	
  | 
	
  | 
	
  | 
  | 
	Random SizeOf  | 
	
  | 
	
  | 
	
  | 
Real  | 
	Sin Cos  | 
	Abs Sqr  | 
	
  | 
	
  | 
  | 
	Arctan  | 
	Sqrt Sin  | 
	
  | 
	
  | 
  | 
	Ln Exp  | 
	Cos Arctan  | 
	
  | 
	
  | 
  | 
	Sqrt  | 
	Ln Exp Int  | 
	
  | 
	
  | 
  | 
	
  | 
	Frac Random  | 
	
  | 
	
  | 
Boolean  | 
	Odd  | 
	
  | 
	Low High  | 
	
  | 
Char  | 
	Chr  | 
	
  | 
	
  | 
	Pred  | 
  | 
	
  | 
	
  | 
	
  | 
	Succ  | 
  | 
	
  | 
	
  | 
	
  | 
	UpCase  | 
25
Примеры задания стандартных функций
Определена как константа величина - Pi
 матем. запись функции
Sin x
Cos x
Arctg x ex
x2 x |x| Ln x
 на языке Object Pascal 
sin(x)
cos(x)
arctan(x)
exp(x)
sqrt(x)
sqr(x)
abs(x)
Ln(x)
26
Примеры использования стандартных функций
log b  | 
	loge b  | 
||
  | 
	
  | 
	Ln(b)/ln(10)  | 
|
loge  | 
	
  | 
||
10  | 
	10  | 
||
  | 
	
  | 
	
  | 
|
3 
7 71/ 3 exp(13 ln 7) 
 Exp(1/3*Ln(7))
Задание: запрограммировать формулу:
y  | 
	
  | 
	
  | 
	cos kx b  | 
	
  | 
	
  | 
	e  | 
	
  | 
	a b  | 
	
  | 
	
  | 
	tgk 2 x  | 
	
  | 
|
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|||||||||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|||||||||
  | 
	a2 b2  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	a  | 
	sin kx  | 
|||||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
||||
  | 
	
  | 
	
  | 
	
  | 
	Исходные данные: a 1.7;  | 
	k 5; x 5.7; b 2.32  | 
||||||||
var a,b,x,y:Real;  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	дробное  | 
	целое дробное дробное  | 
|||||
k:integer;  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|||
. . .  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
y:=sqrt(abs((cos(k*x)-b)/(a*a+b*b)))- 27 exp(abs(a-b))+sin(k*k*x)/cos(k*k*x)/(a-sin(k*x));
Примеры стандартных функций
  | 
	Pred(3) 2  | 
	Succ(‘b’)  | 
	‘c’  | 
	Pred(True) False  | 
||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
  | 
	Ord(‘a’) 97  | 
	Chr(97)  | 
	‘a’  | 
	
  | 
	
  | 
	
  | 
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
Odd true x-нечет.false x-чет.
Trunc(3.56) 3  | 
	Round(3.56) 4  | 
|
  | 
	
  | 
	
  | 
Frac(3.56) 0.56  | 
	
  | 
|
Int(3.56) 3.0 (ближайшее меньшее число)
Int(-1.2) -2.0
Int(-3.4) -4.0
Inc(x{,n}) x+n
(если n = единице шага изменения, то обращение - Inc(x)) Inc(‘a’) ‘b’
Dec(x{,n}) x-n
(если n = единице шага изменения, то обращение - Dec(x))
Dec(‘f’) ‘e’
28
UpCase (‘n’) ‘N’ (только для латиницы)
