Арифметические выражения
Выражение - это формальное правило для вычисления некоторого значения. В зависимости от типа значения выражения можно разделить на три вида : · численные ( арифметические ); · логические ; · символьные.
Численные ( арифметические ) выражения Представляют собой совокупность имен переменных, констант, функций, а также других выражений числовых типов, объединенных знаками арифметических операций и круглыми скобками. В Паскале предусмотрены шесть арифметических операций :
+ сложение - вычитание * умножение / деление div деление нацело mod остаток от деления 5 div 3 =1 5 mod 3 = div 3 = mod 3 = -2 5 div -3 = -1 5 mod -3 = div -3 = 1 -5 mod -3 = -2
1. Вычислите : 1. Вычислите : а ) – 20 div 6 = б ) -20 mod 6 = в ) 20 div – 3 = г ) 20 mod – 3 = д ) 20 div 4 = е ) 2 mod 5 =
При построении арифметических выражений можно использовать различные встроенные ( стандартные ) математические функции.
функцииНазначение abs(x) Абсолютное значение x pi Значение числа ПИ sin(x) Синус x радиан cos(x) Косинус x радиан sqrt(x) Квадратный корень из x>=0 sqr(x) Значение квадрата x Round(x) Округляет x до ближайшего целого Random Случайное число от 0 до 1 Random(X) Случайное число от 0 до Х
2. Определите тип значения выражения (integer или real): 2. Определите тип значения выражения (integer или real): а ) б ) 20/4 в ) sqr(4) г ) sqr(5.0) д ) sqrt(16) з ) round( - 1.8)
Правила записи арифметических выражений : 1. Запись должна быть линейной ( в одну строку ). 2. Нельзя пропускать знак * между сомножителями (2* а ). 3. Нельзя записывать подряд два знака арифметических операций 4. Количество открытых скобок должно совпадать с количеством закрытых скобок Приоритет операций 1. Стандартные функции 2. *, /, div, mod 3. +, - Если приоритет одинаковый, то операции выполняются по порядку. Чтобы изменить порядок действий добавляют круглые скобки.
3. Запишите в общепринятой форме : 3. Запишите в общепринятой форме : a. (-b+sqrt(sqr(b)-4*a*c)/(2*a) b. a/b*(c+d)-(a-b)/b/c c. (abs(x)-abs(y))/(1+sin(x*y)) d. (abs((y-sqrt(abs(x)))*(x-y/(z+sqr(x)/4)))
Оператор присваивания Определите значения всех переменных после выполнения следующих операторов присваивания, которые выполняются последовательно : a : = 2; b : = 3; c : = (a + b)*(a –b); c : = c*(a mod b); c : = - (a* sqr(sqr(b)) div sqr(c));
Найдите ошибку в записи : X : = I + 4; x : = 2,76 * A; 3*x : = L; -v : = A+B; 1 : = 1; P : = 2.5 mod 2; A : = B + C/1; ( если А – целое ).
Пример программы нахождения площади прямоугольника program pr1; var A,B,S:real; begin writeln( Введите стороны A и В ); readln (A, B); S:=A*B; writeln(S=,S:4:1) end.
Оператор вывода Write Например : write (x=,(5+4)*3); на экране после выполнения оператора : x=27 S : = 4; write (S); на экране после выполнения оператора : S4 S : = 4.0; writeln (S); на экране после выполнения оператора : S E+000 Вещественная переменная S представлена в форме с плавающей запятой.
Можно использовать форматированный вывод : 1) При выводе вещественных значений можно указать, сколько десятичных цифр следует сохранить в дробной части числа. Количество цифр указывается вслед за количеством позиций, отводимых для вывода всего числа. Знак числа и десятичная точка занимают отдельную позицию.
Например : S : = 4.0; write (S=); writeln (S:5:2); на экране после выполнения оператора : S= 4.00 S=4.00
Что будет выведено на экран в результате выполнения операторов : a. writeln (3.7896:4:2); b. writeln ( :4:2); c. x : = ; x : = x + 2.3E-2; write (2x=, x*2:3:2, x=, x:4:3); d. S : = 2; writeln (S=, S, km);
2) При выводе целых значений можно указать, сколько позиций следует отвести для вывода всего числа. Например : S : = -4; write (S, S:3); на экране после выполнения оператора : S -4 s-4
Логические выражения Постройте противоположные условия для условий : a < b a > b a = b.
Для следующих условий найти истинные условия и ложные условия : x : = 0; y : = -1; z : = 1; 1) (x < 0) or (y < 0) 2) (x = 0) and (y 0) 3) (y 1) and (z 1) 4) (y 1) and (z 1) or (x 1) 5) (y = 1) or (x 1) and (z 1)
Дан фрагмент программы. Начиная с третьей строки определите какое значение будет присвоено соответствующей переменной. b : = true; v : = 3; x : = 1; y : = -2; z : = 2*abs(y); k : = trunc(x / y * z / v * 2 / 0.5); y : = sqrt (x * y * z * k); m : = (-k) div 3; c : = (k < m) and b; b : = not c or (y z);