You are on page 1of 4

LABORATOR 3

SARCINI REZOLVATE
Elev: Baltean Sergiu Profesor: Dascăl Adrian
Grupa: R-1722

Problema 1

Condiția
Adaugati la clasa Segment o functie pentru calculul lungimii.

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

class Punct{
public:
float x;
float y;
Punct(float x = 0, float y = 0);
~Punct();
void afisare();
};

Punct::Punct(float x, float y) {
this -> x = x;
this -> y = y;
cout << "Apel constructor cu parametri pentru clasa
Punct("<<x<<","<<y<<")"<<endl;
}

Punct::~Punct(){
cout << "Apel destructor clasa Punct. Se distruge obiectul
Punct("<<x<<","<<y<<")" <<endl;
}

void Punct::afisare(){
cout<<"("<<x<<","<<y<<")";
}

class Segment{
Punct o;
Punct v;
public:
Segment (float x1, float y1, float x2, float y2);
~Segment();
void printSegWidth();
void afisare();
};

Segment::Segment(float x1, float y1, float x2, float y2) : o(x1 ,y1), v(x2,y2)
{
cout << "Apel constructor clasa Segment" << endl;
cout << "Creat obiectul ";
afisare();
}

void Segment::printSegWidth() {
int length;

length = sqrt(pow(o.y - o.x, 2) + pow(v.y - v.x, 2));

cout << "Lungimea segmentului: " << length << endl;


}

Segment:: ~Segment(){
cout << "Apel destructor clasa Segment" << endl;
}

void Segment::afisare(){
cout << "[" ; o.afisare(); cout << " , " ; v.afisare(); cout << "]" <<
endl;
}

int main(){
Segment s(0, 0, 3 ,4);
s.afisare();
s.printSegWidth();

return 0;
}

Execuție
Program 1

Condiție
Implementati clasa PoligonRegulat.

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

#define PI 3.14159265359

class RegularPolygon {
int sides;
int sideLen;

public:
RegularPolygon(int sides, int sideLen);
void printArea();
void printPerimeter();
void printInscribedCircleD();
void printCircumscribedCircleD();
};

RegularPolygon::RegularPolygon(int sides, int sideLen) {


this->sides = sides;
this->sideLen = sideLen;
}

void RegularPolygon::printArea() {
double area;

area = (sides * (sideLen * sideLen) *


(cos((PI/sides)*PI/180)/sin((PI/sides)*PI/180))) / 4;

cout << "Area: " << area;


}

void RegularPolygon::printPerimeter() {
int perimeter = 0;
for(int i = 0; i < sides; i++) {
perimeter += sideLen;
}

cout << endl << "Perimeter: " << perimeter;


}

void RegularPolygon::printInscribedCircleD() {
int result;

result = sideLen * (cos((PI/sides)*PI/180)/sin((PI/sides)*PI/180));

cout << endl << "Inscribed Circle Diameter: " << result;
}

void RegularPolygon::printCircumscribedCircleD() {
int result;

result = sideLen * (1 / sin((PI/sides)*PI/180));

cout << endl << "Circumscribed Circle Diamater: " << result;
}

int main() {
int sides, sideLen;

cout << "Enter number of sides: ";


cin >> sides;
cout << "Enter side length (cm): ";
cin >> sideLen;

RegularPolygon object(sides, sideLen);


object.printArea();
object.printPerimeter();
object.printInscribedCircleD();
object.printCircumscribedCircleD();

return 0;
}

Execuție

You might also like