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

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

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

Доброго времени суток! Пишу программу для расчета необходимого диаметра трубы. Вроде бы все верно, но в TableView выводит не то, что надо Понял это, когда запустил тот же код в Delphi и PascalABC Мой код Java:
public void setValues(){
        resTable.getItems().removeAll(usersData);
        resTable.refresh();
        i = 0;
        final double pi = 3.14;
        final double eps = 0.00001;
 
        hMin = Integer.valueOf(hMin_TF.getText());
        hMax = Integer.valueOf(hMax_TF.getText());
        dH = Integer.valueOf(dH_TF.getText());
        qMin = valueOf(qMin_TF.getText());
        qMax = valueOf(qMax_TF.getText());
        dQ = valueOf(dQ_TF.getText());
        L = Integer.valueOf(L_TF.getText());
        Z = valueOf(Z_TF.getText());
        W = valueOf(W_TF.getText());
 
        do{
            do{
                A = (Math.pow(pi, 2) * dH)/(8 * Math.pow(dQ, 2));
                B = (0.02 * L)/A;
                C = B/40;
                E = (Z + W)/A;
                dn_1 = 0.2;
                do{
                    dn_2 = dn_1;
                    dn = dn_1 - (F(A, B, C, E, dn_1)) / (fs(A, B, C, dn_1));
                    dn_1 = dn;
                }while(!(Math.abs(dn - dn_2) <= eps));
                i++;
                System.out.println(i + ": " + dn);
                usersData.add(new resView(1, new BigDecimal(dn).setScale(7, RoundingMode.HALF_UP).doubleValue(),
                        hMin, new BigDecimal(qMin).setScale(2, RoundingMode.HALF_UP).doubleValue(), L, "3 и 5"));
                resTable.setItems(usersData);
                qMin = qMin + dQ;
            } while(qMin <= qMax);
            qMin = valueOf(dQ_TF.getText());
            hMin = hMin + dH;
 
        } while(hMin <= hMax);
 
    }
Выводит то, что вы видите на первом скриншоте Примерно тот же код, выполненный в PascalABC:
Program firstTest;
var
  Hmin, Hmax, hH, Qmin, Qmax, hQ, l, z, w: real;
 
function Stepen(x, y: real): real;
begin
  Result := exp(y * ln(x));
end;
 
function f(a, b, c, e, x: real): real;
begin
  Result := (A * stepen(x, 6)) - (C * sqr(x)) - (B * x) - E;
end;
 
function fs(a, b, c, x: real): real;
begin
  Result := (6 * A * stepen(x, 5)) - (2 * C * x) - B;
end;
 
procedure Raschet;
const
  pi = 3.14{285714285714};
  eps = 1e-5;
var
  A, B, C, E, dn, dn_1, dn_2: real;
  i: integer;
begin
  i := 0;
  Hmin := 10;
  Hmax := 50;
  hH := 10;
  Qmin := 0.01;
  Qmax := 0.05;
  hQ := 0.01;
  L := 100;
  Z := 3;
  W := 5;
  repeat
    repeat
      A := (sqr(pi) * Hmin) / (8 * sqr(Qmin));
      B := (0.02 * L) / A;
      C := B / 40;
      E := (Z + W) / A;
      dn_1 := 0.2;
      repeat
        dn_2 := dn_1;
        dn := dn_1 - (F(a, b, c, e, dn_1)) / (fs(a, b, c, dn_1));
        dn_1 := dn;
      until abs(Dn - Dn_2) <= eps;
      inc(i);
        writeln(i + ': ' + dn);
      Qmin := Qmin + hQ;
    until Qmin > Qmax;
    Qmin := Qmin - Qmin + hQ;
    Hmin := Hmin + hH;
  until Hmin > Hmax;
end;
begin
  Raschet;
end.
Выведет то, что на втором скриншоте Проблема в том, что в паскале расчитывает все правильно и в TableView в столбец диаметра трубы, по идее, он должен записывать те же значения, что пишет в паскалевскую консоль Никак не могу найти ошибку, помогите, пожалуйста!

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

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

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


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

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

12   голосов , оценка 3.833 из 5
Похожие ответы