Форум программистов, компьютерный форум CyberForum.ru

Найти минимальную длину пути - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Оформить одномерный массив в виде функций http://www.cyberforum.ru/cpp-beginners/thread613017.html
и снова я мучаюсь с функциями:wall: и кажется снова они получились вложенными:gscratch: 1.) вычислить номер максимального по модулю элемента массива #include "iostream.h" #include "stdlib.h" #include "stdio.h" #include "math.h"
C++ Функции, возвращаемый тип Как сделать так, что бы функция возвращала разный тип данных, в зависимости от некой глобальной переменной? Например, если эта переменная == 1, то вернуть A, если 2 то вернуть B http://www.cyberforum.ru/cpp-beginners/thread613014.html
C++ Не срабатывает перехват исключений
Решил перехватить открыие файла,но что то не получается.Компилиться без проблем,но не работает: void ReadAutorunscripts() { try { std::ifstream input_file("Autorunscripts.txt"); char line; while (! input_file.eof()) {
C++ Компиляция в RAD STUDIO
Доброго времени суток , помогите разобраться с компиляцией программ в rad studio. На фото выдает ошибку. И какой пункт надо выбрать для начала написания текста? версия така - Embarcadero® C++Builder® XE Version 15.0.3953.35171 Заранее спасибо.
C++ Правильно ли я понимаю работу этого кода? http://www.cyberforum.ru/cpp-beginners/thread612982.html
#include <iostream> #include <cctype> using namespace std; int main () { char str1 = "Enter first string"; char str2 = "Enter second string"; char *p1, *p2;
C++ Как представить дерево Как в с++ представить дерево состоящее из 15 вершин и трех внутренних узлов? Добавлено через 3 часа 29 минут Пожалуйста помогите! подробнее

Показать сообщение отдельно
grizlik78
Эксперт C++
 Аватар для grizlik78
1882 / 1414 / 101
Регистрация: 29.05.2011
Сообщений: 2,958
24.06.2012, 21:29     Найти минимальную длину пути
С формулой, что выше, будет попроще немного, я через векторы сделал. Надеюсь результат совпадает
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
#include <iostream>
#include <numeric>
#include <cmath>
 
class vect3d
{
    double c[3];
public:
    vect3d() : c() {}
    vect3d(double x, double y, double z) { c[0] = x; c[1] = y; c[2] = z; }
    double operator*(vect3d const& v) const
    {
        return std::inner_product(c, c+3, v.c, 0.0);
    }
    void print(std::ostream & os) const
    {
        os << "("<<c[0] << ", " << c[1] << ", " <<c[2] << ")";
    }
};
 
std::ostream& operator<< (std::ostream& os, vect3d const& v)
{
    v.print(os);
    return os;
}
 
double abs(vect3d const& v)
{
    return sqrt(v*v);
}
 
vect3d polar3d(double r, double phi, double theta)
{
    return vect3d(
            r*cos(phi)*cos(theta),
            r*sin(phi)*cos(theta),
            r*sin(theta)
            );
}
 
double input_double(std::string name, double min, double max)
{
    double d;
    if (min >= max)
        return min;
    do {
        std::cout << "Input " << name 
            << " (" << min << ".." << max << "): " << std::endl;
    } while ((std::cin >> d) && (d < min || d > max));
    if (std::cin.fail())
        std::cout << "Input error" << std::endl;
    return d;
}
 
int main()
{
    double radius = input_double("radius", 100, 10000);
    double lon1 = input_double("longitude1", -180, 180);
    double lat1 = input_double("latitude1", -90, 90);
    double lon2 = input_double("longitude2", -180, 180);
    double lat2 = input_double("latitude2", -90, 90);
    vect3d v1 = polar3d(1.0, lon1/180.0*M_PI, lat1/180.0*M_PI);
    vect3d v2 = polar3d(1.0, lon2/180.0*M_PI, lat2/180.0*M_PI);
 
    std::cout << "Minimal distance: " <<
        radius*acos( v1*v2/(abs(v1)*abs(v2))) <<std::endl;
    return 0;
}
 
Текущее время: 22:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru