На прошлом занятии мы научились давать имена и вводить их значения от пользователя.
Наберитесь сил и терпения. Занятия №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. Укажите для каждого логического выражения его результат - Истина или Ложь.
"Венера" = "Юпитер"
"Венера" <> "Юпитер"
123 = 321
123 < 321
123 <= 321
123 <= 123
'20000101' <> '20140101'
'20000101' = '20000101'
'20140101' > '20120101'
25 + 25 = 50
2 * (10 + 10) > 50
"Юрий" + " Гагарин" = "Юрий Гагарин"
Попытайтесь ответить на все вопросы самостоятельно. Вы читаете ознакомительную версию урока, полноценные уроки находятся здесь. Затем посмотрите ответы ниже и попытайтесь разобраться, если где-то ошиблись.
Ответы
"Венера" = "Юпитер" (Ложь, строки не равны между собой, а в выражении утверждается, что равны).
"Венера" <> "Юпитер" (Истина, строки не равны между собой, как и утверждается в выражении).
123 = 321 (Ложь, так как числа не равны между собой, а в выражении утверждается, что равны).
123 < 321 (Истина, так как 123 меньше 321, как и утверждается в выражении).
123 <= 321 (Истина, так как 123 меньше 321, а данное утверждение истинно, если левое число меньше или равно правому).
123 <= 123 (Истина, так как 123 равно 123, а данное утверждение истинно, если левое число меньше или равно правому).
'20000101' <> '20140101' (Истина, так как левая дата 01.01.2000 не равна 01.01.2014, как и утверждается в выражении).
'20000101' = '20000101' (Истина,так как левая дата 01.01.2000 равна 01.01.2000, как и утверждается в выражении).
'20140101' > '20120101' (Истина, так как первое января 2014 года больше первого января 2012 года, как и утверждается в выражении).
25 + 25 = 50 (Истина, так как 25 плюс 25 действительно равно пятидесяти, как и утверждается в выражении).
2 * (10 + 10) > 50 (Ложь, так как результат левого выражения равен 40, а 40 меньше 50, хотя в утверждении говорится обратное).
"Юрий" + " Гагарин" = "Юрий Гагарин" (Истина, так как сумма строк "Юрий" и " Гагарин" образует одну строку "Юрий Гагарин", которая равна строке справа, как и утверждается в выражении).
Заставим считать компьютер
Но, что же мы сами-то считаем "верно" или "неверно ". Ведь у нас под рукой компьютер! Давайте возложим эту задачу на него, а заодно и проверим себя.
К примеру, проверим выражение 2 * (10 + 10) > 50. Для этого напишем такую программу:
Сообщить(2*(10+10)>50);
Если мы запустим её, то компьютер выдаст "Нет", что означает - результат равен Ложь.
Как он посчитал это выражение?
Компьютер увидел команду Сообщить.
Посмотрел, что за параметр мы передаем этой команде.
Увидел, что в качестве параметра указано логическое выражение 2 * (10 + 10) > 50.
Стал вычислять результат логического выражения.
Увидел, что выражение состоит из левой части 2 * (10 + 10), правой части 50 и знака больше между ними.
Посчитал результат левой части и выяснил, что он равен сорока.
Снова взглянул на выражение, только в уже упрощенном виде 40 > 50, а так как 40, конечно же, меньше 50, то он вывел "Нет".
Задание №15. Вычислите все примеры логических выражений из предыдущего задания на компьютере.
Например, выражение "Венера" = "Юпитер", значение которого, как мы выяснили, равно Ложь.
Сообщить("Венера"="Юпитер");
Компьютер при запуске выводит значение "Нет", что означает: результат действительно равен Ложь и мы совершенно верно вычислили его сами.
Эталонное решение. Сначала пишем код сами, проверяем на компьютере (как и все примеры программ из уроков), только потом сверяемся
Пройдите тест
Начать тест
1. Данные логического типа могут принимать одно из следующих значений
2. Логическое выражение 1000 = 1000 имеет следующее значение
3. Логическое выражение "1С" <> "1С" имеет следующее значение
4. Логическое выражение 100 + 100 = 200 имеет следующее значение
5. Логическое выражение 10 >= 100 имеет следующее значение
6. Логическое выражение '19000101' < '20000101' имеет следующее значение
7. Логическое выражение 100 / 2 = 3 имеет следующее значение
8. Операция сравнения <> означает
9. Логическое выражение А < Б истинно тогда и только тогда, когда
10. Логическое выражение А >= Б истинно тогда и только тогда, когда
Для учеников
Уровень сложности уроков идёт снизу вверх. Поэтому старайтесь заниматься последовательно, ничего не пропуская и не откладывая на потом.
Обязательно выполняйте все тесты и домашние задания, старайтесь улучшить свои результаты. Сверяйтесь с эталонными решениями только после самостоятельного выполнения задач.