#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;
}
Другие языки программирования и технологии
Каково качество кода С++
Ранее отписавшиеся ИИ говорили о качестве ПРОГРАММЫ.
Программа действительно реализована плохо. Если прогнать её через тесты, она не будет работать.
Тем более, что это не финальная версия. И вы не дали ЗАДАНИЕ, без которого оценивать, как работает программа - пустая трата времени (к примеру в задании может быть написано, что программа ОБЯЗАНА выдать сообщение о делении на 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)
ЗЗЫ
Проверка корректности ввода и просеивание условий занимают более половины кода нормальной программы.
Программа действительно реализована плохо. Если прогнать её через тесты, она не будет работать.
Тем более, что это не финальная версия. И вы не дали ЗАДАНИЕ, без которого оценивать, как работает программа - пустая трата времени (к примеру в задании может быть написано, что программа ОБЯЗАНА выдать сообщение о делении на 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)
ЗЗЫ
Проверка корректности ввода и просеивание условий занимают более половины кода нормальной программы.
Видно, что писал начинающий, но сдать, скорее всего, получится.
Ну, например, почему коэффициенты уравнения обязаны быть целыми? Равенство а нулю приведет к ошибке. Синтаксис довольно корявый. И в вычислительной математике для решения кв. уравнений применяется не школьная формула, а ее модификация, обеспечивающая в ряде случаев более высокую точность решения, но это начинающему знать необязательно.
P.S. И Капитан Гугл прав - сравнение неправильно и корень рассчитывается до проверки, этого я не заметил :(
Ну, например, почему коэффициенты уравнения обязаны быть целыми? Равенство а нулю приведет к ошибке. Синтаксис довольно корявый. И в вычислительной математике для решения кв. уравнений применяется не школьная формула, а ее модификация, обеспечивающая в ряде случаев более высокую точность решения, но это начинающему знать необязательно.
P.S. И Капитан Гугл прав - сравнение неправильно и корень рассчитывается до проверки, этого я не заметил :(
Низкое. Используется древняя библиотека для C, нет отступов (возможно, ответы съели - выкладывай на pastebin.com ), непонятно, что такое "первое, второе и третье число", нет проверки введенных чисел (если ввести буквы, программа будет делать неизвестно что) , корень рассчитывается до проверки на отрицательность, нет проверки на деление на 0, неправльно выполняется сравнение...
Если срок годности не вышел и условия хранения допустимые, то нормальное, среднего уровня
С пивасиком покатит, если маздай работает!
Похожие вопросы
- Получение опыта в области программирования (архитектура программы, качество кода).
- Ищу идею на разработку /в качестве повышения своего уровня кода/
- Вопрос по основам машинного кода и бинарного кода. Как это работает в своей основе?
- Ассемблерная вставка в С .Странный код. Можете расшифровать?
- как прописать bat код в сайт
- Что для вас "говно код" ?
- как научиться писать хороший код? В смысле я даже не понимаю что такое хороший код. Что такое хороший код?
- ООП это когда данные управляют кодом а функциональное когда код данными?
- Чем отличается код разных форматов картинок? Каковы принципы сжатия?
- Как понять машинный код ?(Компилятор переводит исходный код компьютерной программы в машиный код).