Использование разных типов циклов (for, while, do while)
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.
Можно ли для решения одной и той же задачи на циклы использовать различные циклы(for,while,do while).
Или же все же к определенной задаче можно применять только определенный цикл?
for — цикл с предопределенным количеством повторов, т.е., Вы сами можете определить, сколько его интераций произойдет. Например, цикл
for(int c=1; c<11; c++)
будет иметь 10 интераций. В циклах while и do while может, в зависимости от условия, изменяться число интераций. Насчет вашего вопроса: всегда можно с for сделать while и do while, но наоборот — не всегда. Тот же результат с использованием while:
int c=1; while(c<11) c++;
...и do while:
int c=1; do c++ while (i < 11);
15 февраля 2014 г., 14:32 пользователь Влад Марков pegas.v@mail.ru написал:
Здравствуйте. Пишу программу на C++ и параллельно учусь языку ;)
Возникла такая проблема : Мне нужно сделать так, чтобы после того как было выполнено действие калькулятора, снова появлялось меню, но уже без операторов cout.Если непонятно то поясню :D. У меня допустим открылась программа и я выбрал пункт 1 — Калькулятор формул по Физике. Дальше у меня появляется меню калькулятора с информацией. Я выбираю раздел, ввожу данные и.т.д. Я получил ответ и хочу сделать так, чтобы после того как появился ответ, меню калькулятора появилось вновь, НО! уже без команд cout. То есть без :
cout<< «Вас приветствует калькулятор формул по Физике. V1» << endl;
cout << "Внимание! Расчёты нужно проводить в системе СИ! Конвертер будет во второй версии программы!" << endl;
cout << «Выберите раздел физики :» << endl;
, а сразу меню с пунктами. Статью про циклы прочитал, но не очень понял как реализовать мою задачу. Надеюсь на вашу помощь! Спасибо.
DocStapler, старайся писать программы красиво... и понятно. Страшно представить, во что превратится код, если ты туда ещё вставишь циклы, код калькулятора и код конвертора. Ты же сам в этой глисте не найдёшь случайно пропущенную скобку.
В нижеприведённом коде я постарался продемонстрировать некоторые приёмы организации подобной программы. Обрати внимание, что в функции
main()
и в функцииphys_calc()
обработка выбора пользователя и дальнейший вызов функции сделан по-разному: в первом случае с помощью оператораswitch
, а во втором — с помощью массива указателей на функции. Второй вариант выглядит может быть более сложно, зато позволяет выбирать из очень большого числа альтернатив практически без увеличения кода.По ходу дела, как бонус, в программе получилась и «защита от дурака».
Череп, Возможно вы допустили ошибку в написании кода или просто не уследили моей мысли. Я предполагал что после расчёта чего-либо , пользователь не выходит в главное меню, а снова остаётся в меню калькулятора, но без начальной сноски. В принципе вы сделали правильно. Но..... Расчётов калькулятор не выполняет! Я хотел оставить калькулятору такую возможность) При выборе раздела, программа просто заново прокручивает разделы. Прошу исправьте!Ну или хотя бы скажите куда вписывать расчётную часть кода(Я новичок, если что простите за тугодумность). Спасибо
DocStapler, возможно ты невнимательно прочитал преамбулу к коду. Цитирую: "я постарался продемонстрировать некоторые приёмы организации подобной программы". Т.е. это не твоя переделанная программа, а некий шаблон, пользуясь которым можно довести до ума твою программу.
Моё великодушие так далеко не распространяется )))
Я думаю, что если ты внимательно посмотришь на мой шаблон, разберёшься как это работает, то сам поймёшь куда надо распихивать куски кода из твоей программы. (Подсказка: при выборе раздела программа не просто заново прокручивает разделы, а выводит ещё одну строку. Найди откуда — это будет ключом.)
Если тебе, как новичку, пока непонятен вариант решения с массивом указателей на функции (согласен, не совсем очевидный способ), то разберись хотя бы со
switch
'ем. А с более сложным вариантом, если сам не разберёшься и будет желание — спрашивай, я прокомментирую код. Но попробуй сначала сам разобраться.Череп, Ну тогда на этой неделе куплю книги по программированию и буду читать -_-.А то пока слишком всё непонятно.
Так с чтения книг и начинать надо было.
Кстати в сети можно найти много чего из литературы. Надо только немного поискать ;-)
Так что образовательный процесс можно не откладывать ))