Лабораторная работа № 1.
-------------------------------------------------------------------------------------------
Арифметические выражения
Арифметические выражения строятся из операндов, арифметических операций и круглых скобок.
В качестве операндов могут быть константы, переменные и функции.
В бесскобочных арифметических выражениях операции выполняются слева направо в соответствии с их приоритетом.
1. * (умножение);
/ (деление);
DIV (деление нацело);
MOD (выделение остатка от деления целых чисел).
2. + (сложение);
- (вычитание).
Изменить порядок выполнения операций можно с помощью круглых скобок. Выражение, заключенное в круглые скобки, выполняется в первую очередь. Например, выражению a/bc соответствует математическая запись
, а выражению а/(bс) соответствует запись
.
Тип арифметического выражения определяется типом входящих в него операндов.
Арифметическое выражение является целым, если все входящие в него операнды целого типа. Результат вычисления целого арифметического выражения - целый.
Если в арифметическом выражении содержится хотя бы один вещественный операнд, то результат - вещественный. Целые операнды в вещественном арифметическом выражении всегда преобразуются к вещественному типу.
Операции целочисленного деления DIV и MOD применимы только к целым числам. Результат их выполнения - целый.
Исключение составляет операция деления с использованием символа ‘/’. Результат выполнения этой операции всегда вещественный, независимо от типа операндов.
Например, значением выражения 2/5 будет вещественное число 0.4.
Примеры вычислений арифметических выражений
Арифметические выражения
|
Результат
|
Тип результата
|
6 + 4 * (5 - 3) 6 + 4 * (5 - 3.0) 7 DIV 2 7 MOD 2 7/2
|
14 14.0 3 1 3.5
|
Целый Вещественный Целый Целый Вещественный
|
Стандартные функции
Часто используемые в арифметических выражениях элементарные математические функции оформлены в виде стандартных подпрограмм, которые хранятся в библиотеке Турбо Паскаля (файл с именем TURBO.TPL).
Для правильного обращения к стандартной функции, необходимо записать имя функции, за которым в круглых скобках следует аргумент (параметр). Приоритет вычисления функций выше, чем приоритет арифметических операций.
Ниже представлен набор стандартных функций с указанием типов функции и аргумента. В таблице приняты обозначения: I-целый тип, R- вещественный тип.
Математическая запись
|
Запись в Турбо Паскале
|
Тип аргумента
|
Тип функции
|
| x |
|
Abs(x)
|
I R
|
I R
|
x2
|
Sqr(x)
|
I R
|
I R
|
sin x cos x arctg x
|
Sin(x) Cos(x) Arctan(x)
|
I или R
|
R
|
ex ln x
|
Exp(x) Ln(x)
|
I или R
|
R
|
|
Sqrt(x)
|
I или R
|
R
|
|
Pi
|
R
|
R
|
Выделение целой части аргумента
|
Trunc(x) Round(x)
|
R
|
I
|
Выделение дробной части аргумента
|
Frac(x)
|
R
|
R
|
Возведение в степень
В Турбо Паскале отсутствует операция возведения в степень. Реализация этой операции зависит от типа показателя.
Если показатель целого типа, то операция возведения в степень реализуется многократным умножением.
Например:
x4 =>x x x x;
sin2x => sqr(sin(x)).
Если показатель вещественного типа, то пользуются соотношением:

, где x>0; a - вещественное число или выражение. Запись в Турбо Паскале имеет вид: x
a=>exp(a*ln(x)). Например:

.
Примеры программирования арифметических выражений
Математическая запись
|
Запись в Турбо Паскале
|
|
(a + 12 b)/(c1 - 1.8E3)
|
|
exp((2sin(4x)+sqr(cos(xx)))/(3*x))
|
ln |tg -sin(3)|
|
ln(abs(sin(al)/cos(al)-sin(al*al*al)))
|
Контрольные задания
1. Составить раздел описания для заданных переменных
№ вар.
|
Математическая запись
|
Тип
|
№ вар.
|
Матема-тическая запись
|
Тип
|
1
|
С2, Lt, j Z1, T, rs
|
логический символьный
|
9
|
Sum, max, w T, Z1, R
|
вещественный логический
|
2
|
M, n1, ap B, 0,
|
целый вещественный
|
10
|
D, C3, kb t, x1,
|
строковый вещественный
|
3
|
, h , E st, w, y1
|
вещественный символьный
|
11
|
I, do, l1, Kн Ch, Q, rez
|
целый символьный
|
4
|
T3, j, x Q, w, Z1
|
целый вещественный
|
12
|
N, Kc, a2 Z, fd,
|
целый символьный
|
5
|
N, x1, b A, , min
|
строковый вещественный
|
13
|
I, kd, l1 Q, , lt
|
строковый вещественный
|
6
|
J, I, K F, S, R2
|
целый логический
|
14
|
M1, j, r A, , bo
|
логический вещественный
|
7
|
, y4, n, a0, k
|
вещественный логический
|
15
|
M0, j, rcm E, , f1
|
целый вещественный
|
8
|
, , l, k1, m
|
вещественный символьный
|
16
|
, , с str, , P1
|
вещественный строковый
|
2. Записать в Турбо Паскале константы
а) целые;
б) вещественные (в форме десятичных чисел и чисел с порядком).
№ варианта
|
Математическая запись
|
1
|
а) +15; 72,93103 ; -500 б) ; -16,7; 0,054102; 62,710-5
|
2
|
а) 0,2; 32103; -8102 б) -0, 25; 2,89102; 3,164; 23,710-4
|
3
|
а) 600; -041; 52,62510-4 б) ; 0,0310-2; -715,4; 2,1103
|
4
|
а) 735; -24103 ; 13,14102 б) 0,0265103; -3,7; 54,6; 0,27510-2
|
5
|
а) 014; 25100; 27,3103 б) 0,518; 2,546102 ; -0,0710-3; 3,04
|
6
|
а) 014; 25100; 27,3102 б) 15,37; 4,5210-3; 23; 0,0083
|
7
|
а) 07; 94102; 16,27103 б)8,4; -35,0710-1; 6,3102; 0,004
|
8
|
а) 41; 286100; 23,7102 б) 0,817; 0,645102; -0,718110-3; 0,3556100
|
9
|
а) 377; -15103; 25,4103 б) - 0,572106; 6,28; 5886; 0,0695102
|
10
|
а) 012; 7,5103; -0,05102 б) -0,08410-2; -0,08410-2; -52;
|
11
|
а) 0015; -9,4103; 99,0 б) -5,14; 27,0610-6; ; 0,008102
|
12
|
а) 276; 9,275103; -0,2 б) -0,56106; -0,07425; 6; -0,873
|
13
|
а) 03; 52100; -1,0103 б) ; 631,5102; -8,25; 92,1104
|
14
|
а) -016; 95,72102; -576 б) -2,75; 81,210-6; -15,0103; -0,03310-3
|
15
|
а) 05; -91,0103; 14,5102 б) 3,48; 1б5102, -9,1210-5; 0,0385
|
16
|
а) 008; 7,2104; -12102 б) 54; -17,8; 2,04110-3; 513103
|
3. Записать в Турбо Паскале арифметические выражения
№ варианта
|
Математическая запись
|
1
|
|
2
|
|
3
|
|
4
|
|
5
|
|
6
|
|
7
|
|
8
|
|
9
|
|
10
|
|
11
|
|
12
|
|
13
|
|
14
|
|
15
|
|
16
|
|
4. Записать в виде алгебраической формулы
№ варианта
|
Запись в Турбо Паскале
|
1
|
ln(abs(sqr(x)x))+arctan(x)+exp(omega)
|
2
|
xsin(pi/4)/(1-2xcos(pi/4)+exp(1/3ln(x)))
|
3
|
sqrt(abs(ln(sin(x)+2)))
|
4
|
3sin(x)+1/3ln(1+xx)+sqrt(exp(x))
|
5
|
sqrt(abs(x-y))/(sqr(sin(z))+1)
|
6
|
exp(abs(x+y))exp(xln(1+sin(y)))
|
7
|
2((x+y+z)sqr(x+y+z)/(2x)-sin(xxx))
|
8
|
(sin(al)+arctan(al))/(omega+sqr(cos(al)))
|
9
|
exp(cos(x))sqr(cos(sin(x)))+5.7E-1
|
10
|
exp(x)/(4E-1+xx)-sin(ln(x))
|
11
|
4aa+x(bbb+x(sqr(c)sqr(c)+x(a-exp(x))))
|
12
|
18asqr(x)+exp(2/3ln(x))+sin(al/2)
|
13
|
2bbb+ln(a)-exp(2.5ln(x))
|
14
|
(x+y+z)/(sqr(sin(a*x))+bb)
|
15
|
exp(y/xln(abs(x)))+exp(1/3ln(y/x))
|
16
|
arctan(xxx)/(ln(x)+sin(x)/cos(x))+1
|
5. Вычислить арифметическое выражение
№ вар.
|
Запись в Турбо Паскале
|
Исходные данные
|
1
|
18.75 - 16.4Е0 + 1/4
|
-
|
2
|
frac(sqrt(a + b))
|
a =0.84; b=0.16
|
3
|
3 DIV x + sqr(x)
|
x=2
|
4
|
(xxt + 2.1)trunc(1/4) + 5
|
x=36; t=5.287
|
5
|
I + 3 - i sqr(i)
|
i= -3
|
6
|
4 + exp(trunc(3/2) ln(6.25E-1))
|
-
|
7
|
1 MOD 3 + 1 DIV 3
|
-
|
8
|
2 10 DIV 4
|
-
|
9
|
x/(y x - y) + x/y + 1.2E1
|
x=3; y= 1.5
|
10
|
19 DIV 4 + 1 MOD 4
|
-
|
11
|
100 (99 DIV 100)
|
-
|
12
|
m + k ((m + k) DIV n) - n
|
m =2; k=7; n=10
|
13
|
2 trunc(4/10) + 2E0
|
-
|
14
|
2.0 (1E1 / 5)
|
-
|
15
|
19 DIV 4 + 5 MOD 4
|
-
|
16
|
exp(1/3 ln(27)) + 2
|
-
|