Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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

Geschrieben (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 von flashpixx
Geschrieben

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?

Geschrieben

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.

Geschrieben
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)

Geschrieben

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.

Geschrieben

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)

Geschrieben

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.

Geschrieben

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 ?)

Geschrieben

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.

Geschrieben

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) ?

Geschrieben


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.

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...