Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.05.2008, 22:56   #1
Beggins
Новичок
Джуниор
 
Регистрация: 05.05.2008
Сообщений: 1
По умолчанию Диалоговое окно

Здравствуйте!У меня такая проблема с курсовой.Писал на визуал студио 2005.В консоли написал.А вот с окнами проблема.Помогите пожалуйста.Надо всего лиши окно вывода и 1 кнопку.
Вот код программы:



vector<int> a;
vector<int> v;
vector <int> mass;
const int size = 10;



template <class T> void main1(vector <T> a, vector <T> &v)
{

for (int i = 0; i < size; i++)
{
v.push_back(a[i]);
cout << a[i] << " ";

}

cout << endl;
quicksort(a, 0, size-1,v);

for (int i = 0; i < size; i++)
cout << v[i] << " ";
cout << endl;
}

template <class T> void quicksort(vector <T> a, int left, int right, vector <T> &v)
{
int i = left, j = right, middle = v[(left+right)/2];
// T temp;
while (i < j)
{
while (v[i]< middle) i++;
while (v[j] > middle) j--;
if (i <= j)
{
swap(v[i], v[j]);
i++;
j--;
}
}
if (left < j) quicksort(v, left, j,v);
if (right > i) quicksort(v, i, right,v);
}





template <class T> void main2(vector<T> a, vector<T> &v)
{

for (int i = 0; i < size; i++)
{
v.push_back(a[i]);
cout << a[i] << " ";

}
cout << endl;
heap_sort(a, size,v);

for (int i = 0; i < size; i++)
cout << v[i] << " ";
cout << endl;

}


template <class T> void down_heap(vector<T> a, long k, long n, vector<T> &v)
{

T new_elem;
long child;
new_elem = v[k];

while(k <= n/2) // пока у a[k] есть дети
{
child = 2*k;
// выбираем большего сына
if(child < n && v[child] < v[child+1])
child++;
// если сын меньше родителя
if(new_elem >= v[child]) break;
// иначе
v[k] = v[child]; // переносим сына наверх
k = child;
}
v[k] = new_elem;
}

template <class T> void heap_sort(vector<T> a, long size, vector<T> &v)
{
long i;
// строим пирамидку
for(i = size/2-1; i >= 0; i--)
down_heap(a, i, size-1,v);
// теперь a[0]...a[size-1] пирамида
for(i = size-1; i > 0; i--)
{
// меняем первый с последним
swap(v[0], v[i]);
// восстанавливаем пирамидальность a[0]...a[i-1]
down_heap(v, 0, i-1,v);
}
}


template <class T> void main3(vector<T> a, vector<T> &v)
{
for (int i = 0; i < size;i++)
{
v.push_back(a[i]);
cout << a[i] << " ";

}
cout << endl;
// Сортировка слиянием Поехали!
merge_sort(a, 0, size-1,v);

for (int i = 0; i < size; i++)
cout << v[i] << " ";
cout << endl;
}

template <class T> void merge(vector <T> &v, long left, long centre, long right)
{
// Слияние упорядоченных частей массива в буфер temp
// с дальнейшим переносом temp в вектор а

// позиция чтения из первой последовательности a[left]...a[centre]
long pos1 = left;

// позиция чтения из второй последовательности a[centre+1]...a[right]
long pos2 = centre+1;

vector <T> temp;

// идет слияние, пока в одной из последовательностей не кончатся элементы
while (pos1 <= centre && pos2 <= right)
{
if (v[pos1] < v[pos2]) // выбираем меньший элемент и добавляем его в конец
temp.push_back(v[pos1++]);
else
temp.push_back(v[pos2++]);
}

// одна последовательность закончилась -
// копировать остаток другой в конец буфера
while (pos2 <= right) // пока вторая последовательность непуста
temp.push_back(v[pos2++]);
while (pos1 <= centre) // пока первая последовательность непуста
temp.push_back(v[pos1++]);

// копируем temp в a[left]...a[right]
for (int pos3 = 0; pos3 < right-left+1; pos3++)
v[left+pos3] = temp[pos3];
}

template <class T> void merge_sort(vector <T> a, long left, long right,vector <T> &v)
{
long centre; // индекс, по которому делим массив

if (left < right) // если есть более 1 элемента
{
centre = (left + right)/2;

merge_sort(v, left, centre,v); // сортируем левую половинку
merge_sort(v, centre+1, right,v); // сортируем правую половинку
merge(v, left, centre, right); // сливаем результаты в общий массив
}
}


template <class T> void main4(vector<T> a, vector<T> &v)
{
for(int i = 0; i < size; i++)
{
v.push_back(a[i]);
cout << a[i] << " ";

}
cout << endl;

number_sort(a, size ,v);

for (int i = 0; i < size; i++)
cout << v[i] << " ";
cout << endl;
}

template <class T> void number_sort(vector<T> a, int size, vector<T> &v)
{
for (int i (0); i < size; i++)
for (int j (0); j < size-i-1; j++)
if (v [j] > v [j+1]) //условие :сравнение следующего элемента с предидущим
{
int tmp = v [j]; //сортировка методом пузырька
v [j] = v [j+1];
v [j+1] = tmp;
}


}



int _tmain(int argc, _TCHAR* argv[])
{
for (int i = 0; i < size; i++)
a.push_back(rand()%10);
main1(a,v);
cout<<"\n";
main2(a,v);
cout<<"\n";
main3(a,v);
cout<<"\n";
main4(a,v);
system ("PAUSE");
return 0;
}
Beggins вне форума Ответить с цитированием
Старый 07.05.2008, 21:03   #2
Somebody
Участник клуба
 
Регистрация: 08.10.2007
Сообщений: 1,185
По умолчанию

Цитата:
Надо всего лиши окно вывода и 1 кнопку
Что значит "окно вывода"? Если нужно тупо сделать окошко с текстом и кнопочкой OK, то можно использовать винапишный MessageBox().
Somebody вне форума Ответить с цитированием
Старый 09.05.2008, 02:54   #3
Nina
 
Регистрация: 09.05.2008
Сообщений: 5
По умолчанию

Действительно, Beggins поставьте правильнее вопрос. Что за окно вывода с одной кнопкой?
Nina вне форума Ответить с цитированием
Старый 09.05.2008, 05:03   #4
vvviperrr
Тупой студент
Форумчанин
 
Аватар для vvviperrr
 
Регистрация: 12.05.2007
Сообщений: 614
Сообщение

так наверна.
пс. проект для 2008 вижлы, но думаю под 2005 нормально запустится. в крайтем случае копирнешь ресурсы и исходник. пс. твой код вынес в отдельный файл, результаты сортировки выводятся в лист бокс.
да, и не смотри что проект так называется) просто шаблон был диалога, влом было новый создавать
Вложения
Тип файла: rar sort.rar (41.2 Кб, 13 просмотров)
vvviperrr вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите поставить условия в StringGrid, чтобы выходило диалоговое окно. Digimon Помощь студентам 2 18.02.2008 08:28
Окно MadDog__ Win Api 0 17.01.2008 00:33
Окно из DLL SunKnight Общие вопросы Delphi 1 16.12.2007 03:36
«Окно+символ». Создать класс, представляющий окно в текстовом режиме. RustreX Паскаль, Turbo Pascal, PascalABC.NET 1 11.11.2007 19:28