Informatică, întrebare adresată de AAAsayds, 9 ani în urmă

va rog foarte mult sa ma ajutati :
Să se definească o clasă punct cu 2 câmpuri x și y pentru coordonatele unui punct în plan. - Să se scrie constructori de inițializare si de copiere pentru clasa punct. - Să se scrie metode pentru citirea și afișarea variabilelor de tip punct. - Să se creeze o clasă triunghi formată din 3 puncte în plan. - Să se scrie constructori pentru clasa triunghi. - Să se scrie metode pentru citirea și afișarea obiectelor de tipul triunghi. - Să se scrie metode pentru calculul perimetrului și a ariei unui triunghi.(in c++ va rog foarte mult ca imi trebuie urgent)


artur99: Încă mai trebuie?
AAAsayds: da
AAAsayds: foarte tare

Răspunsuri la întrebare

Răspuns de artur99
3
#include <iostream>
#include <cmath>
using namespace std;

class punct{
    private:
        float x, y;

    public:
        punct(){
            // Ce treubie de facut in constructor?
        }
        void citire(){
            cout<<"Introduceti coordonatele punctului:\n";
            cout<<"X: ";
            cin>>x;
            cout<<"Y: ";
            cin>>y;
        }
        void afisare(){
            cout<<"Punct: ("<<x<<", "<<y<<")\n";
        }
        float getX(){
            return x;
        }
        float getY(){
            return y;
        }
};

class triunghi{
    private:
        punct p1, p2, p3;
        float distanta(float x1, float y1, float x2, float y2){
            return sqrt((x2-x1)*(x2-x1) + (y2-y1)*(y2-y1));
        }
    public:
        triunghi(){

        }
        void citire(){
            cout<<"Introduceti coordonatele triunghiului:\n";
            p1.citire();
            p2.citire();
            p3.citire();
        }
        void afisare(){
            cout<<"Triunghi: ";
            cout<<"("<<p1.getX()<<", "<<p1.getY()<<"); ";
            cout<<"("<<p2.getX()<<", "<<p2.getY()<<"); ";
            cout<<"("<<p3.getX()<<", "<<p3.getY()<<"); ";
            cout<<"\n";
            cout<<"Aria triunghiului: "<<aria()<<"\n";
            cout<<"Perimetrul triunghiului: "<<perimetrul()<<"\n";
        }
        float aria(){
            float x1 = p1.getX();
            float x2 = p2.getX();
            float x3 = p3.getX();
            float y1 = p1.getY();
            float y2 = p2.getY();
            float y3 = p3.getY();
            float det;

            det = x1*y2*1 + x2*y3*1 + x3*y1*1 - 1*y2*x3 - 1*y3*x1 - 1*y1*x2;
            det = abs(det);

            return det * 1/2;
        }
        float perimetrul(){
            float p = 0;
            float x1 = p1.getX();
            float x2 = p2.getX();
            float x3 = p3.getX();
            float y1 = p1.getY();
            float y2 = p2.getY();
            float y3 = p3.getY();

            p += distanta(x1, y1, x2, y2);
            p += distanta(x2, y2, x3, y3);
            p += distanta(x3, y3, x1, y1);

            return p;
        }

};



int main(){
    triunghi tr;

    tr.citire();
    tr.afisare();

    cout<<"Aria: "<<tr.aria();
    return 0;
}




Nu știu sigur cum se face constructorul de copiere. Dar presupun că merge și fără..? Sau nu știu, ai poate undeva vreun exemplu de cum ar trebui să arate acest minunat constructor?
Alte întrebări interesante