Найти в Дзене

Условный оператор If ... else в Pascal. Часть вторая

Пишем программу которая находит большее из двух чисел
Оглавление
Талантливые программисты вполне могут работать и так
Талантливые программисты вполне могут работать и так

День добрый, товарищи! В прошлой публикации мы познакомились с конструкцией оператора выбора If. Как уже удалось выяснить - это крайне важный оператор и именно он - отправная точка в программировании.

На всякий случай оставлю ссылку на предыдущую статью об операторе If:

А что, если? If ... then в Pascal

Сегодня же мы разберем более интересную задачу с использованием ифа (это сленг, это так работает). В этой статье мы познакомимся с такими командами как:

  1. and
  2. or
  3. not
  4. div
  5. mod

Но все по ходу дела. Сейчас - задача:

writeln('Ввести шестизначное число и сравнить первую и последнюю цифры. Вывести наибольшую из них.');

1. Объявляем переменные

Ничего того, чего бы мы не знали
Ничего того, чего бы мы не знали

Все по стандарту, вводим переменные. Num - наче 6-ти значное число, N1 и N2 - первая и последняя цифры. Тип данных integer, так как дробных чисел не предвидится.

2. Логические операции в конструкции If

Привет, важная тема. Следующие строки кода выглядят так, и требуют пояснения, ведь мы столкнулись с новой командой - or:

Действительно логично
Действительно логично

or по нашему - ИЛИ и поэтому, чтобы было более понятно переведем эти строки в псевдокод:

Если (число меньше 100000) ИЛИ (число больше 999999) тогда
напечатать 'Число должно содержать 6 цифр'

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

Так же стоит заметить что теперь условия Num<100000 и Num>999999 находятся в скобках, это называется экранированием. Нужно это для того чтобы программа понимала, где заканчивается одно логическое действие и начинается другое, ведь их в одном ифе может быть очень много.

2.1 Немного про остальные логические действия

Так же из частоиспользуемых логических операций существуют and и not (И и НЕ соответственно). And используется если нужно чтобы несколько переменных соответствовали своим каким либо значениям, например:

if (a < 5) and (b >12) then ...

А так же есть not - отрицание.

n := 6 // Присваиваем n значение 6
if not(n > 7) then ... // если не(n больше 7) тогда ...

3. Релакс тайм

Сейчас был объемный кусок новой информации, стоит немного передохнуть и посмотреть на кота хотя бы секунд десять

Коты это всегда хорошо
Коты это всегда хорошо

4. Находим первую и последнюю цифру

Весь блок if вместе с логической операцией or
Весь блок if вместе с логической операцией or

Первые две строчки были в предыдущих пунктах, а сейчас мы пишем блок else - иначе. Сразу ставим begin, так как в одну строку нам не уложиться, а далее видим новые команды - div и mod.

div используется чтобы найти целую часть от деления:

Например мы зададим любое шестизначное число, пусть это будет 591562. В таком случае наш Num это 591562. Num мы без остатка делим на 100000 и получаем цифру 5. Это наша первая цифра в числе. 91562 является остатком и просто отлетает в никуда. Забудем о нем.

Теперь поговорим немного о mod'е. Если див это целая часть от деления, то mod - остаток. Как раз то самое число 91562 - это наш остаток от деления. Примерчики:

371893 div 100000 = 3
371893 mod 100000 = 71893
13 mod 10 = 3
12 mod 5 = 2

Далее в примере все легко, просто выводим получившиеся значения.

5. Финал. Находим большую цифру

Не забываем о закрытии конструкции else
Не забываем о закрытии конструкции else

Думаю тут все понятно. Если больше первая цифра - то выводим ее (логично), если больше последняя то последнюю. Так же закрываем наш begin...end в конструкции else.

А вот весь код программы:

Да легко же, вроде?
Да легко же, вроде?

Сегодня была объемная статья и много новой информации, спасибо за то что посмотрели ее, так же надеюсь что вы сразу пишите данные примеры в своем Паскале. Далее, скорее всего мы еще раз остановимся на конструкции If а дальше перейдем к более сложным темам. Спасибо за просмотр.

Данный человек всегда открыт для обсуждения контента и общения с подписчиками, если найдутся какие либо вопросы то я обязательно постараюсь ответить на них.

По возможности я попросил бы подписаться. Сейчас это критически важно для развития канала. Так то!

Доброго вам всем здоровьица в эти трудные времена!