habe folgendes problem.
habe ein fehler in meinem quelltext.
problem ist : wenn der user eine negative wärmekapazität eingibt (z.b. Q=-20), so darf/muss auch die temperaturdifferenz Te-Ta negativ sein.
Ist Q positiv so darf die temperaturdifferenz Te-Ta nicht negativ sein.
und wenn ist Q negativ ist , darf die temperaturdifferenz Te-Ta nicht positiv sein.
das muss ich definieren,aber ich krieg das irgendwie nicht hin.jemand eine idee?
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85:
| var m,Q,c,Te,Ta: real; i: integer;
begin i:=combobox1_m.itemindex;
m := StrToFloat(Edit1_Masse.Text); case i of 0: m := m; 1: m := m*1000; 2: m := m*1000000; 3: m := m/1000; end;
i:=combobox1_Q.itemindex;
Q := StrToFloat (Edit1_menge.Text); case i of 0: Q := Q; 1: Q := Q/1000; 2: Q := Q/1000000; end;
i:=combobox1_Ta.itemindex;
Ta := StrToFloat (Edit1_anfang.Text); case i of 0: Ta := Ta; 1: Ta := Ta-273; end;
i:=combobox1_Te.itemindex;
Te := StrToFloat (Edit1_ende.Text); case i of 0: Te := Te; 1: Te := Te-273; end; if (m*(Te-Ta))<>0 then begin c:=Q/(m*(Te-Ta)); edit1_ausgabe.Text:=floattostr(c); end else begin edit1_ausgabe.Text:='nicht lösbar'; end;
if Q=0 then edit1_ausgabe.Text:='0';
if (m*(te-ta))>0 then begin c:=Q/(m*(Te-Ta)); edit1_ausgabe.Text:=floattostr(c); end else begin edit1_ausgabe.Text:='nicht lösbar'; end;
if m<0 then edit1_ausgabe.Text:='nicht lösbar';
if Q<0 and (te-ta)<0 [<--- funktioniert nicht] then begin c:=Q/(m*(Te-Ta)); edit1_ausgabe.Text:=floattostr(c); end else begin edit1_ausgabe.Text:='nicht lösbar'; end;
end; |
Moderiert von
Gausi: Beitragsformatierung überarbeitet.