Операции отношения или сравнения
П
равила использования операций AND и OR
Операция целочисленного деления и операция — остаток от деления
Остановимся немного подробнее на операции целочисленного деления (div) и операции, выдающей остаток от деления (mod).
Так, результатом целочисленного деления 17 на 5 будет 3:
17 div 5 = 3, а результатом деления меньшего числа на большее, будет 0:
Делаем вывод, что при целочисленном деление дробная часть отбрасывается, сам термин «целочисленное деление» или «деление нацело» говорит сам за себя.
Операция a div b осуществляет целочисленное деление целого a на целое b.
Дробная часть при этом отбрасывается.
Еще одна интересная операция — остаток от деления a на b.
Понятно, что остатком от деления 17 на 5 будет число 2:
а вот чему будет равен остаток от деления меньшего числа на большее, например, 46 mod 200?
Оказывается, в этом случае, результатом операции будет число 46. Вот другие примеры:
Интересно, что остаток от деления любого целого числа на 10 будет равен последней цифре этого числа:
543 mod 10 = 3, 45 mod 10 = 5, 7 mod 10 = 7.
Константа в программе на Паскале — это идентификатор, являющийся обозначением конкретного числа, которое называется значением константы; отличие же константы от переменной в том, что ее значение нельзя изменять с помощью операторов программы, а также в том, что значение константы закрепляется в ней еще до выполнения операторов, в разделе описаний.
Каждая константа должна быть описана в программе. Примеры описания:
Такого рода описание может охватывать и несколько констант.
Const n = 100; m = 25; k = 1000;
Константы такого вида называются нетипизированными. Существуют константы, в описании которых кроме значения есть тип, например:
Const m: integer = 25;
Такие константы являются типизированными и их значения можно изменять с помощью операторов программы. Типизированные константы отличаются от переменных только тем, что описываются после ключевого слова Const и их значения указываются в разделе описаний.
Кроме арифметических операций, в Паскале существуют так называемые стандартные или встроенные функции, которые выполняются сразу после указания их имени, заведомо объявленных в Паскале, после которого в скобках записывается аргумент функции.
Оператор сравнения в языке Pascal
“Не равно” в языке Pascal является оператором сравнения. В отличие от многих других языков программирования он обозначается знаком “<>”, а не “!=”.
Оператор “<>”является бинарным, т. е. применяется он сразу к двум операндам. Его возвращаемое значение имеет тип boolean. Если правый и левый операнд не равны между собой, то “<>” возвращает TRUE, иначе — FALSE.
“Не равно” можно заменить оператором “равно”, используя логическое отрицание выражения. Таким образом a<>b эквивалентно not (a = b).
Использование оператора <>
“Не равно”часто используется в условном операторе IFTHEN. В нём могут участвовать различные операнды, а именно простые (целые, вещественные, символьные и др.), строки, множества и указатели.
Пример использования оператора “Не равно”:
“Не равно” можно вставлять в оператор вывода. В этом случае на экране отобразится значение типа boolean. Пример такого отображения:
Код:begin
writeln (‘Result: ‘, 1.0 <> 1); // операнды,несмотря на различие типов, равны между собой, значит результат оператора “<>” отрицательный
end.
Вывод:Result:FALSE
Условные выражения
В языке Pascal есть ряд операций для работы с логическим типом данных — boolean.
Логическая переменная может принимать только два значения — True(истина) или False(ложь).
Операции сравнения
Сравнение — это простые условные выражения, которые сравнивают два логических значения, и возвращают True или False.
Free Pascal поддерживает такие операции сравнения:
Равно = (эквивалентно)
Возвращает True, если сравниваемые объекты равны, в ином случае возвращает False.
Не равно <>
Возвращает True, если сравниваемые объекты не равны, в ином случае — False.
Больше >
Возвращает True, если значение больше второго, иначе — False.
Больше равно >=
Возвращает True, если значение первой переменной больше или равно второй.
Меньше <
Возвращает True, если первое значение меньше второго, иначе — False.
Меньше равно <=
Возвращает True, если значение первой переменной меньше или равно второй.
Пример программы с операциями сравнения:
С помощью операций сравнения можно сравнивать различные типы данных — числа, символы, строки, логические значения, только сравниваемые переменные должны быть одного и того же типа.
Логические операции
Для составных условных конструкций применяются логические операции. В Паскале поддерживаются следующие логические операции and, or, not, xor.
Логическое отрицание not
Возвращает True, если выражение равно False, в ином случае возвращает True.
Логическое умножение and (конъюнкция)
| Первый операнд | Второй операнд | Результат операции and |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
Логическое сложение or (дизъюнкция)
| Первый операнд | Второй операнд | Результат операции or |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 1 |
Исключающее или xor (строгая дизъюнкция)
| Первый операнд | Второй операнд | Результат операции xor |
|---|---|---|
| 0 | 0 | 1 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
Логические операции применяются не только к значениям типа boolean и логическим выражениям. Их можно применять к числовым значениям. При этом они работают с представлениями чисел в двоичной системе. Поскольку операции работают с битами числа, они называются битовыми.
Операции сравнения
Ещё один из самых распространённых типов операций — это операции сравнения. Эти операции постоянно используются в программах, потому что программы не только выполняют какие-то вычисления, но и проделывают массу других штучек. В частности, выполняют операции сравнения, то есть сравнивают что-то с чем-то.
Давайте вспомним пример программы из предыдущего урока. там мы создали простой калькулятор, который выполнял три действия над двумя числами: сложение, вычитание и умножение.
Однако я намеренно не включил сюда операцию деления. Как вы думаете, почему? Кто-то, быть может, решит, что причиной является использование целых чисел. Ведь в Паскале они не делятся обычным способом. Но на самом деле причина не в этом.
Я не стал использовать операцию деления, потому что пользователь в качестве делителя может ввести число 0. А на ноль, как известно, делить нельзя. Поэтому программа завершится с ошибкой, и пользователь будет очень недоволен.
Как быть? Напрашивается простое решение — проверить значение второго числа, которое вводит пользователь. И если это число равно нулю, то не выполнять операцию деления.
Как сделать такую проверку программно? Да очень просто — выполнить операцию сравнения. То есть сравнить число с нулём.
В таблице 15.3 приведены операции сравнения, которые допускается использовать в языке Free Pascal.
Таблица 15.3. Операторы сравнения Free Pascal.
| Оператор | Операция |
| = | Равно |
| <> | Не равно |
| < | Меньше чем |
| > | Больше чем |
| <= | Меньше или равно |
| >= | Больше или равно |
| in | Входит в |
Все эти операции сравнения известны вам из школьного курса математики. Только некоторые операторы в Паскале обозначаются немного иначе. Единственный непонятный для вас оператор — это оператор in. Но о нём мы пока забудем. И вспомним, когда будем изучать сложные типы данных.
как в программе использовать операторы сравнения?
Более подробно мы будем изучать это в следующих уроках. А сегодня я расскажу вам только об одной языковой конструкции Паскаля
Если вы знаете английский язык, то вы уже должны догадаться, что сие значит. Ну а если нет, то я поясню по-русски. Итак, эта конструкция работает так:
А теперь попробуем доработать программу из предыдущего урока и добавить в неё операцию целого деления. Добавленный код будет выглядеть так:
Здесь мы сначала проверяем значение переменной у. Если это значение равно нулю, то мы выводим сообщение об ошибке. Иначе, то есть если переменная у имеет любое другое значение (не ноль), мы выполняем операцию целого деления и выводим результат.
Домашнее задание:
Доработайте программу из предыдущего урока. Добавьте в неё операцию целого деления. проверьте работоспособность программы.
замените оператор = на оператор <>. Посмотрите, что получится, если ввести в качестве второго числа 0. Доработайте программу таким образом, чтобы она правильно работала с выражением