شبه کد (Pseudocode) چیست و چه کمکی به ما میکند؟
زمانی که برای نخستین بار شروع به یادگیری برنامهنویسی میکنیم، پیش از آن که بتوانیم نخستین اپلیکیشن خود را بسازیم، موارد زیادی برای مطالعه وجود دارند. داشتن طرز تفکر برنامهنویسی به ما کمک میکند که مسائل را به الگوریتمهایی که آنها را حل میکنند بشکنیم. الگوریتمها گامهایی هستند که کد برای حل یک مسئله با پاسخ به یک سؤال اجرا میکند. در این مقاله با مفهوم شبه کد (Pseudocode) آشنا خواهیم شد.
در صورتی که بهتازگی کدنویسی را شروع کردهاید، شاید طرز تفکر مانند یک برنامهنویس برای شما دشوار باشد. ترجمه ایدههای اپلیکیشن به کد واقعی نیاز به کمی تمرین دارد. برای این که شکاف بین آن چه که از یک اپلیکیشن میخواهیم و کد واقعی کمتر شود، باید از شبه کد استفاده کنیم.
شبه کد چیست؟
شبه کد یا Pseudocode یک توصیف متنی ساده از یک قطعه کد یا الگوریتم است. شبه کد به معنای کدنویسی نیست، چون هیچ اسکریپت یا فایلی وجود ندارد و از مفاهیم برنامهنویسی نیز استفاده نمیکنیم. همان طور که از نام شبه کد مشخص است، یک کد ساختگی است.
شبه کد در هیچ زبان برنامهنویسی نوشته نمیشود. شبه کد به زبان معمولی که استفاده میکنیم نوشته میشود که روشن است و درک آن آسان خواهد بود.
با این که شبه کد در یک زبان برنامهنویسی نوشته نمیشود، اما همچنان کلیدواژههایی وجود دارند که برای اشاره به مفاهیم رایج کدنویسی مورد استفاده قرار میگیرند. این موارد با حروف بزرگ نوشته میشوند تا خواندشان آسانتر باشد.
- START
- INPUT
- READ/GET
- PRINT/DISPLAY
- CALCULATE/DETERMINE
- SET
- INCREMENT/DECREMENT
- PROGRAM
- END
در ادامه قطعه کدی را میبینید که یک شبه کد برای یک برنامه است که رنگ مورد علاقه خود را در آن وارد میکنید و گزینه مورد نظر شما را پرینت میکند:
START PROGRAM getColor Create variable Color Ask the user for their favorite color READ INPUT into Color PRINT Color END
این الگوریتم کاملاً سادهای است که در شبه کد نوشته میشود. هر کس میتواند کاری که این کد انجام میدهد را بخواند و درک کند. به عنوان یک کدنویس تنها کاری که باید انجام دهید این است که این مفاهیم را با استفاده از هر زبان برنامهنویسی که در آن کدنویسی میکنید حیات ببخشید. برای نمونه کد همین برنامه در جاوا اسکریپت به صورت زیر است:
1let color = window.prompt("What is your favorite color?");
2console.log(color);
این برنامه از ساختار جاوا اسکریپت برای نوشتن الگوریتم استفاده میکند. اگر نمیدانید جاوا اسکریپت چیست، درک اتفاقاتی که در کد فوق میافتد، ممکن است برای شما دشوار باشد. شبه کد الگوریتم را مینویسید و زبانهای برنامهنویسی نحو آن را تعیین میکنند.
فایده شبه کد چیست؟
شبه کد به ما کمک میکند که طرح کلی اپلیکیشن را پیش از نوشتن آن مشخص بکنید. بدین ترتیب به ایجاد الگوریتمها در قالبی که خواندن آنها سادهتر از نحو کد است کمک میکند. زمانی که با زبانهای برنامهنویسی مواجه میشویم، درک اتفاقی که میافتد بسیار دشوارتر میشود.
اگر با زبان جاوا اسکریپت آشنا باشید، خواندن مثال جاوا اسکریپت فوق چندان دشوار نخواهد بود، اما اگر بخواهید منطق کد را بفهمید چطور؟ کلیدواژههای خاصی مانند window.prompt یا console.log موارد زیادی را در مورد الگوریتم مشخص نمیسازند.
اصول نرمافزار خوب حائز اهمیت هستند. اگر میخواهید به عنوان یک مهندس نرمافزار در مصاحبه شغلی شرکت کنید افراد مصاحبهکننده عموماً از شما انتظار ندارند که نحو زبانهای برنامهنویسی را به خاطر داشته باشید. در صورتی که پیش از کدنویسی الگوریتمها و ساختارهای مورد نظر را آمادهسازی کنید، کدهای بسیار بهتری میتوانید بنویسید.
شیوه نوشتن شبه کد
نوشتن برنامه کامل در شبه کد نیازمند گزارهها و کلیدواژههای زیادی است که شباهت زیادی به برنامهنویسی معمولی دارند. در واقع زمانی که تمرین کافی با شبه کد داشته باشید، کمکم بسیار شبیه به برنامه واقعی به نظر میرسد.
گزارههای شرطی
گزارههای شرطی برای برنامهنویسی حیاتی هستند. این گزارهها به صورت IF یا IF/ELSE هستند که میتوانند منطق را به کد اضافه کنند. این گزارهها با استفاده از کلیدواژههای زیر در شبه کد نوشته میشوند:
- IF
- ELSE
- ELSE IF
- THEN
در ادامه برنامهای با یک گزاره ساده IF/ELSE میبینید که در شبه کد نوشته شده است. بررسی کنید آیا میتوانید صرفاً با خواندن شبه کد، کاری که برنامه انجام میدهد را درک کنید:
START PROGRAM isOdd Create variable Choice Ask the user for a number READ INPUT into Choice IF Choice is even THEN PRINT "No" ELSE PRINT "Yes" ENDIF END
این یک برنامه کاملاً ساده است. از کاربر یک عدد میگیرد و بسته به این که عدد فرد یا زوج باشد، کاری را انجام میدهد.
گزارههای تکرار
بخش اساسی دیگر در برنامهنویسی بحث تکرار است که به طور عمده با حلقهها انجام مییابد. برخی حلقههای رایج شامل حلقههای for و while هستند که هر دوی آنها را میتوان با شبه کد نوشت:
START PROGRAM forLoop FOR 1 through 12 PRINT "Hello" ENDFOR END
این الگوریتم برای برنامهای است که عبارت Hello را 12 بار چاپ میکند. حلقههای while نیز بسیار ساده نوشته میشوند:
START PROGRAM whileLoop Create variable Counter SET Counter equal to 1 WHILE Counter is less than 10 Print "Hello" INCREMENT Counter ENDWHILE END
الگوریتم ساده فوق نیز با استفاده از حلقه while عبارت Hello را پرینت میکند. هر دو مثال حلقه شروع و پایان روشنی برای تکرار دارند.
میتوان نوع دیگری از حلقهها را نیز نوشت که به حلقههای Do-While مشهور هستند. کلیدواژههای شبه کد در این حلقهها متفاوت و به صورت REPEAT و UNTIL هستند:
START PROGRAM doWhileLoop Create variable Counter SET Counter equal to 1 REPEAT Print "Hello" INCREMENT Counter UNTIL Counter is equal to 10 END
حلقه فوق نیز همانند یک حلقه DO-While عملی را تا زمانی که معیار مشخصی برآورده شود اجرا میکند. زمانی که این شرط برقرار شود، از حلقه خارج خواهد شد.
تابعها
تابعها بهترین دوست هر برنامهنویسی محسوب میشوند. تابعها شامل کدی هستند که میتواند بارها و بارها فراخوانی شود و در زبانهای برنامهنویسی سطح بالا مورد استفاده قرار میگیرند. افزودن تابع به شبه کد کار بسیار آسانی است.
START PROGRAM sampleFunction PRINT "This is a function" END
امکان فراخوانی تابعها در شبه کد وجود دارد:
call sampleFunction
در مورد تابعها نکات خاص دیگری وجود ندارد که اضافه کنیم. تابعها ساده هستند و با استفاده از آنها میتوانید هر منطقی که دوست دارید را اضافه کنید.
مدیریت خطا
این که بتوانیم کدی بنویسیم که بتواند به خطاها واکنش نشان بدهد، در زمان توسعه اپلیکیشن حائز اهمیت بالایی محسوب میشود. بدین ترتیب میتوان این تابعها را در شبه کد نیز جای داد. امکان مدیریت خطاها و استثناها با استفاده از کلیدواژه EXCEPTION وجود دارد. در ادامه الگوریتم سادهای مبینید که یک خطا را به دام میاندازد.
START PROGRAM catchError Create variable Number Ask the user for a number READ INPUT into Number EXCEPTION WHEN Number is not a number PRINT "Error: Please pick a number" END
کد استثنا ورودی بد وارد شده از سوی کاربر را به دام میاندازد. تست کردن کد برای نوشتن اپلیکیشنهای خوب امری ضروری است. برخی از این استثناها در تستهای ما ظاهر نخواهد شد، از این رو نوشتن آنها در شبه کد و زمان طرحریزی اپلیکیشن کار مناسبی است.
سخن پایانی
شبه کد به طور کامل برای این است که به کدنویس بهتری تبدیل شویم. با مطالعه این راهنما با روش نوشتن شبه کد آشنا شدید و اینک میدانید که این قابلیت در فرایند برنامهنویسی تا چه حد مهم محسوب میشود. یادگیری روش نوشتن شبه کد حتی در صورتی که بهتازگی شروع به یادگیری کدنویسی کردهاید توصیه میشود.
اگر این مطلب برای شما مفید بوده است، آموزشهای زیر نیز به شما پیشنهاد میشوند:
- مجموعه آموزشهای برنامهنویسی
- آموزش طراحی الگوریتم به همراه حل مثال های عملی
- مجموعه آموزشهای دروس علوم و مهندسی کامپیوتر
- ۵ اصطلاح مهم که هر برنامه نویسی باید بداند
- الگوریتم های تقسیم و حل (Divide and Conquer Algorithms) — راهنمای مقدماتی
- نحوه نوشتن الگوریتم برنامه نویسی – از صفر تا صد
==
ضمن تشکر از شما بابت این مقاله خوب باید به عرض برسانم که مهمترین دلیل استفاده از شبه کد ، استفاده در مقالات یا کتب است تا خواننده فارغ از هر زبانی که بلد است بتواند آن کتاب یا مقاله را بخواند مثلا اگه یادتون باشه کتاب مبانی هوش مصنوعی که در مقطع کارشناسی همه گذراندیم پر از شبه کد بود و خواننده میتوانست آن مسائل را با هر زبانی پیاده سازی کند منم در پایان نامه ارشد یک فصل کامل شبه کد نوشتم تا خواننده طرح بنده را با هر زبانی که دلش خواست اجرا کند
سلام
ببخشید این کد هارا باید کجا بزنیم؟
شبه کد یک زبان برنامه نویسی نیست بلکه توضیحاتی درباره نحوه کار و اجرای برنامه شماست حالا برنامه شما ممکنه به هر زبانی باشه و اکثرا شبه کد را بصورت یک فایل متنی جدا می نویسند