Forum / Grundlagen des Programmierens / 3. Hausübung

Nabil ±0

Hallo, ich habs so mit der vom Andi

package pkg1226757_3;

import java.io.*; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Scanner; import java.util.logging.Level; import java.util.logging.Logger;

class Punkt { Punkt(int x, int y) { this.x = x; this.y = y; } int id; int x; int y; void print(){ System.out.println("x:"+this.x+" y:"+this.y); } }

class Linie { Punkt a, b; Linie(Punkt a, Punkt b) { this.a = a; this.b = b; } double length() { int x = this.a.x + this.b.x; int y = this.a.y + this.b.y; return Math.sqrt((x * x) + (y * y)); } }

class Linienzug implements Comparable{ List<Punkt> lst; Linienzug(){ this.lst=new ArrayList<Punkt>(); } void add(Punkt p){ this.lst.add(p); p.id=this.lst.size(); } private double abstand_von_punkten(Punkt a, Punkt b){ return Math.sqrt((a.xb.x)+(a.yb.y)); } double length(){ double gl=0; if (this.lst.size() <= 2) return 0; for (int i=0; i<this.lst.size(); i++){ if (i!=(this.lst.size()-1)) gl+=this.abstand_von_punkten(this.lst.get(i),this.lst.get(i+1)); } return gl; } int anzahl_punkte(){ return this.lst.size(); } void print(){ for (int i=0; i<this.lst.size();i++){ this.lst.get(i).print(); } } @Override public int compareTo(Object o1){ if (this.length()==((Linienzug) o1).length()) return 0; else if (this.length() > ((Linienzug) o1).length()) return 1; else return -1; } }

public final class Bsp3_1226757_3 { List<Linienzug> lst = new ArrayList<Linienzug>(); Bsp3_1226757_3() { load_from_file("C:/Users/Yo_Mama/Documents/NetBeansProjects/1226757_3/src/pkg1226757_3/Linienzuege.txt"); dump_to_file("C:/Users/Yo_Mama/Documents/NetBeansProjects/1226757_3/src/pkg1226757_3/out.txt"); } public void load_from_file(String file) { Scanner s = null; try { s = new Scanner( new BufferedReader(new FileReader(file))).useDelimiter("\n"); while (s.hasNext()) { String[] in = s.next().split(":"); Linienzug l = new Linienzug(); for (int i=0; i<(in.length-1); i++){ l.add(new Punkt(Integer.parseInt(in[i]), Integer.parseInt(in[i+1]))); } this.lst.add(l); } } catch (FileNotFoundException ex) { System.out.print("File not found"); } finally { if (s != null) { s.close(); } } } public void dump_to_file(String file) { PrintWriter out = null; try { out = new PrintWriter(new FileWriter(file)); for (int i = 0; i < this.lst.size(); i++) { out.println("Linie" + i + ":" + this.lst.get(i).length()); } } catch (IOException ex) { // hat netbeans generiert Logger.getLogger(Linienzug.class.getName()).log(Level.SEVERE, null, ex); } finally { if (out != null) { out.close(); } } } public void dump_to_file_sorted(String file){ Collections.sort(lst); this.dump_to_file(file); } }

Könnt ihr mir helfen, ich sehe den Fehler nicht

Nabil ±0

Hallo, ich habs so mit der vom Andi

package pkg1226757_3;

import java.io.*; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Scanner; import java.util.logging.Level; import java.util.logging.Logger;

class Punkt { Punkt(int x, int y) { this.x = x; this.y = y; } int id; int x; int y; void print(){ System.out.println("x:"+this.x+" y:"+this.y); } }

class Linie { Punkt a, b; Linie(Punkt a, Punkt b) { this.a = a; this.b = b; } double length() { int x = this.a.x + this.b.x; int y = this.a.y + this.b.y; return Math.sqrt((x * x) + (y * y)); } }

class Linienzug implements Comparable{ List<Punkt> lst; Linienzug(){ this.lst=new ArrayList<Punkt>(); } void add(Punkt p){ this.lst.add(p); p.id=this.lst.size(); } private double abstand_von_punkten(Punkt a, Punkt b){ return Math.sqrt((a.xb.x)+(a.yb.y)); } double length(){ double gl=0; if (this.lst.size() <= 2) return 0; for (int i=0; i<this.lst.size(); i++){ if (i!=(this.lst.size()-1)) gl+=this.abstand_von_punkten(this.lst.get(i),this.lst.get(i+1)); } return gl; } int anzahl_punkte(){ return this.lst.size(); } void print(){ for (int i=0; i<this.lst.size();i++){ this.lst.get(i).print(); } } @Override public int compareTo(Object o1){ if (this.length()==((Linienzug) o1).length()) return 0; else if (this.length() > ((Linienzug) o1).length()) return 1; else return -1; } }

public final class Bsp3_1226757_3 { List<Linienzug> lst = new ArrayList<Linienzug>(); Bsp3_1226757_3() { load_from_file("C:/Users/Yo_Mama/Documents/NetBeansProjects/1226757_3/src/pkg1226757_3/Linienzuege.txt"); dump_to_file("C:/Users/Yo_Mama/Documents/NetBeansProjects/1226757_3/src/pkg1226757_3/out.txt"); } public void load_from_file(String file) { Scanner s = null; try { s = new Scanner( new BufferedReader(new FileReader(file))).useDelimiter("\n"); while (s.hasNext()) { String[] in = s.next().split(":"); Linienzug l = new Linienzug(); for (int i=0; i<(in.length-1); i++){ l.add(new Punkt(Integer.parseInt(in[i]), Integer.parseInt(in[i+1]))); } this.lst.add(l); } } catch (FileNotFoundException ex) { System.out.print("File not found"); } finally { if (s != null) { s.close(); } } } public void dump_to_file(String file) { PrintWriter out = null; try { out = new PrintWriter(new FileWriter(file)); for (int i = 0; i < this.lst.size(); i++) { out.println("Linie" + i + ":" + this.lst.get(i).length()); } } catch (IOException ex) { // hat netbeans generiert Logger.getLogger(Linienzug.class.getName()).log(Level.SEVERE, null, ex); } finally { if (out != null) { out.close(); } } } public void dump_to_file_sorted(String file){ Collections.sort(lst); this.dump_to_file(file); } }

Könnt ihr mir helfen, ich sehe den Fehler nicht

Peter ±0

Funktioniert, aber fragt nicht wieso :D


import java.io.*;
import java.util.*;
import java.util.logging.Level;
import java.util.logging.Logger;

class punkt {
    punkt(int x_koordinate, int y_koordinate) {
        this.x_koordinate = x_koordinate;
        this.y_koordinate = y_koordinate;
    }
    int punkt_seriennummer;
    int x_koordinate;
    int y_koordinate;
    void print(){
        System.out.println(&quot;x_koordinate:&quot;+this.x_koordinate+&quot; y_koordinate:&quot;+this.y_koordinate);
    }
}

class linie {
    punkt anfang, ende;
    linie(punkt anfang, punkt ende) {
        this.anfang = anfang;
        this.ende = ende;
    }
    double l&auml;nge() {
        int x_koordinate = this.anfang.x_koordinate + this.ende.x_koordinate;
        int y_koordinate = this.anfang.y_koordinate + this.ende.y_koordinate;
        return Math.sqrt((x_koordinate * x_koordinate) + (y_koordinate * y_koordinate));
    }
}
class Linienzug implements Comparable{
    List&lt;punkt&gt; lst;
    Linienzug(){
        this.lst=new ArrayList&lt;punkt&gt;();
    }
    void add(punkt p){
        this.lst.add(p);
        p.punkt_seriennummer=this.lst.size();
    }
    private double abstand_von_punkten(punkt anfang, punkt ende){
        return Math.sqrt((anfang.x_koordinate*ende.x_koordinate)+(anfang.y_koordinate*ende.y_koordinate));
    }
    double l&auml;nge(){
        double gl=0;
        if (this.lst.size() &lt;= 2)
            return 0;
        for (int i=0; i&lt;this.lst.size(); i++){
            if (i!=(this.lst.size()-1))
                gl+=this.abstand_von_punkten(this.lst.get(i),this.lst.get(i+1));
        }
        return gl;
    }
    int anzahl_punkte(){
        return this.lst.size();
    }
    void print(){
        for (int i=0; i&lt;this.lst.size();i++){
            this.lst.get(i).print();
        }
    }
    public int compareTo(Object o1){
        if (this.l&auml;nge()==((Linienzug) o1).l&auml;nge())
            return 0;
        else if (this.l&auml;nge() &gt; ((Linienzug) o1).l&auml;nge())
                return 1;
        else
            return -1;
    }
}


public class Bsp3_1226442_3 {
	public static void main(String[] args){
		new Bsp3_1226442_3();}
		List&lt;Linienzug&gt; list = new ArrayList&lt;Linienzug&gt;();
	    Bsp3_1226442_3() {
	        load_from_file(&quot;C:/Users/upman_000/workspace/1226442_3/src/Linienzuege.txt&quot;); 
	        dump_to_file(&quot;C:/Users/upman_000/workspace/1226442_3/src/Ausgabe.txt&quot;);
	    }
	    public void load_from_file(String file) {
	        Scanner s = null;
	        try {
	            s = new Scanner(
	                    new BufferedReader(new FileReader(file))).useDelimiter(&quot;\\n&quot;);
	            while (s.hasNext()) {
	                String[] in = s.next().split(&quot;:&quot;);
	                Linienzug l = new Linienzug();
	                for (int i=0; i&lt;(in.length-1); i++){
	                    l.add(new punkt(Integer.parseInt(in[i]),
	                        Integer.parseInt(in[i+1])));
	                }
	                this.list.add(l);
	            }
	        } catch (FileNotFoundException ex) {
	            System.out.print(&quot;File not found&quot;);
	        } finally {
	            if (s != null) {
	                s.close();
	            }
	        }
	    }
	    public void dump_to_file(String file) {
	        PrintWriter out = null;
	        try {
	            out = new PrintWriter(new FileWriter(file));
	            for (int i = 0; i &lt; this.list.size(); i++) {
	                out.println(&quot;Linie&quot; + i + &quot;:&quot; + this.list.get(i).l&auml;nge());
	            }
	        } catch (IOException ex) { 
	            Logger.getLogger(Linienzug.class.getName()).log(Level.SEVERE, null, ex);
	        } finally {
	            if (out != null) {
	                out.close();
	            }
	        }
	    }
	    public void dump_to_file_sorted(String file){
	        Collections.sort(list);
	        this.dump_to_file(file);
	    }
	}
\n~~~
Nabil ±0

Danke ich probiers aus

Nabil ±0

Hey nochmal vielen dank es hat geklappt

Johannes ±0

Ein wirklich großes Dankeschön an alle!!!!!!

Julian ±0

wie ist der pfad auf nem mac bei load_from_file? /Users/groa/Downloads/Zusatzdateien_Hue3/Linienpfad

so?

peace

Sorry, die Kommentarfunktion ist geschlossen.