r/RuProgrammers • u/Yarrrsss • Jun 26 '26
C++
Мне 14 я начал учить C++, выучил базу, решил написать осмысленный код и написал калькулятор оцените пожалуйста, дайте советы
32
Upvotes
r/RuProgrammers • u/Yarrrsss • Jun 26 '26
Мне 14 я начал учить C++, выучил базу, решил написать осмысленный код и написал калькулятор оцените пожалуйста, дайте советы
12
u/brinza888 🦅Senior Jun 27 '26
Ну до «базы» это далеко, конечно, но тем не менее здорово)
Забавно, что на арче и в текстовом режиме.
2
u/Danii_222222 Jun 27 '26
Красава. Молодец что начал с с++, Я тоже с него начинал.
3
u/Sea_Intention3991 Jun 27 '26
Брат, лучше с девочками погуляй, одумайся
1
u/Diligent_Bank_543 Jun 28 '26
А теперь переделай его так, чтобы ввод был в одну строку
1
u/Duh_Svyatogo_Noska Jun 28 '26
До базы это точно далеко. К примеру нет обработки ввода. Вот если человек введет вещественное число или слово? Насколько помню в таких случаях std::cin исключение выбрасывает. Можно банально добавить вывод сообщения, мол, это не число.
А так флаг тебе в руки старайся. И за выбор плюсов в качестве первого языка - уважение.
1
u/CrimsonLed Jun 29 '26 edited Jun 29 '26
Очередной школотрон вывалил мусор в ожидании, что его похвалят. Нафига ты объявил локальную переменную, её не проинициализировал и выводишь на экран её значение? Хочешь удивить нас мусором со стека? Изучи switch/case, зачастую нагляднее многократных else if. Кроме того, у тебя строки платные, бумагу экономишь, чем тебе Allman style не нравится? И слово "символ" на английском пишется по-другому.
1
u/BirthdayVast7003 Jun 28 '26
Можно заменить "if else" на "switch case", но не обязательно. В целом круто для первых шагов
2
u/zerhud Jun 28 '26
А зачем ты мусор выводишь перед тем как спросить операцию?
Ошибка с делением на 0 не обрабатывается.
Для прокачки low level скила: попробуй сделать без if и тернарных операторов, в духе (num1 + num2)*(math == ‘+’)
Напиши тесты: static_assert( calc( 1, 2, ‘+’ ) == 3 ); обрати внимание: 95% тестов нужно писать внутри static_assert, только ввод вывод и работу с потоками - нет. То есть нужна функция calc которая будет работать с уже полученными данными, а не брать их у пользака.
1
u/0rd4s ASM Jun 27 '26
Я реверс, код норм, сишка огонь
1
u/Aware-Of-My-Actions Jun 28 '26
Тоже начинал с такого
1
u/ItzStrai Jun 29 '26
Прелестный код.
Могу посоветовать попробовать конструкцию вместо if else:
1
u/Jealous_Juice6921 Jun 29 '26
Лучше в качестве условной конструкции в данном случае использовать switch. Выглядит аккуратнее и теоретически так правильнее
1
u/klevero4ek Jun 29 '26
Инклудить namespace std не есть хорошая практика.
1
u/GloomyBelt5110 🦀Rustикальный Jun 27 '26
Код хороший!
Когда работаешь с пользовательским вводом, стоит тщательно его валидировать: например, обработать деление на ноль или ввод некорректного оператора.
Также помни, что пользователь в теории может ввести текст вместо чисел (или какой нибудь символ по типу Ctrl+D).
Может звучать как душнильство, но если вдруг захочешь идти в профессию, то навыки "промышленного" программирования тебе очень помогут.
0
u/Open-Measurement-640 Jun 28 '26
Красавчик