Арифметические операции. В Паскале определены следующие операции этой группы:

В Паскале определены следующие операции этой группы:

+ - сложение

- - вычитание

* - умножение

/ - деление вещественных чисел

div – деление целых чисел

mod - остаток от деления целых чисел

and – арифметическое И

shl – сдвиг влево целого числа на заданное число двоичных разрядов

shr - сдвиг вправо целого числа на заданное число двоичных разрядов

or – логическое сложение операндов

xor – исключающее ИЛИ

not – арифметическое отрицание

Операции сложения (+), вычитания (-), умножения (*) и деления (/) выполняются так же, как и в обычных арифметических выражениях.

Например,

123 + 456 = 579

456 – 123.0 = 333.0

12 * 34 = 408

123 / 4 = 30.75

Задание 4.1

1. Запишите на Паскале следующие формулы:

а) a + bx + cyz; б) [(ax – b) x + c] x – d;

в) Арифметические операции. В Паскале определены следующие операции этой группы: - student2.ru + Арифметические операции. В Паскале определены следующие операции этой группы: - student2.ru ; г) Арифметические операции. В Паскале определены следующие операции этой группы: - student2.ru × Арифметические операции. В Паскале определены следующие операции этой группы: - student2.ru ;

д) 104 a - 3 Арифметические операции. В Паскале определены следующие операции этой группы: - student2.ru b; е) (1 + Арифметические операции. В Паскале определены следующие операции этой группы: - student2.ru + Арифметические операции. В Паскале определены следующие операции этой группы: - student2.ru ) / (1+ Арифметические операции. В Паскале определены следующие операции этой группы: - student2.ru ).

2. Запишите в общепринятой форме:

а) (p + q) / (r + s) – p * q / (r * s);

б) 1E3 + beta / (x2 – gamma * delta.

Целочисленное деление (div)отличается от обычной операции деления тем, что возвращает целую часть частного, дробная часть отбрасывается. Результат целочисленного деления всегда равен нулю, если делимое меньше делителя.

Например,

11 div 5 = 2

10 div 3 = 3

2 div 13 = 0

Деление по модулю (mod) восстанавливает остаток, полученный при выполнении целочисленного деления.

Например,

11 mod 5 = 1

10 mod 3 = 1

14 mod 5 = 4

Пример 4.1Программа читает значение времени t, заданное в часах и минутах, а печатает t в часах и минутах.

program time;

var t, tm, th : integer;

Begin

write(‘Введите время в минутах’);

read(t);

th := t div 60; tm := t mod 60;

writeln(th:2, ‘час.’:5, tm:3, ‘мин.’:5)

End.

Задание 4.2

1. Вычислите значения выражений:

а) 20 div 6; б) 20 mod 6;

в) 20 div 4; г) 20 mod 4;

д) 2 div 5; е) 2 mod 5;

ж) 27 div 0; г) 7.0 mod 7.

2. Укажите порядок выполнения операций в выражении, расставив скобки: - а mod b + a div b*c.

Если типы переменных, участвующих в выражении, совпадают, то никаких преобразований не делается, и все вычисления происходят в том же типе. Вычисленный результат преобразуется (если это требуется) к типу переменной, стоящей в левой части оператора присваивания (преобразование возможно только из типа integer к типу real). Смешение типов integer и real допустимо только для операций + и -.

Операции сдвига shl и shr выполняются быстрее, чем соответствующие операции деления и умножения на степень двойки.

Например,

2 shl 7 = 256

256 shr 6 = 4

Логические операции

Результатом выполнения логического (булевского) выражения является логическое значение true или false. Операндами служат только данные булевского типа.

not – логическое отрицание

and – И (логическое умножение)

or – ИЛИ (логическое сложение)

xor – исключающее ИЛИ

Таблица – Логические операции

Выражение А В Результат
not A true   false
  false   true
A and B true true true
  true false false
  false true false
  false false false
A or B true true true
  true false true
  false true true
  false false false
A xor B true true false
  true false true
  false true true
  false false false

Задание 4.3

1. Запишите на Паскале отношение, истинное при выполнении указанного условия и ложное в противном случае:

а) целое k делится на 7;

б) уравнение ax2 + bx + c = 0 (a ¹ 0) не имеет вещественных корней;

в) точка (x, y) лежит вне круга радиуса r с центром в точке (1, 0);

г) натуральное n является полным квадратом.

2. Вычислить значение выражений:

а) t and (p mod 3 = 0) при t = true, p = 101010;

б) (x*y <> 0) and (y > x) при x = 2, y = 1;

в) (x*y <> 0) or (y > x) при x = 2, y = 1;

г) a or (not b) при a = false, b = true.

3. Записать на Паскале выражение, истинное при выполнении указанного условия и ложное в противном случае:

а) 0 < x< 1;

б) x = max (x, y, z);

в) x ¹ max (x, y, z) (операцию not не использовать);

г) хотя бы одна из логических переменных а и b имеет значение true;

д) обе логические переменные а и b имеет значение true.

4. Доказать тождество: a and (not a) = false.

5. Вычислить:

а) true or (1/0 > 0);

б) (1/0 > 0) or true.

6. Указать порядок выполнения операций при вычислении выражения:

a and b or not c and d.

7. Вычислить следующие выражения при a = true и b = false:

а) a or b and not a; б) (a or b) and not a;

в) not a and b; г) not (a and b).

8. Записать на Паскале выражение, истинное при выполнении указанного условия и ложное в противном случае:

а) х принадлежит отрезку [2, 5] или [-1, 1];

б) х лежит вне отрезков [2, 5] или [-1, 1].

9. Нарисовать на плоскости (x, y) область, в которой и только в которой и только в которой истинно указанное выражение:

(y > = x) and (y + x > = 0) and (y < = 1).

10. Записать на Паскале выражение, истинное, если n и k имеют одинаковую четность, и ложное иначе.

Операция со строками

Операция со строками + (конкатенция) – сцепление строк. Если длина результирующей строки превышает 255 символов, то она усекается до 255 символов.

Операции отношения

Операции отношения =, <>, < , > , <= , > = , in применимы для всех стандартных типов string, real, integer, boolean, char, byte. При сравнении допустимо использовать операнды разных типов в одной операции, только если это целые и вещественные переменные.

Например,

var ch: char;

b : boolean;

x, y : real;

z : integer;

…..

if (x>z) and (ch in [‘Y’,’N’] or not b then writeln(‘Условие выполнено’);

4.1.5 Операция @

С помощью операции @ можно создать указатель на переменную. Операция @ является унарной операцией, в качестве операнда которой используется ссылка на переменную, процедура или идентификатор функции, и операнду возвращается указатель. Тип этого значения является таким же, как и тип указателя nil, и, таким образом, его можно присвоить любому указателю переменной.

  1. Дейкстры Э. Дисциплина программирования. М.: Мир, 1976
  2. Грис Д. Наука программирования: Пер.с англ. – М.: Мир, 1984

Наши рекомендации