Zum Inhalt springen

Durschnittswert von Zahlen errechnen?


Azubi22

Empfohlene Beiträge

Du könntest alle Zahlen in einen String schreiben (mit nem Semikolon als Trennzeichen)

mit der Methode split(";") kannst du daraus ein Array machen, welches alle deine Zahlen enthält.

dann kannst du alle Elemente des Array zusammenrechnen (könnte mir da ne schleife vorstellen) und durch die Länge des Arrays teilen (mit dem Attribut length des Arrays)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Und?

Es ist egal, ob die Zahlen auf einmal kommen oder wie auch immer.

Es wird einfach eine Schleife gebaut, die einen Zähler hat und alle Zahlen nacheinander aufaddiert. Danach teilst Du durch den Zähler und ende.

<edit>

bei Deiner Lösung muss man die Zahlen in Strings verpacken, in einen Container packen, diesen Container auslesen und die Strings wieder zu Zahlen machen, die man addiert.

In meinen Augen ein ziemlicher - und unnötiger Overhead...

</edit>

Peter

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich brauch nochmal eure Hilfe

Ich habe zwar nach meinem Verständniss die Aufgabe gelößt aber nicht nach Meinung von meiner Ausbilderin, welche meinte:

Die Aufgabenstellung war, daß eine beliebige Anzahl von Werten

eingelesen werden soll, dein Programm fragt diese Anzahl allerdings vorher

ab. Also wiederhole ich mich nochmal: Ich wollte, daß du das ganze mit dem

String Array löst. Dabei kann der Benutzer eine beliebige Anzahl von Werten

angeben, es ist Aufgabe des Programmes die Anzahl herauszufinden.

Ich weiß jetzt allerdings nicht wie ich das machen soll, da ich von String Arrays kein wirkliches Wissen haben.

Hier ist mein aktuelles Programm:

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.BufferedReader;

public class Durschnittswert

{

public static void main(String[] args)

{

double Summe = 0;

int ZahlenAnzahl=0;

int Zahl= 0;

String Eingabe;

String Bla;

BufferedReader console = new BufferedReader (new InputStreamReader(System.in));

try

{

System.out.println("Wieviele Zahlen möchten Sie eingeben?: ");

Eingabe = console.readLine();

ZahlenAnzahl = Integer.parseInt(Eingabe);

}

catch(IOException e)

{

System.out.print("Es ist ein Fehler aufgetreten. Abruch!");

System.exit(2);

}

for (int i=1; i<=ZahlenAnzahl; i++)

{

try

{

System.out.println("Bitte geben Sie die "+ i +"te Zahl ein: ");

Bla = console.readLine();

Zahl = Integer.parseInt(Bla);

}

catch(IOException e)

{

System.out.print("Es ist ein Fehler aufgetreten. Abruch!");

System.exit(1);

}

Summe = Summe+Zahl;

}

double Ergebnis = Summe/ZahlenAnzahl;

System.out.println( "Durchschnittswert: " + Ergebnis );

}

}

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von Azubi22

Ich wollte, daß du das ganze mit dem

String Array löst.

Moin,

das was sie will, ist noch viel einfacher als das was du bis jetzt gemacht hast.

public static void main(String[] args)

Hier wird der main Methode ein String Array mit Werten aus der Kommandozeile übergeben.

Also liefert:

java DeinProgramm 1 2 3 4 5

ein Array args mit den 5 Strings 1 - 5.

Dieses Array kannst du nun in einer for oder while Schleife durchlaufen, die Werte summieren und zum Schluß durch die Anzahl teilen. Fertig!

Gruß Jaraz

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich hab jetzt nochmal ein Programm gefunden was meinen Anforderungen in etwa entspricht.

Nur weiß ich jetzt nicht wo die Zahlen eingelesen werden, denn wenn ich das Programm starte kommt nur "NaN" auf der Komandozeile.

1 public class Durchschnitt {

2

3 public static void main( String[] args ) {

4

5 int anzahlWerte = args.length;

6 double sum = 0;

7 for( int i=0; i < anzahlWerte; i++ ) {

8

9 try {

10 sum += Double.parseDouble( args );

11 }

12 catch( NumberFormatException e ) {

13 System.out.println( e.toString() );

14 System.exit(1);

15 }

16 }

17

18 // Ausgabe

19 double ergebnis = sum/anzahlWerte;

20 System.out.println( "Durchschnittswert: " + ergebnis );

21

22 }

23 }

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von Azubi22

Ich hab jetzt nochmal ein Programm gefunden was meinen Anforderungen in etwa entspricht.

Nur weiß ich jetzt nicht wo die Zahlen eingelesen werden, denn wenn ich das Programm starte kommt nur "NaN" auf der Komandozeile.

Probiers mal mit der folgenden Erweiterung in Zeile 4:

if(args.length = 0){

System.out.println("Bitte eine oder mehrere Zahlen als Parameter eingeben");

System.out.println("Zum Beispiel: java Durchschnitt 10 23 1");

}

else if(args.length != 0){

.... hier dein Quelltext ...

In Zeile 21 musst du noch folgendes Hinzufügen:

}

Mit dieser Erweiterung überprüfst du, ob überhaupt übergabeparameter mit

eingegeben wurden!

Das knn man natürlich noch erweitern, indem die Parameter noch dahingehend

überprüft werden, ob sie auch tatsächlich Zahlen sind!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von kingofbrain

Und?

Es ist egal, ob die Zahlen auf einmal kommen oder wie auch immer.

Es wird einfach eine Schleife gebaut, die einen Zähler hat und alle Zahlen nacheinander aufaddiert. Danach teilst Du durch den Zähler und ende.

<edit>

bei Deiner Lösung muss man die Zahlen in Strings verpacken, in einen Container packen, diesen Container auslesen und die Strings wieder zu Zahlen machen, die man addiert.

In meinen Augen ein ziemlicher - und unnötiger Overhead...

</edit>

Peter

Du wirst recht haben.

Bin halt auch nur ein dummer kleiner Telekom-Azubi *grins*

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...