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

  • Basic

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


    Скачать 1.94 Mb.
    НазваниеОсновные понятия и определения
    Дата27.03.2018
    Размер1.94 Mb.
    Формат файлаdocx
    Имя файлаЛекции.docx
    ТипКонтрольные вопросы
    #39570
    страница34 из 58
    1   ...   30   31   32   33   34   35   36   37   ...   58

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


    Порядок: →

    Оператор

    Уровень

    Наименование

    &&

    11

    И

    ||

    12

    Или

    Если первый операнд для оператора && равен 0, то второй не вычисляется. Если первый операнд для оператора || равен 1, то второй не вычисляется.

    Логические операторы языка Basic: Not (отрицание), And (И) и Or (Или). Также имеются операторы AndAlso, OrElse и Xor. Уровень их соответствует уровню логических операторов языка С. Приоритет между ними следующий (по убыванию слева направо): Not { And | AndAlso} {Or | OrElse} Xor.

    Различие между операторами And и AndAlso, Or и OrElse показано в параграфе 4.4. Следует обратить внимание на существенное различие в уровне приоритета операторов отрицания ! (язык С) и Not (язык Basic).

    11.10. Уровень 13 (условное выражение)


    Порядок: →

    Правило записи: e1?e2:e3, где e1, e2, e3 - выражения.

    Порядок вычисления:

    - вычислить e1;

    - если e1 != 0, то результат = e2, иначе результат = e3.

    Пример.

    a

    В языке Basic есть аналогичный оператор, работающий по тому же правилу.

    Правило записи: If(e1,e2,e3), где e1, e2, e3 - выражения. Если e1 = true, то результат = e2, иначе результат = e3.

    Пример. If(a

    11.11. Уровень 14 (операторы присваивания)


    Порядок: ←

    Правило записи: …[e0[<op>]=] e1[<op>]= e2

    Здесь e1 - переменная (простая или с индексами), которой задается значение e2. e2 - выражение. e2 преобразуется к типу e1 (если возможно). Запись <op> является необязательной и означает выполнение указанной операции над "старым" значением e1 (в качестве второго операнда выступает e2), а затем присваивание полученного "нового" значения переменной e1. Допустимыми операциями являются: + - сложение, - – вычитание, * – умножение, / – деление, % – остаток, >>, << – сдвиг вправо или влево, &, ^, | – поразрядные операторы.

    Пример.

    a*=5; // Это эквивалентно a=a*5;

    Замечание. Выражение x*=y+1 означает x=x*(y+1), а не x=x*y+1, поскольку уровень оператора *= ниже уровня оператора +.

    В комбинированных операциях значение e1 вычисляется 1 раз, т.е. выражение a[i++]*=n; эквивалентно a[i]=a[i]*n; i=i+1; (постфиксный оператор ++), а выражение a[++i]*=n; - выражению i=i+1; a[i]=a[i]*n; (префиксный оператор ++).

    Оператор = может входить в состав выражения.

    Пример.

    while((c=getchar())!=EOF){// Это означает посимвольное чтение

    //текстового файла до его окончания

    EOF(End Of File) – символическая константа, означающая конец файла и определенная в файле stdio.h.

    Переменная e1 может быть указателем.

    Пример.

    int *x;

    .......

    x+=2; // Изменяет значение x на 4 байта.

    Замечание. Не увлекайтесь сложными выражениями, пишите проще!

    Допустимо присваивание выражения e2нескольким переменным (многократное присваивание).

    Пример.

    float x, y, z;

    short k;

    ………………….

    x=3.5; y=-2.7;

    z=k=x+=x+y; // x=4.3 k=4 z=4

    z=4, поскольку присваивание выполняется по очереди справа налево. Порядок выполнения:

    x+y //=0.8

    x+= //=4.3

    k= //=4 k-целое, дробная часть отбрасывается

    z= //=4

    В языке Basic допустимы те же операторы, кроме многократного присваивания.
    1   ...   30   31   32   33   34   35   36   37   ...   58


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