Menu
Coddy logo textTech

Получение баланса

Часть раздела Объектно-ориентированное программирование путешествия по Lua на Coddy. Урок 22 из 70.

challenge icon

Задание

Легко

Ваш Digital Bank действительно обретает форму! Счета могут получать deposit и обрабатывать снятия с надлежащей проверкой средств. Теперь добавим геттер-метод для получения balance, а затем объединим всё в реалистичном банковском сценарии.

Вы продолжите работу с существующими файлами:

  • Account.lua: добавьте метод :getBalance(), который returns текущий balance. Это соответствует паттерну геттера, который вы изучили ранее: он обеспечивает контролируемый доступ к внутренним данным вместо прямого обращения к полю. Сохраните всю существующую функциональность (constructor, deposit и методы withdraw).
  • main.lua: создайте account и выполните последовательность банковских операций, чтобы продемонстрировать, как deposit, снятия и проверки balance работают вместе в реальном сценарии.

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

  1. Сумма первоначального deposit
  2. Сумма первого снятия
  3. Сумма второго deposit
  4. Сумма второго снятия
  5. Сумма третьего снятия

В основном файле создайте account и выполните следующие операции по порядку:

  1. Внесите первоначальную сумму, затем выведите balance с помощью :getBalance()
  2. Выполните первое снятие, затем выведите balance
  3. Внесите вторую сумму, затем выведите balance
  4. Выполните второе снятие, затем выведите balance
  5. Попробуйте выполнить третье снятие, затем выведите balance

Помните, что неудачные снятия выведут Insufficient funds перед выводом balance.

Например, если входные значения равны 200, 50, 100, 180 и 100, результат должен быть таким:

200
150
250
70
Insufficient funds
70

Счёт начинается с 200, уменьшается до 150 после первого снятия, увеличивается до 250 после ещё одного deposit, уменьшается до 70 после снятия 180 и остаётся равным 70, когда последнее снятие 100 завершается неудачей из-за недостатка средств.

REQUIRED OUTPUT FORMAT: [Your translated content here]

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

-- Подключить модуль Account
local Account = require('Account')

-- Прочитать пять входных значений
local initialDeposit = tonumber(io.read())
local withdrawal1 = tonumber(io.read())
local deposit2 = tonumber(io.read())
local withdrawal2 = tonumber(io.read())
local withdrawal3 = tonumber(io.read())

-- Создать один счёт
local account = Account:new()

-- Внести начальную сумму и вывести баланс с помощью :getBalance()
account:deposit(initialDeposit)
print(account:getBalance())

-- Попытаться выполнить первое снятие и вывести баланс
account:withdraw(withdrawal1)
print(account:getBalance())

-- Внести вторую сумму и вывести баланс
account:deposit(deposit2)
print(account:getBalance())

-- Попытаться выполнить второе снятие и вывести баланс
account:withdraw(withdrawal2)
print(account:getBalance())

-- Попытаться выполнить третье снятие и вывести баланс
account:withdraw(withdrawal3)
print(account:getBalance())

Все уроки раздела Объектно-ориентированное программирование

Потренируйтесь самостоятельно: Онлайн-компилятор Lua