З об’єктно-орієнтованого програмування 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

З об’єктно-орієнтованого програмування



Звіт з навчальної практики

З об’єктно-орієнтованого програмування

 

Керівник Жуковець О.О.

(підпис, посада, прізвище, ініціали)

 

Студент гр. 35 спец. 5.05010301 Лошманова С.В.

(група, спеціальність, підпис, прізвище, ініціали)

 


 

Зміст

Тема 1. Класи, об'єкти, вказівник this………………………………………..………………………3

Тема 2. Конструктори, деструктори……………………………………………….………………..17

Тема 3. Дружні функції і класи………………………………………………………….…………..20

Тема 4. Перевантаження операцій………………………………….……………………………….22


 

Тема 1. Класи. Об'єкти. Вказівник this.

Мета: Вивчити структуру класу (компоненти класу). Розглянути атрибути доступу. Розглянути принцип роботи.

Індивідуальне завдання 1

Створити клас типу – квадрат. Поля – сторона. Функції-члени вичисляють площу, периметр, встановлює поля і повертають значення. Функції-члени встановлення полів класу повинні перевіряти коректність заданих параметрів.

Текст програми

#include <iostream>

#include <conio.h>

#include <math.h>

 

using namespace std;

 

class Kvadrat \\ створюємо клас

{

public:

Kvadrat(double, double, double, double);

double fooP();

double fooS();

private:

double x1, y1, x2, y2;

double perimetr;

double square;

};

 

Kvadrat::Kvadrat(double a, double b, double c, double d)

{

x1 = a; y1 = b; x2 = c; y2 = d;

 

if ((sqrt(((x2 - x1)*(x2 - x1)) + ((y2 - y1)*(y2 - y1)))) <= 0) // умова

 

cout << "Данные координаты не верны!" << endl;

 

else

{

cout << "Координаты начала и конца одной из сторон квадрата: "

<< "(" << x1 << "," << y1 << ")" << " и " << "(" << x2 << "," << y2 << ")" << endl << endl;

}

}

double Kvadrat::fooP()

{

perimetr = ((sqrt(((x2 - x1)*(x2 - x1)) + ((y2 - y1)*(y2 - y1)))) + (sqrt(((x2 - x1)*(x2 - x1)) + ((y2 - y1)*(y2 - y1))))) / 2; // обчислюємо периметр

return perimetr;

}

double Kvadrat::fooS()

{

square = (sqrt(((x2 - x1)*(x2 - x1)) + ((y2 - y1)*(y2 - y1))) * sqrt(((x2 - x1)*(x2 - x1)) + ((y2 - y1)*(y2 - y1)))); // обчислюємо площу

return square;

}

 

Kvadrat q(double, double, double, double);

 

int main()

{

double x1, y1, x2, y2;

cout << "Введите x1: " << endl;

cin >> x1;

cout << "Введите y1: " << endl;

cin >> y1;

cout << "Введите x2: " << endl;

cin >> x2;

cout << "Введите y2: " << endl;

cin >> y2;

Kvadrat w = Kvadrat(x1, y1, x2, y2);

cout << "Периметр квадрата равен: " << w.fooP();

cout << endl;

cout << "Площадь квадрата равна: " << w.fooS();

getch();

return 0;

}

Результат роботи програми:

Рисунок 1.1


 

Індивідуальне завдання 2

Розробити підпрограми роботи з деком. Дек організований на масиві із циклічним заповненням та із зсувом. Операції виконуються з обох кінців дека.

Текст програми

#include <iostream.h>

#include <conio.h>

#define n 10

Class Dec// оглошуємо клас

{

public:

void revers(int dec[n]){

char v;

do {// заповнення дека

for(int i=0;i<n;i++) dec[i]=dec[i+1];

cin>>dec[n];

cout<<"Continue(y/n)"; cin>>v;

clrscr();

}

while(v!='n');

}

void not_revers(int dec[n]){

char v;

do {

for(int i=n;i>=0;i--) dec[i]=dec[i-1];

cin>>dec[0];

cout<<"Continue(y/n)"; cin>>v;

clrscr();

}

while(v!='n');

}

void Pocaz_Dec(int dec[n]){

for(int i=0;i<n;i++) cout<<dec[i]<<"\t";

getch();

}

};

void main(){

Dec asdf;

int dec[n];

int v;

for(int i=0;i<n;i++) dec[i]=0;

start:clrscr();

cout<<"1-S konca\n";

cout<<"2-S nachala\n";

cout<<"3-Pokazat` Dec\n";

cout<<"4-Exit\n";

cout<<"Sdelaite vibor-> "; cin>>v;

switch(v){

case 1:asdf.revers(dec); goto start;

case 2:asdf.not_revers(dec); goto start;

case 3:asdf.Pocaz_Dec(dec); goto start;

}

getch();

}

Результат роботи програми:

Рисунок 1.2


Індивідуальне завдання 3

Створити клас матриця. Даний клас містить покажчик на int,

Розмір рядків і стовпців і стан помилки. Визначити конструктор без

Параметрів, конструктор з одним параметром і конструктор з двома

Параметрами, деструктор. Визначити методи доступу: повертати значення

Елемента (i, j) і адресу цього елемента. Визначити функцію друку. визначити

Функції додавання і віднімання (матриці з матрицею), множення матриці на

Матрицю. Визначити множення матриці на число. Перевірити роботу цього

Класу. У разі нестачі пам'яті, невідповідності розмірностей, виходу за

Межі встановлювати код помилки.

Текст програми

#include "iostream.h"

using namespace std;

class Matrix {

public:

int **A; //вказівник

int N;

Matrix () {}

Matrix(int N,int M) // заповнюємо матрицю

{ A= new int*[N];

for (int i = 0; i < N; i++)

A[i] = new int[N];

for (int i = 0; i < N; i++) {

for (int j = 0; j < M; j++) {

A[i][j]=rand()%10; }}

}// виконання операцій

void Show(Matrix &obj,int N,int M){

int i,j;

for(i=0; i<N; i++){

for(j=0; j<M; j++){

cout<<" "<<A[i][j];}

cout <<endl; }

cout <<endl;

}

Matrix Matrix::Add(Matrix obj,int N,int M){

Matrix result(N,M);

for(int i=0;i<N;i++)

for(int j=0;j<M;j++) { result.A[i][j]=0;

result.A[i][j]+=A[i][j] + obj.A[i][j];}

return result;

}

Matrix Matrix::Sub(Matrix obj,int N,int M){

Matrix result(N,M);

for(int i=0;i<N;i++)

for(int j=0;j<M;j++) { result.A[i][j]=0;

result.A[i][j]+=A[i][j] - obj.A[i][j];}

return result;

}

Matrix Matrix::Mul_nf(int N,int M,int num){

Matrix result(N,M);

for(int i=0;i<N;i++)

for(int j=0;j<M;j++) { result.A[i][j]=0;

result.A[i][j]+=A[i][j]*num;}

return result;

}

Matrix Matrix::Mul_ns(Matrix obj,int N,int M,int num){

Matrix result(N,M);

for(int i=0;i<N;i++)

for(int j=0;j<M;j++) { result.A[i][j]=0;

result.A[i][j]+=obj.A[i][j]*num;}

return result;

}

Matrix Matrix::Mul(Matrix obj,int N,int M){ // моження матриці на матрицю

Matrix result(N,M);

for(int k=0; k<N;k++)

for(int i=0;i<M;i++) { result.A[k][i]=0;

for(int j=0;j<M;j++)

result.A[k][i]+=A[k][j] * obj.A[j][i];}

return result;

}

int accept(int i,int j) {return A[i][j]; }

int* accept_ad(int i,int j) {return &A[i][j]; }

};

void main(void) // тіло програми

{

int n_,m_,num,n,m;

char cs;

srand(time(0));

Matrix result; // виводимо результат на екран

system("cls");

cout<<"Size:"<<endl<<"Rows: ";

cin>>n;

cout<<"Cols: ";

cin>>m;

system("cls");

Matrix first(n,m); // перша матриця

Matrix second(n,m); // друга матриця

do { system("cls");// очистка вікна

first.Show(first,n,m);

second.Show(second,n,m);

cout << "1.Add.\n"

<< "2.Sub.\n"

<< "3.Mult.\n"

<< "4.Mult on number(first matrix).\n"

<< "5.Mult on number(second matrix).\n"

<< "6.Accept to element(first matrix).\n"

<< "7.Accept to element(second matrix).\n"

<< "0.Exit.\n";

cout<<endl<<"Enter: ";cin>>cs;

cout<<endl<<"Result:"<<endl;

switch(cs)

{

case'1':{ result=first.Add(second,n,m); result.Show(result,n,m);break;}

case'2':{ result=first.Sub(second,n,m); result.Show(result,n,m);break;}

case'3':{ result=first.Mul(second,n,m); result.Show(result,n,m);;break;}

case'4':{ cout<<"Enter number: "; cin>>num; result=first.Mul_nf(n,m,num); result.Show(result,n,m);;break;}

case'5':{ cout<<"Enter number: "; cin>>num; result=first.Mul_ns(second,n,m,num); result.Show(result,n,m);;break;}

case'6':{ cout<<"Row: "; cin>>n_; cout<<"Col: "; cin>>m_; cout<<"A[Row][Col] = "<<first.accept(n_,m_)<<endl;

cout<<"&A[Row][Col] = "<<first.accept_ad(n_,m_)<<endl; break;}

case'7':{ cout<<"Row: "; cin>>n_; cout<<"Col: "; cin>>m_; cout<<"A[Row][Col] = "<<second.accept(n_,m_)<<endl;

cout<<"&A[Row][Col] = "<<second.accept_ad(n_,m_)<<endl; break;}

default:exit(1);

}

system("PAUSE");} while(1);

}

Результат роботи програми:

Рисунок 1.3


 

Індивідуальне завдання 4

Текст програми

#include "iostream.h"

using namespace std;

class Matrix {

public:

int **A; //вказівник

int N;

Matrix () {}

Matrix(int N,int M) // заповнюємо матрицю

{ A= new int*[N];

for (int i = 0; i < N; i++)

A[i] = new int[N];

for (int i = 0; i < N; i++) {

for (int j = 0; j < M; j++) {

A[i][j]=rand()%10; }}

}// виконання операцій

void Show(Matrix &obj,int N,int M){

int i,j;

for(i=0; i<N; i++){

for(j=0; j<M; j++){

cout<<" "<<A[i][j];}

cout <<endl; }

cout <<endl;

}

Matrix Matrix::Add(Matrix obj,int N,int M){

Matrix result(N,M);

for(int i=0;i<N;i++)

for(int j=0;j<M;j++) { result.A[i][j]=0;

result.A[i][j]+=A[i][j] + obj.A[i][j];}

return result;

}

Matrix Matrix::Sub(Matrix obj,int N,int M){

Matrix result(N,M);

for(int i=0;i<N;i++)

for(int j=0;j<M;j++) { result.A[i][j]=0;

result.A[i][j]+=A[i][j] - obj.A[i][j];}

return result;

}

Matrix Matrix::Mul_nf(int N,int M,int num){

Matrix result(N,M);

for(int i=0;i<N;i++)

for(int j=0;j<M;j++) { result.A[i][j]=0;

result.A[i][j]+=A[i][j]*num;}

return result;

}

Matrix Matrix::Mul_ns(Matrix obj,int N,int M,int num){

Matrix result(N,M);

for(int i=0;i<N;i++)

for(int j=0;j<M;j++) { result.A[i][j]=0;

result.A[i][j]+=obj.A[i][j]*num;}

return result;

}

Matrix Matrix::Mul(Matrix obj,int N,int M){ // моження матриці на матрицю

Matrix result(N,M);

for(int k=0; k<N;k++)

for(int i=0;i<M;i++) { result.A[k][i]=0;

for(int j=0;j<M;j++)

result.A[k][i]+=A[k][j] * obj.A[j][i];}

return result;

}

int accept(int i,int j) {return A[i][j]; }

int* accept_ad(int i,int j) {return &A[i][j]; }

};

void main(void) // тіло програми

{

int n_,m_,num,n,m;

char cs;

srand(time(0));

Matrix result; // виводимо результат на екран

system("cls");

cout<<"Size:"<<endl<<"Rows: ";

cin>>n;

cout<<"Cols: ";

cin>>m;

system("cls");

Matrix first(n,m); // перша матриця

Matrix second(n,m); // друга матриця

do { system("cls");// очистка вікна

first.Show(first,n,m);

second.Show(second,n,m);

cout << "1.Add.\n"

<< "2.Sub.\n"

<< "3.Mult.\n"

<< "4.Mult on number(first matrix).\n"

<< "5.Mult on number(second matrix).\n"

<< "6.Accept to element(first matrix).\n"

<< "7.Accept to element(second matrix).\n"

<< "0.Exit.\n";

cout<<endl<<"Enter: ";cin>>cs;

cout<<endl<<"Result:"<<endl;

switch(cs)

{

case'1':{ result=first.Add(second,n,m); result.Show(result,n,m);break;}

case'2':{ result=first.Sub(second,n,m); result.Show(result,n,m);break;}

case'3':{ result=first.Mul(second,n,m); result.Show(result,n,m);;break;}

case'4':{ cout<<"Enter number: "; cin>>num; result=first.Mul_nf(n,m,num); result.Show(result,n,m);;break;}

case'5':{ cout<<"Enter number: "; cin>>num; result=first.Mul_ns(second,n,m,num); result.Show(result,n,m);;break;}

case'6':{ cout<<"Row: "; cin>>n_; cout<<"Col: "; cin>>m_; cout<<"A[Row][Col] = "<<first.accept(n_,m_)<<endl;

cout<<"&A[Row][Col] = "<<first.accept_ad(n_,m_)<<endl; break;}

case'7':{ cout<<"Row: "; cin>>n_; cout<<"Col: "; cin>>m_; cout<<"A[Row][Col] = "<<second.accept(n_,m_)<<endl;

cout<<"&A[Row][Col] = "<<second.accept_ad(n_,m_)<<endl; break;}

default:exit(1);

}

system("PAUSE");} while(1);

}

Результат роботи програми:

Рисунок 1.4


 

Індивідуальне завдання 5

Створити абстрактний тип даних – клас вектор, який має покажчик на int, число елементів і змінну стану. Визначити конструктор без параметрів, конструктор з параметром, конструктор із двома параметрами. Конструктор без параметрів виділяє місце для одного елемента і ініціалізує його в нуль. Конструктор з одним параметром, - розмір вектора, - виділяє місце і ініціалізує номером в масиві, конструктор із двома параметрами виділяє місце (перший аргумент) і ініціалізує другим аргументом. Деструктор звільняє пам'ять. Визначити функцію, яка присвоює елементу масиву деяке значення (параметр за замовчуванням), функцію, яка отримує певний елемент масиву. У змінну стану встановлювати код помилки, коли не вистачає пам'яті, виходить за межі масиву. Визначити функцію друку. Визначити функції складання, множення, віднімання, які виробляють ці арифметичні операції з даними цього класу і вбудованого int. Визначити методи порівняння: більше, менше або дорівнює. Передбачити можливість підрахунку числа об'єктів даного типу. Перевірити роботу цього класу.

Текст програми

#include <iostream.h>

#include <conio.h>

#include <math.h>

class Vector{

public:

int *a; // вказівник

Return true; else

return false;

}

}

bool Vector::operator>(Vector v){

if(k!=v.k) {

cout<<"Error, vectors must be identical size";

return false;

} else{

float v1=0,v2=0;

for(int i=0;i<k;i++) v1+=a[i]*a[i];

for(int i=0;i<k;i++) v2+=v.a[i]*v.a[i];

if(sqrt(v1)>sqrt(v2))

Return true; else

return false;

}

}

bool Vector::operator==(Vector v){

if(k!=v.k) {

cout<<"Error, vectors must be identical size";

return false;

} else{

float v1=0,v2=0;

for(int i=0;i<k;i++) v1+=a[i]*a[i];

for(int i=0;i<k;i++) v2+=v.a[i]*v.a[i];

if(sqrt(v1)==sqrt(v2))

Return true; else

return false;

}

}

void main(){

Vector *v1=new Vector();

Vector *v2=new Vector(4);

Vector *v3=new Vector(10,5);

v3->Set_Value();

v3->Get_Value();

v3->Print_Array();

getch();

}

Результат роботи програми:

Рисунок 1.5


Тема 2. Конструктори. Деструктори.

Мета: Розглянути принцип роботи конструктора (з параметрами за замовчуванням) і деструктора при роботі з об'єктом.

Індивідуальне завдання 1

Розробити програму, що дозволяє виконати сортування набору даних класичним бульбашковим методом і шейк ер-сортування. У програмі виконати порівняння ефективності сортування за часом.

Текст програми

#include <stdio.h>

#include <windows.h>

#include <conio.h>

#include <time.h>

int sheiker (int in[], int n);

int puz(int A[], int n);

void About ();

Void main ()

{

//----Ввод масива----

int nn=0;

int trudoemk1, trudoemk2;

int input [100];

int input2 [100];

char bb [80];

CharToOem ("\nВведите число элементов массива: ", bb);

printf("%s", bb);

scanf ("%d", &nn); //Узнаємо розмір масива

CharToOem ("\nВведите через пробел целые числа: ", bb);

printf("%s", bb);

for (int j=0; j<nn; j++) scanf ("%d", &input[j]); //Заповнення масиву

CharToOem ("\nВы ввели следующий массив: ", bb);

printf("%s", bb);

for (int mm=0; mm<nn; mm++)

{printf ("%d ", input[mm]); //Перевірка виводом масива на екран

input2[mm]=input[mm];} //Робить копію масива

printf ("\n");

clock_t before;

double elapsed;

before = clock();

trudoemk1 = sheiker(input, nn); //Сортування методом Шейкер-сортування

CharToOem ("Сравнений: ", bb);

printf("%s", bb);

printf ("%d", trudoemk1);

CharToOem ("\nРеальные затраты времени на выполнении сортировки, в секундах: ", bb);

printf("%s", bb);

printf ("%.3f\n\n", elapsed/CLOCKS_PER_SEC);

before = clock();

trudoemk2 = puz(input2, nn); //Сортування бульбашковим методом

CharToOem ("\nСравнений: ", bb);

printf("%s", bb);

printf ("%d", trudoemk2);

elapsed = clock()-before; //Виводить час витрачений на виконаня функції

CharToOem ("\nРеальные затраты времени на выполнении сортировки, в секундах: ", bb);

printf("%s", bb);

printf ("%.3f\n", elapsed/CLOCKS_PER_SEC);

getch();

}

//функція шейкер-сортування

int sheiker (int in[], int n)

{ int sravnen=0;

char bb [80];

CharToOem ("\n\nШейкер сортировка: ", bb);

printf("%s\n", bb);

int a, b, dd, i, lasta, lastb, swap;

for (a=lasta=0, b=lastb=n, dd=1; a < b; dd =!dd, a=lasta, b=lastb)

{

if (dd)

{

for (i=a,lastb=a; i<b; i++)

if (in[i] > in[i+1])

{

lastb = i;

swap = in[i]; in[i]=in[i+1]; in[i+1]=swap;

sravnen++;

for (int mm=0; mm<n; mm++) printf ("%d ", in[mm]); //Перевірка методом виводу масиву на екран

printf ("\n");

}

else sravnen++;

}

Else

{

for (i=b,lasta=b; i>a; i--)

if (in[i-1] > in[i])

{

lasta = i;

swap = in[i]; in[i]=in[i-1]; in[i-1]=swap;

sravnen++;

for (int mm=0; mm<n; mm++) printf ("%d ", in[mm]); //Перевірка методом виводу масиву на екран

printf ("\n");

}

else sravnen++;

}

}

CharToOem ("Отсортированный массив методом Шейкер-сортировки: \n", bb);

printf("%s", bb);

for (int mm=0; mm<n; mm++) printf ("%d ", in[mm]);

printf("\n");

return sravnen;

}

//функція сортування бульбашковим методом

int puz(int A[], int n)

{

char bb [80];

CharToOem ("Сортировка методом \"пузырька\": \n", bb);

printf("%s", bb);

Рисунок 2.1


 

Тема3. Дружні функції і класи.

Мета: Вивчити призначення та використання дружніх функцій і класів.

Індивідуальне завдання 1

Створити два класи вектор (double *) і матриця (double **). Визначити конструктори - за умовчанням, з параметром, для класу матриця з двома параметрами, копіювання, деструктори. Визначити функцію множення матрицю на вектор як дружню.

Текст програми

#include <iostream.h>

Class matrix

{

friend void mult(matrix &array,vector &vect_obj,int n,int m); //оголошуємо дружню функцію

public:

matrix(){};

int n,m;

double **matr;

Class vector // ВЕКТОР

{

friend void mult(matrix &array,vector &vect_obj,int n,int m);

public:

int val;

double *vect;

vector(vector& i):val(i.val)

{

vect=new double[val];

};

Vector(int m)

{//заповнюємо вектор

val=m;

vect=new double[val];

for (int i=0; i < val; i++)

{

vect[i]=rand()%10+1;

}

};

void vuvod(vector &obj) // виводимо вектор на екран

{

int j;

cout <<endl;

for(j=0; j<val; j++)

cout<<"\t"<<vect[j];

}

};

void mult(matrix &array,vector &vect_obj,int n,int m)

{ // моження вектора на матрицю

vector result(vect_obj);

for(int i=0;i<n;i++)

{

result.vect[i]=0;

for(int j=0;j<m;j++)

{

result.vect[i]+=array.matr[i][j] * vect_obj.vect[i]; // множення

}

}

cout<<"\nUmnozenie (matrica*vector)\n";

Int main()

{

int m;

srand(time(NULL));

cout<<"Razmer matricy -> ";

cin>>m;

matrix array(m,m);

vector vect_obj(m);

cout<<"Matrica";

array.vuvod(array,m,m);

cout<<"\n\nVector ";

vect_obj.vuvod(vect_obj);

mult(array,vect_obj,m,m);

cout <<endl;

system ("PAUSE");

}

Результат роботи програми:


Рисунок 3.1


Тема 4. Превантаження операцій.

Мета: Вивчити принципи використання та роботи перевантаження операцій.

Індивідуальне завдання 1

Створити клас дійсних чисел Double. Визначити перевантажену функцію, що повертає максимальне з двох аргументів. Функція не є членом класу Double. Перевантажені функції мають аргументи типу int, double, Double. Тіло перевантажених функцій повинні бути однаковим.

Текст програми

#include <iostream.h>

#include <conio.h>

class Double{ // оголошуємо клас

public:

Double(double a,double b){

this->a=a;

this->b=b;

}

double a,b;

};

double Max(double a,double b){

if(a<b) return b; else return a;//перегрузка

}

double Max(int a,int b){

if(a<b) return b; else return a;

}

void main(){

double a,b;

cin>>a>>b;

clrscr();

Double var(a,b);

cout<<"Max="<<Max(var.a,var.b); // виводимо більше число на екран

getch();

}Результат роботи програми:

Рисунок 4.1

Звіт з навчальної практики

з об’єктно-орієнтованого програмування

 

Керівник Жуковець О.О.

(підпис, посада, прізвище, ініціали)

 

Студент гр. 35 спец. 5.05010301 Лошманова С.В.

(група, спеціальність, підпис, прізвище, ініціали)

 


 

Зміст

Тема 1. Класи, об'єкти, вказівник this………………………………………..………………………3

Тема 2. Конструктори, деструктори……………………………………………….………………..17

Тема 3. Дружні функції і класи………………………………………………………….…………..20

Тема 4. Перевантаження операцій………………………………….……………………………….22


 

Тема 1. Класи. Об'єкти. Вказівник this.

Мета: Вивчити структуру класу (компоненти класу). Розглянути атрибути доступу. Розглянути принцип роботи.

Індивідуальне завдання 1

Створити клас типу – квадрат. Поля – сторона. Функції-члени вичисляють площу, периметр, встановлює поля і повертають значення. Функції-члени встановлення полів класу повинні перевіряти коректність заданих параметрів.

Текст програми

#include <iostream>

#include <conio.h>

#include <math.h>

 

using namespace std;

 

class Kvadrat \\ створюємо клас

{

public:

Kvadrat(double, double, double, double);

double fooP();

double fooS();

private:

double x1, y1, x2, y2;

double perimetr;

double square;

};

 

Kvadrat::Kvadrat(double a, double b, double c, double d)

{

x1 = a; y1 = b; x2 = c; y2 = d;

 

if ((sqrt(((x2 - x1)*(x2 - x1)) + ((y2 - y1)*(y2 - y1)))) <= 0) // умова

 

cout << "Данные координаты не верны!" << endl;

 

else

{

cout << "Координаты начала и конца одной из сторон квадрата: "

<< "(" << x1 << "," << y1 << ")" << " и " << "(" << x2 << "," << y2 << ")" << endl << endl;

}

}

double Kvadrat::fooP()

{

perimetr = ((sqrt(((x2 - x1)*(x2 - x1)) + ((y2 - y1)*(y2 - y1)))) + (sqrt(((x2 - x1)*(x2 - x1)) + ((y2 - y1)*(y2 - y1))))) / 2; // обчислюємо периметр

return perimetr;

}

double Kvadrat::fooS()

{

square = (sqrt(((x2 - x1)*(x2 - x1)) + ((y2 - y1)*(y2 - y1))) * sqrt(((x2 - x1)*(x2 - x1)) + ((y2 - y1)*(y2 - y1)))); // обчислюємо площу

return square;

}

 

Kvadrat q(double, double, double, double);

 

int main()

{

double x1, y1, x2, y2;

cout << "Введите x1: " << endl;

cin >> x1;

cout << "Введите y1: " << endl;

cin >> y1;

cout << "Введите x2: " << endl;

cin >> x2;

cout << "Введите y2: " << endl;

cin >> y2;

Kvadrat w = Kvadrat(x1, y1, x2, y2);

cout << "Периметр квадрата равен: " << w.fooP();

cout << endl;

cout << "Площадь квадрата равна: " << w.fooS();

getch();

return 0;

}

Результат роботи програми:

Рисунок 1.1


 

Індивідуальне завдання 2



Поделиться:


Последнее изменение этой страницы: 2016-09-13; просмотров: 158; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.135.182.35 (0.392 с.)