Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.10.2021, 16:23   #1
Stanislav09
Пользователь
 
Регистрация: 03.10.2021
Сообщений: 17
По умолчанию Определить координаты точки (x, y, z) в сферической системе координат.( С введением: Ветвления) На языке Си.

Здравствуйте, мне нужна помощь в написании программы.
У меня дана задача: Определить координаты точки (x, y, z) в сферической системе координат.
Я понимаю как написать программу по определению этих координат в декартовой системе и в сферической, но не понимаю как туда вставить ветвление, а именно if/else или switch/case...
Написать нужно на языке С.
Помогите пожалуйста!!!
Stanislav09 вне форума Ответить с цитированием
Старый 03.10.2021, 19:04   #2
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Цитата:
Сообщение от Stanislav09 Посмотреть сообщение
У меня дана задача: Определить координаты точки (x, y, z) в сферической системе координат...
У вас пока задача - понять саму задачу.
Что значит определить координаты ? Что дано и что найти .
В сферической системе координаты это - угол, угол, расстояние например λ,φ,r или θ,φ,r.
А x,y,z - это декартова или прямоугольная система.
Может быть преобразовать из сферической в декартову.

Но там вроде можно без условий if/else обойтись. Разве что правильность данных проверять.
type_Oleg вне форума Ответить с цитированием
Старый 03.10.2021, 22:32   #3
Stanislav09
Пользователь
 
Регистрация: 03.10.2021
Сообщений: 17
По умолчанию

Там практическая по работе с ветвлениями, и нужно написать программу так что бы в ней было использовано ветвление)))
Stanislav09 вне форума Ответить с цитированием
Старый 03.10.2021, 22:35   #4
Stanislav09
Пользователь
 
Регистрация: 03.10.2021
Сообщений: 17
По умолчанию

Цитата:
Сообщение от Stanislav09 Посмотреть сообщение
Там практическая по работе с ветвлениями, и нужно написать программу так что бы в ней было использовано ветвление)))
То есть я могу написать саму программу, но не понимаю как туда ветвление внести и для чего оно там нужно...
Stanislav09 вне форума Ответить с цитированием
Старый 04.10.2021, 00:33   #5
Stanislav09
Пользователь
 
Регистрация: 03.10.2021
Сообщений: 17
По умолчанию

Вот что у меня получилось...
Код:
#include<stdio.h>        // Программа по нахождению координат (x,y,z) в сферической системе координат //
#include<math.h>
#include<locale.h>

void main()
{
    setlocale(LC_ALL, "Rus");
    float x,y,z,p,fi,alpha;
    printf("Введите координату x:");    // Ввод координаты x //
    scanf("%f", &x);
    printf("Введите координату y:");    // Ввод координаты y //
    scanf("%f", &y);
    printf("Введите координату z:");    // Ввод координаты z //
    scanf("%f", &z);
    if (x > 0, y > 0, z > 0)
    {
        p = sqrt( pow(x,2) + pow(y,2) + pow(z,2) );      // Нахождение координаты p //
        fi = x / sqrt( pow(x,2) + pow(y,2) );            // Нахождение координаты fi //
        alpha = acos( z / p );                          // Нахождение координаты alpha //
        printf("Координаты x,y,z в сферической системе координат p,fi,alpha равны: %f, %f, %f", p, fi, alpha);  // Вывод координат p,fi,alpha //
    }
    else
    {
        printf("Ошибка!!!");  // Вывод ошибки //
    }
}
Stanislav09 вне форума Ответить с цитированием
Старый 04.10.2021, 01:56   #6
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Код:
if (x > 0, y > 0, z > 0)
а почему только в одном из 8 квадрантов ? По моему в пространстве x,y,z могут быть любые

А вот перед этим -
Код:
fi = x / sqrt( pow(x,2) + pow(y,2) );
alpha = acos( z / p );
как раз можно проверку знаменателя на 0. Вот тогда как раз сферические координаты и не определить.

Кстати, зачем эти pow(x,2), не проще x*x.

Да, и фи у вас неправильно. Арктангенс забыли. Или что-то напутали..

Последний раз редактировалось type_Oleg; 04.10.2021 в 02:00.
type_Oleg вне форума Ответить с цитированием
Старый 04.10.2021, 02:01   #7
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Код:
if (x > 0, y > 0, z > 0)
Stanislav09, оператор-запятая и логическое "И" - разные вещи.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 04.10.2021, 02:16   #8
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Stanislav09, и разберитесь со сферическими координатами.
На примере географических ( они правда не совсем сферические, но приблизительно можно считать так).
Например на полюсе долгота не определена , определена только широта фи=90 и расстояние до центра. Потому что там x=0 и y=0.
Ну и в центре Земли ни широта ни долгота не определены, только расстояние =0.
type_Oleg вне форума Ответить с цитированием
Старый 04.10.2021, 02:48   #9
Stanislav09
Пользователь
 
Регистрация: 03.10.2021
Сообщений: 17
По умолчанию

Брал вот от сюда, с фи я правда напутал, написал косинус фи...
Изображения
Тип файла: jpg 2021-10-04_024646.jpg (57.5 Кб, 0 просмотров)
Stanislav09 вне форума Ответить с цитированием
Старый 04.10.2021, 02:55   #10
Stanislav09
Пользователь
 
Регистрация: 03.10.2021
Сообщений: 17
По умолчанию

Цитата:
Сообщение от type_Oleg Посмотреть сообщение
Stanislav09, и разберитесь со сферическими координатами.
На примере географических ( они правда не совсем сферические, но приблизительно можно считать так).
Например на полюсе долгота не определена , определена только широта фи=90 и расстояние до центра. Потому что там x=0 и y=0.
Ну и в центре Земли ни широта ни долгота не определены, только расстояние =0.
У меня программа не выдаст ошибку если я напишу x=0 и y=0...
Изображения
Тип файла: png 2021-10-04_025507.png (12.0 Кб, 0 просмотров)
Stanislav09 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Даны координаты точки в прямоугольной системе координат. Составьте алгоритм и программу, определяющую принадлежит ли точка макс789 Помощь студентам 21 02.06.2016 07:03
Точки в системе координат. Sheva95 Помощь студентам 0 10.04.2013 17:28
В начерченной ранее системе координат изобразите на чертеже точки: Mariy_19 Паскаль, Turbo Pascal, PascalABC.NET 0 18.12.2011 18:50
Определить какая из точек находится ближе к началу координат(алгоритм ветвления). Rakfeller Паскаль, Turbo Pascal, PascalABC.NET 16 25.01.2009 02:01