Ветвления в C++
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.
Здравствуйте, нужна помощь в ветвлениях. Использовал switch и if....else. После открытия калькулятора по физике всё идёт нормально, но когда я уже в нём выбираю раздел для вычислений, при введении 2, открывается 1 раздел. Помогите пожалуйста.
Из твоего кода я понял, что из трех калькуляторов работает только один — по физике и в нем работают только два раздела 1-й и 2-й.
Вся соль в тоем коде в том, что вот в этом месте...
ты не проверяешь значение переменной r1, а присваиваешь ей значение 1. Поэтому программа в любом случае выполнит последовательно этот оператор if, а затем следующий
в котором ты тоже присваиваешь этой же переменной значение 2, то есть переписав проверочные выражения так
и так
у тебя все заработает.
По твоему коду у меня возникли замечания по поводу стиля, уж больно громоздко и прямолинейно. Такой калькулятор, как ты задумал, предполагает гибкий интерфейс. Если ты так дальше будешь прописывать каждый пункт, то программа будет очень громоздкой и ты никогда не сможешь посчитать «Силу и массу», если выберешь другой пункт. Нужно будет закрыть программу, потому что нет возвратов, (как вариант «выход» — из меню физического калькулятора в стартовое меню, а из стартового — выход из программы) и запустить ее вновь.
Наверное ты подошел к проблеме глобально, попробуй в каждом подразделе оставить по одному меню и сделать это качественно.
Много непонятных объявлений и инициализаций переменных.
В общем неупорядоченная неразбериха :)))
Дерзай!!!
Я тут немного посочинял и набросал такой себе калькулятор.
Защита «от дурака» минимальная — только на ввод неправильной цифры меню. Если введешь букву то программа уйдет в цикл.
Код тоже получился немного прямолинеен, но дает возможность сделать расчет в любом месте меню.
Упор делал на оператор switch и функции.
Спасибо, Юрий. Я ещё только учусь и с функциями в упор не знаком. По моей книге я вот примерно вчера закончил циклы и ветвления. Просто я уже как-то писал такой же калькулятор, но используя только if...else , и мне посоветовали использовать switch. Ну вот как видите попытался) Я очень вам благодарен за исправления кода, но т.к функции не знаю, мне интересно как можно было обыграть эту идею, использовав только эти операторы. И ещё если у вас есть время, можете дать свой скайп или другое средство обмена сообщениями, для вопросов, если конечно можно.
:) Я сам только учусь.
Я представляю какое количество кода ты написал для такого калькулятора при помощи только
if else
:)В общем, я немного переиграл код, по твоей просьбе смотри, что получилось. Я не стал прописывать каждый пункт меню. Оставил рабочими только первые пункты главного меню и физического калькуляторов ну и расчеты, на основе этого, я думаю, остальное ты допишешь сам.
Как видишь прописав всего лишь одну ветвь кода получилось ровно половина от предыдущего (это при том, что я отбросил все лишнее).
В общем с классами получилось бы еще лучше, но с ними я пока тоже не знаком, так что вот мой e-mail alf1977@ukr.net если, что задавай вопросы.
Кстати какую литературу ты читаешь?
Такие меню можно делать одной строкой, а не массивом, и, следовательно, выводить одним оператором, а не циклом.
Понимаю это не производительно, просто небольшая интерпретация. Кстати, Алан, не подскажешь как в консольном окне сделать так, чтобы отображалось время выполнения программы?
Юрий, Сейчас читаю Лафоре.Р Объективно-ориентированное программирование.