arianomrani24

تمرین برنامه نویسی : قیمت لپ تاپ ها

arianomrani24 ۱۳۹۸/۰۴/۰۵ زبان برنامه‌نویسی پایتون

سلام یک مسئله برنامه نویسی به زبان پایتون هست که برام خیلی گنگه اگه میشه راهنمایی کنید .

از راهنمایی های کوچک ( ساده کردن مسئله یا تکه کد ) و بزرگ ( کد کامل جواب ) شما ممنونم !

سوال :

یه روز سیندخت و ایرسا در حال بحث در مورد قیمت لپ تاپ ها و کیفیت آنها بودند. سیندخت حدس میزنه هرچی یه لپ تاپ گرون تر باشه کیفیت بهتری هم داره. اما ایرسا ادعا می کنه می تونه ۲ تا لپ تاپ پیدا کنه که قیمت اولی از دومی کمتر باشه ولی کیفیتش از دومی بیشتر باشه و بتونه حدس سیندخت را رد کند. حالا شما باید با نوشتن یه برنامه به ایرسا کمک کنید ادعای خودش را بررسی کند.

مشخصات n لپ تاپ به شما داده میشه. خط اول ورودی شامل عدد n هست که تعداد لپ تاپ ها را نشان می دهد. هر یک از n خط بعدی شامل دو عدد می باشد که عدد اول قیمت لپ تاپ را نشان می دهد و عدد دوم کیفیت آن لپ تاپ را. اگه تونستید دو تا لپ تاپ پیدا کنید که شرایط گفته شده توسط ایرسا را داشته باشد چاپ کنید happy irsa در غیر این صورت چاپ کنید poor irsa (لطفا به کوچک بودن حروف توجه کنید تمامی حروف به صورت کوچک نوشته می شوند.)

ورودی نمونه:

2
1 10
7 3


خروجی نمونه:

happy irsa

در ورودی نمونه لپ تاپ اول قیمت ۱ را دارد و کیفیت ۱۰ (هرچه عدد بزرگتر باشد کیفیت بیشتر است) لپ تاپ دوم قیمت ۷ دارد و کیفیت ۳. خب ایرسا موفق شده است دو لپ تاپ پیدا کند که با اینکه قیمت دومی از قیمت اولی بیشتر است اما کیفیت دومی از کیفیت اولی کمتر است.

ورودی نمونه:

4
1 5
7 9
5 6
20 30


خروجی نمونه:

poor irsa

پاسخ‌ها به این تاپیک
farshad20
farshad20
۱۳۹۸/۰۴/۰۹

سلام برای من یکمی گنگ هست ماجرا .

کد زیر تصمیم میگیره اگر کیفیت لپ تاپ حداقل 10 برابر قیمت بود حق با ایرسا هست .

تعداد لپ تاپ ورودی هم باید زوج باشه تا با ادعای ایرسا جور در بیاد .

اگر شرایط مساوی شد باز هم ایرسای کمال گرا خوشحال میشه .

با چند نمونه تست به جواب های دلخواه رسیدم اگر ایرادی هست ببخشید .

class ConfirmLaptopsValue:
 isra = []
 sindokht = []

 def __init__(self, number):
 if number < 2 or number % 2 != 0:
 raise ValueError('You Should Enter Even Number Greater Than Two ')

 self.number = number

 @staticmethod
 def get_laptop_info(value):
 try:
 _input = int(input("Enter {0} > ".format(value)))
 except ValueError:
 raise ValueError('Enter An Integer Please . ')
 else:
 return _input

 def create_collections(self):
 for l in range(self.number):
 price = self.get_laptop_info('Price')
 value = self.get_laptop_info('Value')

 if (price * 10) <= value:
 self.isra.append(True)
 else:
 self.sindokht.append(True)

 return "Collections: (Isra: %s) (Sindokht %s)" % (self.isra, self.sindokht)

 def result(self):
 if len(self.isra) >= len(self.sindokht):
 return "Happy Isra"

 return "Poor Isra"
arianomrani24
arianomrani24
۱۳۹۸/۰۴/۰۹

دست شما درد نکنه ممنون از کمک بزرگتون !

در پاسخ به