1

Тема: Чому не працює формула визначення кординат вектора через сінус кута?

Доброго дня!

Програмування на С++ в середовищі Ubuntu SDK
Система Ubuntu 14.04

Умова задачі: Створити клас Вектор.
Складові Полярні координати (довжина і кут),
конструктор з параметрами, деструктор,
методи обчислення координат кінця вектора,
метод виведення даних.
Необхідно: Описати клас, об’єкт; вивести
дані об’єкту; обчислити і
вивести координати кінця
вектора.
Чомусь не працює формула розрахунку координат. Що я неправильно написав в коді?
Дякую за допомогу.

Post's attachments

myVector.txt 1.97 kb, 373 downloads since 2014-06-20 

2 Востаннє редагувалося koala (20.06.2014 08:14:45)

Re: Чому не працює формула визначення кординат вектора через сінус кута?

Будь ласка, код сюди, в теґ code.
І вкажіть, чому ви вважаєте, що ця формула не працює (тобто в якому місці чого очікуєте, а що отримуєте). 80%, що, коли ви це собі скажете, то побачите помилку. Якщо ще не побачили - то подумайте, які змінні в функції main ви могли переплутати з полями класу Vektor.

Подякували: vitek_z1

3

Re: Чому не працює формула визначення кординат вектора через сінус кута?

Якщо спроектувати цю задачу на екран, то вийде, як я розумію, таке (мал.)
http://s005.сайт-злодій/i209/1406/47/6f2f266ca08d.jpg
для визначення X використайте косинус, а для Y - синус

4

Re: Чому не працює формула визначення кординат вектора через сінус кута?

vitek_z, замість дякувати краще б зробили те, що я написав.
yarko, cos( x ) = sin( Pi/2 - x ). Там проблема не в формулах.

5 Востаннє редагувалося koala (23.06.2014 19:14:03)

Re: Чому не працює формула визначення кординат вектора через сінус кута?

#include <iostream>
#define _USE_MATH_DEFINES
#include <cmath>

using namespace std;
class Vektor
{
    public:
        Vektor(float _Ax, float _Ay, float _dov, float _kut);
        float koordynatyX();
        float koordynatyY();
        void showkoordynaty();
        ~Vektor();

    private:
        float   Ax, Ay, dov, kut;
};

Vektor::Vektor(float _Ax, float _Ay, float _dov, float _kut) :
                Ax( _Ax ), Ay( _Ay ), dov( _dov ), kut ( _kut )
{
}

float Vektor::koordynatyX()
{
   return sin(kut*M_PI/180)*dov + Ax;

}

float Vektor::koordynatyY()
{
    return sin((90 - kut)*M_PI/180)*dov + Ay;
}

void Vektor::showkoordynaty()
{
    cout<<"Координати кінця вектора: "<<koordynatyX()<<";"<<koordynatyY();
}

Vektor::~Vektor()
{
    cout << "Delete Vektor";
    cout << endl;
}

// Функція вводу double
double Input(char message[])
{
    double res;
    cout << message;
    cin >> res;
    return res;
}

int main()
{
    float   x1  = Input( "Уведiть координати початку вектору.\nКоординати початку вектора (x, y):" ),
            y1  = Input( "" ),
            kut = Input( "Кут вектора: " ),
            dov = Input( "Довжина вектора: " );

    // Створення об'єкта Вектор
    Vektor oVektor(x1, y1, dov, kut);
    oVektor.showkoordynaty();
    cout << endl;
    return 0;
}

6

Re: Чому не працює формула визначення кординат вектора через сінус кута?

В main щось забагато змінних...

int main()
{
    Vektor(
        Input( "Уведiть координати початку вектору.\nКоординати початку вектора (x, y):" ),
        Input( "" ),
        Input( "Кут вектора: " ),
        Input( "Довжина вектора: " )
    ).showkoordynaty();
    cout << endl;
    return 0;
}

7

Re: Чому не працює формула визначення кординат вектора через сінус кута?

Доброго вечора , підскажіть будьласка - це весь код ??
Ато в мене не виходить вивести на екран значення .
дякую

8

Re: Чому не працює формула визначення кординат вектора через сінус кута?

Це - весь код у цій темі.
Перевірте кабель - може, екран не підключений.

9

Re: Чому не працює формула визначення кординат вектора через сінус кута?

Можете підсказати що це за код ??

10

Re: Чому не працює формула визначення кординат вектора через сінус кута?

Vektor::Vektor(float _Ax, float _Ay, float _dov, float _kut) :
                Ax( _Ax ), Ay( _Ay ), dov( _dov ), kut ( _kut )
{
}

11

Re: Чому не працює формула визначення кординат вектора через сінус кута?

andreiko.gto написав:
Vektor::Vektor(float _Ax, float _Ay, float _dov, float _kut) :
                Ax( _Ax ), Ay( _Ay ), dov( _dov ), kut ( _kut )
{
}

Ім'я йому - конструтор, член класу Vektor, ініціалізує поля класу.

Подякували: koala1