Nordmark
Lieutenant
- Registriert
- Nov. 2007
- Beiträge
- 898
Moin,
mich nach meinem ersten fertigen Master jetzt ein bisschen weiter zu fassen und mich mit beispielsweise mit Programmierung zu beschäftigen.
Belege dazu einen freiwilligen Kurs an meiner Uni der sich derzeit mit Java beschäftigt. Genutzt wird dazu allerdings BlueJ um uns die Sache für den Anfang zu vereinfachen.
Eigentlich komme ich auch ganz gut klar, nur habe ich eine Frage:
Soweit ich das jetzt geschrieben habe, (habe leider aus gesundheitlichen Gründen die letzte Sitzung verpasst). Schaltet die Ampel Grün -> Gelb -> Rot -> Grün usw.
Mir fehlt die Stufe in er die Ampel Rot/Gelb leuchtet.
Wären die vorgaben der Phasen per Boolean bestimmt wäre es ja auch einfach machbar aber (wahrscheinlich ist die Lösung trivial) bekomme ich es nicht zu Stande auf Rot/Gelb gleichzeitig zu programmieren.
Dazu müsste ich, ohne weitere Methoden zu definieren, es schaffen die int Werte Gelb (1) und Rot (2) zu vereinen, selbstverständlich ohne boolsche Werte zu nutzen, da sonst der Kompiler streikt.
Also es ist wahrscheinlich wirklich einfach aber kann mir jemand erklären wie ich zwei int Werte dazu bringen kann gleichzeitig aktiv zu sein?
Vielen Dank im Vorraus
mich nach meinem ersten fertigen Master jetzt ein bisschen weiter zu fassen und mich mit beispielsweise mit Programmierung zu beschäftigen.
Belege dazu einen freiwilligen Kurs an meiner Uni der sich derzeit mit Java beschäftigt. Genutzt wird dazu allerdings BlueJ um uns die Sache für den Anfang zu vereinfachen.
Eigentlich komme ich auch ganz gut klar, nur habe ich eine Frage:
Code:
/**
* Eine Bmpel besteht aus drei Lampen in den Farben rot, gelb und gruen.
* Sie durchlaeuft periodisch vier Phasen: gruen, gelb, rot, rot/gelb.
* In den ersten drei Phasen leuchtet also nur jeweils eine Lampe,
* waehrend in der vierten Phase zwei Lampen gleichzeitig leuchten.
* Der Zustand der einzelnen Lampen kann abgefragt werden,
* und die Bmpel kann in die naechste Phase geschaltet werden.
* Die Schaltung geschieht explizit durch einen Methodenaufruf
* (und nicht etwa durch einen automatischen Timer).
*
*/
class Bmpel
{
private int _phase;
/**
* Initialisiert eine neue Bmpel auf die erste Phase (gruen).
*/
public Bmpel()
{
_phase = 0;
}
/**
* Schaltet die Bmpel in die naechste Phase (gruen -> gelb -> rot -> rot/gelb -> gruen).
*/
public void schalteWeiter()
{
_phase = (_phase + 1) % 4;
_phase = (_phase + 2) % 4;
_phase = (_phase + 2) % 4;
}
/**
* Gibt an, ob die rote Lampe leuchtet.
*/
public boolean leuchtetRot()
{
return _phase == 2;
}
/**
* Gibt an, ob die gelbe Lampe leuchtet.
*/
public boolean leuchtetGelb()
{
return _phase == 1;
}
/**
* Gibt an, ob die gruene Lampe leuchtet.
*/
public boolean leuchtetGruen()
{
return _phase == 0;
}
}
Soweit ich das jetzt geschrieben habe, (habe leider aus gesundheitlichen Gründen die letzte Sitzung verpasst). Schaltet die Ampel Grün -> Gelb -> Rot -> Grün usw.
Mir fehlt die Stufe in er die Ampel Rot/Gelb leuchtet.
Wären die vorgaben der Phasen per Boolean bestimmt wäre es ja auch einfach machbar aber (wahrscheinlich ist die Lösung trivial) bekomme ich es nicht zu Stande auf Rot/Gelb gleichzeitig zu programmieren.
Dazu müsste ich, ohne weitere Methoden zu definieren, es schaffen die int Werte Gelb (1) und Rot (2) zu vereinen, selbstverständlich ohne boolsche Werte zu nutzen, da sonst der Kompiler streikt.
Also es ist wahrscheinlich wirklich einfach aber kann mir jemand erklären wie ich zwei int Werte dazu bringen kann gleichzeitig aktiv zu sein?
Vielen Dank im Vorraus