Advertisement
Guest User

Untitled

a guest
Nov 26th, 2015
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.95 KB | None | 0 0
  1. void mmoo::on_raschet_clicked()//действие при нажатии
  2. {
  3. double la = ui->lineEdit_X->text().toDouble();//ввод значений для переменный la, mu
  4. double mu = ui->lineEdit_Y->text().toDouble();
  5. int summ = 1;
  6. if((la / mu) > 0 && (la / mu) < 1)//условие
  7. {
  8. ui->raschet->setStyleSheet("background: green"); // выполнено верно
  9. ui->wrong->setText("");
  10.  
  11. double K = la / mu;//объявление переменных с их формулами
  12. double Ws = 1 / mu;
  13.  
  14. ui->lineEdit_K->setText( QString::number( K ) );//вывод значений после вычислений
  15. ui->lineEdit_Ws->setText( QString::number( Ws ) );
  16.  
  17. QVector<double> x(12), y(12); //построение графика
  18. for (int i=0; i<11; i++)
  19. {
  20. summ = summ *i;
  21. y[i] = ((pow((la / mu), i)) / summ) * exp(-(la / mu));
  22. x[i] = i;
  23. }
  24. // создаем график и добавляем данные:
  25. ui->grafik->addGraph();
  26. ui->grafik->graph(0)->setData(x, y);
  27. // задаем имена осей координат
  28. ui->grafik->xAxis->setLabel("k");
  29. ui->grafik->yAxis->setLabel("Pk");
  30. // задаем размеры осей
  31. ui->grafik->xAxis->setRange(0, 10);
  32. ui->grafik->yAxis->setRange(0, 1.5);
  33. ui->grafik->replot();
  34.  
  35. QVector<double> Ticks;//шаг
  36. int i = 0;
  37. while(i<=10) {
  38. Ticks << i;
  39. i+=1;
  40. }
  41. ui->grafik->xAxis->setAutoTicks(false); // выключаем автоматические отсчеты
  42. ui->grafik->xAxis->setTickVector(Ticks);
  43.  
  44. QStringList QSLx,QSLy; //заполнение счётчика для х,у
  45. for (int i=0; i<11; i++)
  46. {
  47. QSLx<<QString::number(x[i]= i);
  48. QSLy<<QString::number(y[i] = i);
  49. }
  50. QAbstractItemModel *QAIM = new QStringListModel(QSLx);
  51. for (int i=0; i<11; i++)
  52. {
  53. //double summ = 1;
  54. y[i] = i;
  55. x[i] = i;
  56. }
  57. ui->schetchik->setModel(QAIM);
  58.  
  59. QStringList QSLz,QSLl; // заполнение таблицы значениями в точках х,у
  60. for (int i=0; i<11; i++)
  61. {
  62. double summ = 1;
  63. QSLz<<QString::number(x[i]=((pow((la / mu), i)) / summ) * exp(-(la / mu)));
  64. QSLl<<QString::number(y[i] = i);
  65.  
  66. }
  67. QAbstractItemModel *QAIM1 = new QStringListModel(QSLz);
  68. for (int i=0; i<11; i++)
  69. {
  70. y[i] = i;
  71. x[i] = i;
  72. }
  73. ui->listView->setModel(QAIM1);
  74. }
  75. else//значения в случае ошибки
  76. {
  77. ui->raschet->setStyleSheet("background: red");//кнопка становится красной в случае ошибки
  78. ui->wrong->setText("Значение μ должно быть больше λ");//комментарий при ошибке
  79. ui->lineEdit_K->setText(" ");
  80. ui->lineEdit_Ws->setText(" ");
  81.  
  82. }
  83. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement