کدنویسی: نوشتن دستورالعملهایی که رایانه اجرا میکند
دستورالعملها و زبان ماشین: نخستین گامها
رایانهها در سطح سختافزاری فقط دنبالهای از صفر و یک را میفهمند. به این زبان، زبان ماشین میگویند. اما نوشتن برنامه با صفر و یک برای انسان بسیار دشوار و زمانبر است. به همین دلیل زبانهای برنامهنویسی سطح بالا ساخته شدند. برای نمونه دستور print("سلام") در پایتون، در پشتصحنه به چندین دستور صفر و یک تبدیل میشود.
فرایند تبدیل کد نوشتهشده به زبان ماشین توسط مترجم2 یا مفسر3 انجام میگیرد. مترجم کل برنامه را یکجا تبدیل میکند، در حالی که مفسر دستور به دستور آن را اجرا کرده و تبدیل میکند. مثلاً زبان پایتون4 از مفسر استفاده میکند که برای یادگیری ابتدایی بسیار مناسب است.
متغیرها و انواع داده: خانههای حافظه
در کدنویسی برای ذخیرهٔ اطلاعات از متغیرها استفاده میشود. هر متغیر نامی دارد و مقداری در خود نگه میدارد. رایانه انواع دادهٔ متفاوتی را میشناسد:
| نوع داده | معادل فارسی | مثال در کد |
|---|---|---|
| عدد صحیح5 | Integer | age = 15 |
| عدد اعشاری6 | Float | pi = 3.14 |
| رشته7 | String | name = "سارا" |
| مقدار درست/نادرست8 | Boolean | is_student = True |
با متغیرها میتوان محاسبات ریاضی انجام داد. برای نمونه اگر تعداد ساعات مطالعه در هفته متغیر hours و تعداد روزها متغیر days باشد، میانگین روزانه به صورت زیر محاسبه میشود:
دستورهای شرطی: تصمیمگیری در کد
در برنامهنویسی برای انتخاب بین چند مسیر از دستورهای شرطی استفاده میشود. معروفترین آنها if، else if و else است. ساختار کلی به شکل زیر است:
مثال عینی: در یک برنامهٔ نمرهدهی، اگر نمرهٔ دانشآموز از 10 بیشتر یا مساوی بود، قبول و در غیر این صورت مردود اعلام میشود. این تصمیمگیری با یک شرط ساده انجام میگیرد.
حلقهها: اجرای تکراری دستورها
گاهی نیاز است یک دستور بارها اجرا شود. به جای نوشتن مکرر آن دستور، از حلقه9 استفاده میکنیم. دو نوع حلقهٔ رایج وجود دارد: for و while. حلقهٔ for برای تعداد مشخص تکرار و حلقهٔ while برای زمانی که شرطی برقرار است، اجرا میشود.
برای محاسبهٔ مجموع اعداد از 1 تا n میتوان از فرمول بسته استفاده کرد یا با حلقه آن را شبیهسازی نمود:
در حلقهٔ for متغیر i از 1 تا n رفته و در هر مرحله به مجموع قبلی اضافه میشود.
کاربرد عملی: محاسبهٔ مساحت با کدنویسی
فرض کنید میخواهیم برنامهای بنویسیم که شعاع دایره را گرفته و مساحت آن را محاسبه کند. مراحل گامبهگام:
- دریافت شعاع از کاربر و ذخیره در متغیر r
- استفاده از فرمول مساحت دایره: $ A = \pi r^{2} $
- نمایش نتیجه به کاربر
اگر شعاع برابر 5 سانتیمتر باشد، مساحت به صورت زیر محاسبه میشود:
این مثال ساده نشان میدهد که چگونه ریاضیات روزمره در قالب کدنویسی به رایانه آموزش داده میشود.
چالشهای مفهومی
چالش ۱: چرا کد من با وجود درست بودن دستورها اجرا نمیشود؟
ممکن است خطای نوع داده10 رخ داده باشد. مثلاً تلاش برای جمع یک عدد با یک رشتهٔ متنی بدون تبدیل نوع، باعث توقف برنامه میشود. راهکار: از توابع تبدیل نوع مانند int() یا str() استفاده کنید.
چالش ۲: فرق بین حلقهٔ بینهایت و حلقهٔ معمولی چیست؟
اگر شرط پایان در حلقهٔ while هیچگاه نادرست (False) نشود، حلقه تا بینهایت ادامه مییابد و برنامه قفل میکند. مثال: while True: print("همیشه"). برای جلوگیری، همیشه شرطی قرار دهید که پس از تعدادی تکرار نادرست شود.
چالش ۳: چرا برنامهنویسان از توابع استفاده میکنند؟
توابع11 بخشهای قابل استفادهٔ مجدد کد هستند. بدون تابع، باید کد تکراری بنویسید. با تابع، یک بار تعریف کرده و هر جا نیاز بود صدا میزنید. این کار باعث کاهش خطا و افزایش خوانایی میشود.
نکتهٔ نهایی: کدنویسی مهارتی است که با تمرین مداوم بهبود مییابد. شروع با الگوریتمهای ساده، سپس ورود به ساختارهای شرطی و حلقهها و در نهایت آشنایی با توابع و اشکالزدایی، مسیر استاندارد یادگیری است. هر برنامهنویسی حرفهای روزی از همان چاپ کردن "سلام دنیا" شروع کرده است.
پاورقیها
1 اشکالزدایی (Debugging): فرایند یافتن و رفع خطاهای موجود در کد برنامه.
2 مترجم (Compiler): برنامهای که کل کد منبع را یکجا به زبان ماشین تبدیل میکند.
3 مفسر (Interpreter): برنامهای که دستورات کد منبع را خط به خط اجرا و تبدیل میکند.
4 پایتون (Python): یک زبان برنامهنویسی سطح بالا، همهمنظوره و مناسب برای آموزش.
5 عدد صحیح (Integer): اعداد بدون جزء اعشاری مانند -3, 0, 42.
6 عدد اعشاری (Float): اعداد دارای نقطهٔ اعشار مانند 3.14, -0.5.
7 رشته (String): دنبالهای از کاراکترها که درون نقل قول قرار میگیرد.
8 مقدار درست/نادرست (Boolean): یکی از دو مقدار True یا False.
9 حلقه (Loop): ساختاری برای تکرار یک بلوک کد تا زمانی که شرط مشخصی برقرار باشد.
10 نوع داده (Data Type): دستهبندی دادهها که به مفسر میگوید چه عملیاتی روی آن مجاز است.
11 تابع (Function): بلوکی از کد که وظیفهٔ مشخصی انجام داده و میتوان آن را چندین بار فراخوانی کرد.