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

Варіант 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;

}

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