Annons:
Etikettprogramvara
Läst 2651 ggr
MoaE
2014-10-23 11:00

Programmering

Ä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

    } 

}

Annons:
yeahsica
2014-10-23 11:34
#1

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);

MoaE
2014-10-23 11:47
#2

#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

yeahsica
2014-10-23 12:02
#3

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

MoaE
2014-10-23 12:25
#4

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

    } 

}

yeahsica
2014-10-23 12:31
#5

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);

JonasDuregard
2014-10-23 13:45
#6

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

Annons:
MoaE
2014-10-23 15:12
#7

#6 Ändrat till a

yeahsica
2014-10-23 15:40
#8

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

papa-bear
2014-10-24 11:12
#9

synd att ifokussajten för programmering försvann, åtminstone finns den ju inte listad över sajter, då hade det funnits expertis där, men det verkar det finnas här också. 👍

Upp till toppen
Annons: