Weiß einfach nicht mehr weiter...

irischka.p

Mitglied
Hallo zusammen. Muss heute Aufgabe abgeben, aber es klappt nicht die Math.mix und max Funktion zum funzen zu bringen.🙁 Ich habe schon die Variable anzahlTage als double deklariert, aber trotzdem bringe ich nur alles durcheinander damit. Bitte um Hilfe. Das letzte Teil hab ich auch noch nicht, erst Schleife angefangen aufzubauen.


public class Aktienchart {
/** Name der Aktie */
private String bezeichnung;

/** gespeicherte Tageskurse für aufeinanderfolgende Tage */
private double kurswerte;

/** Anzahl der bisher eingetragenen Werte */
private double anzahlTage = 0.0;

/**
* Konstruktor, der die Bezeichnung der Aktie festlegt und bestimmt, für wie
* viele Tage maximal Werte gespeichert werden können
*/
public Aktienchart(String bezeichnung, int maxTage) {

}

/** trägt den nächste Tageskurs für die Aktie ein */
public void tageskursEintragen(double tageskurs) {
if (anzahlTage < kurswerte.length) {
kurswerte[anzahlTage] = tageskurs;
anzahlTage++;
} else {
System.out.println("### Fehler: kein weiterer Wert speicherbar! ###");
}
}

private final static int MAX_BREITE = 40;

/** gibt die gespeicherten Werte aus */
public void ausgeben() {
System.out.println();
System.out.println("Kursverlauf für " + bezeichnung);
for (int tag = 0; tag < anzahlTage; tag++) {
double tageswert = kurswerte[tag];
System.out.print((tag + 1) + ". Tag: " + tageswert + "\t|");

for (int pos = 0; pos < MAX_BREITE * tageswert / hoechstkurs(); pos++) {
System.out.print('*');
}
System.out.println();
}
}

/** bestimmt den Höchstkurs der gespeicherten Kurswerte */
double hoechstkurs() {
double max =0;
max = Math.max (double anzahlTage, double kurswerte);
System.out.println("Maximum wert ist: " + max);

return max;
}

/** bestimmt den Tiefstkurs der gespeicherten Kurswerte */
double tiefstkurs() {
double min =0;
min = Math.min (double anzahlTage, double kurswerte);
System.out.println("Minimum Wert ist: " + min);

return min;
}

/** bestimmt das arithmetische Mittel der gespeicherten Werte */
double mittlererKurs() {
double mittel=0;
mittel= max-min;
System.out.println("Mittelwert ist: " + mittel);
return mittel;
}

/**
* bestimmt den maximalen Gewinn, der im Zeitraum des gespeicherten Kursverlaufs
* hätte erzielt werden können
*/
double maxGewinn() {
for (int kauftag = 0, kauftag < kurswerte.length, kauftag++){
for (int verkaufstag = 0, verkaufstag < kurswerte.length, verkaufstag++){

)
}
}
return 0;
}
 
Methoden ruft man ohne die Modifier auf!
Java:
max = Math.max (double anzahlTage, double kurswerte);

lasse dort also jeweils das double weg !

Allerdings bringst du hier sehr viel durcheinander ... kurswerte ist ein double,
einmal rufst du aber
kurswerte.length auf und dann kurswerte[x] ..wobei x auch ein double ist?!

Vllt nochmal den Abschnitt mit den Datentypen lesen :rtfm: ? ;(
 
Danke, habe auf jeden Fall nochmals die Bezeichnungen geändert und hab auch gesehen, dass in der Deklaration etwas vergessen wurde.🙁 Bin schon etwas unter Druck und es fällt mir jedes mal net einfach.

public class Aktienchart {
/** Name der Aktie */
private String bezeichnung;

/** gespeicherte Tageskurse für aufeinanderfolgende Tage */
private double[] kurswerte;

/** Anzahl der bisher eingetragenen Werte */
private int anzahlTage = 0;

/**
* Konstruktor, der die Bezeichnung der Aktie festlegt und bestimmt, für wie
* viele Tage maximal Werte gespeichert werden können
*/
public Aktienchart(String bezeichnung, int maxTage) {

}

/** trägt den nächste Tageskurs für die Aktie ein */
public void tageskursEintragen(double tageskurs) {
if (anzahlTage < kurswerte.length) {
kurswerte[anzahlTage] = tageskurs;
anzahlTage++;
} else {
System.out.println("### Fehler: kein weiterer Wert speicherbar! ###");
}
}

private final static int MAX_BREITE = 40;

/** gibt die gespeicherten Werte aus */
public void ausgeben() {
System.out.println();
System.out.println("Kursverlauf für " + bezeichnung);
for (int tag = 0; tag < anzahlTage; tag++) {
double tageswert = kurswerte[tag];
System.out.print((tag + 1) + ". Tag: " + tageswert + "\t|");

for (int pos = 0; pos < MAX_BREITE * tageswert / hoechstkurs(); pos++) {
System.out.print('*');
}
System.out.println();
}
}

/** bestimmt den Höchstkurs der gespeicherten Kurswerte */
double hoechstkurs() {
double max =0;
max = Math.max (anzahlTage, kurswerte);
System.out.println("Maximum wert ist: " + max);

return max;
}

/** bestimmt den Tiefstkurs der gespeicherten Kurswerte */
double tiefstkurs() {
double min =0;
min = Math.min (anzahlTage, kurswerte);
System.out.println("Minimum Wert ist: " + min);

return min;
}

/** bestimmt das arithmetische Mittel der gespeicherten Werte */
double mittlererKurs() {
double mittel=0;
mittel= max-min;
System.out.println("Mittelwert ist: " + mittel);
return mittel;
}

/**
* bestimmt den maximalen Gewinn, der im Zeitraum des gespeicherten Kursverlaufs
* hätte erzielt werden können
*/
double maxGewinn() {
for (int kauftag = 0, kauftag < kurswerte.length, kauftag++){
for (int verkaufstag = 0, verkaufstag < kurswerte.length, verkaufstag++){

)
}
}
return 0;
}

}

Bei der letzten Aufgabe habe irgend wie eine Schleife mit Sortierverfahren einbauen wollen um max. möglichen Gewinn zu bestimmen, aber langsam hab keine Nerven dazu.;(
 
Math.max ermittelt nur das Maximum aus zwei Zahlen! Du sollst ja aber das Maximum aus allen Zahlen die in deinem Array vorhanden sind ermitteln wenn ich das richtig sehe. D.h. du könntest über das Array iterierne mit einer Schleife und immer schauen ob der aktuelle Wert größer ist als das momentane Maximum usw...andere Möglichkeit wäre das Array zu sortieren (Arrays.sort(kurswerte)) und dann einfach den letzten bzw ersten bzw mittlersten Wert auszugeben, je nachdem ob du dich in der tiefstkurs,hoechstkurs oder mittlererkurs- Methode befindest.. 🙂
 

Neue Themen


Zurück
Oben