8- آموزش بریک و کانتینیو

تمرین بخش هشتم:

بریک و کانتینیو

ب ب ک: برنامه ای بنویسید که  قیمت روز دلار را به تومان بگیرد، و بعد وارد فرآیندی تکراری شود که همیشه قیمت محصولی را به دلار بگیرد و آن را به تومان تبدیل کند و نمایش دهد. بعد از هر بار انجام این کار از کاربر بپرسد ادامه می دهی ؟ اگر جواب منفی بود برنامه را متوقف کند.

مثال:

Dolar price? 1000

Mahsool be dolar? 3

3000 toman ast

Edame? N

Barname tamam shod

ب ب ک مجموع اعداد 0 تا 1000 را به غیر از ضرایب 5 محاسبه کند. ( از کانتینیو استفاده شود )

400000

ب ب ک از کاربری همین طور نمره بگیرد، هر موقع اعلام کرد که تمام، معدل این اعداد را محاسبه کند.

مثال:

18

19

20

Tamam

Moadel: 19

 

ب ب ک از دو نفر به ترتیب عدد های صعودی بگیرد، و آن ها مانند بازی هوپ باید به ضرایب 5 هوپ بگویند، اگر فردی اشتباه گفت برای او خطا محاسبه شود و برنامه تمام شود ( در حالت پیشرفته بازی ادامه یابد، هر موقع خطا به 3 تا رسید، فرد مقابل برنده اعلام شود.)

راهنما: برای چک کردن اینکه هر بار نوبت چه فردی است راه های مختلفی وجود دارد، یکی از این راه ها چک کردن باقی مانده عدد فعلی به 2 است ! (عدد های فرد برای نفر اول و نوبت های زوج برای نفر دوم )

نکته: حالت پیشرفته اخیاری است.

مثال:

Nafar1: 1

Nafar2: 2

Nafar1: 3

Nafar2: 4

Nafar1: 5

Khata: nafar1 1 khata

.

.

Nadar1:15

Khata: nafar1 2 khata

.

.

Nadar1:25

Khata: nafar1 3 khata

Nafar2 Barande shod

 

نکته : اگر دوست دارین این تمرین پر چالش رو خودتون حل کنید، پاسخ زیر رو نگاه نکنید. اگه تمام سعی تون رو کردین و نشد،جواب رو نگاه کنید و کد رو تحلیل کنید:

کد در حالتی که با اولین خطا فرد بازنده اعلام می شود:

 

for counter in range(1,1000):
    if counter % 2 == 0:
        text_input = "nafar2"
    else:
        text_input = "nafar1"
    voroodi = input (text_input) 
    if voroodi == "HOP":
           if counter % 5 == 0 :
                    print ("True")
           else:
                    print ("false- not hop", text_input, "bakht")
                    break
    elif  int(voroodi) == counter:
           if counter % 5 == 0 :
                    print ("False-must hop", text_input, "bakht")
                    break
           else:
                    print ("True")
    else:
           print("False- nobat", text_input, "bakht")
           break

کد در حالتی که سه بار به هر نفر فرصت خطا داده می شود:

 

number_fault_1 = 0
number_fault_2 = 0

for counter in range(1,1000):
    if counter % 2 == 0:
        text_input = "nafar2"
    else:
        text_input = "nafar1"
    fault_status = False
    voroodi = input (text_input) 
    if voroodi == "HOP":
           if counter % 5 == 0 :
                    print ("True")
           else:
                    print ("false- not hop", text_input, "eshtebah kard")
                    fault_status = True
                    
    elif  int(voroodi) == counter:
           if counter % 5 == 0 :
                    print ("False-must hop", text_input, "eshtebah kard")
                    fault_status = True
                    
           else:
                    print ("True")
    else:
           print("False- nobat", text_input, "eshtebah kard")
           fault_status = True
    if fault_status == True:
             if text_input=="nafar1":
                  number_fault_1 += 1
                  print("estebahat nafar1:", number_fault_1)
             else:
                  number_fault_2 += 1
                  print("estebahat nafar1:", number_fault_2)

    if number_fault_1 == 3:
             print("nafar1 bakht")
             break
    elif number_fault_2 == 3:
             print("nafar2 bakht")
             break