Avatar billede togsverd1985 Praktikant
16. oktober 2003 - 14:44 Der er 16 kommentarer og
1 løsning

Javakompilering: Find fejlene i disse 2 linjer

Hej hvor er fejlen i

System.out.println("2D-punktet slutter ved (" + object1.x + "," object1.y + ")\n");

og i

System.out.println("3D-punktet er nu ved (" + object2.x + "," object2.y + "," + object2.z + ")");

jeg får følgende fejl ved kompilering


SePunkter.java [15:1] ')' expected
                        System.out.println("2D-punktet slutter ved (" + object1.x + "," object1.y + ")\n");
                                                                                        ^
SePunkter.java [20:1] ')' expected
                        System.out.println("3D-punktet er nu ved (" + object2.x + "," object2.y + "," + object2.z + ")");


Takker :)

/Christian
Avatar billede soreno Praktikant
16. oktober 2003 - 14:46 #1
Prøv dette:

System.out.println("2D-punktet slutter ved (" + object1.x + "," + object1.y + ")\n");

System.out.println("3D-punktet er nu ved (" + object2.x + "," + object2.y + "," + object2.z + ")");
Avatar billede arne_v Ekspert
16. oktober 2003 - 14:49 #2
Du bør nok lige nævne forskellen: du har indsat plusser mellem "," og
onject.y !
Avatar billede soreno Praktikant
16. oktober 2003 - 14:54 #3
Ja, men nu har du jo gjort det !
:-)


Der skal plus (+) mellem alle elementer.

Ulovligt:
("hello" "world");
("Hello" object1.x);
("Hello" object1.x object2.x);

Lovligt:
("Hello" + "World");
("Hello" + object1.x);
("Hello" + object1.x + object2.x);
Avatar billede togsverd1985 Praktikant
16. oktober 2003 - 15:00 #4
ja ok det var det jeg ikke lige kunne se takker...

Nu vi er igang vil jeg lige spørge om noget andet (jeg skal nok give ekstrapoints hvis svarholder synes det)... se lige hele klassen:

package Point;
import java.awt.*;

class SePunkter{
        public static void main(String[] arguments){
            Point object1 = new Point(11,22);
            Point3D object2 = new Point3D(7,6,64);

            System.out.println("2D-punktet er placeret ved (" + object1.x + "," + object1.y + ")");
            System.out.println("\tDet flyttes til (4,13)");
            object1.move(4,13);
            System.out.println("2D-punktet er nu ved (" + object1.x + "," + object1.y + ")");
            System.out.println("\tDet flyttes -10 enheder både på x-" + "og y-aksen");
            object1.translate(-10,-10);
            System.out.println("2D-punktet slutter ved (" + object1.x + "," + object1.y + ")\n");
           
            System.out.println("3D-punktet er placeret ved (" + object2.x + "," + object2.y + "," + object2.z + ")");
            System.out.println("\tDet flyttes til (10,22,71)");
            object2.move(10,22,71);
            System.out.println("3D-punktet er nu ved (" + object2.x + "," + object2.y + "," + object2.z + ")");
            System.out.println("\tDet flyttes -20 enheder på x-, y-" + "og z-akserne");
            object2.translate(-20,-20,-20);
            System.out.println("3D-punktet slutter ved (" + object2.x + "," + object2.y + "," + object2.z + ")");
        }
}

ok ... mit problem er angående 3D punktet... z-koordinaten giver -20 men burde udskrives som 71-20 dvs 51... x og y giver de rigtige koordinater...
Avatar billede togsverd1985 Praktikant
16. oktober 2003 - 15:01 #5
altså det er slutværdien der burde være 51.. :)
Avatar billede soreno Praktikant
16. oktober 2003 - 15:07 #6
Hvis jeg skal teste skal jeg have Point3D klassen.
Avatar billede soreno Praktikant
16. oktober 2003 - 15:10 #7
Det er nok din translate metode det er galt med..

Mit bud på en translate metode:

[..]
private int x;
private int y;
private int z;
[..]
public void translate(int x, int y, int z)
{
  this.x += x;
  this.y += y;
  this.z += z;
}
[..]
Avatar billede togsverd1985 Praktikant
16. oktober 2003 - 15:13 #8
mit objekt, Point3D ser således ud:

package Point;
import java.awt.*;

public class Point3D extends Point{
        public int z;

        public Point3D(int x, int y, int z){
            super(x,y);
            this.z = z;
        }

        public void move(int x, int y, int z){
            this.z = z;
            super.move(x,y);
        }

        public void translate(int x, int y, int z){
            this.z = z;
            super.translate(x,y);       
        }
}
Avatar billede arne_v Ekspert
16. oktober 2003 - 15:17 #9
this.z = z;
         
=>

this.z -= z;
Avatar billede soreno Praktikant
16. oktober 2003 - 15:17 #10
Ret til:
public void translate(int x, int y, int z){
            this.z += z;
            super.translate(x,y);     
        }
Avatar billede arne_v Ekspert
16. oktober 2003 - 15:18 #11
Ak ak.

Søren har naturligvis ret += ikke -=.
Avatar billede soreno Praktikant
16. oktober 2003 - 15:18 #12
Det skal være plus !

Ellers går det galt.

Så vil:
object2.translate(-20,-20,-20);

blive flyttet i positiv retning - det dur ikke.
Avatar billede togsverd1985 Praktikant
16. oktober 2003 - 15:18 #13
heh! det havde jeg skrevet forkert ja... hvad betyder ændringen?
Avatar billede soreno Praktikant
16. oktober 2003 - 15:20 #14
Før satte du værdien til argumentet på metoden (det samme som move !).

Nu lægger du argumentet til den tidligere værdi (sådan som translate skal forstås).
Avatar billede togsverd1985 Praktikant
16. oktober 2003 - 15:20 #15
tak for det! jeg laver lige et spørgsmål hvor i deler 30 er det ok?
Avatar billede togsverd1985 Praktikant
16. oktober 2003 - 15:21 #16
nåå ja ok jeg forstår :)
Avatar billede soreno Praktikant
16. oktober 2003 - 15:22 #17
En anden gang kan du bare hæve antallet af point.

Det gøres øverst til venstre i "Funktioner"
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester