Воробьева А.П., Соппа М.С. - Система программирования Турбо Паскаль 7.0 (1092189), страница 5
Текст из файла (страница 5)
В качестве операндов могут быть константы, переменные и функции.
В бесскобочных арифметических выражениях операции выполняются слева направо в соответствии с их приоритетом.
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) | 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))) |
3.4. Контрольные задания
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 |
2 | а) 0,2; 32103; -8102 б) –0, 25; 2,89102; 3,164; 23,710-4 |
3 | а) 600; -041; 52,62510-4 |
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 |
11 | а) 0015; -9,4103; 99,0 |
12 | а) 276; 9,275103; -0,2 б) –0,56106; -0,07425; 6; -0,873 |
13 | а) 03; 52100; -1,0103 |
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. Записать в Турбо Паскале арифметические выражения
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 |