Загрузка данных


#include <iostream>
#include <cmath> // Обязательная библиотека для математики (корень, степени)

using namespace std;

// Создаем наш класс (чертеж)
class GeometryCalc {
public:
    // --- ФУНКЦИЯ 1 (Перегруженная для 3 сторон) ---
    void figureInfo(double a, double b, double c) {
        cout << "Фигура: Треугольник." << endl;
        
        // Площадь по формуле Герона
        double p = (a + b + c) / 2.0; // полупериметр
        double area = sqrt(p * (p - a) * (p - b) * (p - c)); 
        
        cout << "Площадь: " << area << endl;
    }

    // --- ФУНКЦИЯ 1 (Перегруженная для 4 сторон) ---
    void figureInfo(double a, double b, double c, double d) {
        cout << "Фигура: Четырехугольник (прямоугольник)." << endl;
        
        // Для площади прямоугольника достаточно умножить две смежные стороны
        double area = a * b; 
        
        cout << "Площадь: " << area << endl;
    }

    // --- ФУНКЦИЯ 2: Корень числа ---
    double getSquareRoot(double num) {
        return sqrt(num); // Встроенная функция из <cmath>
    }

    // --- ФУНКЦИЯ 3: Расстояние между координатами ---
    double getDistance(double x1, double y1, double x2, double y2) {
        // Формула: корень из ((x2-x1)^2 + (y2-y1)^2)
        // pow(число, 2) - это возведение в квадрат
        return sqrt(pow(x2 - x1, 2) + pow(y2 - y1, 2));
    }
};

int main() {
    setlocale(LC_ALL, "Russian"); // Чтобы русский текст в консоли работал

    // Создаем объект нашего класса
    GeometryCalc calc;

    cout << "--- Проверка функции 1 ---" << endl;
    calc.figureInfo(3, 4, 5);       // Передали 3 числа -> сработает треугольник
    calc.figureInfo(4, 5, 4, 5);    // Передали 4 числа -> сработает прямоугольник

    cout << "\n--- Проверка функции 2 ---" << endl;
    cout << "Корень из 25 = " << calc.getSquareRoot(25) << endl;

    cout << "\n--- Проверка функции 3 ---" << endl;
    // Точки (0,0) и (3,4) - классический египетский треугольник, ответ должен быть 5
    cout << "Расстояние = " << calc.getDistance(0, 0, 3, 4) << endl;

    return 0;
}