Вывод расчетов в TableView - Java
Формулировка задачи:
Доброго времени суток!
Пишу программу для расчета необходимого диаметра трубы. Вроде бы все верно, но в TableView выводит не то, что надо
Понял это, когда запустил тот же код в Delphi и PascalABC
Мой код Java:
Выводит то, что вы видите на первом скриншоте
Примерно тот же код, выполненный в PascalABC:
Выведет то, что на втором скриншоте
Проблема в том, что в паскале расчитывает все правильно и в TableView в столбец диаметра трубы, по идее, он должен записывать те же значения, что пишет в паскалевскую консоль
Никак не могу найти ошибку, помогите, пожалуйста!
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); }
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»
textual
Листинг программы
static void log(double d){ System.out.println("log " + String.valueOf(d)); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д