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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
MAQSA
2 / 2 / 0
Регистрация: 18.04.2010
Сообщений: 119
#1

Маccив->Статический вызов -> и его использование - C++

08.06.2010, 12:52. Просмотров 345. Ответов 3
Метки нет (Все метки)

Помогите исправить ошибку. Суть в том, выводим массив, копируем его два раза. Нужно это копирование использовать и вывести отсортированный массив не трогая введенный массив, то есть работать тока с копиями.
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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
#ifndef Mass1_h
#define Mass1_h1
#include <iostream.h>
#include <locale.h>
#include<windows.h>
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include <conio.h>
#include<math.h>
//========================================================
template<class T>
class Array
{
public:
long itsSize;
int*itsPMass;
Array();
~Array();
T geta(int);
void puta(int, T &);
void bubbleSort(T*a,long size);
void print(T*a,long size);
void SetSize(long size){itsSize=size;};
float GetSize()const{return itsSize;};
private:
int *a;
};
#endif
//=================================================================
template<class T>
Array<T>::Array()
{int i;
itsPMass=new int[itsSize];
}
template<class T>
Array<T>::~Array()
{
int i;
for(i=0;i<itsSize;i++)
delete[]itsPMass;
}
 
template<class T>void bubbleSort(T *a,long size)
{
   int i, j, counter;
    int x;
    counter=0;
    for(i=0;i<size;i++)
    {
        for(j=size-1;j>i;j--)
        {
            if(a[j-1]>a[j])
            {
                x=a[j-1];
                a[j-1]=a[j];
                a[j]=x;
                         counter++;
            }
        }
    }
cout<<endl<<endl<<"KilKisTb perestanovok = "<<counter<<endl<<endl;
}
template<class T>void VSort(T *a, long size)
{
   int i, j,k, counter;
    int x;
    counter=0;
    for(i=0;i<size;i++)
    {  k=i; x=a[i];
        for(j=i+1;j<size;j++)
             if(a[j]<x)
            {
            k=j; x=a[j];
            }
                a[k]=a[i];
                a[i]=x;
             counter++;
 
        }
 
    cout<<"KilkisTb perestanovok ="<<counter<<endl<<endl;
    }
 
template<class T>void print(T *a,long n)
{
    for(int i=0;i<n;i++)
    cout<<a[i]<<" ";
}
template <class T>
T Array<T>:: geta(int k)
{
return a[k];
}
template <class T>
void Array<T>:: puta(int f,T &k)
{
a[f]=k;
}
 
//==================================================================
void main()
{
     clrscr();
     int i;
     srand(time(NULL));
     long SIZE;
     int *ar,k;
Array<int>*copy=new Array<int>;
Array<int>*copy1=new Array<int>;
Array<int>*copy2=new Array<int>;
clrscr();
 
cout<<"SIZE=>";
cin>>SIZE;
getch();
     cout<<endl<<"Vvedenuy massuv"<<endl;
     cout<<endl;
     cout<<"||||||||||||||||||||||||||||||||"<<endl;
         for(i=0;i<SIZE;i++)
        ar[copy->geta(i)]=rand()%100;
 
    for(i=0;i<SIZE;i++)
    {
    k=copy->geta(i);
    copy1->puta(i,k);
    copy2->puta(i,k);
    }
    for(i=0;i<SIZE;i++)
    cout<<ar[copy->geta(i)]<<" ";
    getch();
    cout<<endl<<"||||||||||||||||||||||||||||||||"<<endl;
    cout<<"         SORT BUBLE\n"<<endl;
    cout<<endl<<"Po4aTKoBuy massuv"<<endl;
    for(i=0;i<SIZE;i++)
    cout<<ar[copy1->geta(i)]<<" ";
 
    bubbleSort(ar,SIZE);
    cout<<endl<<"Vidsortovanuy masuv"<<endl;
    for(i=0;i<SIZE;i++)
    cout<<ar[copy1->geta(i)]<<" ";
    getch();
    cout<<endl<<"           SORT Vubory\n";
    cout<<endl<<"Po4aTKoBuy massuv"<<endl;
    for(i=0;i<SIZE;i++)
    cout<<ar[copy2->geta(i)]<<" ";
    cout<<"\n";
    VSort(ar,SIZE);
    cout<<endl<<"Vidsortovanuy masuv"<<endl;
 
    for(i=0;i<SIZE;i++)
    cout<<ar[copy2->geta(i)]<<" ";
 
getch();
}
я не верно вывожу отсортированные массивы и еще наверное не верно использую VSort(ar,SIZE); ar уже раньше использовался для сортировки, а я еще раз его взял.

Добавлено через 1 час 19 минут
Help pliZzz)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.06.2010, 12:52     Маccив->Статический вызов -> и его использование
Посмотрите здесь:

Использование статический данных в классах - C++
Добрый день! Помогите, пожалуйста! Есть задача: создать в классе статическое поле - годовой процент. И присвоить этому полю какое-либо...

Объявить статический массив размерности 20. Заполнить его «случайным образом»... - C++
Задача 2. Объявить статический массив размерности 20. Заполнить его «случайным образом». Объявить два указателя: на начало и на конец...

Как вернуть статический массив из метода и присвоить его производному классу? - C++
class A { float mas; public: float GetMas(){return mas;} }; class B: public A { B(const A&amp; obj) {

Создать статический массив на 10 элементов и заполнить его случайными числами из диапазона [0;5] - C++
Знает кто-то, как решить задачу на С++? Создать статический массив на 10 элементов и заполнить его случайными числами из диапазона ....

Подскажите простую реализацию динамического массива и его использование с возможностью изменения его размера - C++
Подскажите простую реализацию динамического масива и его использование с возможностью изменения его размера........спасибо))) ...

Вызов size контейнера vector при его передаче в функцию по ссылке - C++
Как по-правильному вызвать size контейнера vector, если он передаётся в функцию по ссылке? Можно, конечно, передать размер как отдельный...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Sekt
156 / 155 / 10
Регистрация: 29.04.2009
Сообщений: 637
08.06.2010, 15:07     Маccив->Статический вызов -> и его использование #2
C++
1
2
template<class T>void print(T *a,long n) 
{ for(int i=0;i<n;i++) cout<<a[i]<<" "; }
К какому классу она относится?
MAQSA
2 / 2 / 0
Регистрация: 18.04.2010
Сообщений: 119
09.06.2010, 17:48  [ТС]     Маccив->Статический вызов -> и его использование #3
Sekt, я его не использую пока что, понял что не включил в класс Еррей, но я в драйвере вывожу все вручну.

Добавлено через 53 минуты
Я вот переделал немного, так лучше будет
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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
#ifndef Mass1_h
#define Mass1_h1
#include <iostream.h>
#include <locale.h>
#include<windows.h>
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include <conio.h>
#include<math.h>
 
template<class T>
class Array
{
public:
long itsSize;
int*itsPMass;
Array();
~Array();
T geta(int);
void puta(int, T &);
void bubbleSort(T a,long size);
void VSort(T i,long size);
void print(T*a,long size);
void SetSize(long size){itsSize=size;};
float GetSize()const{return itsSize;};
private:
int *a;
};
#endif
//=================================================================
template<class T>
Array<T>::Array()
{int i;
itsPMass=new int[itsSize];
}
template<class T>
Array<T>::~Array()
{
int i;
for(i=0;i<itsSize;i++)
delete[]itsPMass;
}
 
template<class T>void Array<T>::bubbleSort(T i,long size)
{
   int  j, counter;
    int x;
    counter=0;
    for(i=0;i<size;i++)
    {
        for(j=size-1;j>i;j--)
        {
            if(a[j-1]>a[j])
            {
                x=a[j-1];
                a[j-1]=a[j];
                a[j]=x;
                         counter++;
            }
        }
    }
cout<<endl<<endl<<"KilKisTb perestanovok = "<<counter<<endl<<endl;
}
template<class T>void Array<T>::VSort(T i, long size)
{
   int j,k, counter;
    int x;
    counter=0;
    for(i=0;i<size;i++)
    {  k=i; x=a[i];
        for(j=i+1;j<size;j++)
             if(a[j]<x)
            {
            k=j; x=a[j];
            }
                a[k]=a[i];
                a[i]=x;
             counter++;
 
        }
 
    cout<<"KilkisTb perestanovok ="<<counter<<endl<<endl;
    }
 
template<class T>void print(T *a,long n)
{
    for(int i=0;i<n;i++)
    cout<<a[i]<<" ";
}
template <class T>
T Array<T>:: geta(int k)
{
return a[k];
}
template <class T>
void Array<T>:: puta(int f,T &k)
{
a[f]=k;
}
 
//==================================================================
void main()
{
     clrscr();
     int i;
     srand(time(NULL));
     long SIZE;
     int c,ar,k;
Array<int>A;
Array<int>*a0=new Array<int>;
Array<int>*a1=new Array<int>;
Array<int>*a2=new Array<int>;
clrscr();
 
cout<<"SIZE=>";
cin>>SIZE;
getch();
     cout<<endl<<"Vvedenuy massuv"<<endl;
     cout<<endl;
     cout<<"||||||||||||||||||||||||||||||||"<<endl;
         for(i=0;i<SIZE;i++)
        {ar=random(100);
        a0->puta(i,ar);}
    for(i=0;i<SIZE;i++)
    {
    k=a0->geta(i);
    a1->puta(i,k);
    a2->puta(i,k);
    }
    for(i=0;i<SIZE;i++)
    cout<<a0->geta(i)<<" ";
    getch();
    cout<<endl<<"||||||||||||||||||||||||||||||||"<<endl;
    cout<<"         SORT BUBLE\n"<<endl;
    cout<<endl<<"Po4aTKoBuy massuv"<<endl;
    for(i=0;i<SIZE;i++)
    cout<<a1->geta(i)<<" ";
    A.bubbleSort(ar,SIZE);
    cout<<endl<<"Vidsortovanuy masuv"<<endl;
    for(i=0;i<SIZE;i++)
    cout<<a1->geta(i)<<" ";
    getch();
    cout<<endl<<"           SORT Vubory\n";
    cout<<endl<<"Po4aTKoBuy massuv"<<endl;
    for(i=0;i<SIZE;i++)
    cout<<a2->geta(i)<<" ";
    cout<<"\n";
    A.VSort(ar,SIZE);
    cout<<endl<<"Vidsortovanuy masuv"<<endl;
 
    for(i=0;i<SIZE;i++)
    cout<<a2->geta(i)<<" ";
 
getch();
}
А вот результат http://s005.***********/i209/1006/a9/317620ea9db5.jpg

Добавлено через 23 часа 5 минут
help pliZzz=)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.06.2010, 11:59     Маccив->Статический вызов -> и его использование
Еще ссылки по теме:

Считать одномерный массив с файла, отсортировать его использую рекурсивный вызов функции - C++
Нужно написать прогу на Си, самую элементарную... Считать одномерный массив с файла, отсортировать его использую рекурсивный вызов функции,...

Класс Tcanvas. Его использование - C++
Можно ли работать с классом TCanvas в Visual Studio 2010 ??? Заранее Спасибо !!

Объявление итератора и его использование - C++
Как правильно объявлять итератор? В каких случаях используется? Можно ли через итератор получить доступ к элементу вектора(записать,...

__stdcall в файле Dll и его использование в екселе - C++
Здраствуйте. У меня вопрос по длл. Я создал дллку через .def file LIBRARY square EXPORTS square и в сорсе добавил описание...

Реализация алгоритма Sha224 и использование его в программе - C++
Добрый вечер, уважаемые Форумчане! Моя цель написать программу, которая : 1) Создает текстовый файл (выполнено) 2) Заполняет его при...

Пересоздание массива в функции и дальнейшее его использование в main - C++
Почему, когда я вызываю std::cout &lt;&lt; _list в функции, то вывод идет нормальный, а когда в main, то выводится не то, что нужно ? ...


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

Или воспользуйтесь поиском по форуму:
Sekt
156 / 155 / 10
Регистрация: 29.04.2009
Сообщений: 637
10.06.2010, 11:59     Маccив->Статический вызов -> и его использование #4
у вас проблема с числом 78?
Ошибка ввода/вывода.
Yandex
Объявления
10.06.2010, 11:59     Маccив->Статический вызов -> и его использование
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru