Вывод расчетов в TableView - Java

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток! Пишу программу для расчета необходимого диаметра трубы. Вроде бы все верно, но в TableView выводит не то, что надо Понял это, когда запустил тот же код в Delphi и PascalABC Мой код Java:
Листинг программы
  1. public void setValues(){
  2. resTable.getItems().removeAll(usersData);
  3. resTable.refresh();
  4. i = 0;
  5. final double pi = 3.14;
  6. final double eps = 0.00001;
  7. hMin = Integer.valueOf(hMin_TF.getText());
  8. hMax = Integer.valueOf(hMax_TF.getText());
  9. dH = Integer.valueOf(dH_TF.getText());
  10. qMin = valueOf(qMin_TF.getText());
  11. qMax = valueOf(qMax_TF.getText());
  12. dQ = valueOf(dQ_TF.getText());
  13. L = Integer.valueOf(L_TF.getText());
  14. Z = valueOf(Z_TF.getText());
  15. W = valueOf(W_TF.getText());
  16. do{
  17. do{
  18. A = (Math.pow(pi, 2) * dH)/(8 * Math.pow(dQ, 2));
  19. B = (0.02 * L)/A;
  20. C = B/40;
  21. E = (Z + W)/A;
  22. dn_1 = 0.2;
  23. do{
  24. dn_2 = dn_1;
  25. dn = dn_1 - (F(A, B, C, E, dn_1)) / (fs(A, B, C, dn_1));
  26. dn_1 = dn;
  27. }while(!(Math.abs(dn - dn_2) <= eps));
  28. i++;
  29. System.out.println(i + ": " + dn);
  30. usersData.add(new resView(1, new BigDecimal(dn).setScale(7, RoundingMode.HALF_UP).doubleValue(),
  31. hMin, new BigDecimal(qMin).setScale(2, RoundingMode.HALF_UP).doubleValue(), L, "3 и 5"));
  32. resTable.setItems(usersData);
  33. qMin = qMin + dQ;
  34. } while(qMin <= qMax);
  35. qMin = valueOf(dQ_TF.getText());
  36. hMin = hMin + dH;
  37. } while(hMin <= hMax);
  38. }
Выводит то, что вы видите на первом скриншоте Примерно тот же код, выполненный в PascalABC:
Листинг программы
  1. Program firstTest;
  2. var
  3. Hmin, Hmax, hH, Qmin, Qmax, hQ, l, z, w: real;
  4. function Stepen(x, y: real): real;
  5. begin
  6. Result := exp(y * ln(x));
  7. end;
  8. function f(a, b, c, e, x: real): real;
  9. begin
  10. Result := (A * stepen(x, 6)) - (C * sqr(x)) - (B * x) - E;
  11. end;
  12. function fs(a, b, c, x: real): real;
  13. begin
  14. Result := (6 * A * stepen(x, 5)) - (2 * C * x) - B;
  15. end;
  16. procedure Raschet;
  17. const
  18. pi = 3.14{285714285714};
  19. eps = 1e-5;
  20. var
  21. A, B, C, E, dn, dn_1, dn_2: real;
  22. i: integer;
  23. begin
  24. i := 0;
  25. Hmin := 10;
  26. Hmax := 50;
  27. hH := 10;
  28. Qmin := 0.01;
  29. Qmax := 0.05;
  30. hQ := 0.01;
  31. L := 100;
  32. Z := 3;
  33. W := 5;
  34. repeat
  35. repeat
  36. A := (sqr(pi) * Hmin) / (8 * sqr(Qmin));
  37. B := (0.02 * L) / A;
  38. C := B / 40;
  39. E := (Z + W) / A;
  40. dn_1 := 0.2;
  41. repeat
  42. dn_2 := dn_1;
  43. dn := dn_1 - (F(a, b, c, e, dn_1)) / (fs(a, b, c, dn_1));
  44. dn_1 := dn;
  45. until abs(Dn - Dn_2) <= eps;
  46. inc(i);
  47. writeln(i + ': ' + dn);
  48. Qmin := Qmin + hQ;
  49. until Qmin > Qmax;
  50. Qmin := Qmin - Qmin + hQ;
  51. Hmin := Hmin + hH;
  52. until Hmin > Hmax;
  53. end;
  54. begin
  55. Raschet;
  56. end.
Выведет то, что на втором скриншоте Проблема в том, что в паскале расчитывает все правильно и в TableView в столбец диаметра трубы, по идее, он должен записывать те же значения, что пишет в паскалевскую консоль Никак не могу найти ошибку, помогите, пожалуйста!

Решение задачи: «Вывод расчетов в TableView»

textual
Листинг программы
  1. static  void log(double d){
  2.          System.out.println("log " + String.valueOf(d));
  3.      }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.833 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы