Java Warteliste Programmieren?
Hi, bin vor kurzem einem Programmierunterricht beigetreten und muss nun folgende Aufgabe als Hausaufgabe lösen, aber leider bekomme ich das nicht hin :(
Aufgabe:
- Deklarieren Sie 4 Variablen:
- "max" = Anzahl der Personen die maximal einen Fixplatz erhalten dürfen.
- "fix" = Anzahl der Personen die einen Fixplatz haben
- "wartend" = Anzahl der Personen auf der Warteliste
- boolean variable "istVoll" = true falls keine weiteren Plätze mehr vergeben werden können, false falls Plätze frei
Bis hierhin ist alles klar.
Jetzt soll das Programm folgende Bedingungen erfüllen:
- Wenn noch Fixplätze frei und und Personen auf der Warteliste, so wird den Personen auf der Warteliste ein Fixplatz zugewiesen bis keine Plätze mehr frei sind oder keine Personen auf der Warteliste stehen
- Wenn keine weiteren Personen einen Startwert erhalten haben so entspricht "fix" seinem Startwert
Hat jemand schon Erfahrungen mit solchen Aufgaben und kann mir "auf die Sprünge helfen"?
Ich habe schon gefühlt das ganze www durchforstet und kann nichts finden. Mein Kopf gibt mir auch nichts dazu aus.
Bis jetzt habe ich nur folgendes:
Die Aufgabe wirkt etwas unvollständig.. ist das wirklich die gesamte Aufgabe ?
Ja man hat 4 variablen und muss diese den Gegebenheiten anpassen. Also wenn Plätze frei sind, diese befüllen und wenn keine zugewiesen werden können dann nicht füllen.
2 Antworten
Wenn noch Fixplätze frei und und Personen auf der Warteliste, so wird den Personen auf der Warteliste ein Fixplatz zugewiesen bis keine Plätze mehr frei sind oder keine Personen auf der Warteliste stehen
Das ist eigentlich nur eine Addition und eine Subtraktion (oder zwei).
Du musst hier nicht das WWW durchsuchen, einfach logisch denken: wenn es Leute auf der Warteliste gibt und noch Fixplätze verfügbar sind, und du möglichst viele der Wartenden auf Fixplätze schiebst, was gilt dann nachher?
Zeichne es dir auf, oder beschreib als Gleichungen, oder was immer dir hilft. Du denkst wahrscheinlich nur zu kompliziert.
Klar, wenn man will kann man das schrittweise in einer Schleife machen, falls du das schon gelernt hast. Kommt aber aufs selbe Resultat raus.
Wenn keine weiteren Personen einen Startwert erhalten haben so entspricht "fix" seinem Startwert
Das ergibt sich aus dem bereits Gesagten.
Danke für den Hinweis, ich probiere das mal gleich aus.
Meinst du mit der Schleife switch und dann die conditions ?
Auf jeden Fall tut der Code jetzt was er soll. Wenn ich max =15 eingebe , fix = 2 und wartend = 10 dann kommt bei fix 12 raus und istVoll= false
Das richtige Stichwort war die Schleife. Ansonsten mit subtraktion addition müsste ich im code ja irgendwie die idee reinbringen, dass das Programm die Fixplätze vergeben soll bis wartend = 0 oder max = voll und da hätte ich keine Idee.
Gibt es ein analogon zur Schleife wenn man nur subtraktion und addition benutzen darf?
Du könntest ja zum Beispiel jedes mal, wenn die Bedingungen (max > fix) && (wartend > 0) erfüllt sind, die Variable "wartend" erniedrigen und die Variable "fix" erhöhen, oder? Das würde dann simulieren, dass die Wartenden einen Fixplatz zugewiesen bekommen.
Dafür würde sich eine Schleife gut eignen.
Das Problem ist dann, das es nur für bestimmte Zahlen gilt. Also z.B. mache ich es für 12 Teilnehmer und dann läuft das Programm. Wenn aber 13 Teilnehmer teilnehmen klappt es nicht mehr.
Meinst du mit der Schleife switch und dann die conditions?
while (max > fix && wartend > 0) {
fix++;
wartend--; }
if (max > 1 && max == fix) {
istVoll = true;
} else { istVoll = false;}
if ( max > 1 & max > fix & wartend > 0) {
istVoll = false; }
else if (max > 1 && max == fix) {
istVoll = true;}
Leute, ihr habt mich heute echt gerettet. Hab jetzt ungefähr sowas geschrieben, keine Anhnung ob das hier auf gute Frage lesbar ist.