[Alimir_BootModal_Login]

Внутренний язык программирования 1С 8.3 для начинающих программистов: простые логические выражения в 1С

Автор уроков и преподаватель школы: Владимир Милькин

На прошлом занятии мы научились давать имена и вводить их значения от пользователя.

Наберитесь сил и терпения. Занятия №5 и №6 будут трудными, но очень важными для дальнейшего понимания программирования в 1С. Поэтому, если хоть что-то останется непонятным или нераскрытым - перечитывайте, вдумывайтесь, задавайте вопросы.

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

Сегодня, к уже изученным типам данных (строка, число и дата) добавим ещё один - логический тип. Он может принимать всего два значения: Истина или Ложь.

Значение логического типа (Истина или Ложь) является результатом некоторого логического выражения.

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

Операции сравнения бывают следующие:

ОперацияОбозначение в языке 1С
Равно=
Не равно<>
Больше>
Меньше<
Больше или равно>=
Меньше или равно<=

Думаю, интуитивно понятно, что обозначает каждая из операций.

Читается, например, так:

  • 1 = 1  ("один равен одному").
  • 4 <> 5 ("четыре не равно пяти")
  • 3 > 1 ("три больше одного").

Обращаю ваше внимание, что перечисленные три примера логических выражений принимают значение Истина, так как все они верны.

Разберем на примере:

Пример логического выраженияРезультатОбъяснение
1 = 2Ложьневерно, единица на самом деле не равна двойке
1 = 1Истинаверно, единица равна единице
выражение "Земля" <> "Луна"Истинаверно, строка "Земля" не равна строке "Луна"
'18610101' <> '18610101'Ложьневерно, дата 01.01.1861 на самом деле равна дате 01.01.1861
100 > 50Истинаверно, сто действительно больше пятидесяти
10 < 0Ложьневерно, на самом деле десять больше нуля

Задание №14. Укажите для каждого логического выражения его результат - Истина или Ложь.

  1. "Венера" = "Юпитер"
  2. "Венера" <> "Юпитер"
  3. 123 = 321
  4. 123 < 321
  5. 123 <= 321
  6. 123 <= 123
  7. '20000101' <> '20140101'
  8. '20000101' = '20000101'
  9. '20140101' > '20120101'
  10. 25 + 25 = 50
  11. 2 * (10 + 10) > 50
  12. "Юрий" + " Гагарин" = "Юрий Гагарин"

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

Ответы

Заставим считать компьютер

Но, что же мы сами-то считаем "верно" или "неверно ". Ведь у нас под рукой компьютер! Давайте возложим эту задачу на него, а заодно и проверим себя.

К примеру, проверим выражение 2 * (10 + 10)  > 50.
Для этого напишем такую программу:

Сообщить(2 * (10 + 10) > 50);

Если мы запустим её, то компьютер выдаст "Нет", что означает - результат равен Ложь.

Как он посчитал это выражение?

  1. Компьютер увидел команду Сообщить.
  2. Посмотрел, что за параметр мы передаем этой команде.
  3. Увидел, что в качестве параметра указано логическое выражение 2 * (10 + 10) > 50.
  4. Стал вычислять результат логического выражения.
  5. Увидел, что выражение состоит из левой части 2 * (10 + 10), правой части 50 и знака больше между ними.
  6. Посчитал результат левой части и выяснил, что он равен сорока.
  7. Снова взглянул на выражение, только в уже упрощенном виде 40 > 50, а так как 40, конечно же, меньше 50, то он вывел "Нет".

Задание №15. Вычислите все примеры логических выражений из предыдущего задания на компьютере.

Например, выражение "Венера" = "Юпитер", значение которого, как мы выяснили, равно Ложь.

Сообщить("Венера" = "Юпитер");

Компьютер при запуске выводит значение "Нет", что означает: результат действительно равен Ложь и мы совершенно верно вычислили его сами.

Эталонное решение. Сначала пишем код сами, проверяем на компьютере (как и все примеры программ из уроков), только потом сверяемся

Пройдите тест

Начать тест