In anderes Array Werte eingeben(Java)?
Hey, kann mir einer bei der c) helfen?
Ich habe mir das als Vorlage genommen:
public void neueNote(int deineNote){
}
Wie schreibe ich in ein anderes Array, das bei a) erstellt wurde die Werte, also meine Noten? Bzw. wie ist die Syntax dafür?
Liebe Grüße
In dieser Aufgabe soll eine Mini-Notenverwaltung für deine Informatik-Noten erstellt werden.
- a) Definiere eine Klasse Noten zur Verwaltung von bis zu zehn Schulnoten. Dafür sollen nur zwei globale Attribute verwendet werden: ein Feld note der Länge 10 für die Noten und ein Attribut anzahl für die Anzahl der momentan vorhandenen Noten.
- b) Implementiere den Konstruktor, der ein leeres Feld erzeugt und das Attribut anzahl auf null setzt.
- c) Ergänze die Klasse um eine Methode, welche in das erste freie Feldelement die übergebene Note einträgt und das Attribut anzahl um eins erhöht. Die Methode soll außerdem überprüfen, ob der übergebene Zahlenwert zwischen 1 und 6 liegt und eine Fehlermeldung ausgeben, wenn bereits zehn Noten eingegeben wurden, das Feld also voll ist.
- d) Implementiere eine Methode, die den Durchschnitt berechnet und zurückgibt.
- e) Implementiere eine Methode, die die Note an der Stelle i ausgibt.
- f) Implementiere eine Methode, die die Note an der Stelle i ändert.
1 Antwort
Naja, genauso machen wie‘s da steht.
- Überprüfen ob der input (deineNote) zwischen 1 und 6 liegt
- Das erste leere Feld (bzw. den Index davon) ermitteln. Erstelle eine Variable index und setze sie auf -1. Iteriere per Schleife über alle Felder des Arrays, und schau, welches noch leer ist - da brichst du dann die Schleife ab (break) und schreibst den entsprechenden Index i in die eben erstellte Variable index.
- Falls es kein erstes Leeres Feld gab, index also noch -1 ist, dann ist das Array bereits voll -> Fehlermeldung ausgeben
- Ansonsten nun in das Array am eben ermittelten Index deineNote eintragen. Und anzahl um 1 erhöhen.
Dazu muss man wissen, dass die Elemente eines Arrays standardmßig auf 0 gesetzt werden. Bedeutet: Wenn Feld == 0, dann ist das Feld leer.
int index = -1;
for(int i = 0; i < notenListe.length; i++) {
if (notenListe[i] == 0) { //Wenn das Feld leer ist
index = i; //index des leeren Feldes speichern
break; //Schleife beenden
}
}
okay, es heißt, dass ein array benötigt wird, aber ich habe doch hiermit das array erstellt oder?
public void note()
{
int[] note = new int[10];
}
Ja, hast du. Aber du hast es innerhalb der Funktion note() erstellt, folglich existiert das Array dann nur innerhalb dieser Funktion. Du sollst es global (also ausserhalb einer Funktion) erstellen. Das ginge so:
int[] note;
public void note() {
note = new int[10];
}
Dadurch ist note nun global, weil du es schon vor der Funktion erstellt hast.
ich hänge jetzt seit 2 stunden am gleichen Problem und es funktioniert immer noch nicht. Deswegen lasse ich es jetzt einfach bleiben. Danke trotzdem für deine Hilfe.
Wie ist die Syntax dafür?