Menu
Coddy logo textTech

Para Çekme Metodu

Coddy'nin Lua Journey'sinin Object Oriented Programming bölümünün bir parçası — ders 21 / 70.

challenge icon

Görev

Kolay

Dijital Bankanız büyüyor! Hesaplar artık para yatırma işlemlerini kabul edebiliyor, ancak gerçek bir bankanın müşterilerin para çekmesine de izin vermesi gerekir. Haydi bir :withdraw(amount) metodu ekleyelim—ancak önemli bir güvenlik kontrolü ile birlikte.

Para yatırma işlemlerinin aksine, para çekme işlemleri başarısız olabilir. Eğer bir müşteri sahip olduğundan daha fazla para çekmeye çalışırsa, banka buna izin vermemelidir. Para çekme metodunuzun, tutarı düşmeden önce yeterli bakiye olup olmadığını kontrol etmesi gerekir.

İki dosyanız üzerinde çalışmaya devam edeceksiniz:

  • Account.lua: Mevcut Account sınıfınıza bir :withdraw(amount) metodu ekleyin. Eğer hesabın yeterli bakiyesi varsa, tutarı düşürün ve true döndürün. Eğer yeterli bakiye yoksa, Insufficient funds yazdırın ve bakiyeyi değiştirmeden false döndürün.
  • main.lua: Bir hesap oluşturun, ona biraz fon sağlamak için bir para yatırma işlemi yapın, ardından hem başarılı hem de başarısız işlemleri görmek için birkaç para çekme denemesi yapın.

Dört girdi alacaksınız:

  1. Başlangıç yatırma tutarı
  2. Birinci para çekme tutarı
  3. İkinci para çekme tutarı
  4. Üçüncü para çekme tutarı

Ana dosyanızda bir hesap oluşturun, başlangıç tutarını yatırın, ardından her bir para çekme işlemini sırasıyla deneyin. Her para çekme denemesinden sonra, mevcut bakiyeyi yeni bir satıra yazdırın. Başarısız para çekme işlemlerinin, bakiyeyi yazdırmadan önce Insufficient funds yazdıracağını unutmayın.

Örneğin, girdiler 100, 30, 50 ve 40 ise, çıktı şöyle olmalıdır:

70
20
Insufficient funds
20

Hesap, para yatırma işleminden sonra 100 ile başlar. 30'luk ilk para çekme işlemi başarılı olur (bakiye: 70), 50'lik ikinci para çekme işlemi başarılı olur (bakiye: 20), ancak 40'lık üçüncü para çekme işlemi başarısız olur çünkü sadece 20 kalmıştır—bu nedenle bakiye 20'de kalır.

Kendin dene

-- Account modülünü dahil et
local Account = require('Account')

-- Dört girdiyi oku
local initialDeposit = tonumber(io.read())
local withdrawal1 = tonumber(io.read())
local withdrawal2 = tonumber(io.read())
local withdrawal3 = tonumber(io.read())

-- Tek bir hesap oluştur
local account = Account:new()

-- Başlangıç tutarını yatır
account:deposit(initialDeposit)

-- İlk para çekme işlemini dene ve bakiyeyi yazdır
-- TODO: burada account:withdraw(withdrawal1) çağrısı yapın
print(account.balance)

-- İkinci para çekme işlemini dene ve bakiyeyi yazdır
-- TODO: burada account:withdraw(withdrawal2) çağrısı yapın
print(account.balance)

-- Üçüncü para çekme işlemini dene ve bakiyeyi yazdır
-- TODO: burada account:withdraw(withdrawal3) çağrısı yapın
print(account.balance)

Object Oriented Programming bölümündeki tüm dersler