Статья #9. Калькулятор #2. Умножаем, делим и вычитаем

Статья #9. Калькулятор #2. Умножаем, делим и вычитаемВ прошлый раз я написал калькулятор, который умел только складывать два числа. Да-да, именно так — этот шедевр программирования был настолько прост, что даже бабушка на даче могла его понять: ввёл два числа, получил их сумму. Но вот сегодня я решил прокачать своего железного гения и добавить ему немного интеллекта — теперь он умеет четыре основных арифметических действия!

Представьте себе, калькулятор с амбициями!

Итак, главная функция программы — место, где магия начинается. В 38-й строке объявляются две переменные a и b типа float. Для тех, кто не в курсе: float — это такой тип данных с плавающей точкой (или запятой, если вам так удобнее), занимает 4 байта памяти и может принимать значения от –2 147 483 648.0 до 2 147 483 647.0. Звучит внушительно, правда?

Почти как зарплата программиста после пятого проекта! А в 39-й строке объявляется переменная c типа char — это целочисленный тип данных для символов. То есть каждый символ — это маленький числовой агент в диапазоне от 0 до 255.

По сути, это как секретный агент под прикрытием: выглядит как буква или знак, а внутри — число.

Дальше, с 41-й по 48-ю строку происходит ввод чисел и арифметического действия. Тут главное не перепутать знак «+» со своей любимой плюшкой из холодильника! В 50-й строке вызывается функция calc, которой передаются два числа и знак операции. Если калькулятор был бы человеком, то calc была бы его мозгом — именно она решает, что делать дальше.

А теперь самое вкусное — код функции calc!

Наш герой должен уметь различать арифметические действия: если введён «+», то сложить два числа; если «-», то вычесть одно из другого; если «*», то умножить; если «/», то разделить (но осторожно с делением на ноль — тут можно получить не просто ошибку, а настоящий взрыв мозга). Всё это делается при помощи конструкции switch case — словно судья на конкурсе талантов: проверяет каждого участника (переменную c) и решает судьбу чисел a и b.

Вот представьте себе такую сцену: вы вводите знак операции «+», switch case говорит: «Ага! Это плюс!» И тут же выполняется сложение двух чисел с громким аплодисментом в консоли.

После этого break говорит: «Ну всё, хватит цирка!» и выходит из конструкции. А если же вы решите сыграть злую шутку и введёте какой-нибудь непонятный символ вроде «@» или «#», то сработает default — наш строгий охранник порядка в коде, который скажет вам: «Эй!

Что за фигня? Я таких знаков не понимаю!» И выдаст сообщение об ошибке.

Конечно же, мой калькулятор далеко не идеален. Нет проверки на правильность ввода чисел (то есть если вы вдруг решите написать вместо цифры слово «пельмени», программа будет выглядеть примерно так же растерянной, как я на первом собеседовании). После каждого вычисления приходится запускать программу заново — да-да, никакого автосохранения или истории операций!

Такой себе ретро-калькулятор для настоящих ценителей олдскула.

Но знаете что? Программирование для меня — это хобби и отличная тренировка для мозга! Ведь писать код — всё равно что решать головоломки или играть в шахматы с самим собой (только королём здесь выступает баг).

Если вы тоже считаете так же и хотите следить за моими приключениями в мире кода (а может быть даже посмеяться над моими ошибками), ставьте лайк и подписывайтесь на блог!

Ах да, чуть не забыл рассказать анекдот про программиста:

— Почему программисты путают Хэллоуин и Рождество?

— Потому что Oct 31 = Dec 25!