From 3e00dd39e6dc16e64306567123a61a2ed5353c75 Mon Sep 17 00:00:00 2001 From: Jan Bertram Date: Mon, 27 Nov 2023 15:55:10 +0100 Subject: [PATCH] resolves Issue: Einlesen der Datenpunkte in CSV-Datei --- Online-IDE-files/DataPoint.java | 22 +++++++++++++++++ Online-IDE-files/Labor.java | 35 ++++++++++++++++++++++++++++ Online-IDE-files/Start | 5 ++++ Online-IDE-files/daten.txt | 25 ++++++++++++++++++++ Online-IDE-json/PerzeptronLabor.json | 1 + 5 files changed, 88 insertions(+) create mode 100644 Online-IDE-files/DataPoint.java create mode 100644 Online-IDE-files/Labor.java create mode 100644 Online-IDE-files/Start create mode 100644 Online-IDE-files/daten.txt create mode 100644 Online-IDE-json/PerzeptronLabor.json diff --git a/Online-IDE-files/DataPoint.java b/Online-IDE-files/DataPoint.java new file mode 100644 index 0000000..b9e3406 --- /dev/null +++ b/Online-IDE-files/DataPoint.java @@ -0,0 +1,22 @@ +public class DataPoint { + private double x1; + private double x2; + private int label; // 0 für rot, 1 für grün + private String name; + + public DataPoint(double x1, double x2, int label, String name) { + this.x1 = x1; + this.x2 = x2; + this.label = label; + this.name = name; + } + + public String toString() { + String retStr = ""; + retStr += this.name + ": "; + retStr += this.label == 0 ? "rot, " : "grün, "; + retStr += "x1: " + String.valueOf(this.x1); + retStr += ", x2: " + String.valueOf(this.x2); + return retStr; + } +} diff --git a/Online-IDE-files/Labor.java b/Online-IDE-files/Labor.java new file mode 100644 index 0000000..5d34745 --- /dev/null +++ b/Online-IDE-files/Labor.java @@ -0,0 +1,35 @@ +/** + * Portierung des Perzeptron-Labors von Christoph Grässl für die Online-IDE. + * + * @author: Jan Bertram ( jbsoc@mailbox.org ) + */ +public class Labor { + ArrayList trainingset; + + public Labor() { + trainingset = new ArrayList<>(); + } + + public void ladeTrainingsdaten(String workspaceFilename) { + String fileAsString = Files.read(workspaceFilename); + String[] lines = fileAsString.split("\n"); + for (String line : lines) { + String[] items = line.split(";"); + // 0 Beschriftung, 1 Klasse, 2 x1, 3 x2 + if(items[0] != "Beschriftung") { // Zeile mit Beschriftung aussparen + double x1 = Double.valueOf(items[2]); + double x2 = Double.valueOf(items[3]); + int klasse = Integer.valueOf(items[1]); + String name = items[0]; + DataPoint dp = new DataPoint(x1, x2, klasse, name); + this.trainingset.add(dp); + } + } + } + + public void zeigeTrainingsdaten() { + for (DataPoint dp : this.trainingset) { + println(dp); + } + } +} diff --git a/Online-IDE-files/Start b/Online-IDE-files/Start new file mode 100644 index 0000000..57f7355 --- /dev/null +++ b/Online-IDE-files/Start @@ -0,0 +1,5 @@ +// Zum Testen, zeigeTrainingsdaten kann nach Abschluss +// eigentlich entfernt werden… +Labor lab = new Labor(); +lab.ladeTrainingsdaten("daten.txt"); +lab.zeigeTrainingsdaten(); diff --git a/Online-IDE-files/daten.txt b/Online-IDE-files/daten.txt new file mode 100644 index 0000000..d42e9e8 --- /dev/null +++ b/Online-IDE-files/daten.txt @@ -0,0 +1,25 @@ +Beschriftung;Klasse;Kalorien;Eiweiß +Erbsen;1;37;3 +Gurken;1;4;0 +Karotten;1;29;1 +Spinat;1;12;2 +Tomaten;1;16;1 +Apfel;1;49;0 +Aprikose;1;49;1 +Banane;1;70;1 +Wassermelone;1;12;0 +Aal;0;204;9 +Forelle;0;50;10 +Thunfisch;0;239;22 +Lachs;0;137;13 +Makrele;0;124;12 +Ente;0;192;15 +Pute;0;122;23 +Schwein;0;167;18 +Croissant;0;280;0 +Donut;0;295;3 +Semmel;0;276;7 +Toastbrot;0;326;10 +Weizenbrot;0;235;8 +Rührkuchen;0;430;6 +Roggenbrot;0;243;6 diff --git a/Online-IDE-json/PerzeptronLabor.json b/Online-IDE-json/PerzeptronLabor.json new file mode 100644 index 0000000..31ed63b --- /dev/null +++ b/Online-IDE-json/PerzeptronLabor.json @@ -0,0 +1 @@ +{"name":"PerzeptronLabor","modules":[{"name":"daten.txt","text":"Beschriftung;Klasse;Kalorien;Eiweiß\nErbsen;1;37;3\nGurken;1;4;0\nKarotten;1;29;1\nSpinat;1;12;2\nTomaten;1;16;1\nApfel;1;49;0\nAprikose;1;49;1\nBanane;1;70;1\nWassermelone;1;12;0\nAal;0;204;9\nForelle;0;50;10\nThunfisch;0;239;22\nLachs;0;137;13\nMakrele;0;124;12\nEnte;0;192;15\nPute;0;122;23\nSchwein;0;167;18\nCroissant;0;280;0\nDonut;0;295;3\nSemmel;0;276;7\nToastbrot;0;326;10\nWeizenbrot;0;235;8\nRührkuchen;0;430;6\nRoggenbrot;0;243;6","identical_to_repository_version":false},{"name":"Labor.java","text":"/**\n * Portierung des Perzeptron-Labors von Christoph Grässl für die Online-IDE.\n * \n * @author: Jan Bertram ( jbsoc@mailbox.org )\n */\npublic class Labor {\n ArrayList trainingset;\n\n public Labor() {\n trainingset = new ArrayList<>();\n }\n\n public void ladeTrainingsdaten(String workspaceFilename) {\n String fileAsString = Files.read(workspaceFilename);\n String[] lines = fileAsString.split(\"\\n\");\n for (String line : lines) {\n String[] items = line.split(\";\");\n // 0 Beschriftung, 1 Klasse, 2 x1, 3 x2\n if(items[0] != \"Beschriftung\") { // Zeile mit Beschriftung aussparen\n double x1 = Double.valueOf(items[2]);\n double x2 = Double.valueOf(items[3]);\n int klasse = Integer.valueOf(items[1]);\n String name = items[0]; \n DataPoint dp = new DataPoint(x1, x2, klasse, name);\n this.trainingset.add(dp);\n }\n }\n }\n\n public void zeigeTrainingsdaten() {\n for (DataPoint dp : this.trainingset) {\n println(dp);\n }\n }\n}","identical_to_repository_version":false},{"name":"DataPoint.java","text":"public class DataPoint {\n private double x1;\n private double x2;\n private int label; // 0 für rot, 1 für grün\n private String name;\n\n public DataPoint(double x1, double x2, int label, String name) {\n this.x1 = x1;\n this.x2 = x2;\n this.label = label;\n this.name = name;\n }\n\n public String toString() {\n String retStr = \"\";\n retStr += this.name + \": \";\n retStr += this.label == 0 ? \"rot, \" : \"grün, \";\n retStr += \"x1: \" + String.valueOf(this.x1);\n retStr += \", x2: \" + String.valueOf(this.x2);\n return retStr;\n }\n}","identical_to_repository_version":false},{"name":"Start","text":"// Zum Testen, zeigeTrainingsdaten kann nach Abschluss\n// eigentlich entfernt werden…\nLabor lab = new Labor();\nlab.ladeTrainingsdaten(\"daten.txt\");\nlab.zeigeTrainingsdaten();","identical_to_repository_version":false}],"settings":{"libraries":[]}} \ No newline at end of file