دبستان

دبستان

متوسط

دستورالعمل‌ها

با داشتن اسم دانش‌آموزان و پایه‌ای که در آن هستند، فهرستی برای مدرسه تهیه کنید.

در پایان، باید بتوانید:

  • اسم یک دانش‌آموز را به فهرست یک پایه اضافه کنید:
    • «جیم را به پایه ۲ اضافه کنید.»
    • «باشد.»
  • فهرست همه‌ی دانش‌آموزانی را که در یک پایه ثبت‌نام کرده‌اند بگیرید:
    • «چه دانش‌آموزانی در پایه ۲ هستند؟»
    • «فعلاً فقط جیم را داریم.»
  • فهرست مرتب‌شده‌ای از همه‌ی دانش‌آموزان در همه‌ی پایه‌ها بگیرید. پایه‌ها باید به ترتیب ۱، ۲، ۳ و غیره مرتب شوند و دانش‌آموزان درون هر پایه باید بر اساس اسم به ترتیب الفبایی مرتب شوند.
    • «الان چه کسانی در مدرسه ثبت‌نام کرده‌اند؟»
    • «بگذارید فکر کنم. آنا، بارب و چارلی در پایه ۱ هستند، الکس، پیتر و زوئی در پایه ۲، و جیم در پایه ۵. پس پاسخ این است: آنا، بارب، چارلی، الکس، پیتر، زوئی و جیم.»

توجه کنید که همه‌ی دانش‌آموزان ما فقط یک اسم دارند (شهر کوچکی است، چه انتظاری دارید؟) و هیچ دانش‌آموزی را نمی‌توان بیش از یک بار به یک پایه یا به فهرست اضافه کرد. اگر یک تست بخواهد همان دانش‌آموز را بیش از یک بار اضافه کند، پیاده‌سازی شما باید نشان دهد که این کار نادرست است.

نکته

لازم نیست حتماً دانش‌آموزان را به‌صورت یک شیء جداگانه مدل‌سازی کنید؛ می‌توانید از یک ساختار داده‌ی داخلی مناسب استفاده کنید، چون الزامات کاملاً ساده‌اند (و تا زمانی که این ساختار در نتایج ظاهر نشود).

Note

این تمرین کمی نسبت به problem-specification تغییر یافته است، چون جدا کردن افزودن دانش‌آموزان و پرس‌وجو درباره‌ی آن‌ها در متدهای جداگانه منطقی‌تر است (در مقابل یک متد که هر دو کار را انجام دهد، که کمتر به Pharo/Smalltalk شباهت دارد).


منبع

یک جلسه‌ی برنامه‌نویسی دونفره با Phil Battos در gSchool
ویرایش از طریق GitHub این لینک در پنجره یا زبانه‌ی جدیدی باز می‌شود
Pharo Exercism

آماده‌اید دبستان را شروع کنید؟

در Exercism ثبت‌نام کنید تا Pharo را همراه با 50 تمرین و مربی‌گری انسانی واقعی یاد بگیرید و در آن استاد شوید، همه‌ی این‌ها رایگان.