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

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

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

Ошибка в рабочей программе (классы, обьекты, приватные члены) - C++

10.05.2009, 13:21. Просмотров 406. Ответов 0
Метки нет (Все метки)

Условие:
Создайте класс – vector. Класс должен содержать, по крайней мере, 3 члена private: количество координат точки, поинтер к типу long double и функцию доступа к координатам точки. количество координат должно быть статическим. Используйте методы: неявный , деструктор и функции: модификации координат, вычисление
длины вектора, вывод координат . Перегрузите операцию сложения для среднего арифмет значения среди двух максимальных элементов этих двух векторов.
Вычислите в функции main()длину двух векторов и среднее арифметическое двух максим элементов этих векторов до и после изменения какойлибо из их координат. В main() используйте обычную переменную типа vector и поинтер к типу vector. Перегруженная операция должна выдержать операцию присваивания!

Програма вроде работает... Надо чтобы у вектора 1 и 2 было разное кол-во, чтобы был вынужден менять этот n при переходе от одного вектора к другому.
если не трудно гляньте какие недочеты могут быть в программе??потому что мне за неё поставили 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
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
#include<stdio.h>
#include<iostream>
#include<conio.h>
#include<math.h>
using namespace std;
class vector
{ 
      
      static int n;
      long double* p;
      int acces();
      
      public:
         vector()
         {
           p = new long double[n];
         }
         vector(int s);
         ~vector() {
                   if(p) delete [] p;
                   p=0;
                   cout<<"\nObject Deleted ";
                  }
         long double operator +(vector &);
         int modifc();
         void fc(int d);
         long double dist();
         void read();
         void print(); 
                      
};
 
int vector::n=2;
 
void vector::fc(int d)
{ vector::n=d; }
 
vector::vector( int s )
{vector::n=s;
p = new long double[s];
for( int i=0; i < s; i++ )
p[i] = 0;
}   
 
void vector::read()
{  for( int i=1; i<=n; i++)
{cout << "Vvedite coordinatu " << i << ": ";
cin >> p[i-1];}}
 
int vector::acces()
{  int m; cout << "Kakuiu koordinatu hotite meneati? ";
cin >> m;
if( m<=0 || m>n )
{cout << "Net koordinati s poradkovim nomerom " << m << endl;
return 0;}
cout << "Koordinata " << m << " ravna " << p[m-1] << endl;
cout << "Vvedite novoe znacenie dlea etoi koordinati: ";
return m;}
 
int vector::modifc()
{  int m=acces(); if( m )
cin >> p[m-1];
return m; }
 
void vector::print()
{cout << endl << "Koordinati vectora:\n" << endl;
for( int i = 0; i < n; i++ )
{cout << "Coordinata[" << i+1 << "]=" << p[i] << endl;}}
 
long double vector::dist(){
long double s=0;
long double l=0;
for(int i=0;i<n;i++)
s+=(p[i]*p[i]);
l=sqrt(s);
cout<<"\nDlina vectora: "<<l<<endl;
return l;
}
 
long double vector::operator +(vector& L)
{  int i; long double av,max,max1;
max=p[0];max1=p[0];
for(int i=0;i<n;i++)
{
if(max<p[i]){ max=p[i];}
if(max1<L.p[i]){ max1=L.p[i];}
}
cout<<"\nmax V1="<<max<<" max V2="<<max1<<endl;
av=(max+max1)/2;
return av; }
 
 
int main()
 {
 
  int nr1,nr2;
 
 cout<<"\nVvedite koli4estvo koordinat I vector :";
 cin>>nr1;
 vector v1(nr1);
 v1.read();
 v1.print();
 long double ds1=v1.dist();
 
 
 
 cout<<"\nVvedite koli4estvo koordinat II vector :";
 cin>>nr2;
 vector* v2=new vector(nr2);
 v2->read();
 v2->print();
 long double ds2=v2->dist();
 
 if(nr2>nr1)v2->fc(nr2); 
 else  v1.fc(nr1);
 long double a;
 a=v1+*v2;
 cout<<"\nSredneea arfm. mejdu max. coordinatami dvuh vectorov "<<a<<endl<<endl; 
 
 cout<<"\n\nModificatia  1 vector\n";
 
 v1.fc(nr1);
 v1.print();
 v1.modifc();
 v1.print();
 ds1=v1.dist();
 
 
 cout<<"\nModificatia 2 vector\n";
 
 v2->fc(nr2);
 v2->print();
 v2->modifc();
 v2->print();
 ds2=v2->dist();
 
 if(nr2>nr1)v2->fc(nr2); 
 else  v1.fc(nr1);
  
  a=v1+*v2;
 cout<<"Sredneea arfm. posle modificatii mejdu max. coordinatami dvuh vectorov= "<<a<<endl<<endl; 
  
   
 getch();
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.05.2009, 13:21
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Ошибка в рабочей программе (классы, обьекты, приватные члены) (C++):

глючит ли VS08?видны приватные члены - C++
у меня классе в приватах есть член а скажем..в меине когда пишу объект. - открывается меню с членами и методами и в меню виден член...

Классы и обьекты - C++
Написать программу, в которой создаются и разрушаются объекты, определенного пользователем класса. Выполнить исследование вызовов ...

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

Классы и обьекты - C++
Извините, вот возник вопрос с заданием. А именно, как передать конструктору Patient параметры(Фамилия, имя и тд), так чтобы они были в...

Классы и обьекты - C++
Народ покажите плиз как это делается а то пока вьехать не могу((

Обьекты и классы - C++
Здравствуйте! Изучаю С++. Решил написать а-ля симулятор банкомата для закрепления материала, да вот чтот не срослось =(. Вот текст: ...

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

Непонятна тема (Классы содержащие другие классы, как данные члены ) - C++
Изучаю книгу Джесс Либерти(в частности эту главу в данный момент) #include &lt;iostream&gt; class Point { public: void SetX(int...

Классы и обьекты в С++. Выполнить исследование вызовов конструкторов и деструкторов - C++
Написать программу, в которой создаются и разрушаются обьекты, определенного пользователем класса. Выполнить исследование вызовов...

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

Классы (статические члены и конструктор копирования) - C++
Добрый вечер! Написал программку, все нормально работает, но есть два нюанса: необходимо сделать счетчик количества записей через...


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

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

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