ERLEDIGT
NEIN
NEIN
ANTWORTEN
5
5
ZUGRIFFE
1074
1074
EMPFEHLEN
-
hallo!
ich muss in java eine zeitreihe implementieren, und zwar müsste ich zunächst eine .txt - datei nach folgendem schema einlesen:
jahr monat aktienkurs
1998 06 8952.00
1998 07 8883.30
1998 08 7539.10
1998 09 7842.60
diese soll dann ausgegeben werden und es soll auch der mittelwert, die varianz und der median berechnet werden.
kann mir hier jemand helfen bzw. einen tipp geben wie ich mein problem am besten lösen kann?
vielen dank im voraus für eure hilfe!
-
18.10.04 15:16 #2
- Registriert seit
- Mar 2001
- Ort
- München
- Beiträge
- 4.785
Wo genau hängst du denn?
Zitat von joez
Erst wenn der letzte Programmierer eingesperrt...
...und die letzte Idee patentiert ist, werdet ihr merken, dass Anwälte nicht programmieren können.
-------------------
chris: hey Tom hast du eigentlich ne Freundin
jdar: ich bin tutorials.de Mod!
-
hallo!
danke für die schnelle antwort!
also, ich hab mich hier im forum schon etwas umgesehen und hab in einem thread untenstehenden code gefunden. nur kommt immer eine fehlermeldung wenn ich versuche kommazahlen einzulesen, hab schon versucht int durch float zu ersetzen, hat aber nichts gebracht.
weiters würde mich interessieren wie ich mittelwert, varianz und median der kurse, also nur einer spalte des arrays, auslesen kann.
vielen dank im voraus für eure antworten!
auszug aus thread http://www.tutorials.de/forum/showthread.php?t=173447
[i]import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import java.util.StringTokenizer;
public class FileCruncher {
public static void main(String[] args) {
try {
BufferedReader br =
new BufferedReader(new FileReader("c:/Numbers.txt"));
List list = new ArrayList();
String line = null;
while ((line = br.readLine()) != null) {
StringTokenizer tokenizer = new StringTokenizer(line, " ");
int[] iA = new int[tokenizer.countTokens()];
int cnt = 0;
while (tokenizer.hasMoreElements()) {
iA[cnt++] =
Integer.parseInt((String) tokenizer.nextElement());
}
list.add(iA);
}
for(Iterator iter = list.iterator();iter.hasNext()
{
int[] iA = (int[])iter.next();
for (int i = 0; i < iA.length; i++) {
System.out.print(iA + " ");
}
System.out.println();
}
br.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Numbers.txt
1880 1881 1860 2332
1882 1882 1861 2321
1882 1882 1861 2321 1882 1882 1861 2321
1882 1882 1861 2321
1882 1882 1861 2321 1882 1882 1861 2321 1882 1882 1861 2321
1882 1882 1861 2321
1882 1882 1861 2321
1882 1882 1861 2321 1882 1882 1861 2321
82 18 181 231
-
18.10.04 16:34 #4
- Registriert seit
- Mar 2001
- Ort
- München
- Beiträge
- 4.785
Code :1
Integer.parseInt((String) tokenizer.nextElement());
einen Integer aus einer komma zahl zu parsen ist auch kein guter Rat.
Ich bitte dich dennoch um 2 Dinge:
a) Bitte selber programmieren, und wenn es Probleme gibt diese hier posten, wo es genau harkt. Wir sind nicht dafür da dir deine Aufgabe komplett abzunehmen.
b) Bitte les dir den Punkt 12 unter http://www.tutorials.de/netiquette.html durch.Erst wenn der letzte Programmierer eingesperrt...
...und die letzte Idee patentiert ist, werdet ihr merken, dass Anwälte nicht programmieren können.
-------------------
chris: hey Tom hast du eigentlich ne Freundin
jdar: ich bin tutorials.de Mod!
-
18.10.04 16:52 #5
- Registriert seit
- Jun 2002
- Ort
- Saarbrücken (Saarland)
- Beiträge
- 9.886
- Blog-Einträge
- 29
...hast du ein Glück, dass ich langeweile habe:
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 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
package de.tutorials; import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; import java.util.List; public class TimeSeriesAnalyzer { private List list; private int rowCnt; private double average; private double variance; private double median; public static void main(String[] args) { new TimeSeriesAnalyzer().analyze(new File("c:/Reihe.txt")); } private void analyze(File file) { try { BufferedReader br = new BufferedReader(new FileReader(file)); list = new ArrayList(); String line; while ((line = br.readLine()) != null) { System.out.println(line); list.add(line.split(" ")); rowCnt++; } calcAverage(list); calcVariance(list); calcMedian(list); br.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } private void calcMedian(List list2) { // Median bei geraden n // Mittelwert der beiden "mittleren" Werte // (data[n/2] + data[n/2+1]) / 2 if (rowCnt % 2 == 0) { median = (Double.parseDouble(((String[]) list.get((rowCnt-1) / 2))[2]) + Double .parseDouble(((String[]) list.get((rowCnt-1) / 2 + 1))[2])) / 2; } else { // Median bei ungeradem n // data[(n+1)/2] median = Double .parseDouble(((String[]) list.get((rowCnt) / 2))[2]); } System.out.println("Median: " + median); } private void calcVariance(List list2) { /* _n * v^2 = 1/(n-1) * \ (data[i] - average)^2 * /_i=1 * */ for (int i = 0; i < rowCnt; i++) { variance += Math.pow(Double .parseDouble(((String[]) list.get(i))[2]) - average, 2); } variance *= 1.0 / (rowCnt - 1.0); System.out.println("Variance: " + variance); } private void calcAverage(List list2) { /* * _n * a = 1/n * \ data[i] * /_i = 0 * */ for (int i = 0; i < rowCnt; i++) { average += Double.parseDouble(((String[]) list.get(i))[2]); } average /= rowCnt; System.out.println("Average: " + average); } }
Ergibt für:
Reihe.txt:
Die Ausgabe:1998 06 8952.00
1998 07 8883.30
1998 08 7539.10
1998 09 7842.60
Code :1 2 3 4 5 6 7 8 9 10 11 12 13
1998 06 8952.00 1998 07 8883.30 1998 08 7539.10 1998 09 7842.60 Average: 8304.25 Variance: 517818.0699999994 Median: 8211.2
HTH
Gruß TomJava rocks!
How to become a good Java Programmer?
Does IT in Java and .Net
The only valid measurement of code quality: WTFs / minute
Blog
Xing
Twitter
-
Herzlichen Dank!
Ähnliche Themen
-
Text Datei einlesen und ausgeben
Von sakizzo im Forum JavaAntworten: 7Letzter Beitrag: 10.03.10, 20:19 -
Daten aus php Datei einlesen und ausgeben
Von Pearl81 im Forum PHPAntworten: 0Letzter Beitrag: 29.08.08, 06:19 -
Trace-File einlesen, nach Strings suchen, in Datei ausgeben
Von orffyre im Forum C/C++Antworten: 14Letzter Beitrag: 01.06.08, 16:23 -
Einlesen von mehreren XML files und ausgeben in txt datei
Von theone101 im Forum JavaAntworten: 6Letzter Beitrag: 27.02.08, 06:49 -
Datei in Array einlesen - in ListView ausgeben
Von pipesox im Forum Visual Basic 6.0Antworten: 2Letzter Beitrag: 02.12.04, 15:27





Zitieren

Login





