برنامهنویسیایستگاه ۱۷ از ۳۰
تابع و تجزیهی مسئله · برنامهنویسی، ایستگاه ۱۷
پرسشی که ایستگاه با آن شروع میشود
یک برنامهی بزرگ مثل یک بازی را صدها نفر چطور با هم مینویسند؟
معمولاً پایهٔ هفتمحدود ۱۰۹ دقیقه در ۴ جلسهٔ کوتاه
سرعت را تسلط تعیین میکند، نه سن.
فرزندتان در این ایستگاه چه یاد میگیرد
- تعریف تابع و پارامتر
- مقدار بازگشتی
- تجزیهی مسئلهی بزرگ به کوچک
- تست هر بخش
درسهای این ایستگاه
- تابع: یک کارِ اسمدار (حدود ۲۴ دقیقه)
- return: تابعی که جواب برمیگرداند (حدود ۲۸ دقیقه)
- تجزیهی مسئلهی بزرگ (حدود ۲۹ دقیقه)
- آزمونِ هر بخش (حدود ۲۸ دقیقه)
ایدههای کلیدی
تابع: یک کارِ اسمدار
defیک بار تعریف میکند و هنوز چیزی اجرا نمیشود؛name(…)آن را صدا میزند. پارامتر اسمِ ورودی درونِ تابع است. یک بار بنویس، هر جا صدا بزن.return یا print
returnجواب را برمیگرداند و تابع را همانجا تمام میکند؛printفقط نشان میدهد. تابعِ بیreturnمقدارِNoneبرمیگرداند، نه ۰.بالا به پایین
اول اسمِ کارها، بعد درونِ هر کار. هر کار یک تابع با قرارداد: اسم، ورودیها، خروجی. متغیرهای درونِ تابع محلیاند.
از درسهای همین ایستگاه
یک مثال حلشده
مسئله
یک تابعِ یکخطی:def mins(h, m): return h * 60 + m ساعت و دقیقه را به «دقیقه از نیمهشب» تبدیل میکند. (اگر بدنهٔ تابع یک خط باشد، میشود آن را در همان خطِ def نوشت.) اتوبوسِ مدرسه ساعتِ ۷ و ۴۵ دقیقه راه میافتد و ساعتِ ۸ و ۲۰ دقیقه میرسد. print(mins(8, 20) - mins(7, 45)) چه چاپ میکند؟ اول خودت حدس بزن.راهحل، قدمبهقدم
در درس، قدمها یکییکی باز میشوند و فرزندتان پیش از هر قدم خودش حدس میزند.
- قدم ۱:
mins(8, 20): h برابرِ ۸ و m برابرِ ۲۰ است. تابع ۸ × ۶۰ + ۲۰ = ۵۰۰ را برمیگرداند. - قدم ۲:
mins(7, 45): ۷ × ۶۰ + ۴۵ = ۴۶۵. هر صدا زدن جوابِ خودش را برمیگرداند. - قدم ۳: حالا فقط دو عدد مانده: ۵۰۰ − ۴۶۵ = ۳۵. خروجی:
35؛ سفر ۳۵ دقیقه است. - قدم ۴: چرا تابع؟ کم کردنِ مستقیمِ ساعتها گیجکننده است، چون ۲۰ دقیقه از ۴۵ دقیقه کمتر است. تابع کار را دو تکه کرد: اول هر زمان را یک عدد کن، بعد دو عدد را کم کن. یک بار نوشتیم و دو بار صدا زدیم.
- قدم ۵: نوبتِ تو، اول خودت: زنگِ اولِ مدرسه ساعتِ ۸ و ۳۰ دقیقه شروع میشود و زنگِ آخر ساعتِ ۱۳ و ۱۵ دقیقه تمام میشود.
mins(13, 15) - mins(8, 30)چند است؟ جواب بده، بعد قدمِ بعد را باز کن. - قدم ۶: ۷۹۵ − ۵۱۰ = ۲۸۵ دقیقه. برای برگرداندنش به ساعت، همان
//و%ایستگاهِ ۱۱:285 // 60میشود ۴ و285 % 60میشود ۴۵؛ یعنی ۴ ساعت و ۴۵ دقیقه.
پیش و پس از این ایستگاه
پیشنیازها
ایستگاههایی که به این تکیه میکنند
- ایستگاه ۱۸: مرتبسازی و پیچیدگی زمانی
- هوش مصنوعی،ایستگاه ۱۷: یک مدل زبانی کوچک در پایتون
- هوش مصنوعی،ایستگاه ۱۹: عامل با ابزار در پایتون: حلقه، حافظه و امتحان
روش یادگیری فکرستان و همهٔ ایستگاههای این مسیر: برنامهنویسی برای کودکان
شروع با فکرستان
حساب را پدر یا مادر میسازد و رضایتش را همانجا ثبت میکند. فرزندتان با نام مستعار وارد میشود و با چند پرسش کوتاه، نقطهٔ شروعِ هر مسیر پیدا میشود.