داشبورد›رودمپ›برنامه‌نویسی مقدماتی
💻 برنامه‌نویسی مقدماتی · درس ۱

الگوریتم، متغیر و نوع داده

یاد می‌گیری مسئله را به قدم‌های کوچک تبدیل کنی و داده‌ها را با متغیر نگه داری.

⏱ ۱۶ دقیقه 🌱 شروع از صفر ⭐ +۳۰ XP 🧠 کوئیز الزامی
🎯
بعد از این درس

قراره چی یاد بگیری؟

  • بتوانی یک مسئله ساده را به ورودی، پردازش و خروجی تبدیل کنی.
  • فرق int، float و bool را در مثال‌های رباتیکی تشخیص بدهی.
  • بتوانی مقدار متغیرها را روی کاغذ دنبال کنی و یک خطای ساده نوع داده را پیدا کنی.

از مسئله به الگوریتم

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

ورودی → پردازش → خروجی
فاصله → مقایسه با حد مجاز → توقف یا حرکت موتور

مثلا برای یک ربات مانع‌گریز، ورودی می‌تواند فاصله سنسور، پردازش مقایسه با ۲۰ سانتی‌متر و خروجی فرمان توقف موتور باشد. اگر همین منطق را قبل از کد روی کاغذ بنویسی، پیدا کردن اشتباه خیلی ساده‌تر می‌شود.

متغیر یعنی یک جای نام‌دار برای داده

در برنامه، مقدارها را در متغیر نگه می‌داریم. اسم متغیر باید معنی‌دار باشد؛ distanceCm از x بهتر است چون بعدا می‌فهمیم چه داده‌ای داخلش است.

int distanceCm = 35;
float batteryVoltage = 7.42;
bool obstacleDetected = false;
  • int برای عدد صحیح مثل تعداد پالس، شماره پایه یا فاصله گرد شده مناسب است.
  • float برای عدد اعشاری مثل ولتاژ یا دما به کار می‌رود.
  • bool فقط true یا false است و برای وضعیت‌هایی مثل روشن/خاموش یا وجود/عدم وجود مانع عالی است.

نوع داده فقط ظاهر کد نیست. اگر به اشتباه 7.5 را داخل یک متغیر صحیح قرار بدهی، بخش اعشاری از دست می‌رود. در میکروکنترلرها اندازه نوع داده روی حافظه هم اثر دارد، پس «هر چیزی را float کنیم» هم تصمیم خوبی نیست.

الگوریتم را با مثال دستی تست کن

فرض کن باید میانگین سه اندازه‌گیری فاصله را حساب کنیم:

int a = 20;
int b = 22;
int c = 21;
float average = (a + b + c) / 3.0;

قبل از اجرا، دستی حساب کن: جواب باید 21.0 باشد. حالا یک حالت مرزی هم تست کن؛ مثلا هر سه مقدار صفر باشند. این کار به تو یاد می‌دهد قبل از اعتماد به خروجی، خروجی مورد انتظار را بدانی.

اشتباه‌های رایج

  • انتخاب اسم‌های بی‌معنی برای متغیرها.
  • استفاده از نوع داده نامناسب و از دست دادن اعشار یا محدوده عددی.
  • نوشتن کد قبل از اینکه ورودی و خروجی مسئله روشن باشد.
  • تست فقط با یک مقدار «خوب» و فراموش کردن صفر، مقدار خیلی بزرگ یا مقدار مرزی.

تمرین

برای «روشن کردن فن وقتی دما از ۳۰ درجه بیشتر است» سه چیز بنویس: ورودی، پردازش و خروجی. بعد سه متغیر مناسب با نوع داده‌شان تعریف کن. در پایان برای دمای ۲۹، ۳۰ و ۳۱ درجه نتیجه مورد انتظار را روی کاغذ بنویس. هنوز لازم نیست برنامه کامل را اجرا کنی؛ هدف این است که قبل از کدنویسی بتوانی رفتار را پیش‌بینی کنی.

چک‌پوینت

اگر بتوانی توضیح بدهی چرا bool obstacleDetected از یک عدد بی‌نام بهتر است و چرا برای ولتاژ float لازم می‌شود، پایه این درس را گرفته‌ای.

🃏
مرور سریع

فلش کارت‌ها

۱ / ۳
🧠
برای تکمیل درس لازمه

آزمون کوتاه همین درس

حد نصاب ۷۰٪

برای عبور از درس، مفهوم را روی یک موقعیت واقعی به کار ببر؛ جواب‌ها از حفظ یک جمله نیستند.

۱

برای نگه‌داری ولتاژ 7.42V کدام نوع داده مناسب‌تر است؟

۲ امتیاز
۲

اگر مقدار 7.5 را در یک متغیر int نگه داریم، می‌توانیم روی حفظ بخش اعشاری حساب کنیم.

۱ امتیاز
۳

جای خالی را طوری پر کن که وضعیت وجود مانع را نگه داریم.

۲ امتیاز
_____ obstacleDetected = false; جای خالی 
۳ سوال هنوز جواب نداره.
🔗
برای عمیق‌تر شدن

منابع تکمیلی