رفتن به محتوای اصلی
نسخه‌ی آزمایشی · Beta

برنامه‌نویسیایستگاه ۱۷ از ۳۰

تابع و تجزیه‌ی مسئله · برنامه‌نویسی، ایستگاه ۱۷

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

یک برنامه‌ی بزرگ مثل یک بازی را صدها نفر چطور با هم می‌نویسند؟

معمولاً پایهٔ هفتمحدود ۱۰۹ دقیقه در ۴ جلسهٔ کوتاه

سرعت را تسلط تعیین می‌کند، نه سن.

فرزندتان در این ایستگاه چه یاد می‌گیرد

  • تعریف تابع و پارامتر
  • مقدار بازگشتی
  • تجزیه‌ی مسئله‌ی بزرگ به کوچک
  • تست هر بخش

درس‌های این ایستگاه

  1. تابع: یک کارِ اسم‌دار (حدود ۲۴ دقیقه)
  2. return: تابعی که جواب برمی‌گرداند (حدود ۲۸ دقیقه)
  3. تجزیه‌ی مسئله‌ی بزرگ (حدود ۲۹ دقیقه)
  4. آزمونِ هر بخش (حدود ۲۸ دقیقه)

ایده‌های کلیدی

  • تابع: یک کارِ اسم‌دار

    def یک بار تعریف می‌کند و هنوز چیزی اجرا نمی‌شود؛ name(…) آن را صدا می‌زند. پارامتر اسمِ ورودی درونِ تابع است. یک بار بنویس، هر جا صدا بزن.
  • return یا print

    return جواب را برمی‌گرداند و تابع را همان‌جا تمام می‌کند؛ print فقط نشان می‌دهد. تابعِ بی return مقدارِ None برمی‌گرداند، نه ۰.
  • بالا به پایین

    اول اسمِ کارها، بعد درونِ هر کار. هر کار یک تابع با قرارداد: اسم، ورودی‌ها، خروجی. متغیرهای درونِ تابع محلی‌اند.

از درس‌های همین ایستگاه

یک مثال حل‌شده

همان‌طور که در درس دیده می‌شود، این‌جا با همهٔ قدم‌ها.
مثال حل‌شدهاز درس «return: تابعی که جواب برمی‌گرداند»

مسئله

یک تابعِ یک‌خطی: def mins(h, m): return h * 60 + m ساعت و دقیقه را به «دقیقه از نیمه‌شب» تبدیل می‌کند. (اگر بدنهٔ تابع یک خط باشد، می‌شود آن را در همان خطِ def نوشت.) اتوبوسِ مدرسه ساعتِ ۷ و ۴۵ دقیقه راه می‌افتد و ساعتِ ۸ و ۲۰ دقیقه می‌رسد. print(mins(8, 20) - mins(7, 45)) چه چاپ می‌کند؟ اول خودت حدس بزن.

راه‌حل، قدم‌به‌قدم

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

  1. قدم ۱:
    mins(8, 20): h برابرِ ۸ و m برابرِ ۲۰ است. تابع ۸ × ۶۰ + ۲۰ = ۵۰۰ را برمی‌گرداند.
  2. قدم ۲:
    mins(7, 45): ۷ × ۶۰ + ۴۵ = ۴۶۵. هر صدا زدن جوابِ خودش را برمی‌گرداند.
  3. قدم ۳:
    حالا فقط دو عدد مانده: ۵۰۰ − ۴۶۵ = ۳۵. خروجی: 35؛ سفر ۳۵ دقیقه است.
  4. قدم ۴:
    چرا تابع؟ کم کردنِ مستقیمِ ساعت‌ها گیج‌کننده است، چون ۲۰ دقیقه از ۴۵ دقیقه کمتر است. تابع کار را دو تکه کرد: اول هر زمان را یک عدد کن، بعد دو عدد را کم کن. یک بار نوشتیم و دو بار صدا زدیم.
  5. قدم ۵:
    نوبتِ تو، اول خودت: زنگِ اولِ مدرسه ساعتِ ۸ و ۳۰ دقیقه شروع می‌شود و زنگِ آخر ساعتِ ۱۳ و ۱۵ دقیقه تمام می‌شود. mins(13, 15) - mins(8, 30) چند است؟ جواب بده، بعد قدمِ بعد را باز کن.
  6. قدم ۶:
    ۷۹۵ − ۵۱۰ = ۲۸۵ دقیقه. برای برگرداندنش به ساعت، همان // و % ایستگاهِ ۱۱: 285 // 60 می‌شود ۴ و 285 % 60 می‌شود ۴۵؛ یعنی ۴ ساعت و ۴۵ دقیقه.

پیش‌نیازها

ایستگاه‌هایی که به این تکیه می‌کنند

روش یادگیری فکرستان و همهٔ ایستگاه‌های این مسیر: برنامه‌نویسی برای کودکان

شروع با فکرستان

حساب را پدر یا مادر می‌سازد و رضایتش را همان‌جا ثبت می‌کند. فرزندتان با نام مستعار وارد می‌شود و با چند پرسش کوتاه، نقطهٔ شروعِ هر مسیر پیدا می‌شود.