- •Тема 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’ (только для латиницы)