Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Задача на преобразование координат

23K
19 декабря 2006 года
Petrov!4
2 / / 19.12.2006
Здравствуйте, профессионалы и любители.
Не выходит у меня каменный цветок... Нужно написать программу на С++ в консоли (Wizard Master). Не получается у меня. Я наваял ее в линейном виде (без функций), но в задании сказано использовать функции. У меня проблемы с ними...
Очень срочно нужна, сдавать в четверг, а я ...

Так, если вдруг кто захочет помочь, вот задание:

Составить программу, включающую функции для:
получения декартовых координат точки, если заданы ее полярные координаты;
вычисления расстояния между двумя точками, заданными в декартовой системе координат;
получения полярных координат точки, если заданы ее декартовы координаты. В основной программе предусмотреть обращение к этим функциям по запросу пользователя.

Формулы:
для перехода от полярный к декартовым координатам:
x=ρ*cos(w), где w - это угол в градусах;
y=ρ*sin(w)
для перехода от декартовых к полярным:
ρ=sqrt(x2+y2)
w=arctg(y/x)

Пример:
А(p,w) - в полярной, в декартовой Ad(x,y)


Заранее благодарен...
2.0K
19 декабря 2006 года
BroKeR
163 / / 04.05.2006
Я думаю что должно быть примерно так:
Код:
#include <cmath>
#include <iostream>

double polToDec_x(double p,double w)
{
переводим w в радины,не помню как делается;
return p*(cos(w));
}

double polToDec_y(double p,double w)
{
переводим w в радины,не помню как делается;
return p*(sin(w));
}

double decToPol_p(double x,double y)
{
return sqrt((pow(x,2))+(pow(y,2));
}

double decToPol_w(double x,double y)
{
return atan2(x,y);
}

int main()
{
enum change(dec_to_pol=1,pol_to_dec);
std::cout<<"Please change a number:\n"
<<"1.Dec to Pol\n"
<<"2.Pol to Dec"<<std::endl;
std::cin>>change
switch(change)
{
case dec_to_pol:
double x,y;
std::cout<<"Plese enter a x and y\n"<<std::endl;
std::cin>>x>>y;
std::cout<<"p="<<decToPol_p(x,y)<<" and w ="<<decToPol_w(x,y)<<std::endl;
break;
case pol_to_dec:
double p,w;
std::cout<<"Please enter p and w\n"<<std::endl;
std::cin>>p>>w;
std::cout<<"x="<<polToDec_x(p,w)<<" and y="<<polToDec_y(p,w)<<std::endl;
break;
default:
std::cout<<"error inputing,try again";
exit(1);
}
return 0;
}
23K
19 декабря 2006 года
Petrov!4
2 / / 19.12.2006
Прикрепил файл с программой в консольном виде.
Только правда не пойму почему она до половины доходит и дальше не работает.
Так вот, это мне надо с функциями сделать.
Помогите, пжлста.
2.0K
19 декабря 2006 года
BroKeR
163 / / 04.05.2006
у тебя все в int,нужно как минимум float,для функции cos()
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог