Операційні системи Зербіно Д.Д. / 1ооп
.docxВаріант 11
Створити клас – квадрат з полями у закритій частині: координати головної діагоналі. Визначити конструктор, деструктор, функції зміни значень полів і отримання їхніх значень, функції обчислення довжини сторони квадрата, площі, периметру. Функції зміни значень полів класу повинні перевіряти коректність параметрів, що задаються.
//Підключаєм необхідні бібліотеки
#include<iostream>
#include <cmath>
////////////////////////////////////
//Підключаємпостірімен
using namespace std;
////////////////////////////////////
classkvadrat
{
//Зихищеначастина
private:
//Координати
int x1, y1, x2, y2;
//Відкритачастина
public:
//Прототипи
//Конструкторибузпараметрів і з параметрами і деструктор
kvadrat();
kvadrat(int , int , int, int);
~kvadrat();
//функціяперевіркивведення
voidperevirka();
//функціяквадрату
doublesqr(double );
//функціязаданняпершоїточки
void setPole1();
//функціязаданнядругоїточки
void setPole2();
//Взяттяточок
int getX1();
int getX2();
int getY1();
int getY2();
//вертаєдовжинусторони
doublestorona();
//ВИводеплощуквадрата
voidploshcha();
//виводе периметр квадрата
voidperumetr();
};
////////////////////////////////////
kvadrat::kvadrat()
{
//онулюємвсікоординати
x1 = x2 = y1 = y2 = 0;
}
////////////////////////////////////
kvadrat::kvadrat(int x1, int y1, int x2, int y2)
{
//переприсвоюємзначенняпотрібнимзмінним
this->x1 = x1;
this->x2 = x2;
this->y1 = y1;
this->y2 = y2;
}
////////////////////////////////////
kvadrat::~kvadrat()
{
//Тут пусто боневиділялипамяті
}
////////////////////////////////////
voidkvadrat::perevirka()
{
//Якщоякасьзміннявідємнавиводимданеповідомлення
if(x1 < 0 || x2 < 0 || y1 < 0 || y2 < 0)
cout<< "Danivvedenonepravulno!" <<endl;
}
////////////////////////////////////
voidkvadrat::setPole1()
{
cout<< "Vvedit x i y dlya 1 tochku" <<endl;
//Зчитуєм 1 точку
cin>> x1 >> y1;
cout<<endl;
//робимперевірку
this->perevirka();
}
////////////////////////////////////
voidkvadrat::setPole2()
{
cout<< "Vvedit x i y dlya 2 tochku" <<endl;
//зчитуєм 2 точку
cin>> x2 >> y2;
cout<<endl;
//робимпровірку
this->perevirka();
}
////////////////////////////////////
intkvadrat::getX1()
{
//вертамзначення
return x1;
}
////////////////////////////////////
intkvadrat::getX2()
{
//вертамзначення
return x2;
}
////////////////////////////////////
intkvadrat::getY1()
{
//вертамзначення
return y1;
}
////////////////////////////////////
intkvadrat::getY2()
{
//вертамзначення
return y2;
}
////////////////////////////////////
doublekvadrat::storona()
{
//Рахуємдовжинудіагоналі
double k = sqrt(sqr(x1 - x2) + sqr(y1 - y2));
//рахуємдовжинусторони квадрату
double q = k / sqrt(2.0);
//Вертаємзначення
return q;
}
////////////////////////////////////
voidkvadrat::ploshcha()
{
//Виводимплощу
cout<< "Ploshchakvadrata = " <<sqr(this->storona()) <<endl;
}
////////////////////////////////////
voidkvadrat::perumetr()
{
//Виводим периметр
cout<< "Perumetrkvardata = " << 4 * this->storona() <<endl;
}
////////////////////////////////////
doublekvadrat::sqr(double x)
{
//Вертаєм квадрат
return x * x;
}
////////////////////////////////////
int main()
{
//Оголошуємзмінні
kvadrat a, b(1, 1, 2, 2);
//вводимточки
a.setPole1();
a.setPole2();
//Виводимпериметри і площіквадратів
a.perumetr();
a.ploshcha();
b.perumetr();
b.ploshcha();
//Оччищуєм буфер
fflush(stdin);
//Затримка
getchar();
//Вертаємпрограмі 0
return 0;
}