![]() |
Re: If-Then oder Case-else
Zitat:
|
Re: If-Then oder Case-else
Dazu braucht er aber wieder eine If-Abfrage :lol:
|
Re: If-Then oder Case-else
Zitat:
|
Re: If-Then oder Case-else
Zitat:
Das müsste man irgendwie abfangen. Ich frag mich grade, wie man das am besten ohne eine If Abfrage zu verwenden. :gruebel: //edit: Was passiert denn, wenn ich im Nenner sagen wir mal 0,1 addiere und am schluss runde anstatt INT zu verwenden...irgendwas kann man da sicher dran machen, sodass der nenner >0 bleibt...*grübel* |
Re: If-Then oder Case-else
Zitat:
Delphi-Quellcode:
try
[...] except [...] end;
Delphi-Quellcode:
assert([...] = 0);
|
Re: If-Then oder Case-else
Zitat:
|
Re: If-Then oder Case-else
Delphi-Quellcode:
1. temp_raum1=13 => round((13-15)/(abs(13-15)+0.1))=round(-2/2.1) = -1
diff_raum1:=round((temp_raum1-referenz_temp)/(abs(temp_raum1-referenz_temp)+0.1);
2. temp_raum1=14 => round((14-15)/(abs(14-15)+0.1))=round(-1/1.1) = -1 3. temp_raum1=15 => round((15-15)/(abs(15-15)+0.1))=round(0) = 0 diese null macht aber nix kaputt 4. temp_raum1=16 => round((16-15)/(abs(16-15)+0.1))=round(1/1.1) = 1 usw... Falls nämlich temp_raum1=15 ist, ist die Temperatur insgesamt noch hoch genug, und es muss nichts zu summe addiert werden |
Re: If-Then oder Case-else
Zitat:
Delphi-Quellcode:
diff_raum1 := Sign(temp_raum1-referenz_temp);
|
Re: If-Then oder Case-else
Jo richtig...ups...diese funktion kannte ich nicht :D
Dann hier die shortversion:
Delphi-Quellcode:
var
summe,stufe:integer; begin summe:=int((Sign(temp_raum1-referenz_temp)+abs(Sign(temp_raum1-referenz_temp))) / 2) + int((Sign(temp_raum2-referenz_temp)+abs(Sign(temp_raum2-referenz_temp))) / 2) + int((Sign(temp_raum3-referenz_temp)+abs(Sign(temp_raum3-referenz_temp))) / 2) // summe gibt an, in wievielen Räumen die Temperatur GRÖSSER als die Referenztemperatur ist. Stufe:=(3-summe) - (3-summe) div 3; end; Yeah, das nenn ich mal Code-Optimierung: :dp: |
Re: If-Then oder Case-else
Da das hier eh schon nur noch Offtopic ist, isses jetzt auch egal. :stupid:
:mrgreen: Nein Sign darfst du nicht nehmen, dann hast du wieder ein if drin. :wink: Bei abs war das zumindest noch hinter cdq versteckt (statt nem Sprung), aber so geht's einfach nicht. :zwinker: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz