Frage zu Übungsaufgabe, Array

Honky

Mitglied
Ich soll einen Geldautomaten schreiben, der nur Geldscheine hat.

Wenn der Benutzer nun einen Geldbetrag eingibt, soll der Geldautomat diesen Betrag in eine möglichst geringe Anzahl an Scheinen teilen.

(Es soll auch noch überprüft werden, ob der eingegebene Betrag überhaupt verarbeitet werden kann, da der Automat keine Münzen hat.)




Mein Problem is eig. nur, ich weiß nich genau, also rein von der Logik her, welche Schritte ich da machen muss.

* Zuerst Betrag eingeben is klar.
* Dann überprüfen in wieviele Scheine ich den Betrag ausgeben kann. (hier hänge ich)

Ich könnte theoretisch, mit 5 If Anweisungen abfragen, ob der Betrag / 100 teilbar ist, ob der Betrag / 50 teilbar ist........
Aber da komme ich nich auf die minimale Ausgabe.

Mein Programm im Moment, siehe Bild:Geldautomat.jpg
 
@Honky
- hat der Kunde den Betrag auf seinem Konto?
- welche Scheine und wieviel davon hat der Automat?
- bis zur welcher Summe (prozentual) soll in großen Scheinen verfahren werden?

Beispiel hier: wenn ich 500€ abhebe, bekomme ich 9/10 in Fünfziger und der Rest in 1x20€, 2x10€, 2x5€ ausbezahlt.

Ich könnte theoretisch...
Viele Wege führen nach Rom. Wie weit sind deine Kenntnisse in Java, bzw. programmieren?
 
Deine for-Schleife ist schon richtig.

In "anzahl" speicherst du die Anzahl des Scheins am aktuellen Index, die du brauchst.

Jetzt musst du nur noch den Betrag neu berechnen, der überbleibt.
Das geht zum Beispiel mit der Modulo-Operation.
 
Code:
package geldautomat;

import java.util.Scanner;

public class geldautomat {
    public static void main(String[] args) {
        int Betrag;
        int wahr;
        Scanner input = new Scanner(System.in);
        System.out.println("Bitte Betrag angeben");
        Betrag=input.nextInt();
        input.close();
        wahr=Betrag % 5;
        if (wahr > 0)

        {
            System.out.println("Bitte 5,10,20 oder 100 Euro wählen");
        }
        else
        {
            System.out.println("Der Betrag ist " + Betrag);
        }
    }

}

Bei mir geht es so ich brauch keine Schleife.
 
Der Geldautomat will nur das der benutzer einen Geldbetrag eintippt, dann spuckts der Geldautomat aus, und zwar so wenig Scheine wie möglich. Er hat die Scheine {100, 50, 20, 10, 5}


Ich glaube @Tarrew hat das schon richtig erkannt, kanns nur nich so umsetzen^^.

Ich weiß die modulo operation, spuckt mir einfach bei einer Division nur den Rest der übrig bleibt aus.

Das heißt, wenn ich 250€ eintippe, und ich rechne 250%100=50, so die 50 muss ich dann als neuen Betrag schreiben, dann 50%50=0 fertig.


Habs nun so geschrieben, aber wenn ich als Betrag 75€ eingebe, dann schreibt er mir, "hier sind ihre 75€ in 26 Scheinen". Er müsste mir aber 3 Scheine ausspucken.
 

Anhänge

  • Geldautomat.jpg
    Geldautomat.jpg
    72,9 KB · Aufrufe: 106
Ach hab den fehler schon,

Code:
package com.company;
import java.util.Scanner;



public class Main {
    static Scanner input = new Scanner(System.in);


    public static void main(String[] args) {
        int betrag;
        int anzahl;
        int rest;
        int scheine = 0;

        System.out.print("Bitte Geldbetrag eingeben: ");
        betrag = input.nextInt();

        int geldautomat[] = {100,50,20,10,5};

        for(int i = 0; i<=4; i++){

            if(betrag%5!=0)
                i=5;

            anzahl = betrag / geldautomat[i];
            scheine = scheine + anzahl;
            betrag = betrag%geldautomat[i];

            if(betrag==0)
                i=5;




        }


        System.out.println("hier sind ihre " + scheine " Scheine");
    }
}

So gehts, damit kann ich arbeiten, danke 🙂
 

Zurück
Oben