Добрый день, товарищи! в сегодняшней публикации мы снова окунемся в конструкцию If, но на этот раз в ее более сложный вариант исполнения. Мы разберем не задачу, а пример программы, демонстрирующий работу оператора выбора в Pascal.
1. Пример кода и листинг
Для того, чтобы вы могли попробовать работу этого кода я дам листинг(программистский термин, если коротко - то это просто код программы), пожалуйста скопируйте его в свое приложение Паскаля.
var a,b:integer;
begin
write('Первое число: ');
read(a);
write('Второе число: ');
read(b);
if (a < 10) and (b > 10) then
begin
if (a < 5) or (b > 15) then
writeln('Вариант 1. a < 5 ИЛИ b > 15')
else
writeln('Вариант 2. a < 10 И b > 10');
end
else
begin
if (a = b) or ((a > 10) and (b < 10)) then
writeln('Вариант 3. а = b ИЛИ (а > 10 И b < 10)')
else
writeln('Вариант 4. (а < 10 И b < 10) ИЛИ (а > 10 И b > 10) И (a ≠ b)');
end;
end.
Уже на скриншоте видно, что структура кода несколько сложнее наших предыдущих программ. Это не страшно, в коде не так сложно разобраться, и сейчас я поясню о нем более подробно.
2. Разбираемся, что происходит
Подразумевается, что код уже у вас перед глазами)
Объявляем две переменные, пользователь вводит их. А вот далее начинаются условия. Эта программа состоит из главного If а так же вложенного условия, давайте посмотрим, как программа будет работать.
Здесь мы задаем условие для введенных пользователем чисел. Предположим он вводит 3 и 14. Первая конструкция If выполняется, так как 3 меньше 10 И 14 больше 10.
Смотрим дальше - a у нас равняется 3, 3 меньше 5, условие верно. Но b равна 14, а это меньше 15. Вывод - условие не выполняется, так? Нет, не так. В этих конструкциях присутствуют логические операции И и ИЛИ, и если в первом случае необходимо, чтобы верны были оба условия первого If'a, в случае же операции ИЛИ необходимо чтобы хотя бы одно условие выполнялось, что и делает (b > 15).
Синтаксические условности, такие как begin ... end внутри Ифа, отсутствие точки с запятой перед else и условия конструкции, экранированные скобками разбирались в предыдущих статьях об операторе If, поэтому сейчас останавливаться на них я не буду. Вот ссылка на предыдущую статью, где подробнее написано об этом:
Продолжаем изучать конструкцию If в Pascal
Если же второе условие не выполнится - нам выпадет второй вариант развития событий.
3. Вторая часть - else
Если наш главный If оказался ложным - в дело вступает оператор else.
Первое условие будет выполнено, если а будет равно b:
Или, если а окажется больше 10, а b окажется меньше 10:
И, наконец, если все предыдущие условия будут ошибочны нам выпадет последний, четвертый вариант:
Наши значения не равны друг другу, а так же оба больше чем 10, поэтому все что нам остается - вариант 4.
Думаю на этом пора заканчивать, надеюсь вы сами поэкспериментировали с предложенным кодом и нашли что-нибудь интересное. Если объяснения работы кода не совсем понятны - обратитесь в комментарии по этому поводу, пожалуйста. Буду рад, если статья оказалась полезной.
Данный человек всегда открыт для обсуждения контента и общения с подписчиками, если найдутся какие либо вопросы то я обязательно постараюсь ответить на них.
По возможности я попросил бы подписаться. Сейчас это критически важно для развития канала. Так то!
Доброго вам всем здоровьица в эти трудные времена!