Results 1 to 78 of 78
  1. #1
    Unreal's Avatar
    Title
    Elite
    Join Date
    Oct 2005
    Location
    Vienna, Austria
    Posts
    430
    Thanks Thanks Given 
    3
    Thanks Thanks Received 
    1
    Thanked in
    1 Post

    Bewertungsphase : 2. Bsp (Line)

    die mitgelieferte output Dateien (line.o1, line.o2) enthalten auch ein Zeilenvorschub. In den Spezifikationen steht :
    Code:
     Ausgabedaten:
     
    true/false als Ergebnis des Vergleichs und eine Stringrepräsentation der 1. Linie. 
    Ausgaben mit Leerzeichen getrennt
    Wie ist es richtig ?? Mit od ohne Zeilenvorschub ??

    mfg
    Victor
    Last edited by Unreal; 24-11-2005 at 23:39.
    update...

  2. #2
    fanopanic's Avatar
    Title
    Master
    Join Date
    Oct 2003
    Posts
    166
    Thanks Thanks Given 
    0
    Thanks Thanks Received 
    0
    Thanked in
    0 Posts
    Hab einen Tutor gefragt:

    "Mit Zeilenvorschub. Siehe IO Paare."

  3. #3
    Unreal's Avatar
    Title
    Elite
    Join Date
    Oct 2005
    Location
    Vienna, Austria
    Posts
    430
    Thanks Thanks Given 
    3
    Thanks Thanks Received 
    1
    Thanked in
    1 Post
    @fanopanic: danke

    "Mit Zeilenvorschub. Siehe IO Paare."
    Ich kann kaum glauben dass die Spezifikationen mit so viele Fehler geschrieben sind.
    Eigentlich wir müssen die Spez korrigieren und nicht Java programmieren ...
    ....
    ...
    ..
    update...

  4. #4
    Fäý's Avatar
    Title
    Elite
    Join Date
    Oct 2005
    Posts
    309
    Thanks Thanks Given 
    0
    Thanks Thanks Received 
    0
    Thanked in
    0 Posts
    hihi

    viel schlimmer noch: wir müssen beides!

    ist das nicht mal eine umfassende vorbereitung aufs Berufsleben!? ^^

    Tutor sagt: Im Zweifelsfall haben immer die IO-Paare recht!

    Grüße
    ~ carpe noctem diemque ~
    "He, Hugin oder Munin oder wer du bist! Sag mal nimmermehr!", sagte Shadow.
    "Leck mich!", sagte der Rabe. (aus
    Neil Gaimans American Gods)

  5. #5
    Christoph R.'s Avatar
    Title
    Dipl.Ing
    Join Date
    Oct 2005
    Posts
    2,346
    Thanks Thanks Given 
    74
    Thanks Thanks Received 
    255
    Thanked in
    145 Posts
    Wenn man das vorher wüsste... dann hätte man EPROG an der Uni Wien machen können.

  6. #6
    Fäý's Avatar
    Title
    Elite
    Join Date
    Oct 2005
    Posts
    309
    Thanks Thanks Given 
    0
    Thanks Thanks Received 
    0
    Thanked in
    0 Posts
    Hör auf zu jammern, es wird schon irgendwie zu schaffen sein...
    ich hab auch probleme..

    ich verrat euch nachher ob ich die fehlenden 20% (20% abzug wegen zweiter abgabe wegen falscher/korrigierter Spez.) noch bekommen habe

    Grüße
    ~ carpe noctem diemque ~
    "He, Hugin oder Munin oder wer du bist! Sag mal nimmermehr!", sagte Shadow.
    "Leck mich!", sagte der Rabe. (aus
    Neil Gaimans American Gods)

  7. #7

    Title
    Master
    Join Date
    Oct 2005
    Posts
    150
    Thanks Thanks Given 
    0
    Thanks Thanks Received 
    2
    Thanked in
    2 Posts
    Kann mir mal irgendwer die Angabe zu Line erklären bitte
    Was hats mit der line.html auf sich und ich versteh ausserdem nicht was genau die Testen.java sowie die Line.java beinhalten sollen!

    danke im voraus

  8. #8
    Unreal's Avatar
    Title
    Elite
    Join Date
    Oct 2005
    Location
    Vienna, Austria
    Posts
    430
    Thanks Thanks Given 
    3
    Thanks Thanks Received 
    1
    Thanked in
    1 Post
    #1
    Lesen Sie die mitgelieferte Datei "Line.html" und erstellen Sie die Klasse Line anhand dieser Java-Dokumentation.
    In dieser JavaDoc stehen die zu erstellenden Klassenvariablen, Konstruktoren und Methoden. Gehen Sie sequentiell vor und erstellen Sie zuerst die Klasse, dann fügen Sie die privaten Klassenvariablen hinzu, danach die Konstruktoren und schließlich die Methoden. Die Funktionsweise der Methoden ist in der JavaDoc beschrieben.
    Code:
    public class Line extends java.lang.Object {
     
     private  double x1; //The X coordinate of the start point 
     ...
    ....
           //Constructs and initializes a Line with coordinates (0, 0) -> (0, 0). 
     Line() {
      this.x1=0;
      this.x2=0;
      this.y1=0;
      this.y2=0;
    .....
    methode.
    ..
     }
    Es soll etwa so aussehen .
    Du muss alle Methoden und Konstruktoren in diese clase (Line) implementieren ...
    update...

  9. #9

    Title
    Master
    Join Date
    Oct 2005
    Posts
    150
    Thanks Thanks Given 
    0
    Thanks Thanks Received 
    2
    Thanked in
    2 Posts
    Ahja, und was macht dann die Testen.java ?

  10. #10
    soapm's Avatar
    Title
    Elite
    Join Date
    Aug 2005
    Posts
    328
    Thanks Thanks Given 
    6
    Thanks Thanks Received 
    10
    Thanked in
    6 Posts

    identische Linien

    Habt ihr eine Ahnung, wie mit identischen Linien (die aufeinander liegen) zu verfahren ist? Soll man da true ausgeben, oder false?

    Hat schon jemand das Line-Beispiel abgegeben?

  11. #11
    Unreal's Avatar
    Title
    Elite
    Join Date
    Oct 2005
    Location
    Vienna, Austria
    Posts
    430
    Thanks Thanks Given 
    3
    Thanks Thanks Received 
    1
    Thanked in
    1 Post
    Ahja, und was macht dann die Testen.java ?
    Schreiben Sie eine Klasse Testen. Die Klasse Testen liest die Startpunkte und Endpunkte von 2 Linien ein, vergleicht die Linien ob sie sich schneiden und gibt als Ergebnis "true" oder "false" aus. Zusätzlich wird die 1. Linie als Stringrepräsentation ausgegeben.
    Die Klasse Testen besteht nur aus der public static void main(String[] args) Methode und liest die 8 double Werte ein (jede Line benötigt 2 Start und 2 Endpunkte) erzeugt 2 Line-Objekte und vergleicht diese miteinander. Geben Sie das Ergebnis des Vergleichs als boolean Wert aus und zusätzlich die Stringrepräsentation der 1.Linie.
    Es soll nur 8 double Werte lesen (start und endpunkte von 2 Linien) . erzeugt 2 Linie - objekte ( z.b: Linie L1 = new Linie(x1,y1,x2,y2) )
    Dann vergleich diese miteinander ( benutzend die Methode von Linie clase ) u.s.w ..


    Habt ihr eine Ahnung, wie mit identischen Linien (die aufeinander liegen) zu verfahren ist? Soll man da true ausgeben, oder false?
    true , selbstverständlich !
    EDIT:
    true , selbstverständlich ! ---- es soll false ausgeben (..) --- siehe nächste post ---

    EDIT2 :
    true , steht in spez
    Last edited by Unreal; 19-11-2005 at 15:02.
    update...

  12. #12
    wolk's Avatar
    Title
    Baccalaureus
    Join Date
    Jun 2002
    Posts
    984
    Thanks Thanks Given 
    0
    Thanks Thanks Received 
    0
    Thanked in
    0 Posts
    da es hier einige fragen gab/gibt:

    - handelt es sich hierbei um geraden oder um endliche linien?
    naja, es gibt einen startpunkt und einen endpunkt! es sind linien!

    - was ist, wenn sich 2 linien komplett oder teilweise überlagern? bedeutet dies, dass sie sich schneiden, oder nicht? nach definition müsste man diese frage mit einem klaren nein beantwortet, doch finde ich zu diesem punkt in der spezifikation keine eindeutige antwort.

    dann schneiden sie sich

    - was ist wenn die Steigung unendlich groß ist? (X2 -X1 = 0) einfach die Exception abfangen und ein ? ausgeben?

    steht in der angabe irgendetwas von Exception werfen wenn Steigung undendlich groß ? nein

    wer sich arbeit ersparen will, sollte zuerst einmal javadoc lesen zb. java.awt.Line
    vielleicht gibts da ja Methoden mit denen man Schnittberechnungen durchführen kann

  13. #13
    Unreal's Avatar
    Title
    Elite
    Join Date
    Oct 2005
    Location
    Vienna, Austria
    Posts
    430
    Thanks Thanks Given 
    3
    Thanks Thanks Received 
    1
    Thanked in
    1 Post
    Noch eine Frage ... Ist ein Punkt eine Linie ??? Ich glaube nicht!
    Aber was soll die Programm ausgeben wenn wir eigentlich ein Punkt geben .. ?
    update...

  14. #14
    wolk's Avatar
    Title
    Baccalaureus
    Join Date
    Jun 2002
    Posts
    984
    Thanks Thanks Given 
    0
    Thanks Thanks Received 
    0
    Thanked in
    0 Posts
    naja, es soll ja 8 werte einlesen, bei weniger werten wird "?" ausgegeben
    so stehts jedenfalls in der spezi und so ist es auch

    du meinst wenn du 1 1 1 1 gibst, dann ist das halt eine linie die bei 1 1 beginnt und bei 1 1 endet, verdammt kurz

  15. #15
    Swoncen's Avatar
    Title
    Dipl.Ing
    Join Date
    Oct 2005
    Location
    Vienna
    Posts
    2,792
    Thanks Thanks Given 
    8
    Thanks Thanks Received 
    2
    Thanked in
    2 Posts
    Frage: Ich hab vorher eigentlich nie mit Java programmiert, sondern C++.
    Java scheint nicht viel anders zu sein, bis auf einige Merkmale, die Java unsympatischer machen. Aber jetzt zu meiner Frage: Wie funktioniert das genau mit dem import und package? package ist in Java so etwas wie in C++ ein namespace soviel ich gelesen hab. Und mit import kann ich den namespace einfügen. Aber wie funktioniert das in diesem Beispiel?

    Ich hab bei Line.java: package geometric; angegeben. Und in Test.java: import geometric.Line;

    Was ist daran falsch, bzw wo wird gesucht nach diesem package? Im CLASSPATH? Wenn ja, wie funktioniert das in diesem Beispiel, wenn ich ja beide Dateien gezippt abgebe?

    mfg


    -------------------------------------------------
    Ok hat sich erledigt.. Geht schon
    Last edited by Swoncen; 18-11-2005 at 20:46.

  16. #16
    wolk's Avatar
    Title
    Baccalaureus
    Join Date
    Jun 2002
    Posts
    984
    Thanks Thanks Given 
    0
    Thanks Thanks Received 
    0
    Thanked in
    0 Posts
    wenn in der Angabe nichts von einem Package steht auch keines verwenden

    wenn steht dass die Line.java in package "geo" gehört, dann ja, ansonsten gehört es in KEIN package

  17. #17
    Unreal's Avatar
    Title
    Elite
    Join Date
    Oct 2005
    Location
    Vienna, Austria
    Posts
    430
    Thanks Thanks Given 
    3
    Thanks Thanks Received 
    1
    Thanked in
    1 Post
    naja, es soll ja 8 werte einlesen, bei weniger werten wird "?" ausgegeben
    so stehts jedenfalls in der spezi und so ist es auch

    du meinst wenn du 1 1 1 1 gibst, dann ist das halt eine linie die bei 1 1 beginnt und bei 1 1 endet, verdammt kurz
    Eigentlich meinte ich wenn 1 1 1 1 3 5 2 6 gebe, was pasiert dann ? ( ein punkt und eine Linie)


    mfg
    Victor
    update...

  18. #18
    wolk's Avatar
    Title
    Baccalaureus
    Join Date
    Jun 2002
    Posts
    984
    Thanks Thanks Given 
    0
    Thanks Thanks Received 
    0
    Thanked in
    0 Posts
    was soll denn da schon großartig passieren ? die 1. linie ist halt verdammt kurz und die 2 ganz normal und sie schneiden sich nicht

    es ist ja nicht so dass wir absichtlich ganz gemeine io-paare einbauen

  19. #19
    Unreal's Avatar
    Title
    Elite
    Join Date
    Oct 2005
    Location
    Vienna, Austria
    Posts
    430
    Thanks Thanks Given 
    3
    Thanks Thanks Received 
    1
    Thanked in
    1 Post
    Aber, eine Linie ist definiert als eine gerade Verbindung zweier Punkte !!! (source: wikipedia + mathe buch ). Wir haben nur ein Punkt . Das kann nicht eine Linie bedeuten..
    update...

  20. #20
    wolk's Avatar
    Title
    Baccalaureus
    Join Date
    Jun 2002
    Posts
    984
    Thanks Thanks Given 
    0
    Thanks Thanks Received 
    0
    Thanked in
    0 Posts
    mein Gott, nimm das nicht so genau
    die line verbindet ja eh 2 punkte; dass es halt die selben sind ist egal

    das ist erst die 2. runde. wenn wir hier schon komplizierte überprüfungen einbauen müssen/sollen, dann schaffen es die studenten nicht

    von mir aus kannst du diese überprüfungen gerne machen, aber ich weiss dass es kein io-paar gibt welches das als überprüft und als fehler wertet

    die runden sind aufbauend gestaltet, also 1. runde ganz was einfaches, 2.runde klasse schreiben, 3. runde schleifen, arrays etc, 4. runde erweiterte speicherkonzepte wie hash, stack etc. 5.6. runde interfaces, vererbung, abstrakte klassen etc.

  21. #21
    Unreal's Avatar
    Title
    Elite
    Join Date
    Oct 2005
    Location
    Vienna, Austria
    Posts
    430
    Thanks Thanks Given 
    3
    Thanks Thanks Received 
    1
    Thanked in
    1 Post
    ok, ok

    ich hab gefragt weil z.B bei dem 4. Bsp ( Vorbereitungsphase) hab nur 16 Punkte gekriegt weil ich den Stack nicht in verkehrter reihenfolge ausgegeben habe...

    EOQ - End of questions

    mfg
    Victor
    update...

  22. #22
    wolk's Avatar
    Title
    Baccalaureus
    Join Date
    Jun 2002
    Posts
    984
    Thanks Thanks Given 
    0
    Thanks Thanks Received 
    0
    Thanked in
    0 Posts
    nein is schon ok, besser Ihr fragt als dass ihr punkte verschenkt

  23. #23

    Title
    Hero
    Join Date
    Oct 2005
    Posts
    243
    Thanks Thanks Given 
    7
    Thanks Thanks Received 
    12
    Thanked in
    10 Posts
    hab auch mal ne Frage, allerdings nicht zum Line- sondern zum MonsterCheck Beispiel. In meiner Spezifkiation steht ganz eindeutig, "name [...] muss mit einem Großbuchstaben beginnen". Sowohl in dem Spezifikationsbeispiel als auch in den IO-Dateien steht ein Monster namens "gutesMonster" (dh kleiner Anfangsbuchstabe), dennoch soll angeblich "true" als Zeichen einer korrekten Angabe geliefert werden.
    Ist das ein Fehler in den Beispielen oder in der Spezifikation? Eigentlich sollte man meinen, dass die Beispiele falsch sind, da der Großbuchstabe ja explizit als Bedingung für eine gültige Eingabe aufgeführt ist. Andererseits sollen ja angeblich immer die IO-Paare die größere Aussagekraft haben...ich kann jedenfalls beim besten Willen nicht schließen, was der Server verlangt.

    Hab deswegen auch schon an meinen Tutor geschrieben, aber ich bekomme keine Antwort. Genauso gings mir auch schon in Runde 1. Die Spezifikation wurde dort zwar geändert (ohne die Gruppe darüber zu informieren!!!), enthält aber immernoch Fehler. Dort war ich mir aber recht sicher wo der Fehler lag und konnte deshalb schon das Beispiel hochladen, das klappt diesmal nicht...irgendwie fehlt mir ein Ansprechpartner!

  24. #24
    wolk's Avatar
    Title
    Baccalaureus
    Join Date
    Jun 2002
    Posts
    984
    Thanks Thanks Given 
    0
    Thanks Thanks Received 
    0
    Thanked in
    0 Posts
    hallo,

    du hast natürlich recht, da war ein Fehler im IO-Paar
    das sollte natürlich nicht vorkommen
    IO-Paar wurde geändert, 2 zusätzliche IO-Paare zur Kontrolle hinzugefügt

    was war beim 1. Beispiel falsch ? die Info ist nicht bis zu mir durchgedrungen! War es das mit der Maßeinheit ? wenn ja, dann war ich der schuldige der vergessen hat ein Spezifikations News zu schicken - sorry

    danke
    Last edited by wolk; 19-11-2005 at 14:15.

  25. #25
    Fäý's Avatar
    Title
    Elite
    Join Date
    Oct 2005
    Posts
    309
    Thanks Thanks Given 
    0
    Thanks Thanks Received 
    0
    Thanked in
    0 Posts
    na zwei punkte .. nur sind die identisch .. was scheinbar für die spez egal ist ..
    also eine linie der länge 0 .. klasse ^^

    Grüße
    ~ carpe noctem diemque ~
    "He, Hugin oder Munin oder wer du bist! Sag mal nimmermehr!", sagte Shadow.
    "Leck mich!", sagte der Rabe. (aus
    Neil Gaimans American Gods)

  26. #26
    Unreal's Avatar
    Title
    Elite
    Join Date
    Oct 2005
    Location
    Vienna, Austria
    Posts
    430
    Thanks Thanks Given 
    3
    Thanks Thanks Received 
    1
    Thanked in
    1 Post
    ok ...

    jetzt steht in den Spez:

    Code:
     
    Wenn 2 Linien sich komplett oder teilweise überlagern, dann schneiden sie sich auch.
    update...

  27. #27
    wolk's Avatar
    Title
    Baccalaureus
    Join Date
    Jun 2002
    Posts
    984
    Thanks Thanks Given 
    0
    Thanks Thanks Received 
    0
    Thanked in
    0 Posts
    haben diejenigen von euch die das Beispiel "Line" gehabt haben, eine News bekommen mit der Nachricht dass das Bsp geändert wurde ?? Wenn ja ist alles in Ordnung

  28. #28
    soapm's Avatar
    Title
    Elite
    Join Date
    Aug 2005
    Posts
    328
    Thanks Thanks Given 
    6
    Thanks Thanks Received 
    10
    Thanked in
    6 Posts

    Smile Abgegeben

    habe gerade mein line-beispiel abgegeben und alle 20 punkte erhalten. um zu testen, ob sich die linien schneiden, ist es wohl am einfachsten und sichersten, die (statische) linesIntersect-Methode aus der Klasse java.awt.geom.Line2D zu verwenden.

    falls noch wer fragen hat -> einfach melden

    Quote Originally Posted by wolk
    haben diejenigen von euch die das Beispiel "Line" gehabt haben, eine News bekommen mit der Nachricht dass das Bsp geändert wurde ?? Wenn ja ist alles in Ordnung
    ja, habe ich erhalten

  29. #29
    Swoncen's Avatar
    Title
    Dipl.Ing
    Join Date
    Oct 2005
    Location
    Vienna
    Posts
    2,792
    Thanks Thanks Given 
    8
    Thanks Thanks Received 
    2
    Thanked in
    2 Posts
    Ach ich hab nur 12 Punkte. Ich hab eine Textpassage von einem anderen Programm kopiert und vergessen es umzuändern. Und zwar war das readInteger statt readDouble. Gibts irgendeine Möglichkeit so einen Schlampigkeitsfehler auszubessern? Ich hab was von Zusatzpunkten gelesen, aber es steht nicht wie das mit den Zusatzpunkten genau funktioniert usw.
    Also hab ich noch die Chance 20 Punkte zu bekommen, oder eher nicht? Ist halt ärgerlich so ein Schlampigkeitsfehler, am Verständniss liegts ja nicht. Und wenn nicht: Wenn ichs nochmal richtig abgeb bekomm ich 80%, d.h max 16 Punkte? bitte um Rat

  30. #30
    wolk's Avatar
    Title
    Baccalaureus
    Join Date
    Jun 2002
    Posts
    984
    Thanks Thanks Given 
    0
    Thanks Thanks Received 
    0
    Thanked in
    0 Posts
    naja, für Schlampigkeitsfehler wirds wohl keine Zusatzpunkte geben. Am besten du gehst mal zu einem Saaltutor, der soll sich das ansehen. Wenn alles andere geht kannst du ja nochmal abgeben und dir noch 4 punkte holen, aber auf die 20 wirst du kaum mehr kommen - weil es dein Fehler war und nicht an Eprog lag. aber ein 1ser geht sich ja immer noch aus

  31. #31
    Swoncen's Avatar
    Title
    Dipl.Ing
    Join Date
    Oct 2005
    Location
    Vienna
    Posts
    2,792
    Thanks Thanks Given 
    8
    Thanks Thanks Received 
    2
    Thanked in
    2 Posts
    Ok ich sehs ein, aber ich hab auch Punkteabzüge bekommen, weil ich eine eigene intersects Methode geschrieben habe und die false liefert, falls eine Linie ihren Anfangspunkt oder Endpunkt auf der anderen Linie hat. Das heißt in Wirklichkeit schneiden die sich nicht, sondern sie treffen nur aufeinander. Nagut ich hab jetzt die methode von Line2D genommen. Solche Dinge sollten auch in der Spez. drinnen stehen, wann es als geschnitten gilt, wenn schon solche Beispiele kommen.

    false Line ( 0.0 \ 0.0 - 0.0 \ 8.0 ) FALSCH

    Also meiner Meinung nach schneiden sich diese Linien nicht, bzw die erste Linie ist wie oben erwähnt verdammt kurz.

  32. #32
    Swoncen's Avatar
    Title
    Dipl.Ing
    Join Date
    Oct 2005
    Location
    Vienna
    Posts
    2,792
    Thanks Thanks Given 
    8
    Thanks Thanks Received 
    2
    Thanked in
    2 Posts
    Ich hab auch noch gerade bemerkt, dass das Ergebniss auf eine Nachkommastelle gerundet werden soll. Ok das hab ich auch übersehen. Ich geb nie wieder ein Programm so unüberlegt ab. Na gut, aber wie kann man in Java auf eine gewisse Anzahl von Nachkommastellen runden? soapm du hattest es doch richtig, wie hast du es gelöst?

  33. #33
    wolk's Avatar
    Title
    Baccalaureus
    Join Date
    Jun 2002
    Posts
    984
    Thanks Thanks Given 
    0
    Thanks Thanks Received 
    0
    Thanked in
    0 Posts
    nagut, ich werd das "schneiden sich" für nächstes semester auf "berühren einander" ändern

    was meinst du mit "wenn schon solche Beispiele kommen"
    auf welches io-paar spielst du an ? ich seh hier nur 1 linie

    wenn das dein falsches io-paar war dann ist da wirklich was falsch denn das zugehörige io-paar ist 0 0 0 8 4 4 -4 4 und das ist ein schönes kreuz

  34. #34
    Swoncen's Avatar
    Title
    Dipl.Ing
    Join Date
    Oct 2005
    Location
    Vienna
    Posts
    2,792
    Thanks Thanks Given 
    8
    Thanks Thanks Received 
    2
    Thanked in
    2 Posts
    Aja stimmt. Mein Fehler. Hab mich vertan. Ja dann hat meine intersects Methode einen Fehler. Ist aber jetzt egal, ich hab einfach zu überhastet abgegeben.

    Aber bevor ich das Programm das zweite mal abgeb möchte ich mir sicher gehen. Funktionierts mit der intersects Methode von der Klasse java.awt.geom.Line2D? Und zu dem Runden: Gibts irgendeine einfache Methode? Ich habs mit BigDecimal versucht, aber ich hab da kein normales Runden gefunden, sondern nur ROUND_UP. Eine andere Methode mit precision hab ich nicht gefunden.

  35. #35
    soapm's Avatar
    Title
    Elite
    Join Date
    Aug 2005
    Posts
    328
    Thanks Thanks Given 
    6
    Thanks Thanks Received 
    10
    Thanked in
    6 Posts

    Wink Some Help

    Quote Originally Posted by Swoncen
    Funktionierts mit der intersects Methode von der Klasse java.awt.geom.Line2D?
    Ja, mit der gehts perfekt.

    Und zu dem Runden: Gibts irgendeine einfache Methode?
    Meine Lösung für dieses Problem: Multiplikation mit 10, dann runden mittels Math.round(double a) und anschließend Division durch 10.

  36. #36

    Title
    Master
    Join Date
    Oct 2004
    Location
    Vienna
    Posts
    104
    Thanks Thanks Given 
    0
    Thanks Thanks Received 
    0
    Thanked in
    0 Posts
    Eigentlich warum braucht man die zum Runden?
    Ich hab das nicht gemacht, und bei mir funktioniert die Input-Output Paaren trotzdem richtig.

  37. #37

    Title
    Master
    Join Date
    Oct 2005
    Posts
    150
    Thanks Thanks Given 
    0
    Thanks Thanks Received 
    2
    Thanked in
    2 Posts
    So, ich hab ein merkwürdiges Problem und zwar mit der Line.java
    Zuerst werden die ganzen public double A1, A2,... deklariert, und dannach mach ich mit dem Line-Constructor genau das:
    Code:
    	public class Line () {
    	A1=0;
    	B1=0;
    	A2=0;
    	B2=0;
    	}
    	public class Line (double X1, double Y1, double X2, double Y2) {
    	A1 = X1;
    	B1 = Y1;
    	A2 = X2;
    	B2 = Y2;
    	}
    	public class Line (Line line) {
    	A1 = line.A1;
    	B1 = line.B1;
    	A2 = line.A2;
    	B2 = line.B2;
    	}
    und beim kompilieren bekomm ich den error:

    Code:
    Line.java:10: '{' expected
            public class Line () {
                              ^
    Line.java:16: '{' expected
            public class Line (double X1, double Y1, double X2, double Y2) {
                              ^
    Line.java:22: '{' expected
            public class Line (Line line) {
                              ^
    Kann mir irgendwer sagen was hier FALSCH LÄUFT? :/

  38. #38
    Swoncen's Avatar
    Title
    Dipl.Ing
    Join Date
    Oct 2005
    Location
    Vienna
    Posts
    2,792
    Thanks Thanks Given 
    8
    Thanks Thanks Received 
    2
    Thanked in
    2 Posts
    Du versuchst drei mal eine Klasse anzulegen.

    public class Line () { }
    public class Line (double X1, double Y1, double X2, double Y2) { }
    public class Line (Line line) { }

    Einem Konstruktor musst du nur den Klassennamen geben, richtig wäre:

    Line() { anweisungen }
    Line(double X1, double Y1, double X2, double Y2) { anweisungen }
    Line(Line line) { }

    mfg

  39. #39
    Unreal's Avatar
    Title
    Elite
    Join Date
    Oct 2005
    Location
    Vienna, Austria
    Posts
    430
    Thanks Thanks Given 
    3
    Thanks Thanks Received 
    1
    Thanked in
    1 Post
    Wie benutzt man die Klasse java.awt.geom.Line2D?? Gibt es irgenwo die Source für diese Klasse ? oder ?
    update...

  40. #40
    Swoncen's Avatar
    Title
    Dipl.Ing
    Join Date
    Oct 2005
    Location
    Vienna
    Posts
    2,792
    Thanks Thanks Given 
    8
    Thanks Thanks Received 
    2
    Thanked in
    2 Posts
    Den Sourcecode wirds für dich leider nicht geben, aber die Doku:

    http://java.sun.com/j2se/1.4.2/docs/...om/Line2D.html

    Wenn du die statische Methode nimmst (linesIntersect), dann brauchst du kein Objekt von Line2D anlegen.

    mfg

  41. #41
    Unreal's Avatar
    Title
    Elite
    Join Date
    Oct 2005
    Location
    Vienna, Austria
    Posts
    430
    Thanks Thanks Given 
    3
    Thanks Thanks Received 
    1
    Thanked in
    1 Post
    Ja, aber wie benutze ich diese Methode?. Ich habe es noch einmal definiert in meine Klasse weil so steht in dem Spez.

    public static boolean linesIntersect(double X1, double Y1, double X2, double Y2, double X3, double Y3, double X4, double Y4) {
    }


    danke
    update...

  42. #42
    Swoncen's Avatar
    Title
    Dipl.Ing
    Join Date
    Oct 2005
    Location
    Vienna
    Posts
    2,792
    Thanks Thanks Given 
    8
    Thanks Thanks Received 
    2
    Thanked in
    2 Posts
    Ja und in der Methode rufst du einfach die Methode von Line2D auf. Oder besser gesagt du gibst gleich das Ergebniss zurück.

    public static boolean linesIntersect(double X1, double Y1, double X2, double Y2, double X3, double Y3, double X4, double Y4)
    {
    return Line2D.linesIntersect(X1, Y1, X2, Y2, X3, Y3, X4, Y4);
    }

    Da die Methode von Line2D den gleichen Namen hat wie deine Funktion und auch die gleiche Signatur (Parameter und Rückgabewert), musst du explizit angeben welche von den Methoden du nehmen willst. => Line2D.linesIntersect(...);

    Du musst aber noch das package von Line2D importieren, damit der compiler die Line2D Klasse kennt. Wie das geht weißt du wahrscheinlich.

    mfg

  43. #43
    Unreal's Avatar
    Title
    Elite
    Join Date
    Oct 2005
    Location
    Vienna, Austria
    Posts
    430
    Thanks Thanks Given 
    3
    Thanks Thanks Received 
    1
    Thanked in
    1 Post
    es funktioniert so .. aber es gibt ein Problemm : bei den 3. Datei (Line.i3) die ausgabe sieht :
    Code:
    
    true Line ( -2.0 \ -2.0 - -2.0 \ 2.0 )
    
    und es muss false sein ..
    update...

  44. #44
    Swoncen's Avatar
    Title
    Dipl.Ing
    Join Date
    Oct 2005
    Location
    Vienna
    Posts
    2,792
    Thanks Thanks Given 
    8
    Thanks Thanks Received 
    2
    Thanked in
    2 Posts
    Poste mal bitte den Code rein. Und die Eingabedaten für diese beiden Linien

  45. #45
    Unreal's Avatar
    Title
    Elite
    Join Date
    Oct 2005
    Location
    Vienna, Austria
    Posts
    430
    Thanks Thanks Given 
    3
    Thanks Thanks Received 
    1
    Thanked in
    1 Post
    Code:
      //tests if the given line intersects this line
     public boolean intersectsLine(Line l) {
      
      return linesIntersect(this.x1, this.y1, this.x2, this.y2,
                                l.x1, l.y1, l.x2, l.y2); 
      }
     
     //tests if the two given lines intersect each other 
     public static boolean linesIntersect(double X1, double Y1, double X2, double Y2, double X3, double Y3, double X4, double Y4) {
     
      return Line2D.linesIntersect(X1, Y1, X2, Y2, X3, Y3, X4, Y4);
     }
    danke!
    update...

  46. #46
    Swoncen's Avatar
    Title
    Dipl.Ing
    Join Date
    Oct 2005
    Location
    Vienna
    Posts
    2,792
    Thanks Thanks Given 
    8
    Thanks Thanks Received 
    2
    Thanked in
    2 Posts
    Mach bei beiden Methoden den Aufruf von der Line2D-Methode. Ist zwar nicht der Fehler, aber es gibt so sonst nur einen unnötigen overhead. poste doch bitte deinen gesamten Quelltext herein, oder schick ihn mir als PM und ich schau ihn mir an, falls du's nicht öffentlich posten willst. Ausserdem schreib bitte die Eingabedaten noch dazu. -2 -2 -2 2 und die anderen 4 Werte sind?

    mfg
    640K ought to be enough for anybody.

  47. #47
    Unreal's Avatar
    Title
    Elite
    Join Date
    Oct 2005
    Location
    Vienna, Austria
    Posts
    430
    Thanks Thanks Given 
    3
    Thanks Thanks Received 
    1
    Thanked in
    1 Post
    hier findet die beide Dateien:

    http://stud3.tuwien.ac.at/~e0527109/

    danke

    die angabe daten :
    -2 -2 -2 2 2 -2 2 2
    Last edited by Unreal; 22-11-2005 at 00:03.
    update...

  48. #48
    Swoncen's Avatar
    Title
    Dipl.Ing
    Join Date
    Oct 2005
    Location
    Vienna
    Posts
    2,792
    Thanks Thanks Given 
    8
    Thanks Thanks Received 
    2
    Thanked in
    2 Posts
    publicclass Line extends java.lang.Object

    Wozu das extends? Ist nicht falsch, aber alle Klassen erben automatisch von Object. Deswegen gibts auch die funktion toString() in jeder Klasse, auch wenn man sie nicht ausprogrammiert.

    EprogIO.println(l1.toString());

    Wieder kein Fehler, aber println (print line) ruft automatisch die Methode "toString()" von jedem Objekt auf, wenn du's nicht angibst.

    EprogIO.println(l1);

    ergibt genau dasselbe, aber daran scheiterts nicht.


    Oje jetzt hab ich lange gebraucht, bis ich den Fehler gefunden hab

    X1=EprogIO.readDouble();
    Y1=EprogIO.readDouble();
    X2=EprogIO.readDouble();
    Y2=EprogIO.readDouble();

    Line l1=
    new Line(X1,Y1,X2,Y2);

    X1=EprogIO.readDouble();
    X2=EprogIO.readDouble();
    Y1=EprogIO.readDouble();
    Y2=EprogIO.readDouble();

    Line l2=
    new Line(X1,Y1,X2,Y2);

    Was fällt dir auf? X1, Y1, X2, Y2 .. X1, X2 (HIER), Y1, Y2
    Die Reihenfolge ist nur falsch =)


    mfg und gute Nacht!
    Last edited by Swoncen; 22-11-2005 at 00:40.
    640K ought to be enough for anybody.

  49. #49
    Unreal's Avatar
    Title
    Elite
    Join Date
    Oct 2005
    Location
    Vienna, Austria
    Posts
    430
    Thanks Thanks Given 
    3
    Thanks Thanks Received 
    1
    Thanked in
    1 Post
    aaaa.
    Ja.. ich hab es nicht geseht..
    Danke vielmals !!!
    Gute Nacht!


    publicclass Line extends java.lang.Object

    Wozu das extends? Ist nicht falsch, aber alle Klassen erben automatisch von Object. Deswegen gibts auch die funktion toString() in jeder Klasse, auch wenn man sie nicht ausprogrammiert.
    public class Lineextends java.lang.Object -so steht in Line.html
    Last edited by Unreal; 22-11-2005 at 00:59.
    update...

  50. #50
    xxxprod
    kann mir wer mal kurz helfen...

    bei der Ausgabe: true Line ( 0.0 \ 0.0 - 5.0 \ 5.0 ) kommen ja zwei mal "\" vor.

    aber ich brings irgendwie nicht zusammen diese \ auszugeben. bekomm immer fehler:illegal escape character

    weiß ned was ich da machen soll immerhin hängen ja die vollen punkte von der richtigen ausgabe ab.

  51. #51
    Filz's Avatar
    Title
    Baccalaureus
    Join Date
    Jan 2002
    Posts
    706
    Thanks Thanks Given 
    0
    Thanks Thanks Received 
    0
    Thanked in
    0 Posts
    probiers mal mit \\

  52. #52

    Title
    Principal
    Join Date
    Jan 2005
    Posts
    83
    Thanks Thanks Given 
    0
    Thanks Thanks Received 
    0
    Thanked in
    0 Posts
    ganz einfach du musst \\ schreiben sonst gehts net

    aber andere Frage wie kriege ich die ausgabe auf eine Nachkommastelle gerundet hin

    wenn ich das schreibe

    Math.round(this.x1*10)/10

    funzt es nicht

    need help :-)

  53. #53
    Filz's Avatar
    Title
    Baccalaureus
    Join Date
    Jan 2002
    Posts
    706
    Thanks Thanks Given 
    0
    Thanks Thanks Received 
    0
    Thanked in
    0 Posts
    warum brauchst du eine Nachkommastelle?
    Schreib einfach

    double d = 12.0;
    EprogIO.print( d );

    -> ergibt "12.0"

  54. #54

    Title
    Principal
    Join Date
    Jan 2005
    Posts
    83
    Thanks Thanks Given 
    0
    Thanks Thanks Received 
    0
    Thanked in
    0 Posts
    ähm ich les die eingabewerte ein und leg sie nicht statisch fest

    und es steht in den angaben so

    Wieso geht das nicht so wie in c mit math.round(zahl,nachkommastellen)


    ich mein das is so logisch, dass es schon weh tut dass das in java net implementiert ist
    Last edited by Mystique99; 13-12-2005 at 09:56.

  55. #55
    soapm's Avatar
    Title
    Elite
    Join Date
    Aug 2005
    Posts
    328
    Thanks Thanks Given 
    6
    Thanks Thanks Received 
    10
    Thanked in
    6 Posts
    Quote Originally Posted by Mystique99
    Math.round(this.x1*10)/10
    Da bist du eh nahe dran. Nur musst du dir die round-Funktion noch genauer ansehen. Ihr Rückgabewert ist long. Wenn du den dann durch 10 dividierst, sieht das der Compiler als Ganzzahldivision und gibt folglich wieder eine Zahl vom Typ long zurück.
    Am einfachsten du dividierst durch 10.0 (also durch eine Gleitkommazahl) und schon hast du dein richtiges Ergebnis.
    Die fetten Jahre sind vorbei.

  56. #56
    Filz's Avatar
    Title
    Baccalaureus
    Join Date
    Jan 2002
    Posts
    706
    Thanks Thanks Given 
    0
    Thanks Thanks Received 
    0
    Thanked in
    0 Posts
    habs zwar in den Angaben nirgends gesehen, aber wenn du es unbedingt haben willst, probier's mal mit:


    entweder:
    EprogIO.print( (Math.round( x1 * 10.0 ) / 10.0) );

    oder mit
    System.out.printf( "%.1f", x1 );

    oder
    java.text.DecimalFormat df = new java.text.DecimalFormat( "0.0" );
    String s = df.format( x1 );
    Last edited by Filz; 13-12-2005 at 10:13.

  57. #57

    Title
    Principal
    Join Date
    Jan 2005
    Posts
    83
    Thanks Thanks Given 
    0
    Thanks Thanks Received 
    0
    Thanked in
    0 Posts
    Steht in der API der Line Klasse die man machen soll

    toString
    public java.lang.String toString()this method generates a string-representation of an line-object
    the format ist like this "Line ( 1.2 \ 1.8 - 3.4 \ 7.2 )"
    between every bracket or number is a Blank
    the separator between x and y coordinates is the backslash "\"
    Numbers as double-values with one position after decimal point (roundet), 7.23 -> 7.2, 3.39 -> 3.4


    funzt jetzt mit 10.0.... is aber eigentlich seh umständlich

    Soo noch eine Frage ( ja ich weiß ich wills immer genau wissen ...)

    In der Spec steht wenn das ganze Partiell überlappt schneiden sie sich auch

    Also müsste der Input

    1 1 3 3 2 2 4 4

    Eigentlich True ergeben oder?
    Tut es aber nicht
    mit Funktion

    return Line2D.linesIntersect(X1, Y1, X2, Y2, X3, Y3, X4, Y4);

  58. #58

    Title
    Master
    Join Date
    Oct 2004
    Location
    Vienna
    Posts
    104
    Thanks Thanks Given 
    0
    Thanks Thanks Received 
    0
    Thanked in
    0 Posts
    ich hab so gemacht:

    x1 = Math.round(x1*10);
    x1 = x1/10;

    mfg

  59. #59
    Filz's Avatar
    Title
    Baccalaureus
    Join Date
    Jan 2002
    Posts
    706
    Thanks Thanks Given 
    0
    Thanks Thanks Received 
    0
    Thanked in
    0 Posts
    Quote Originally Posted by Nebi
    x1 = x1/10;
    Ist eine korrekte, nicht ganzzahlige Division (es reicht, wenn einer der Operanden eine Kommazahl ist, mit int/long passiert sowas in der Richtung: 17/10 = 1)

  60. #60
    signalout's Avatar
    Title
    Baccalaureus
    Join Date
    Jul 2005
    Posts
    565
    Thanks Thanks Given 
    15
    Thanks Thanks Received 
    14
    Thanked in
    8 Posts
    hat wer 20 punkte bekommen? wäre derjenige vllt so nett und würde sich kurz meinen code ansehen? ich steh grad ein bisschen an...

    wäre nett! ich würde den code dann per pm schicken,...
    hi

  61. #61

    Title
    Principal
    Join Date
    Jan 2005
    Posts
    83
    Thanks Thanks Given 
    0
    Thanks Thanks Received 
    0
    Thanked in
    0 Posts
    Also ich hab das ganze jetzt abgegeben
    und nur 16/20 Punkte bekommen und hab die Methode genommen

    return Line2D.linesIntersect(X1, Y1, X2, Y2, X3, Y3, X4, Y4);

    Output Paare: (vielleicht könnt ihr ja eure posten oder mir sagen was ich falsch habe)

    IOPaar Id Output Ergebnis
    1 true Line ( 0.0 \ 0.0 - 5.0 \ 5.0 ) OK
    2 false Line ( 0.0 \ 0.0 - 0.0 \ 8.0 ) FALSCH
    3 false Line ( 2.1 \ 5.1 - 5.9 \ 5.2 ) OK
    4 ? OK
    5 false Line ( -2.0 \ -2.0 - -2.0 \ 2.0 ) OK
    Last edited by Mystique99; 13-12-2005 at 13:17.

  62. #62
    Iron Leash's Avatar
    Title
    Elite
    Join Date
    Oct 2005
    Location
    Wien
    Posts
    263
    Thanks Thanks Given 
    2
    Thanks Thanks Received 
    2
    Thanked in
    2 Posts
    Warum deklaliert man nur 4 Punkte für 2 linien?muss man auch x3 und x4 beziehungweise y3 und y4 deklarieren?

  63. #63
    xxxprod
    Ich hab auch nur 12 Punkte bekommen weil ichs von Line2Dintersect berechnen hab lassen.

    Dabei wollt ich am Anfang noch meine eigene Rechnung einbauen...


  64. #64

    Title
    Master
    Join Date
    Oct 2005
    Posts
    150
    Thanks Thanks Given 
    0
    Thanks Thanks Received 
    2
    Thanked in
    2 Posts
    An line2dintersect liegts sicher nicht!
    Ich war in der B1, habs genauso mit Line2Dintersect und volle punktzahl bekommen
    mfg

  65. #65

    Title
    Master
    Join Date
    Oct 2004
    Location
    Vienna
    Posts
    104
    Thanks Thanks Given 
    0
    Thanks Thanks Received 
    0
    Thanked in
    0 Posts
    Quote Originally Posted by Filz
    Ist eine korrekte, nicht ganzzahlige Division (es reicht, wenn einer der Operanden eine Kommazahl ist, mit int/long passiert sowas in der Richtung: 17/10 = 1)
    x1 ist schon eine double variable.

  66. #66
    Filz's Avatar
    Title
    Baccalaureus
    Join Date
    Jan 2002
    Posts
    706
    Thanks Thanks Given 
    0
    Thanks Thanks Received 
    0
    Thanked in
    0 Posts
    Quote Originally Posted by Nebi
    x1 ist schon eine double variable.
    eben: x1/10 ist double/int ergibt wieder double (und ist keine ganzzahlige Division)

  67. #67
    wolk's Avatar
    Title
    Baccalaureus
    Join Date
    Jun 2002
    Posts
    984
    Thanks Thanks Given 
    0
    Thanks Thanks Received 
    0
    Thanked in
    0 Posts
    xxxprod: gib mir deine matrikelnummer ich seh mir die io-paare an

  68. #68
    Iron Leash's Avatar
    Title
    Elite
    Join Date
    Oct 2005
    Location
    Wien
    Posts
    263
    Thanks Thanks Given 
    2
    Thanks Thanks Received 
    2
    Thanked in
    2 Posts
    ich bin mir nicht sicher wie ich "intersectsLine Methode" verwenden kann...
    Kann jemand mir dabei helfen bitte??

  69. #69
    ska's Avatar
    Title
    Baccalaureus
    Join Date
    Oct 2005
    Location
    1060 Wien
    Posts
    647
    Thanks Thanks Given 
    10
    Thanks Thanks Received 
    0
    Thanked in
    0 Posts
    Häng bei der auch etwas...kann mir wer sagen was ich falsch mache?
    Ich komm mit den ganzen if und else nicht zurecht, denn beim Kompilieren will er noch ein return nach den letzten else und dann if...
    Here it is:

    public static boolean linesIntersect(double X1, double Y1, double X2, double Y2,
    double X3, double Y3, double X4, double Y4){

    boolean is_parallel = false;
    boolean is_vertical_l1 = false;
    boolean is_vertical_l2 = false;
    double k1;
    double k2;
    double d1;
    double d2;
    double sx; // x Koordinate des Schnittpunkts
    double sy; // y Koordinate des Schnittpunkts
    is_vertical_l2 = (X1 == X2);
    is_vertical_l1 = (X3 == X4);
    if (is_vertical_l1 && is_vertical_l2) {
    boolean linesIntersects=false;
    return false;
    }
    // berechnen des schnittpunktes
    // verwendung der formel: kx+d=y
    // wobei k=Anstieg= (y2-y1) / (x2-x1)
    // d = Distanz des Schnittpunktes mit der y-Achse zum 0-Punkt
    // d = y-kx
    if (is_vertical_l1) {
    k2 = (Y4 - Y3) / (X4 - X3);
    d2 = Y3 - (k2 * X3);
    sx = X3;
    sy = k2 * sx + d2;
    return true;
    } else if (is_vertical_l2) {
    k1 = (Y2 - Y1) / (X2 - X1);
    d1 = Y1 - (k1 * X1);
    sx = X1;
    sy = k1 * sx + d1;
    return true;
    } else if (is_parallel){
    k1 = (Y2 - Y1) / (X2 - X1);
    k2 = (Y4 - Y3) / (X4 - X3);
    if (k1 == k2) {
    return false; // parallel
    }
    }

    }




    ???

    Und wie berechne ich, wenn sich die Linie außerhalb der Länge der Linien schneidet??

  70. #70
    xxxprod
    ich schätze einmal indem du überprüfst ob der Schnittpunkt innerhalb deltaX oder deltaY liegt.

    Edit:

    naja halt so irgendwie: x1<=Sx<=x2 und umgekehrt falls die koordinaten anders eingegeben werden.

  71. #71

    Title
    Principal
    Join Date
    Jan 2005
    Posts
    83
    Thanks Thanks Given 
    0
    Thanks Thanks Received 
    0
    Thanked in
    0 Posts
    So ich poste jetzt mal den ganze Sourcecode... kann doch nicht sein


    Code:
    // Name: Erich Heil
    //Mat Nr.; 0526476
    //Programm: Line	
    
    import java.lang.Math;
    import eprog.*;
    import java.awt.geom.Line2D;
    public class Line
    {
    	//Variablen festlegen
    	private double x1,x2,y1,y2;
    	//Konstruktor
    	public Line()
    	{
    		this.x1=0;
    		this.x2=0;
    		this.y1=0;
    		this.y2=0;
    	}
    	//Linie mit Werten erzeugen
    	public Line(double x1_u,double y1_u, double x2_u, double y2_u)
    	{
    		this.x1=x1_u;
    		this.x2=x2_u;
    		this.y1=y1_u;
    		this.y2=y2_u;
    	}
    	//erzeugen einer neuen Linie aus einer bestehenden Linie
    	public Line(Line line_u)
    	{
    		this.x1=line_u.getX1();
    		this.x2=line_u.getX2();
    		this.y1=line_u.getY1();
    		this.y2=line_u.getY2();
    	}
    	//Methoden:
    	//X1  wert holen
    	public double getX1()
    	{
    		return this.x1;
    	}
    	//X2  wert holen
    	public double getX2()
    	{
    		return this.x2;
    	}
    	//Y1  wert holen
    	public double getY1()
    	{
    		return this.y1;
    	}
    	//Y2  wert holen
    	public double getY2()
    	{
    		return this.y2;
    	}
    	//Start und Endpunkt einer Linie setzen
    	public void setLine(double X1,double Y1,double X2,double Y2)
    	{
    		this.x1=X1;
    		this.x2=X2;
    		this.y1=Y1;
    		this.y2=Y2;
    	}
    	//Schneiden sich 2 geraden
    	public static boolean linesIntersect(double X1,double Y1,double X2,double Y2,double X3,double Y3,double X4,double Y4)
    	{
    		return Line2D.linesIntersect(X1, Y1, X2, Y2, X3, Y3, X4, Y4);
    	}
    	public boolean intersectsLine(Line line_u)
    	{
    		return line_u.linesIntersect(line_u.getX1(),line_u.getY1(),line_u.getX2(),line_u.getY2(),this.x1,this.y1,this.x2,this.y1);
    	}
    	public java.lang.String toString()
    	{
    		//Ausgabe des Ganzen gerundet auf eine Nachkommastelle
    		//In C würde das viel einfacher gehen , da round besser definiert ist
    		String output;
    		output=("Line ( "+Math.round(this.x1*10.0)/10.0+" \\ "+Math.round(this.y1*10.0)/10.0+" - "+Math.round(this.x2*10.0)/10.0+" \\ "+Math.round(this.y2*10.0)/10.0+" )");
    		return output;
    	}
    }
    und noch die testen.java

    Code:
    import eprog.*;
    public class Testen
    {
    	public static void main (String args[])
    	{
    		double X1=0,Y1=0,X2=0,Y2=0,X3=0,Y3=0,X4=0,Y4=0;
    		boolean fehler=false;
    		try
    		{
    			X1=EprogIO.readDouble();
    			Y1=EprogIO.readDouble();
    			X2=EprogIO.readDouble();
    			Y2=EprogIO.readDouble();
    			X3=EprogIO.readDouble();
    			Y3=EprogIO.readDouble();
    			X4=EprogIO.readDouble();
    			Y4=EprogIO.readDouble();
    		}
    		catch (EprogEOFException a)
    		{
    			EprogIO.println("?");
    			fehler=true;
    		}
    		catch (EprogDataTypeException b)
    		{
    			EprogIO.println("?");
    			fehler=true;
    		}
    		if (!fehler)
    		{
    			Line linie1= new Line(X1,Y1,X2,Y2);
    			Line linie2= new Line(X3,Y3,X4,Y4);
    			EprogIO.print(linie1.intersectsLine(linie2));
    			EprogIO.print(" "+linie1);
    		}
    	}
    }

    Das ganze ergibt 16 Punkte.. sagt mir warum es nicht 20 sind

    HIer nochmal die Output Paare:

    IOPaar Id Output Ergebnis
    1 true Line ( 0.0 \ 0.0 - 5.0 \ 5.0 ) OK
    2 false Line ( 0.0 \ 0.0 - 0.0 \ 8.0 ) FALSCH
    3 false Line ( 2.1 \ 5.1 - 5.9 \ 5.2 ) OK
    4 ? OK
    5 false Line ( -2.0 \ -2.0 - -2.0 \ 2.0 ) OK

  72. #72
    Unreal's Avatar
    Title
    Elite
    Join Date
    Oct 2005
    Location
    Vienna, Austria
    Posts
    430
    Thanks Thanks Given 
    3
    Thanks Thanks Received 
    1
    Thanked in
    1 Post
    public boolean intersectsLine(Line line_u)
    {
    return line_u.linesIntersect(line_u.getX1(),line_u.getY1( ),line_u.getX2(),line_u.getY2(),this.x1,this.y1,th is.x2,this.y1);
    }
    es sollte :

    PHP Code:
    public boolean intersectsLine(Line line_u)
        {
            return 
    line_u.linesIntersect(line_u.getX1(),line_u.getY1(),line_u.getX2(),line_u.getY2(),this.x1,this.y1,this.x2,this.y2);
        } 
    sein !!
    update...

  73. #73

    Title
    Principal
    Join Date
    Jan 2005
    Posts
    83
    Thanks Thanks Given 
    0
    Thanks Thanks Received 
    0
    Thanked in
    0 Posts
    OMG

    Also ja.. ja ... OMG... da kann man eigentlich nur eins sagen

    DAMN

    es sind immer die Kleinigkeiten.. das mir das nicht aufgefallen ist

    Na ja Programmieren ist das Streben nach Perfektion.....

    :-) wenigstens is das ganze jetzt geklärt.. hab mich massig über die Funktion geärgert und schon meinen eigenen Algorithmus entwickelt gehabt, aber der hat mir natürlich auch nichts geholfen wenn der Aufruf falsch ist :-)

    kann ich da irgendwie meine Punkte wieder bekommen oder fällt das unter Schlampigkeit und Shit happens ?

  74. #74
    wolk's Avatar
    Title
    Baccalaureus
    Join Date
    Jun 2002
    Posts
    984
    Thanks Thanks Given 
    0
    Thanks Thanks Received 
    0
    Thanked in
    0 Posts
    das fällt unter :
    "Student hat nicht ausreichend getestet bevor er abgegeben hat und deswegen bekommt er Punkteabzüge"

  75. #75

    Title
    Principal
    Join Date
    Oct 2005
    Location
    42
    Posts
    44
    Thanks Thanks Given 
    13
    Thanks Thanks Received 
    0
    Thanked in
    0 Posts
    Noch ein paar Fragen:

    Was soll ausgegeben werden wenn mehr als 8 Doubles eingelesen wird ?
    z.B: 1 2 3 4 5 6 7 8 9 10 11 12
    oder 1 2 3 4 5 6 7 8 a f g

    Sollen wir die ersten 8 einlesen und den Rest ignorieren ? Oder sollen wir FALSCHE EINGABE oder ? oder sonstwas ausgeben ?

    Wenn ein Punkt (also 1.0 \ 1.0) auf einer Linie liegt, zählt das als Intersect ? Und wie reagiert die Line2D.linesIntersect(blabla) darauf (dass der Punkt auf der Linie liegt) ?
    Last edited by Grillkohle; 14-12-2005 at 14:45.

  76. #76
    Unreal's Avatar
    Title
    Elite
    Join Date
    Oct 2005
    Location
    Vienna, Austria
    Posts
    430
    Thanks Thanks Given 
    3
    Thanks Thanks Received 
    1
    Thanked in
    1 Post
    Was soll ausgegeben werden wenn mehr als 8 Doubles eingelesen wird ?
    z.B: 1 2 3 4 5 6 7 8 9 10 11 12
    oder 1 2 3 4 5 6 7 8 a f g
    (Spezi
    Bei falschen Eingaben, geben Sie ein "?" gefolgt von einem Zeilenvorschub aus.

    Sollen wir die ersten 8 einlesen und den Rest ignorieren ? Oder sollen wir FALSCHE EINGABE oder ? oder sonstwas ausgeben ?
    Du gibst "?" gefolgt von einem Zv aus ....

    Wenn ein Punkt (also 1.0 \ 1.0) auf einer Linie liegt, zählt das als Intersect ? Und wie reagiert die Line2D.linesIntersect(blabla) darauf (dass der Punkt auf der Linie liegt) ?
    es gibt true aus .. wenn du die Methode Line2D.linesIntersect() benutzt dann muss du keine Sorgen mehr machen..

    Wenn ein Punkt (also 1.0 \ 1.0)
    Eigentlich 1.0 \ 1.0 - 1.0 \ 1.0 .. das ist ein Punkt(? eine Linie ? ) ..
    Wenn du nur 1.0 \ 1.0 hast dann ist ein Falsche eingabe ...
    Last edited by Unreal; 14-12-2005 at 15:22.
    update...

  77. #77

    Title
    Principal
    Join Date
    Oct 2005
    Location
    42
    Posts
    44
    Thanks Thanks Given 
    13
    Thanks Thanks Received 
    0
    Thanked in
    0 Posts
    Code:
    ((double)Math.round(this.x1 * 10) / 10)
    funktioniert gut um auf eine Nachkommastelle zu runden. Wenn ich das (double) weglasse, kommt bei mir immer nur die Zahl gänzlich ohne Nachkommastellen an, z.B. 1.123 -> 1.0

  78. #78

    Title
    Principal
    Join Date
    Oct 2005
    Location
    42
    Posts
    44
    Thanks Thanks Given 
    13
    Thanks Thanks Received 
    0
    Thanked in
    0 Posts
    Ich hab grad nochmal einen Tutor gefragt, und der hat gesagt dass nur die ersten 8 Eingaben zählen, d.h.: wenn man
    1 2 3 4 5 6 7 8 9 10 eingibt, zählt nur 1 2 3 4 5 6 7 8 9 10

    Alles was nach der achten Eingabe kommt soll ignoriert werden. (egal ob danach ein DataTypeException kommt oder nicht)
    Ich editiere dann jetzt mal meine ArrayIndexOutOfBounds Exception und schau was dann rauskommt wenn ich's einreiche.

    Zing, 20/20 Punkte. Wer Hilfe braucht kann mir ne PM oder Email / sonstwas schicken (Ich kann aber nur noch bis einschliesslich morgen antworten, frisch umgezogen, noch kein Internet zuhause )
    Last edited by Grillkohle; 15-12-2005 at 16:40.

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •