Hm, wenn du glänzen willst, würd könnte man es auch "etwas krank" aber interessant - so machen:
Delphi-Quellcode:
var
temp_raum1, temp_raum2, temp_raum3:integer;
diff_raum1, diff_raum2, diff_raum3:integer;
referenz_temp:integer;
summe,stufe:integer;
begin
//[zuvor noch temp_raum1 bis temp_raum3 einlesen...]
referenz_temp:=15;
diff_raum1:=int((temp_raum1-referenz_temp)/abs(temp_raum1-referenz_temp));
// =1, falls temp_raum1 > referenz_temp,sonst -1
diff_raum2:=int((temp_raum2-referenz_temp)/abs(temp_raum2-referenz_temp));
// =1, falls temp_raum2 > referenz_temp,sonst -1
diff_raum3:=int((temp_raum3-referenz_temp)/abs(temp_raum3-referenz_temp));
// =1, falls temp_raum3 > referenz_temp,sonst -1
summe:=int((diff_raum1+abs(diff_raum1)) / 2) //addiert 1, falls diff_raum1=1 und addiert sonst 0
+int((diff_raum2+abs(diff_raum2)) / 2) //addiert 1, falls diff_raum2=1 und addiert sonst 0
+int((diff_raum3+abs(diff_raum3)) / 2): //addiert 1, falls diff_raum3=1 und addiert sonst 0
// summe gibt an, in wievielen Räumen die Temperatur GRÖSSER als die Referenztemperatur ist.
Stufe:=(3-summe) - (3-summe) div 3;
//Mal überprüfen, obs überhaupt stimmt:
// Falls summe=0 => Stufe=2
// Falls summe=1 => Stufe=2
// Falls summe=2 => Stufe=1
// Falls summe=3 => Stufe=0
end;
Sorry, aber mir war grade danach
Und ohne eine If-Abfrage zu benutzen!!!
//edit: code etwas besser kommentiert.