С Новым годом! Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 25.10.2020
Сообщений: 8

Есть место оптимизации?

11.12.2020, 16:49. Показов 1533. Ответов 9

Студворк — интернет-сервис помощи студентам
Привет ещё раз. Балуюсь с классами(чтобы набраться опыта в создании класса) и написал класс дерева.


>Что происходит в коде?
-Пользователь должен ввести тип дерева и кол-во листьев. Так 3 раза. Потом программа выводит всё на экран.

>Что не так?
-Можно ли как-то оптимизировать код или так тоже нормально?


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#include<iostream>
using namespace std;
 
enum derevo {dub,beryoza};
 
class car
{
private:
    int list_kol;
    static int d_numb;
    int a;
    derevo type;
public:
    car() : list_kol(0) {/*d_numb++; */}    //-конструктор
    string d;
 
    void d_create() //создать дерево
    {
        d_numb++;
        cout << "\nВведите тип дерева номер "<<d_numb<<"\n";
        cout << "\"берёза\" или \"дуб\""<<endl;
        cout << ">"; cin >> d;
        if (d == "берёза")
        {
            type = beryoza;
            d = "берёза";
        }
        else
        {
            if (d == "дуб")
                type = dub;
            d = "дуб";
        }
        cout << "Сколько листьев должно быть?\n";
        cout << ">"; cin >> list_kol;
        a = d_numb;
    }
 
    void d_info()
    {
        cout << "================================================\n";
        cout << "\nИнформация о деревo номер "<<a<<"\n";
        cout << "Тип дерева: "<<d<<endl;
        cout << "Количество листьев на нём: " << list_kol<<endl<<endl;
    }
 
};
int car::d_numb = 0;
 
int main()
{
    setlocale(LC_ALL, "rus");   // для русского шрифта
    cout << "Сборщик дерева!\n";
    car d1,d2,d3;
 
    d1.d_create();
    d2.d_create();
    d3.d_create();
    d1.d_info();
    d2.d_info();
    d3.d_info();
 
    return 0;
}
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.12.2020, 16:49
Ответы с готовыми решениями:

Есть ли разница в оптимизации между определением переменной до цикла
Подскажите, есть ли разница в производительности между int i; while () { .... .... i = 0; while () { ...

Есть вопрос зубрам оптимизации
Админ удали топик -- ошибся!!!! :))

Есть вопросы по оптимизации и продвижению
Привет всем. Дело такое. Сделал сайт, http://anonimcabinet.ru Google зацепил сайт в индекс где то месяц назад, Yandex совсем...

9
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
11.12.2020, 17:29
Цитата Сообщение от Khe4oYaN Посмотреть сообщение
-Можно ли как-то оптимизировать код или так тоже нормально?
оптимизация без причины - признак дурачины.
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
11.12.2020, 18:49
Цитата Сообщение от Khe4oYaN Посмотреть сообщение
Привет ещё раз. Балуюсь с классами(чтобы набраться опыта в создании класса) и написал класс дерева.
А почему у тебя класс дерева называется "car"?
0
0 / 0 / 0
Регистрация: 25.10.2020
Сообщений: 8
11.12.2020, 19:41  [ТС]
По началу я на армянском писал(в английской транскрипции) тоесть car[цар(на армянском)] значит дерево.
Ну что? Есть возможность оптимизировать?
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
11.12.2020, 19:44
Цитата Сообщение от Khe4oYaN Посмотреть сообщение
Ну что? Есть возможность оптимизировать?
Цитата Сообщение от Khe4oYaN Посмотреть сообщение
if (d == "берёза")
        {
            type = beryoza;
            d = "берёза";
        }
        else
        {
            if (d == "дуб")
                type = dub;
            d = "дуб";
        }
Это что означает - если значение d равно "берёза", то присвоить d значение "берёза"?
0
0 / 0 / 0
Регистрация: 25.10.2020
Сообщений: 8
11.12.2020, 19:53  [ТС]
Добавлено через 4 минуты
Цитата Сообщение от oleg-m1973 Посмотреть сообщение
Это что означает - если значение d равно "берёза", то присвоить d значение "берёза"?
oleg-m1973

если значение d равно "берёза", то присвоить d значение "берёза"?

Да. Чтобы потом в тексте уже было сообщение не "Тип дерева: Дуб" а "Тип дерева: дуб".
Но потом я передумал заморачиваться. (По началу хотел сделать чтобы и на ввод с большой буквы тоже было возможным)

Добавлено через 2 минуты
Цитата Сообщение от hoggy Посмотреть сообщение
птимизация без причины - признак дурачины.
Я спрашиваю про оптимизацию из за того что не уверен оптимизирован ли мой код(я ещё только учусь). Это во первых.
Во вторых: почему ты думаешь что причины нет?
И я частично согласен с тобой, однако у меня причина есть.
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
11.12.2020, 19:59
Цитата Сообщение от Khe4oYaN Посмотреть сообщение
Во вторых: почему ты думаешь что причины нет?
если ты не знаешь нужна ли тебе оптимизация,
значит оптимизация тебе ну нужна.
0
0 / 0 / 0
Регистрация: 25.10.2020
Сообщений: 8
11.12.2020, 22:12  [ТС]
Цитата Сообщение от hoggy Посмотреть сообщение
если ты не знаешь нужна ли тебе оптимизация,
значит оптимизация тебе ну нужна.
Повторюсь. Так как я новичок, я не знаю есть место для оптимизации или она нормальна прога. А чтобы узнать наверняка нужны опытные прогеры. Вот у них спрашиваю. А ты я так понимаю не даш мне этого ответа. Поэтому лучше больше не отвечай)

А причину я уже тебе сказал.. (Внимательно читай)
0
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
11.12.2020, 23:41
Лучший ответ Сообщение было отмечено Khe4oYaN как решение

Решение

Последняя проблема этой программы - это оптимизация. Тут скорее надо о дизайне подумать, о читаемости, о логике и т.д.
Например, почему в методе класса намешаны ввод\вывод в консоль вместе с остальной логикой? Вопрос риторический: это всегда неверно, не должно быть смешения ответственностей, особенно таких кардинально разных.
Или почему else - это именно "дуб"? Что будет, если ввести не "дуб" и не "береза"? Вопрос риторический: мы попадем в else-ветку, где внутри не сработает условие проверки на "дуб", при этом type останется без инициализации. Класс, который допускает наличие "мусорных" состояний своих объектов - это плохой класс.

А про оптимизацию вам совершенно верно сказали, зря вы так отбрыкиваетесь. Для оптимизации нужна формальная причина (просто "потому что хочется" - это субъективная причина), например, результаты замеров производительности, диагностика профилировщика.
0
 Аватар для Recrut_rf
381 / 324 / 65
Регистрация: 14.10.2014
Сообщений: 1,377
12.12.2020, 14:03
Khe4oYaN, смотрите комментарий выше - там сказано, что вам надо оптимизировать. От себя добавлю (по пунктам)

1 - названия переменных лучше сразу привыкать писать на английском, не на русском, армянском китайском, корейском, японском, французском и т. д. а именно на английском, и уж тем более не транслитом. Придумываете оригинальное название, отражающее сущность в полной мере - открываете гугл, яндекс или иной переводчик - вот вам и название.
2 - архитектура программы не менее важна, по сравнению с той же оптимизацией. Грамотно спроектированный класс с нужными методами сэкономит вам кучу времени в будущем.
3 - ну и наконец про оптимизацию:

Цитата Сообщение от hoggy Посмотреть сообщение
если ты не знаешь нужна ли тебе оптимизация,
значит оптимизация тебе ну нужна.
Запомните это - потому как это очень даже жизненно.
Ну и добавлю от себя пример:
Как то на работе мне нужно было написать прогу по сортировке значений из файла - по-быстрому (ха гавно вопрос прочитать значения из файла и их же отсортировать думал я ) сочинил опытный образец ну и довольный, решил запустить и проверить результат (файл, если что был текстовый, а значений в нём около 300 000 строк). На 20-ой минуте работы своей проги, я задумался о том, что что-то здесь не так надо идти к начальству и просить новый комп на 50 ядер и с топовой видюхой в придачу потому как всё жутко тормозит.
Вот тут то я и задумался над оптимизацией своего "творчества".
А если ваша программа только и делает, что складывает два значения и выводит их на экран - так любой нормальный компилятор оптимизирует ваш код гораздо лучше вас самих. А вот архитектурные "косяки" ни один компилятор не поправит.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.12.2020, 14:03
Помогаю со студенческими работами здесь

Какие есть основные методы оптимизации?
Какие есть основные методы оптимизации?

Какие есть варианты оптимизации скрипта?
Есть такая таблица CREATE TABLE `main_data` ( `date_work` datetime NOT NULL, `phone` char(13) NOT NULL, `main_state`...

Есть ли аналог минус слов при оптимизации?
Все, наверное, знают, что в Яндекс.Директе можно использовать &quot;минус слова&quot;, например, &quot;видеосъемка -свадьба&quot; чтобы показывать...

Всё ещё учусь оптимизации есть вопросы?)
Сори за глупый вопрос) Проверял свою главную страницу на плотность слов на http://pr-cy.ru/analysis_content обнаружил сообщения (Тег...

У кого есть готовая программа по оптимизации распределения ресурсов?
У кого есть готовая программа по оптимизации распределения ресурсов? Она же функция Беллмана, она же задача динамического...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru