Ответы
Ответ дал:
0
Элементарно же, делается 1 циклом. Это вас в школе учат так плохо или вам не интересно программирование?
#include <iostream>
using namespace std;
int main()
{
for (int i = 1000; i < 10000; i += 3) {
cout << i << " ";
}
return 0;
}
#include <iostream>
using namespace std;
int main()
{
for (int i = 1000; i < 10000; i += 3) {
cout << i << " ";
}
return 0;
}
clinteastwood2:
по поводу читабельности, так же мне проще понять что речь о числе 10000 да и потом константа она константа, вдруг я вцикле что-то ошибся и недописал 0, здесь же такое не случится
в данном случаи говорить, что вынесение значения в константу даст вам удобство - вводить в заблуждение читателя. Вынос в константу упростит жизнь: в часном случаи - возможно, в принципе - нет.
да и само чикло в теле цикла я также не изменю, выход за предел либо ещё какие операции не пройдут, я буду уверен что цикл прокрутит нужные мне n - итераций, либо если рець идет о вложенных циклах..
Я не понимаю, вашей обеспокоености "читабельностью" в данном случаи (:
Однозначный ответ: в данной задаче в данном решение, константа не несет профита. Ответ должен быть обоснованный и к делу :)
Однозначный ответ: в данной задаче в данном решение, константа не несет профита. Ответ должен быть обоснованный и к делу :)
я же сказал, забежал на перед
Здесь от константы будет ни холодно ни жарко..
Не упоминайте вложенные циклы, вложенные циклы - страшный грех и их та же константа никак в них не поможет, разве что, если вы не пожелаете индекс сделать константным (:
я лишь сказал что можно вынести в константу, как ещё вариант блеснуть знанием перед преподом)
выбор же остается за ТС
Да как угодно можно "блеснуть", главное что бы в голове что-то осталось. Я же придераюсь не к тому что вы предложили вынести в константу какое-либо значение, вопрос в другом, вы написади для "удобства", я в свою очередь прояснил ситуацию, так что ставьте константы и чем больше - тем лучше, в пределах разумного конечно, главное не вводите в заблуждение человека.
Ответ дал:
1
Код прекреплен к ответу, всё прокоментрировано. Так же продублирован в коментариях. Если есть вопросы, велком в те же коментарии.
З.Ы.
Учимся правильно:
а. Декомпозировать задачу (разбивать глобальную задачу, на максимально не зависимые под задачи)
б. Выносить в универсальные функции участки кода, которые можем реюзать потом (вытекает из пункта выше)
в. Чему учиться - где учиться? Доучивайте процедурку уже, по основным темам всем есть в интернете специализированные сайты. Есть вопросы какие? - Велком в ЛС. Как доучите (вам хватит с головой месяц для основ, если раз в два дня что-то делать будете вечером) - переходите на ООП, это все на чем зыждется современное программирование, тут уже для вас открываются книги:
- Шилдт Самоучитель C++ 3 издание (если вы возьметесь за C++)
- Маерс 55 правил (там примеры на Java, но вы легко разберетесь, все понятно)
- Фаулер Код с душком (тоже вроде примеры на Java, но как и предыдущее универсально в принципе)
г. Если планируете работать по специальности ищите в интернете по таким ключам: Паттерны GOF/GRASP/LISP, Работа с динамической памятью, Наследование/динамическая типизация (это просто то, что у вас должно просто сидеть на подкорке, конечно список далеко не полный, но пока будите знакомится с парадигмами ООП и плюсами, сами его интуитивно дополните).
Спасибо за отметку "Лучший ответ" и нажатую кнопочку "Спасибо" тут и в аккаунте (:
З.Ы.
Учимся правильно:
а. Декомпозировать задачу (разбивать глобальную задачу, на максимально не зависимые под задачи)
б. Выносить в универсальные функции участки кода, которые можем реюзать потом (вытекает из пункта выше)
в. Чему учиться - где учиться? Доучивайте процедурку уже, по основным темам всем есть в интернете специализированные сайты. Есть вопросы какие? - Велком в ЛС. Как доучите (вам хватит с головой месяц для основ, если раз в два дня что-то делать будете вечером) - переходите на ООП, это все на чем зыждется современное программирование, тут уже для вас открываются книги:
- Шилдт Самоучитель C++ 3 издание (если вы возьметесь за C++)
- Маерс 55 правил (там примеры на Java, но вы легко разберетесь, все понятно)
- Фаулер Код с душком (тоже вроде примеры на Java, но как и предыдущее универсально в принципе)
г. Если планируете работать по специальности ищите в интернете по таким ключам: Паттерны GOF/GRASP/LISP, Работа с динамической памятью, Наследование/динамическая типизация (это просто то, что у вас должно просто сидеть на подкорке, конечно список далеко не полный, но пока будите знакомится с парадигмами ООП и плюсами, сами его интуитивно дополните).
Спасибо за отметку "Лучший ответ" и нажатую кнопочку "Спасибо" тут и в аккаунте (:
Приложения:
да и не совсем ясно зачем вы его здесь динамически выделили, он разве у вас между разными обектами гуляет и его нужно между ними передавать?
1. Почему создаем динамически? Вообще это совсем не уровень данного задания но если пошла речь об этом то:
а. Все объекты не являющиеся встроеными типами - по хорошему выделяем динамически, вы же не хотите держать всегда в оперативе все полноразмерные данные, а пользовать по мере надобности, после чего проверяем полученный указатель на null
б. Во избежании копирования, вернуть ссылку на созданный объект лучше чем когда он будет копироваться, либо как альтернатива move-симантика - велком
а. Все объекты не являющиеся встроеными типами - по хорошему выделяем динамически, вы же не хотите держать всегда в оперативе все полноразмерные данные, а пользовать по мере надобности, после чего проверяем полученный указатель на null
б. Во избежании копирования, вернуть ссылку на созданный объект лучше чем когда он будет копироваться, либо как альтернатива move-симантика - велком
2. Нам delete не нужно. Почему? По тому, что забыл нюанс один, думал как упростить пример, но затупил, зрада. Хорошо что заметили (:
Просто в таких функциях обычно делаю shared_ptr, что избавляет от головной боли, но упрощал и вот так вышло.
Просто в таких функциях обычно делаю shared_ptr, что избавляет от головной боли, но упрощал и вот так вышло.
иммел ввиду зачем динамически виделяем именно в этом примере, а так да)
В это примере зачем? Там вектор - большой объект вот почему)
Поправил, теперь возращает по значению, можно было заморочится с shared_ptr, но не для этого примера
Но это явно говнистый код получается, когда такую сущность как вектор мы копируем
По поводу, того что вектор большой объект, вообще вектор хранит в себе ссылки на кучу с реальным содержанием, так что никакой разницы. Сам вектор занимает в стеке где-то до 16 байт (стандартом не определено, но менее 12 - по 4 на ссылку, размер и резерв на 32-битной архитектуре не получится). Чисто формально - в куче он будет занимать немного больше, чем в стеке, но места в куче значительно больше, чем в стеке. Так что не критично, разве что копирование все портит.
но не менее 12*
на 11 стандарте будет всегда 12 занимать, тут как не крути
Вас заинтересует
1 год назад
1 год назад
2 года назад
3 года назад
3 года назад
8 лет назад
8 лет назад