janerrn Skrevet 30. januar 2013 Del Skrevet 30. januar 2013 Hei! Har akkurat begynt med java på skolen og har første innlevering som jeg har sitti og tukla med i hele dag uten at jeg kommer frem til noe. Og hadde håpet på at noen her inne kunne se på koden og fortelle meg hvor feilene ligger/hva som må forbedres. Oppgave: Et program skal ta et beløp i US-dollar og regne det om til norske kroner (bruk dagens vekslingskurs). Programmet skal beregne og vise hvordan dette beløpet bør utbetales så effektivt som mulig i norske betalingsenheter (alle). Skriv ut både grunnlaget for, og resultatet av, beregningene på en forklarende måte. /* * Valutacalc * */ import static java.lang.System.*; import static java.lang.Integer.*; import static javax.swing.JOptionPane.*; public class Kalkulator { public static void main(String[] args) { // Leser verdi fra brukeren String tallTxt = showInputDialog("Antall US Dollar"); int dollar = parseInt(tallTxt); double valuta = 5,49; // Beregner svarene av regnearbeidet / int svar1 = dollar * valuta; //Skriv ut resultat showMessageDialog(null, dollar * " * " valuta " = " + svar1 + "\n" ); } } Har også en .class fil men det skjønner jeg ikke hva jeg skal med engang, eller hvordan den kan åpnes. Håper noen kunne hjulpet! Lenke til kommentar
janerrn Skrevet 30. januar 2013 Forfatter Del Skrevet 30. januar 2013 Nå har jeg fått koden til å funke men har fortsatt et problem: Programmet skal beregne og vise hvordan dette beløpet bør utbetales så effektivt som mulig i norske betalingsenheter (alle). Skriv ut både grunnlaget for, og resultatet av, beregningene på en forklarende måte. Noen som har peil på hvordan jeg kan få gjort det? /* * Valutacalc * */ import static java.lang.System.*; import static java.lang.Integer.*; import static javax.swing.JOptionPane.*; public class Kalkulator { public static void main(String[] args) { // Leser verdi fra brukeren String tallTxt = showInputDialog("Antall US Dollar"); int dollar = parseInt(tallTxt); double valuta = 5.49; // Beregner svarene av regnearbeidet / double svar1 = dollar * valuta; //Skriv ut resultat showMessageDialog(null, dollar + " * " + valuta + " = " + svar1 + "\n" ); } } Lenke til kommentar
quantum Skrevet 30. januar 2013 Del Skrevet 30. januar 2013 For å finne ut av utbetalingen må du bruke noe som heter modulo: https://www.diskusjon.no/index.php?showtopic=1484825 Kort fortalt gir den det som blir "resten" når du f.eks. har delt ut så mange tusenlapper som det skal til for å dekke et beløp: 5200 % 1000 == 200, dvs. her kan du dele ut 5 tusenlapper, og da står det igjen 200kr. Akkurat hvor mange tusenlapper du har delt ut er altså (5200 - (5200 % 1000)) / 1000 == 5 Så det du trenger å gjøre her er å løpe gjennom de valutaenhetene vi har, ovenfra og nedover, og se hvor mange av hver av disse du skal utbetale, og deretter gjøre det samme med neste valutaenhet og "resten", helt til det ikke er flere valutaenheter igjen. import static java.lang.Integer.parseInt; import static javax.swing.JOptionPane.showInputDialog; import static javax.swing.JOptionPane.showMessageDialog; public class Valuta { private static final double[] valutaEnheter = new double[]{1000,500,100,50,20,10,5,1,0.5}; public static void main(String[] args) { String tallTxt = showInputDialog("Antall US Dollar"); int dollar = parseInt(tallTxt); double valuta = 5.49; double svar1 = dollar * valuta; showMessageDialog(null, dollar + " * " + valuta + " = " + svar1 + "\n" + payOut(svar1 ,0)); } public static String payOut(double restValue, int valutaEnhetIdx) { if (valutaEnhetIdx == valutaEnheter.length) return "\nRest:" + restValue; return "Enhet:" + valutaEnheter[valutaEnhetIdx] + ", Antall:" + ((restValue - (restValue % valutaEnheter[valutaEnhetIdx])) / valutaEnheter[valutaEnhetIdx]) + "\n" + payOut(restValue % valutaEnheter[valutaEnhetIdx], ++valutaEnhetIdx); } } 1 Lenke til kommentar
janerrn Skrevet 30. januar 2013 Forfatter Del Skrevet 30. januar 2013 For å finne ut av utbetalingen må du bruke noe som heter modulo: http://www.diskusjon...owtopic=1484825 Kort fortalt gir den det som blir "resten" når du f.eks. har delt ut så mange tusenlapper som det skal til for å dekke et beløp: 5200 % 1000 == 200, dvs. her kan du dele ut 5 tusenlapper, og da står det igjen 200kr. Akkurat hvor mange tusenlapper du har delt ut er altså (5200 - (5200 % 1000)) / 1000 == 5 Så det du trenger å gjøre her er å løpe gjennom de valutaenhetene vi har, ovenfra og nedover, og se hvor mange av hver av disse du skal utbetale, og deretter gjøre det samme med neste valutaenhet og "resten", helt til det ikke er flere valutaenheter igjen. import static java.lang.Integer.parseInt; import static javax.swing.JOptionPane.showInputDialog; import static javax.swing.JOptionPane.showMessageDialog; public class Valuta { private static final double[] valutaEnheter = new double[]{1000,500,100,50,20,10,5,1,0.5}; public static void main(String[] args) { String tallTxt = showInputDialog("Antall US Dollar"); int dollar = parseInt(tallTxt); double valuta = 5.49; double svar1 = dollar * valuta; showMessageDialog(null, dollar + " * " + valuta + " = " + svar1 + "\n" + payOut(svar1 ,0)); } public static String payOut(double restValue, int valutaEnhetIdx) { if (valutaEnhetIdx == valutaEnheter.length) return "\nRest:" + restValue; return "Enhet:" + valutaEnheter[valutaEnhetIdx] + ", Antall:" + ((restValue - (restValue % valutaEnheter[valutaEnhetIdx])) / valutaEnheter[valutaEnhetIdx]) + "\n" + payOut(restValue % valutaEnheter[valutaEnhetIdx], ++valutaEnhetIdx); } } Okey, hørtes avansert ut det her men sitter og leser nå. Prøvde og ta koden din og kjøre som javafil, men da skjedde det ingenting? Lenke til kommentar
quantum Skrevet 30. januar 2013 Del Skrevet 30. januar 2013 (endret) Vel, dette er jo stort sett din egen kode som du vel har klart å kjøre tidligere i dag? Edit: Merk at klassen heter Valuta, og ikke Kalkulator. Og; skjer det virkelig ingen ting overhodet? Det fins sikkert enklere løsninger for andre fortolkninger av "utbetales så effektivt som mulig" Endret 30. januar 2013 av quantum 1 Lenke til kommentar
quantum Skrevet 30. januar 2013 Del Skrevet 30. januar 2013 (endret) Last ned denne: http://www.jetbrains...load/index.html - Community Edition, så slipper du å sitte og knote i kommandoshell'et, det er håpløst. Endret 30. januar 2013 av quantum 1 Lenke til kommentar
janerrn Skrevet 30. januar 2013 Forfatter Del Skrevet 30. januar 2013 Var navna som gjorde det bare ja, fungerer utmerket nå. Takk for hjelpa! Lasta ned programmet også, virket endel mer hendig. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå