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

Квадратное уравнение

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

Author24 — интернет-сервис помощи студентам
Недавно начал изучать язык и по мере прочтения книги решил порешать задачи. Сначала все было хорошо, но когда дошел до квадратного уравнения, столкнулся с проблемой. Вот код :
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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.06.2013, 22:24
Ответы с готовыми решениями:

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

Квадратное уравнение
Написала программу, вроде все должно работать, как должно, ан нет... Условие: у=корень квадратный...

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

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

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


Из-за невнимательности вбил как а=15, b= -2 и с=-1, а ответы смотрел для a= -1, b= -2, c=15.

Спасибо за столь быстрый ответ.
0
38 / 32 / 7
Регистрация: 01.06.2013
Сообщений: 117
10.06.2013, 22:53 5
Цитата Сообщение от dmitrichh Посмотреть сообщение
Недавно начал изучать язык и по мере прочтения книги...
Если не секрет, какую литературу читаете?
0
0 / 0 / 0
Регистрация: 10.06.2013
Сообщений: 3
10.06.2013, 22:55  [ТС] 6
Цитата Сообщение от Denisqwwq Посмотреть сообщение
Если не секрет, какую литературу читаете?
Прата С. Язык программирования С++ Лекции и упражнения 2011.
0
10.06.2013, 22:55
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.06.2013, 22:55
Помогаю со студенческими работами здесь

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

Квадратное уравнение
Хотел написать программу которая решает квадратное уравнение.Выдает две ошибки. #include...

Квадратное уравнение
всем привет!кто нибудь может написать программу решения квадратного уравнения в общем виде с...

Квадратное уравнение
Здравствуйте! Это код квадратного уравнение. Компилируется все нормально. Но программа не...


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

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