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

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

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

Вычисление дискриминанта - C++

02.05.2013, 12:35. Просмотров 678. Ответов 2
Метки нет (Все метки)

Вроди простая программа но почему то работает некоректно не пойму в чем причина С++
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
 #include "stdafx.h"
#include <iostream>
#include <string>
#include <windows.h>
#include <fstream>
#include <math.h>
using namespace std;
 
bool Discrim () {
    setlocale(LC_ALL, "Russian");
    int a; int b; int c; float d; int x1; int x2; int x3;
    
    cout << "Введите число a" << endl;
    cin >> a;
    cout << "Введите число b" << endl;
    cin >> b;
    cout << "Введите число c" << endl;
    cin >> c;
 
    d = (b ^ 2) - (4 * a * c);
    
    if (a==0) {
        cout << "Уравнение линейное" << endl;
    } else if (d>0) {
            x1 = (-b+sqrt(d)) / (2 * a);
            x2 = (-b-sqrt(d)) / (2 * a);
            cout << "D= " << d << endl << "Уравнение имеет два корня = " << endl << x1 << endl << x2 << endl;
        } else if (d==0) {
                x3 = (-b) / (2 * a);
                cout << "D= " << d << endl << "Уравнение имеет 1 корень = " << endl << x3 << endl;
            } else if (d<0) {
                    cout << "Уравнение не имеет корней" << endl;
                }  
                
             system("pause");
  return 0;
            
        }
int main () {
    Discrim ();
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.05.2013, 12:35
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вычисление дискриминанта (C++):

Вычисление дискриминанта - C++
Не работает программа. Подскажите, что не так.#include &lt;QTextStream&gt; #include&lt;iostream&gt; #include&lt;math.h&gt; using namespace std; ...

Вычислить x1 (и x2) с помощью дискриминанта - C++
Создать приложение для вычисления x1 (и x2) с помощью дискриминанта. Вычисления реализовать в отдельной функции.

Нахождение дискриминанта через указатели и ссылки - C++
Имеется вот такой код #include &lt;iostream&gt; #include &lt;math.h&gt; using namespace std; int menu() { int choose; cout...

Программа для вычисления дискриминанта, пишет ошибку - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;locale&gt; using namespace std; int _tmain() { setlocale(LC_ALL, &quot;&quot;); ...

Составить программу для решения квадратного уравнения методом дискриминанта. - C++
Составить программу для решения квадратного уравнения методом дискриминанта.

Поиск дискриминанта, АТД "Квадратное уравнение" - C++
нужно создать АТД квадратное уравнение, с выводом корней и самого уравнения на экран. Вывод уравнения, вроде, проходит нормально, а вот...

2
Ternsip
660 / 188 / 6
Регистрация: 10.05.2012
Сообщений: 595
02.05.2013, 13:10 #2
Цитата Сообщение от ega005 Посмотреть сообщение
if (a==0) {
if (abs(a) < 1e-12)
2) все float замените на double

Цитата Сообщение от ega005 Посмотреть сообщение
int a; int b; int c;
Цитата Сообщение от ega005 Посмотреть сообщение
int x1; int x2; int x3;
переделайте в вещественный тип double, вы просто всё делаете в целых числах

Добавлено через 1 минуту
Цитата Сообщение от ega005 Посмотреть сообщение
cout << "D= " << d << endl << "Уравнение имеет два корня = " << endl << x1 << endl << x2 << endl;
вместо этого пишите лучше так :
printf("D= %.15lf\n Уравнение имеет два корня =\n %.15lf\n%15lf", d, x1, x2);

Добавлено через 1 минуту
Цитата Сообщение от ega005 Посмотреть сообщение
return 0;
это перенесите в конец int main()

Добавлено через 16 секунд
Цитата Сообщение от ega005 Посмотреть сообщение
bool Discrim () {
поменяйте на void

Добавлено через 1 минуту
Цитата Сообщение от ega005 Посмотреть сообщение
(b ^ 2)
^ = xor = битовая операция сумма Жегалкина или сумма по модулю 2
для возведения в степень используйте pow(b, 2.0)

Добавлено через 1 минуту
Цитата Сообщение от ega005 Посмотреть сообщение
(2 * a);
все числа в коде лучше делайте сразу вещественными 2.0 * a, если они будут иметь операции с вещественным типом

Добавлено через 1 минуту
Цитата Сообщение от ega005 Посмотреть сообщение
(d==0)
тут тоже if (abs(d) < 1e-12)
1
ega005
0 / 0 / 0
Регистрация: 12.10.2012
Сообщений: 101
02.05.2013, 21:06  [ТС] #3
Большое спасибо! все получилось....
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.05.2013, 21:06
Привет! Вот еще темы с ответами:

Вычисление непрерывных дробей и выражений. Вычисление полиномов и их производных. - C++
1. Чему равна знакочередующаяся сумма цифр числа n. 2. Даны натуральное число n и вещественное число х. Составить программу для...

Вычисление степени матрицы, вычисления произведения двух матриц, вычисление суммы двух матриц - C++
Здравствуйте, помогите решить, пожалуйста: Заданы две квадратные матрицы А и В. Вычислить матрицу...

Вычисление дискриминанта - Assembler
y=5-x+5 найти дискрименант (D) Добавлено через 53 секунды в Assembler)

Вычисление дискриминанта квадратного уравнения - PascalABC.NET
Разработать схему алгоритма для вычисления дискриминанта d квадратного уравнения ax2 + bx + c = 0. Разработать тесты проверки правильности...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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