Menu
Coddy logo textTech

Para Çekme Metodu

Coddy'nin Lua Journey'sinin Nesne Yönelimli Programlama 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. Bir :withdraw(amount) yöntemi ekleyelim, ancak önemli bir güvenlik kontrolüyle.

Para yatırma işlemlerinden farklı olarak para çekme işlemleri başarısız olabilir. Bir müşteri hesabında bulunandan daha fazla para çekmeye çalışırsa banka buna izin vermemelidir. withdraw yönteminiz, tutarı düşmeden önce yeterli bakiyenin olup olmadığını kontrol etmelidir.

İki dosyanızla çalışmaya devam edeceksiniz:

  • Account.lua: Mevcut Account sınıfınıza bir :withdraw(amount) yöntemi ekleyin. Hesabın bakiyesi yeterliyse tutarı çıkarın ve true döndürün. Yeterli bakiye yoksa Insufficient funds yazdırın ve bakiyeyi değiştirmeden false döndürün.
  • main.lua: Bir hesap oluşturun, hesaba bir miktar para yatırın ve ardından hem başarılı hem de başarısız işlemleri görmek için birkaç para çekme girişiminde bulunun.

Dört girdi alacaksınız:

  1. Başlangıç para yatırma tutarı
  2. İlk 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 ve ardından her para çekme işlemini sırayla gerçekleştirmeyi deneyin. Her para çekme girişiminden sonra mevcut bakiyeyi yeni bir satıra yazdırın. Başarısız para çekme işlemlerinin de 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

Para yatırma işleminden sonra hesap 100 ile başlar. İlk 30 tutarındaki para çekme işlemi başarılı olur (bakiye: 70), ikinci 50 tutarındaki para çekme işlemi başarılı olur (bakiye: 20), ancak yalnızca 20 kaldığı için üçüncü 40 tutarındaki para çekme işlemi başarısız olur ve bakiye 20 olarak kalır.

Kendin dene

-- Account modülünü gerektir
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
print(account.balance)

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

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

Nesne Yönelimli Programlama bölümündeki tüm dersler

Kendi başına pratik yap: Online Lua derleyicisi