تمرین عمل دوم Scheme درس زبانهای برنامهسازی سینا رشیدیان .1باز و بسته کردن درها فرض کنید تعدادی در داریم که در ابتدا همگی آنها بسته هستند .در مرحله iام وضعیت درهای مضرب iرا از حالت بسته به باز و از حالت باز به بسته تغییر میدهیم .به طور مثال ،در مرحلهی دوم وضعیت درهای 6 ،4 ،2و ...تغییر میکند .تابع زیر را به گونهای بنویسید که به ترتیب تعداد درها و تعداد مراحل انجام عملیات را بگیرد و وضعیت نهایی آنها را برگرداند. )(doors 5 2 )'(1 0 1 0 1 .2الگوریتم Quicksort برنامهای بنویسید که یک لیست از ورودی بگیرد ،الگوریتم quicksortرا روی آن انجام دهد و لیست مرتب شده به صورت صعودی را به عنوان جواب بازگرداند. )) (quicksort '(8 7 3 6 4 5 2 )'(2 3 4 5 6 7 8 .3کار با لیست تابعی به نام dolstرا در نظر بگیرید که دو لیست به عنوان ورودی میگیرد ،به ترتیب روی لیست اول حرکت کند و تغییرات ذکر شده براساس مقدار خوانده شده را بر روی لیست دوم اعمال کند .اینکه با توجه به عدد خوانده شده چه تغییری قرار است روی لیست اتفاق بیفتد در جدول زیر آورده شده است. مقدار خوانده شده از لیست اول تاثیر آن بر روی لیست دوم 1 مقادیر لیست دوم دو برابر میشوند. 2 مقدار بعدی در لیست اول یک تابع است که فقط یک متغیر ورودی میگیرد ،این تابع باید روی لیست دوم اعمال شود. 3 مقادیر لیست که از 11اکیدا بیشتر است را برمیگرداند. برای تعریف این تابع حق استفاده از تابع کمکی دیگری که defineکرده باشید را ندارید و باید در صورت نیاز از تابع lambdaو متغیرهای کمکی قابل تعریف در letاستفاده کنید. )) (dolst '(1) ‘(1 8 9 )'(2 16 18 )) (dolst '(2 (+ 7)) ‘(1 8 9 )'(8 15 16 )) (dolst '(3) ‘(1 8 9 )(' )) (dolst '(1 2 (+ 7) 3) ‘(4 8 9 )'(23 25 راهنمایی برای انجام این تمرین توابع زیر و مشتقات آنها را مطالعه کنید. filter, partition, curry, map, let, apply, cond انجام تمرین را به شب آخر موکول نکنید. نکات کلی مهلت ارسال این تمرین تا ساعت 23:32روز 16ام آبان ماه است. در صورت ارسال با تاخیر تمرین بهازای هر ساعت %1از نمرهی شما کسر خواهد شد. تمرین در قالب گروههای دو نفره قابل انجام است. نحوهی فرستادن تمرین مشابه تمرین سری اول است ،یک ایمیل که محتوی فایل تمرین است با موضوع و نام فایل ارسالی (که فقط نیاز است یک فایل .rktبفرستید) که فرمت HW2 #STD1 #STD2دارد را به آدرس الکترونیکی [email protected]ارسال نمایید. با هرگونه تقلب به شدت برخورد خواهد شد. هرگونه ابهام در صورت تمرین را حتما در گروه درس مطرح کنید ،در هنگام تصحیح و یا تحویل تمارین هیچ عذری مبنی بر گنگ بودن صورت تمرین قابل قبول نخواهد بود. جواب تمرین خود را به گروه نفرستید. سواالت خود را در گروه مطرح کنید تا دوستانتان نیز استفاده کنند.
© Copyright 2025 Paperzz