Вывод расчетов в 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));
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д