Notendurchschnitt

Pauli99

Mitglied
Hi Leute,
ich bin Eclipseneuling und habe ein Problem beim Ausarbeiten einer Übung mit Eclipse. Ich habe bereits die Forensuche genutzt. Leider war diese bisher wenig hilfreich.

Ich hoffe Ihr könnt mir bei meinem Problem auf die Sprünge helfen.

Die Aufgabenstellung lautet wie folgt:

Geben Sie x Noten im Bereich von 1 bis 5ein. Wird ein Wert größer 5 eingegeben, soll das Programm stoppen und den Notendurchschnitt berechnen. Ohne dabei die letzte Zahl, die größer 5 ist, mitzurechnen.

Einen Ansatz habe ich bereits:
Java:
import java.util.Scanner;

public class Uebung13 {

    public static void main(String[] args) {
        
        Scanner in = new Scanner (System.in);
        
        double note;
        int notenanzahl=0;
        double summe = 0;
        double durchschnitt = 0;
        
        
        do {
            System.out.println("Geben Sie ihre Noten ein");
            note = in.nextDouble();
            
            notenanzahl ++;
            
            summe = summe + notenanzahl;
            summe++;
            
        }while ( note<6);
        
        durchschnitt = summe / (notenanzahl) ;
        
        System.out.println("Der Durchschnitt der Noten ist " + durchschnitt);
    }

}

Könnt ihr mir hier bitte einen kleinen Tipp geben, wie ich weiter machen kann? DANKE! :)

MfG pauli99

PS: Ich hoffe, das mit der Formatierung ist jetzt in Ordnung? :)
 

Robinson97

Aktives Mitglied
Ich würde an deiner Stelle die Abbruch bedingung in der while auf <= 5 setzen.
Java:
do{
//Quellcode
}while( note <= 5);
damit kannst du schon mal fehler vorbeugen!
(Sorry das hier eben ein Falscher Beitrag stand)
 
Zuletzt bearbeitet:

Robinson97

Aktives Mitglied
Und als zum Stoppen des Programms kannst du folgendes versuchen:
Java:
if(note >= 6){
 note = 0;
}
Weil sonst würde das Programm den Wert mitberechen. Warum machst du in dein Programm ein summe++ ?

PS: Hab gerade selbst nochmal die Forensuche benutzt und hab doch was gefunden:

Gruß Robinson97
 
Zuletzt bearbeitet:

Pauli99

Mitglied
Danke für deine Info :)
Habe jetzt versucht das Programm nach dem Beispiel aus dem Forum zu lösen.
Leider nimmt Eclipse die letzte Zahl, die das Programm abschließend beenden soll, auch noch mit in die
Berechnung.

Kannst du mir da bitte noch weiterhelfen, wie es formuliert werden kann, dass die letzte Zahl nicht in die Berechnung einbezogen wird? Danke! ???:L
 
Zuletzt bearbeitet:

Pauli99

Mitglied
Bisher nimmt das Programm die letzte Zahl, die schlussendlich den Durchlauf beenden soll, mit in die Berechnung.
Die letzte Zahl verfälscht damit leider den Durchschnitt.
Mein aktueller Programmiercode sieht so aus:
Java:
import java.util.Scanner;

public class Uebung13 {

    public static void main(String[] args) {
        
        Scanner in = new Scanner (System.in);
        
        float note;
        int notenanzahl=1;
        float summe = 0;
        float durchschnitt = 0;
        int nr =1;
        
        do{ 

            System.out.println("Bitte geben Sie ihre " + nr + " Note ein: ");
            note = in.nextFloat();
            
            notenanzahl++;
            summe = summe + note;
            nr++;
            
        }while( note <=5);
        
        durchschnitt = summe / (notenanzahl - 1);
        
        System.out.println("Sie haben " + (notenanzahl - 1 ) + " Noten eingeben. Der Schnitt beträgt: " + durchschnitt );
            
        }
            
            
             
    }
Könnt ihr den Code bitte nochmal überfliegen?
Ich übe für einen bevorstehenden Test und möchte mich möglichst gut vorbereiten.
Danke :)
 

Saheeda

Top Contributor
Hi,

du könntest auch die Bedingung der while-Schleife leicht abändern und stattdessen innerhalb abfragen, ob eine Zahl gültig ist, oder nicht:

Java:
boolean gueltig = true;

do{
	System.out.println("Bitte geben Sie ihre " + nr + " Note ein: ");
        note = in.nextFloat();
			
	if(note <= 5){
		summe += note;
		nr++;
	} else {
		gueltig = false;
	}
} while(gueltig)

Ansonsten:
Warum gibt es eine Variable notenanzahl und eine Variable nr? Was ist der Unterschied zwischen beiden und wo verwendest du nr? (Oder ich habs übersehen...)
Ich würde notenanzahl am Anfang nicht auf 1 setzen, sondern auf 0. Du ziehst überall, wo die Variable verwendet wird, eh wieder 1 ab.
 
Zuletzt bearbeitet:

Pauli99

Mitglied
Vielen Dank,
aber leider haben wir den boolean-Ausdruck in der Schule noch nicht durchgemacht.
Gibt es noch eine andere Möglichkeit? Ich komme leider echt nicht drauf.:bahnhof:
 

Saheeda

Top Contributor
Rein logisch würde auch das hier funktionieren, aber es wäre halt "doppelt-gemoppelt" und nicht ganz so schön:

Java:
do{ 
 
            System.out.println("Bitte geben Sie ihre " + nr + " Note ein: ");
            note = in.nextFloat();
 
           if(note <= 5){
                 notenanzahl++;
                 summe = summe + note;
                 nr++;
            }
 
        }while( note <=5);
 
Zuletzt bearbeitet:

Pauli99

Mitglied
Vielen Dank,
aber leider haben wir den boolean-Ausdruck in der Schule noch nicht durchgemacht.
Gibt es noch eine andere Möglichkeit? Ich komme leider echt nicht drauf.:bahnhof:
Habe nochmal in meine Unterlagen nachgeschaut, wir haben vor einiger Zeit den boolean-Ausdruck
durchgemacht. :oops:
Danke für deine Hilfe. Mit der boolean-Anweisung läuft das Programm jetzt.:toll: Danke für deine Unterstützung!!!!
 

Robinson97

Aktives Mitglied
Du könntest um das zu umgehen folgendes versuchen:
Java:
[COLOR=#000000]
 durchschnitt = summe / (notenanzahl - 1);
        
        if (Double.isNaN(durchschnitt)) {
            System.out.print("Die Eingabe war fehlerhaft !");
        }
        else{
        System.out.println("Sie haben " + (notenanzahl - 1 ) + " Noten eingeben. Der Schnitt beträgt: " + durchschnitt );
        }
[/COLOR]


Dadurch überprüfst du deine Variabel durchschnitt auf die Gültigkeit und wenn sie ungültig ist gibt er eine Fehlermeldung aus
 
Zuletzt bearbeitet:

Ähnliche Java Themen

Neue Themen


Oben