никак не могу справиться с задачкой!-(
Классы, статические поля, массивы объектов, дружественные функции.
Задача 0.
Определить класс "материальная точка в трехмерном пространстве"
Поля объектов: координаты точки, масса точки, порядковый номер точки.
Поля класса: количество точек в текущий момент (созданных и не
уничтоженных), центр масс всех точек (созданных и не уничтоженных)
в виде объекта класса "материальная точка в трехмерном пространстве".
Методы: конструкторы (подсчитывающие точки, уточняющие центр масс),
деструктор (уменьшающий количество точек и изменяющий центр масс),
функции печати сведений о точке и центре масс и числе точек.В основной программе определить массив объектов класса "точка
в трехмерном пространстве". Количество точек (размер массива) ввести с клавиатуры. Присвоить координатам точек случайные
значения (использовать библиотечную функцию random(), заголовок
<cstdlib>), введя их нижнее и верхнее предельные значения.
Вывести сведения об объектах и совокупности точек…
#include <iostream>
#include <cstdlib>
using namespace std;
class point3 {
double x,y,z;
int m;
int num;
int static counter;
int static kol;
point3 static cent;
public:
point3(double xx=0, double yy=0, double zz=0,point3 mas[]=0) (xx), y(yy), z(zz) { m=1;
kol++;
counter++;
num=counter;
double pr1_x=0,
pr1_y=0,
pr1_z=0,
pr2=0;
for(int i=0;i<kol;i++){pr1_x=mas[i].m*mas[i].x+pr1_x;
pr1_y=mas[i].m*mas[i].y+pr1_y;
pr1_z=mas[i].m*mas[i].z+pr1_z;
pr2=mas[i].m+pr2;
}
cent.x=pr1_x/pr2;
cent.y=pr1_y/pr2;
cent.z=pr1_z/pr2;
}
void print(){
cout<<"Number="<<num<<"\t x="<<x<<"\t y="<<y<<"\t z="<<z<<"\t kolichestvo: "<<kol<<endl;
cout<<"Centre mass: "<<endl;
cent.print();
}
~point3(){
kol–;
}
};
int point3::kol=0;
int point3::counter=0;
point3 point3::cent=0;
int main(){
int k;
double pr_min=0;
double pr_max=10;
double xi,yi,zi;
cout<<"Enter number of points: ";
cin>>k;
point3 Tochka[k];
for(int i=0;i<k;i++){
xi=double(rand()*(double)(pr_max-pr_min)/RAND_MAX+pr_min);
yi=double(rand()*(double)(pr_max-pr_min)/RAND_MAX+pr_min);
zi=double(rand()*(double)(pr_max-pr_min)/RAND_MAX+pr_min);
Tochka[i]=point3(xi,yi,zi,Tochka); Tochka[i].print();
} return 0;}
29 октября 2008 в 23:02
Тогда надо либо ставить его на другую систему, либо ставить другой компилятор. Я бы посоветовал Visual Studio 2008 Express Edition. Можно бесплатно скачать с Мискрософта.
29 октября 2008 в 22:01
ну у меня специальность математик аналитик, видимо придеться научиться, так что советы мне очень как нужны=)
29 октября 2008 в 22:01
а компилятор не ставится на висту=(мне нужен djgpp
29 октября 2008 в 15:01
1) Не надо пытаться сделать программу без компилятора. Ты так не научишься *ничему*. Ставь компилятор, бери книжку по С++ и делай сама.
2) Визуал студия не показывает ошибки в правильных программах. Все 3 ошибки, которые ты показала, действительно являются ошибками.
e:\учеба\z0.cpp(68) : error C2057: expected constant expression
С++ позволяет объявлять массивы только заранее известного размера. k – не является "заранее известным" (constant expression).
e:\учеба\z0.cpp(68) : error C2466: cannot allocate an array of constant size 0
e:\учеба\z0.cpp(68) : error C2133: 'Tochka' : unknown size
Это – последствия предыдущей ошибки.
3) Господи боже мой, кто вас учит так писать?? Для начала скажи, собираешься ли ты быть программистом – если собираешься, то я объясню, что мне не нравится (а мне не нравится практически все) под залог того, что ты последуешь моим советам и будешь исправлять программу до тех пор, пока она не обретет приемлемую форму, если нет – то не буду тратить свое и твое время.
29 октября 2008 в 14:05
2 Анна Орловская
компилятор как бы намекает тебе, что не может определить размер массива во время компиляции
new/delete (ручное управление памятью) спасут мать русской демократии
29 октября 2008 в 13:00
это из визуал студии там у меня получается в половине правильных программ ошибки
29 октября 2008 в 12:05
есть, она сделана не до конца и ошибок много просто у меня компилятора нет не могу проверить сама
29 октября 2008 в 12:05
e:\учеба\z0.cpp(68) : error C2057: expected constant expression
e:\учеба\z0.cpp(68) : error C2466: cannot allocate an array of constant size 0
e:\учеба\z0.cpp(68) : error C2133: 'Tochka' : unknown size
29 октября 2008 в 12:04
Судя по тому, что программу ты написала, и по тому, что конкретного вопроса в посте не содержится, я заключаю, что на самом деле ты с задачкой справилась, никаких вопросов у тебя и нет, и тему можно удалить?