0 / 0 / 0
Регистрация: 24.10.2016
Сообщений: 84
1

Реализовать программу поиска корней квадратного уравнения

15.09.2017, 08:35. Показов 1264. Ответов 3
Метки нет (Все метки)

Реализовать программу поиска корней квадратного уравнения. Предусмотреть обработку всех возможных исключений и введение коэффициентов уравнения из файла. Написал программу, но при выводе либо неправильно считает корни, либо выводит то "0", то "нету корней", не могу понять в чем ошибка. Подскажите, пожалуйста. Использую Code::Blocks IDE
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
42
43
44
45
46
47
#include <iostream>
#include <cmath>
#include <fstream>
using namespace std;
 
int main()
{
float a, b, c, otv, otv1, otv2, D, x;
cout << "ax^2 + bx +c = 0" "\n";
 
 
ifstream file("/home/user37/file1.txt");
if (file.is_open()){
    cout << "0";
}
file >> a >> b >> c;
 
file.close();
 
//cout « " a = ";
//cin » a;
//cout « " b = ";
//cin » b;
//cout « " c = ";
//cin » c;
D = pow(b,2) - (4*a*c);
if (a == 0 and b ==0) {
        cout << "Pri lubom x";
}
if (a == 0) {
        x =(-c)/b;
        cout << x;
}
if (D > 0){
otv1 = ((-b) + sqrt(D))/(2*a);
otv2 = ((-b) - sqrt(D))/(2*a);
cout << "otv1 = " << otv1 << " otv2 = " << otv2;
};
if (D == 0){
otv = (-b)/(2*a);
cout << otv;
};
if (D < 0){
cout << "Net korney";
};
return 0;
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.09.2017, 08:35
Ответы с готовыми решениями:

Реализовать функцию, определяющую количество корней квадратного уравнения
//Proc17. Описать функцию RootsCount(A, B, C) целого типа, определяющую количество корней...

Написать программу нахождения корней квадратного уравнения
Заданы коэффициенты квадратного уравнения. Найти его корни (написать программу,помогите пожалуйста)

Составить программу нахождения действительных корней квадратного уравнения
Напишите программу нахождения действительных корней квадратного уравнения плиззззз очень...

Составить алгоритм и программу поиска корней трансцендентного уравнения
Составить алгоритм и программу поиска корней трансцендентного уравнения x*ln(x)+x^3-4=0. Больше...

3
Модератор
1436 / 1011 / 228
Регистрация: 31.05.2013
Сообщений: 6,645
Записей в блоге: 6
15.09.2017, 09:16 2
А с cin/cout работает нормально?

Добавлено через 4 минуты
Не знаю, я проверил - всё ОК.
Только заменил:
C++
1
ifstream file("file1.txt");
Добавлено через 1 минуту
Сравнил чтение из файла с ручным вводом - всё ОК.
Может, в файле у Вас данные неправильно идут? Должно быть на каждой строке отдельный коэффициент.
1
279 / 251 / 209
Регистрация: 14.11.2016
Сообщений: 949
15.09.2017, 09:25 3
sma1le1, нуль в единственном случае может у тебя вывести, когда файл не удалось открыть.
Закинь файл в папку с проектом и ifstream file("file1.txt");
Либо пробуй указывать полный путь "C:\\Users\\ и т.д."
1
12 / 5 / 5
Регистрация: 01.02.2016
Сообщений: 27
15.09.2017, 09:44 4
У меня тоже работает.
Но у вас ошибка, когда и a, и b равны нулю. Срабатывают if и в 27, и в 30 строках.
имеет смысл сделать так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
if (a == 0) {
      if (b == 0)
            cout << "Pri lubom x";
      else {
           x =(-c)/b;
           cout << x;
      }
}
else {
     D = pow(b,2) - (4*a*c);
     if (D > 0){
           otv1 = ((-b) + sqrt(D))/(2*a);
           otv2 = ((-b) - sqrt(D))/(2*a);
           cout << "otv1 = " << otv1 << " otv2 = " << otv2;
     };
     if (D == 0){
           otv = (-b)/(2*a);
           cout << otv;
     };
     if (D < 0){
           cout << "Net korney";
     };
}
Нет смысла считать дискриминант, если a нулевое, поэтому он тоже в else.

Добавлено через 17 минут
Кстати, при нулевых a и b, сработаеет if и в 39 строке. В итоге 3 разных ответа. Два из которых получаются делением на ноль.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.09.2017, 09:44
Помогаю со студенческими работами здесь

Вычисление корней квадратного уравнения
решите кому не сложно... составить программу расчитывающую корни квадратного уравнения с учетом...

Вычисление корней квадратного уравнения
1) Пишем функцию, которая переворачивает строку (массив типа char). Используйте цикл for, который...

Нахождение корней квадратного уравнения С++
Как найти корни квадратного уравнения С++?Задаются ведь значения x.y.z,а на выходе выводится...

Количество корней квадратного уравнения
Реализовать функцию, определяющую количество корней квадратного уравнения (целочисленное значение),...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru