Loading...

Във форума е въведено ограничение, което позволява на потребителите единствено да разглеждат публикуваните въпроси.

tanev90 avatar tanev90 -1 Точки

Използване на метод в клас c++;

Ако има някой който разбира с++ да помага как да извикам тоя метод FaceRet в main например 

ArrRetangle a;

a.FaceRet() ------тука в скобите какво да пиша че да тръгне.

 

 

 

#include "stdafx.h"
#include <iostream>
#include <math.h>
using namespace std;

class ArrRectangle
{
private:
    double x, y;
    
    int *arr;
    int size;
public:
    ArrRectangle();
    ArrRectangle(double a, double b,double c,double d);
    void set();
    void Out();
    double FaceRet(ArrRectangle a, ArrRectangle b, ArrRectangle c, ArrRectangle d)
    {
        
        double  AC, CB;
        c.x = b.x;
        c.y = a.y;
        d.x = a.x;
        d.y = b.y;
        double s;
        AC = sqrt((a.x - d.x)*(a.x - d.x) + (a.y - d.y)*(a.y - d.y));
        CB = sqrt((c.x - b.x)*(c.x - b.x) + (c.y - b.y)*(c.y - b.y));
        s = AC*CB;
        cout << s << endl;
        return s;
    }


};
ArrRectangle::ArrRectangle(double a, double b, double c, double d)
{
    
}

void ArrRectangle::set()
{
    cout << "Stoinost za x" << endl;
    cin >> x;
    cout << "Stoinost za y" << endl;
    cin >> y;
}
void ArrRectangle::Out()
{
    cout << x << endl;
    cout << y << endl;
}
ArrRectangle::ArrRectangle()
{

}
 

int main()
{
    double a, b, c, d;
    cin >> a >> b >> c >> d;
    ArrRectangle t;
    t.set();

    t.FaceRet();;
    

    return 0;
}
 

Тагове:
-1
C++ Programming
Aguzelov avatar Aguzelov 78 Точки

Когато извикваш FaceRet(), трябва да зададеш като аргументи   ArrRectangle a, ArrRectangle b, ArrRectangle c, ArrRectangle d защото с такива параметри е декларирана  функцията!

Може да извикваш set() функцията в конструктора по подразбиране.

Като цяло какво трябва да прави този клас?

0
tanev90 avatar tanev90 -1 Точки

Да се декларира клас описващ точка в равнината с х,у координати и методи за въвеждане и извеждане на координатите.Да се декларира клас описващ правоъгълник по кординатните точки на диагонала.Класът да съдаржа методи за въвеждане и извеждане стойностите на кординатните двойки на двете точки и конструктор,който да изнициализира член данните на класа.Класът да съдаржа метод за намиране на лицето на правоъгълника.Да се създаде програма,която дефинира динамичен масив от n правоъгълника,въвежда стойност за кординатите и сортира правоъгълниците по тяхна големина по метода на пряка селекция.Сортирането на масива да се изварши чрез метод на класа.

Помагайте хора спешно ми е :).

нещо във функцията за пряка селекция бъркам май .

#include "stdafx.h"
#include <iostream>
#include <cmath>
using namespace std;
class Point {
private:
    double x, y;
public:
    void Set();
    void Out();
    double GetX();
    double GetY();
    Point();
};
Point::Point()
{
    x = y = 0;
}
double Point::GetX()
{
    return x;
}
double Point::GetY()
{
    return y;
}
void Point::Set()
{
    cout << "Stoinost za x" << endl;
    cin >> x;
    cout << "Stoinost za y" << endl;
    cin >> y;
}
void Point::Out()
{
    cout << x << endl;
    cout << y << endl;
}
class ArrRectangle
{
private:
    Point firstP, secondP;
    double side1, side2;
    int *arr;
    int size;
    int s;
public:
    ArrRectangle();
    ~ArrRectangle();
    double FaceRet();
    void InPut();
    void OutPut();
    /*void massive();*/
    void sortMassive();
    
};

ArrRectangle::ArrRectangle()
{
    cout << "Enter size of array: ";
    cin >> size;
    arr = new int[size];

}
ArrRectangle::~ArrRectangle()
{
    delete[] arr;
}
 void ArrRectangle::InPut()
{
     cout << "enter the first point cordinate" << endl;
    firstP.Set();
    cout << "enter the second point cordinate" << endl;
    secondP.Set();
}
 void ArrRectangle::OutPut()
 {
     firstP.Out();
     secondP.Out();
 }
double ArrRectangle::FaceRet()
 {
    side1= sqrt((firstP.GetX()- secondP.GetX())*(firstP.GetX() - secondP.GetX()) + (firstP.GetY() - firstP.GetY())*(firstP.GetY() - firstP.GetY()));
    side2 = sqrt((secondP.GetX() - secondP.GetX())*(secondP.GetX() - secondP.GetX()) + (firstP.GetY() - secondP.GetY())*(firstP.GetY() - secondP.GetY()));
    s = side1*side2;
    cout << s << endl;
    return s;
 }
//void ArrRectangle::massive()
// {  
//     
//     for (int i = 0; i < size; i++)
//     {
//         arr[i] = arr[s];
//         cout << "liceto na masiva e" << endl;
//         cout << arr[i] << endl;
//     }
// }
void ArrRectangle::sortMassive()
 {
    

     for (int i = 0; i < size; i++)
     {
         
         arr[i] = arr[s];
         cout << "liceto na masiva e" << endl;
         cout << arr[i] << endl;
     }
     for (int i = 0; i<size; ++i)
     {
         int min = i;
         for (int j = i; j<size; ++j)
             if (arr[min]>arr[j])
                 min = j;

         swap(arr[min], arr[i]);
     }

     for (int i = 0; i < size; i++)
     {

         cout << " " << arr[i] << "\t";
     }
         
     
 }
 int main()
 {
     double *Arr;
     int Size;
     cin >> Size;
     Arr = new double[Size];
     ArrRectangle a;
     for (size_t i = 0; i < Size; i++)
     {
         a.InPut();
         a.FaceRet();
         
     }
     a.sortMassive();
    
    
 }


    
 

0
Aguzelov avatar Aguzelov 78 Точки

От това което виждам, не въвеждаш стойностите в динамичния масив(така както ти се изисква в заданието). Мога да ти препоръчам http://www.learncpp.com .

0
tanev90 avatar tanev90 -1 Точки

Какви стойности трябва да въведа?

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.