С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

08.06.2010, 12:52. Просмотров 360. Ответов 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)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.06.2010, 12:52
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Маccив->Статический вызов -> и его использование (C++):

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

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

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

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

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

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

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

Добавлено через 23 часа 5 минут
help pliZzz=)
0
Sekt
156 / 155 / 10
Регистрация: 29.04.2009
Сообщений: 637
10.06.2010, 11:59 #4
у вас проблема с числом 78?
Ошибка ввода/вывода.
0
10.06.2010, 11:59
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.06.2010, 11:59
Привет! Вот еще темы с ответами:

создать статический массив строк как статический массив указателей на строки, задание ниже --> - C++
Слова английского текста, начинающиеся с гласных букв, рассортировать в алфавитном порядке по первой согласной букве слова. Остальные слова...

Дан класс, преобразуйте его в статический класс со статическими методами и продемонстрируйте работу с ним - C++
Дан класс, преобразуйте его в статический класс со статическими методами и продемонстрируйте работу с ним.

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

Итерационные циклы,Определение и вызов функций,Использование библиотечных функций stdio.h - C++
Помогите решить задания: 1.Дано натуральное число n. Найти разность между первой цифрой этого числа и суммой всех остальных. ...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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