Помогите с написанием программы ** C++ Пожалуйста

0 голосов
96 просмотров

Помогите с написанием программы на C++
Пожалуйста


image

Информатика (5.5k баллов) | 96 просмотров
Дано ответов: 2
0 голосов

Элементарно же, делается 1 циклом. Это вас в школе учат так плохо или вам не интересно программирование?
#include
using namespace std;

int main()
{
    for (int i = 1000; i < 10000; i += 3) {
        cout << i << " ";<br>    }
    return 0;
}

(4.2k баллов)
0

по поводу читабельности, так же мне проще понять что речь о числе 10000 да и потом константа она константа, вдруг я вцикле что-то ошибся и недописал 0, здесь же такое не случится

0

я лишь сказал что можно вынести в константу, как ещё вариант блеснуть знанием перед преподом)

0

в данном случаи говорить, что вынесение значения в константу даст вам удобство - вводить в заблуждение читателя. Вынос в константу упростит жизнь: в часном случаи - возможно, в принципе - нет.

0

Да как угодно можно "блеснуть", главное что бы в голове что-то осталось. Я же придераюсь не к тому что вы предложили вынести в константу какое-либо значение, вопрос в другом, вы написади для "удобства", я в свою очередь прояснил ситуацию, так что ставьте константы и чем больше - тем лучше, в пределах разумного конечно, главное не вводите в заблуждение человека.

0

выбор же остается за ТС

0

Не упоминайте вложенные циклы, вложенные циклы - страшный грех и их та же константа никак в них не поможет, разве что, если вы не пожелаете индекс сделать константным (:

0

Здесь от константы будет ни холодно ни жарко..

0

я же сказал, забежал на перед

0

Я не понимаю, вашей обеспокоености "читабельностью" в данном случаи (:
Однозначный ответ: в данной задаче в данном решение, константа не несет профита. Ответ должен быть обоснованный и к делу :)

0

да и само чикло в теле цикла я также не изменю, выход за предел либо ещё какие операции не пройдут, я буду уверен что цикл прокрутит нужные мне n - итераций, либо если рець идет о вложенных циклах..

0 голосов

Код прекреплен к ответу, всё прокоментрировано. Так же продублирован в коментариях. Если есть вопросы, велком в те же коментарии.

З.Ы.
Учимся правильно:
а. Декомпозировать задачу (разбивать глобальную задачу, на максимально не зависимые под задачи)
б. Выносить в универсальные функции участки кода, которые можем реюзать потом (вытекает из пункта выше)
в. Чему учиться - где учиться? Доучивайте процедурку уже, по основным темам всем есть в интернете специализированные сайты. Есть вопросы какие? - Велком в ЛС. Как доучите (вам хватит с головой месяц для основ, если раз в два дня что-то делать будете вечером) - переходите на ООП, это все на чем зыждется современное программирование, тут уже для вас открываются книги:
- Шилдт Самоучитель C++ 3 издание (если вы возьметесь за C++)
- Маерс 55 правил (там примеры на Java, но вы легко разберетесь, все понятно)
- Фаулер Код с душком (тоже вроде примеры на Java, но как и предыдущее универсально в принципе)
г. Если планируете работать по специальности ищите в интернете по таким ключам: Паттерны GOF/GRASP/LISP, Работа с динамической памятью, Наследование/динамическая типизация (это просто то, что у вас должно просто сидеть на подкорке, конечно список далеко не полный, но пока будите знакомится с парадигмами ООП и плюсами, сами его интуитивно дополните).

Спасибо за отметку "Лучший ответ" и нажатую кнопочку "Спасибо" тут и в аккаунте (:

(1.4k баллов)
0

1. Почему создаем динамически? Вообще это совсем не уровень данного задания но если пошла речь об этом то:
а. Все объекты не являющиеся встроеными типами - по хорошему выделяем динамически, вы же не хотите держать всегда в оперативе все полноразмерные данные, а пользовать по мере надобности, после чего проверяем полученный указатель на null
б. Во избежании копирования, вернуть ссылку на созданный объект лучше чем когда он будет копироваться, либо как альтернатива move-симантика - велком

0

да и не совсем ясно зачем вы его здесь динамически выделили, он разве у вас между разными обектами гуляет и его нужно между ними передавать?

0

2. Нам delete не нужно. Почему? По тому, что забыл нюанс один, думал как упростить пример, но затупил, зрада. Хорошо что заметили (:
Просто в таких функциях обычно делаю shared_ptr, что избавляет от головной боли, но упрощал и вот так вышло.

0

иммел ввиду зачем динамически виделяем именно в этом примере, а так да)

0

В это примере зачем? Там вектор - большой объект вот почему)

0

Поправил, теперь возращает по значению, можно было заморочится с shared_ptr, но не для этого примера

0

Но это явно говнистый код получается, когда такую сущность как вектор мы копируем

0

По поводу, того что вектор большой объект, вообще вектор хранит в себе ссылки на кучу с реальным содержанием, так что никакой разницы. Сам вектор занимает в стеке где-то до 16 байт (стандартом не определено, но менее 12 - по 4 на ссылку, размер и резерв на 32-битной архитектуре не получится). Чисто формально - в куче он будет занимать немного больше, чем в стеке, но места в куче значительно больше, чем в стеке. Так что не критично, разве что копирование все портит.

0

но не менее 12*

0

на 11 стандарте будет всегда 12 занимать, тут как не крути