Seite 1 von 1
Aufzug und Gedankenfehler
Verfasst: Donnerstag 17. November 2022, 21:35
von AngelFilmnMusic
Hallo zusammen,
ich möchte einen Aufzug simulieren, der hoch- und runterfährt. Er soll also bspw. beim Hochfahren, wenn er > 1 und < 2 ist auf Ebene 2 halten. Und beim Runterfahren, wenn er > 1 und kleiner 2 ist auf Ebene 1 halten. Ist ja irgendwie normal. Im Code habe ich sicherheitshalber immer einen print zur Kontrolle. In meiner Theorie sollte er dann immer nur eine Ebene ausgeben, weil noch random.choice mit aufwärts und abwärts enthalten ist. In der Praxis werden aber immer zwei Ebenen ausgegeben, als ob zwei Aufzüge da sind. Ích weiß nicht, wo ich den Gedankenfehler im Code gemacht habe.
LG
Code: Alles auswählen
import random
aufwärts = random.uniform(0, 4)
abwärts = random.uniform(0, 4)
def bewegung():
bewegung = random.choice([aufwärts, abwärts])
if aufwärts == 0:
print("Aufwärts Ebene 0")
elif aufwärts > 0 and aufwärts < 1.01:
print("Aufwärts Ebene 1")
elif aufwärts > 1 and aufwärts < 2.01:
print("Aufwärts Ebene 2")
elif aufwärts > 2 and aufwärts < 3.01:
print("Aufwärts Ebene 3")
else:
print("Aufwärts Ebene 4")
if abwärts == 4:
print("Abwärts Ebene 4")
elif abwärts > 3.01 and abwärts < 4:
print("Abwärts Ebene 3")
elif abwärts > 2.01 and abwärts < 3:
print("Abwärts Ebene 2")
elif abwärts > 1.01 and abwärts < 2:
print("Abwärts Ebene 1")
else:
print("Abwärts Ebene 0")
Das steht dann in der Konsole in der Ausgabe
Aufwärts Ebene 1
Abwärts Ebene 0
Re: Aufzug und Gedankenfehler
Verfasst: Donnerstag 17. November 2022, 21:45
von Sirius3
Die Funktion `bewegung` ist unsinnig, weil sie weder Input noch Output hat.
Was ist der Sinn, dass Ebene 1 bis 1.01 geht, Ebene 2 aber schon bei >1 anfängt?
Du hast zwei if-elif-Ketten, eie für Aufwärts und eine für Abwärts. Warum wunderst Du Dich dann, dass Du zwei Ausgaben bekommst.
Das ganze läßt sich ohne if lösen:
Code: Alles auswählen
import math
import random
aufwärts = random.uniform(0, 4)
print(f"Aufwärts Ebene {math.ceil(aufwärts)}")
abwärts = random.uniform(0, 4)
print(f"Aufwärts Ebene {math.floor(abwärts)}")
Re: Aufzug und Gedankenfehler
Verfasst: Donnerstag 17. November 2022, 21:47
von __blackjack__
@AngelFilmnMusic: Warum denkst Du denn es dürfte nur eine Ausgabe geben? Als erstes wird `aufwärts` definiert, und dann wird `abwärts` definiert. Dann gibt es ein ``if``/``elif``/``else``-Konstrukt das eine Ausgabe aufgrund des `aufwärts`-Wertes macht, und danach ein ``if``/``elif``/``else``-Konstrukt das eine Ausgabe aufgrund des `abwärts`-Wertes macht. Das sind zwei Ausgaben. Welche sollte denn Deiner Meinung nach nicht gemacht werden und warum?
Das mit dem zufälligen Dezimalbruch ist etwas komisch und statt >= und <= mit Zahlen zu vergleichen die noch mal 0.01 grösser sind, ist auch schräg.
Das was da bis jetzt steht, nur mit einer Ausgabe, könnte man einfach so ausdrücken:
Code: Alles auswählen
#!/usr/bin/env python3
import random
def main():
print(
random.choice(["Aufwärts", "Abwärts"]), "Ebene", random.randint(0, 4)
)
if __name__ == "__main__":
main()
Anmerkungen zu den ``if``/``elif``/``else``: Ich würde da nicht einfach beim ``else`` annehmen, dass es dann schon die 4. beziehungsweise 0. Ebene sein wird, sondern das auch explizit prüfen, und im ``else`` dann ein ``assert False`` weil der Fall dann nie auftreten dürfte wenn alles fehlerfrei programmiert ist.
Re: Aufzug und Gedankenfehler
Verfasst: Donnerstag 17. November 2022, 22:04
von AngelFilmnMusic
Danke @Sirius3 und @__blackjack__ Danke, genau, was ich vorhatte. Ich denke wahrscheinlich einfach zu kompliziert.
Der Grundgedanke wegen den ganzen if/else und 0.01, 1.01 etc. ist folgender. Wenn es brennt, soll der Aufzug in die Richtung weiterfahren in die er unterwegs ist, allerdings nicht bis zu der Ebene, zu der gedrückt wurde, weil das stehenbleiben und wieder in die entgegengesetzte Richtung fahren länger dauern wird. (Weiß nicht, wie es in Real funktioniert, habe ich mich noch nicht schlau gemacht, aber ich denke, es dauert länger)
Also, wenn jemand auf der Ebene 2 eingestiegen ist und auf Ebene 4 will , und der Aufzug schon in der Aufwärtsbewegung ist, soll er bis Ebene 3 fahren und dort stehen bleiben, nicht weiter bis 4. Oder wenn er von 2 auf 3 soll, dann auch auf Ebene 3. Deswegen die ganzen if und else mit den "n.1" Oder Abwärts das gleiche nur umgekehrt. Auch ein Grund weshalb ich uniform und nicht int gewählt bei random. Konnte ja keiner wissen, weil ich vergessen habe es zu schreiben
Re: Aufzug und Gedankenfehler
Verfasst: Freitag 18. November 2022, 01:22
von Kebap
Die Kollegen meinen, dass du nicht "< 2" und "> 2.01" prüfen sollst, sondern "<= 2" und "> 2".
Sonst übersieht dein Programm viele Zahlen, die zwischen 2 und 2.01 liegen.
Ich denke wahrscheinlich einfach zu kompliziert.
Nein, ich finde du denkst ganz normal und kennst diese Konstrukte wahrscheinlich einfach noch gar nicht.

Re: Aufzug und Gedankenfehler
Verfasst: Freitag 18. November 2022, 06:55
von AngelFilmnMusic
Hallo @Kebap,
danke für deine Nachricht. Ja stimmt, ich brauche ja gar keine n.01 er Abfragen

mit den n.01 er abfragen.
Das reicht ja dann
Beispiel für Ebenen 2 und 3.
Code: Alles auswählen
if aufzug > 1 and aufzug <= 2:
print("Halt Ebene 2")
elif aufzug > 2 and aufzug <= 3:
print("Halt Ebene 3")
Re: Aufzug und Gedankenfehler
Verfasst: Freitag 18. November 2022, 07:38
von AngelFilmnMusic
Funktioniert jetzt fast so wie ich wollte. Danke an alle. Jetzt muss ich nur das eine vom anderen ausschließen. Also wenn er in aufwärts ist, soll abwärts gar nicht mehr berücksichtigt werden oder umgekehrt. Habe es mit random.choice([abwärts, aufwärts]) True und False etc. versucht, aber irgendwie ohne Erfolg. Gibt immer irgendwie beide Richtungen in der Konsole aus
Code: Alles auswählen
import random
abwärts = random.uniform(0, 4)
aufwärts = random.uniform(0, 4)
if abwärts == 4:
print("Halt Ebene 4")
elif abwärts >= 3 and abwärts < 4:
print("Abwärtshalt Ebene 3")
elif abwärts >= 2 and abwärts < 3:
print("Abwärtshalt Ebene 2")
elif abwärts >= 1 and abwärts < 2:
print("Abwärtshalt Ebene 1")
elif abwärts >= 0 and abwärts < 1:
print("Abwärtshalt Ebene 0")
if aufwärts == 0:
print("Halt Ebene 0")
elif aufwärts > 0 and aufwärts <= 1:
print("Aufwärtshalt Ebene 1")
elif aufwärts > 1 and aufwärts <= 2:
print("Aufwärtshalt Ebene 2")
elif aufwärts > 2 and aufwärts <= 3:
print("Aufwärtshalt Ebene 3")
elif aufwärts > 3 and aufwärts <= 4:
print("Aufwärtshalt Ebene 4")
Allgemeine Frage noch zu math (wird im Code nicht mehr benutzt), aber als math noch drin war, war folgendes:
Im Variablen Explorer wurden die genauen werte angezeigt. Bspw. 0.12349471, 3.59746464 usw. Und dementsprechend verhielt sich auch der Aufzug und funktionierte auch. Kann es denn sein, dass math in der Konsole nur aufgerundete Zahlen ausgibt? Wenn der Wert zum Beispiel 0.1258464 ist, wird 1 ausgegeben, wenn der Wert 2.2656496 wird 3 ausgegeben usw.
Re: Aufzug und Gedankenfehler
Verfasst: Freitag 18. November 2022, 07:50
von Dennis89
Hallo,
das macht 'ceil' aus 'math'. Siehe dazu:
https://docs.python.org/3.8/library/math.html#math.ceil
Aber es wird ja hier nicht einfach gerundet, dann die Regeln für das runden treffen nicht zu wenn aus 0.1258 eine 1 wird. Gerundet wäre da eine 0. Deswegen 'math.ceil'.
Grüße
Dennis
Edit: Ich habe den Thread ehrlich gesagt nur überflogen, aber bist du dir sicher, dass der letzte Code richtig funktioniert?
Bei 'aufwärts' = 'abwärts' = 3.8357430466953337
erhalte ich folgende Ausgabe:
Also wenns brennt fährt er von 3,8 bis auf 1?
Re: Aufzug und Gedankenfehler
Verfasst: Freitag 18. November 2022, 07:59
von AngelFilmnMusic
ich habe es geschafft. Nochmal danke an alle und @Dennis, dass du schon so früh am Morgen anwortest

Nein, wenn es brennt fährt er von 3,8 auf 4, falls er hochfährt, falls er runterfährt von 3,8 auf 3.
Code sieht jetzt so aus und macht genau, was ich will. Wenn ich jetzt noch schaffe es an eine random.choice mit True False für die BMZ zu koppeln, dann passt das. Also, wenn die BMZ losgeht, dann soll das ausgeführt werden
Code: Alles auswählen
import random
abwärts = random.uniform(0, 4)
aufwärts = random.uniform(0, 4)
aufzug = random.choice([True, False])
if aufzug == True:
abwärts
if abwärts == 4:
print("Halt Ebene 4")
elif abwärts >= 3 and abwärts < 4:
print("Abwärtshalt Ebene 3")
elif abwärts >= 2 and abwärts < 3:
print("Abwärtshalt Ebene 2")
elif abwärts >= 1 and abwärts < 2:
print("Abwärtshalt Ebene 1")
elif abwärts >= 0 and abwärts < 1:
print("Abwärtshalt Ebene 0")
elif aufzug == False:
aufwärts
if aufwärts == 0:
print("Halt Ebene 0")
elif aufwärts > 0 and aufwärts <= 1:
print("Aufwärtshalt Ebene 1")
elif aufwärts > 1 and aufwärts <= 2:
print("Aufwärtshalt Ebene 2")
elif aufwärts > 2 and aufwärts <= 3:
print("Aufwärtshalt Ebene 3")
elif aufwärts > 3 and aufwärts <= 4:
print("Aufwärtshalt Ebene 4")
Re: Aufzug und Gedankenfehler
Verfasst: Freitag 18. November 2022, 08:13
von Dennis89
So früh ist es auch nicht mehr, der erste Kaffeee ist schon zwei Stunden her
Da steht noch ein 'abwärts' und ein 'aufwärts' im Code, das nichts macht.
Wahrheitswerte musst du nicht nochmal nach True oder False abfragen.
ist das geiche wie
ist das gleiche wie
'aufzug' soll die Fahrtrichtung angeben? Da wäre vielleicht ein Namen sinnvoller, der einem das gleich "sagt".
Schön das du Erfolg hattest.
Grüße
Dennis
Edit: Ich verstehe glaub wieso da 'aufwärts' und 'abwärts' steht. Du willst zeigen, welche Fahrrichtung in dem Block abgearbeitet wird? Wenn man Code kommentieren will, dann setzt man ein '#' davor, also so:
Re: Aufzug und Gedankenfehler
Verfasst: Freitag 18. November 2022, 09:23
von Sirius3
Dass ein Aufzug `True` oder `False` sein soll, ist sehr verwirrend. Variablennamen sollten das ausdrücken, was sie auch beinhalten, hier also `aufzug_fährt_abwärts`.
Dass es eine Position `aufwärts` und eine `abwärts` gibt ist auch falsch, denn der Aufzug steht ja nur an einer Stelle. Wenn man eine lange if-Kette durch eine einfache Funktion ersetzen kann, dann sollte man das auch tun.
Code: Alles auswählen
import math
import random
position = random.uniform(0, 4)
richtung = random.choice(["auf", "ab"])
if richtung == "ab":
if position == 4:
print("Halt Ebene 4")
else:
print(f"Abwärtshalt Ebene {math.floor(position)}")
elif richtung == "auf":
if position == 0:
print("Halt Ebene 0")
else:
print(f"Aufwärtshalt Ebene {math.ceil(position)}")
else:
assert False, "ungültige Richtung"
Re: Aufzug und Gedankenfehler
Verfasst: Freitag 18. November 2022, 11:23
von __blackjack__
Und jetzt die Frage nach dem Sinn: Warum ist das wichtig 5 Ebenen zu haben? Das Verhalten ist doch zwischen jeder Ebene gleich, also ob der Aufzug nun bei 0.42, 1.42, 2.42, oder 3.42 ist — er fährt immer die gleiche Strecke bis zum nächsten Halt, unabhängig von der Richtung.
Die nächste Frage ist dann warum ist die Unterscheidung zwischen Auf- und Abwärts wichtig? Denn ob der Aufzug sich bei 0.2 in eine Richtung oder bei 0.8 in die andere Richtung befindet, ist das die gleiche Strecke, und wenn beide Positionen gleich wahrscheinlich sind, welchen Unterschied macht das dann tatsächlich für die Auswertung der Simulation?
Re: Aufzug und Gedankenfehler
Verfasst: Freitag 18. November 2022, 20:17
von AngelFilmnMusic
Ich denke oder hoffe, dass die offenen Fragen beantwortet werden mit meiner Antwort.
- Ich hatte das gar nicht auf dem Schirm, dass abwärts und aufwärts gar keine Funktion hatten

habe ich entfernt. Danke
- Es geht ja nicht darum, dass der Aufzug einfach nur auf einer Ebene halten soll. Es geht darum, dass, wenn er hochfährt und er zwischen zwei Ebenen ist, die Fahrtrichtung nach oben einbehält und auf der nächsten Ebene hält, wenn die Brandmeldezentrale anspringt. Daher auch diese Zwischenwerte von 1.53564, 2.89542 usw., aber in der Ausgabe soll dann auch nur das erscheinen. Und wenn er abwärts fährt, soll dann nur abwärts und die jeweilige Ebene erscheinen.
- Wenn ich mit int, anstatt float arbeiten würde, dann könnte er nie zwischen zwei Ebenen sein, sondern immer nur direkt auf einer der Ebenen und ich könnte die " pseudo Simulation" ja gar nicht haben.
- Und fünf Ebenen einfach nur so. Erdgeschoss und vier Obergeschosse. Könnten auch zwei oder 20 sein. Das hat jetzt keinen besonderen Grund
- Diesen Ausschluss, dass nicht immer beide Werte, also aufwärts und abwärts ausgegeben werden, konnte ich nur mit True und False bewerkstelligen. Wie eben schon erwähnt soll diese Ausgabe aber nur dann erfolgen, wenn die BMZ anspringt. Und exakt das klappt jetzt. Hier der aktuelle Code:
- Ich möchte den normalen Dauerbetrieb gar nicht anzeigen
Code: Alles auswählen
import random
abwärts = random.uniform(0, 4)
aufwärts = random.uniform(0, 4)
aufzug = random.choice([True, False])
bmz = random.choice([True, False])
if bmz == True:
if aufzug == True:
if abwärts == 4:
print("Halt Ebene 4")
elif abwärts >= 3 and abwärts < 4:
print("Abwärtshalt Ebene 3")
elif abwärts >= 2 and abwärts < 3:
print("Abwärtshalt Ebene 2")
elif abwärts >= 1 and abwärts < 2:
print("Abwärtshalt Ebene 1")
elif abwärts >= 0 and abwärts < 1:
print("Abwärtshalt Ebene 0")
elif aufzug == False:
if aufwärts == 0:
print("Halt Ebene 0")
elif aufwärts > 0 and aufwärts <= 1:
print("Aufwärtshalt Ebene 1")
elif aufwärts > 1 and aufwärts <= 2:
print("Aufwärtshalt Ebene 2")
elif aufwärts > 2 and aufwärts <= 3:
print("Aufwärtshalt Ebene 3")
elif aufwärts > 3 and aufwärts <= 4:
print("Aufwärtshalt Ebene 4")
Re: Aufzug und Gedankenfehler
Verfasst: Freitag 18. November 2022, 20:23
von AngelFilmnMusic
Bei Spyder sehe ich im variablen Explorer ja auch immer die Zwischenwerte, True und False etc. und habe schon x-Versuche durchgeführt und kontrolliert. Passt alles
Re: Aufzug und Gedankenfehler
Verfasst: Freitag 18. November 2022, 21:31
von __blackjack__
@AngelFilmnMusic: Also meine Fragen sind damit nicht wirklich beantwortet. Denn auch wenn es 20 Etagen sind, werden die ja nicht wirklich sinnvoller wenn die Situation zwischen all diesen Etagen letztlich gleich sind. Und warum es okay anzunehmen, dass die Aufzüge ständig fahren und niemals irgendwo länger halten, aber auf der anderen Seite ein simples auswürfeln einer ganzen Zahl nicht genau genug an der Realität ist‽ Das sieht nach einer völlig unnötigen Verkomplizierung aus. Falls gleichverteilung zu ungenau ist, weil das oberste und das unterste Stockwerk nur halb so wahrscheinlich ist, weil das nur von einer Seite aus erreicht werden kann, liesse sich auch das mit ganzen Zahlen und ein bisschen Rechnen auswürfeln.
Wenn Du immer noch glaubst das man literale Vergleiche mit `True` und `False` braucht, dann solltest Du daran arbeiten. Das ist IMHO sowohl einfach, als auch ziemlich grundlegend das ohne diese Vergleiche zu machen.
So etwas wie ``abwärts >= 3 and abwärts < 4`` würde man eher mit Operatorverkettung so schreiben: ``3 <= abwärts < 4``. Beziehungsweise hier konkret ist das doch alles überflüssig, weil man das je nach Richtung wie das bereits gezeigt wurde mit `ceil()` und `floor()` ausrechnen kann, statt da Vergleiche für jede Etage zu schreiben.
Re: Aufzug und Gedankenfehler
Verfasst: Freitag 18. November 2022, 23:34
von AngelFilmnMusic
Ihr habt alle viel, viel mehr Erfahrung als ich und auch recht. Ich kann bzw. habe es nur so hinbekommen mit True und False. Funktioniert ja letztendlich auch, genau, wie ich es wollte. Und klar ist die allgemeine Zeit immer dieselbe. Wenn der Aufzug, keine Ahnung, 5 Sekunden pro Ebene braucht, kann man das genauso gut auch manuell berechnen, wie viel Zeit er dann von 1.5 bis 2 braucht oder von 1.3 bis 2. Im weiteren Ablauf wird es darum gehen Echtzeit-Messdaten zu übermitteln bzw. die Übermittlung zu simulieren, nächste Woche. Daher dieses ganze komplizierte Vorgehen.
- Wie viel Uhr hat die Brandmeldezentrale ausgelöst?
- Auf welcher Ebene war der Aufzug zu dem Zeitpunkt?
- Befand er sich in Fahrt? Wenn ja, in welche Richtung und wie lange hat er bis zur nächsten Ebene gebraucht? Wenn nein, auf welcher Ebene war er zu dem Zeitpunkt.
Das Problem ist ein ganz anderes: Wir haben den Unterricht ja nicht permanent. Wir haben beispielsweise jetzt einen drei Wochen Block. Dann haben wir drei Wochen Netzwerke einbinden, dann wieder was anderes. Python ist vorbei für uns. Was noch kommt, ist css, javascript und html, aber kein Python mehr bis zum Ende der Ausbildung. Und ich habe schon ein Pyhton Buch im Auge, was ich lesen möchte, damit ich mehr lerne. Dann werde ich bestimmt auch solche Codeeingaben, wie du (siehe unten) oder Sirius und Dennis und Co. gezeigt haben auch kennen mit der Zeit.
3 <= abwärts < 4
Feine Sache. Das wurde bis jetzt nicht gezeigt und wird es mit Sicherheit auch nicht mehr. Wir haben es nur mit "and" und "or" beigebracht bekommen
Re: Aufzug und Gedankenfehler
Verfasst: Samstag 19. November 2022, 02:01
von __blackjack__
@AngelFilmnMusic: Kein Unterricht und kein Buch wird alles erklären was man braucht. Etwas was hier vorgeschlagen wird, nicht zu benutzen weil das noch nicht in einem Unterricht oder Buch vorkam ist eine komische Einstellung. Python als Sprache und die ganzen Module werden in der Python-Dokumentation beschrieben. Wenn man also etwas mit `math.ceil()` und `math.floor()` vorgeschlagen bekommt, muss man nicht auf Unterricht oder Bücher warten, sondern kann das sofort, direkt in der Python-Dokumentation zum `math`-Modul nachlesen.
Ich würde auch egal was sonst als Lernquelle(n) verwendet wird, empfehlen das Tutorial in der Python-Dokumentation mal durchzuarbeiten. Das ist immer aktuell zu der Python-Version für die die Dokumentation ist. Die Autoren davon kennen die Sprache wirklich gut. Die gezeigten Beispiele sind automatisiert getestet — sollte etwas davon nicht so funktionieren wie dargestellt, ist das ein Bug den man melden kann.
Re: Aufzug und Gedankenfehler
Verfasst: Samstag 19. November 2022, 08:12
von AngelFilmnMusic
Die Dokumentation werde ich mal im Dezember angehen, da haben wir zwei Wochen frei. Kann ich mich etwas besser darauf vertiefen. Heute werde ich auf jeden Fall diese "and" Verknüpfungen rausnehmen und so, wie du es gestern Abend geschrieben hast, ändern. Ich habe damals auch schon an dem einen Parkhaus alles abgeändert, was du damals meintest. Dieses Master mit PhotoImage rausgenommen und Canvas etc. Und noch weitere Dinge, die ich verstanden habe oder so, wie ich sie verstanden habe aus deinem Kommentar. Ich setze schon um, was mit hier geschrieben wird, aber immer in einer Ersatzdatei. Das habe ich mit dem ceil und floor auch schon gestern direkt. Es ist wirklich sehr hilfreich hier und ich bin jedem einzelnen wirklich dankbar
Re: Aufzug und Gedankenfehler
Verfasst: Samstag 19. November 2022, 11:39
von Sirius3
Es ist völlig egal, wie weit man mit Programmieren lernen ist, oder ob man nur Papier und Bleistift zur Verfügung hat:
Ein Auszug kann nicht gleichzeitig an zwei verschiedenen Orten sein, und das trotzdem in einer Simulation zu machen ist ein großer Fehler.
Meine Studenten bekommen mehr Punkte, wenn sie in Umgangssprache das Problem logisch korrekt lösen, als wenn sie zwar ein korrekt arbeitendes Pythonprogramm abliefern, das aber logisch nicht zum Problem passt.
Re: Aufzug und Gedankenfehler
Verfasst: Samstag 19. November 2022, 20:04
von AngelFilmnMusic
Hallo @Sirius3,
Meine Studenten bekommen mehr Punkte, wenn sie in Umgangssprache das Problem logisch korrekt lösen, als wenn sie zwar ein korrekt arbeitendes Pythonprogramm abliefern, das aber logisch nicht zum Problem passt.
bei uns bekommen wir in Klausuren / Lernzielkontrollen nur vorgegebene Codes, weil es Multiple-Choice Aufgaben sind, die war am Computer lösen. Das hat für fast keinen (da sind wir alle einer Meinung) irgendeinen richtigen Lerneffekt bzw. es kann keiner zeigen, was er wie umsetzen würde, weil es halt keine "echten" Aufgabenstellungen sind. Wenn man schon eine Auswahl an Lösungen vorgegeben bekommt, ist es nicht wirklich schwer die richtige Lösung zu finden, selbst für diejenigen, die nicht mal aktiv am Unterricht teilnehmen. Und es hat auch keinen Mehrwert für die IHK Prüfungen später. Ist schon bitter.
Ein Auszug kann nicht gleichzeitig an zwei verschiedenen Orten sein, und das trotzdem in einer Simulation zu machen ist ein großer Fehler.
Was den Aufzug angeht. In der Ausgabe ist der Aufzug nicht gleichzeitig an zwei verschiedenen Orten, und das war ja mein Ziel, dass nur der Halt in eine Richtung angezeigt wird. Im Code ist er an zwei Positionen gleichzeitig, da hast du recht und das ist mir vollkommen bewusst. Aber relevant für mich oder für die Aufgabe ist ja, wie schon gesagt, die Ausgabe. Da wird nur eine Position angezeigt, welche dann aber als Zusatzbedingung abhängig von der Fahrtrichtung und von den Zwischenhöhen sein soll. Und das nur um irgendwelche Messwerte zu erhalten. Ansonsten waren ja eure Vorschläge erheblich einfacher und auch logischer, weil es ja tatsächlich nur relevant ist, in welche Richtung er fährt und dass er auf der nächsten Ebene, die kommt, hält.
Jetzt könnte man sagen, dass ich das von mir selbst aus dennoch besser oder korrekter lösen sollte zum Üben etc. Das mache ich auch, allerdings für Dinge, die nichts oder nur indirekt etwas mit dem Unterricht zu tun, weil die mir wesentlich mehr Spaß machen, weil es einfach etwas eigenes ist, wie die Parkhaus GUI damals zum Beispiel. Das war ja nur eine Matrix Aufgabe im Buch, die noch nicht mal programmiert werden sollte.