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

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

Восстановить пароль Регистрация
 
ega005
0 / 0 / 0
Регистрация: 12.10.2012
Сообщений: 99
02.05.2013, 12:35     Вычисление дискриминанта #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
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 ();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.05.2013, 12:35     Вычисление дискриминанта
Посмотрите здесь:

C++ вычисление пи
Вычисление непрерывных дробей и выражений. Вычисление полиномов и их производных. C++
C++ Составить программу для решения квадратного уравнения методом дискриминанта.
C++ Вычислить x1 (и x2) с помощью дискриминанта
C++ Вычисление дискриминанта
C++ Нахождение дискриминанта через указатели и ссылки
Поиск дискриминанта, АТД "Квадратное уравнение" C++
Вычисление степени матрицы, вычисления произведения двух матриц, вычисление суммы двух матриц C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ternsip
 Аватар для 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)
ega005
0 / 0 / 0
Регистрация: 12.10.2012
Сообщений: 99
02.05.2013, 21:06  [ТС]     Вычисление дискриминанта #3
Большое спасибо! все получилось....
Yandex
Объявления
02.05.2013, 21:06     Вычисление дискриминанта
Ответ Создать тему
Опции темы

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