Вопрос задан 05.07.2023 в 07:43. Предмет Информатика. Спрашивает Сентялёва Валерия.

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

присвоения значений закрытым переменным, для получения значения закрытых переменных и получения значения площади треугольника по формуле Герона). Пользователь вводит значения с клавиатуры, они передаются в закрытые переменные и используются в функции площади. #include using namespace std;class myclass {// закрытая часть myclassint 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; } Срочно!!!!
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Жданова Вика.

#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;  

}

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Конечно, вот ваш код с добавлением функциональности для работы с треугольником и вычисления его площади по формуле Герона:

cpp
#include <iostream> #include <cmath> using namespace std; class Triangle { private: double side1; double side2; double side3; public: void setSides(double s1, double s2, double s3) { side1 = s1; side2 = s2; side3 = s3; } double getSide1() { return side1; } double getSide2() { return side2; } double getSide3() { return side3; } double calculateArea() { double s = (side1 + side2 + side3) / 2.0; return sqrt(s * (s - side1) * (s - side2) * (s - side3)); } }; int main() { double side1, side2, side3; cout << "Введите значения трех сторон треугольника:" << endl; cin >> side1 >> side2 >> side3; Triangle triangle; triangle.setSides(side1, side2, side3); cout << "Стороны треугольника: " << triangle.getSide1() << ", " << triangle.getSide2() << ", " << triangle.getSide3() << endl; cout << "Площадь треугольника: " << triangle.calculateArea() << endl; system("pause"); return 0; }

Просто скопируйте этот код в среду разработки C++ и запустите его. Он позволит вам ввести значения трех сторон треугольника, а затем выведет эти значения и вычислит площадь треугольника с использованием формулы Герона.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос