جلسه بیست و هفتم
حل تمرین
مثال ۱.نوشتن برنامهای که یک عدد را به عنوان ورودی دریافت کند و سپس بررسی کند که آیا آن عدد اول است یا خیر.
– در این تمرین، برنامه یک عدد را به عنوان ورودی دریافت میکند.
– سپس، برنامه بررسی میکند که آیا عدد وارد شده اول است یا خیر.
– برای بررسی اینکه آیا یک عدد اول است یا خیر، باید آن عدد را به تمام اعداد قبل از خودش تقسیم کنید و ببینید آیا باقیماندهای دارد یا خیر.
– اگر هیچکدام از اعداد قبل از آن عدد باقیماندهای نداشته باشند، آنگاه عدد وارد شده اول است.
– برای بررسی باقیماندهای، میتوانید از عملگر modulo در پایتون استفاده کنید. به عنوان مثال: 5 % 2 برابر با 1 است.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<xmp>def is_prime(number): if number <2: return False for i in range(2 , int(number**0.5) + 1): if number % i == 0: return False return True num = int (input('enter a number :')) if is_prime(num): print('the number is prime') else: print('the number is not prime')</xmp> |
مثال2.نوشتن برنامهای که یک لیست از اعداد را به عنوان ورودی دریافت کند و حاصلضرب این اعداد را محاسبه کند.
– در این تمرین، برنامه یک لیست از اعداد را به عنوان ورودی دریافت میکند.
– سپس، برنامه حاصلضرب اعداد وارد شده را محاسبه میکند.
– برای محاسبه حاصلضرب اعداد، باید تمام اعداد را با یکدیگر ضرب کنید.
– برای پیدا کردن حاصلضرب، میتوانید از یک متغیر با نام result شروع کنید که مقدار اولیه آن برابر با ۱ باشد. سپس به تمام اعداد در لیست ورودی دسترسی پیدا کنید و آن را با result ضرب کنید. همچنین، مقدار result را هم در همان حلقه به روز رسانی کنید.
– در نهایت، مقدار result حاصلضرب اعداد وارد شده در لیست خواهد بود.
1 2 3 4 5 6 7 8 9 |
<xmp>def multiply(numbers): result = 1 for num in numbers: result *= num return result lst = [ int(x) for x in input('list (use space) : ').split()] print('mul of number' , multiply(lst))</xmp> |
مثال3.نوشتن برنامهای که یک رشته از کلمات را به عنوان ورودی دریافت کند و تعداد تکرار هر کلمه را در رشته محاسبه کند.
– در این تمرین، برنامه یک رشته از کلمات را به عنوان ورودی دریافت میکند.
– سپس، برنامه تعداد تکرار هر کلمه را در رشته محاسبه میکند.
– برای محاسبه تعداد تکرار هر کلمه، میتوانید از یک دیکشنری استفاده کنید. در این دیکشنری، کلمات به عنوان کلید و تعداد تکرار آن کلمه به عنوان مقدار ذخیره میشود.
– برای پیدا کردن کلمات در رشته، میتوانید از تابع split() استفاده کنید. این تابع رشته وارد شده را به عنوان ورودی دریافت میکند و آن را به صورت لیست کلمات جدا میکند.
– سپس، با استفاده از حلقه for به تمام کلمات در لیست دسترسی پیدا کنید و آن را به عنوان کلید در دیکشنری قرار دهید. سپس تعداد تکرار آن کلمه را در دیکشنری به روز رسانی کنید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<xmp>def count_word_frequency(input_string): words = input_string.lower().split() word_freq = {} for word in words: if word in word_freq: word_freq[word] += 1 else: word_freq[word] = 1 return word_freq input_string = input("Enter a string of words: ") word_frequencies = count_word_frequency(input_string) for word, freq in word_frequencies.items(): print(f"{word}: {freq}")</xmp> |
تمرین 4. شما یک کافه بیلیارد دارید و میخواهید سیستمی برای مدیریت رزرو میزهای بیلیارد ایجاد کنید. در این سیستم، مشتریان میتوانند میز بیلیارد را رزرو کنند، پول را پرداخت کنند و پس از اتمام بازی، میز را آزاد کنند تا دیگران بتوانند استفاده کنند.
وظایف سیستم شامل موارد زیر است:
1. نمایش وضعیت هر میز بیلیارد (رزرو شده یا آزاد)
2. رزرو کردن میز برای یک مشتری با وارد کردن نام مشتری
3. پرداخت هزینه رزرو شده برای میز
4. آزاد کردن میز پس از بازی توسط مشتری
5. در صورت تلاش برای رزرو یک میز قبلاً رزرو شده، نمایش پیغام خطا
6. در صورت تلاش برای پرداخت هزینهای که قبلاً پرداخت شده است، نمایش پیغام خطا
7. در صورت تلاش برای آزاد کردن یک میز که قبلاً آزاد شده است، نمایش پیغام خطا
با توجه به این صورت مسئله، شما باید یک برنامه با استفاده از زبان برنامهنویسی پایتون بنویسید که این وظایف را اجرا کند و وضعیت هر میز را نمایش دهد.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
<xmp> # ایجاد یک دیکشنری برای ذخیره وضعیت هر میز بیلیارد billiard_tables = {} # تابع برای نمایش وضعیت هر میز بیلیارد def display_table_status(table_number): if table_number in billiard_tables: if billiard_tables[table_number]['reserved']: print(f"Table {table_number} is reserved by {billiard_tables[table_number]['customer_name']}.") else: print(f"Table {table_number} is available.") else: print(f"Table {table_number} does not exist.") # تابع برای رزرو کردن میز برای یک مشتری def reserve_table(table_number, customer_name): if table_number in billiard_tables: if not billiard_tables[table_number]['reserved']: billiard_tables[table_number]['reserved'] = True billiard_tables[table_number]['customer_name'] = customer_name print(f"Table {table_number} has been reserved for {customer_name}.") else: print(f"Table {table_number} is already reserved.") else: print(f"Table {table_number} does not exist.") # تابع برای پرداخت هزینه رزرو شده برای میز def make_payment(table_number): if table_number in billiard_tables: if billiard_tables[table_number]['reserved']: if not billiard_tables[table_number]['payment_status']: billiard_tables[table_number]['payment_status'] = True print(f"Payment has been made for Table {table_number}.") else: print(f"Payment has already been made for Table {table_number}.") else: print(f"Table {table_number} is not reserved.") else: print(f"Table {table_number} does not exist.") # تابع برای آزاد کردن میز پس از بازی توسط مشتری def return_table(table_number): if table_number in billiard_tables: if billiard_tables[table_number]['reserved']: if billiard_tables[table_number]['payment_status']: billiard_tables[table_number]['reserved'] = False billiard_tables[table_number]['customer_name'] = "" billiard_tables[table_number]['payment_status'] = False print(f"Table {table_number} has been returned.") else: print(f"Payment has not been made for Table {table_number}. Please make the payment.") else: print(f"Table {table_number} is not reserved.") else: print(f"Table {table_number} does not exist.") # نمونه استفاده از توابع billiard_tables[1] = {'reserved': False, 'customer_name': "", 'payment_status': False} reserve_table(1, "John") display_table_status(1) make_payment(1) return_table(1) display_table_status(1)</xmp> |