Table of Contents
تعریف سادهٔ برنامهٔ کامپیوتری
«برنامهٔ کامپیوتری» در سادهترین شکل یعنی:
مجموعهای از دستورها که به کامپیوتر میگوید دقیقاً چه کارهایی را، با چه ترتیبی انجام دهد.
کامپیوتر خودش «فقط» میتواند کارهای بسیار ساده انجام دهد:
جمعزدن، مقایسهکردن، جابهجا کردن دادهها، خواندن و نوشتن روی حافظه و…
برنامه این کارهای ساده را به شکل یک «دستورالعمل مرحلهبهمرحله» کنار هم میچیند تا یک کار پیچیده انجام شود؛ مثل:
- پخش یک آهنگ
- نمایش یک فیلم
- حساب کردن مبلغ خرید شما در فروشگاه اینترنتی
- پیدا کردن مسیر در نقشه
کامپیوتر بدون برنامه، فقط یک جعبهٔ سختافزاری است که کاری بلد نیست؛
این برنامهها هستند که به آن «هوش ظاهری» و کارکرد میدهند.
برنامه مثل دستور آشپزی
برای درک بهتر، برنامهٔ کامپیوتری را مثل یک «دستور پخت غذا» تصور کنید:
مثلاً:
- ۲ لیوان برنج را بشور.
- ۳ لیوان آب در قابلمه بریز.
- برنج را به آب اضافه کن.
- ۱۰ دقیقه روی حرارت ملایم بپز.
اگر شما این مراحل را به دقت انجام دهید، نتیجهٔ قابل پیشبینی است.
برنامهٔ کامپیوتری هم دقیقاً همین است:
- هر خط از برنامه → یک دستور مشخص به کامپیوتر
- ترتیب دستورها → مهم و تعیینکنندهٔ نتیجه
- اگر یک مرحله را اشتباه بنویسیم → نتیجهٔ اشتباه یا خطا
تفاوت مهم این است که:
- انسان اگر بگویید «یک مقدار آب اضافه کن»، حدس میزند یعنی چقدر.
- کامپیوتر اصلاً حدس نمیزند؛ باید دقیق، واضح و بدون ابهام به او بگویید چه کار کند.
از دید کامپیوتر برنامه چه شکلی است؟
کامپیوتر در نهایت، فقط صفر و یک را میفهمد (عددهای باینری).
دستورهای واقعی که پردازنده اجرا میکند، به شکل دنبالهای از صفر و یک هستند.
نمونهٔ خیالی (فقط برای تصور):
$$
10110011\ 01001010\ 00001111\ 11001001
$$
اما نوشتن مستقیم صفر و یک برای انسان:
- سخت است
- بسیار خطاپذیر است
- خواندن و فهمیدن آن تقریباً غیرممکن است
برای همین، زبانهای برنامهنویسی مثل پایتون بهوجود آمدهاند تا ما بتوانیم با جملات شبیه زبان انسان، به کامپیوتر دستور بدهیم.
مثلاً در پایتون مینویسیم:
print("سلام")این دستور برای انسان قابل فهم است، و در نهایت توسط مفسر پایتون به چیزهایی تبدیل میشود که کامپیوتر بتواند اجرا کند.
اجزای اصلی یک برنامه (در سطح خیلی مقدماتی)
در این مرحله فقط به شکل کلی با چند «فکر اصلی» آشنا میشویم. هرکدام بعداً فصل جدا دارد.
یک برنامهٔ ساده معمولاً شامل این بخشهاست:
- داده (Data)
چیزهایی که برنامه با آنها کار میکند؛ مثل: - عدد (سن، قیمت، امتیاز بازی)
- متن (نام کاربر، پیام خوشآمد)
- وضعیتها (روشن/خاموش، True/False)
- دستورها (Instructions)
قدمبهقدم به کامپیوتر میگویند: - «این عدد را با آن عدد جمع کن»
- «اگر سن بیشتر از ۱۸ بود، این پیام را چاپ کن»
- «این متن را در فایل ذخیره کن»
- ساختار یا ترتیب اجرای دستورها
همهٔ دستورها به صورت ساده و پشت سر هم اجرا نمیشوند.
مثلاً گاهی میگوییم: - «اگر شرطی برقرار بود این قسمت را اجرا کن، وگرنه آن یکی را»
- «این کار را ۱۰ بار تکرار کن»
اینها همان چیزهایی هستند که وقتی به فصلهای بعدی برسیم، با جزئیات یاد میگیرید.
چه چیزی باعث میشود یک برنامه «خوب» باشد؟
همهٔ برنامهها فقط «مجموعهای از دستورها» هستند، اما برنامهٔ خوب چند ویژگی دارد:
- مشکل مشخصی را حل میکند
مثلاً: - حساب کردن معدل
- مدیریت فهرست کارهای روزانه
- محاسبهٔ کرایهٔ تاکسی
- نتیجهٔ قابل پیشبینی میدهد
اگر همان ورودی را دوباره به آن بدهید، همان خروجی را میگیرید. - واضح و قابلخواندن برای انسان است
چون برنامهها را معمولاً انسانها مینویسند و انسانهای دیگر هم باید آن را: - بفهمند
- تغییر دهند
- بهتر کنند
- قابلاعتماد است
سعی میکند در شرایط مختلف: - خطا ندهد
- حداقل رفتار قابل قبولی داشته باشد
چند مثال از برنامههای روزمره
برای اینکه در ذهنتان جا بیفتد که «تقریباً همهجا برنامه هست»، این چند نمونه را در نظر بگیرید:
- ماشینحساب گوشی
برای هر دکمهای که میزنید، برنامهای تصمیم میگیرد: - کدام عمل ریاضی را انجام دهد
- نتیجه را چگونه نمایش دهد
- پیامرسانها (واتساپ، تلگرام و …)
برنامه تصمیم میگیرد: - پیام شما را چطور روی اینترنت بفرستد
- پیامهای دیگران را کجا ذخیره و چطور نشان دهد
- سایتهای خرید اینترنتی
برنامهها: - قیمتها را حساب میکنند
- پرداخت را مدیریت میکنند
- وضعیت سفارشها را پیگیری میکنند
در همهٔ اینها، پشتصحنه فقط برنامههایی هستند که کسانی نوشتهاند که «برنامهنویس» نامیده میشوند.
چرا برنامهها دقیق و بدون ابهام هستند؟
فرق بزرگ برنامه با دستورهای روزمرهٔ انسانی همین «بدون ابهام بودن» است.
به انسان میگوییم:
«برو یک لیوان آب بیار»
انسان خودش میفهمد:
- باید راه برود
- در را باز کند
- لیوان بردارد
- شیر آب را باز و بسته کند
- و…
اما برای کامپیوتر:
- باید تکتک این مراحل را به شکلی قابلاجرا و دقیق بنویسیم.
- هیچ مرحلهای را نمیتواند «حدس بزند».
برای همین برنامهنویس باید:
- خیلی دقیق فکر کند
- کار را به قدمهای کوچک و واضح تبدیل کند
- آن قدمها را به زبان برنامهنویسی بنویسد
این مهارت «تجزیهٔ مسئله به مراحل کوچک و قابلاجرا» از مهمترین چیزهایی است که در مسیر یادگیری برنامهنویسی به دست میآورید.
جمعبندی
در این بخش یاد گرفتید که:
- برنامهٔ کامپیوتری فهرستی دقیق از دستورهاست که به کامپیوتر میگوید چه کار کند.
- کامپیوتر بدون برنامه، فقط سختافزار خام است و هیچ کار مفیدی بهتنهایی انجام نمیدهد.
- زبانهای برنامهنویسی (مثل پایتون) به ما اجازه میدهند این دستورها را بهشکلی قابلفهم برای انسان بنویسیم تا بعداً به چیزی تبدیل شوند که کامپیوتر بفهمد.
- لازمهٔ نوشتن برنامه این است که مسئله را به مراحل ریز و بدون ابهام تبدیل کنیم.
در بخشهای بعدی فصل، با پایتون آشنا میشوید و قدمبهقدم اولین برنامههای واقعی خودتان را مینویسید.