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

Квадратное уравнение - C++

Восстановить пароль Регистрация
 
dmitrichh
 Аватар для dmitrichh
0 / 0 / 0
Регистрация: 10.06.2013
Сообщений: 3
10.06.2013, 22:24     Квадратное уравнение #1
Недавно начал изучать язык и по мере прочтения книги решил порешать задачи. Сначала все было хорошо, но когда дошел до квадратного уравнения, столкнулся с проблемой. Вот код :
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
// kvur.cpp -- решает квадратное уравнение.
#include <iostream>
#include <cmath>
 
using namespace std;
int main()
{
    double a, b, c, D, X1, X2;
 
    cout << " ax^2 + bx + c = 0. Vvedite a,b,c: " << endl;
    cin >> a >> b >> c;
    cout << "a=" << a << " b=" << b << " c=" << c << endl;
    cout << "Vashe uravnenie imeet vid : " << a << "x^2 + " << b << "x + " << c << " = 0" << endl;
    
 
    D = b*b - 4*a*c;
    cout << "D=" << D << endl;
    
    if (D > 0) {
        X1 = (-b+sqrt(D)) / (2*a); 
        X2 = (-b-sqrt(D)) / (2*a); 
        cout <<  "X1=" << X1 << endl << "X2=" << X2 << endl;
    } else if (D == 0) {
        X1 = (-b/(2*a));
        cout << "X=" << X1 << endl;
    } else if (D < 0.0){
        cout <<"Net resheniya" << endl;
    }
 
    cin.get();
    cin.get();
    return 0;
}
Дискриминант находит правильно, но когда доходит до значений Х1 и Х2, получается ерунда, хотя формула, по которой рассчитывается корень правильна. Например, при введении значений a= 15, b=-2, c=-1 , значения иксов должны получиться такими : X1=-5 , X2=3. А в программе дискриминант считается верно, но значения иксов такие : X1=0.333333 , X2=-0.2.

Подскажите пожалуйста, что нужно дописать или исправить, чтобы программа выдавала верный результат.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.06.2013, 22:24     Квадратное уравнение
Посмотрите здесь:

Квадратное уравнение C++
Квадратное уравнение C++
C++ Квадратное уравнение
C++ Квадратное уравнение в с
C++ Квадратное уравнение
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Denisqwwq
 Аватар для Denisqwwq
38 / 32 / 1
Регистрация: 01.06.2013
Сообщений: 117
10.06.2013, 22:38     Квадратное уравнение #2
Цитата Сообщение от dmitrichh Посмотреть сообщение
a= 15, b=-2, c=-1 , значения иксов должны получиться такими : X1=-5 , X2=3.
всё правильно программа считает
будь внимательней
C++
1
2
X1 = (-b+sqrt(D)) / (2*a); 
X2 = (-b-sqrt(D)) / (2*a);

Цитата Сообщение от dmitrichh Посмотреть сообщение
значения иксов должны получиться такими : X1=-5 , X2=3
X1=(2+8)/30 = 0.33..
X2=(2-8)/30 = -0.2
newb_programmer
 Аватар для newb_programmer
237 / 237 / 19
Регистрация: 03.09.2011
Сообщений: 553
10.06.2013, 22:41     Квадратное уравнение #3
я вместо sqrt юзал pow(x,0.5);
чето у меня с sqrt проблемы были, мож и у вас такое, потестируйте
и еще есть такая штука теорема Виета, проверяете х1 и х2 на корректность если норма, то получите и распишитесь..., а если нет то "ур-е решено не верно"=)
dmitrichh
 Аватар для dmitrichh
0 / 0 / 0
Регистрация: 10.06.2013
Сообщений: 3
10.06.2013, 22:48  [ТС]     Квадратное уравнение #4
Цитата Сообщение от Denisqwwq Посмотреть сообщение
всё правильно программа считает
будь внимательней
C++
1
2
X1 = (-b+sqrt(D)) / (2*a); 
X2 = (-b-sqrt(D)) / (2*a);


X1=(2+8)/30 = 0.33..
X2=(2-8)/30 = -0.2
И правда. Я был невнимателен, когда брал примеры квадратных уравнений с рандомного сайта, чтобы сравнить с ответами в программе.

[IMG]http://i47.***********/big/2013/0610/d5/1dd20295ae86ed7999f861a5008b84d5.png[/IMG]
Из-за невнимательности вбил как а=15, b= -2 и с=-1, а ответы смотрел для a= -1, b= -2, c=15.

Спасибо за столь быстрый ответ.
Denisqwwq
 Аватар для Denisqwwq
38 / 32 / 1
Регистрация: 01.06.2013
Сообщений: 117
10.06.2013, 22:53     Квадратное уравнение #5
Цитата Сообщение от dmitrichh Посмотреть сообщение
Недавно начал изучать язык и по мере прочтения книги...
Если не секрет, какую литературу читаете?
dmitrichh
 Аватар для dmitrichh
0 / 0 / 0
Регистрация: 10.06.2013
Сообщений: 3
10.06.2013, 22:55  [ТС]     Квадратное уравнение #6
Цитата Сообщение от Denisqwwq Посмотреть сообщение
Если не секрет, какую литературу читаете?
Прата С. Язык программирования С++ Лекции и упражнения 2011.
Yandex
Объявления
10.06.2013, 22:55     Квадратное уравнение
Ответ Создать тему
Опции темы

Текущее время: 23:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru