singlepost

помощь!!! << На главную или назад  

никак не могу справиться с задачкой!-(
Классы, статические поля, массивы объектов, дружественные функции.

Задача 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) :x (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;}

43 ответов в теме “помощь!!!”

Страницы: [1] 2 3 4 5 »

  1. 1
    Жека Кирпичев ответил:

    Судя по тому, что программу ты написала, и по тому, что конкретного вопроса в посте не содержится, я заключаю, что на самом деле ты с задачкой справилась, никаких вопросов у тебя и нет, и тему можно удалить?

  2. 2
    Анна Орловская ответил:

    есть, она сделана не до конца и ошибок много просто у меня компилятора нет не могу проверить сама

  3. 3
    Анна Орловская ответил:

    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

  4. 4
    Анна Орловская ответил:

    это из визуал студии там у меня получается в половине правильных программ ошибки

  5. 5
    Артём Шалхаков ответил:

    2 Анна Орловская
    компилятор как бы намекает тебе, что не может определить размер массива во время компиляции

    new/delete (ручное управление памятью) спасут мать русской демократии

  6. 6
    Жека Кирпичев ответил:

    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) Господи боже мой, кто вас учит так писать?? Для начала скажи, собираешься ли ты быть программистом – если собираешься, то я объясню, что мне не нравится (а мне не нравится практически все) под залог того, что ты последуешь моим советам и будешь исправлять программу до тех пор, пока она не обретет приемлемую форму, если нет – то не буду тратить свое и твое время.

  7. 7
    Анна Орловская ответил:

    ну у меня специальность математик аналитик, видимо придеться научиться, так что советы мне очень как нужны=)

  8. 8
    Анна Орловская ответил:

    а компилятор не ставится на висту=(мне нужен djgpp

  9. 9
    Павел Потапов ответил:

    Тогда надо либо ставить его на другую систему, либо ставить другой компилятор. Я бы посоветовал Visual Studio 2008 Express Edition. Можно бесплатно скачать с Мискрософта.

  10. 10
    adult peter pan elf shoe covers ответил:

    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…

Страницы: [1] 2 3 4 5 »

Ответить

Пожалуйста, зарегистрируйтесь для комментирования.

Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.