Das lernst du heute
- Batch und Geräteprüfung verbinden
- Stack und Unterprogramme kombinieren
- Lücken erkennen
Die Prüfung Fortgeschritten rückt näher. Diese Woche verbindet, was du in den letzten Monaten einzeln gelernt hast. Heute: Netzwerk und Speicher.
Batch und Geräteprüfung verbinden
| Werkzeug | Wofür | Falle |
|---|---|---|
lbn … Average | Wert gleichnamiger Geräte | ohne Treffer NaN |
lbn … Maximum | größter Wert | ohne Treffer −unendlich |
lb … Count | wie viele Geräte des Typs | ignoriert den Namen |
lbns | ein Slot über den Namen | leerer Slot liefert 0 |
bdnvl, bdnvs | kann das Gerät diesen Wert? | nur mit Pin oder ReferenceId |
Zusammen ergeben sie eine Geräteprüfung: Count sagt, ob alle Geräte da sind, NaN sagt, welcher Name fehlt.
Stack und Unterprogramme kombinieren
Ein Unterprogramm misst einen Raum, dessen Name im Register steht. lbn nimmt den Namen auch aus einem Register:
move name HASH("Raum1")
jal messen
Ruft messen selbst celsius auf, wird ra überschrieben. Also push ra am Anfang, pop ra vor j ra. Die Messwerte legt messen als Tabelle im Stack ab – aber nicht bei Adresse 0:
add tmp i TABELLE # TABELLE = 100
poke tmp wert
Lücken erkennen
Kannst du ohne Nachschlagen sagen …
- was
lbn … Maximumohne Treffer liefert? (Tag 95) - warum
Countbeilbnnichts über den Namen sagt? (Tag 94) - in welcher Reihenfolge
putseine Werte nimmt? (Tag 123) - warum ein verschachteltes Unterprogramm
push rabraucht? (Tag 128) - wann ein relativer Sprung ein Label verträgt? (nie, Tag 106)
Wo du zögerst, lies den Tag noch einmal, bevor die Prüfung kommt.
push, pop und poke teilen sich denselben Speicher. Legst du die Tabelle ab Adresse 0 an, überschreibt das erste poke genau den Platz, auf den push ra gerade die Rücksprungzeile gelegt hat. pop ra holt dann einen Messwert, und j ra springt ins Nirgendwo.
max mit NaN ergibt NaN. Ersetz fehlende Werte vorher durch einen klar ungültigen Wert wie −999 – dann bleibt das Maximum brauchbar.
Schaubild
Übung
Aufgabe
Drei Gas-Sensoren „Raum1“, „Raum2“, „Raum3“. Die Hauptschleife ruft messen dreimal auf. Ergänze die Unterprogramme und die Auswertung.
messen: Temperatur des Raums innamelesen, mitcelsiusin °C umrechnen, ab Stack-Adresse 100 ablegen, fehlende Werte zählen, wärmsten Raum merken- Anzeige „Waermster“ (°C, −999 wenn keiner), „Sensoren“ (Anzahl Gas-Sensoren), „Raum2“ (Wert aus dem Stack)
- Blinklicht „Raumfehler“ an, wenn weniger als 3 Sensoren da sind oder ein Raum fehlt
Hinweise
Hinweis 1
messen ruft celsius auf – deshalb push ra am Anfang und pop ra vor j ra.
Hinweis 2
Tabelle: add tmp i TABELLE, poke tmp wert, dann add i i 1.
Hinweis 3
Fehlende Werte: snan, zu fehlt addieren, für max durch KEINER ersetzen.
Hinweis 4
Geräte zählen mit lb tmp SENSOR Temperature Count, Raum 2 mit get tmp db RAUM2.
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