На прошлом занятии мы познакомились со сложными логическими выражениями, которые образуются из простых при помощи логических операций И, Или, Не.
В этом уроке мы разберемся зачем эти логические выражения вообще нужны и научимся применять их на практике.
А понадобятся они нам при изучении новой команды языка программирования 1С, которая называется Условная команда.
Условная команда
Если коротко, то правила и суть этой команды можно представить так:
Более подробно:
Частью условной команды являются следующие три слова: Если, Тогда и КонецЕсли.
Между словами Если и Тогда всегда находится некоторое логическое выражение, которое принимает значение Истина или Ложь (логические выражения уже должны быть вам понятны по предыдущим урокам, если это не так - изучите их повторно).
Между словами Тогда и КонецЕсли может находиться любое количество команд компьютеру (например Сообщить, ВвестиЧисло, ОткрытьЗначение и другие).
И, наконец, самое главное: команды компьютеру, заключенные между словами Тогда и КонецЕсли выполняются только в том случае, если логическое выражение, заключенное между Если и Тогда принимает значение Истина.
И если раньше: сколько мы написали команд - столько и выполнилось, то, с появлением условной команды, это оказывается не так. Теперь мы можем составлять условия для выполнения тех или иных команд компьютеру. Проявите терпение, скоро всё прояснится. Вы читаете ознакомительную версию урока, полноценные уроки находятся здесь.
Приведу примеры использования условной команды с подробным объяснением.
Затем вставьте его в свою программу и попробуйте выполнить, вводя то положительные, то отрицательные числа.
И, наконец, загляните в объяснение, чтобы узнать - верно ли вы догадались.
Объяснение
Первые две строчки вам должны быть знакомы по прошлым занятиям.
Дальше следует условная команда, условием которой является логическое выражение ЧислоОтПользователя < 0. Если число, введенное пользователем, действительно меньше нуля, то это выражение принимает значение Истина, иначе Ложь.
Идем дальше. Между словами Тогда и КонецЕсли находится всего одна команда ОткрытьЗначение, которая, как следует из правила для условной команды, выполнится только в том случае, если логическое выражение окажется верным.
А значит, сообщение для пользователя "Вы ввели отрицательное число" выведется только, если значение, введенное пользователем, окажется отрицательным. Иначе ничего не выведется. Что и требуется логикой программы.
В этом примере мы вводим имя пользователя и, если оно равно "Александр", то выводим сообщение "Вас зовут Александр!".
Пример №3.
ИмяПользователя ="";
ВвестиСтроку(ИмяПользователя);Если ИмяПользователя <>"Александр"Тогда
ОткрытьЗначение("Ваше имя точно не Александр!");
ОткрытьЗначение("На самом деле, вас зовут "+ ИмяПользователя);КонецЕсли;
В этом примере мы вводим имя пользователя и, если оно не равно "Александр", то выводим сообщение "Ваше имя точно не Александр!" и следом выводим настоящее имя пользователя.
Не правда ли здорово!? Вот так потихоньку мы научили компьютер не просто складывать и умножать. Мы дали возможность ему "думать" и принимать решения. Это, конечно, ещё не искусственный интеллект, но всё же
Продолжим разбирать примеры. Вы читаете ознакомительную версию урока, полноценные уроки находятся здесь. Не забывайте выполнять их на компьютере.
Пример №4.
ЧислоОтПользователя =0;
ВвестиЧисло(ЧислоОтПользователя);Если(ЧислоОтПользователя >0) И (ЧислоОтПользователя <10)Тогда
ОткрытьЗначение("Вы ввели число между 0 и 10.");КонецЕсли;
Отличие этого примера лишь в том, что тут используется сложное логическое выражение, составленное при помощи логической команды И.
Таким образом, сообщение "Вы ввели число между 0 и 10." будет выведено пользователю тогда и только тогда, когда введенное число одновременно и больше нуля и меньше десяти.
Расширенная форма условной команды
Разберём расширенную форму условной команды на примере.
Пользователь вводит число. И в случае, если введенное значение больше нуля, программа выводит строку "Вы ввели положительное число", иначе "Вы ввели 0 или отрицательное число".
Запустите этот пример на компьютере несколько раз. Вы читаете ознакомительную версию урока, полноценные уроки находятся здесь. Вводите то положительные, то отрицательные значения. Как видите, компьютер прекрасно справляется с задачей определения знака введенного числа. И всё это благодаря использованию нами логических выражений!
А теперь пройдите тест по примеру №5, описанному выше:
Начать тест
1. Логическим выражением от значения которого зависит работа условного оператора является
2. Команда ОткрытьЗначение("Вы ввели положительное число") выполнится, если
3. Команда ОткрытьЗначение("Вы ввели 0 или отрицательное число") выполнится, если
4. Если пользователь ввёл число 100, то условие ЧислоОтПользователя > 0 примет значение
5. Если бы мы хотели вывести дополнительное сообщение, после того, когда пользователь ввёл положительное число
Домашние задания
Задание №18. Напишите программу, которая вводит от пользователя два числа. Если первое число больше или равно второму, то выводит "Первое число больше или равно второму", иначе "Второе число больше первого".
Эталонное решение. Сначала пишем код сами, проверяем на компьютере (как и все примеры программ из уроков), только потом сверяемся
Задание №19 Напишите программу, которая вводит от пользователя два числа. Если оба числа положительные, то выводит сумму этих чисел, иначе выводит произведение этих чисел.
Эталонное решение. Сначала пишем код сами, проверяем на компьютере (как и все примеры программ из уроков), только потом сверяемся
Дополнение
Данный материал рассчитан на начинающих разработчиков. Если он показался вам слишком лёгким - рассмотрите другие примеры использования условной команды в 1С (ссылка).
Для учеников
Уровень сложности уроков идёт снизу вверх. Поэтому старайтесь заниматься последовательно, ничего не пропуская и не откладывая на потом.
Обязательно выполняйте все тесты и домашние задания, старайтесь улучшить свои результаты. Сверяйтесь с эталонными решениями только после самостоятельного выполнения задач.