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

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

جستجو

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

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

کد: در برنامه‌نویسی، به دستورالعمل‌هایی که می‌نویسیم، کد می‌گویند. در اسکرچ، کدها همان بلوک‌های به هم چسبیده هستند.

بروزرسانی شده در: 20:09 1405/02/6 مشاهده: 137     دسته بندی: کپسول آموزشی

کد در برنامه‌نویسی: از دستورات متنی تا بلوک‌های اسکرچ

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

تعریف کد و نقش آن در اجرای دستورالعمل‌ها

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

در زبان‌های متنی مثل پایتون، جاوا یا ++C، کدها به صورت حروف، اعداد و نمادها نوشته می‌شوند. اما در اسکرچ2، کد به شکل بلوک‌های رنگی دیده می‌شود که مانند قطعات پازل به یکدیگر متصل می‌شوند. جالب است بدانید که هر بلوک اسکرچ در پشت‌صحنه به یک دستور متنی تبدیل می‌شود؛ بنابراین یادگیری اسکرچ شما را برای ورود به دنیای زبان‌های متنی آماده می‌کند.

مثال علمی: در یک آزمایش ساده، می‌خواهیم دمای یک ماده را اندازه بگیریم. کد ما باید سه مرحله داشته باشد: ۱- خواندن دما۲- مقایسه با آستانه۳- روشن کردن هشدار در صورت لزوم. همین ساختار را می‌توان هم با کد متنی و هم با بلوک‌های اسکرچ پیاده‌سازی کرد.

معادل‌سازی بلوک‌های اسکرچ با دستورات متنی

در اسکرچ، دسته‌بندی بلوک‌ها با رنگ مشخص می‌شود: بلوک‌های حرکت (آبی)، ظاهر (بنفش)، صدا (صورتی)، رویدادها (زرد)، کنترل (نارنجی)، حس‌کردن (سبز آبی)، عملگرها (سبز) و متغیرها (نارنجی قرمز). هر بلوک معادل یک دستور در زبان‌های متنی است. برای نمونه، بلوک move 10 steps در اسکرچ معادل x = x + 10*cos(direction) در یک زبان متنی نیست، اما مفهوم جابه‌جایی را منتقل می‌کند.

عملیاتبلوک اسکرچکد متنی (پایتون)
شروع اجراوقتی پرچم سبز کلیک شدif __name__ == "__main__":
حلقهٔ بی‌پایانبرای همیشهwhile True:
شرط اگر-آن‌گاهاگر آن‌گاهif condition:

الگوریتم و ترتیب اجرای کدها (توالی و کنترل جریان)

کدها همیشه به ترتیبی که نوشته می‌شوند، اجرا نمی‌شوند. ساختارهای توالی (اجرای خط به خط)، انتخاب (if/else) و تکرار (حلقه) جریان اجرا را کنترل می‌کنند. در اسکرچ، این ساختارها با بلوک‌های کنترل (نارنجی) پیاده می‌شوند. برای نمونه بلوک تکرار 10 بار معادل حلقهٔ for i in range(10): در پایتون است.

فرمول ساده برای محاسبهٔ مجموع اعداد 1 تا n به کمک حلقه: $S = \sum_{i=1}^{n} i = \frac{n(n+1)}{2}$ در اسکرچ می‌توان با یک متغیر به نام مجموع و یک حلقهٔ تکرار از 1 تا n این فرمول را پیاده‌سازی کرد.

پروژهٔ عملی: شبیه‌سازی یک دماسنج دیجیتال در اسکرچ

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

  • از بلوک درخواست [دما] و منتظر بمان در دستۀ حس‌کردن استفاده می‌کنیم.
  • جواب را در متغیر دما ذخیره می‌کنیم.
  • با بلوک اگر آن‌گاه تصمیم‌گیری می‌کنیم.
  • برای نمایش پیام از بلوک گفتن [گرما] به مدت 2 ثانیه استفاده می‌کنیم.

این پروژه دقیقاً همان منطقی را دارد که در کد متنی زیر می‌نویسیم:

temp = float(input("دما را وارد کن: "))
if temp > 30:
    print("گرما")
else:
    print("دمای معمولی")

چالش‌های مفهومی در تبدیل بلوک به کد متنی

۱- چرا در اسکرچ خبری از خطای «سمت راست» نیست اما در پایتون حساسیت به فاصله وجود دارد؟

پاسخ: اسکرچ با اتصال فیزیکی بلوک‌ها، تو رفتگی (indentation) را اجباری می‌کند. در پایتون، فاصله از ابتدای سطر نشان‌دهندهٔ بلوک بودن کد است؛ بنابراین یک فاصلهٔ اضافی می‌تواند خطا ایجاد کند. این مفهوم در اسکرچ به صورت خودکار رعایت می‌شود.

۲- آیا همهٔ کدهای اسکرچ به کد متنی تبدیل‌شدنی هستند؟

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

۳- چرا در اسکرچ خطای نحوی4 نداریم اما در کد متنی رایج است؟

پاسخ: بلوک‌های اسکرچ به گونه‌ای طراحی شده‌اند که فقط در جایگاه درست به یکدیگر متصل شوند؛ مثلاً نمی‌توان یک بلوک شرط را داخل یک عدد چسباند. این ویژگی مانع از بروز خطاهای نحوی می‌شود. در کد متنی، ویرایشگر اختیار کامل به شما می‌دهد، بنابراین احتمال تایپ اشتباه (prnit به جای print) وجود دارد.

کد در برنامه‌نویسی، چه به شکل بلوک‌های بصری اسکرچ و چه به شکل دستورات متنی، روشی برای ارتباط با رایانه و حل مسئله است. یادگیری ساختارهای توالی، انتخاب و تکرار در اسکرچ پایه‌ای محکم برای ورود به زبان‌های حرفه‌ای مانند پایتون ایجاد می‌کند. همچنین مزیت بلوک‌ها در حذف خطاهای نحوی و مزیت کد متنی در انعطاف‌پذیری و کاربرد صنعتی، دو روی یک سکه هستند. تمرین با پروژه‌های کوچک مانند دماسنج دیجیتال، پل میان این دو جهان را هموار می‌سازد.

پاورقی

1کد (Code): به مجموعه دستورالعمل‌های نوشته‌شده به یک زبان برنامه‌نویسی گفته می‌شود که پس از ترجمه (تفسیر یا کامپایل) توسط رایانه اجرا می‌شود.

2اسکرچ (Scratch): زبان برنامه‌نویسی بصری و رایگان که توسط گروه لایف‌لانگ کیندرگارتن در مؤسسهٔ فناوری ماساچوست (ام‌آیتی) توسعه یافته است. هدف آن آموزش مفاهیم برنامه‌نویسی به کودکان و نوجوانان است.

3تورینگ کامل (Turing Complete): به زبانی گفته می‌شود که بتواند هر الگوریتم قابل محاسبه‌ای را پیاده‌سازی کند. اسکرچ این ویژگی را دارد.

4خطای نحوی (Syntax Error): نوعی خطا در برنامه‌نویسی که به دلیل رعایت نکردن قواعد دستوری زبان (مانند فراموشی دو نقطه یا پرانتز) رخ می‌دهد و مانع اجرای برنامه می‌شود.