Лабораторная работа № 20.
Даркин Кирилл
Операнды Выражения
Арифметические выражения строятся из операндов, арифметических операций и круглых скобок.
В качестве операндов могут быть константы, переменные и функции.
В бесскобочных арифметических выражениях операции выполняются слева направо в соответствии с их приоритетом.
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 - вещественное число или выражение. Запись в Турбо Паскале имеет вид: xa=>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
| -
| |