Praxis-Aufgabe: Bakterienkultur
Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.
Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.
Aufgabe 5.2 (Bakterienkultur)
Nachdem’s dieses Mal (noch?) keine grauenhaften Testcases gibt, wäre es irgendwie recht praktisch, wenn man die Praxis-Aufgaben anders überprüfen könnte…
Ich hab bei der Bakterienkultur mal einfach berechneBakterienkultur(i) von i=0 bis 11 ausgegeben. Kann das Ergebnis irgendwer bestätigen?
0: 0.0
1: 10.0
2: 20.0
3: 40.0
4: 80.0
5: 120.0
6: 180.0
7: 270.0
8: 405.0
9: 607.5
10: 911.25
11: 1366.875
Guat Nacht,
Martin
Bestaetigt!
aber den 11ten tag kannst weglassen, in der angabe steht ja nur bis zum 10. Tag.
Kann das Ergebnis auch bestätigen
bassd.
Oder doch nicht?
Jetzt hab ich grad nochmal geschaut, ob wir den Bestand am oder bis zum 10. Tag ausgeben sollen… Und die Aufgabe ist “wieviel Gramm Bakterienkultur am 10. Tag zur Verfügung stehen”.
Heißt das, wie viel ich am 10. Tag entnehmen kann oder wie viel ich am 10. Tag überhaupt habe?
also ich habe das so verstanden, dass unsere Methode in der Lage sein soll, an einem beliebigen tag X, die anzahl der bakterien (abzüglich des entwendeten viertels) auszugeben.
in unserem fall (laut aufgabenblatt), soll sie halt beim aufruf mit parameter 10, die anzahl der bakterien am 10. tag liefern. es muss aber folgich auch möglich sein, die funktion mit einem beliebig anderen tag, z.b. 27, aufzurufen.
Ja schon… Aber was sollen wir in der main() dann ausgeben?
berechne(10) oder 0.25*berechne(10) für alle Tage ab 5 und Null sonst?
Wird zwar hoffentlich keinen großen Unterschied für die Bewertung machen, aber wär trotzdem nett, wenn man die Aufgabe verstehen würde…
mir scheint du hast die aufgabe noch nicht richtig gelesen. es ist glaube ich allgemein das problem, dass die meisten denken, man müsse immer komplette programme schreiben mit unzähligen benutzerinteraktionen.
meist geht es einfach darum funktionen oder module zu implementieren, die von anderen modulen genutzt werden können - das ist die idee der OOP. wenn ich nicht total falsch liege macht das der testcase auch. er sieht dein programm als blackbox, nimmt deine öffentliche methode die wir implementieren sollen und (fast) alles andere ist ihm wurscht. er ruft die methode mit zufallswerten auf und prüft sie auf korrektheit - that’s it. :finger:
wenn du überhaupt etwas in der main ausgeben möchtest, dann laut der aufgabenstellung “wieviel gramm bakterienkultur nach dem 10. tag zur verfügung stehen”. spricht du kannst z.B.
System.out.println("Bakterienkultur: " + berechneBakterienkultur(10) + "Gramm");
aufrufen. das sollte genügen. geht das in richtung deiner frage?
Nebenbei würde ich den Abbruchfall bei Tag 1 = 10 setzen (Es gibt ja keinen Tag 0 und wenn, dann sind es bestimmt nicht 0 Gramm).
Wenn, dann müsste ich den Abbruchfall auf Tag<=1 → 10 setzen, sonst terminiert mir die Geschichte für Tag<1 nicht. Und für Tage < 1 scheint mir 0 noch am sinnvollsten.
“Geben Sie das Ergebnis auf der Konsole aus.” klingt nicht nach einer “Blackbox-Klasse”, find ich…
Und meine Frage war in die Richtung, ob “steht zur Verfügung” heißt, dass ich so viel entnehmen kann (also ein Viertel der Kultur) oder ob es einfach die ganze existierende Kultur sein soll.
Bestätigung
Hi,
ich hab das auch mal manuell in ner Tabelle nachgerechnet, die Zahl müsste definitiv stimmen…
Wenn der Testcase keine 100% rauskriegt schlag ich ihn!
ciao
Jupp!
kann das nur bestätigen…die ergebnisse stimmen.
Ich bin definitiv der Meinung es muss immer die zu dem Gewählten Tag gehörende Bakterienmenge ausgegeben werde.
Die Frage ist nur ob mit oder ohne Entnahme am letzten Tag, was aber Haarspalterei wäre und somit scheissegal ist!
Ja ich hab die Werte auch raus aber, trotzdem mal ne Frage. Eigentlich wollte ich nur die Grammmenge am zehnten Tag auf der Konsole ausgeben, aber das habe ich nicht hingekriegt, da der Compiler einen boolean Wert erwartet, warum das denn???
Mein Code zurAusgabe sah so aus:
if ( zaehler = 10 ) { System.out.println( "Die Bakterienkultur hat am 10. Tag:" + " " + bakterien + " " + "Gramm" ); }
klappte nicht dafür klappte aber:
System.out.prinln( "Am" + " " + zaehler + ".Tag:" + " " + bakterien + " " + "Gramm");
Ich komm nicht drauf warum der obere Code nicht funktioniert hat. :motz:
Außerdem wenn ich schon mal am Fragen bin wenn ich eine for Schleife mit int i = 0, i < 0; i++ habe. Läuft sie dann einmal durch? Ich denke mal nicht, bin mir aber nicht ganz sicher. Wenn sie doch durchlaufen würde muss ich mein Programm ändern. ( Ich hoffe doch mal, dass sie in ihrem Testcase keine minus Tage übergeben. :-/
Bonsoir!
Falls dein Code wirklich wie gepostet aussah, wundert es mich nicht wirklich, dass dein Compiler nicht ganz zufrieden war.
Der Knackpunkt ist dieser:
if (zaehler = 10) { … }
Ist zwar gut gemeint und richtig gedacht, aber die Formulierung ist falsch:
if (zaehler == 10) { … }
vergleicht den Wert von Zaehler mit 10 und gibt bei Identität “true”, sonst “false” zurück (und ist somit das, was du eigentlich sagen willst).
Deine Version des Codes ( …zaehler = 10…) weißt Zaehler den Wert 10 zu, ist jedoch kein Vergleichsabgleich und liefert somit nichts zurück.
=> Compiler Warning
Versuch’s jetzt 'mal nochmal…
Au revoir!
if(zaehler == 10) heist es korrekt
dito
die einzelnen leerzeichen sind doch auch überflüssig kannst dch bei den anderen textteilen mit reinpacken
Ah natürlich, auf die einfachsten Dinge kommt man einfach nicht. :red: