Menu
Coddy logo textTech

Powtórka — działania na portfelu

Część sekcji Programowanie obiektowe ścieżki Lua w Coddy. Lekcja 30 z 70.

challenge icon

Wyzwanie

Łatwy

Zbudujmy klasę Wallet, która łączy umiejętności przeciążania operatorów poznane w tym rozdziale. Twój portfel będzie przechowywać kwotę pieniędzy i obsługiwać dwie kluczowe operacje: łączenie portfeli za pomocą + oraz porównywanie portfeli za pomocą < i >.

Rozmieścisz swój kod w dwóch plikach:

  • Wallet.lua: Zdefiniuj klasę Wallet z polem amount reprezentującym ilość przechowywanych pieniędzy. Dodaj konstruktor :new(amount) i zaimplementuj dwie metody metatabeli:
    • __add: Dodanie dwóch portfeli tworzy nowy portfel zawierający łączną kwotę
    • __lt: Porównanie portfeli określa, w którym z nich jest mniej pieniędzy
  • main.lua: Załaduj moduł Wallet, utwórz instancje portfela i pokaż działanie obu operacji.

Otrzymasz trzy dane wejściowe:

  1. Kwota w pierwszym portfelu
  2. Kwota w drugim portfelu
  3. Kwota w trzecim portfelu

W pliku głównym utwórz trzy portfele z podanymi kwotami. Następnie:

  1. Dodaj do siebie pierwszy i drugi portfel, aby utworzyć połączony portfel
  2. Wypisz kwotę połączonego portfela
  3. Porównaj połączony portfel z trzecim portfelem za pomocą < i wypisz wynik (true lub false)
  4. Porównaj połączony portfel z trzecim portfelem za pomocą > i wypisz wynik (true lub false)

Na przykład, jeśli dane wejściowe to 50, 30 i 100, wynikiem powinno być:

80
true
false

Pierwszy portfel (50) plus drugi portfel (30) tworzy połączony portfel z kwotą 80. Ponieważ 80 jest mniejsze niż 100, pierwsze porównanie daje true. Ponieważ 80 nie jest większe niż 100, drugie porównanie daje false.

Spróbuj swoich sił

local Wallet = require('Wallet')

-- Wczytaj dane wejściowe
local amount1 = tonumber(io.read())
local amount2 = tonumber(io.read())
local amount3 = tonumber(io.read())

-- TODO: Utwórz trzy portfele z podanymi kwotami

-- TODO: Dodaj do siebie pierwszy i drugi portfel, aby utworzyć połączony portfel

-- TODO: Wypisz kwotę w połączonym portfelu

-- TODO: Porównaj połączony portfel z trzecim portfelem za pomocą < i wypisz wynik

-- TODO: Porównaj połączony portfel z trzecim portfelem za pomocą > i wypisz wynik

Wszystkie lekcje w sekcji Programowanie obiektowe

Poćwicz samodzielnie: Kompilator Lua online