Другие языки программирования и технологии

Каково качество кода С++

#include <conio.h>

#include <iostream>

#include <cmath>

using std::cout;

using std::cin;

using std::endl;

int main()

{

setlocale(LC_ALL, "Russian");

int a, b, c, d;

cout << "Введите первое число: " << endl;

cin >> a;

cout << "Введите второе число: " << endl;

cin >> b;

cout << "Введите третье число: " << endl;

cin >> c;

double x1, x2;

d = (b*b) - 4 * (a * c);



x1 = (-b + sqrt(d)) / (2 * a);

x2 = (-b - sqrt(d)) / (2 * a);

cout << "(" << b << "^2)- 4* " << a << "*" << c << "=" << d << endl;

cout << "x1 = (" << b << "+" << sqrt(d) << ")/(2*" << a << ")=" << x1 << endl;

cout << "x2 = (" << b << "-" << sqrt(d) << ")/(2*" << a << ")=" << x2 << endl;

if (d > 0)

cout << "Два корня: x1 = : " << x1 << ", x2 = " << x2;

else

if (d = 0)

cout << "Один корень: x1 = " << x1;

else

if (d < 0)

cout << "Корней нет";

_getch();

return 0;

}
Сергей T
Сергей T
752
Ранее отписавшиеся ИИ говорили о качестве ПРОГРАММЫ.
Программа действительно реализована плохо. Если прогнать её через тесты, она не будет работать.
Тем более, что это не финальная версия. И вы не дали ЗАДАНИЕ, без которого оценивать, как работает программа - пустая трата времени (к примеру в задании может быть написано, что программа ОБЯЗАНА выдать сообщение о делении на 0, если первое число == 0 и поэтому отсутствие проверки - это специально) .

Теперь про код. Там тоже всё плохо:
1. Нет информации о назначении программы, её авторе, годе выпуска, для какого компилятора предназначена
2. Отступы не следуют НИКАКИМ правилам их формирования (лучше бы их вообще не было)
3. Нет НИКАКИХ комментариев
4. Код выложенный здесь и на pastebin - отличаются.

Есть положительные моменты:
1. Операторы (на 95%) обрамлены пробелами
2. Похожие действия (ввод a, b и c, нахождение и вывод x1 и x2) выполнены одинаково.
3. Названия переменных (за исключением d - она должна быть заглавной) соответствуют одному из стандартных способов именования переменных в квадратном уравнении.

ЗЫ
И ещё по программе:
Есть ещё 2 семейства решений при a == 0 и b == 0
-- если с == 0 - решений бесконечно много
-- если с != 0 - решений нет
Также пропущено семейство a == 0 и b !=0 (x = - с / b)

ЗЗЫ
Проверка корректности ввода и просеивание условий занимают более половины кода нормальной программы.
Владимир Кордик
Владимир Кордик
11 112
Лучший ответ
Видно, что писал начинающий, но сдать, скорее всего, получится.
Ну, например, почему коэффициенты уравнения обязаны быть целыми? Равенство а нулю приведет к ошибке. Синтаксис довольно корявый. И в вычислительной математике для решения кв. уравнений применяется не школьная формула, а ее модификация, обеспечивающая в ряде случаев более высокую точность решения, но это начинающему знать необязательно.
P.S. И Капитан Гугл прав - сравнение неправильно и корень рассчитывается до проверки, этого я не заметил :(
Алёша Зубков
Алёша Зубков
86 329
Низкое. Используется древняя библиотека для C, нет отступов (возможно, ответы съели - выкладывай на pastebin.com ), непонятно, что такое "первое, второе и третье число", нет проверки введенных чисел (если ввести буквы, программа будет делать неизвестно что) , корень рассчитывается до проверки на отрицательность, нет проверки на деление на 0, неправльно выполняется сравнение...
Сергей Верес
Сергей Верес
89 720
Если срок годности не вышел и условия хранения допустимые, то нормальное, среднего уровня
С пивасиком покатит, если маздай работает!
Roman Nikiforov
Roman Nikiforov
14 958