Приветствую, господа. Помогите пожалуйста с "почти" готовыми кодами, которые нужно довести до ума. Итак, код 1:
Задание 1. Создать класс «Квадратное уравнение». Данные класса - значения коэффициентов a, b, c, а также решения уравнения х1 и х2. Создать конструктор ведения данных класса, конструктор по умолчанию и копирования. Определите метод для вычисления корней уравнения, причем результаты развязку передаются как параметры функции х1 и х2 через указатель или ссылку. Предусмотрите все возможные варианты развязку.
Задание 2. Создайте класс-потомок «Теорема Виета», в котором переопределите метод нахождения корней квадратного уравнения по соответствующей теоремой. Выведите результаты на экран.
Определите статические и динамические объекты созданного типа и вызовите соответствующие методы для вычисления корней таких уравнений:
Тут я сделал вот такой код:
#include <iostream.h>
#include <complex.h>
#include <vcl.h>
#include <math.h>
using namespace std;
typedef double Qd;
typedef float Qf;
class QQ
{
public:
QQ
(Qd A = 1, Qd B = 0, Qd C = 0):a(A), b(B), c(C)
{
}
void vvid()
{
cout << "Коефициенты: "
<< endl;
do
{
cout << "a = ";
cin >> a;
}while(a == 0);
cout << "b = ";
cin >> b;
cout << "c = ";
cin >> c;
}
void show()
{
cout << "Уравнение вида: ";
print();
cout << ":"
<< endl
<< "D= "
<< D()
<< endl
<< "Корни:"
<< endl
<< "\tX1 = "
<< X1()
<< endl
<< "\tX2 = "
<< X2()
<< endl
<< endl
<< endl
<< endl
<< endl
<< endl;
}
Qf D()
{
return b * b - 4 * a * c;
}
Qf X1()
{
return (-b - sqrt(D())) / (2.0 * a);
}
Qf X2()
{
return (-b + sqrt(D())) / (2.0 * a);
}
void print()
{
if(abs(a) == 1)
{
cout << (a > 0 ? "" : "-");
}
else
{
cout << a;
}
cout << "x^2";
if(b)
{
cout << (b > 0 ? " + " : " - ");
if(abs(b) != 1)
{
cout << abs(b);
}
cout << "x";
}
if(c)
{
cout << (c > 0 ? " + " : " - ")
<< abs(c);
}
cout << " = 0";
}
private:
Qd a;
Qd b;
Qd c;
};
int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
QQ one(-7, 6, 1);
QQ two(1, -6, 8);
QQ three(1, 0, -4);
QQ four(-4, 6, 1);
QQ five(-1, -3, 10);
one.show();
two.show();
three.show();
four.show();
five.show();
cin.get();
}
Но мне нужно еще сделать, так чтоб уравнения виду ax^2+bx+c=0 где a!=0, b!=0, c!=0 решалось по теореме Виетта. Я сделал вот такой код:
#include <math.h>
int n=0;
float x1, x2=abs(c/a);
for (;x2>=-abs(c/a);x2-=0.01)
{
x1=(c/a)/x2;
if (x1+x2==-b/a)
{
n=1;
break;
}
}
if (n==1)
cout<<"x1= "<<x1<<"\nx2= "<<x2;
else cout<<"нет корней";
Помогите, можете склеить код с проверкой уравнения и сказать, что еще я не выполнил в задании.
Как меняется крипторынок и к чему готовиться владельцам криптообменников
Доброго времени сутокВ своем вопросе рассматриваю паттерны прокси и декоратор исключительно в контексте языка c++
Есть некий класс, сlass A_class; у него есть свойство int b; и метод void action(); который содержит некий код
Здравствуйте, как умножить каждый элемент массива по очереди на каждый элемент другого массиваНапример есть массив А[5] B[5] и нужно умножить...
Из описания на msdn в Win32_Processor есть поле ProcessorTypeЯ пробую вывести это строками: