#ifndef WIDGET_H#define WIDGET_H#include <QWidget>namespace Ui {class Widget;}class Widget : public QWidget{ Q_OBJECT public: int n,m,k,k1; // n - колво строк, m - колво столбцов, k,k1 - счетчик(в дальнейшем будет использовано оба елемента). double a[4][5]; //для уравнений double a1[4][5]; //для решения double a2[4][5]; //для проверки explicit Widget(QWidget *parent = 0); ~Widget(); private slots: void on_StartButton_clicked();private: Ui::Widget *ui;private slots: void zapoln(); void resenie(); void proverka_resh(); void on_nextButton_clicked();};#endif // WIDGET_H
#include "widget.h"#include "ui_widget.h"Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget){ n=4; m=5; k=0; k1=0; ui->setupUi(this);}Widget::~Widget(){ delete ui;}void Widget::zapoln(){ a[0][0] = ui->cof_a_0_0->text().toDouble(); a[0][1] = ui->cof_b_0_1->text().toDouble(); a[0][2] = ui->cof_c_0_2->text().toDouble(); a[0][3] = ui->cof_d_0_3->text().toDouble(); a[0][4] = ui->cof_s_0_4->text().toDouble(); a[1][0] = ui->cof_a_1_0->text().toDouble(); a[1][1] = ui->cof_b_1_1->text().toDouble(); a[1][2] = ui->cof_c_1_2->text().toDouble(); a[1][3] = ui->cof_d_1_3->text().toDouble(); a[1][4] = ui->cof_s_1_4->text().toDouble(); a[2][0] = ui->cof_a_2_0->text().toDouble(); a[2][1] = ui->cof_b_2_1->text().toDouble(); a[2][2] = ui->cof_c_2_2->text().toDouble(); a[2][3] = ui->cof_d_2_3->text().toDouble(); a[2][4] = ui->cof_s_2_4->text().toDouble(); a[3][0] = ui->cof_a_3_0->text().toDouble(); a[3][1] = ui->cof_b_3_1->text().toDouble(); a[3][2] = ui->cof_c_3_2->text().toDouble(); a[3][3] = ui->cof_d_3_3->text().toDouble(); a[3][4] = ui->cof_s_3_4->text().toDouble(); for(int i=0; i<n; i++){ for(int j=0; j<m; j++){ a2[i][j] = a[i][j]; }} for(int i=0,j=4; i<n; i++){ a[i][j]*=-1; } for(int i=0; i<n; i++){ for(int j=0; j<m; j++){ a1[i][j] = a[i][j]; }}}void Widget::on_StartButton_clicked(){ { ui->cof_a_0_0->setEnabled(0); ui->cof_a_1_0->setEnabled(0); ui->cof_a_2_0->setEnabled(0); ui->cof_a_3_0->setEnabled(0); ui->cof_b_0_1->setEnabled(0); ui->cof_b_1_1->setEnabled(0); ui->cof_b_2_1->setEnabled(0); ui->cof_b_3_1->setEnabled(0); ui->cof_c_0_2->setEnabled(0); ui->cof_c_1_2->setEnabled(0); ui->cof_c_2_2->setEnabled(0); ui->cof_c_3_2->setEnabled(0); ui->cof_d_0_3->setEnabled(0); ui->cof_d_1_3->setEnabled(0); ui->cof_d_2_3->setEnabled(0); ui->cof_d_3_3->setEnabled(0); ui->cof_s_0_4->setEnabled(0); ui->cof_s_1_4->setEnabled(0); ui->cof_s_2_4->setEnabled(0); ui->cof_s_3_4->setEnabled(0); ui->StartButton->setEnabled(0); ui->nextButton->setEnabled(1); QObject::connect(ui->nextButton, SIGNAL(clicked()), this, SLOT(zapoln())); }}void Widget::resenie(){ k++; k1++; for(int i=0; i<n; i++){ for(int j=0; j<m; j++){ if(i!=k && j!=k1){ a[i][j] = a1[k][k1]*a1[i][j] - a1[i][k1]*a1[k][j]; } else {} }} for(int i=k, j=0; j<m; j++){ a[i][j] *= -1; } a[k][k1] = 1; for(int i=0; i<n; i++){ for(int j=0; j<m; j++){ a[i][j] /= a1[k][k1]; }} for(int i=0; i<n; i++){ for(int j=0; j<m; j++){ a1[i][j] = a[i][j]; }}}void Widget::proverka_resh(){ QString str; if(a2[0][m-1]*(-1) == a2[0][0]*a[0][m-1]+a2[0][1]*a[1][m-1]+a2[0][2]*a[2][m-1]+a2[0][3]*a[3][m-1]){ ui->nextButton->setDisabled(1); for(int i=0, j = 4; i<n; i++){ //str.append("X"); //str.append(str.number(i)); //str.append() //str.append(str.number(a[i][j])); str = QString().arg("X").arg(i).arg(" = ").arg(str.number(a[i][j])); ui->textEdit->setHtml(ui->textEdit->toHtml() + str); str.clear(); } } else { ui->nextButton->setDisabled(1); ui->textEdit->setText("No variant."); }}void Widget::on_nextButton_clicked(){ if(k<4 && k1<4){ QObject::connect(ui->nextButton, SIGNAL(pressed()), this, SLOT(resenie()));} else { ui->nextButton->setDisabled(1); QObject::connect(ui->nextButton, SIGNAL(pressed()), this, SLOT(proverka_resh())); }}
#include <QtGui/QApplication>#include "widget.h"int main(int argc, char *argv[]){ QApplication a(argc, argv); Widget w; w.show(); return a.exec();}