
Ein Konto verfügt über einen Betrag von 5000 €. Bei einem Minus-Zeichen vor dem eingegebenen Betrag wird der Betrag vom Kontostand abgezogen, steht vor dem Betrag ein Plus-Zeichen wird der Betrag auf das Konto eingezahlt.
Das Programm stellt fest:
- ob es sich um eine Ein- oder Auszahlung handelt, fehlt die Information, wird eine Fehlermeldung angezeigt.
- ob sich das Konto durch den auszuzahlenden Betrag im Soll befindet
in diesem Fall wird kein Geld ausgezahlt - wie viele Scheine im Wert von 50 €, 20 € und 10 € ausgegeben werden müssen
So sieht es aus:

Lege im Kopf des Programms die globalen Variablen fest.
1 2 3 4 5 6 | int Kontostand = 5000; // Scheine, die eingezahlt/ausgegeben werden int Fuenfziger; int Zwanziger; int Zehner; |
Im setup-Teil wird der Serielle Monitor gestartet und die ⇒Funktion KontoAnzeigen() aufgerufen. Der Funktion wird der aktuelle Kontostand als Variable übergeben. Außerdem dient sie als Information über den Ablauf des Programms.
1 2 3 4 5 6 7 8 9 10 | void setup() { Serial.begin(9600); // auf serielle Verbindung warten while (!Serial) {;} // Startbildschjirm KontostandAnzeigen(Kontostand); } |
1 2 3 4 5 6 7 8 9 10 11 12 13 | void KontostandAnzeigen(int Kontostand) { // Kontostand anzeigen // \u20ac = € Serial.println(“Neuer Kontostand: ” + String(Kontostand) + ” \u20ac”); Serial.println(“——————————————————-”); Serial.println(“Wie viel m\u00f6chtest du einzahlen oder abheben?”); Serial.println(“Der Betrag muss durch 10 teilbar sein!”); Serial.println(“Auszahlung -> dem Betrag ein — Zeichen voranstellen”); Serial.println(“Einzahlung -> dem Betrag ein + Zeichen voranstellen”); Serial.println(“——————————————————-”); } |
Der loop-Teil fragt die Eingabe ab. Dem Betrag muss ein Minus-Zeichen oder ein Plus-Zeichen vorangestellt werden. Beachte die Kommentare.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | void loop() { // abgehobener/eingezahlter Betrag int Betrag; // auf serielle Eingabe warten while (Serial.available() > 0) { // Eingabe im Seriellen Monitor bis zum return lesen String Eingabe = Serial.readStringUntil’\n’); // return entfernen Eingabe = Eingabe.substring(0, Eingabe.length()); // Testen, ob das erste Zeichen + char(43) oder — char(45) ist if (Eingabe.charAt(0) == char(43) || Eingabe.charAt(0) == char(45)) { // Auszahlung if (Eingabe.startsWith(“-”)) { Betrag = Eingabe.toInt() * -1; // Betrag muss durch 10 teilbar sein if (Betrag % 10 == 0) BetragAuszahlen(Betrag); } // Einzahlung if (Eingabe.startsWith(“+”)) { Betrag = Eingabe.toInt(); // Betrag muss durch 10 teilbar sein if (Betrag % 10 == 0) BetragEinzahlen(Betrag); } } } } |
Die Funktionen BetragAuszahlen() und BetragEinzahlen() sorgen für die Berechnung des Kontostandes. Außerdem wird hier die Funktion AnzahlScheine() aufgerufen. Sie berechnet mit Hilfe von ⇒modulo die Anzahl der 50er, 20er und 10er. Beachte die Kommentare.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | void BetragEinzahlen(int Betrag) { Kontostand = Kontostand + Betrag; // \u00f6 = ö, \u20ac = € Serial.println(“Du m\u00f6chtest ” + String(Betrag) + ” \u20ac einzahlen.”); // Anzahl der Scheine (50, 20 und 10) feststellen AnzahlScheine(Betrag); // Kontostand und Info anzeigen KontostandAnzeigen(Kontostand); } void BetragAuszahlen(int Betrag) { // der auszuzahlende Betrag ist zu hoch, das Konto ist im Soll // \u00f6 = ö, \u20ac = € if (Kontostand - Betrag < 0) { Serial.println(“Auszahlung nicht m\u00f6glich!”); Serial.println(“Kontostand ist im Soll: ” + String(Kontostand - Betrag) + ” \u20ac”); Serial.println(“Bitte gib einen kleineren Betrag ein!”); Serial.println(“—————————————-”); } // Betrag auszahlen else { Kontostand = Kontostand - Betrag; Serial.println(“Du m\u00f6chtest ” + String(Betrag) + ” \u20ac abheben.”); Serial.println(“Du bekommst:”); // Anzahl der Scheine (50, 20 und 10) feststellen AnzahlScheine(Betrag); // Kontostand und Info anzeigen KontostandAnzeigen(Kontostand); } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | void AnzahlScheine(int Betrag) { // Anzahl der 50er int Rest = Betrag % 50; /* vom Betrag den Rest abziehen Beispiel: 130 % 50 ergibt Rest 30 130 — 30 = 100 100 ist durch 50 teilbar */ Fuenfziger = (Betrag - Rest) / 50; /* Rest berechnen wenn nicht durch 20 teilbar, kann neuerRest nur 10er sein 30 % 20 ergibt Rest 10 */ int neuerRest = Rest % 20; /* Anzahl der 20er der neueRest muss von Rest abgezogen werden -> ergibt die 20er */ Zwanziger = (Rest - neuerRest) / 20; // Anzahl der 10er Zehner = neuerRest / 10; // Anzahl der Geldscheine anzeigen if (Fuenfziger > 0) Serial.println(String(Fuenfziger) + ” F\u00fcnfziger”); if (Zwanziger > 0) Serial.println(String(Zwanziger) + ” Zwanziger”); if (Zehner > 0) Serial.println(String(Zehner) + ” Zehner”); } |
Verwandte Anleitungen:
- Einmaleinsreihen anzeigen
- Einmaleinsreihen — Anzeige mit Keyes-Fernbedienung
- Fußballtipp
- Kniffel — EEPROM verwenden
- Lottozahlen — Anzeige im Seriellen Monitor
- Primzahlen ermitteln
- Satzmaschine
- Städte-Info
- Teiler bestimmen
- Vokale zählen
Letzte Aktualisierung:






