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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
dmitrichh
0 / 0 / 0
Регистрация: 10.06.2013
Сообщений: 3
#1

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

10.06.2013, 22:24. Просмотров 746. Ответов 5
Метки нет (Все метки)

Недавно начал изучать язык и по мере прочтения книги решил порешать задачи. Сначала все было хорошо, но когда дошел до квадратного уравнения, столкнулся с проблемой. Вот код :
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.

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

Создать производные классы линейное уравнение и квадратное уравнение, в которых данная функция переопределена - C++
Создать абстрактный базовый класс уравнение с виртуальной функцией - корни уравнения. Создать производные классы линейное уравнение и...

Квадратное уравнение - C++
Здравствуйте! Это код квадратного уравнение. Компилируется все нормально. Но программа не выполняет поиск корней, если D&gt;0 и D=0....

Квадратное уравнение в с - C++
Здравствуйте. Надо найти корни квадратного уравнения или показать что один корень или нет корней. Нужно сделать в с, а не в с++. Please,...

Квадратное уравнение - C++
ax^2+bx+c=o в c\c++

Квадратное уравнение - C++
Прога работает, но неправильно считает корни, что не так??? #include &lt;stdio.h&gt; #pragma hdrstop #include &lt;math.h&gt; #include...

С++ квадратное уравнение - C++
Здравствуйте! Подскажите с чего начать вот такую задачу решать. Спасибо всем за помощь! Задача (консольная программа). Верно...

5
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
1
newb_programmer
237 / 237 / 19
Регистрация: 03.09.2011
Сообщений: 555
10.06.2013, 22:41 #3
я вместо sqrt юзал pow(x,0.5);
чето у меня с sqrt проблемы были, мож и у вас такое, потестируйте
и еще есть такая штука теорема Виета, проверяете х1 и х2 на корректность если норма, то получите и распишитесь..., а если нет то "ур-е решено не верно"=)
0
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.

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

Квадратное уравнение - C++
Решил немного попрактиковаться и написать програмку для решения квадратных уравнений. И у меня вопрос - поддерживает ли С++ комплексные...

Квадратное уравнение - C++
ПОМОГИТЕ ПЛИЗ ДОПИСАТЬ ЗАДАЧУ А ТО ЧТОТ ВАШПЕ НЕПОЛУЧАЕТСЯ , НЕРАБОТАЕТ ))*ЕСЛИ МОЖНО ТО С КОММЕНТАРИЯМИ 1)Написать программу решения...

Квадратное уравнение - C++
Написала программу, вроде все должно работать, как должно, ан нет... Условие: у=корень квадратный из (25-икс квадрат) + 2а/х-3 ...

Квадратное уравнение - C++
Нужно написать программу: вывести три целых числа, которые есть коэффициентами квадратного уравнения, найти корни квадратного уравнения. ...


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

Или воспользуйтесь поиском по форуму:
6
Yandex
Объявления
10.06.2013, 22:55
Ответ Создать тему
Опции темы

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