Операции отношения
Операндами операций отношения могут быть выражения числового или символьного типа, а также даты. Причем типы операндов должны совпадать. Например: 2 = 5 // Вернет ложь "Строка 2">"Строка 1" // Вернет истина 2<'23.12.01'> // Это неверное выражение отношения, так как его операнды имеют разный тип Также операндами операций = и <> могут быть переменные агрегатного типа. Например: тЗнач1 = СоздатьОбъект("ТаблицаЗначений"); сСотр = СоздатьОбъект("Справочник.Сотрудники"); тЗнач2 =тЗнач1; // Круглые скобки в ниже записанном логическом выражении обязательны если (тЗнач1 = тЗнач2) и (тЗнач1 = сСотр) тогда Сообщить("Да"); иначе Сообщить("Нет"); конецЕсли; Если операция отношения выполняется над строками, то они сравниваются посимвольно до тех пор, пока не будут обнаружены несовпадающие символы. Символ сим_1 больше сим_2, если код символа сим_1 больше кода символа сим_2. Если строки-операнды операции отношения имеют разную длину и если есть необходимость продолжить сравнение символов строк-операндов (все предыдущие сравниваемые символы оказались равными), то в качестве недостающего символа более короткой строки используется символ с нулевым кодом. Например: " Строка" > "Строка 1" // Вернет ложь Логические операции Применяются следующие логические операции: НЕ - логическое НЕ (отрицание); И - логическое И; ИЛИ - логическое ИЛИ. Операндами логических операций должны быть логические выражения. В табл. 2 приведены результаты логических операций над логическими выражениями ЛВ1 и ЛВ2, принимающими значения истина (И) или ложь (Л). Таблица 2 Таблица истинности
Приоритет выполнения операций Все операции 1С выполняются в выражении слева направо в соответствии с их приоритетом (старшинством), то есть, если две последовательные операции имеют равный приоритет, первоначально выполняется левая операция. Подвыражения, заключенные в круглые скобки, вычисляются в первую очередь. В табл. 3 операции 1С расположены в порядке убывания их приоритета. Приоритет выполнения операций
Пример. Вычислить результат логического выражения (х / а = 1) или (б / (а + б) < 1) и не (б = а) или (х <> 6) при х = 6.0, а = 2.0 и б=3.0. Вычислив результат операций подвыражений, заключенных в круглые скобки, получим: ложь или истина и не ложь или ложь. Далее выполняем пошагово логические операции с учетом их приоритета. После выполнения не ложь: ложь или истина и истина или ложь. После выполнения истина и истина: ложь или истина или ложь. Окончательный результат: истина. 42 Работа с массивами. Примеры. Массив - это объект данных, содержащий несколько значений, доступ к которым осуществляется по их номеру (индексу). Число элементов массива называется его размером. Размером массива может быть только целочисленная буквальная константа. § Объявляем одномерный массив (вектор) а из пяти элементов. перем а[5]; Элементы массива имеют следующие имена: а[1], а[2], а[3], а[4] и а[5]. В этих именах величины 1 - 5 - индексы элементов массива. § Массив считается определенным, если заданы значения всех его элементов. Для задания начальных значений элементов массива (инициализации массива) можно использовать: 1) цикл для ин = 1 по 5 цикл а[ин] = 1; // Теперь все элементы массива равны единице конецЦикла; 2) присваивание а[2] = 3; // изменят значение 2-го элемента массива а а[5] = -4.7; // изменят значение 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] = табл; // Элемент другого агрегатного типа
§ Массив не может в качестве элементов содержать другие массивы. § Массив может быть формальным параметром программного компонента (процедуры или функции). При этом размер массива не указывается, а квадратные скобки сохраняются. Для определения размера переданного процедуре (функции) массива используется встроенная функция Разм. Например: // раздел переменных перем ин, а[16], размА; // раздел процедур и функций процедура ИнициализацияМассива(а[]) для ин = 1 по размА цикл а[ин] = ин; // Теперь все элементы массива проинициализированы конецЦикла; а[8/3] = -5; а[3]="Строка"; а[4]='20.12.07'; конецПроцедуры // ИнициализацияМассива процедура Выполнить() // Вызов процедуры, устанавливающей начальные значения элементов массива // Ее фактическим параметром является имя массива ОчиститьОкноСообщений(); ИнициализацияМассива(а); для ин=1 по размА цикл Сообщить(а[ин]); конецЦикла; конецПроцедуры // Выполнить
// раздел основной программы размА = Разм(а); // Встроенная функция Разм вернет размер массива а
43 Встроенные функции для разных типов данных. Математические функции. Функции для строк математические функции применяются с числовыми типами данных. Они имеют в качестве аргументов числовые выражения и возвращают (если при их исполнении не возникло ошибки) некоторое число.
|