مشاركة حلول: مهمة سحب الأموال آلياً

جميل جدا fire13542
هناك ملاحظات بسيطة

  • اتبع هذا الفيديو من خلال هذا الرابط حتى تنسق الكود جيدا:
    https://youtu.be/hUR-kZEmck8
  • لاحظ انك استعملت < و هو ما يجعل القيمة المساوية تقسم مثلا لو استعملنا
withdraw(200)

النتيجة ستكون على هذا الشكل

give  100
give  50
give  10
give  10
give  10
give  10
give  2
give  2
give  2
give  2
give  1
give  1

يعني 100 الاخيرة تقسم و كان من المفروض ان تظهر give 100

  • لم تضع احتمال القيمة المراد سحبها اكبر من الرصيد الاولي و لم تقم بانقاص المبلغ المحسوب من الرصيد الاولي
  • ضع في الحسبان القيمة 5 بدل تقسيمها الى قيم 2 و 1.
    بالتوفيق
1 Like

السلام عليكم حللته بطريقتين
الطريقة الأولى

# App: ATM card program
# Author: Fadi Rustom
# Definition of variables
money = 500
# أدخل المبلغ المراد سحبه
request = int(input("Enter the amount to be withdrawn"))
i = 1
# Start program

# When things are correct, execute the program
if request > money:
    print("Enter a lower amount because your balance is currently on", money, "$")
    # أدخل مبلغاً أقل لأن رصيدك حاليا
else:
    while request > 0:

        while request > 99:
            print(i, " Give 100$")
            request -= 100
            i += 1

        while request > 49:
            print(i, " Give 50$")
            request -= 50
            i += 1

        while request > 9:
            print(i, " Give 10$")
            request -= 10
            i += 1

        while request > 4:
            print(i, " Give 5$")
            request -= 5
            i += 1

        if i > 4:
            print(i, " Give ", request, " $")
            request -= i
            i += 1
        else:
            while request:
                print(i, " Giv 1$")
                request -= 1
                i += 1
    print("Checkout completed ")

الطريقة الثانية

money = 500
i=1
req = int (input ("Enter money "))
if req > money :
    print  ("no Money ")
else :
    while req > 0:
        if req > 99:
            print  ("100")
            req -= 100
        elif req > 50:
            print  ("50")
            req -= 50
        elif req > 10:
            print  ("10")
            req -=10
        elif req > 5:
            print  ("5")
            req -= 5
        else :
            if i <5:
                print  ("1")
                req -= 1
            else :
                print (req)
                req -= i
        i += 1
print  ("End")
1 Like

عمل رائع يا فادي :+1:

فقط بالنسبة request > 99 أو request > 49 أو البقية

بإمكانك تستعمل request >= 100 أو request >=50 وهكذا

الفرق فقط أن الكود سيصبح أوضح للقارئ :wink:

@YaserAlnajjar انا مش عارف اعمله مش متخايل اكتب ازاى الاكواد ؟ ومش عايز اغش الاكواد غير ما افهم

1 Like
			elif request < 100 and request >= 50 :
معنى الكود ده ايه ؟ 

@YaserAlnajjar

1 Like
						elif request < 100 and request >= 50 :

ما وظيفة الكود ده يا استاذ
@YaserAlnajjar

1 Like

بالتأكيد، لا داعي للغش :smile:

أسأل كيفما تشاء، ونحن سنجيبك.

معناه “إذا request ما بين 50 و 100”

السلام عليكم …الحل مشابه لبعض الطلبة ولكن هذا اقرب حل بإستخدام الحل البسيط :wink:

`# allowed papers: 100, 50, 10, 5, and rest of request

bank_account = 500
request = 277
if request <= bank_account:
if request > 0:
    while request > 0:
        if request >= 100:
            print('give', 100)
            request -= 100
        elif request < 100 and request >= 50:
            print('give', 50)
            request -= 50
        elif request < 50 and request >= 10:
            print('give', 10)
            request -= 10
        elif request < 10 and request >= 5:
            print('give', 5)
            request -= 5
        else:
            print('give', request)
            break
else:
    print('Please try smaller amount!')
else:
    print('Sorry sir you don\'t have any money in your bank account :(')`
1 Like

يا جماعه انا اريد ان اجعل من برنامج انه يسحب كذه شخص و فى نفس الوقت يوجد مبلغ معين فى المكنه حين ينفذ المال لا يعد معادلت التى فى الاكواد كيف ما الفكره ؟

money = 500
def bank():
    try:
        request = input('how much:')
        request = int (request)

        if request <= money:
            if request > 0:
                while request > 0:
                    if request >= 100:
                        request -= 100
                        print("donner 100")
                    elif request < 100 and request >= 50:
                        request -= 50
                        print("donner 50")
                    elif request < 50 and request >= 10:
                        request -= 10
                        print("donner 10")
                    elif request < 10 and request >= 5:
                        request -= 5
                        print("donner 5")
                    else:
                        print("donner" , request)
                        break
            else:
                print("impossible de retirer ",request,"$ veuillez réessayer")
        else:
            print("votre solde est insuffisant pour effectuer cette operation. veuillez recharger votre compte")

    except ValueError:
        bank(277)
count = 0
while count < 1000:
   bank()
   count += 1

ارجو الرد يا اصدقائى

1 Like

عمل جيد يا حسام

لكن بالنسبة لـ:

if request <= bank_account:
if request > 0:

من الأفضل أن تضع الشروط مع بعض في سطر واحد

أولاً يا محمود، أنصحك بعدم النظر نهائياً للحلول الموجودة.

ولما قمت بعملية السحب ألف مرة؟ مالذي تريد القيام به بالضبط؟

1 Like

تمام لكن كيف اعرف الحل ؟ انا كنت لا اعرف تمام كيف اكتب كود المكنه بسبب قلة الخبره …اعتذر
انا كتبت سحب 1000 مره بسبب وجود الف شخص والنقود لها مبلغ معين حين ينفذ تقول للى عميل نأسف لا يوجد ماال
كنت اريد ان اجعله مثل منحة الطلابه ايضا ناس ذهب تدخل مبلغ هل فهمتنى ؟

1 Like

هممم، الحل لسؤالك مشابه للحل باستعمال الـ class (الصنف)

حاول تتابع في الدروس وأعتقد بتفهم كيف تعملها

1 Like

مش فهم !

1 Like

فقط تابع الدروس القادمة وستعرف قصدي :wink:

2 Likes

طنت انظمها لنشرها هنا فوضعت مسافات بيضاء إضافيه :sleepy::sweat_smile:

2 Likes
money = int ( input ( ) )
request = int ( input ( ) )
if money < request :
    print( " sorry there is not enough money " , " عذرا لا يوجد مال كافي " )
else:
    while request >= 100 :
        print( " give 100 " )
        request -= 100
    while request >= 50 :
        print ( " give 50 " )
        request -= 50
    while request >= 10 :
        print ( " give 10 " )
        request -= 10
    while request >= 5 :
        print ( " give 5 " )
        request -= 5
    print ( " give " , request )
2 Likes

عمل جميل جدا يا نور الدين
ملاحظة بسيطة الرصيد الاوليmoney يكون محدد مسبقا و لا يدخله المستخدم.

1 Like
money = 500
request = int ( input ( ) )
if money < request :
    print( " sorry there is not enough money " , " عذرا لا يوجد مال كافي " )
else:
    while request >= 100 :
        print( " give 100 " )
        request -= 100
    while request >= 50 :
        print ( " give 50 " )
        request -= 50
    while request >= 10 :
        print ( " give 10 " )
        request -= 10
    while request >= 5 :
        print ( " give 5 " )
        request -= 5
    print ( " give " , request )
2 Likes
money = 5000
request = int ( input ( ) )
if money < request :
    print( " sorry there is not enough money " , " عذرا لا يوجد مال كافي " )
else:
    while request >= 100 :
        print( " give 100 " )
        request -= 100
    while request >= 50 :
        print ( " give 50 " )
        request -= 50
    while request >= 10 :
        print ( " give 10 " )
        request -= 10
    while request >= 5 :
        print ( " give 5 " )
        request -= 5
    if request > 0 :
        print ( " give " + str ( request ) )
2 Likes