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

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

Войти
Регистрация
Восстановить пароль
 
Mrs_Black
0 / 0 / 0
Регистрация: 14.12.2008
Сообщений: 8
#1

Создание класса - C++

29.03.2009, 19:57. Просмотров 495. Ответов 0
Метки нет (Все метки)

Создайте класс – вектор (в пространстве Rn ). Класс должен содержать, по крайней
мере 2 члена ргivaте: количество координат и поинтер к типу long double. Количество координат должно быть статическим членом. Членами public будут методы: неявный конструктор, конструктор копирования, конструктор с параметрами для инициализации, деструктор и функции: модификации координат, доступа к координатам, вычисление длины вектора, вывод координат. Определите метод для вычисления среднего арифметического значения двух макимальных величин из 2-х векторов. Вычислите в функции main(), для 2 векторов, длину и среднее рифметического значения двух макимальных величин до и после модификации некоторой координаты. В main() используйте обычную переменную типа вектор и поинтер к типу вектор.

Добавлено через 1 минуту 21 секунду
ребята!желательно по примеру:

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
157
158
159
class punct
{ static int n; // кол-во координат
int *p; // поинтер к точке
int acces(); // доступ к координатам
 
public:
punct() // неявный конструктор
{ p = new int[n]; // создает объект и
} // не инициализирует его
punct( int n ); // конструктор с 1 параметром
// инициализирует координаты значением 0
punct( int n, int *p ); // конструктор с 2 параметрами
// инициализирует кол-во координат
// и их значения через параметры
punct( int *p ); // конструктор с 1 параметром
// инициализирует значения координат
// через параметры
punct( const punct& A ); // конструктор коприрования
~punct() // деструктор
{ if( p ) delete [] p;
p = 0;
cout << "\nУничтожен 1 объект!\n";
}
double dist_orig(); // расстояние до начала координат
double dist(punct *w); // расстояние между точками
int modifc(); // модифицируект одну координату
void cit(); // читает координаты точки
void show(); // выводит координаты точки
};
int punct::n=2; // инициализирует значением 0 кол-во координат,
// кот. Является статическим методом
punct::punct( int n ) // конструктор с 1 параметром
{ punct::n = n; // инициализирует координаты значением 0
p = new int[n];
for( int i=0; i < n; i++ )
p[i] = 0;
}
punct::punct( int n, int *p ) // конструктор с 2 параметрами
{ punct::n = n; // инициализирует кол-во координат
punct::p = new int[n]; // и их значения через параметры
for( int i = 0; i < n; i++ )
punct::p[i] = p[i];
}
punct::punct( int *p ) // конструктор с 1 параметром
{ punct::p = new int[n]; // инициализирует значения
for(int i = 0; i < n; i++ ) // координат через параметры
punct::p[i] = p[i];
}
punct::punct( const punct& A ) // конструктор коприрования
{ n = A.n;
p = new int[n];
for( int i = 0; i < n; i++ )
p[i] = A.p[i];
}
void punct::cit()
{ for( int i=1; i<=n; i++)
{ cout << "Введите координату " << i << ": ";
cin >> p[i-1]; } }
double punct::dist_orig()
{ double L=0;
for( int i = 0; i < n; i++ )
L+=(double)p[i]*p[i];
L = sqrt( L ); return L; }
double punct::dist(punct *w)
{ double L=0;
for( int i = 0; i < n; i++ )
L+=( w->p[i] - (double)p[i] ) * ( w->p[i] - (double)p[i] );
L = sqrt( L ); return L; }
int punct::modifc()
{ int m=acces(); if( m )
cin >> p[m-1];
return m; }
int punct::acces()
{ int m; cout << "Какую координту хотите менять? ";
cin >> m;
if( m<=0 || m>n )
{ cout << "Нет координаты с порядковым номером " << m << endl;
return 0; }
cout << "Координата " << m << " равна " << p[m-1] << endl;
cout << "Введите новое значение для этой координаты: ";
return m; }
void punct::show()
{ cout << endl << "Координаты точки:\n" << endl;
for( int i = 0; i < n; i++ )
{ cout << "x[" << i+1 << "]=" << p[i] << endl;} }
int main()
{ cout.precision(4);
int n, r; double m;
// Вызов неявного конструктора
// Строит неинициализированный объект A
// с 2 координатами
// Деструктор можно вызвать явно только, если перед его именем
// указано имя класса и оператор '::' !!!
punct A; A.show(); A.punct::~punct();
// Вызов неявного конструктора
// Строит неинициализированный объект
// с 2 координатами и поинтер
// B к этому объекту
punct *B = new punct; B->show(); B->punct::~punct();
// Вызов конструктора с 1 параметром int
// Строит объект C с 3 координатами,
// которые инициализированы значением 0
punct C(3); C.show(); C.punct::~punct();
// Вызов конструктора с 1 параметром int
// Строит объект с 4 координатаими,
// которые инициализируются значением 0 и
// поинтер D к этому объекту
punct *D = new punct(4);
D->show(); D->punct::~punct();
// Вызов конструктора с 2 параметрами: int и int *
// Строит объект E с 4 координатами,
// которые инициализируются значениями их массива x
int x[] = { 1,2,3,4 };
punct E(4,x); E.show(); E.punct::~punct();
_getch();
// Вызов конструктора с 2 параметрами: int и int *
// Строит объект с 5 координатами,
// которые инициализированы значениями из массива y
// и поинтер F к этому объекту
int y[] = { 11,12,13,14,15 };
punct *F = new punct(5,y); F->show(); F->punct::~punct();
// Вызов конструктора с 1 параметром int *
// Строит объект с 5 координатамиConstruieste un obiect cu 5 coordonate
// которые инициализированы значениями из массива z
int z[] = { 21,22,23,24,25,26 };
punct G(z); G.show(); G.punct::~punct();
// Вызов конструктора с 1 параметром int *
// Строит объект с 7 координатами,
// которые инициализированы значениями из массива t
// и поинтер H к этому объекту
int t[] = { 31,32,33,34,35,36,37 };
punct *H = new punct(7,t); H->show();
// Вызов конструктора копировнаия
// Строит объект I, который есть копия объекта,
// на который указывает поинтер H.
punct I = *H; I.show(); H->punct::~punct();
_getch();
// Вызов конструктора копирования
// Строит копию объекта I
// и поинтер J к этой копии
punct *J = &I; J->show(); J->punct::~punct();
cout << "Введите кол-во координат: "; cin >> n; cout << endl;
punct K(n); K.cit(); K.show(); m=K.dist_orig();
cout << "\nРасстояние OK: " << m << endl << endl;
punct *W=new punct(n); W->cit(); W->show(); m=W->dist_orig();
cout << "\nРасстояние OW: " << m << endl << endl;
cout << "Расстояние KW: " << K.dist(W) << endl;
n = K.modifc(); if( n )
{ cout << endl; K.show();
m=K.dist_orig(); cout << endl;
cout << "Расстояние OK: " << m << endl << endl; }
r = W->modifc(); if( r )
{ cout << endl; W->show();
m=W->dist_orig(); cout << endl;
cout << "Расстояние OW: " << m << endl << endl; }
if( n || r )
cout << "Расстояние KW: " << K.dist(W) << endl;
K.punct::~punct(); W->punct::~punct();
return 0; }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.03.2009, 19:57
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Создание класса (C++):

Создание объекта класса с полем являющимся объектом другого класса - C++
Bill a; cin&gt;&gt;a;//тут я ввел с помощью перегруженного оператора ElementSpiska c; //поля у Spiska(Bill A,int,string,int) ...

Возможно ли создание объекта шаблонного класса в функции этого класса? - C++
Доброго времени суток, уважаемые форумчане :) Мне по лабам задали задание - реализовать шаблон контейнера (множество) с операциями...

Создание указателя типа базового класса на экземпляр производного класса - C++
Добрый день! Иногда видел коды, где создавался указатель типа базового класса на объект класса - наследника, для чего это может применяться?

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

Явное создание экземпляра класса и явная специализация шаблона класса - C++
Всем добрый день! Не могу разобраться - эти две технологии дают один и тот же результат? В каких случаях применять одно и другое?...

Создание класса-списка на основе кода со списком без класса - C++
Здравствуйте. Не могли бы вы показать, как оформить этот код в виде класса. Смысл задания: это засунуть в список большое число(здесь я...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.03.2009, 19:57
Привет! Вот еще темы с ответами:

Пример класса с конструктором и деструктором, создание экземпляра класса через конструктор с параметрами - C++
Привести пример класса с конструктором и деструктором, созданием экземпляра класса с помощью конструктора с параметрами.

Создание статической функции класса, которая принимает экземпляр этого же класса как объект - C++
Привет. Есть такой код class Model { public: Model(); Model(int verticesSize, int facesSize); ~Model(); static void...

создание объекта класса в методе этого же класса - C++
собственно вопрос. можно ли создавать объект класса в методе того же класса? насколько это правильно и как это можно сделать (если это...

Создание экземпляр класса из другого класса - C++
Добрый день, форумчане. Помогите разобраться с такой плюсовенькой проблемой: есть 2 класса (назовем их A &amp; B). Нужно в классе B запустить...


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

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

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