kort och super enkel fråga(java)

Trädvy Permalänk
Medlem
Registrerad
Apr 2016

kort och super enkel fråga(java)

imorgon är sista dag därför frågar jag till er

Jag måste räkna ut arean och omkrets hos ellipsen med hjälp av kod:

package omprov_; import javax.swing.*; import java.util.*; import javax.swing.JOptionPane; public class kap15_2 { public static void main (String[] args){ //kap15_1 n = new kap15_1(); räkna t = new räkna(0,0); String s = JOptionPane.showInputDialog("Ange den sida x"); int x =Integer.parseInt(s); Scanner sc= new Scanner(s); s = JOptionPane.showInputDialog("Ange den sida y"); int y =Integer.parseInt(s); // n.sätt(sc.nextInt()); // n.sätt(x); // n.sätt(sc.nextInt()); t.area(); t.omkrets(); ; JOptionPane.showMessageDialog(null, String.format("Area och Omkrets är ", + t.area(),t.omkrets())); } } class räkna{ int x, y; public räkna(int sida1,int sida2) { x = sida1; y = sida2; } public int area() { return (int) (Math.PI * x * y); } public int omkrets () { return (int) (Math.PI*Math.sqrt(2*Math.pow(x, 2)+2*Math.pow(y, 2))); }

Visar igen error, helt ok, men när jag kö programmet, netbeans visar

Area och Omkrets är 0

Det är allt. Visar inte vad blir arean och omkrets hos ellipsen. Har jag missat något?

Trädvy Permalänk
Medlem
Registrerad
Apr 2016
Skrivet av ProgrammeringElev:

imorgon är sista dag därför frågar jag till er

Jag måste räkna ut arean och omkrets hos ellipsen med hjälp av kod:

package omprov_; import javax.swing.*; import java.util.*; import javax.swing.JOptionPane; public class kap15_2 { public static void main (String[] args){ //kap15_1 n = new kap15_1(); räkna t = new räkna(0,0); String s = JOptionPane.showInputDialog("Ange den sida x"); int x =Integer.parseInt(s); Scanner sc= new Scanner(s); s = JOptionPane.showInputDialog("Ange den sida y"); int y =Integer.parseInt(s); // n.sätt(sc.nextInt()); // n.sätt(x); // n.sätt(sc.nextInt()); t.area(); t.omkrets(); ; JOptionPane.showMessageDialog(null, String.format("Area och Omkrets är ", + t.area(),t.omkrets())); } } class räkna{ int x, y; public räkna(int sida1,int sida2) { x = sida1; y = sida2; } public int area() { return (int) (Math.PI * x * y); } public int omkrets () { return (int) (Math.PI*Math.sqrt(2*Math.pow(x, 2)+2*Math.pow(y, 2))); }

Visar igen error, helt ok, men när jag kö programmet, netbeans visar

Area och Omkrets är 0

Det är allt. Visar inte vad blir arean och omkrets hos ellipsen. Har jag missat något?

Jag har hittat orsak!
Orsaken var koden

räkna t = new räkna(0,0);

java alltid räknar x och y som 0.
Jag har löst vad är orsak men vet inte hur ska man ändra det för att lösa. Har prövat att ta bort 0 från där, men om man gör så det visar att skapa constructor. Varför måste man skapa om jag har redan skapat den?

Trädvy Permalänk
Medlem
Registrerad
Dec 2015

Du har ingen formatsträng i anropet till String.format() så Java vet inte hur eller var arean och omkretsen ska skrivas ut. Du behöver en formatsträng för vardera arean och omkretsen. Titta på koden du postade igår så ser du hur det fungerar. Eller googla på "Java String.format examples".

Du vill antagligen anropa räkna-konstruktion med argument från inmatningen, x och y, i stället för nollor. Du kan med andra ord inte skapa räkna-objektet före inmatningen.

/Har inte kodat Java på ett par år

Trädvy Permalänk
Entusiast
Testpilot
Plats
Chalmers
Registrerad
Aug 2011

Du frågar användaren efter ett x och ett y, men du använder dem inte till något sedan. De förekommer överhuvudtaget inte i koden efter att du assignat dem.

Det enda du gör just nu är att skapa en räkna med argumenten 0 och 0, vars area och omkrets du sedan skriver ut.

5930K • Corsair DP 32 GiB • EVGA GTX 980 • 2x Swift PG278Q
Better SweClockersDisplayPort över USB-C

Köp processor för framtiden™, men inte grafikkort.

Trädvy Permalänk
Medlem
Registrerad
Apr 2016
Skrivet av Alling:

Du frågar användaren efter ett x och ett y, men du använder dem inte till något sedan. De förekommer överhuvudtaget inte i koden efter att du assignat dem.

Det enda du gör just nu är att skapa en räkna med argumenten 0 och 0, vars area och omkrets du sedan skriver ut.

Jag tänkte också att räkna t = new räkna(0,0) var problem
så ska jag i stället för 0,0 skriva x och y
och sen använda den i koden? Förstod jag rätt?

Trädvy Permalänk
Medlem
Registrerad
Apr 2016
Skrivet av Alling:

Du frågar användaren efter ett x och ett y, men du använder dem inte till något sedan. De förekommer överhuvudtaget inte i koden efter att du assignat dem.

Det enda du gör just nu är att skapa en räkna med argumenten 0 och 0, vars area och omkrets du sedan skriver ut.

Jag har bytte plats (räkna t = new räkna(x, y);) så

String s = JOptionPane.showInputDialog("Ange den sida x"); int x =Integer.parseInt(s); Scanner sc= new Scanner(s); s = JOptionPane.showInputDialog("Ange den sida y"); int y =Integer.parseInt(s); räkna t = new räkna(x, y);

och den funkar jätte bra! TACK FÖR SVAR!

Trädvy Permalänk
Medlem
Registrerad
Apr 2016
Skrivet av KAD:

Du har ingen formatsträng i anropet till String.format() så Java vet inte hur eller var arean och omkretsen ska skrivas ut. Du behöver en formatsträng för vardera arean och omkretsen. Titta på koden du postade igår så ser du hur det fungerar. Eller googla på "Java String.format examples".

Du vill antagligen anropa räkna-konstruktion med argument från inmatningen, x och y, i stället för nollor. Du kan med andra ord inte skapa räkna-objektet före inmatningen.

/Har inte kodat Java på ett par år

Jag har löst problem! Tack för svar!