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

Кубическое уравнение (методом Кардано) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Комментарии к элементарному коду! Рандом! http://www.cyberforum.ru/cpp-beginners/thread832224.html
Здравствуйте, помогите с 8 строкой, что в ней выполняется - вводится, и пожалуйста поподробней с рандомным вводом числа(9 строка)! Заранее спасибо, надеюсь и вам это будет полезно! #include...
C++ Скалярное произведение двух векторов Даны два вектора (одномерных массива), содержащих n вещественных элементов. Найти скалярное произведение двух векторов. http://www.cyberforum.ru/cpp-beginners/thread832221.html
C++ Найти все слова в предложении, содержащие по две буквы М, не стоящие рядом, и определить их количество
Найдите все слова в предложении, содержащие по две буквы М, не стоящие рядом, и определите их количество.С указателями и строками надо Добавлено через 17 секунд #include "stdafx.h" #include...
нужна некая функция C++
вообщем есть цикл int a; do{ a=getch() ...... fun(a) ..... }
C++ Даны две строки. Если они начинаются с одинаковых символов, то напечатать "ДА", иначе - "НЕТ" http://www.cyberforum.ru/cpp-beginners/thread832204.html
Даны две строки. Если они начинаются с одинаковых символов, то напечатать "ДА", иначе - "НЕТ". (5)
C++ Даны две строки символов. Выбросите из них все общие элементы Даны две строки символов. Выбросите из них все общие элементы. (4) c++ подробнее

Показать сообщение отдельно
Ternsip
660 / 188 / 6
Регистрация: 10.05.2012
Сообщений: 595
10.04.2013, 23:14
taras atavin,

Добавлено через 16 минут
pooharilo, http://atheist4.narod.ru/mw/kardano.htm сейчас попробуем))

Добавлено через 57 минут

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
#include <iostream>
#include <cmath>
#include <algorithm>
#include <vector>
#include <limits>
#include <queue>
#include <string>
#include <set>
#include <stack>
#include <tuple>
 
using namespace std;
 
//Cube root
double croot(double x){
    if (x < 0)
        return -pow(-x, 1.0/3.0);
    return pow(x, 1.0/3.0);
}
 
int main(){         
    freopen("input.txt", "rt", stdin);
    freopen("output.txt", "wt", stdout);
    //Ax + By + Cz + D = 0; (A != 0)
    const double M_PI = 3.141592653589793238462;
    //-----
    double A, B, C, D;
    cin >> A >> B >> C >> D;
    if (A == 0){
        cout << "X is any";
        return 0;
    }
    //-----
    double p = (3.0*A*C-B*B)/(3.0*A*A);
    double q = (2.0*B*B*B-9.0*A*B*C+27.0*A*A*D)/(27.0*A*A*A);
    double S = (q*q/4.0) + (p*p*p/27.0);
    //-----
    double F;
    if (q == 0)
        F = M_PI/2.0;
    if (q < 0)
        F = atan(-2.0*sqrt(-S)/q);
    if (q > 0)
        F = atan(-2.0*sqrt(-S)/q) + M_PI;
    //-----
    pair<double, double> x[3];
    for (int i = 0; i < 3; i++)
        x[i].first = x[i].second = 0;
    if (S < 0){
        x[0].first = 2.0*sqrt(-p/3.0)*cos(F/3.0)-B/(3.0*A);
        x[1].first = 2.0*sqrt(-p/3.0)*cos((F/3.0)+2.0*M_PI/3.0)-B/(3.0*A);
        x[2].first = 2.0*sqrt(-p/3.0)*cos((F/3.0)+4.0*M_PI/3.0)-B/(3.0*A);
    }
    if (S == 0){
        x[0].first = 2.0*croot(-q/2.0)-B/(3.0*A);
        x[1].first = -croot(-q/2.0)-B/(3.0*A);
        x[2].first = -croot(-q/2.0)-B/(3.0*A);
    }
    if (S > 0){
        double temp1 = croot((-q/2.0)+sqrt(S)) + croot((-q/2.0)-sqrt(S));
        double temp2 = croot((-q/2.0)+sqrt(S)) - croot((-q/2.0)-sqrt(S));
        x[0].first = temp1 - B/(3.0*A);
        x[1].first = -temp1/2.0 - B/(3.0*A); x[1].second = sqrt(3)*temp2/2.0;
        x[2].first = -temp1/2.0 - B/(3.0*A); x[2].second = -sqrt(3)*temp2/2.0;
    }
    //-----
    printf("x1 = %.15lf + i * %.15lf\n", x[0].first, x[0].second);
    printf("x2 = %.15lf + i * %.15lf\n", x[1].first, x[1].second);
    printf("x3 = %.15lf + i * %.15lf\n", x[2].first, x[2].second);
    return 0;
}
Добавлено через 1 минуту
C++
1
2
freopen("input.txt", "rt", stdin);
freopen("output.txt", "wt", stdout);
и некоторые модули (inlcude) можно убрать

Добавлено через 9 часов 17 минут
мне интересно, я вам помог ?
3
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru