Добавил:
Рад, если кому-то помог Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
0
Добавлен:
01.11.2025
Размер:
1.44 Кб
Скачать
#include <iostream>
#include <cmath>
#include <windows.h>
using namespace std;

const double PI = 3.14159265358979323846;

class PolarVector {
private:
    double r, theta, phi; // радиус, углы theta и phi
    
public:
    void input() {
        cout << "Введите радиус r: ";
        cin >> r;
        cout << "Введите угол theta (в градусах): ";
        cin >> theta;
        cout << "Введите угол phi (в градусах): ";
        cin >> phi;
    }
    
    void output() {
        cout << "Вектор в полярных координатах: (" 
             << r << ", " << theta << "°, " << phi << "°)" << endl;
    }
    
    void toCartesian(double &x, double &y, double &z) {
        double theta_rad = theta * PI / 180.0;
        double phi_rad = phi * PI / 180.0;
        
        x = r * sin(theta_rad) * cos(phi_rad);
        y = r * sin(theta_rad) * sin(phi_rad);
        z = r * cos(theta_rad);
    }
};

int main() {
    SetConsoleOutputCP(65001);
    
    PolarVector v;
    cout << "=== Ввод вектора в полярных координатах ===" << endl;
    v.input();
    v.output();
    
    double x, y, z;
    v.toCartesian(x, y, z);
    cout << "Вектор в декартовых координатах: (" 
         << x << ", " << y << ", " << z << ")" << endl;
    
    return 0;
}
Соседние файлы в папке Лаба1