ich hab keine nerven mehr!!!

Status
Nicht offen für weitere Antworten.

bigjay87

Mitglied
arbeite mit dem eclipse!!

a) Schreiben Sie ein Programm, das zunächst die Anzahl n der Kurswerte und
danach die n Kurswerte selbst einliest. Dann werden folgende Daten berechnet
und ausgegeben:
• Höchststand der Aktie in diesem Zeitraum
• Tiefststand der Aktie in diesem Zeitraum
• Mittlerer Kurs in diesem Zeitraum (d.h. arithmetisches Mittel der n Einträge)
Für die Berechnung von Höchststand, Tiefststand und Mittelwert soll dazu jeweils
eine Methode implementiert werden.
b) (etwas schwieriger!) Conny Cash überlegt sich, wie viel Geld sie durch Kauf und
Verkauf einer Aktie der Insolvo.com AG in diesem Zeitraum hätte verdienen
können. D.h. an welchem Tag hätte sie die Aktie kaufen und wann hätte sie sie
wieder verkaufen müssen, um einen maximalen Kursgewinn (= Differenz
zwischen Verkaufs- und Kaufkurs) zu erreichen? Erweitern Sie das Programm von
oben so, dass es den Kauftag, den Verkaufstag und den maximalen Kursgewinn



das was ich probiert habe ist das da!!!

Java:
import javax.swing.JOptionPane;


public class Aufgabe40 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		
		String anzahl_n_eingeben= OptionPane.showInputDialog(null, "Anzahl Kurswert:");
		float anzahl_n = Integer.parseInt(anzahl_n_eingeben);
		String wert_n_eingeben=OptionPane.showInputDialog (null, "Kurswert eingeben:");
		float wert_n =Integer.parseInt(wert_n_eingeben);
		
		public static int max (float anzahl_n, float wert_n){
			
			
				int max =0;
				max = Math.max (float  anzahl_n, float wert_n);
				System.out.println("Maximum wert ist:"+ max);
				
			
			
		}
		public static int min (float anzahl_n, float wert_n){
			
				int min =0;
				min=Math.min(float anzahl_n, float wert_n);
				System.out.println("Minimum Wert ist:" + min);
			
			
			
		}
		public static  int mittelwert (float anzahl_n, float wert_n){
				
				int mittel=0;
				mittel=max-min;
				System.out.println("Mittelwert ist: "+mittel); 
			
			
		}
	}

}
 
Zuletzt bearbeitet von einem Moderator:

SvenK

Aktives Mitglied
Hast du das jetzt per Hand eingetippt oder aus Eclipse kopiert? Weil das wird nie und nimmer copiliert...

1. Du versuchst innerhalb einer Methode (main) weitere Methoden zu definieren. Das kann natürlich nicht gehen. Jede Methode steht unterhalb der Klasse, der Methodenkörper durch { } abgegrenzt.

2. Wenn deine Methoden einen Rückgabewert deklariert bekommen, muss auch einer mit return zurückgegeben werden.
Java:
// mit Rückgabewert
public static float max1(float anzahl_n, float wert_n) {
	float max = Math.max(anzahl_n, wert_n);
	return max;
}

// ohne Rückgabewert
public static void max2(float anzahl_n, float wert_n) {
	float max = Math.max(anzahl_n, wert_n);
	System.out.println("Maximum wert ist:" + max);
}


3. Rufst du eine Methode auf, übergibst du ihr die gewünschten Parameter OHNE Angabe des Datentyps. Datentypen gibt man nur an, wenn man eine Variable bzw. eine Methode deklariert
Java:
// FALSCH
float max = Math.max(float anzahl_n, float wert_n);

//richtig
float max = Math.max(anzahl_n, wert_n);

Erstmal die gröbsten Schnitzer. Was ist dann jetzt eigentlich dein Problem, wo du nicht weiterkommst?


EDIT
Deiner jetzige Klasse mal in compilierbarer Form
Java:
import javax.swing.JOptionPane;

public class Aufgabe40 {

	public static void main(String[] args) {

		String anzahl_n_eingeben = JOptionPane.showInputDialog(null,
				"Anzahl Kurswert:");
		float anzahl_n = Integer.parseInt(anzahl_n_eingeben);
		String wert_n_eingeben = JOptionPane.showInputDialog(null,
				"Kurswert eingeben:");
		float wert_n = Integer.parseInt(wert_n_eingeben);

	}

	public static float max(float anzahl_n, float wert_n) {
		float max = Math.max(anzahl_n, wert_n);
		return max;
	}

	public static float min(float anzahl_n, float wert_n) {
		float min = Math.min(anzahl_n, wert_n);
		return min;
	}

        // irgendwie stimmt die Berechnung hier noch nich wirklich, oder?
	public static float mittelwert(float anzahl_n, float wert_n) {
		float mittel = max(anzahl_n, wert_n) - min(anzahl_n, wert_n);
		return mittel;
	}

}
 
Zuletzt bearbeitet:

SvenK

Aktives Mitglied
Am besten immer sobald man eine geschweifte Klammer aufmacht, diese sofort wieder schliesen und dann erst den code dazwischen schreiben. Ansonsten gibt es schnell Klammersalat

Wobei Eclipse dich dabei unterstützt: { schreiben, Enter drücken, voilá
 

Evolver

Bekanntes Mitglied
Du hast aber noch einige Fehler im Programm:

1. Es wird nur ein Kurswert eingelesen, und nicht n.
2. Die Anzahl sollte ganzzahlig sein ... man kann ja nicht 2.5 Werte eingeben. ;)
3. So wie du den Kurswert jetzt einliest, kann er nur ganzzahlig abgebildet werden ( Integer.parseInt( wert ) ). So als Tipp: Es gibt nicht nur die Klasse Integer.
 

bigjay87

Mitglied
also ich hab einem freund aus der klasse was gemacht nur ich will mehrer werte aufeinmal eingeben und dann min max mittelwert ausgeben lassen nur bei mir ist das ich nach jeder werteingabe wieder der text bitt wert eingeben kommT!!!hier der code

import java.util.Scanner;

public class Aufgabe40 {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner s = new Scanner(System.in);

int max = 0;
int min = 0;
double mittelwert = 0;
double summe = 0;

int i = 0;

int nächste = 0;

boolean erste = true;
do {
System.out.println("Geben Sie Kurswert und Anzahl an");

nächste = s.nextInt();


if (nächste != 0) {
summe = summe + nächste;

if (nächste > max)
max = nächste;
if (erste) {
min = nächste;
erste = false;
} else {
if (nächste < min)
min = nächste;
}
i++;
}

} while (nächste != 0);

mittelwert = summe / i;

System.out.println("Maximum: " + max + ", Minimum: " + min
+ ", Mittelwert: " + mittelwert);

}
}

also die aufgabe soll einen kurswert einer aktie sein bei b) muss ich min max mittelwert für mehrere tage eingeben wie geht das?! bin total neuling

b) (etwas schwieriger!) Conny Cash überlegt sich, wie viel Geld sie durch Kauf und
Verkauf einer Aktie der Insolvo.com AG in diesem Zeitraum hätte verdienen
können. D.h. an welchem Tag hätte sie die Aktie kaufen und wann hätte sie sie
wieder verkaufen müssen, um einen maximalen Kursgewinn (= Differenz
zwischen Verkaufs- und Kaufkurs) zu erreichen? Erweitern Sie das Programm von
oben so, dass es den Kauftag, den Verkaufstag und den maximalen Kursgewinn
 

bigjay87

Mitglied
hey mein erstes problem hab ich gelöst dummheit :D aber die b) kein plan kann irgendwie jemand miir weiter helfennn
 

bigjay87

Mitglied
import javax.swing.JOptionPane;

public class Aufgabe40 {

public static void main(String[] args) {

String anzahl_kurswerte = JOptionPane.showInputDialog(null,"Anzahl Kurswerte eingeben","Eingabe",1);
int n = Integer.parseInt(anzahl_kurswerte);
double kurswerte[] = new double [n];
String kurswert_eingabe[] = new String [n];
int tag = 1;

for(int x = 0; x < n; x++){
kurswert_eingabe[x] = JOptionPane.showInputDialog(null, "Kurswert für Tag" +tag,"Eingabe",1);
tag++;
kurswerte[x] = Double.parseDouble(kurswert_eingabe[x]);
}
double[] maximum = max(kurswerte);
double[] minimum = min(kurswerte);
double[] durchschnitt = mittel(kurswerte);
double[] differenz = diff(kurswerte);
JOptionPane.showMessageDialog(null, "Höchster Kurswert:" +maximum[0] +"an Tag" +maximum[1]+
"\n Niederster Kurswert: " +minimum[0] +"an Tag" +minimum[1] +
"\n Mittlerer Kurswert: " +schnitt+
"\n \n Maximaler Gewinn durch Kauf an Tag" +differenz[1] +"\n und Verkauf an Tag" +differenz[2] +
"\n Der maximale Kursgewinn beträgt: " +differenz[0],"Ausgabe",1);

public static double[] max(double kurswerte[]) {
double ergebnis[] = new double[2];
for (int i = 0; i < kurswerte.length; i++ ){
if(kurswerte > ergebnis[0]){
ergebnis[0] = kurswerte; ergebnis[1] = i+1;
}
}
return ergebnis;
}
public static double[] min(double kurswerte[]) {
double ergebnis[] = max (kurswerte);
for (int i = 0; i < kurswerte.length; i++) {
if(kurswerte < ergebnis[0]){
ergebnis[0] = kurswerte; ergebnis[1] = i+1;
}
}
return ergebnis;
}

public static double mittel(double kurswerte[]){
double ergebnis = 0;
double durchschnitt = 0;
for (int i = 0; i < kurswerte.length; i++){
ergebnis = ergebnis + kurswerte;
}
durchschnitt = ergebnis / kurswerte.length;
return durchschnitt;
}

public static double[] diff(double kurswerte[]){
double maximum[] = {0,0,0,};
double diff = 0;
for (int i= 0; i < kurswerte.length; i++){
for (int j=i; j < kurswerte.length; j++) {
if (kurswerte[j] > kurswerte ){
diff = kurswerte[j] - kurswerte;
}
if (diff > maximum[0]){

}

}
}
}
}


was fehlt daa noch maannn
 

bigjay87

Mitglied
verdammt man da sind 3 fehler eins bei
double[] durchschnitt = mittel(kurswerte);
public static double[] diff(double kurswert[]){
und
differenz[0],"Ausgabe",1);

kein plan mann
 

HLX

Top Contributor
1. Die Variable 'durchschnitt' ist als Array von double-Werten deklariert. Die Methode 'mittel' liefert jedoch lediglich einen einzelnen double-Wert. Diese Zuweisung funktioniert nicht.

2. Die Methode 'diff' ist mit einem Rückgabetyp 'Array von double-Werten' deklariert. Du hast allerdings keine Rückgabe (return) von Werten vorgesehen.
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben