گاما رو نصب کن!

{{ number }}
اعلان ها
اعلان جدیدی وجود ندارد!
کاربر جدید

جستجو

پربازدیدها: #{{ tag.title }}

میتونی لایو بذاری!
نمونه سوال محتوای آموزشی آزمون آنلاین پرسش و پاسخ درسنامه آموزشی مدرسه‌یاب معلم‌ها

گروه رویداد: دستورهایی هستند که مشخص می‌کنند برنامه از کجا شروع شود. مثل «وقتی پرچم سبز کلیک شد» یا «وقتی کلید فاصله فشرده شد».

بروزرسانی شده در: 17:38 1405/02/7 مشاهده: 42     دسته بندی: کپسول آموزشی

گروه رویداد: نقطهٔ آغاز هر برنامه

آشنایی با دستورهایی مثل «وقتی پرچم سبز کلیک شد» و «وقتی کلید فاصله فشرده شد» به عنوان قلب تپندهٔ برنامه‌های تعاملی
در این مقاله یاد می‌گیرید که رویدادها1 چگونه مشخص می‌کنند برنامه از کجا شروع به کار کند. با مثال‌های ملموس از محیط اسکرچ2 و برنامه‌نویسی متنی، با دستورهایی مثل «وقتی پرچم سبز کلیک شد»، «وقتی کلید فاصله فشرده شد» و «وقتی روی نقش کلیک شد» آشنا می‌شوید. همچنین می‌فهمید چرا انتخاب درست رویداد شروع، برای طراحی یک برنامهٔ کاربردی ضروری است.

۱. رویدادها: فرمان شروع در برنامه‌نویسی

در دنیای برنامه‌نویسی، کامپیوتر بدون دریافت دستور مشخص، نمی‌داند چه کاری انجام دهد. رویدادها همان محرک‌هایی هستند که به کامپیوتر می‌گویند: «از این جا شروع کن!». به عبارت دیگر، یک رویداد یک اتفاق خاص است (مانند کلیک ماوس، فشردن کلید یا ورود داده) که برنامه را وادار به اجرای یک مجموعه دستور از پیش تعیین شده می‌کند.

برای مثال، فرض کنید یک بازی طراحی کرده‌اید که با فشردن کلید «فاصله» شخصیت اصلی می‌پرد. در اینجا، «فشرده شدن کلید فاصله» یک رویداد است و دستور «بپر» همان بلوک کدی است که پس از آن رویداد اجرا می‌شود. بدون این رویداد، برنامه هرگز نمی‌داند چه زمانی باید عمل پرش را انجام دهد.

نکته: در بسیاری از زبان‌های دیداری مانند اسکرچ، رویدادها به شکل کلاه‌مانند (بالای بلوک‌های کد) قرار می‌گیرند. در زبان‌های متنی مانند پایتون یا جاوااسکریپت، رویدادها معمولاً با توابع خاص یا شنونده‌ها3 تعریف می‌شوند.

برخی از رایج‌ترین رویدادهای شروع در برنامه‌نویسی مقدماتی عبارتند از:

  • وقتی پرچم سبز کلیک شد (when green flag clicked): یک رویداد استاندارد در اسکرچ که اجرای اصلی برنامه را آغاز می‌کند.
  • وقتی کلید فاصله فشرده شد (when space key pressed): رویدادی که با فشردن یک کلید مشخص فعال می‌شود.
  • وقتی روی نقش کلیک شد (when this sprite clicked): مخصوص اشیاء (نقش‌ها) در برنامه‌های گرافیکی.
  • وقتی صدای بلندی شنیده شد (when loudness > threshold): رویداد مبتنی بر ورودی میکروفون.
نام رویداد (فارسی) محرک کاربرد معمول
وقتی پرچم سبز کلیک شد کلیک روی دکمهٔ پرچم سبز شروع اصلی بازی یا انیمیشن
وقتی کلید فاصله فشرده شد فشردن کلید Space کنترل حرکت (مثل پرش یا شلیک)
وقتی نقش کلیک شد کلیک روی یک شیء خاص تعامل با دکمه‌ها یا اشیاء بازی

۲. تفاوت رویدادهای شروع با حلقه و شرط

مهم است که رویدادهای شروع را با ساختارهای دیگری مثل حلقه4 یا شرط5 اشتباه نگیرید. حلقه (مانند تکرار همیشه) باعث می‌شود یک مجموعه دستور بارها و بارها اجرا شود، اما برای شروع نیاز به یک رویداد دارد. شرط (مانند اگر) یک تصمیم‌گیری در میانهٔ برنامه است، نه نقطهٔ شروع.

به این مثال توجه کنید: شما برنامه‌ای نوشته‌اید که با کلیک روی پرچم سبز، یک گربه به راست حرکت می‌کند و هر بار که به لبه می‌رسد، صدایی پخش می‌کند. در اینجا:

  • رویداد شروع:وقتی پرچم سبز کلیک شد
  • حلقه:تکرار همیشه (برای حرکت مداوم گربه)
  • شرط:اگر به لبه رسیدی (برای تشخیص برخورد به لبه)

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

۳. کاربرد عملی: طراحی یک ماشین حساب ساده با رویدادها

فرض کنید می‌خواهید یک ماشین حساب بسازید که با فشردن کلیدهای +، -، * و / عملیات مربوطه را انجام دهد. در اینجا هر کلید یک رویداد جداگانه محسوب می‌شود. شبه‌کد این برنامه به صورت زیر است:

وقتی کلید '+' فشرده شد:
    نتیجه = عدد۱ + عدد۲
    نمایش نتیجه

وقتی کلید '-' فشرده شد:
    نتیجه = عدد۱ - عدد۲
    نمایش نتیجه

در این مثال، بدون رویدادهای فشردن کلید، برنامه هرگز نمی‌داند کاربر کدام عمل را درخواست کرده است. همچنین می‌توانید از رویداد «وقتی پرچم سبز کلیک شد» برای مقداردهی اولیه (مثلاً قرار دادن اعداد پیش‌فرض 0 در حافظه) استفاده کنید.

یک نمونهٔ واقعی دیگر: در نرم‌افزارهای ارائه مطلب مانند پاورپوینت، با فشردن کلید F5 (رویداد) نمایش اسلایدها از ابتدا شروع می‌شود. این یعنی طراح نرم‌افزار از رویداد صفحه کلید برای تعیین نقطهٔ شروع استفاده کرده است.

۴. چالش‌های مفهومی در درک رویدادها

پرسش ۱: آیا یک برنامه می‌تواند چندین رویداد شروع متفاوت داشته باشد؟
پاسخ: بله، اغلب برنامه‌ها چندین رویداد شروع دارند. برای نمونه، در یک بازی ممکن است هم با کلیک روی پرچم سبز (شروع عادی) و هم با فشردن کلید R (شروع مجدد) بازی آغاز شود. هر رویداد می‌تواند یک توالی متفاوت از دستورها را اجرا کند.
پرسش ۲: اگر دو رویداد همزمان فعال شوند چه اتفاقی می‌افتد؟
پاسخ: در محیط‌های برنامه‌نویسی ساده مثل اسکرچ، دستورها به ترتیب (معمولاً بر اساس ترتیب قرارگیری بلوک‌ها) اجرا می‌شوند. در محیط‌های پیشرفته‌تر ممکن است مدیریت هم‌روندی6 (همزمانی) توسط سیستم عامل یا زمانبند زبان برنامه‌نویسی انجام شود. اما برای شروع، فرض می‌کنیم رویدادها یکی پس از دیگری پردازش می‌شوند.
پرسش ۳: آیا رویداد «وقتی پرچم سبز کلیک شد» معادلی در زبان‌های متنی دارد؟
پاسخ: بله، در بسیاری از زبان‌ها، رویداد «بارگذاری صفحه»7 یا «آماده شدن سند»8 نقشی مشابه دارد. برای مثال در جاوااسکریپت، window.[removed] رویدادی است که وقتی تمام محتوای صفحه بارگذاری شد، اجرا می‌شود. در پایتون (با کتابخانهٔ تینتر9) نیز می‌توان رویداد شروع را به دکمه‌ها یا کلیدها وصل کرد.

۵. فرمول‌بندی منطق رویدادها

گاهی برای مدل‌سازی رویدادها در ریاضیات یا علوم کامپیوتر از فرمول‌های منطقی استفاده می‌شود. اگر رویداد $E$ و شرط $C$ را در نظر بگیریم، می‌توان نوشت:

$ \text{اجرای دستورات} \leftarrow \text{رویداد } E \ \text{و} \ \text{شرط } C $

به عنوان نمونه، رویداد «وقتی کلید فاصله فشرده شد» برای پرش شخصیت در بازی را در نظر بگیرید. اگر شرط «باز بودن چتر نجات» را هم اضافه کنیم، شخصیت فقط زمانی می‌پرد که چتر باز نباشد. فرمول منطقی آن به شکل زیر است:

$ \text{پرش} \leftarrow (\text{فشردن فاصله}) \ \text{AND} \ (\text{چتر} = \text{بسته}) $

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

نکات کلیدی: رویدادها نقطهٔ شروع اجرا در برنامه‌ها هستند. «وقتی پرچم سبز کلیک شد» معروف‌ترین رویداد در اسکرچ و «وقتی کلید فاصله فشرده شد» نمادی از رویدادهای صفحه کلید است. هر برنامه می‌تواند چندین رویداد داشته باشد و رویدادها با حلقه و شرط تفاوت اساسی دارند. درک رویدادها اولین گام برای نوشتن برنامه‌های تعاملی و پاسخگو است.

پاورقی

1رویداد – معادل انگلیسی: Event. به هر اتفاق قابل تشخیص توسط برنامه (مانند کلیک، فشردن کلید، ورود داده) که باعث اجرای یک تکه کد می‌شود، رویداد گویند.

2اسکرچ – معادل انگلیسی: Scratch. یک زبان برنامه‌نویسی دیداری و رایگان برای کودکان و نوجوانان که توسط دانشگاه ام‌آی‌تی ساخته شده است.

3شنونده – معادل انگلیسی: Listener. تابعی که به طور مداوم منتظر وقوع یک رویداد خاص می‌ماند و هنگام وقوع آن، اجرا می‌شود.

4حلقه – معادل انگلیسی: Loop. ساختاری در برنامه‌نویسی که یک بلوک دستوری را به تعداد معین یا تا زمانی که شرطی برقرار است، تکرار می‌کند.

5شرط – معادل انگلیسی: Condition. ساختاری تصمیم‌گیرنده (مانند اگر-آن‌گاه) که مسیر اجرای برنامه را بر اساس درست یا نادرست بودن یک گزاره تعیین می‌کند.

6هم‌روندی – معادل انگلیسی: Concurrency. توانایی یک برنامه در اجرای چند کار به طور همزمان یا شبه‌همزمان.

7بارگذاری صفحه – معادل انگلیسی: Page Load. رویدادی که پس از بارگیری کامل یک صفحهٔ وب در مرورگر رخ می‌دهد.

8آماده شدن سند – معادل انگلیسی: Document Ready. رویدادی که نشان می‌دهد ساختار DOM صفحه برای دسترسی آماده است.

9تینتر – معادل انگلیسی: Tkinter. کتابخانه استاندارد پایتون برای ساخت رابط‌های کاربری گرافیکی (GUI).