Главная страница
Навигация по странице:

  • Windows

  • True

  • Basic

  • ← == Imp →

  • AndAlso и OrElse

  • AndAlso

  • Лекции. Основные понятия и определения


    Скачать 1.94 Mb.
    НазваниеОсновные понятия и определения
    Дата27.03.2018
    Размер1.94 Mb.
    Формат файлаdocx
    Имя файлаЛекции.docx
    ТипКонтрольные вопросы
    #39570
    страница10 из 58
    1   ...   6   7   8   9   10   11   12   13   ...   58

    4.3. Операторы сравнения


    Результат выполнения любого оператора сравнения – логическое значение (true|false), операндами в общем случае являются арифметические выражения. Для операторов используются общепринятые математические обозначения. Там, где действие оператора неочевидно, в скобках приведено пояснение. Ниже приведен их приоритет.

    C Basic

    < <= > >= < <= > >= = <> (не равно)

    == (равно) != (не равно)

    Замечание. Операторы, состоящие из двух и более символов, называют составными, пробелы внутри них недопустимы.

    Пример.

    5<3 → false 5*5>=5+20 → true

    Замечания.

    1. В языке Basic сравнения, подобные приведенному в примере, называют числовыми. Допустимо также сравнение строк. Сравнение проводится посимвольно слева направо в соответствии с кодировкой символов. В кодировке Windows русские и латинские буквы упорядочены по алфавиту, причем заглавные буквы "меньше" строчных.

    Пример.

    "А" < "а" → True

    "Ф" < "ф" → True

    "Я" < "а" → True

    Если строки имеют разную длину, то более короткая дополняется справа пробелами.

    Пример.

    "Алекс" < "Александр" → True "Павлов Иван" = "Павлов И.В." → False

    2. В языке C сравнение строк выполняется с помощью специальных функций, рассматриваемых в последующих разделах.

    4.4. Логические операторы


    Операндами для них являются логические значения, результат вычисления выражения также логическое значение.

    Basic C

    Not Не, логическое отрицание !

    And, AndAlso И, логическое умножение, конъюнкция &&

    Or, OrElse → Или, логическое сложение, дизъюнкция ← ||

    Xor → исключающее Или (не эквивалентность) !=

    Eqv → эквивалентность ← ==

    Imp → импликация (включение) нет

    Замечание 1. В наших версиях языка Basic операторы Eqv и Imp не поддерживаются. Новые операторы AndAlso и OrElse отличаются от операторов And и Or соответственно тем, что, если значение результата уже определено значением операнда 1, то значение операнда 2 не вычисляется, для последних значение операнда 2 вычисляется всегда. То есть, если А в выражении А AndAlso В принимает значение False, то значение В не вычисляется, и наоборот, если А в выражении А OrElse В принимает значение True, то значение В не вычисляется. В языке C операторы && и || работают, как операторы AndAlso и OrElse соответственно. Эти свойства операторов позволяют программировать выражения, в которых вычисления 2-го операнда приводит к ошибке.

    Пример.

    iAndAlso x(i)<>0

    Если массив x содержит n-1 элемент, то при i=n значение x(n) лежит за пределами отведенной под массив x памяти. В этом случае использовать оператор And для вычисления выражения нельзя!

    Замечание 2. Операторы != и == имеют равный приоритет. Они имеют как бы двойное назначение: если операнды – арифметические выражения, то они трактуются как операторы сравнения, если операнды – логические выражения, то – как логические операторы.

    Результат выполнения каждого оператора пояснен в таблице. Здесь A и B – выражения, которые могут принимать одно из двух значений: true|false. Любое выражение, не равное 0, трактуется как имеющее значение true, равное 0 – как false.

    A

    B

    Not A

    A And B

    A Or B

    A Xor B

    A Eqv B

    A Imp B

    false

    false

    true

    false

    false

    false

    true

    true

    false

    true

    true

    false

    true

    true

    false

    true

    true

    false

    false

    false

    true

    true

    false

    false

    true

    true

    false

    true

    true

    false

    true

    true

    Примеры. Верхнее выражение – на языке Basic, нижнее – на языке C.

    1) условие попадания т.M(x,y) 2)условие непопадания т.M(x,y) в 1 и 3

    в треугольник квадрант круга радиуса 1 с центром

    x>0 And y>0 And y<1-x y в начале координат

    y x>0 && y>0 && y<1-x 1 Not(x*x+y*y<1 And x*y>0)

    1 F !(x*x+y*y<1 && x*y>0)

    0 1 x

    T F

    0 1 x 1

    3)условие попадания т.M(x,y) в заштрихованную область

    x*x+y*y<=1 And x<=0 And y<=0 Or y=x And x>0

    x*x+y*y<=1 && x<=0 && y<=0 || y==x && x>0

    4)условие кратности целых значений

    m Mod n = 0

    m%n == 0
    1   ...   6   7   8   9   10   11   12   13   ...   58


    написать администратору сайта