Menu
Coddy logo textTech

Повторение — Математика кошелька

Часть раздела Object Oriented Programming путешествия по Lua на Coddy — урок 30 из 70.

challenge icon

Задание

Легко

Давайте создадим класс Wallet, который объединит навыки перегрузки операторов, полученные вами в этой главе. Ваш кошелек будет хранить сумму денег и поддерживать две ключевые операции: объединение кошельков с помощью + и сравнение кошельков с помощью <code>< и .

Вы организуете свой код в двух файлах:

  • Wallet.lua: Определите класс Wallet с полем amount, представляющим количество денег, которое в нем хранится. Включите конструктор :new(amount) и реализуйте два метаметода:
    • __add: Сложение двух кошельков создает новый кошелек, содержащий общую сумму
    • __lt: Сравнение кошельков определяет, в каком из них меньше денег
  • main.lua: Подключите модуль Wallet, создайте экземпляры кошельков и продемонстрируйте совместную работу обеих операций.

Вы получите три входных значения:

  1. Сумма в первом кошельке
  2. Сумма во втором кошельке
  3. Сумма в третьем кошельке

В основном файле создайте три кошелька с заданными суммами. Затем:

  1. Сложите первый и второй кошельки вместе, чтобы создать объединенный кошелек
  2. Выведите сумму объединенного кошелька
  3. Сравните объединенный кошелек с третьим кошельком, используя <code><, и выведите результат (true или false)
  4. Сравните объединенный кошелек с третьим кошельком, используя , и выведите результат (true или false)

Например, если входные данные равны 50, 30 и 100, вывод должен быть следующим:

80
true
false

Первый кошелек (50) плюс второй кошелек (30) создают объединенный кошелек с суммой 80. Поскольку 80 меньше 100, первое сравнение дает true. Поскольку 80 не больше 100, второе сравнение дает false.

Попробуйте сами

local Wallet = require('Wallet')

-- Чтение входных данных
local amount1 = tonumber(io.read())
local amount2 = tonumber(io.read())
local amount3 = tonumber(io.read())

-- TODO: Создать три кошелька с заданными суммами

-- TODO: Сложить первый и второй кошельки вместе, чтобы создать объединенный кошелек

-- TODO: Вывести сумму объединенного кошелька

-- TODO: Сравнить объединенный кошелек с третьим кошельком с помощью < и вывести результат

-- TODO: Сравнить объединенный кошелек с третьим кошельком с помощью > и вывести результат

Все уроки раздела Object Oriented Programming