Program för PC

Programmering

2014-10-23 11:00 #0 av: MoaE

Är det någon här inne som kan programmering och skulle vilja hjälpa mig? jag har skrivit en egen klass med metoder och sedan skapat ett program till detta, men jag får det inte att fungera. Allt är skrivet i språket java i programmet Eclipse.

Jag vet dock inte hur jag ska få in min "change" metod i själva programmet..

Klassen:

public class Rektangel {

     private float längd; // skapar instansvariabeln längd

    private float bredd; // skapar instansvariabeln bredd

    private float area; // skapar instansvariabeln area

    private float omkrets; // skapar instansvariabeln omkrets

    public Rektangel(float b,float l) {

        längd = 4;   // längd = 4

        bredd = 6;  // bredd = 6

        area  = (längd*bredd);  // area = längd*bredd

        omkrets = (2*längd + 2*bredd); // omkrets = 2*längd + 2*bredd

}

    public void area(){//metod som anger rektangels area

       area = (längd*bredd);      // säger till programmet hur arean räknas ut

       System.out.println("Arean är " + area ); // ger utskrift på arean

    }

public void omkrets(){//metod som anger rektangels omkrets

    omkrets = (2*bredd+2*längd);  // säger till programmet hur omkretsen räknas ut

    System.out.println("Omkretsen är" + omkrets); // ger utskrift på omkretsen

 } 

 public void change(float nylängd, float nybredd){ // metod för att kunna ändra längd och bredd

    längd = nylängd;  //anger längd till nylängd

    bredd = nybredd; // anger bredd till nybredd

 } 

  }

Programmet:

public class testaRektangel {

        public static void main(float[] args) {

Rektangel rektangel1 = new Rektangel(4,6); // anropar klassen rektangel och skapar ny rektangel

rektangel1.area(); // anropar metoden area

rektangel1.omkrets(); // anropar metoden omkrets

    } 

}



Anmäl
2014-10-23 11:34 #1 av: yeahsica

Vill du att användaren ska kunna ange "nylängd" och "nybredd" och sedan använda dessa siffror i change-metoden?

I så fall kan du läsa om hur man tar in input i programmet här: http://www.programmingsimplified.com/java/source-code/java-program-take-input-from-user

Sedan använder du bara dessa float-variabler och "skickar med" in i change:

rektangel1.change(nylängd, nybredd);

Anmäl
2014-10-23 11:47 #2 av: MoaE

#1 Jag har testat att lägga in det där

rektangel1.change(nylängd, nybredd); 

i mitt program men programmet säger då bara nylängd cannot be resolved to a new variable och samma sak om nylängd

Vi har använt oss av TextIO.getln  för att läsa in från användaren

Anmäl
2014-10-23 12:02 #3 av: yeahsica

Hur ser din kod ut när du får det felet? 

Anmäl
2014-10-23 12:25 #4 av: MoaE

Klassen:

public class Rektangel {

    private float längd; // skapar instansvariabeln längd

    private float bredd; // skapar instansvariabeln bredd

    private float area; // skapar instansvariabeln area

    private float omkrets; // skapar instansvariabeln omkrets

    public Rektangel(float längd,float bredd) {

        längd = 4;   // längd = 4

        bredd = 6;  // bredd = 6

        area  = (längd*bredd);  // area = längd*bredd

        omkrets = (2*längd + 2*bredd); // omkrets = 2*längd + 2*bredd

    }

    public void area(){//metod som anger rektangels area

       area = (längd*bredd);      // säger till programmet hur arean räknas ut

       System.out.println("Arean är " + area ); // ger utskrift på arean

    }

    public void omkrets(){//metod som anger rektangels omkrets

    omkrets = (2*bredd+2*längd);  // säger till programmet hur omkretsen räknas ut

    System.out.println("Omkretsen är" + omkrets); // ger utskrift på omkretsen

 } 

    public void change(float nylängd, float nybredd){ // metod för att kunna ändra längd och bredd

    längd = nylängd;  //anger längd till nylängd

    System.out.println("Ange ny längd"); //utskrift till användaren om att ange ny längd

    nylängd = TextIO.getlnFloat(); // läser in nylängd från tangenbordet

    bredd = nybredd; // anger bredd till nybredd

    System.out.println("Ange ny bredd"); // utskrift till användaren om att ange ny bredd

    nybredd = TextIO.getlnFloat(); // läser in nybredd från tangenbordet

 } 

   }

Programmet:

public class testaRektangel {

        public static void main(float[] args) { //main metod av typen float

Rektangel rektangel1 = new Rektangel(4,6); // skapar rektangel1 med en viss bredd och längd

System.out.println("Rektangels sidor är " + 4 + "cm" + 6 + "cm"); // utskrift om bredden och längden

rektangel1.area(); // anropar metoden area för rektangel1

rektangel1.omkrets(); // anropar metoden omkrets för rektangel1

rektangel1.change(nylängd,nybredd); // anropar metoden change för rektangel1

    } 

}

Anmäl
2014-10-23 12:31 #5 av: yeahsica

Ah, man skulle kunna säga att ni använder två olika sätt att koda på just nu. 

Berättar om det ena sättet ni kan göra på:
Istället för att hämta input i change-metoden, gör det i programmet innan ni anropar change. Såhär:

    System.out.println("Ange ny längd"); //utskrift till användaren om att ange ny längd

    float nylängd = TextIO.getlnFloat(); // läser in nylängd från tangenbordet

    System.out.println("Ange ny bredd"); // utskrift till användaren om att ange ny bredd

   float nybredd = TextIO.getlnFloat(); // läser in nybredd från tangenbordet

    rektangel1.change(nylängd, nybredd);

Anmäl
2014-10-23 13:45 #6 av: JonasDuregard

Är det verkligen en bra idé att använda 'ä' i variabelnamn? Det kan ställa till en del tekniska problem. 

Medarbetare på Skepticism, Vetenskap och Andlig Skepticism

Anmäl
2014-10-23 15:12 #7 av: MoaE

#6 Ändrat till a 

Anmäl
2014-10-23 15:40 #8 av: yeahsica

#7 Bra att ni bytte variabelnamn ;) Fick ni koden att fungera?

Anmäl

Det finns en till kommentar till den här diskussionen. Den är bara synlig för medlemmar på iFokus. För att läsa kommentaren, logga in eller registrera dig på iFokus.