Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
0 / 0 / 0
Регистрация: 10.10.2016
Сообщений: 53
1

Вычислить расстояние до линии горизонта от точки, расположенной на высоте h над поверхностью Земли (ООП)

15.01.2018, 12:40. Показов 2395. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Написать программу, вычисляющую расстояние до линии горизонта от точки, расположенной на высоте h над поверхностью Земли. (Считать Землю идеальным шаром с радиусом R = 6350 км.)

Ребята хелп пожалуйста
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.01.2018, 12:40
Ответы с готовыми решениями:

Определить расстояние до линии горизонта от точки с высотой над Землей ...
Решить задачу в приложении Windows Forms: Считая, что Земля — идеальная сфера с радиусом R ~ 6350...

Определить расстояние до линии горизонта от точки
Считая, что Земля — идеальная сфера с радиусом R 6350 км, определить расстояние до линии горизонта...

определить расстояние до линии горизонта от точки с заданной высотой над Землей.
Считая, что Земля - идеальная сфера с радиусом В = 6350 км, определить расстояние до линии...

Определить расстояние до линии горизонта от точки с заданной высотой над Землей
Считая, что Земля — идеальная сфера с радиусом R = 6350 км. определить расстояние до линии...

6
Эксперт .NET
1696 / 1325 / 316
Регистрация: 15.06.2012
Сообщений: 5,045
Записей в блоге: 3
15.01.2018, 17:15 2
я сегодня добрый, поєтому вот тебе полностью готовый код с ООП
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
namespace Prognyan
{
    internal class Program
    {
        static void Main(string[] args)
        {
            Бог.Создать<Земля>();
            var программист = Бог.Создать<Человек>();
            программист.СоздатьКомпьютер();
            программист.ИследоватьЗемлю();
            программист.ПоднятьсяНаВысоту();
            программист.ВнестиВКомпьютерСвоеМестонахождение();
            программист.УзнатьЛиниюГоризонта();
            Console.ReadKey();
 
        }
    }
 
    internal static class Мироздание
    {
        public static List<object> Вселеная = new List<object>();
    }
 
    internal static class Бог
    {
        public static T Создать<T>() where T : new()
        {
            var творение = new T();
            Мироздание.Вселеная.Add(творение);
            return творение;
        }
    }
 
    internal class Земля
    {
        public int Радиус => 6350;
    }
 
    internal class Человек
    {
        public decimal МестонахождениеНадУровнемМоря { get; private set; }
 
        private Компьютер ноутбук;
 
        public void ПоднятьсяНаВысоту()
        {
            Console.WriteLine("Ведите высоту в км");
            InputHeight:
            try
            {
                МестонахождениеНадУровнемМоря = decimal.Parse(Console.ReadLine());
            }
            catch
            {
                Console.WriteLine("Ведите высоту правильно");
                goto InputHeight;
            }
        }
 
        public void СоздатьКомпьютер() => ноутбук = new Компьютер();
 
        public void ИследоватьЗемлю() => ноутбук.ВвестиДанныеОЗемле(Мироздание.Вселеная.OfType<Земля>().Single().Радиус);
 
        public void ВнестиВКомпьютерСвоеМестонахождение() => ноутбук.ВвестиСвоеМестоположениеНадУровнемМоря(МестонахождениеНадУровнемМоря);
 
        public void УзнатьЛиниюГоризонта() => ноутбук.РасчитатьСПомощьюКомпьютераЛиниюГоризонта();
    }
 
    internal class Компьютер
    {
        ОперативноЗапоминающееУстройство raw;
 
        public Компьютер() => raw = new ОперативноЗапоминающееУстройство();
 
        public void ВвестиДанныеОЗемле(int r) => raw.РадиусЗемли = r;
 
        public void ВвестиСвоеМестоположениеНадУровнемМоря(decimal h) => raw.МестонахождениеЧеловекаНадУровнемМоря = h;
 
        public void РасчитатьСПомощьюКомпьютераЛиниюГоризонта() => Console.WriteLine($"линия горизонта {Math.Sqrt(Math.Pow((double)(raw.РадиусЗемли + raw.МестонахождениеЧеловекаНадУровнемМоря), 2) - raw.РадиусЗемли * raw.РадиусЗемли)} км");
 
        private class ОперативноЗапоминающееУстройство
        {
            public int РадиусЗемли;
            public decimal МестонахождениеЧеловекаНадУровнемМоря;
        }
    }
}
0
911 / 815 / 333
Регистрация: 03.02.2015
Сообщений: 5,265
Записей в блоге: 9
15.01.2018, 17:17 3
C#
1
2
3
4
5
6
const float R = 6350f;
 
float HorizonLineDistance(float h)
{
    return Math.Sqrt((R * h) / 500f);
}
0
Эксперт .NET
1696 / 1325 / 316
Регистрация: 15.06.2012
Сообщений: 5,045
Записей в блоге: 3
15.01.2018, 17:23 4
Цитата Сообщение от Sanya_sa Посмотреть сообщение
Math.Sqrt((R * h) / 500f);
я конечно тоже дурачился, но єто точно правильная формула?...
0
911 / 815 / 333
Регистрация: 03.02.2015
Сообщений: 5,265
Записей в блоге: 9
15.01.2018, 17:44 5
Wolfdp, не уверен.
0
3560 / 2501 / 1174
Регистрация: 14.08.2016
Сообщений: 8,206
15.01.2018, 18:30 6
вроде как
C#
1
Math.Sqrt(h*h + 2*R*h);
если я правильно помню Пифагора и касательные
0
Эксперт .NET
1696 / 1325 / 316
Регистрация: 15.06.2012
Сообщений: 5,045
Записей в блоге: 3
15.01.2018, 18:48 7
Жуть... https://www.cyberforum.ru/cgi-bin/latex.cgi?{c}^{2} = {a}^{2} + {b}^{2}, где a,b -- катетьі прямоугольного треугольника. Прямой угол в нашем случае -- касательная к горизонту.
0
15.01.2018, 18:48
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.01.2018, 18:48
Помогаю со студенческими работами здесь

Определить напряженность G гравитационного поля на высоте h=1000 км над поверхностью Земли
Определить напряженность G гравитационного поля на высоте h=1000 км над поверхностью Земли. Считать...

С какой высоты свободно падает тело, если на высоте Н=10 м над поверхностью земли оно было через время t=2 с
С какой высоты свободно падает тело, если на высоте Н = 10 м над поверхностью земли оно было через...

Считая, что Земля – идеальная сфера с радиусом r=6350км, определить расстояние до линии горизонта от точки
Считая, что Земля – идеальная сфера с радиусом r=6350км, определить расстояние до линии горизонта...

Определить расстояние до линии горизонта
Считая, что Земля – идеальная сфера с радиусом R≈6350 км, определить расстояние до линии горизонта...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru