![]() |
Ampelfunktion in nur in while schleife programmieren?
Hi leute ich brauche mal eure hilfe, ich habe ein ampelprojekt das ich nur mit der while funktion programmieren muss d Beschreibung unten
1. die Ampel soll durch Drücken eines Buttons in die nächste Phase schalten 2. es darf kein Timer verwendet werden 3. ich muss das ganze in einer Warteschleife schreiben. Das bedeutet: 1. Innere Schleife mit "Delay" 2. Phasen - Schleife 3. Repeat "Taste" also insgesamt 3 Schleifen. die ineinander geschachtelt sind. Ich musste am Anfang mit einem fertig bearbeitetem Programm rausfinden, bei welcher Bit Nr. die Ampel in die entsprechenden farben umschalten kann. Das Schema schreibe ich euch kurz einmal auf: Es soll in 8 Phasen ablaufen. Ich habe eine Platte mit einem Ampelsystem an den PC angeschlossen darauf ist auch ein Knopf. Die Ampel ist am Anfang aus. Sobald ich auf den Knopf (von der Platte) drücke wird die Ampel des Fußgängers rot und die Autoampel grün. dies soll 5 sek. dauern. Danach ist die Fußgängerampel immer noch rot und die Autoampel gelb. Nach 2 Sek. wird dann die Autoampel auf rot umgeschalten und die Fußg.ampel ist immer noch auf rot. Nach 5 sek. wird dann die Fußgängerampel grün,dies dauert 10 sek. Danach schaltet die ampel wieder auf rot, dabei stehen 2 sekunden lang alle ampeln auf rot. Bis dann die Autoampel auf gelb umschaltet, dies dauert ebenfalls 2 sek. Darauf wird dann die Autoampel wieder grün. Dabei ist die Fußgängerampel natürlich auf rot. Nach der ganzen Sache fängt das ganze wieder von vorne an |
Re: Ampelfunktion in nur in while schleife programmieren?
Hmm,
erwartest du jetzt von uns, dass wir das für dich machen? Hast du schon mit etwas angefangen (Code)? |
DP-Maintenance
Dieses Thema wurde von "JasonDX" von "Neuen Beitrag zur Code-Library hinzufügen" nach "Sonstige Fragen zu Delphi" verschoben.
CodeLib-Sparte? :gruebel: Na ja, knapp daneben ist auch vorbei, naechstes mal bitte etwas besser zielen :zwinker: |
Re: Ampelfunktion in nur in while schleife programmieren?
ich weis net wie ich das machen soll das ist problem null plan brauch ehilfe
|
Re: Ampelfunktion in nur in while schleife programmieren?
Hi,
wie gesagt, werden wir nicht dein Programm schreiben bzw. deine Hausaufgabe erledigen. Wenn du uns sagst, wo genau du nicht weiterkommst und Eigeninitiative zeigst, lässt sich dir viel besser helfen. |
Re: Ampelfunktion in nur in while schleife programmieren?
ich weis nicht wie ich das in der while schleife machen muss mit den ampeln wäre gut wenn ihrm mir helfen könntet
|
Re: Ampelfunktion in nur in while schleife programmieren?
Darf man Fragen warum ohne Timer?
Du könntest dir einen Timestamp holen und dann in der While-Schleife prüfen, ob die Zeit (2, 5 Sekunden) um ist und dann den Status der Ampeln abfragen, um zu sehen, welche Phase als nächstes kommt. Finde ich allerdings unschön. MfG freak |
Re: Ampelfunktion in nur in while schleife programmieren?
oben hab ich ja mein problem schon geschildert das programm geht ja weiter das ich danach weioter programmieren werde aber dafür bvrauche ich diese funktion die oben beschrieben ist
|
Re: Ampelfunktion in nur in while schleife programmieren?
ich darf keinen timer verwenden alles soll mit while funktion erledigt werden
|
Re: Ampelfunktion in nur in while schleife programmieren?
heheh die lehrer halt ( ihr dürft keinen timer verwenden )
|
Re: Ampelfunktion in nur in while schleife programmieren?
Und wie schon gesagt, werden wir dir nicht diese Funktion schreiben, dass es deine (Haus-)Aufgabe ist und diese auch von dir gemacht werden muss.
Wir helfen dir, wenn wir sehen, dass du dich darum bemühst (sprich Eigeninitiative zeigst). Wenn du dir ein paar Überlegungen machst (wohin mit der Schleife, wie muss die Schleife aussehen, usw.) und du ein paar konkrete Fragen hast, dann lässt sich viel besser helfen. Kurze Frage: Haben sie euch in der Schule keine Satzzeichen begebracht? :roll: |
Re: Ampelfunktion in nur in while schleife programmieren?
Oder einfach alles nacheinander in der schleife abbarbeiten
quasi
Delphi-Quellcode:
while {was weiß ich} do
begin delay(2500); ampel := Rot ; delay (2500); ampel := gelb delay(2500); ampel:= grün end; |
Re: Ampelfunktion in nur in while schleife programmieren?
Zitat:
@Magier: Ok, Lehrer sagt schon alles. :mrgreen: Hast du denn überhapt ne Vorstellung von dem Problem? MfG freak |
Re: Ampelfunktion in nur in while schleife programmieren?
@Magier1: In Zukunft, wenn Du zusätzliche Informationen hast, bevor jemand antwortet, nutze bitte den http://www.delphipraxis.net/template.../icon_edit.gif Button am ersten Post. Das liest sich für alle leichter und ist hier auch so üblich.
Danke, ...:cat:... |
Re: Ampelfunktion in nur in while schleife programmieren?
Hallo Magier1,
zuerst solltest du dein Problem genau analysieren. Welche Zustände kann jede Ampel einnehmen?
Code:
Acht Phasen kann ich nicht erkennen, sondern eher sechs:
KfzAmpelZustaende = (kfzAus, kfzGruen, kfzGelb, kfzRot, kfzRotGelb);
FussgaengerAmpelZustaende = (fussAus, fussGruen, fussRot);
Code:
Der Rest ist dann nur noch Einschalten, Ausschalten und eine Schleife:
Phase 1: 5s, kfzGruen, fussRot
Phase 2: 2s, kfzGelb, fussRot Phase 3: 5s, kfzRot, fussRot Phase 4: 10s, kfzRot, fussGruen Phase 5: 2s, kfzRot, fussRot Phase 6: 2s, kfzRotGelb, fussRot
Code:
Jetzt aber ran an die Hausaufgaben.
Solange Eingeschaltet() do
begin Phase := NächstePhase(Phase); SchalteFahrzeugAmpel(Phase); SchalteFussgaengerAmpel(Phase); Warte(Dauer(Phase)); end; Grüße vom marabu |
Re: Ampelfunktion in nur in while schleife programmieren?
mom ich hab hier etwas erstellt
Ampelleute Fussgängerampel Autoampel Dauer der Ampelleute rot grün leer rot gelb grün Phase 0 1 2 3 4 5 6 7 0 X unendlich $01 1 X X 5 sek $81 2 X X 2 sek $41 3 X X 5 sek $21 4 X X 10 sek $22 5 X X 2 sek $21 6 X X 2 sek $21 7 X X 30 sek $01 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:01 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