Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
12
Добавлен:
12.02.2016
Размер:
28.49 Кб
Скачать

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();

//виводе периметр квадрата

doubleperumetr();

//перевизначаємоператири + і -

void operator + (int);

void operator - (int);

//перевизначаємлогічніелементи

int operator < (kvadrat&);

int operator > (kvadrat&);

int operator == (kvadrat&);

//перевизначаємпотокивведенняівиведення

friendistream& operator >> (istream&, kvadrat&);

friendostream& operator << (ostream&, kvadrat&);

};

////////////////////////////////////

istream& operator >> (istream& is, kvadrat& x)

{

cout<< "Vveditznachennya x i y pershoyitochkipotimdrygoyi" <<endl;

//зчитуємкоординати

is>> x.x1 >> x.y1 >> x.x2 >> x.y2;

cout<<endl;

return is;

}

////////////////////////////////////

ostream& operator << (ostream&os, kvadrat& x)

{

//виводимточки

os<< "Tochka x1 = " << x.x1 << "\nTochka y1 = " << x.y1 << "\nTochka x2 = " << x.x2 << "\nTochka y2 = " << x.y2 <<endl;

returnos;

}

////////////////////////////////////

voidkvadrat::operator + (int x)

{

//збільшуємкоординати на х

x2 += x;

y2 += x;

}

////////////////////////////////////

voidkvadrat::operator - (int x)

{

//збменшуємкоординати на х

x2 -= x;

y2 -= x;

}

////////////////////////////////////

intkvadrat::operator < (kvadrat& x)

{

//якщовінменшийвідсилаємвірність

if(this->perumetr() <x.perumetr())

return 1;

else

return 0;

}

////////////////////////////////////

intkvadrat::operator > (kvadrat& x)

{

//якщовінбільшийвідсилаємвірність

if(this->perumetr() >x.perumetr())

return 1;

else

return 0;

}

////////////////////////////////////

intkvadrat::operator == (kvadrat& x)

{

//якщовонирівнівідсилаємвірність

if(this->perumetr() == x.perumetr())

return 1;

else

return 0;

}

////////////////////////////////////

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;

}

////////////////////////////////////

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;

}

////////////////////////////////////

doublekvadrat::perumetr()

{

//Передаємпериметр

return 4 * this->storona();

}

////////////////////////////////////

doublekvadrat::sqr(double x)

{

//Вертаєм квадрат

return x * x;

}

////////////////////////////////////

int main()

{

//Оголошуємзмінні

kvadrat a, b(1, 1, 2, 2);

//Зчитуємкоординати

cin>> a;

//виводимкоординати

cout<< a;

//Виводимпериметри і площіквадратів

cout<< "Perumetr = " <<a.perumetr() <<endl;

a.ploshcha();

cout<< "Perumetr = " <<b.perumetr() <<endl;

b.ploshcha();

if(a < b)

cout<< "a < b" <<endl;

else

if(a > b)

cout<< "a > b" <<endl;

else

if(a == b)

cout<< "a == b" <<endl;

a + 3;

cout<< a <<endl;

a - 2;

cout<< a <<endl;

//Оччищуємбуфер

fflush(stdin);

//Затримка

getchar();

//Вертаємпрограмі 0

return 0;

}

Соседние файлы в папке Операційні системи Зербіно Д.Д.