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

Informatiker Board » Themengebiete » Praktische Informatik » Algorithmen » Algorithmus BlueJ » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Algorithmus BlueJ
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Denise
Grünschnabel


Dabei seit: 03.05.2015
Beiträge: 2

Algorithmus BlueJ Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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?
03.05.2015 13:20 Denise ist offline E-Mail an Denise senden Beiträge von Denise suchen Nehmen Sie Denise in Ihre Freundesliste auf
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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.

__________________
Syntax Highlighting fürs Board (Link)
03.05.2015 17:24 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
Denise
Grünschnabel


Dabei seit: 03.05.2015
Beiträge: 2

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Okay, dankeschön smile
03.05.2015 20:33 Denise ist offline E-Mail an Denise senden Beiträge von Denise suchen Nehmen Sie Denise in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Praktische Informatik » Algorithmen » Algorithmus BlueJ