Assignment1.pdf

‫به نام یزدان‬
‫پاکخ‬
‫درس ‪ :‬برنامه سازی پیشرفته‬
‫مدرس ‪ :‬پیمان دودانگه‬
‫تمرین سری اول‬
‫آخرین مهلت ارسال‪۱۹۳۱/۷/۱۱ :‬‬
‫دیکشنری(‪ 02( )Dictionary.java‬نمره)‬
‫حسنی امشب باید تمرینش را تحویل دهد اما به دلیل خستگی و خواب آلودگی قادر به‬
‫تایپ صحیح همه کلمات نیست‪.‬او به برنامه ای نیاز دارد که بتواند اشتباهات‬
‫امالیی تمرینش را تصحیح کند‪.‬خوشبختانه ما کلماتی را که او احتمال دارد غلط‬
‫بنویسد می دانیم و کافی است بررسی کنیم که هر کلمه تمرینش به کدام یک از‬
‫کلمات داده شده شبیه تر است و آن را با کلمه اشتباه جایگزین کنیم‪.‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫فقط کلماتی را که بیش از سه حرف دارند بررسی می کنیم‪.‬‬
‫کوچک و بزرگ بودن حروف اهمیتی ندارد‪.‬‬
‫برای شباهت داشتن حداقل باید ‪ ۹‬حرف مشابه داشته باشند‪(.‬ترتیب حروف کلمه‬
‫مشابه باید مانند ترتیب حروف کلمه غلط باشد یعنی حسنی بعضی حروف را جا‬
‫انداخته یا غلط می نویسد اما حروف یک کلمه را جا به جا نمی نویسد)‬
‫شبیه ترین کلمه(کلمه با بیشترین تعداد حروف مشترک باید انتخاب شود)‬
‫در ورودی ابتدا تعداد کلمات مشابه داده می شود‪(.‬حداکثر ‪ ۱۱۱‬کلمه) سپس کلمات‬
‫مشابه داده شده و در آخر صورت تمرین حسنی داده می شود‪.‬‬
‫خروجی‬
‫‪this is my first assignment‬‬
‫ورودی‬
‫‪3‬‬
‫‪this‬‬
‫‪assignment‬‬
‫‪first‬‬
‫‪Thes is my Frs Assigment.‬‬
‫‪In this assignment we HaVe four questions‬‬
‫‪4‬‬
‫‪this‬‬
‫‪four‬‬
‫‪questions‬‬
‫‪assignment‬‬
‫‪In thi Asigmint we HaVe FOoR qustins.‬‬
‫عبارات جبری (‪ 02()Algebra.java‬نمره)‬
‫به حسنی تکلیفی در رابطه با حل معادالت جبری داده شده است‪ .‬همان گونه که می‬
‫دانید به دلیل تنبلی بسیار زیاد‪ ،‬او حتی حاضر به ساده سازی این عبارات نیست‪.‬‬
‫هدف این است شما برنامه ای بنویسید که عبارات جبری را برای حسنی ساده سازی‬
‫کنید‪ .‬یک عبارت جبری جمع و تفریق یک سری تک جمله ای هست که در هر چند جمله‬
‫ای فقط از متغیرها و عدد ( ضریب تک جمله ای) استفاده شده است‪ .‬توجه کنید که‬
‫هر تک جمله ای با یک عدد که همان ضریب جمله است شروع می شود( بدیهی است که‬
‫عدد ‪ 1‬می تواند نوشته نشود) و در ادامه متغیر ها می آیند( برای مثال ‪ 2ab‬مجاز‬
‫است ولی ‪ ab2‬نه) در زیر نمونه هایی از عبارات جبری معتبر و نامعتبر آمده است ‪:‬‬
‫معتبر است ⟹ 𝑏𝑐 ‪𝑎 + 𝑏𝑐 + 2𝑐𝑑 + 𝑑𝑎 − 23𝑎𝑏𝑐𝑑 +‬‬
‫نا معتبر است ⟹ 𝑐𝑏𝑎‪𝑎2 𝑏 + 31𝑎𝑏𝑐𝑑 − 2‬‬
‫ورودی برنامه عبارت جبری به صورت یک رشته است و خروجی برنامه باید ساده شده ی‬
‫آن عبارت جبری باشد‪.‬‬
‫بین حروف و عالیم فاصله وجود ندارد‪.‬‬
‫خروجی‬
‫ورودی‬
‫𝒃𝒂 ‪𝒂 + 𝟑𝒃𝒄 +‬‬
‫𝑏𝑎‪𝑎 + 𝑏𝑐 − 3𝑎𝑏 + 2𝑏𝑐 + 4‬‬
‫𝒅𝒄𝒃𝒂𝟑 ‪−𝒂 + 𝟑𝒂𝒃𝒄 +‬‬
‫𝑎‪𝑎 + 3𝑎𝑏𝑐 − 𝑎𝑏𝑐𝑑 + 4𝑎𝑏𝑐𝑑 − 2‬‬
‫𝒄𝒃𝟒 ‪−𝒂𝒃 +‬‬
‫𝑏𝑎‪𝑎𝑏 + 𝑏𝑐 + 3𝑏𝑐 − 2‬‬
‫زبان پرانتزی (‪ 32( )Parenthesis.java‬نمره)‬
‫در زمان های قدیم زبانی به نام زبان پرانتزی وجود داشته است‪ .‬به تازگی در‬
‫مکاشفات سازمان میراث فرهنگی آثار باستانی کشف شده است که به نظر به زبان‬
‫پرانتزی است‪ .‬به دلیل پیچیدگی این زبان‪ ،‬سازمان به برنامه ای برای تشخیص این‬
‫موضوع نیاز دارد‪ .‬از شما خواسته شده است که این برنامه را پیاده سازی کنید‪.‬‬
‫تعریف زبان پرانتزی ‪:‬‬
‫‪‬‬
‫حرف ‪ J‬عضو این زبان است ‪.‬‬
‫‪‬‬
‫اگر ‪ X‬و ‪ Y‬عضو این زبان باشند آنگاه )‪ (XY‬نیز عضو این زبان هست‪.‬‬
‫ورودی برنامه ی شما یک رشته از حروف است‪ .‬اگر این رشته عضو زبان پرانتزی بود‬
‫خروجی برنامه ی شما باید‬
‫‪ YES‬باشد و اگر عضو این زبان نبود خروجی برنامه ی‬
‫شما باید ‪ NO‬باشد‪.‬‬
‫ورودی‬
‫خروجی‬
‫‪YES‬‬
‫))‪(((JJ)J)(JJ‬‬
‫‪YES‬‬
‫)‪(((JJ)J)J‬‬
‫‪NO‬‬
‫)))‪((((JJ)JJ‬‬
‫امان از دست سعید (‪32( )EmailCorrection.java‬‬
‫نمره)‬
‫دیروز پارسیا مشغول تایپ کردن یک ایمیل بود که سعید شروع به فشردن کلیدهای‬
‫صفحه کلید( به طور تصادفی) کرد‪ .‬پارسیا با تالش های بسیار توانست دسترسی سعید‬
‫به صفحه کلید را به کلید های "‪ "CapsLock‬و "?" محدود کند‪ .‬سعید تصمیم گرفته است‬
‫بعد از هر بار فشردن کلید "‪ ،"CapsLock‬کلید "?" را نیز فشار دهد‪ .‬بنا براین اگر‬
‫پارسیا تصمیم بگیرد لغت ‪ hello‬را تایپ کند طبق توضیحات داده شده ممکن است‬
‫‪ h?ELL?o‬تایپ شود‪ .‬به همین منظور پارسیا به شدت به برنامه ای نیاز دارد که متن‬
‫را به درستی تصحیح( به صورتی که خود انتظار داشته است) کند‪ .‬شما باید برنامه‬
‫ای بنویسید که هدف پارسیا را برآورده کند‪.‬‬
‫ورودی برنامه بدین صورت است که در خط اول تعداد کلمات ایمیل داده می شود و‬
‫بعد درهر خط کلمه ی تایپ شده داده می شود‪.‬‬
‫در خروجی برنامه باید شکل صحیح کلمات( به همان صورتی که مد نظر پارسیا بوده‬
‫است) به ترتیب چاپ شوند‪.‬‬
‫توجه ‪ :‬فرض کنید در ابتدای هر خط کلید ‪ CapsLock‬خاموش بوده است‪.‬‬
‫ورودی‬
‫خروجی‬
‫‪salammm‬‬
‫‪3‬‬
‫‪Khoobii‬‬
‫‪s?ALA?mm?M‬‬
‫‪basseDgeSaeed‬‬
‫‪?kH?oo?B?ii‬‬
‫‪ba???SSE??dG??E?Sa?E?ed‬‬
‫موفق باشید و خوش‬
‫‪‬‬