Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
1 / 1 / 0
Регистрация: 03.11.2015
Сообщений: 121
1

Перевод с python на c++

25.03.2016, 15:28. Показов 2232. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Python
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
import math
 
 #pi - число pi, rad - радиус сферы (Земли)
 rad = 6372795
 
 #координаты двух точек
 llat1 = 77.1539
 llong1 = -120.398
 
 llat2 = 77.1804
 llong2 = 129.55
 
 #в радианах
 lat1 = llat1*math.pi/180.
 lat2 = llat2*math.pi/180.
 long1 = llong1*math.pi/180.
 long2 = llong2*math.pi/180.
 
 #косинусы и синусы широт и разницы долгот
 cl1 = math.cos(lat1)
 cl2 = math.cos(lat2)
 sl1 = math.sin(lat1)
 sl2 = math.sin(lat2)
 delta = long2 - long1
 cdelta = math.cos(delta)
 sdelta = math.sin(delta)
 
 #вычисления длины большого круга
 y = math.sqrt(math.pow(cl2*sdelta,2)+math.pow(cl1*sl2-sl1*cl2*cdelta,2))
 x = sl1*sl2+cl1*cl2*cdelta
 ad = math.atan2(y,x)
 dist = ad*rad
 
 #вычисление начального азимута
 x = (cl1*sl2) - (sl1*cl2*cdelta)
 y = sdelta*cl2
 z = math.degrees(math.atan(-y/x))
 
 if (x < 0):
     z = z+180.
 
 z2 = (z+180.) % 360. - 180.
 z2 = - math.radians(z2)
 anglerad2 = z2 - ((2*math.pi)*math.floor((z2/(2*math.pi))) )
 angledeg = (anglerad2*180.)/math.pi
 
 print 'Distance >> %.0f' % dist, ' [meters]'
 print 'Initial bearing >> ', angledeg, '[degrees]'
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.03.2016, 15:28
Ответы с готовыми решениями:

перевод с С++ в Python
Помогите перевести #include &lt;iostream&gt; #include&lt;cmath&gt; using namespace std; int main() {...

Перевод из python в с++
Необходимо перевести из питона в срр. Задача такая, определить, можно ли из 1-ой строки создать...

Перевод с C++ на Python
Нужно перевести код, но не совсем понимаю что к чему. #include &lt;iostream&gt; #include &lt;cstdio&gt;...

Перевод из python в c++
Переведите данный код в с++. Заранее спасибо n = int(input()) z = list(map(int, input().split()))...

2
2740 / 2339 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
25.03.2016, 15:42 2
И зачем это тут? Надо переводить, переводи, сюда за вопросами приходятприходят, а не чтоб за тебя сделали + этот пост актуальней в разделе сишников.
0
Объявлятель переменных
1220 / 406 / 320
Регистрация: 24.09.2011
Сообщений: 1,265
26.03.2016, 07:19 3
Лучший ответ Сообщение было отмечено Тео как решение

Решение

Если Вам прям калька нужна, то результат ниже. Но руки так и чесались переписать всё полностью.
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
#include <iostream>
#include <cmath>
 
int main() {
    //pi - число pi, rad - радиус сферы (Земли)
    double pi = M_PI;
    int rad = 6372795;
    
    //координаты двух точек
    double llat1 = 77.1539;
    double llong1 = -120.398;
 
    double llat2 = 77.1804;
    double llong2 = 129.55;
 
    //в радианах
    double lat1 = llat1*pi/180;
    double lat2 = llat2*pi/180;
    double long1 = llong1*pi/180;
    double long2 = llong2*pi/180;
    
    //косинусы и синусы широт и разницы долгот
    double cl1 = cos(lat1);
    double cl2 = cos(lat2);
    double sl1 = sin(lat1);
    double sl2 = sin(lat2);
    double delta = long2 - long1;
    double cdelta = cos(delta);
    double sdelta = sin(delta);
 
    //вычисления длины большого круга
    double y = sqrt(pow(cl2*sdelta,2)+pow(cl1*sl2-sl1*cl2*cdelta,2));
    double x = sl1*sl2+cl1*cl2*cdelta;
    double ad = atan2(y,x);
    double dist = ad*rad;
 
    //вычисление начального азимута
    x = (cl1*sl2) - (sl1*cl2*cdelta);
    y = sdelta*cl2;
    double z = atan(-y/x)*180/pi;
 
    if (x < 0)
        z = z+180;
 
    double z2 = fmod((z+180), 360) - 180;
    z2 = -z2*pi/180;
    double anglerad2 = z2 - ((2*pi)*floor((z2/(2*pi))));
    double angledeg = (anglerad2*180)/pi;
 
    printf("Distance >> %f [meters]\n", dist);
    printf("Initial bearing >> %f [degrees]", angledeg);
}
1
26.03.2016, 07:19
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.03.2016, 07:19
Помогаю со студенческими работами здесь

Перевод из C++ в Python
https://site.ada.edu.az/~medv/acm/Docs%20e-olimp/Volume%2016/1514.htm Кто знает как перевести...

Перевод с Pascal на Python
есть пара задач... могите с переводом или конвертацыей в питон вот они... program p4; uses...

Перевод из python в pascal
Помогите перевести из python в pascal import sys n = int(input()) m = int(input()) k =...

Перевод программы с Python на Си
text = input() text = text.replace(&quot;0&quot;, &quot;&quot;) text = text.replace(&quot;6&quot;, &quot;&quot;) start = 0 today =...


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

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