تمرین عملی اول Scheme زبانهای برنامهسازی سینا رشیدیان -0نصب و راهاندازی Racket همانطور که در کالس حل تمرین آشنایی مختصری با Racketپیدا کردید ،این زبان یکی از زبانهای پیشرفتهی خانوادهی Schemeمیباشد DrRacket .یک محیط برنامهنویسی تعاملی 1برای این زبان است .برای نصب نسخه مناسب با توجه به سیستم عامل خود به آدرس زیر مراجعه کنید: /http://racket-lang.org/download بعد از اجرای برنامه با پنجره زیر مواجه میشوید .در قسمت باال برنامه خود را مینویسید .با زدن دکمه Run برنامه شما قابل اجرا شده و تابعهایی که در برنامهی خود تعریف کردهاید در قسمت پایین (محیط اجرای دستورها و توابع) قابل استفاده هستند .توجه کنید که بعد از هر تغییر باید دوباره دکمهی Runرا بزنید. برای آشنایی بیشتر با توابع اولیه Racketمیتوانید از لینک زیر استفاده کنید: http://docs.racket-lang.org/quick/index.html interactive 1 -1آشنایی با لیستها لیستها از مفاهیم بنیادی زبان Lispهستند .برای آشنایی بیشتر و مسلط شدن به این مفهوم ،توابع داده شده را پیادهسازی کنید .دقت کنید در این تمرین پیادهسازی باید بدون استفاده از توابع مشابه موجود در خود Lisp صورت گیرد. node :(my_insert1 node lst) oرا در انتهای لیست lstاضافه میکند. :(my_insert2 lst1 lst2) oلیست lst2را در ادامهی لیست lst1قرار میدهد .دقت کنید ترتیب مورد نظر حفظ شود. مثال :اگر ) lst1 = ‘(1 2 3و ) lst2 = ‘(4 5 6باشد ،آنگاه نتیجه این تابع بعد از اجرا ) ‘(1 2 3 4 5 6است. :(my_seprator1 i lst) oاین تابع ،درایههای اول تا iام لیست lstرا بازمیگرداند. :(my_seprator2 i lst) oاین تابع ،درایههای i+1ام تا انتهای لیست lstرا بازمیگرداند. node :(my_insert3 node i lst) oرا در خانهی iام لیست lstدرج میکند ( .در صورتی که مقدار i بیشتر از طول لیست بود ،در انتهای لیست nodeرا درج کنید). -2دگرنویسی تابع length در زبان lispیک تابع به نام lengthوجود دارد طول یک لیست را برمیگرداند .با کمک این تابع ،تابعی به نام my_lenبنویسید ،که به صورت بازگشتی در لیست جستجو کند ،و تعداد کل اتم2ها را برگرداند. مثال: (length ‘((a b) c (5 (6 7))) => 3 (my_len ‘((a b) c (5 (6))) => 5 -3رسم بازگشتی فراکتالها شکل زیر نشاندهندهی فراکتال معروف مثلث سرپینسکی است که از چپ به راست برای nهای 3 ،1و 7رسم شده است .شما باید تابع ) (sierp nرا پیادهسازی کنید ،به گونهای که خروجی آنn ،امین فراکتال سرپینسکی باشد. به عنوان راهنمایی برای نحوهی کشیدن اشکال در lispبه لینک زیر مراجعه کنید. http://docs.racket-lang.org/quick/index.html همچین برای کسب اطالعات بیشتر در مورد این فراکتال میتوانید لینک زیر را مطالعه کنید. http://en.wikipedia.org/wiki/Sierpinski_triangle atom 2 نکات کلی مهلت ارسال این تمرین تا ساعت 23:32روز 3ام آبان ماه است. تمرین در قالب گروههای دو نفره قابل انجام است. نحوهی فرستادن تمرین در گروه درس توضیح خواهد داده شد. با هرگونه تقلب به شدت برخورد خواهد شد. هرگونه ابهام در صورت تمرین را حتما در گروه درس مطرح کنید ،در هنگام تصحیح و یا تحویل تمارین هیچ عذری مبنی بر گنگ بودن صورت تمرین قابل قبول نخواهد بود. جواب تمرین خود را به گروه نفرستید. سواالت خود را در گروه مطرح کنید تا دوستانتان نیز استفاده کنند.
© Copyright 2025 Paperzz