خرید بک لینک

وقتی می‌خواهیم یک مسئله را با برنامه‌نویسی حل کنیم، معمولاً قبل از نوشتن کد باید بدانیم که دقیقاً قرار است چه کاری انجام دهیم. شبه‌کد یکی از ابزارها یا روش‌هایی است که در این مرحله به ما کمک می‌کند. (این‌طوری تلفظ می‌شود: Shebhe Code)

شبه‌کد یک روش ساده برای نوشتن منطق و مراحل حل یک مسئله بدون وابستگی به یک زبان خاص برنامه‌نویسی است. یعنی هنوز کد واقعی ننوشته‌ایم و کامپیوتر هم نمی‌تواند آن را اجرا کند؛ فقط منطق برنامه را طوری می‌نویسیم که خودمان یا یک برنامه‌نویس دیگر بتواند به‌راحتی آن را بخواند و ارزیابی کند.

شبه‌کد (Pseudocode) چیست؟ آموزش ساده با مثال

در این آموزش ابتدا یاد می‌گیریم که شبه‌کد دقیقاً چه کاری انجام می‌دهد؛ سپس با یک مثال ساده آن را مرور می‌کنیم. در نهایت نیز تفاوت شبه‌کد با الگوریتم و کد و علاوه بر این نکات جانبی آن را با مثال و به زبان ساده آموزش می‌بینیم.

فهرست محتوای آموزش

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

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

شبه‌کد هم تقریباً همین نقش را در برنامه‌نویسی دارد. قبل از اینکه درگیر Syntax و نوشتن کد (به هر زبانی) شویم، ابتدا منطق مسئله را مرحله به مرحله مشخص می‌کنیم.

در حقیقت می‌توان شبه‌کد (Pseudocode) را بین «فکر کردن درباره راه‌حل» و «نوشتن کد» در نظر گرفت. با این کار، ابتدا روی حل مسئله تمرکز می‌کنیم و بعد همان منطق را با زبان برنامه‌نویسی موردنظرمان کدنویسی می‌کنیم. فرقی ندارد که با پایتون کد می‌نویسیم یا PHP، شبه‌کد در تمام زبان‌ها کاربرد دارد.

نکته مهم این است که شبه‌کد قرار نیست آن‌قدر به یک زبان خاص وابسته یا شبیه شود که خودش به کد تبدیل شود! ساختار آن باید برای انسان خوانا و در عین حال به اندازه کافی دقیق باشد تا منطق برنامه ابهام نداشته باشد.

فرض کنید می‌خواهیم وضعیت قبولی یک دانشجو را طبق نمره مشخص کنیم. منطق آن بسیار ساده است: اگر نمره ۱۲ یا بیشتر بود، دانشجو قبول شده و در غیر این‌صورت مردود است.

قبل از اینکه کدش را با یک زبان برنامه‌نویسی بنویسیم، می‌توانیم منطق را به شکلی شبیه به زیر مشخص کنیم:

دریافت نمره
اگر نمره بزرگ‌تر یا مساوی 12 بود:
چاپ passed
وگرنه:
چاپ failed

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

حالا همین منطق را با زبان برنامه‌نویسی پایتون می‌نویسیم:

score = int(input())
if score >= 12:
print("passed")
else:
print("failed")

تفاوت اصلی این دو قطعه کد این است که شبه‌کد فقط منطق برنامه را بیان می‌دهد و قابل اجرا نیست؛ اما کد پایتون آن منطق را پیاده کرده و قابل اجراست.

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

for number in 1-10:
print number

یا شاید همین را به فارسی این‌طوری بنویسیم:

به ازای هر عدد از 1 تا 10
عدد رو چاپ کن

یک نکته بسیار مهم: هنگام نوشتن شبه‌کد نباید نگران علامت : یا آکولاد یا نوع متغیر یا هر Syntax و اصول دیگری باشید! مهم این است که منطق برنامه را درست و بدون ابهام مشخص کنید.

من در کلاس‌های حضوری‌ام همیشه به دانش‌پذیران می‌گویم که قبل از نوشتن کدهای طولانی، سعی کنید روی کاغذ برای خودتان مراحل و منطق را بنویسید یا نقاشی کنید! این نیز نوعی شبه‌کد است. خیلی درگیر اینکه چطور Pseudocode بنویسیم یا چطوری For یا While در شبه‌کد را بنویسیم نشوید. فقط منطق را طوری توصیف کنید که برای خودتان و دیگران واضح باشد.

شاید هنگام یادگیری برنامه‌نویسی و آشنایی با مفهوم شبه‌کد برایتان سؤال شود که «وقتی که قرار است در نهایت کد واقعی بنویسم، چرا یک مرحله دیگر به کارهایم اضافه کنم؟» پاسخ این است که در مسائل ساده و کوتاه حق با شماست؛ می‌توانید مستقیماً کدنویسی کنید. اما هرچه مسئله پیچیده‌تر می‌شود، مشخص کردن منطق قبل از دست به کد شدن می‌تواند بسیاری از خطاهای فکری را زودتر آشکار کند.

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

در واقع می‌توان خیلی ساده گفت که الگوریتم راه‌حل است؛ شبه‌کد یک روش بیان آن راه‌حل است و کد، پیاده‌سازی آن که قابلیت اجرا دارد.

اولین دلیل این است که قبل از درگیر شدن با Syntax و کدنویسی، روی حل مسئله، مراحل اجرای برنامه و منطق برنامه تمرکز کنیم. این مبحث مخصوصاً برای افراد مبتدی و کسانی که در ابتدای راه برنامه‌نویسی هستند از اهمیت زیادی برخوردار است؛ چون ممکن است فکرمان هم‌زمان با فکر کردن به راه‌حل درگیر قواعد و ساختارهای کدنویسی نیز بشود.

دلیل دوم این است که شبه‌کد به زبان خاصی وابسته نیست. یک منطق واحد را می‌تواند بعداً با هر زبانی (نظیر پایتون، جاوا، C، جاوا اسکریپت و PHP) پیاده‌سازی کرد.

دلیل سوم، انتقال ساده‌تر ایده‌هاست. وقتی قصد داریم منطق یک برنامه را برای فرد دیگری بیان دهیم، لازم نیست که او حتماً با Syntax زبان مورد استفادهٔ ما آشنا باشد. ما فقط می‌خواهیم ساختار و روند کد را برای او تبیین دهیم و لزومی ندارد که شرح کدنویسی را بیان کنیم.

شبه‌کد Syntax استاندارد و واحدی ندارد. یعنی بر خلاف زبان‌های برنامه‌نویسی، قانون مشخصی وجود ندارد که همه افراد مجبور باشند دقیقاً با همان ساختار شبه‌کدهایشان را بنویسند. چیزی که اهمیت دارد، واضح بودن منطق و قابل فهم بودن مراحلش برای انسان است.

شما ممکن است در کتاب‌ها یا دوره‌های آموزشی ساختار، دستورها و قوانینی برای نوشتن شبه‌کد دیده باشید. نمی‌گویم که آن‌ها اشتباه هستند؛ نه! اتفاقاً گاهی اوقات ممکن است مجبور باشیم از ساختار خاصی پیروی کنیم. مثلاً ما در تیم خود قواعدی مشخص می‌کنیم که شبه‌کدهایمان نیاز به بیان نداشته باشند و همگی به‌راحتی شبه‌کدهای دیگران را متوجه شویم.

پس شما آزادید که به هر شکلی و زبانی اما به‌طور خوانا و واضح Pseudocode را بنویسید.

مثلاً مثالی که برای چاپ وضعیت قبولی یا مردودی دانشجو به‌صورت زیر زدم را به‌خاطر بیاورید:

دریافت نمره
اگر نمره بزرگ‌تر یا مساوی 12 بود:
چاپ passed
وگرنه:
چاپ failed

ممکن است فردی همان منطق را با ساختاری نزدیک‌تر به کدنویسی بنویسد:

INPUT score
IF score >= 12: PRINT "passed"
ELSE: PRINT "failed"

یا حتی آن را به‌گونه‌ای دیگر بنویسد:

score رو ورودی بگیر
اگر score حداقل 12 بود: چاپ کن passed
وگرنه چاپ کن failed

هر سه مورد بالا صحیح هستند. تفاوت فقط در نحوه بیان منطق است و راه‌حل هیچ تفاوتی نکرده است.

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

استفاده از شبه‌کد معمولاً در سه موقعیت مفید است:

یادتان باشد که قرار نیست برای همه‌ی کدهایتان حتماً شبه‌کد بنویسید. زمانی از آن استفاده کنید که می‌خواهید یک مسئله بزرگ را قبل از کدنویسی برای خودتان واضح‌تر کنید. در حقیقت Pseudocode کمک می‌کند که ابتدا فکر کنیم و سپس کدنویسی کنیم. وقتی منطق مسئله برای ما مشخص و روشن باشد، نیازی به استفاده از آن نداریم.

در این آموزش با یک مفهوم کاربردی در برنامه‌نویسی آشنا شدیم. شبه‌کد یک روش ساده برای بیان مراحل و منطق یک الگوریتم یا ساختار کد بدون وابستگی به زبان خاص است. آن را نمی‌توان اجرا کرد و برای درک و فهم بهتر انسان استفاده می‌شود.

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

این آموزش برای همیشه مجانیه! می‌تونید با اشتراک‌گذاری لینک این صفحه از ما حمایت کنید یا با تهیه یه فنجون نوشیدنی بهمون انرژی بدید!

برچسب: نویسنده: استخدام کار تاريخ: چهارشنبه 4 شهريور 1405 ساعت: 23:37

صفحه بندی

خبرنامه