Форум программистов, компьютерный форум CyberForum.ru

Соеденить 3 разных программы - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Массивы. Динамически распределяемая память. http://www.cyberforum.ru/cpp-beginners/thread212307.html
Всем привет. Помогите решить задачку. В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) найти количество элементов массива, больших определенного числа, вводимого пользователем; 2) вычислить произведение элементов массива, расположенных после максимального по модулю элемента. При наличии нескольких максимальных по модулю элементов (равных друг другу) выбирается...
C++ массивы Люди добрые, помогите решить пару задач на Turbo С++ (где спользуются printf scanf) на одномерные и двумерные массивы: 1)Дан массив Х. Переписать пять первых положительных элементов массива подряд в массив У. Найти максимальный элемент массива Х. 2)Найти наибольший и наименьший элементы вещественного массива. Если таких элементов несколько, определить, сколько их. Создать фйнкции для... http://www.cyberforum.ru/cpp-beginners/thread212292.html
Списки(предметный указатель) C++
В урезанных сроках пытаюсь освоить пропущенную тему и написать последнюю лабу насочинял код, вроде правильно, но работать не хочет... #include <iostream.h> #include <windows.h> #include <stdlib.h> #include <conio.h> #include <string.h> #include <ctime>
C++ Строки - списки. Удаление элементов списка.
Господа - программисты, вы всесильны, я знаю. Помоги же немного. Задача : Из входного потока вводиться произвольное число строк. Каждая строка представляет собой последовательность слов, разделяемых пробелами. Для каждой строки сформировать новую, поместив все слова исходной строки такой же длинны, как и первое слово в строке. Полученную строку вывести на экран. Каждая строка -список. Первое...
C++ Мат королю ферзем и королем http://www.cyberforum.ru/cpp-beginners/thread212263.html
в клетке С3 шахматной доски стоит белый король - доказать что при любой расстановке черного ферзя и черного короля мат белому королю объявится не более чем за 25 ходов-подскажите хотя бы идею решения пожалуйста.Для определенности - начинают черные(то есть шаховые расстановки исключаются)
C++ Олимпиадное задание "Калькулятор рациональных дробей" Калькулятор рациональных дробей (выполнение операций сложения, вычитания, умножения, деления). подробнее

Показать сообщение отдельно
landraider
0 / 0 / 0
Регистрация: 09.12.2010
Сообщений: 5
16.12.2010, 11:06     Соеденить 3 разных программы
В наличии 3 вида сортировки - Шелл, Хоар, слияние ( shellsort, quicksort, mergesort ).

все используют шаблон. огромная просьба помогите совместить их. и если кто сможет указать на ошибки, какие там есть.

Передомной стоит задача сделать едиую программу с обычным меню выбора сортировки, а потом в каждой из них при помощи ручного ввода переменных показать что каждая из них работает.
Использую Турбо с++ в данный момент проблемма в создании меню ввода переменных и вывода конечного результата сортировки. также не могу правильно соеденить их. простоянно какаято лажа((

Слияние
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
#include <conio.h>
#include <stdio.h>
#include <iostream.h>
template <class T>
void mergeSort(long lb, long ub);
void main(){}
                    // a - сортируемый массив, его левая граница lb, правая граница ub
template <class T>
void mergeSort(T a[], long lb, long ub)
{
  long split;                           // индекс, по которому делим массив
 
  if (lb < ub)
  {                                     // если есть более 1 элемента
 
    split = (lb + ub)/2;
 
    mergeSort(a, lb, split);            // сортировать левую половину
    mergeSort(a, split+1, last);        // сортировать правую половину
    merge(a, lb, split, ub);            // слить результаты в общий массив
 
  }
  getch();
}
Хоар
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
#include <conio.h>
#include <stdio.h>
#include <iostream.h>
template<class T>
void quickSortR(T* a, long N);
void main(){}
template<class T>
void quickSortR(T* a, long N) {
// На входе - массив a[], a[N] - его последний элемент.
 
  long i = 0, j = N;        // поставить указатели на исходные места
  T temp, p;
 
  p = a[ N>>1 ];        // центральный элемент
 
  // процедура разделения
  do {
    while ( a[i] < p ) i++;
    while ( a[j] > p ) j--;
 
    if (i <= j) {
      temp = a[i]; a[i] = a[j]; a[j] = temp;
      i++; j--;
    }
  } while ( i<=j );
 
 
  // рекурсивные вызовы, если есть, что сортировать
  if ( j > 0 ) quickSortR(a, j);
  if ( N > i ) quickSortR(a+i, N-i);
}
Шелл
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
template<class T>
void shellSort(T a[], long size);
void main() {}
int increment(long inc[], long size) {
  int p1, p2, p3, s;
 
  p1 = p2 = p3 = 1;
  s = -1;
  do {
    if (++s % 2) {
      inc[s] = 8*p1 - 6*p2 + 1;
    } else {
      inc[s] = 9*p1 - 9*p3 + 1;
      p2 *= 2;
      p3 *= 2;
    }
    p1 *= 2;
  } while(3*inc[s] < size);  
 
  return s > 0 ? --s : 0;
}
 
template<class T>
void shellSort(T a[], long size) {
  long inc, i, j, seq[40];
  int s;
 
  // вычисление последовательности приращений
  s = increment(seq, size);
  while (s >= 0) {
    // сортировка вставками с инкрементами inc[] 
    inc = seq[s--];
 
    for (i = inc; i < size; i++) {
      T temp = a[i];
      for (j = i-inc; (j >= 0) && (a[j] > temp); j -= inc)
        a[j+inc] = a[j];
      a[j+inc] = temp;
    }
  }
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 12:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru