Avatar billede davallen Nybegynder
06. september 2009 - 15:25 Der er 4 kommentarer og
1 løsning

Java for begyndere

Jeg er i gang med at lave et program der kan omregne 47.63 dollars til
4 ten dollars
1 five dollars
2 one dollars
2 quarters
1 dimes
0 nickles
3 pennies

Jeg kan dog ikke komme videre med at finde dimes,nickles og pennies. Når jeg tester den kode der nu, kommer der en fejl.
Nogen der kan hjælpe?

Indtil videre ser det sådan ud:


package dollarsomregner;

import java.util.Scanner;

public class Dollars {
    private double int;

    public Dollars() {
     
    }

    public static void main(String[] args) {
        Dollars dollars = new Dollars();
       
        double beløb;
       
        Scanner scan;
       
        scan = new Scanner(System.in);

        beløb = scan.nextInt();
       
        int ten = (int)beløb / 10;
        int five = (int)(beløb / 5) % 5;
        int one = (int) beløb % 10;
        int quarter = (int) ((beløb /0.25) %10) * 10;


        System.out.println("ten dollar bills " + ten);
        System.out.println("five dollar bills " + five);
        System.out.println("one dollar bills " + one);
        System.out.println("quarters " + quarter);
       
       
             
    }
}
Avatar billede erikjacobsen Ekspert
06. september 2009 - 15:52 #1
I stedet for at problemet stedse bliver mere kompliceret, kan du gøre det sådan her:

1) Find antal 10-ere.
2) Træk antal*10 fra beløbet.
3) Find antal 5-ere.
4) Træk antal*5 fra beløbet.
5) ...osv...

På den måde vil det altid være den samme beregning du skal lave, blot med et udskiftet tal.
Avatar billede davallen Nybegynder
06. september 2009 - 16:14 #2
Jeg er ikke helt med. Jeg lavede et lignende program, bare med omregning af sekunder til timer, minutter og sekunder. Denne løsning kan jeg godt lide samt min lærer.

Den kode ser sådan her ud:

package houromvendtfunk;

import java.util.Scanner;

public class Umut {
    public Umut() {
        super();
    }

    public static void main(String[] args) {
        Umut umut = new Umut();
       

      int sekunder;
       
        Scanner scan;
       
        scan = new Scanner(System.in);
       
        sekunder = scan.nextInt();

        int h = sekunder / 60 / 60;
        int m = (sekunder / 60) % 60;
        int s = sekunder % 60;
       
       
        System.out.println(sekunder+ " sekunder giver " + h + " timer, " + m + " minutter og " + s + " sekunder");
                                     
       
   
    }
}

Det skal lige siges, jeg lige er startet på datamatiker uddannelsen d. 1. september 2009.
Avatar billede superanden Nybegynder
06. september 2009 - 17:18 #3
Der er lidt fejl i det du har skrevet:

linjen private double int; er ulovlig da int er reserveret
Du vil gerne kunne regne på kommatal så må du jo indlæse kommatal også i din keyboard scanner.

Din ligning til at regne antal 5'ere ud er heller ikke rigtig. Du sige beløb /5 % 5.

Hvis du indtaster 45 så er 45/5 = 9 , 9 MOD 5 = 4. Men der skal jo ikke bruges 4 5'ere.

Så koden trænger vist til at blive gennemgået lidt grundigere.
Avatar billede davallen Nybegynder
06. september 2009 - 18:26 #4
Det er derfor jeg skriver her.
Håber på der er nogen der kan hjælpe med koden!
Avatar billede superanden Nybegynder
06. september 2009 - 18:52 #5
Har du så ikke prøvet at arbejde med nogle af de input du får? Det er jo ikke en gavebod..

Her er et eksempel på hvordan jeg ville lave det. Det tager en double som input (med . som seperator) og regner det rigtige antal 10'ere, 5'ere og 1'ere ud. Jeg har ikke implementeret alle ørene dem må du selv igang med.


import java.util.Scanner;

public class Dollars {

    public Dollars() {
    }

    public static void main(String[] args) {
        Dollars dollars = new Dollars();
     
        double beloeb;     
        Scanner scan = new Scanner(System.in);
       
        // Scanneren læser en streng
        String input = scan.next();
        // Strengen omformes til et kommatal
        beloeb = Double.parseDouble(input);
     
        // Antal 10'ere
        int ten = (int)beloeb / 10;
        beloeb = beloeb - (ten*10);
       
        int five = (int)(beloeb) / 5;
        beloeb = beloeb - (five*5);
       
        int one = (int) beloeb/1;
        beloeb = beloeb - (one*1);


        System.out.println("ten dollar bills " + ten);
        System.out.println("five dollar bills " + five);
        System.out.println("one dollar bills " + one);
      // System.out.println("quarters " + quarter);
     
     
           
    }
}
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