Mittelwert

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
class Mittel
{
public static void main(String args[])
{
int n,i;
double summe,mittelwert;
summe=0;
n=Integer.parseInt(args[0]);
for(i=1;i<=n;i++)
{ summe=summe+Double.parseDouble(args);
}
mittelwert=summe/n;
System.out.println("Mittelwert:"+mittelwert);
}
}

das ist der Fehler den ich beim ausführen erhallte


>javac Mittel.java
>Exit code: 0
>java Mittel
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at Mittel.main(Mittel.java:8)
>Exit code: 1
 

CyD

Mitglied
1. Benutz bitte die CODE-Tags
2. Du musst dem Programm die nötigen Argumente args[] mitgeben.
zb:
java Mittel 5 6 7 2 1 4

Versuchsmal!

gruß
CyD
 

Wolfgang Lenhard

Bekanntes Mitglied
Offensichtlich übergibts Du in args[0] die Anzahl an Werten. Das brauchst Du nicht. Lass n lieber ganz weg und schreibe in der for-Schleife:
-> for(i=0;i<=args.length;i++)
Entsprechend auch mittelwert=summe/n; in mittelwert=summe/args.length;
 
G

Guest

Gast
Code:
class Mittel 
{
	public static void main(String args[])
	{
		int n,i;
		double summe,mittelwert;
		summe=0;
		n=Integer.parseInt(args[0]);
		for(i=0;i<=args.length;i++)
		{	summe=summe+Double.parseDouble(args[i]);
		}
	mittelwert=summe/n;
	System.out.println("Mittelwert:"+mittelwert);
	}
}

habe leider noch immer den selben Fehler

>javac Mittel.java
>Exit code: 0
>java Mittel
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at Mittel.main(Mittel.java:8)
>Exit code: 1
 
G

Guest

Gast
Code:
class Mittel 
{
	public static void main(String args[])
	{
		int n,i;
		double summe,mittelwert;
		summe=0;
		n=Integer.parseInt(args[0]);
		for(i=0;i<=args.length;i++)
		{	summe=summe+Double.parseDouble(args[i]);
		}
	mittelwert=summe/args.length;
	System.out.println("Mittelwert:"+mittelwert);
	}
}

>javac Mittel.java
>Exit code: 0
>java Mittel
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at Mittel.main(Mittel.java:8)
>Exit code: 1


wo könnte den der Fehler noch sein?
 

musiKk

Top Contributor
Code:
for(i=0;i<args.length;i++)
statt
Code:
for(i=0;i<=args.length;i++)
 

musiKk

Top Contributor
Das ist halt nur die halbe Wahrheit. Wenn in der for-Schleife auf Gleichheit getestet wird, gibts immer noch eine Exception. Mit der Korrektur in keinem Fall.
 

Schandro

Top Contributor
^^ hab ja nix gegen deine Verbesserung gesagt, aber der Gast muss halt beide machen damits geht. (sieht man ja an der 0 hinter arrayIndexout...)
 
G

Gast v2.0

Gast
kannst ja auch noch abfragen lassen ob argumente mit übergeben wurden...

Code:
...
if (args.length == 0) {
    System.out.println("Class Mittel: keine Argumente übergeben");
}
...
 
G

Guest

Gast
musiKk hat gesagt.:
Code:
for(i=0;i<args.length;i++)
statt
Code:
for(i=0;i<=args.length;i++)

danke,bekomme leider den selben Fehler
 
G

Guest

Gast
Code:
class Mittel 
{
	public static void main(String args[])
	{
		int n,i;
		double summe,mittelwert;
		summe=0;
		n=Integer.parseInt(args[0]);
		if (args.length == 0)
			{
				System.out.println("Class Mittel: keine Argumente übergeben");
			}
		for(i=0;i<args.length;i++)
		{	summe=summe+Double.parseDouble(args[i]);
		}
	mittelwert=summe/args.length;
	System.out.println("Mittelwert:"+mittelwert);
	}
}

Also ich bekomme den selben Fehler

Frage

was amche ich falsch?

Also ich möchte die Zahlen von der Tastatur einlesen????

nur was mache ich falsch???????????
 

musiKk

Top Contributor
Alles. Und dadurch, dass du jetzt drei Posts in fuenf Minuten rausballerst, wirst du die Hilfsbereitschaft hier nicht gross foerdern. Ich bin jetzt jedenfalls raus...
 
S

SlaterB

Gast
> was amche ich falsch?

du sprichst nicht in ganzen Sätzen, um WELCHEN Fehler gehts?
auch ein nicht gerade selbstverständlicher Blick auf die vorherigen Postings läßt mir kein Licht aufgehen,

wenn du Parameter des Programmes verarbeiten willst,
dann ist doch offensichtlich immens wichtig, welchen Befehl du zum Programmstart eintippst,
wieso schreibst du den nicht?

starte das Programm, wie schon geschrieben wurde, z.B. mit
java Mittel 5 6 7 2 1 4
 
G

Guest

Gast
SlaterB hat gesagt.:
> was amche ich falsch?

du sprichst nicht in ganzen Sätzen, um WELCHEN Fehler gehts?
auch ein nicht gerade selbstverständlicher Blick auf die vorherigen Postings läßt mir kein Licht aufgehen,

wenn du Parameter des Programmes verarbeiten willst,
dann ist doch offensichtlich immens wichtig, welchen Befehl du zum Programmstart eintippst,
wieso schreibst du den nicht?

starte das Programm, wie schon geschrieben wurde, z.B. mit
java Mittel 5 6 7 2 1 4

sorry wenn ich dich falsch verstanden haben sollte, also meinst du so ich für den Wert des Mittelwert die Werte 5,6,7,8 übergeben?
 
G

Gast

Gast
>javac Mittel.java
>Exit code: 0
>java Mittel
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at Mittel.main(Mittel.java:8)
>Exit code: 1
das ist der Fehler den ich bekomme
 
G

Guest

Gast
Habe es etwas umgeändert,aber es klappt trotzdem nicht



Code:
class Mittel 
{
	public static void main(String args[])
	{
		int n,i;
		int u=5;
		int g=6;
		int j=7;
		double summe,mittelwert;
		summe=0;
		n=u+g+j;
		n=Integer.parseInt(args[2]);
		for(i=0;i<n;i++)
		{	summe=summe+Double.parseDouble(args[i]);
		}
		if (args.length == 0)
			{
				System.out.println("Class Mittel: keine Argumente übergeben");
			}
	mittelwert=summe/n;
	System.out.println("Mittelwert:"+mittelwert);
	}
}
 
S

SlaterB

Gast
Gast hat gesagt.:
>java Mittel
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at Mittel.main(Mittel.java:8)
gut dass du das so postest,

aber nun zum zweiten Mal von mir, zum mindestens dritten Male in diesem Thread:

schreibe nicht
java Mittel
sondern
java Mittel 3 4 5 6 700

ist doch leicht?
 
G

Gast

Gast
Mal eine blöde Frage ist es nicht besser.

Die Werte in einem Array zu speichern???

Mit welchen Methoden kann man den eine Zahl von der Tastatur einlesen????????
 
G

Guest

Gast
habe es umgeändert.
also mein Programm sieht jetzt so aus

bekomme beim compilieren diesen Fehler

was heißt den das?

>javac Mittel.java
Mittel.java:1: '{' expected
class Mittel 4 5 6 700
^
1 error
>Exit code: 1






Code:
class Mittel 4 5 6 700
{
	public static void main(String args[])
	{
		int n,i;
		double summe,mittelwert;
		summe=0;
		n=Integer.parseInt(args[0]);
		for(i=1;i<args.length;i++)
		{	summe=summe+Double.parseDouble(args[i]);
		}
		mittelwert=summe/args.length;
	System.out.println("Mittelwert:"+mittelwert);
	}
}
 
S

SlaterB

Gast
das heißt, dass nach dem Namen einer Klasse ein { stehen soll und nicht komische Zahlen,
wie kommst du denn auf die Idee? ;)


ich meinte den Befehl, den man in der Konsole zum Starten des Programms verwendet,
nicht dass du den Quellcode der Java-Klasse ändern sollst,

mit derartigen Vorgehen bist du wirklich weit vom Programmieren entfernt
 
G

Gast

Gast
Ich verstehe was du ,meinst,aber wenn mein Programm beim ausführen einen Fehle ranzeigt so kann ich den Werte ja nicht eingeben verstehst du?
 
S

SlaterB

Gast
nein, das Eingeben der Werte findet ja bisher statt, bevor das Programm überhaupt läuft,

natürlich könnte man auch später eingeben, aber das wäre ein ganz anderes Programm und bisher nicht Thema dieses Topics
 
G

Guest

Gast
Code:
class Mittel 
{
	public static void main(String args[])
	{
		int n,i;
		double summe,mittelwert;
		summe=0;
		n=Integer.parseInt(args[0]);
		for(i=1;i<args.length;i++)
		{	summe=summe+Double.parseDouble(args[i]);
		}
		mittelwert=summe/args.length;
	System.out.println("Mittelwert:"+mittelwert);
	}
}

Das kommt beim Compilieren


>javac Mittel.java
>Exit code: 0

Das kommt wenn ich auf Build gehe

>javac *.java
Tester.java:7: array dimension missing
int[] a=new int[];
^
Tester.java:8: array dimension missing
int[] b=new int[];
^
Tester.java:9: '.class' expected
a=Integer.parseInt(args[]);
^
Tester.java:10: '.class' expected
b=Integer.parseInt(args[]);
^
4 errors
>Exit code: 1

Was könnte dne da nso falsch sein

mus sich da ein Aaray bilden?
 
S

SlaterB

Gast
von der Klasse Tester.java ist zum ersten Mal die Rede,
dessen Quellcode willst du posten aber über Compilerfehler dazu diskutieren?
dieses Vorgehen ist mir unverständlich

> int[] a=new int[];
ist kein ordentlicher Java-Code,
jedes Tutorial/ Lehrbuch und sogar die Fehlermeldung verraten eindeutig, dass man z.B.
int[] a=new int[5];
schreiben muss

die weiteren Fehlermeldungen sind etwas unverständlich, da Java an dieser Stelle die fehlerhalt definierten Variablen a & b gar nicht kennt,

> Integer.parseInt(args[]);
ist aber in jedem Fall wieder kein richtiger Code

schau dir doch mal die entsprechende Stelle in der Mittel-Klasse an, da steht doch noch was zwischen
Integer.parseInt(args[ und ]);
oder?


wenn a ein int-Array ist, dann kannst du in der Variablen selber übrigens keinen int speichern, sondern höchstens in einem der Felder des Arrays,

-----------


du solltest nicht verschiedene Dinge mischen,
übe erstmal mit Arrays zu hantieren (Lehrbuch!!)
übe dann in einem anderen Programm das Integer.parseInt (Lehrbuch!!)
übe dann in einem anderen Programm mit den Parametern der main-Methode umzugehen (String args[], Lehrbuch!!)

dann irgendwann langsam alles zusammenbringen,
ich sage an dieser Stelle auch tschüss,
 
G

Guest

Gast
Hier ist mien Programm

Code:
class Mittelwert1
{
	public static void main(String args[])
	{
		double sum=0,Mittelwert=0,w[];
		int i;/*VaRIble von der Tastatur zu lesen*/
		int n;/*Hilfsvariabel*/
		System.out.println("Bitte geben sie eine Zahl für i ein:");
		i=IO1.einint();/*Zahl wird von der Tastatur einlesen*/
		w=new double[i+1];
		
		for(n=0;n<=i-1;n++)
		{
			System.out.println("Geben sie ihre Werte bitte ein");
			w[n]=IO1.eindouble();/*Werden die Werte einegegeben*/
			sum=sum+w[n];/*Summe wird berechnet*/
			Mittelwert=sum/i;/*Mittelwert wird berechnet*/
			
		}
			System.out.println("Ihr i lautet:"+i);/*Ausgabe der Anzahl*/
			System.out.println("Ihre sum lautet:"+sum);/*Summe der Werte*/
			System.out.println("Ihr Mittelwert lautet:"+Mittelwert);/*Ergebniss vom Mittelwert*/	
	}		
}

Hier die Ergebnisse

Bitte geben sie eine Zahl f³r i ein:
3
Geben sie ihre Werte bitte ein
12.4
Geben sie ihre Werte bitte ein
34.5
Geben sie ihre Werte bitte ein
45.6
Ihr i lautet:3
Ihre sum lautet:92.5
Ihr Mittelwert lautet:30.833333333333332
 

CyD

Mitglied
:applaus:
hat zwar nen Monat gedauert, aber so wie es aussieht scheinst du mit deinem "Ergebnis" zufrieden zu sein. :wink:

Nur ne Frage am Rande: Benutzt du eine IDE (zb. Eclipse) oder compilierst du über die Console (zb. cmd.exe/terminal)?
Wenn die Antwort IDE lautet, machs lieber mit der Console ;-)

gruss
CyD
 
S

SlaterB

Gast
dieser Programmstil ist hier im Forum doch langsam so bekannt,
da musst du auch nicht mehr als gast posten ;)
 

Leroy42

Top Contributor
Verbesserungsvorschlag:

Statt

Code:
for(n=0;n<=i-1;n++) 
      { 
         System.out.println("Geben sie ihre Werte bitte ein"); 
         w[n]=IO1.eindouble();/*Werden die Werte einegegeben*/ 
         sum=sum+w[n];/*Summe wird berechnet*/ 
         Mittelwert=sum/i;/*Mittelwert wird berechnet*/ 
          
      }

besser

Code:
for(n=0;n<i;n++) 
      { 
         System.out.println("Geben sie den "+(n+1)+". Wert ein"); 
         w[n]=IO1.eindouble();/*Werden die Werte einegegeben*/ 
         sum=sum+w[n];/*Summe wird berechnet*/ 
          
      }
Mittelwert=sum/i;/*Mittelwert wird berechnet*/
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Erste Schritte Array Mittelwert Methode Programmieren Java Basics - Anfänger-Themen 5
P Mittelwert Arrayelemente berechnen Fehler Java Basics - Anfänger-Themen 5
J Variablen arithmetischen Mittelwert berechnen Java Basics - Anfänger-Themen 5
M Erste Schritte Mittelwert berechnen -> Methode in der Methode? Java Basics - Anfänger-Themen 14
P Erste Schritte Mittelwert zeitlich abhängiger Werte Java Basics - Anfänger-Themen 1
R Werte aus Array addieren und Mittelwert bilden Java Basics - Anfänger-Themen 2
G Array Mittelwert berechnen, wie? Java Basics - Anfänger-Themen 8
M Methoden Mittelwert rationaler Zahlen mittels Methode Java Basics - Anfänger-Themen 4
V Mittelwert berechnen Java Basics - Anfänger-Themen 31
F Gewichteter Mittelwert über eine Zeitperiode Java Basics - Anfänger-Themen 3
N Erste Schritte Mittelwert in Array Java Basics - Anfänger-Themen 4
P Mittelwert rekursiv Java Basics - Anfänger-Themen 13
C Mittelwert berechnen Java Basics - Anfänger-Themen 5
L Brauch Mittelwert jeweils 3 Zahlen die durch 20 Wiederholungen geteilt werden Java Basics - Anfänger-Themen 17
K Frage wegen Mittelwert Java Basics - Anfänger-Themen 32
M Maximum, Minimum und Mittelwert berechnen Java Basics - Anfänger-Themen 25
B Notenauswertung: Einlesen der Anzahl, Bildung Mittelwert Java Basics - Anfänger-Themen 8
P Mittelwert, Datei einlesen. ich verzweifle Java Basics - Anfänger-Themen 3
N Mittelwert (fast fertig, nur noch 2 fehler ;-) ) Java Basics - Anfänger-Themen 14
M Programm soll n Zahlen von der Tastatur lesen(Mittelwert) Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Neue Themen


Oben