matlabkhooneh

جایگشت رشته و لیست در پایتون ( کد Py0017 )

1 - به روش بازگشتی، برنامه ای بنویسید که تمام جایگشت های ممکن یک رشته داده شده را محاسبه کرده و هر جایگشت را در خطی مجزا چاپ نماید.

ورودی تنها شامل یک خط است و تعداد کاراکترهای آن حداقل ۱ و حداکثر ۷ که در آن هر رشته ی بدون تکرار می تواند قرار بگیرد.

خروجی تمام جایگشت های ممکن محاسبه شده در خطوطی مجزا در خط فرمان باید چاپ شوند.

توجه جهت جلوگیری از بروز اشکال در سامانه تصحیح خودکار تارنمای کوئرا، حتما پیش از چاپ کردن نتایج آنها را توسط تابع sort مرتب نموده و سپس چاپ نمایید. مثال در اینجا چند نمونه برای فهم بهتر صورت سوال و قالب ورودی و خروجی تست ها داده می شود.

2- مانند سوال قبل برنامه ای بنویسید که تمام جایگشت های یک لیست رامحاسبه کرده و هر جایگشت را در خطی مجزا چاپ کند.

3 - برنامه ای بنویسید که یک رشته با طول فرد و دارای حداقل 7 کاراکتر را بگیرد و سه کاراکتر میانی را نشان دهد.

4 - برنامه ای بنویسید که در رشته زیر مکان شروع تمامی کلمات Farhad را نشان دهد.

" Farhad is a VIP member.Farhad nedds to early access "

5 - اگر x=2 باشد ، خروجی دستورات زیر را نمایش دهید. ( ممکن است بعضی دستورات اشتباه باشد )

print("x")

print('x')

print(x)

print("x+1")

print('x'+1)

print(x+1)

6 - برنامه ای بنویسید که شعاع دایره را در ورودی دریافت کند و محیط و مساخت آن دایره را محاسبه و نمایش دهد.

7 - برنامه‌ای بنویسید که یک عدد صحیح را که تعداد ارقامش مشخص نیست از کاربر گرفته و هر رقم را به تعداد آن رقم چاپ کند.

8 - فرض کنید عدد جان‌سخت را به این شکل تعریف کرده‌ایم: اگر عددی اول باشد و اگر از سمت راست آن شروع به حذف ارقام آن بکنیم همواره عدد باقی‌مانده نیز عددی اول باشد، آن عدد جان‌سخت است. مثلا عدد 2399 یک عدد جان‌سخت است زیرا اعداد ۲۳۹۹ و ۲۳۹ و ۲۳ و ۲ همگی اول هستند. همچنین 313۷ نیز یک عدد جان‌سخت است. برنامه‌ای بنویسید که یک عدد را با تعداد ارقام دلخواه دریافت کرده و بررسی کند که عدد جان سخت هست یا خیر.

9 - عنوان پروژه اتوماسیون تغذیه

برنامه ای بنویسید که امکانات زیر را داشته باشد.

الف ) ابتدا دو گزینه به کاربر نمایش داده می شود تا انتخاب کند که مدیر سیستم است یا دانشجو

ب ) اگر کاربر مدیر سیستم را انتخاب کند ، می تواند لیست غذاهای هفته را تعریف کند. مثلا :

شنبه : قرمه سبزی ، کتلت

یک شنبه : کوفته ، عدس پلو و ...

ج ) اگر کاربر دانشجو باشد ، لیست غذاهای موجود هفته را می بیند و می تواند برای هر روز هفته یک غذا رزرو کند.

د ) دانشجو می تواند با وارد کردن مبلغی اعتبار خود را افزایش دهد.

ک ) با انتخاب هر غذا مبلغ آن غذا از اعتبار دانشجو کم می شود.

و ) اگر اعتبار کافی نباشد ، پیغام خطا نمایش داده می شود.

لیست کلاس های مورد نیاز برای این پروژه

کلاس Student اطلاعات دانشجو در این کلاس تعریف می شود. شامل شماره دانشجویی ، نام و نام خانوادگی ، لیست غذاهای رزرو شده برای هر روز ، میزان اعتبار فعلی دانشجو

کلاس food اطلاعات غذا در این کلاس تعریف می شود. شامل عنوان غذا ، روزهای سرو شدن و قیمت

ی ) خطاهای احتمالی را در برنامه پیش بینی و مدیریت کنید.

10 - در ورودی دو رشته داده می‌شود و از شما خواسته شده است تا بررسی کنید این دو رشته در کنار هم زیبا هستند یا نه. دو رشته در کنار هم زیبا هستند، اگر حرف اول رشته‌ی اولی، با حرف آخر رشته‌ی دومی برابر باشد.

11 - محمدجواد که پشت‌کار بالایی دارد، میخواهد به سخنرانی‌ای در مورد پشت‌کار گوش دهد و آن را برای خود یادداشت کند. متاسفانه مسئولین صدا اکوی صدا را در بیشترین حالت ممکن گذاشته اند و به ازای هر کلمه‌ی nn حرفی که سخنران میزند، nn کلمه پخش میشود که هر بار یک حرف از اول کلمه که قبلا حذف نشده حذف میشود و سپس به جای آن حرف، حرف بعدی آن گذاشته میشود. برای مثال اگر سخنران کلمه‌ی golabi را بگوید، بلندگو به این شکل به صدا در می‌آید:

golabi
oolabi
lllabi
aaaabi
bbbbbi
iiiiii

حال به شما یک کلمه که سخنران گفته‌است داده می‌شود و شما باید کلماتی که از بلندگو پخش می‌شود را چاپ کنید تا محمدجواد بتواند آن را یادداشت کند.

12 - تو این تمرین می‌خوایم یکم تابع نویسی رو بیشتر تمرین کنیم! تابعی بنویسید که عددی رو بعنوان آرگومان ورودی بگیره و تمام اعداد اول کوچیکتر یا مساوی اون عدد رو تو خروجی برامون چاپ کنه

13 - برنامه ماشین حسابی با توانایی جمع و تفریق به صورت زیر بنویسید: برنامه در ورودی یک عدد صحیح می گیرد بعد از گرفتن عدد یکی از علامت های جمع یا تفریق به برنامه داده می شود در ادامه به بازهم نرم افزار در خواست ورودی می کند و کار به همین شکل ادامه پیدا می کند تا زمانی به جای علامت مثبت یا منفی به برنامه علامت = ‌داده شود در این صورت برنامه مقدار بدست آمده را چاپ می کند.

3
+
4
+
5
-
6
+
2
-
2
=

14 - برنامه‌ای بنویسید که عدد صحیح n را از ورودی بخواند و مجموع ارقام آن را در b قرار دهد. خروجی b امین عدد اول پس از n است.

15 - می‌خواهیم برنامه‌ای بنویسیم که دو عدد بگیرد و یک مار با علامت‌ # رسم کند در دو خط دو عدد m و n به شما داده می‌شود، که عدد m طول افقی مار و عدد n طول عمودی مار است شکل مورد نظر را در خروجی چاپ کنید

ورودی نمونه

3
5

خروجی نمونه

###
     #
###
#
###

16 - یک بازی دارت قرار است برگزار شود که در آن دو بازیکن به مصاف هم می‌روند که هر کدام ۳ حق پرتاب دارند. سیبل مسابقه یک دایره به قطر ۴۰ سانتی‌متر است که به لحاظ امتیازبندی به ۱۰ حلقه به ضخامت ۲ سانتی‌متری تقسیم شده‌است به طوری که مرکزی‌ترین بخش آن دارای ۱۰۰ امتیاز بوده و بقیه حلقه‌ها با اختلاف 10 امتیازی از یکدیگر در مرتب شده‌اند. به صورتی که آخرین حلقه 10 امتیاز داشته و پرتاب خارج از سیبل نیز هیچ امتیازی ندارد. بعد از پرتاب هر دو بازیکن در نهایت بازیکنی برنده امی‌شود که بیشترین مجموع امتیاز را دشته باشد. حال کدی بنویسید که با گرفتن مختصات برتاب‌های هریک از دو بازیکن امتیاز هر یک از آن ها را نمایش داده و تعیین کند کدام یک از آن‌ها برنده شده و یا بازی به تساوی کشیده شده‌است.

نکته: مرکز سیبل بر روی برکز مختصات می‌باشد و امتیاز روی مرز حلقه‌های امتیازی برابر امتیاز کمتر حلقه بیرونی می‌باشد.

ورودی : ورودی می‌بایست به صورت ۶ زوج مرتب از اعداد حقیقی نامنفی باشند که در 6 سطر به برنامه داده می‌شود که ۳ سطر اول برای بازیکن اول و ۳ سطر دوم برای بازیکن دوم می‌باشد. مقدار اول در هر سطر نیز نشانگر مولفه xx و مقدار دوم بیانگر مولفه yy هر پرتاب آنها می‌باشد.

خروجی : خروجی برنامه‌ی شما باید شامل ۳ خط باشد که در خط اول می‌بایست امتیاز بازیکن اول و در خط دوم امتیاز بازیکن دوم چاپ شود و در خط سوم نیز اگر بازیکن اول برند شد عبارت Player_1 wins و اگر بازیکن دوم برنده شد عبارت *Player_2 wins نمایش داده می‌شود. اگر امتیاز هر دو بازیکن نیز مساوی شد لازم است تا در سطر سوم عبارت The game is drawn چاپ شود

ورودی نمونه

1 2
7.25 9
2.3 8.2
11.65 4
5 6
10 27.4

حروجی نمونه

200
110
Player_1 wins

17 - مستر B که با موفقیت مسئله مقاومت مصالح اش را حل کرد سراغ کامل کردن گزارش کار آزمایشگاه فیزیک رفته ولی متوجه شد که باید برای درس آزمایشگاه یک عالمه کار تکراری و محاسباتی انجام دهد اما از آنجا که مستر B اهل دوبار کاری نیست تصمیم گرفته برنامه ای بنویسد که با گرفتن دیتاهای آزمایش میانگین ، انحراف از معیار و معادله خط را خروجی بگیرد اما زمانی که TA درس مبانی برنامه سازی شده چرا خودش اینکار را انجام دهد؟!

در این تمرین شما باید تعداد 2n دیتا را در دو خط و هر خط دارای n عدد دریافت کنید که n تای اول برای دیتاهای محور x و n تای دوم مختص محور y میباشند اما از آنجایی که مستر B ممکن است یک یا چند دیتا را اشتباهی وارد کند پس از دو خط اول اصلاحیه های خودش را اعمال میکند و تا زمانی که * را وارد نکرده شما باید دیتاهای قبلی را جایگزین دیتاهای جدید کنید

شما باید از او دیتای صحیح را به فرمت xn = z بگیرید و مقدار دیتای xn را با توجه به z تصحیح کنید(این مورد برای y هم صادق است ، برای فهم بیشتر میتوانید ورودی سوال را مورد بررسی قرار دهید.) حال سراغ بقیه ماجرا میرویم:

در اول شما باید میانگین Xi و Yi ها را محاسبه کنید سپس انحراف معیارها را بدست آورید پس از آن سراغ پیدا کردن شیب بروید و با جایگذاری عرض از مبدا را بدست آورید سپس محاسبات انجام شده را به شکل زیر و تا دورقم اعشار به مستر B گزارش دهید.

ورودی : در خط اول به شما n عدد بر روی محور x ها و در خط دوم n عدد بر روی محور y ها داده میشود پس از آن اصلاحیه های دلخواه آقای B داده می شود(تعداد دلخواه روی محور دلخواه ؛ برای مثال در این ورودی 2 اصلاحیه داریم یکی روی محور x یکی روی محور y )

خروجی : در اخر میانگین ایکس ها، میانگین ایگرگ ها، انحراف از معیار ایکس و ایگرگ ها و معادله خط را چاپ کنید

ورودی نمونه

90 125 37 67
50 30 100 70
y2 = 28
x2 = 135
*

خروجی نمونه

Mean x = 82.25
Mean y = 62.00
SD x = 35.79
SD y = 26.50
The equation is : y=-0.73x+121.86

18 -

19- تعدادی عدد به شما داده می‌شود، وظیفه شما چاپ برعکس آن اعداد است

ورودی : در خط اول عدد n داده می‌شود و در n خط بعدی یک عدد آمده است

خروجی : اعداد داده شده را برعکس چاپ کنید دقت کنید که عدد اولی که در ورودی داده می‌شود را نباید در خروجی چاپ کنید.

20 - برنامه‌ای بنویسید که به ما عدد nم دنباله فیبوناچی را بدهد. فیبوناچی، دنباله‌ای‌ ست که در آن هر جمله از مجموع دو جمله قبلی بدست می‌آید. فرض کنید جمله اول و دوم این دنباله ۱ است.

ورودی : عدد n در ورودی به شما داده می‌شود . هیچ‌ موقع عدد n بزرگتر از ۱۰۰ نخواهد شد.

خروجی : عدد nم این دنباله را در خروجی چاپ کنید.

21 - برنامه‌ای بنویسید که به ازای دریافت جملات Nام و N+1ام از دنباله فیبوناچی (با فرض A0=A1=1 ) و ارسال این دو به تابعی با امضای

def show_fib_nth(N, N+1)

جملات سری فیبوناچی را از جمله Nام تا صفرم را به صورت معکوس چاپ کند.

ورودی : در خط اول جمله n ام و در خط بعد عدد n + 1 ام به شما داده می‌شود.

خروجی : جملات فیبوناچی را به ترتیب چاپ کنید.

22 - برنامه‌ای بنویسید که عدد طبیعی n را از کاربر دریافت نموده و تمام اعداد اول کوچکتر و مساوی آن عدد را در خروجی نمایش دهد.

ورودی برنامه شما می‌بایست یک خط باشد که در آن عدد طبیعی nn را از کاربر دریافت می‌کند.

خروجی برنامه‌ی شما باید شامل یک خط باشد که در آن تمامی اعداد اول مذکور به ترتیب از کوچک به بزرگ با فاصله در کنار هم نمایش داده می‌شوند.

23 - تمرین برنامه نویسی (روش شبیه سازی مونت کارلو) :در این تمرین می خواهیم شبیه سازی محاسبةعدد Pi را انجام دهیم. بدین منظور از توصیف هندسی نشان داده شده در شکل زیر استفاده می کنیم.

در شکل بالا، اگر نسبت مساحت دایره به شعاع واحد به مساحت مربع با رنگ خاکستری را با R نمایش دهیم، PI=4R خواهد شد. برای یافتن کمیت R ، از مدل سازی یک سیستم معادل فیزیکی استفاده می کنیم. برای مثال، دارت هایی را به شکل فوق پرتاب کرده و تعداد دفعات برخورد دارت با ربع دایره را تعیین می کنیم. پس از پرتاب دفعات زیادی دارت می توانیم تعداد دفعاتی را که دارت با ربع دایره برخورد می کند به دست آوریم. این پارامتر را با ncir نشان می دهیم. اگرکل تعداد دارت ها را با ntot مشخص سازیم، داریم :

\[ R=\frac{n_{cir}}{n_{tot}}\]

24 - در این تمرین نیز بنا داریم تا با روش شبیه سازی مونت کارلو، عدد  Pi را به شکل تقریبی محاسبه کنیم. فرض کنید مطابق شکل یک سطح داریم که شامل تخته های چوبی هم اندازه به عرض t است. سوزنی نیز به طول l در اختیار داریم. سوزن را به شکل تصادفی بر روی تخته پرتاب می کنیم، احتمال پیشامد آن که سوزن بر روی مرز بین دو تخته بیفتد 2l/(t*pi) خواهد بود.

فرض کنید سوزن را n بار پرتاب می کنیم وسوزن h بار مرز بین دو تخته را قطع می کند. در این صورت داریم :

\[ \frac{h}{n}=\frac{2l}{\pi}\Rightarrow \pi=\frac{2ln}{th}\]

اکنون آزمایش را به صورت عملی با زبان برنامه نویسی پایتون کد نویسی و پیاده سازی کرده و از آنجا مقدار تقریبی Pi را به دست آورید. نتیجه شبیه سازی خود را با مقدار دقیق Pi مقایسه کرده و خطای آزمایش خود را مشخص سازید.

25 - در این تمرین می خواهیم اعدادکوچکتر از 1000 را چاپ کنیم که تنها بر توان های 2،5و 7قابل تقسیم بوده و هیچ مقسوم علیه دیگری نداشته باشند. صحیح دریافت و کلیه اعدادی که به صورت بالا باشند، چاپ می کند.

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

27 - با import کردن ماژول random و استفاده از تابع randint و با در نظر گرفتن یک لیست تو در تو، یک ماتریس 10 در 10 را با اعداد تصادفی بین 0 تا 9 پر کنید. (توجه : برای اعداد صحیح a, b، تابع randint(a,b) یک عدد صحیح تصادفی در بازه [a,b]تولید میکند.
حال برنامه ای بنویسید که روی ماتریس ایجاد شده عملیات زیر را انجام دهد.
الف ) شماره سطری از ماتریس که بیشترین حاصل جمع را دارد به همراه حاصل جمع مربوطه چاپ کند
ب ) شماره سطری که بیشترین تکرار عدد 7 را دارد به همراه تعداد تکرار مربوطه چاپ کند
ج ) سطرهای ماتریس را بر حسب حاصل جمع سطر از کوچک به بزرگ از بالا به پایین مرتب کند.

28 - برنامه ای بنویسید دو رشته عدد (سیگنال گسسته) رو به عنوان ورودی بگیرد و حاصل کانولوشن اونها رو به عنوان خروجی برگرداند.

29 - برنامه ای بنویسید که یک دوره تناوب از یک سیگنال گسسته در زمان متناوب رو بگیرد و ضرایب سری فوریه اون رو نشان بدهد.

30 - کتابخانه محاسبات مساحت و محیط :

الف - ماژولی برای محاسبات در فضای دو بعدی بنویسید
توابع لازم :
- محاسبه طول پاره خط از روی مختصات دو نقطه
- زاویه دو پاره خط از روی نقاط دو سر پاره خطها

ب - ماژولی برای محاسبات هندسی دایره بنویسید
توابع لازم:
- محاسبه محیط از روی دو سر یکی از قطرها
- محاسبه مساحت با گرفتن دو سر یکی از قطرها
- مختصات مرکز دایره با گرفتن دو سر یکی از قطرها
- مختصات مرکز دایره با گرفتن سه نقطه روی دایره (نمره اضافه)

ج - ماژول تشخیص چهارضلعی
توابع لازم:
- تعیین نوع چهارضلعی با گرفتن چهار نقطه آن (مستطیل–مربع- لوزی–متوازی الاضلاع و غیره ) - از تابع طول پاره خط و زاویه استفاده کنید - تشخیص ذوزنقه (نمره اضافه)
تابعی که چهار نقطه می گیرد و اگر چهارضلعی مستطیل یا مربع بود، مساحت و محیط آن را به صورت دیکشنری بر می گرداندو گرنه دیکشنری خالی می دهد.

د - در ماژول main
- تابعی بنویسید با گرفتن دو نقطه محیط و مساحت مربعی که این دو نقطه راس های قطر آن باشند را چاپ کند.
- تابع بنویسید که با گرفتن دو نقطه یک قطر، مساحت و محیط و مرکز دایره را چاپ کند.

- تابع بنویسید که با گرفتن سه نقطه مساحت و محیط و مرکز دایره ای که از هر سه می گذرد را چاپ کند. (نمره اضافه)

- بخش main این ماژول با گرفتن ورودی از کاربر input دو نقطه، تابع اول و دوم را با همان نقاط صدا می زند.

31 - کلاس دایره را بنویسید که
- مقدار دهی اولیه آن با گرفتن نقطه مرکز و یک نقطه روی محیط یک دایره باشد
- متد(تابع) مساحت را برای آن پیاده سازی کنید (خروجی مساحت باشد)
- متد محیط دایره را پیاده سازی کنید
-  2 شی از کلاس دایره ایجاد کنید و مساحت آنها را مقایسه کنید.

32 - در این سوال از شما خواسته شده است که در یک نقشه 10*10 بمب های داده شده را نمایش دهد.

ورودی به صورت زوج مرتب از اعداد طبیعی است که با یک فاصله از هم جدا شده اند. با توجه به ابعاد نقشه اعداد داده شده بین 0 تا 9 هستند.

خروجی باید مربعی 10*10 از X باشد با این تفاوت که در خانه هایی که بمب قرار دارد O چاپ شود.

33 - تو این شرایط سخت تیم دستیاران و استاد درس می خوان سوالای امتحان رو طرح کنند. برای اطمینان از لو نرفتن محتویاتی که در نامه هایشان رد و بدل می کنند ، کلمات را به صورت رمزگذاری شده می نویسند. شما باید کمک کنید تا این کلمات رو رمز گذاری کنیم. رمزگذاری این کلمات به این صورت است که اگر حرف اول کلمه صدادار باشد ( یکی از حروف a , e, i, o, u ) حرف اول کلمه را از اول کلمه برمیداره و به همراه حرف v که نشانگر صداا بودن حرف اول است را به آخر کلمه می چسبانند. در غیر این صورت اگر حرف اول کلمه صدادار نباشه، دو حرف اول کلمه را از اول کلمه برداشته و به آخر کلمه می چسباند.

34 -

35 -

36 -

37 -

38 -

39 -

40 -

41 -

42 -

43 -

44 -

45 -

46 -

47 -

48 -

49 - با پانداس Pandas برنامه ای بنویسید که سطر اول یک دیتافریم را به یک سری تبدیل کند.

50 - برنامه ای بنویسید که یک عدد را دریافت کند و مشخص کند آیا عدد Strong است یا خیر. عددی Strong است که حاصل جمع فاکتوریل ارقام آن برابر خودش باشد. ( عدد 145 = !1+!4+!5 یک عدد Strong  است )

| جهت سفارش پروژه ، تکلیف و آموزش پروژه های محاسباتی پایتون Python لطفا در شبکه های تلگرام و واتساپ موضوع و سوال مورد نظر را به شماره  989364847193+ ارسال نمایید، تا پس از بررسی هزینه خدمت شما اعلام گردد.

 

موضوعات
Designed By M A T L A B K H O O N E H