Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » Algorithmen » Algorithmus BlueJ » Antwort erstellen » Hallo Gast [Anmelden|Registrieren]

Antwort erstellen
Benutzername: (du bist nicht eingeloggt!)
Thema:
Nachricht:

HTML ist nicht erlaubt
BBCode ist erlaubt
Smilies sind erlaubt
Bilder sind erlaubt

Smilies: 21 von 33
smileWinkDaumen hoch
verwirrtAugenzwinkerngeschockt
Mit ZungeGottunglücklich
Forum Kloppebösegroßes Grinsen
TanzentraurigProst
TeufelSpamWillkommen
LehrerLOL HammerZunge raus
Hilfe 
aktuellen Tag schließen
alle Tags schließen
fettgedruckter Textkursiver Textunterstrichener Text zentrierter Text Hyperlink einfügenE-Mail-Adresse einfügenBild einfügen Zitat einfügenListe erstellen CODE einfügenPHP CODE farbig hervorheben
Spamschutz:
Text aus Bild eingeben
Spamschutz

Die letzten 3 Beiträge
Denise

Okay, dankeschön smile
eulerscheZahl

while (notenliste[i] > notenliste[i + 1])
Wenn das erfüllt ist, landest du in einer Endlosschleife.
Und die beste Note gibst du bei jedem Schleifendurchlauf aus.
Außerdem wirst du auf notenliste[notenliste.Length] zugreifen, wenn du nicht in der Endlosschleife hängen bleibst, das gibt eine Exception.

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
public void besteNote() {
	int besteNote = notenliste[0];
	for (int i = 1; i < notenliste.length; i++) {
		while (notenliste[i] < besteNote) {
			besteNote = notenliste[i];
		}
	}
	System.out.println("Beste Note:" + besteNote);
}

so funktioniert es. Ich würde aber ein int zurückgeben und die Ausgabe mit System.out in der aufrufenden Funktion erfolgen lassen.
Denise Algorithmus BlueJ

Meine Frage:
Hallo smile

Es geht um eine Klasse Noten, die die Noten der Schüler anzeigt (mithilfe eines Felds). Mit einer Methode soll die beste Note angegeben werden
(in blueJ). Es war angegeben, dass es nur drei Noten gibt.


Meine Ideen:
Ich habe die Klasse schon erstellt:
public class Noten
{
private int [] notenliste;

public Noten(int elemente)
{
notenliste = new int [elemente];
}


public void einfuegen(int index, int note)
{
notenliste[index-1] = note;
}

public void ausgebenAlle(){
for (int i = 0; i < notenliste.length; i++){
System.out.println ("Schüler "+(i+1)+": "+notenliste[i]);
}
}

public void besteNote (){
int besteNote = notenliste [0];
for (int i=0; i < notenliste.length; i++) {
if ( besteNote > notenliste [1]) {
besteNote = notenliste [1];
}
if (besteNote > notenliste [2]) {
besteNote = notenliste [2]; }
}

System.out.println("Beste Note:" + besteNote);

}
}

Jetzt sollen wir die letzte Methode (besteNote) allgemein mit dem Index umschreiben, sodass man nicht mehr nur auf drei Noten begrenzt ist. Wie geht das? :/ habe schon Folgendes versucht:
public void besteNote (){
int besteNote= notenliste [0];

for (int i=0; i < notenliste.length; i++) {

while ( notenliste[i] > notenliste [i+1]) {
besteNote = notenliste [i+1];
}


System.out.println("Beste Note:" + besteNote);

}
}}

Wenn ich compile, zeigt er mir keinen Fehler an, aber wenn ich ein Objekt erstellen will und dann auf die Methode zugreifen möchte, funktioniert das nicht mehr.

Kann mir jemand helfen?