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

Informatiker Board » Themengebiete » Praktische Informatik » multiarray » 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 multiarray
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
neuling96
unregistriert
multiarray Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Guten Abend,
bei der Aufgabe komme ich kein stück vorwärts
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
public class Klausurpunkte {

    public static int[][] studentenPunkte = new int[42][8];

    public static void main(String[] args) {
        setPunkte(21, 0, 6);
        System.out.println(getPunkte(21, 0));           // Ausgabe: 6
        setPunkte(21, 1, 3);
        setPunkte(21, 2, 5);
        setPunkte(21, 3, 7);
        setPunkte(21, 4, 11);
        setPunkte(21, 5, 2);
        setPunkte(21, 6, 0);
        setPunkte(21, 7, 5);
        System.out.println(gesamtPunktezahl(21));       // Ausgabe: 39
        setPunkte(12, 4, 5);
        setPunkte(34, 4, 5);
        System.out.println(durchschnittsPunktezahl(4)); // Ausgabe: 0.5
    }

    /**
     * Gibt die Punktezahl einer bestimmten Aufgabe für einen bestimmten
     * Studenten zurück.
     *
     * @param student Spezifiziert die Nummer des Studenten dessen Punktezahl
     * zurückgegeben werden soll.
     * @param aufgabe Spezifiziert die Nummer der Aufgabe deren Punktezahl
     * zurückgegeben werden soll.
     *
     * @return Die von Student student bei Aufgabe aufgabe erreichten Punkte.
     */
    public static int getPunkte(int student, int aufgabe) {
		// hier ergänzen!
    }

    /**
     * Setzt die Punktezahl einer bestimmten Aufgabe für einen bestimmten
     * Studenten auf einen bestimmten Wert.
     *
     * @param student Spezifiziert die Nummer des Studenten dessen Punktezahl
     * gesetzt werden soll.
     * @param aufgabe Spezifiziert die Nummer der Aufgabe deren Punktezahl
     * gesetzt werden soll.
     * @param punkte Spezifiziert die Anzahl der erreichten Punkte.
     */
    public static void setPunkte(int student, int aufgabe, int punkte) {
		// hier ergänzen!
    }

    /**
     * Berechnet die Summe von Ãœbungspunkten von Student student.
     *
     * @param student Spezifiziert die Nummer des Studenten dessen
     * Gesamtpunktezahl zurückgegeben werden soll.
     * @return Die Summe aller Ãœbungspunkte von Student student.
     */
    public static int gesamtPunktezahl(int student) {
		// hier ergänzen!
    }

    /**
     * Berechnet die Anzahl der Punkte die im Schnitt von allen Studenten bei
     * der spezifizierten Aufgabe aufgabe erreicht wurden.
     *
     * @param aufgabe Spezifiziert die Aufgabe deren durchschnittlich erreichte
     * Punktezahl zurückgegeben werden soll.
     * @return Die im Durchschnitt erreichte Punktezahl bei Aufgabe aufgabe.
     */
    public static double durchschnittsPunktezahl(int aufgabe) {
		// hier ergänzen!
    }
}


Ich habe ehrlich keine ahung wie ich anfangen kann

erst entwurf:
code:
1:
2:
3:
4:
5:
public static int getPunkte(int student, int aufgabe){
int points;
studentenPunkte [student][aufgabe]=points;  
return punkte
   } 


code:
1:
2:
3:
4:
5:
public static void setPunkte(int student, int aufgabe, int punkte) {
  int ergo;
 getPunkte(student, aufgabe);
 points=punkte ;
   } 
12.12.2014 19:37
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

bei getPunkte willst du doch nur Daten abholen, die im Array studentenPunkte hinterlegt sind.
also return studentenPunkte[student][aufgabe]; - das ist tatsächlich schon alles.

bei set muss etwas an besagter Position im Array abgelegt werden.

Zitat:
public static int getPunkte(int student, int aufgabe){
int points;
studentenPunkte [student][aufgabe]=points;
return punkte
}

bei einer Methode mit "get" im Namen, ist es selten klug, Variableninhalte zu ändern. Außerdem ist weder points noch punkte definiert.

__________________
Syntax Highlighting fürs Board (Link)
12.12.2014 20:10 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
neuling96
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

public static void setPunkte(int student, int aufgabe, int punkte) {
studentenPunkte [student][aufgabe]=getPunkte(student, aufgabe);
}

meinst du so?
12.12.2014 20:18
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

Nein, damit überschreibst du den Eintrag ja mit dem, was vorher auch schon drinstand.

code:
1:
2:
3:
public static void setPunkte(int student, int aufgabe, int punkte) {
    studentenPunkte [student][aufgabe] = punkte;
}


__________________
Syntax Highlighting fürs Board (Link)
13.12.2014 07:26 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
neuling96
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Zitat:
Original von eulerscheZahl
Nein, damit überschreibst du den Eintrag ja mit dem, was vorher auch schon drinstand.

code:
1:
2:
3:
public static void setPunkte(int student, int aufgabe, int punkte) {
    studentenPunkte [student][aufgabe] = punkte;
}


d.h ab sofort ist studentenPunkte [student][aufgabe] = punkte; fest gelegt ?

void->bedeutet
dass keine Daten übergeben werden oder der Typ der Daten nicht angegeben ist?!


code:
1:
2:
3:
4:
5:
6:
public static int gesamtPunktezahl(int student) {
int sum;
 for (int i=0;i<8;i++) {
 sum += studentenPunkte [student][i] ;
   }
}
13.12.2014 15:06
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

studentenPunkte [student][aufgabe] = punkte gilt so lange, bis man wieder etwas anderes hineinschreibt.

void heißt, dass díe Funktion keinen Rückgabewert hat.

Zur Summenberechnung:
code:
1:
2:
3:
4:
5:
6:
7:
public static int gesamtPunktezahl(int student) {
    int sum = 0; //initialisieren
    for (int i=0;i<8;i++) {
        sum += studentenPunkte [student][i] ;
    }
    return sum; //nicht vergessen, das Ergebnis zurückzugeben
}


__________________
Syntax Highlighting fürs Board (Link)
13.12.2014 15:17 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
neuling96
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

code:
1:
2:
3:
4:
5:
6:
7:
public static double durchschnittsPunktezahl(int aufgabe) {
	double sum;
        for (int i=0; i<42;i++) 
        sum += studentenPunkte [i][aufgabe] ;
    }
  return sum/42 ;
}
13.12.2014 16:13
neuling96
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

int sum = 0; //initialisieren

ich dachte wenn man int sum, hinschreibt wird automatische int sum =0 gesetzt?
13.12.2014 16:14
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

Es kommt darauf an, wo du das schreibst.
Für Klassenvariablen ist das zutreffend, wenn die Variable aber lokal in der Funktion erstellt wird, dann musst du sie Initialisieren.

__________________
Syntax Highlighting fürs Board (Link)
13.12.2014 16:18 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
neuling96
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

code:
1:
2:
3:
4:
5:
6:
7:
public static double durchschnittsPunktezahl(int aufgabe) {
	double sum= 0;
        for (int i=0; i<42;i++) 
        sum += studentenPunkte [i][aufgabe] ;
    }
  return sum/42 ;
}


und fertig?
13.12.2014 16:32
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

Sieht gut aus Daumen hoch

Ein allgemeiner Rat:
nutze wenn möglich keine festen Zahlen, sondern Konstanten
Wenn z.B. ein neuer Student dazukommt, musst du das nicht nur oben bei der Arraydefinition ändern, sondern auch bei der Berechnung des Durchschnitts.

Die 42 kriegst du mit studentenPunkte.length
Die 8 mit studentenPunkte[0].length

__________________
Syntax Highlighting fürs Board (Link)
13.12.2014 16:50 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
neuling96
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

vielen dank Wink
13.12.2014 17:42
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Praktische Informatik » multiarray