Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "mainwindow.h"
- #include "ui_mainwindow.h"
- #include <complex>
- #include <sstream>
- #include <iomanip>
- MainWindow::MainWindow(QWidget *parent) :
- QMainWindow(parent),
- ui(new Ui::MainWindow)
- {
- ui->setupUi(this);
- }
- MainWindow::~MainWindow()
- {
- delete ui;
- }
- void MainWindow::on_sloveButton_clicked()
- {
- std::complex<double>a, b, c, D;
- a = ui->avalue->value();
- b = ui->avalue->value();
- c = ui->avalue->value();
- D = b*b-4.0*a*c;
- std::ostringstream out;
- out<< "Equation";
- if (a.real()!=0.0)
- {
- if (a*a == 1.0)
- {
- out<<(a.real()>0.0)?"x2":"-x^2";
- }
- else
- {
- out << std::setprecision(2)<<a.real() << "x^2";
- }
- }
- if (b.real()!=0.0)
- {
- if (b*b == 1.0)
- {
- out<<(b.real()>0.0)?+"+x":"-x";
- }
- else
- {
- out << (b.real()>0.0)?"+":"";
- out <<b.real() << "x";
- }
- }
- if (c.real()!=0.0)
- {
- out << (c.real()>0.0)?"+":"";
- out <<c.real() << "\n";
- }
- out << "Discriminant: " <<D.real() << "\n";
- out << "x1= " << (-b.real() - sqrt(D).real()/(2.0*a.real()));
- if ((sqrt(D).imag() != 0.0)
- {
- out <<((-sqrt(D).imag()/(2*a.real()>0.0)?"+"))))
- }
- std::string output;
- output += std::to_string(a.real())+"x^2" +"+";
- output += std::to_string(b.real())+"x"+"+";
- output += std::to_string(c.real())+'\n';
- output += "Discriminant"+std::to_string(D.real()) +'\n';
- output += "x1 =" + std::to_string((-b.real() - sqrt(D).real()/(2.0*a.real()))) +'\n';
- output += " " + std::to_string((-sqrt(D).imag()/(2.0*a.real()))) + '\n';
- output += "x2 =" + std::to_string((-b.real() + sqrt(D).real()/(2.0*a.real())) )+'\n';
- output += " " + std::to_string((sqrt(D).imag()/(2.0*a.real()))) + '\n';
- ui->output_area->setText(output.c_str());
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement