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

массивы - C++

Восстановить пароль Регистрация
 
paradox92
 Аватар для paradox92
0 / 0 / 0
Регистрация: 27.02.2010
Сообщений: 38
29.03.2010, 23:31     массивы #1
задали написать программу, которая создаёт массив, количество элементом которого задаётся пользователем с клавиатуры. Все элементы генерируются псевдослучайной последовательностью от "0" до числа, которое вводится с клавиатуры. Программы должна выводить массив до сортировки и после. Вывод массива до сортировки и после сделать используя функции. Сортировку сделать блочным методом. уже долго пытаюсь её довести до рабочего состояния но никак не получается...
Если не сложно, помогите! заранее спасибо

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
#include <iostream.h>
#include <stdlib.h>
#include <iomanip.h>
#include <time.h>
 
int BinSearch(int M[], int mas1, int k);
int Vivod_Massiva ( int b[], int mas1 );
int blockSort(int a[],  int sz);
 
int main()
{
    int kolichestvo_chisel, kol_iter,  i, gran_mas, k;
cout << "vvedit' kilkist chisel= ";
cin >> kolichestvo_chisel;
cout << "vvedit' granicu= ";
cin >> gran_mas;
kol_iter = kolichestvo_chisel - 1;
int a[kolichestvo_chisel];
//srand(time(0));
  for (i=0; i!=kolichestvo_chisel; i++)
    a[i] = rand() % (gran_mas + 1);
cout << " Vivod Massiva Do Sortirovki: " << setw(4) << Vivod_Massiva ( a , kolichestvo_chisel);
cout << " Vivod Massiva Posle Sortirovki: " << blockSort( a , kolichestvo_chisel);
 
cout <<"\n";
cout << "vvedite iskomiy element: ";
cin >> k;
cout << "naiden v elemente massiva " << BinSearch(a, kolichestvo_chisel, k) << endl;
return 0;
}
int Vivod_Massiva ( int b[], int mas1 )
{
    for ( int p=0; p!=mas1; p++ )
    cout << b[p] ;
 
    cout << "\n";
    return 0;
}
int blockSort(int a[],  int sz)
{ int mas;
    for (int i=0; i<10; i++)
    {
        for ( int j=0; j<2000; j++)
        {mas[i][j] = -1;
        }
        }
 
   for(int l = 0; l < 5; l++)
   {
       for(int i = 0; i < sz; i++)
       { const int num=10;
           int j=a[i]/num%10;
           mas[i][j]=a[i];
           }
 
       // сбор
           int t = 0;
       for(int i = 0; i < 10; i++)
       {
           for(int j = 0; j < 2000; j++)
           {
               if (mas[i][j]!=-1)
                  a[t++] = mas[i][j];
                  mas[i][j] = -1;
                }
         }
    }
}
 
 
 
int BinSearch(int M[], int mas1, int k)
{
    int L = 0;
    int R = mas1;
    int m;
    while (L<R)
    {
        m = (L+R)/2;
        if (k > M[m]) L = m;
        if (k < M[m]) R = m;
        if (k == M[m]) break;
    }
    return m;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.03.2010, 23:31     массивы
Посмотрите здесь:

C++ Массивы
Массивы C++ C++
массивы C++
C++ Массивы
массивы. C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
r4zieL
 Аватар для r4zieL
15 / 15 / 1
Регистрация: 24.01.2010
Сообщений: 46
30.03.2010, 00:43     массивы #2
Вот, сделал сортировку вставками, блочную лень делать. И учись писать нормально, а то в твоем коде черт ногу сломит.
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
88
89
90
91
92
#include <iostream>
#include <iomanip>
#include <time.h>
 
using namespace std;
 
int BinSearch(int* , int , int );
void Vivod_Massiva ( int* , int  );
void selectSort(int* ,  long );
 
int main()
{
    int kolichestvo_chisel, kol_iter,  i, gran_mas, k, result;
    cout << "vvedit' kilkist chisel= ";
    cin >> kolichestvo_chisel;
    cout << "vvedit' granicu= ";
    cin >> gran_mas;
    kol_iter = kolichestvo_chisel - 1;
    int* a = new int[kolichestvo_chisel];
    srand(time(0));
    for (i=0; i!=kolichestvo_chisel; i++)
        a[i] = rand() % (gran_mas + 1);
    cout << "Vivod Massiva Do Sortirovki: " << setw(4);
    Vivod_Massiva ( a , kolichestvo_chisel);
    selectSort(a, kolichestvo_chisel);
    cout << " Vivod Massiva Posle Sortirovki: " << endl;
     Vivod_Massiva ( a , kolichestvo_chisel);
    cout <<"\n";
    cout << "vvedite iskomiy element: ";
    cin >> k;
    if(k>gran_mas )
        cout << "element ne naiden";
    else
    {
        result = BinSearch(a, kolichestvo_chisel, k);
        if ( result == -1)
            cout << "element ne naiden";
        cout
            << "naiden v elemente massiva " << result << endl;
    }
    system("pause");
    return 0;
}
void Vivod_Massiva ( int b[], int mas1 )
{
    cout << "[";
    for ( int p=0; p!=mas1; p++ )
        cout << b[p] << " ";
    cout << "]\n";
}
 
void selectSort(int a[], long size) 
{
    long i, j, k;
    int x;
    for( i=0; i < size; i++) 
    { // i - номер текущего шага
        k=i; 
        x=a[i];
        for( j=i+1; j < size; j++) // цикл выбора наименьшего элемента
            if ( a[j] < x ) 
            {
                k=j; 
                x=a[j]; // k - индекс наименьшего элемента
            }
        a[k] = a[i]; 
        a[i] = x; // меняем местами наименьший с a[i]
    }
}
 
 
 
 
int BinSearch(int M[], int mas1, int k)
{
    int L = 0;
    int R = mas1;
    int m;
    if(k == M[0])
        return 0;
    while (L<R)
    {
        m = (L+R)/2;
        if (k > M[m]) L = m;
        if (k < M[m]) R = m;
        if (k == M[m]) break;
    }
    if(m>0)
        return m;
    else 
        return -1;
}
paradox92
 Аватар для paradox92
0 / 0 / 0
Регистрация: 27.02.2010
Сообщений: 38
30.03.2010, 11:14  [ТС]     массивы #3
Ещё раз спасибо! В том то и дело что только учусь, пока не умею оформлять код для лучшей читабельности.
fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
30.03.2010, 11:45     массивы #4
r4zieL, а твой то не лучше )
r4zieL
 Аватар для r4zieL
15 / 15 / 1
Регистрация: 24.01.2010
Сообщений: 46
30.03.2010, 13:35     массивы #5
Цитата Сообщение от fasked Посмотреть сообщение
r4zieL, а твой то не лучше )
Я его код скопировал и переделывал.
Yandex
Объявления
30.03.2010, 13:35     массивы
Ответ Создать тему
Опции темы

Текущее время: 21:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru