День добрый, товарищи! В прошлой публикации мы познакомились с конструкцией оператора выбора If. Как уже удалось выяснить - это крайне важный оператор и именно он - отправная точка в программировании.
На всякий случай оставлю ссылку на предыдущую статью об операторе If:
А что, если? If ... then в Pascal
Сегодня же мы разберем более интересную задачу с использованием ифа (это сленг, это так работает). В этой статье мы познакомимся с такими командами как:
- and
- or
- not
- div
- 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. Находим первую и последнюю цифру
Первые две строчки были в предыдущих пунктах, а сейчас мы пишем блок 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. Финал. Находим большую цифру
Думаю тут все понятно. Если больше первая цифра - то выводим ее (логично), если больше последняя то последнюю. Так же закрываем наш begin...end в конструкции else.
А вот весь код программы:
Сегодня была объемная статья и много новой информации, спасибо за то что посмотрели ее, так же надеюсь что вы сразу пишите данные примеры в своем Паскале. Далее, скорее всего мы еще раз остановимся на конструкции If а дальше перейдем к более сложным темам. Спасибо за просмотр.
Данный человек всегда открыт для обсуждения контента и общения с подписчиками, если найдутся какие либо вопросы то я обязательно постараюсь ответить на них.
По возможности я попросил бы подписаться. Сейчас это критически важно для развития канала. Так то!
Доброго вам всем здоровьица в эти трудные времена!