stationeers.de Mod-Werkstatt · Dominik1199
EN Anmelden
  1. Start
  2. IC10-Akademie
  3. Tag 95

Tag 95 von 365 · Fortgeschritten · Monat 4: Netzwerk im Detail

Die −inf-Falle bei Maximum

Ohne passendes Gerät liefert Maximum −unendlich und Minimum 0. Beides sieht aus wie ein echter Wert. Mit Count oder einem Vergleich mit ninf sicherst du ab.

Lektion 13 Min. Woche 14

Das lernst du heute

  • Maximum ohne Treffer ergibt ninf
  • Minimum ergibt 0
  • Mit Count absichern

Im Akkuraum hängen zwei Sensoren. Die Kühlung soll anspringen, sobald einer von ihnen über 35 °C meldet. Also Maximum. Das funktioniert, bis jemand beide Sensoren für einen Umbau abbaut. Dann zeigt die Anzeige „−Infinity“, die Kühlung steht still, und niemand merkt etwas.

Drei Antworten auf „kein Treffer“

ModusRückgabe ohne Gerät
AverageNaN
Minimum0
Maximum−unendlich (ninf)

Im Spielcode ist das so gebaut: Minimum fängt den leeren Fall ab und gibt 0 zurück, Maximum nicht. Es behält seinen Startwert −unendlich.

Warum −unendlich gefährlich ist

−unendlich ist eine Zahl, kein NaN. snan schlägt nicht an, und jeder Vergleich verhält sich ganz normal:

lbn hoechst SENSOR HASH("Akkuraum") Temperature Maximum
sgt kuehlen hoechst AN        # -inf > 308.15: nie wahr

Die Kühlung bleibt aus. Für einen überhitzten Akkuraum ist das die falsche Richtung. Rechnest du weiter, wird es nicht besser: −unendlich minus 273,15 bleibt −unendlich, und auf der Anzeige steht Unsinn.

Auch Minimum hat seine Falle: 0 ist ein gültiger Messwert. 0 K kommt nicht vor, ein Druck von 0 kPa aber schon. Ohne Gerät sieht ein Druck-Minimum aus wie ein Vakuum.

Absichern mit Count

Bevor du dem Maximum glaubst, fragst du, ob überhaupt ein Gerät da ist:

lb anzahl SENSOR PrefabHash Count
seqz fehlt anzahl             # 1 = kein Sensor
or kuehlen kuehlen fehlt      # ohne Sensor: kuehlen

Count ignoriert den Namen, das weißt du seit gestern. Hängen noch andere Gassensoren im Netz, nimmst du die Summe über PrefabHash geteilt durch den Hash. Oder du vergleichst direkt mit ninf:

seq fehlt hoechst ninf        # -inf gibt es nur ohne Sensor

Der Vergleich mit ninf ist exakt und funktioniert, weil −unendlich genau gleich −unendlich ist.

Achtung

Verlass dich nie darauf, dass Maximum etwas Sinnvolles meldet, wenn die Sensoren fehlen. Jede Zeile, die das Maximum benutzt, braucht davor eine Absicherung.

Tipp

Für die Anzeige ersetzt du den leeren Fall durch einen klaren Wert wie −999. Ein Spieler versteht „−999“ schneller als „−Infinity“.

Schaubild

Drei Messwerte, fünf Batchmodi Sensor „Raum“ 300 K Sensor „Raum“ 310 K Sensor „Raum“ 250 K lbn Average 286.67 Sum 860 Minimum 250 Maximum 310 Count 3 Sum bei Temperaturen: 860 K – die Heizung hält das für einen Brand.
Average gibt ohne Treffer NaN, Minimum 0, Maximum −unendlich. Nur NaN fängt snan ab.

Übung

Aufgabe

Zwei Gassensoren „Akkuraum“ (andere Gassensoren gibt es im Netz nicht). Der Code im Editor arbeitet schon mit Maximum, ist aber nicht abgesichert.

  • Wandkühler „Akkukuehler“: an über 35 °C, aus unter 30 °C (höchste Temperatur)
  • Sind keine Sensoren da: Kühler an, Blinklicht „Akkuwarnung“ an
  • LED „Akkutemp“ zeigt die höchste Temperatur in °C, ohne Sensor −999

Hinweise

Hinweis 1

lb anzahl SENSOR PrefabHash Count, dann seqz fehlt anzahl.

Hinweis 2

In die Hysterese ein zusätzliches or kuehlen kuehlen fehlt.

Hinweis 3

Warnlampe direkt mit fehlt schalten, die Anzeige mit select c fehlt KEINWERT c.

Quiz

4 Fragen. Ab 60 % ist das Quiz bestanden – die Auswertung macht der Server.

Tag abschließen

  • Übung im Simulator bestanden
  • Quiz mit mindestens 60 % bestanden

Ohne Konto wird der Fortschritt nur in diesem Browser gespeichert.

Fehler in dieser Lektion melden

Zum Melden bitte anmelden. Anmelden

Esc
↑ ↓ wählenEnter öffnen/ öffnet die Suche überall