| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Для новичков > Буквы алфавита |
| Автор: Golovastik 21.7.2009, 17:55 | ||
| Не скажите! Вроде простая задачка,но чего-то не выходит. Мне нужно вывести в столбик, с отступом, буквы алфавита. В первом столбике, от "А" до "D", во 2-ом - от "А" до "Е", в 3-ем, от "b" до "f", в 4-ём, от "Q" до "Т", в 5-ём, от "F" до "L". Попробывал так, но не знаю как доделать. Как-то с выводом не могу понять.
|
| Автор: zim22 21.7.2009, 18:03 |
что вы не можете понять? спрашивайте. хотите чтобы за вас решили задачу - идите в http://forum.vingrad.ru/forum/Vingrad-help-center.html |
| Автор: Golovastik 21.7.2009, 18:06 |
| Я проблемму описал выше,что у меня не получается,если вы внимательно читали. Если не хотите отвечать,тогда ничего не пишите. |
| Автор: Golovastik 21.7.2009, 18:12 | ||
Вроде так, но что-то не очень правильно...
|
| Автор: zim22 21.7.2009, 18:20 | ||||||||||||||||||||
| вы ещё скажите, что вы это сами написали? сравним два варианта ваших же исходников:
и это появилось:
|
| Автор: mes 21.7.2009, 19:13 |
| Golovastik, подказка : 'A' можно расмотреть как 'A'+0, a 'A'+1 это 'B', 'A'+i где i € [0,5] будет 'A'..'Е' - остальное аналогично. Считаете максимальное кол-во строк и создаете цикл на столько элементов, а потом проверяя условия каждого столбика выводите соответствующие буквы, используя переменную цикла как смещение. |
| Автор: Golovastik 21.7.2009, 20:18 | ||
Можно так, но не компилится.
|
| Автор: mes 21.7.2009, 20:25 |
вместо цифр намного удобнее использовать символы : char a='A'; вместо того чтоб вручную считать, делайте арифметические операции над символами : if (i<'E'-'A') cout<< 'A'+i; ну так может поделитесь с нами той тайной, которую Вам сообщил компилятор найдя ошибку ? |
| Автор: zim22 21.7.2009, 20:28 |
http://codepad.org/upN4xDJ3 |
| Автор: Golovastik 21.7.2009, 20:30 |
| Всё работает. Нужно убрать в строке 15 \d++. Напишите пожалуйста ваш вариант,может он будет более коректен. |
| Автор: zim22 21.7.2009, 21:37 | ||||
|
| Автор: Golovastik 21.7.2009, 21:58 |
| Спасибо,код конечно длинный,но лучше. Даже проверенно на блок исключений. Спасибо zim22 Только не могу понять,а зачем использовать классы и создавать свои типы typedef |
| Автор: mes 21.7.2009, 22:16 | ||
| zim22, не слишком ли сложно, особенно учитывая уровень автора ? или это специально, чтоб раз и навсегда отучить его от Cpp ? честно признаться, я хоть вроде уже не новичок, но самому жутко стало мне кажется тут и простого варианта будет достаточно :
P.S. контроль переполнения или неправильности составления диапазона не ведется. |
| Автор: GoldFinch 21.7.2009, 22:32 |
| zim22, твой код слишком сложен для задачи, при этом его нельзя повторно использовать и как-то модифицировать |
| Автор: Dov 21.7.2009, 23:04 | ||
Что-то мне подсказывает, что массивы, и всё такое прочее, использовать нельзя, иначе самым простым вариантом был бы такой:
|
| Автор: mes 21.7.2009, 23:07 | ||||
вот так будет эстетичнее смотреться, заодно выход за пределы диапазона убрал :
Добавлено через 4 минуты и 9 секунд
ну так это ручной расчет - вот это как раз вряд ли разрешено. |
| Автор: Dov 21.7.2009, 23:16 | ||
А так можно?
|
| Автор: mes 21.7.2009, 23:21 | ||
а чем это не ? P.S. Представьте что диапазоны должны задаваться в рантайме. : или что один из диапазонов такой
|
| Автор: GoldFinch 21.7.2009, 23:28 | ||
http://codepad.org/murbcmkE -------- for (iter_t i=its.begin(), e=its.end(); i!=e; ++i) следовало бы заменить на BOOST_FOREACH или применить std::for_each + boost.lambda |
| Автор: Dov 21.7.2009, 23:29 | ||||
Вот это:
всё-равно, что это:
Так чем же этот массив лучше? А сделать из него такой, как я показал вообще труда не составляет, даже в рантайме. |
| Автор: GoldFinch 21.7.2009, 23:31 |
| Dov, считай что входные данные вводятся с клавиатуры |
| Автор: mes 21.7.2009, 23:33 | ||
ничем
никто и не спорит.. Но из Вашего примера этого не следовало |
| Автор: Dov 21.7.2009, 23:35 |
Ну и что? На что это влияет? Я просто говорю, что массивы, векторы и т.д. в этой задаче использовать нельзя. Я так думаю... |
| Автор: mes 21.7.2009, 23:37 | ||
ну и на каком основании ? из выше приведенных Вами примеров этого также не следует. |
| Автор: Dov 21.7.2009, 23:41 | ||
mes, я и не настаиваю. |
| Автор: Dov 22.7.2009, 00:13 | ||
|