Главная » 1С Предприятие » ЛОГИЧЕСКИЕ ОПЕРАЦИИ (1С Предприятие)

0

Применяются следующие логические операции:

НЕ логическое НЕ (отрицание); И логическое И;

ИЛИ логическое ИЛИ.

Операндами    логических   операций    должны     быть    логические     выражения. В табл. 2.5  приведены  результаты   логических операций   над  логическими   выражениями ЛВ1 и ЛВ2, принимающими значения истина (И) или ложь (Л).

Таблица истинности

Таблица 2.5

ЛВ1 ЛВ2 ЛВ1 И ЛВ2 ЛВ1 ИЛИ  ЛВ2 НЕ ЛВ1
И И И И Л
И Л Л И Л
Л И Л И И
Л Л Л Л И

Операция отрицания является унарной операцией, располагаемой слева от операнда. Все остальные рассмотренные операции являются бинарными.

2.6.5. ПРИОРИТЕТ ВЫПОЛНЕНИЯ ОПЕРАЦИЙ

Все операции  1С  выполняются  в  выражении  слева направо  в соответствии   с  их приоритетом  (старшинством),  то  есть,  если  две последовательные  операции  имеют равный  приоритет, первоначально  выполняется  левая операция.  Подвыражения,  заключенные в круглые скобки, вычисляются в первую очередь. В табл. 2.6 операции  1С расположены в порядке  убывания их приоритета.

Приоритет выполнения операций

Таблица 2. б

%            *,/                +,               НЕ                 И               ИЛИ               <, <=, >, >=, =, <>

Замечание.  Каждая ячейка таблицы  содержит операции  с равным  приоритетом.

Пример:

8 % 2 * 3 // Вернет  0
8 % (2 * 3) // Вернет  2

Поскольку логические операции  старше   операций  отношения, то  ошибочно  следующее  логическое  выражение:

3>2и4< 5                                  //                     Так неверно

так  как  первоначально оценивается логическое подвыражение 2и 4

операнды которого не  есть  истина  или ложь. А это  неверно.

Зато  верно логическое  выражение

(3 > 2) и (4 < 5)                            //                Это истина Пример.  Вычислить результат  логического  выражения

(х / а = 1) или (б / (а + б) < 1) и не (б = а) или (х <> 6) при х = 6.0, а = 2.0 и б=3.0.

Вычислив результат  операций  подвыражений, заключенных  в  круглые  скобки,  по лучим:

ложь или истина и не ложь или ложь.

Далее  выполняем пошагово  логические операции  с  учетом  их  приоритета.  После  выполнения не ложь:

ложь или истина и истина или ложь.  После  выполнения  истина  и  истина: ложь  или истина или ложь. Окончательный результат: истина.

2.7.    МАССИВЫ

Массив  это  объект  данных, содержащий  несколько  значений, доступ  к  которым осуществляется по  их номеру  (индексу).

Число элементов  массива называется  его размером.  Размером массива может  быть только  целочисленная буквальная  константа.

Оператор перем а[5];

объявляет одномерный массив  (вектор)  а из пяти элементов.  Элементы массива  имеют следующие имена: а[1], а[2],  а[3],  а[4] и  а[5]. В этих именах величины 1-5   индексы элементов  массива.

Массив  считается  определенным,  если  заданы   значения  всех его  элементов.  Для задания  начальных значений  элементов  массива (инициализации  массива)  возможен следующий  цикл:

для ин = 1 по 5 цикл

а[ин] = 1;                       //              Теперь  все элементы массива равны единице конецЦикла;

Присваивания

а[2] = 3;

а[5] = -4.7;

изменят соответственно  значения  2-го  и  5-го  элементов массива а.

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

а[6 / 2] = 9.1;                        //               Меняем значение 3-го элемента массива а

Если  индексное  выражение массива вычисляется с нецелым значением, то в  каче стве индекса берется  целая  часть  этого  значения.  Например:

а[6     /   5]     =   9.1;     //    Меняем значение     1    -го     элемента    массива    а

Значение  индекса  не  должно  выходить за границы  массива. Так, при  работе  с  ранее объявленным массивом а из пяти элементов ошибочны  операторы

а[0] = 5; // Индекс не может быть меньше числа 1
а[6] = 9; // Индекс не может быть больше  числа 5

Элементы одного  и того же массива могут быть разного типа. Например:

а[1] = 5; //Элемент числового типа
а[3] = “Строка”; // Элемент символьного типа

а[5] =           ‘25.11.01’;                //         Элемент типа Дата Элементы массива могут быть  агрегатного типа.  Например:

сСотр= СоздатьОбъект(“Справочник.Сотрудники”);

табл = СоздатьОбъект(“Таблица”);

а[1] = 5; // Элемент числового типа
а[3] = сСотр; // Элемент агрегатного типа
а[5] = табл; // Элемент другого агрегатного типа

Массив  не может  в качестве элементов  содержать другие массивы.

Массив   может   быть   формальным  параметром  программного  компонента   (процедуры  или функции). При  этом  размер  массива не  указывается, а квадратные  скобки сохраняются. Для  определения  размера  переданного  процедуре (функции) массива используется встроенная  функция  Разм.

Пример:

процедура ИнициализацияМассива(а[ ]) перем ин, размА;

размА = Разм(а);          //             Встроенная функция Разм  вернет размер массива а

для ин = 1 по размА цикл

а[ин] = 1;                   //           Теперь  все элементы массива равны единице конецЦикла;

а[3] = -5;

конецПроцедуры // ИнициализацияМассива

процедура  Выполнить() перем а[5];

// Вызов процедуры, устанавливающей  начальные значения  элементов массива

// Ее фактическим  параметром является  имя массива ИнициализацияМассива(а);

конецПроцедуры // Выполнить

Источник: Бартеньев О. В. 1С:Предприятие:  программирование для  всех.  Базовые объекты и расчеты на одной дискете. М.: Диалог-МИФИ, 2005. 464 с.

По теме:

  • Комментарии