Предмет: Информатика, автор: yabl0shad

Создайте класс, содержащий 3 закрытые переменные (3 стороны треугольника) и открытые функции (для присвоения значений закрытым переменным, для получения значения закрытых переменных и получения значения площади треугольника по формуле Герона). Пользователь вводит значения с клавиатуры, они передаются в закрытые переменные и используются в функции площади.

#include
using namespace std;
class myclass {
// закрытая часть myclass
int a;
public:
void set_a(int num);
int get_a ( ) ;
};
void myclass :: set_a(int num)
{ a=num; }
int myclass :: get_a()
{ return a; }
int main ()
{ int x;
myclass ob;
cout<<"Введите значение ->";
cin>>x;
ob.set_a(x) ;
cout <<"Вы ввели "<< ob.get_a() << "\n";
system("pause");
return 0; }

Срочно!!!!

Ответы

Автор ответа: vladbardin2014p7d85b
1

#include <iostream>

#include <algorithm>

// Более правильная версия

class Triangle {

private:

size_t a;

size_t b;

size_t c;

auto validate_sides()->bool;

public:

Triangle(size_t a, size_t b, size_t c);

auto set_a(size_t num)->void;

auto set_b(size_t num)->void;

auto set_c(size_t num)->void;

auto get_a()->size_t;

auto get_b()->size_t;

auto get_c()->size_t;

auto get_square_using_heron()->double;

};

bool Triangle::validate_sides()

{

size_t max_side = std::max(a, std::max(b, c));

auto sides_sum = this->a + this->b + this->c;

if (max_side < sides_sum - max_side)

 return true;

return false;

}

Triangle::Triangle(size_t a, size_t b, size_t c)

{

this->a = a;

this->b = b;

this->c = c;

}

auto Triangle::set_a(size_t num)->void

{

a = num;

}

auto Triangle::set_b(size_t num)->void

{

b = num;

}

auto Triangle::set_c(size_t num)->void

{

c = num;

}

auto Triangle::get_a()->size_t

{

return a;

}

auto Triangle::get_b()->size_t

{

return b;

}

auto Triangle::get_c()->size_t

{

return c;

}

auto Triangle::get_square_using_heron()->double

{

if (!validate_sides())

 throw std::exception("Неправильные стороны, треугольник с такими сторонами не существует");

auto p = (this->a + this->b + this->c) / 2;

return sqrt(p * (p - this->a) * (p - this->b) * (p - this->c));

}

// Более простая версия

class Triangle2 {

private:

size_t a;

size_t b;

size_t c;

public:

Triangle2(size_t a, size_t b, size_t c);

void set_a(size_t num);

void set_b(size_t num);

void set_c(size_t num);

int get_a();

int get_b();

int get_c();

double get_square_using_heron();

};

Triangle2::Triangle2(size_t a, size_t b, size_t c)

{

this->a = a;

this->b = b;

this->c = c;

}

auto Triangle2::set_a(size_t num)->void

{

a = num;

}

auto Triangle2::set_b(size_t num)->void

{

b = num;

}

auto Triangle2::set_c(size_t num)->void

{

c = num;

}

int Triangle2::get_a()

{

return a;

}

int Triangle2::get_b()

{

return b;

}

int Triangle2::get_c()

{

return c;

}

double Triangle2::get_square_using_heron()

{

auto p = (this->a + this->b + this->c) / 2;

return sqrt(p * (p - this->a) * (p - this->b) * (p - this->c));

}

int main()

{

size_t a, b, c;

std::cin >> a >> b >> c;

Triangle2 mc(a, b, c);  

std::cout << mc.get_square_using_heron() << std::endl;

system("pause");

return 0;  

}

Похожие вопросы
Предмет: Українська мова, автор: alyona684