Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
2 / 2 / 0
Регистрация: 11.04.2014
Сообщений: 115
1

Программа "Наглядное представление сортировки"

28.03.2015, 17:19. Показов 817. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, нужно написать программу, которая наглядно будет представлять, как производится сортировка массива. В виде линий, которые соответствуют значению элемента массива. Программа работает только на исходный вариант и на окончательный. Нужно сделать анимацию передвижения этих линий, в зависимости от сортировки массива. Примерно как здесь http://liveflowcharts.ru/sites... chart.html.
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
        #define size 9
        int tmp, arr[size] = {1, 2, 3, 14, 5, 7 ,9, 7, 3};
 
                const int x = 5;
                int s = 5, j = 0, y = 5, x1, y1;
                TImage *Image[size];
 
void __fastcall TForm1::ComboBox1Change(TObject *Sender)
{
 
        switch(ComboBox1->ItemIndex)
        {
                case 0:
//сортировка пузырьком
                for(int i = 0; i < size; ++i)
                {
                        int pos = i;
                        tmp = arr[i];
 
                        for(int j = i + 1; j < size; ++j)
                        {
                                if (arr[j] < tmp)
                                {
                                        pos = j;
                                        tmp = arr[j];
                                }
 
                }
 
                arr[pos] = arr[i];
                arr[i] = tmp;
//отрисовка конечного(отсортированного) массива
                                x1 = arr[i] + x;
                                y = y + j;
                                j = 2;
                                y1 = y;
                                Image1->Canvas->Pen->Color = clBlack;
                                Image1->Canvas->Pen->Width = 1;
 
                                Image1->Canvas->MoveTo(x * s, y * s);
                                Image1->Canvas->LineTo(x1 * s, y1 * s);
 
                                Image2->Canvas->Pen->Color = clBlack;
                                Image2->Canvas->Pen->Width = 1;
 
                                Image2->Canvas->MoveTo(x * s, y * s);
                                Image2->Canvas->LineTo(x1 * s, y1 * s);
 
                //ShowMessage(arr[i]);
                }
                }
 
 
 
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::FormCreate(TObject *Sender)
{
//если пригодиться для анимации (на форме 10 x Image)
                Image[0] = Image1;
                Image[1] = Image2;
                Image[2] = Image3;
                Image[3] = Image4;
                Image[4] = Image5;
                Image[5] = Image6;
                Image[6] = Image7;
                Image[7] = Image8;
                Image[8] = Image9;
}
//---------------------------------------------------------------------------
Миниатюры
Программа "Наглядное представление сортировки"  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.03.2015, 17:19
Ответы с готовыми решениями:

Как сделать наглядное представление
Не очевидный вопрос. Есть таблица. В трехмерном пространстве ее удобно представить (в теории) в...

Программа переводит строковое представление числа в числовое представление
Программа получает запись действительного числа в виде строки. Входная переменная, то есть, имеет...

Программа сравнивающая число перестановок сортировки «пузырьком» и сортировки методом выбора
задача С++Написать программу, которая сравнивает число перестановок элементов при использовании...

Реализация Алгоритмов Сортировки :Программа с процедурами сортировки простого выб
Помогите для чего нужна это программа и как она работает. (Просто не могу обьяснить преподу)....

3
2 / 2 / 0
Регистрация: 11.04.2014
Сообщений: 115
29.03.2015, 11:29  [ТС] 2
Здравствуйте, скажите, пожалуйста, как реализовать что - то подобное http://liveflowcharts.ru/sites... chart.html. Я поняла, как отрисовывать линии, но получается только начальный и конечный массивы. Сделать это в анимации у меня не получается.
Миниатюры
Программа "Наглядное представление сортировки"  
0
4043 / 2332 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
30.03.2015, 11:12 3
Берем стандартный таймер и полагаем однократное выполнение его обработчика за одну итерацию любого обычного цикла. Таймер будет работать в точности, как и цикл сортировки, но при этом будет визуально виден процесс сортировки.
0
0 / 0 / 0
Регистрация: 30.04.2015
Сообщений: 1
15.09.2015, 18:26 4
Настя , дайте мне , которий вы создали

Добавлено через 1 час 9 минут
Если кто то знает (сортировать массив анимация) помогите пожалуйста
0
15.09.2015, 18:26
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.09.2015, 18:26
Помогаю со студенческими работами здесь

Рекурсия: наглядное вычисление результата
программа вычисляет степень двойки чтобы выполнялось неравенство 2^a-1&lt;=n&lt; 2^a если например...

Наглядное руководство по htaccess и mod_rewrite
Уверен, что данная статья очень пригодится многим веб-мастерам и оптимизатором. Отличная шпаргалка...

Интерактивное учебно-наглядное пособие по ТОЭ
Здравствуйте, известна ли кому-либо такая программа для основ электротехники, которая включает в...

по матрице смежности построить наглядное изображение графа
по матрице смежности построить наглядное изображение графа 0 2 1 0 0 2 2 0 1 1 0 0 1 1 1 0 2...

Наглядное пособие, как не надо составлять задaчи
Сочинено специально, поэтому просьба не ржать по-лошадиному и не спрашивать, где я это откопал. И...

Наглядное описание где какие разъемы на материнской плате P5K
Где можно найти наглядное описание где какие разъемы на материнской плате P5K.Так чтобы прямо на...

Как получить наглядное графическое отображение области занятой загруженными файлами dll?
Хотел посмотреть как рапределены системные и прочие dll на работающей машине. У них обычно есть...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru