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

Уменьшить программу/снизить количество операторов

06.06.2012, 19:46. Показов 1149. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В этой программе описан динамический массив, который сортирует числа по возрастанию. Можно ли как-нибудь уменьшить программу?

C++ (Qt)
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
#include <iostream>
#include <conio.h>
#include <stdlib.h>
 
using namespace std;
 
class Sort {
private:
    int size;
    int *arr;
public:
 
    Sort()
    {
     size = 10;
     arr = new int [size];
    }
    void vvodArr()
    {
        for(int i = 0; i < size; i++)
        {
            arr[i] = rand()%10;
            cout << arr[i] << ' ' << endl;
        }
    }
void sortArr()
    { int t = 0;
        for (int i=1;  i<size;  i++){
                for (int j=0;  j<size-i;  j++){
                    if (arr [j]>arr[j+1]){
                        t=arr[j];
                        arr [j]=arr [j+1];
                        arr [j+1]=t;
                    }
                }
            }
    for(int i = 0; i < size; i++)
        cout << arr[i] << endl;
    }
};
 
int main()
{
    Sort a;
    a.vvodArr();
    cout << endl;
    a.sortArr();
 
    getch();
    return 0;
 
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.06.2012, 19:46
Ответы с готовыми решениями:

Посоветуйте как лучше организовать программу, чтобы снизить трудоемкость кодирования
Структура программы. Есть главная форма, что-то типа панели управления, на которой расположено 5 кнопок, запускающих другие формы -...

Уменьшить количество сравнений
Народ, я ток начал заниматься этим языком, так что прошу извинить, если туплю) В общем есть код программы, которая выдает простые числа от...

Уменьшить количество текста
Доброго времени суток. Собственно в чем смысл программы: она берет из текстового поля слово и приравнивает его к уже существующей...

7
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38167 / 21102 / 4307
Регистрация: 12.02.2012
Сообщений: 34,690
Записей в блоге: 14
06.06.2012, 19:52
Особых резервов для уменьшения кода нет... Но у класса странный конструктор. Он создаёт массив из 10 эл-тов. А если нужно - из ста или из 1000? Конструктору нужно дать параметр целого типа - размер массива. Кроме того: конструктор создает дин. массив, а кто будет его уничтожать (где деструктор)?
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
06.06.2012, 19:58
Не хватает:
Конструктора копирования, оператора присвоения и деструктора.
динамический массив, который сортирует числа по возрастанию
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <algorithm>
#include <iterator>
#include <random>
 
int main()
{
    std::random_device rd;
    std::mt19937 gen(rd());
    std::uniform_int_distribution<> uid(0, 99);
    int *A, N; 
    std::cin>> N;
    A = new int[N];
    std::generate(A, A + N, [&uid, &gen] {return uid(gen); } );
    std::copy(A, A + N, std::ostream_iterator<int> (std::cout, " ") );
    std::cout<< std::endl;
    std::sort(A, A + N);
    std::copy(A, A + N, std::ostream_iterator<int> (std::cout, " ") );
    delete []A;
    return 0;
}
http://liveworkspace.org/code/... d55e7b965d

Динамический массив ничего не сортирует. Динамический массив это динамический массив.
0
 Аватар для Andrey.K
348 / 269 / 128
Регистрация: 14.11.2010
Сообщений: 482
06.06.2012, 19:58
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
#include <iostream>
#include <conio.h>
#include <stdlib.h>
#include <algorithm>
using namespace std;
 
class Sort {
private:
    int size;
    int *arr;
public:
 
    Sort()
    {
     size = 10;
     arr = new int [size];
    }
    void vvodArr()
    {
        for(int i = 0; i < size; i++)
        {
            arr[i] = rand()%10;
            cout << arr[i] << ' ' << endl;
        }
    }
void sortArr()
    {
        sort(arr,arr+size);
    for(int i = 0; i < size; i++)
        cout << arr[i] << endl;
    }
};
 
int main()
{
    Sort a;
    a.vvodArr();
    cout << endl;
    a.sortArr();
 
    getch();
    return 0;
 
}
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
06.06.2012, 20:01
Делать вывод массива в функции сортировки - как-то по быдлокодерски.

P.S. проблемы с памятью остались.
0
 Аватар для Andrey.K
348 / 269 / 128
Регистрация: 14.11.2010
Сообщений: 482
06.06.2012, 20:07
Цитата Сообщение от MrGluck Посмотреть сообщение
Делать вывод массива в функции сортировки - как-то по быдлокодерски.

P.S. проблемы с памятью остались.
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
#include <iostream>
#include <conio.h>
#include <stdlib.h>
#include <algorithm>
using namespace std;
 
class Sort {
private:
    int size;
    int *arr;
public:
 
    Sort()
    {
     size = 10;
     arr = new int [size];
    }
    ~Sort()
    {
                      delete[] arr;
        cout<<"\nObect unichtojen. "<<endl;
        getch();
    }
    void vvodArr()
    {
        for(int i = 0; i < size; i++)
        {
            arr[i] = rand()%10;
            cout << arr[i] << ' ';
        }
        cout<<endl;
    }
void sortArr()
    {
        sort(arr,arr+size);
    }
void vivodArr()
{
        for(int i = 0; i < size; i++)
        cout << arr[i] << " ";
}
 
};
 
int main()
{
    Sort a;
    a.vvodArr();
    a.sortArr();
    a.vivodArr();
    getch();
    return 0;
 
}
Я думаю теперь проблема решена.
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
06.06.2012, 20:27
Цитата Сообщение от MrGluck Посмотреть сообщение
Не хватает:
Конструктора копирования, оператора присваивания
.....
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38167 / 21102 / 4307
Регистрация: 12.02.2012
Сообщений: 34,690
Записей в блоге: 14
06.06.2012, 20:31
Конструктор копирование не нужен. А вот деструктор - да!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.06.2012, 20:31
Помогаю со студенческими работами здесь

Уменьшить количество потоков
Привет всем. Нужно уменьшить количество потоков до 2. Закрепил link на проект ниже, (в проекте используется компонент Alpha Skins) Я...

Уменьшить количество запросов к БД
Добрый день. Дали сайт для оптимизации, обычно если делаешь сайт с нуля, то в нем все знаешь, а тут прям не могу понять. В общем, решил...

Уменьшить программу
Уменьшите программу пожалуйста. Uses GraphABC; Procedure Gr8(X,Y,R:Integer); Var R3:Integer; Begin; R3:=R div 3; ...

Уменьшить количество цветов в изображении
Здравствуйте! Пишу программу, которая преобразовывает изображение в схему для вышивки. Для этого изображение загружается в программу,...

Уменьшить количество слайдов в слайдере
Надо уменьшить количество слайдеров. http://djeysonborn2016.ru/ Всего проигрывается 8 слайдов, первых 4, что под самим слайдером...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 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