Menu
Coddy logo textTech

Rückblick – Wallet-Mathematik

Teil des Abschnitts Objektorientierte Programmierung der Lua-Journey von Coddy. Lektion 30 von 70.

challenge icon

Aufgabe

Einfach

Erstellen wir eine Wallet-Klasse, die die in diesem Kapitel erlernten Fähigkeiten zur Operatorüberladung zusammenführt. Deine Wallet speichert einen Geldbetrag und unterstützt zwei wichtige Operationen: das Zusammenführen von Wallets mit + sowie das Vergleichen von Wallets mit <code>< und .

Du organisierst deinen Code auf zwei Dateien verteilt:

  • Wallet.lua: Definiere deine Wallet-Klasse mit einem amount-Feld, das angibt, wie viel Geld sie enthält. Füge einen :new(amount)-Konstruktor hinzu und implementiere zwei Metamethoden:
    • __add: Das Addieren zweier Wallets erstellt eine neue Wallet mit der kombinierten Gesamtsumme
    • __lt: Der Vergleich von Wallets bestimmt, welche weniger Geld enthält
  • main.lua: Binde dein Wallet-Modul ein, erstelle Wallet-Instanzen und führe vor, wie beide Operationen zusammen funktionieren.

Du erhältst drei Eingaben:

  1. Betrag in der ersten Wallet
  2. Betrag in der zweiten Wallet
  3. Betrag in der dritten Wallet

Erstelle in deiner Hauptdatei drei Wallets mit den angegebenen Beträgen. Dann:

  1. Addiere die erste und die zweite Wallet, um eine kombinierte Wallet zu erstellen
  2. Gib den Betrag der kombinierten Wallet aus
  3. Vergleiche die kombinierte Wallet mithilfe von <code>< mit der dritten Wallet und gib das Ergebnis (true oder false) aus
  4. Vergleiche die kombinierte Wallet mithilfe von mit der dritten Wallet und gib das Ergebnis (true oder false) aus

Wenn die Eingaben beispielsweise 50, 30 und 100 lauten, sollte die Ausgabe wie folgt aussehen:

80
true
false

Die erste Wallet (50) und die zweite Wallet (30) ergeben zusammen eine Wallet mit 80. Da 80 kleiner als 100 ist, lautet das Ergebnis des ersten Vergleichs true. Da 80 nicht größer als 100 ist, lautet das Ergebnis des zweiten Vergleichs false.

Probier es selbst

local Wallet = require('Wallet')

-- Eingabe lesen
local amount1 = tonumber(io.read())
local amount2 = tonumber(io.read())
local amount3 = tonumber(io.read())

-- TODO: Erstelle drei Wallets mit den angegebenen Beträgen

-- TODO: Addiere das erste und das zweite Wallet, um ein kombiniertes Wallet zu erstellen

-- TODO: Gib den Betrag des kombinierten Wallets aus

-- TODO: Vergleiche das kombinierte Wallet mit dem dritten Wallet mittels < und gib das Ergebnis aus

-- TODO: Vergleiche das kombinierte Wallet mit dem dritten Wallet mittels > und gib das Ergebnis aus

Alle Lektionen in Objektorientierte Programmierung

Übe selbstständig: Online-Lua-Compiler