Ввод задач на калькуляторе Cправка Photomath
Я бы начал с того, дабы внес начальный инпут внутрь обстановка цикла и убрал бы сравнение, этак словно сам итог присвоения и будет либо 0 (False) либо не ноль и тогда цикл отработает. Это избавит нас от двух лишних инпутов и от проверки завершения программы по вводу ноля. Заменил бы If/elif на match/case для красоты и заменил бы проверку деления на ноль на однострочник. Я, правда, слегка понимаю какое применение у таких калькуляторов на практике, т.к. Во-первых нету проверки вводимых символов (нужно ограничить ввод), нету проверки на ошибки (например, деление на ноль), нет десятичного разделителя. В отдельной функции для каждой операции, смысла нету - потому что при смене операции в интерфейсе, в алгоритме меняется прощай одно действие... И если мы разделим логику на 4 функции, то не сможем избежать дублирования кода остальных, общих действий (нарушим принцип DRY). Например, при нажатии на кнопку оператора, соответственно устанавливаем переменную текущего оператора.
Поскольку вы учите С++, вместо printf и scanf лучше использовать cout и cin. В них не нужно заботиться о формате принимаемого и выводимого значений, плюс нету эдакий проблемы, что попадание в буфер ввода не того символа. В вашем случае вместо %d для считывания значений типа float нужно использовать %f, а для считывания символа %c. Во времена работы вашего кода после поправки форматирования у меня, например, вместо считывания символа операции считывался знак новой строки, и ввод переходил зараз на второе число. Для избежания этого следовало бы очистить буфер ввода командой fflush(stdin). Однако все эти вопросы решаются использованием cout и cin. Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS. Нажимая «Отправить ответ», вы соглашаетесь с условиями пользования и подтверждаете, Watch Shemale Hentai Videos что прочитали политику конфиденциальности.
Ну и я бы вместо лесенки if'ов использовал switch. Если вы получили неверный результат или хотите попросить, чтобы мы расширили потенциал калькулятора, отправьте отзыв. Символ градуса находится под кнопкой тригонометрии (sin, cos, tan, cot) верху клавиатуры. Решение сквозь switch - в принципе, самое простое (исключая вариант eval()) и распространенное.
Затем, при нажатии на кнопку равняется считаем итог в зависимости от текущего оператора. Интерфейс и распределения кнопок умею вставить, однако не успеваю построить функцию, которая изменяет оператор в переменной result в зависимости от избранной кнопки операции. Чтобы упростить код и избежать повторений, можно упростить проверку оператора в цикле while и избежать лишних условий внутри цикла. Также можно спрятать лишние input() и использовать только одинёшенек input() для оператора и чисел. Требуется использовать присвоение переменной в case и позднее вернуть смысл. С помощью стрелок в верхнем ряду вы можете перемещать курсор по тексту проблемы. Используйте кнопку ↵, если вы хотите перешагнуть на новую строку (например, при вводе систем уравнений). Но всё-таки мне хотелось бы узнать, можно ли сочинить функцию для калькулятора, опираясь на код, мной написанный до сих пор. Реализуйте безыскусный калькулятор, каковой позволяет выполнять операции сложения, вычитания, умножения и деления двух целых чисел.