никак не могу справиться с задачкой!-(
Классы, статические поля, массивы объектов, дружественные функции.
Задача 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 в 12:04
Судя по тому, что программу ты написала, и по тому, что конкретного вопроса в посте не содержится, я заключаю, что на самом деле ты с задачкой справилась, никаких вопросов у тебя и нет, и тему можно удалить?
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 в 13:00
это из визуал студии там у меня получается в половине правильных программ ошибки
29 октября 2008 в 14:05
2 Анна Орловская
компилятор как бы намекает тебе, что не может определить размер массива во время компиляции
new/delete (ручное управление памятью) спасут мать русской демократии
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 в 22:01
ну у меня специальность математик аналитик, видимо придеться научиться, так что советы мне очень как нужны=)
29 октября 2008 в 22:01
а компилятор не ставится на висту=(мне нужен djgpp
29 октября 2008 в 23:02
Тогда надо либо ставить его на другую систему, либо ставить другой компилятор. Я бы посоветовал Visual Studio 2008 Express Edition. Можно бесплатно скачать с Мискрософта.
10 декабря 2019 в 12:30
adult peter pan elf shoe covers…
black clarks mens clarksbasketball high tops shoes adidas usversace vintage logo wool scarf for women uk online storetraining high tops shoes new arrivals adidas us…