chiiicken Geschrieben 5. Juli 2010 Geschrieben 5. Juli 2010 Hallo. Ich bin in der 10. Klasse eines Gymnasiums und habe folgende Aufgabe bis morgen zur 1. Stunde zu erledigen: Ich soll herausfinden, wie viele 6er ich noch bekommen müsste, bis ich im Zeugnis auf einer 6 stehe (Also Notendurchschnitt minimum 5,5) Das alles soll ich mit BlueJ machen. Ich habe mir schon folgendes überlegt: 1. Ein Feld machen, in dem ich meine jetzigen Noten eingeben kann und dann durch die Anzahl der Noten teilen (x) -> Also der ganz normale Notendurchschnitt (nennen wir ihn Y) 2. Dann mit einer FOR-Schleife (denke ich) zu meinen jetzigen Noten +6 und x+1 (Damit ein neuer Notendurchschnitt rauskommt, wieder Y) 3. Die FOR-Schleife so lange ausführen, bis der neue Notendurchschnitt (Y) 5,5 ergibt 4. Die Anzahl der 6er, die gebraucht wurden um den alten Notendurchschnitt auf 5,5 zu bringen herausgeben Leider habe ich keine Möglichkeit heute noch an einen PC zu kommen und ich gerade notdürftig über mein Iphone schreibe. Deswegen kann ich auch nicht den genauen Quelltext schreiben. Darum bitte ich euch mir bei dem Quelltext zu helfen. So in der Art habe ich mir das gedacht: public class Noten { int x, int y, float z1 float z2 (FLOAT wegen Kommazahl) } public int Notendurchschnitt z(int x,int y, int z1) { int Notendurchschnitt z1=x1+x2+x3+x4+x5)/y public int Note6(int x,int y,float z1, float z2) { for(int z1 =< 5,5; x1+x2+x3+x4+x5+6 && y+1) return Wie ich die Anzahl der 6er ausgebe, weiß ich leider nicht. Ich hoffe ihr könnt mir heute noch helfen. Danke im Vorraus Zitieren
flashpixx Geschrieben 5. Juli 2010 Geschrieben 5. Juli 2010 (bearbeitet) Also das ganze hat nichts mit Java, BlueJ oder sonst was zu tun, sondern es ist das Lösen einer einfachen Ungleichung, wobei man diese noch zu einer Gleichung vereinfachen kann. Mach es auf einem Stück Papier, wenn Du die mathematische Formulierung hast, sollte das Umsetzen in einen Quelltext recht einfach sein. Dafür sind keine For-Schleifen nötig. Die einzige Schleife, die Du brauchst wäre um den aktuellen Notenschnitt aus zu rechnen, sofern Du diesen nicht kennst Bearbeitet 5. Juli 2010 von flashpixx Zitieren
chiiicken Geschrieben 5. Juli 2010 Autor Geschrieben 5. Juli 2010 Ich weiß zwar jetzt nicht genau wie du das mit der mathematischen Ungleichung meinst aber ich probiere es mal. 1. Addition meiner Noten/Anzahl meiner Noten -> Jetziger Notendurchschnitt 2. Addition meiner Noten + 6er/Anzahl meiner Noten + Anzahl der 6er -> Neuer Notendurchschnitt 3. Wenn der Neue Notendurchschnitt kleiner gleich 5,5 ist soll die Funktion 2 aufhören, ausgeführt zu werden. 4. Herausgabe der Anzahl der 6er die gebraucht wurden um 5,5 zu erreichen Hast du das gemeint? Zitieren
lupo49 Geschrieben 5. Juli 2010 Geschrieben 5. Juli 2010 3. Wenn der Neue Notendurchschnitt kleiner gleich 5,5 ist soll die Funktion 2 aufhören, ausgeführt zu werden. Der neue berechnete Notendurchschnitt wird schon vor dem ersten Durchlauf kleiner gleich 5,5 sein (außer der Schnitt ist schon entsprechend schlecht). Du musst auf größer gleich überprüfen. Zitieren
flashpixx Geschrieben 5. Juli 2010 Geschrieben 5. Juli 2010 Ich weiß zwar jetzt nicht genau wie du das mit der mathematischen Ungleichung meinst aber ich probiere es mal. Ungleichung ? Wikipedia D.h. sobald Dein Notenschnitt = 5.5 ist => du bekommst eine 6, damit ergibt sich eine Gleichung und diese kannst Du direkt lösen, ohne irgendwas mit einer for-Schleife zu zählen D.h. Du musst nur für Deine Notenberechnung eine Gleichung aufstellen, die dann direkt nach der Anzahl lösen kannst (wobei Du natürlich die Anzahl auf natürliche Zahlen runden solltest) Zitieren
chiiicken Geschrieben 5. Juli 2010 Autor Geschrieben 5. Juli 2010 Ah ich glaube ich verstehe jetzt ungefähr das was du meinst. Also Aktuellen Notendurchschnitt ausrechnen: public float Notendurchschnitt z(int x,int y) { float Notendurchschnitt z = int x1,x2,x3,x4/y(Anzahl von x) } return float Notendurchschnitt z Sitmmt das mit dem Notendurchschnitt so? und wegen der 6er Addition ungefähr so etwas: if Notendurchschnitt z =< (kleiner gleich) 5,5 -> Addiere 6er und bei der Divison pro 6er y+1 setzen else (Anzahl der 6er die benötigt wurden ausgeben) Bei der Umsetzung für den Quelltext scheitere ich aber. Zitieren
lupo49 Geschrieben 5. Juli 2010 Geschrieben 5. Juli 2010 Entweder löst du die Ungleichung mathematisch oder du addierst in einem Schleifendurchlauf jeweils die Note 6 zum aktuellen Notendurchschnitt hinzu und überprüfst anschließend den neuen Durchschnitt. AnzahlNoten = 0 SOLANGE Notendurchschnitt < 5.5 AnzahlNoten inkrementieren Notendurchschnitt = (Notendurchschnitt + Note 6) / AnzahlNoten Ausgabe "Anzahl notwendiger 6'en:" AnzahlNoten (so ungefähr) Zitieren
chiiicken Geschrieben 5. Juli 2010 Autor Geschrieben 5. Juli 2010 Da ich wie schon gesagt, leider keine Möglichkeit habe das mit BlueJ zu testen, frage ich mich ob es eine Möglichkeit gibt mein Problem in einer Ungleichung in BlueJ zu schreiben. Außerdem habe ich im Unterricht den Begriff "inkrementieren" noch nicht verwendet und weiß daher nicht ob ich das so in blueJ schreiben könnte. Ebenso weiß ich nicht ob ich SOLANGE als Befehl in BlueJ schreiben kann. Wir haben in letzter Zeit immer nur mit FOR-Schleifen gearbeitet, deswegen dachte ich, dass es so auch geht. Zitieren
lupo49 Geschrieben 5. Juli 2010 Geschrieben 5. Juli 2010 Hier mal schnell lesen: Pseudocode ? Wikipedia und http://de.wikipedia.org/wiki/Inkrement_und_Dekrement Zitieren
chiiicken Geschrieben 5. Juli 2010 Autor Geschrieben 5. Juli 2010 Das mit Pseudocode habe ich mir grad durchgelesen. Und das mit Inkrement schon davor, jedoch wusste ich ja vorher nicht, dass das was du geschrieben hast in "Pseudocode" geschrieben war. Meine Frage ist jetzt nur wie das im Quelltext aussehen soll. Ganz oben hab ich ja schon versucht einen Ansatz zu machen, den ich aber jedoch nicht testen kann. Bei der FOR-Schleife wird es ja irgendwas mit 6++ sein (der inkrementier-befehl ?) Zitieren
lupo49 Geschrieben 5. Juli 2010 Geschrieben 5. Juli 2010 Du musst den Pseudocode jetzt gedanklich in den Java-Code übersetzen. Verwende die Sprachelemente aus Java, die dafür benötigt werden (Schleife + IF-Abfrage). Wieso kannst du das nicht testen? Lade die BlueJ runter oder einen anderen Java-Editor und teste es dort. Zitieren
chiiicken Geschrieben 5. Juli 2010 Autor Geschrieben 5. Juli 2010 Weil ich wie im 1. Beitrag geschrieben keine Möglichkeit habe, meinen PC zu benutzen und gerade nur mit dem Iphone versuche meine Hausaufgabe für morgen zu beenden. Ich versuche es aber mal zu übersetzen: Zu aller erst brauche ich ja eine Funktion mit der ich meinen jetzigen Notendurchschnitt errechnen kann. Einen Versuch habe ich 6 Beiträge weiter oben schon gepostet (Bitte sagen ob das so stimmt) 2. Die Addition der 6er if Notendurchschnitt =>5.5 (Noten + 6 && Anzahl Noten +1) else return Anzahl Noten (von +6) ? Zitieren
chiiicken Geschrieben 5. Juli 2010 Autor Geschrieben 5. Juli 2010 Helft mir bitte, ich muss das heute noch machen und habe eben keine Möglichkeit das zu testen Zitieren
flashpixx Geschrieben 5. Juli 2010 Geschrieben 5. Juli 2010 Du solltest mich nicht mit PMs zu spammen bzw Thread Pushing versuchen, das ist unerwünscht! Zitieren
lupo49 Geschrieben 5. Juli 2010 Geschrieben 5. Juli 2010 if Notendurchschnitt =>5.5 (Noten + 6 && Anzahl Noten +1) else return Anzahl Noten (von +6) ? Das kleiner gleich Zeichen ist "<=". Was soll der Ausdruck in der Klammer sein? Du verknüpfst zwei int-Wert mit einem boolschen Und-Operator. An der Stelle wird dir der Compiler einen Fehler auswerfen (operator && cannot be applied to int, int). Dir fehlen die Grundlagen und die Logik um hier einen gescheiten Entwurf zu erarbeiten. Im Moment ist es nur rumraten. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.