رفع ابهام و بلاک (مبانی برنامه نویسی)
تو این مقاله سعی داریم مفاهیم رفع ابهام و بلاک (بلوک بندی) در برنامه نویسی رو براتون توضیح بدیم و طبق معمول این مفاهیم رو با یه مثال شروع می کنیم. همونطور که می دونید تو زبان هایی که بین انسان ها برای مکالمه استفاده میشه، گاهی اوقات ابهاماتی پیش میاد که باعث میشه فرد شنونده منظور و مفهوم حرف طرف مقابلش رو به طور واضح متوجه نشه. مخصوصا اگر مکالمه رو در رو نباشه و متن ها نوشته شده باشن و ما نتونیم حالات صحبت و چهره ی فرد رو ببینیم. برای مثال جمله ی “دختران و پسران باهوش” رو در نظر بگیرین. ما از این جمله می تونیم دو برداشت متفاوت داشته باشیم. اول اینکه صفت “باهوش” مربوط به هم پسران و هم دخترانه، و دوم این که این صفت فقط مربوط به پسرانه. یا برای مثال عبارت “خانوم پزشکی” از این عبارت به این کوتاهی میشه ۴ برداشت متفاوت داشت. اول این که خود شخص پزشک باشه، دوم این که همسر شخص پزشک باشه، سوم این که خود شخص نام خانوادگیش پزشکی باشه و چهارم این که همسر شخص نام خانوادگیش پزشکی باشه.
نکته ای که مهمه اینه که ما دربرنامه نویسی و الگوریتم نویسی باید تمامی ابهاماتی به این صورت یا هر ابهام دیگه ای رو از بین ببریم. چون کامپیوتر ها نمی تونن در زمان ابهام بین گزینه های مورد نظر تصمیم بگیرن. بنابراین ما در زمان برنامه نویسی باید حواسمون به این باشه که برنامه مون کاملا خالی از هرگونه ابهامی باشه.
از جمله مواردی که ممکنه تو برنامه نویسی برامون ابهام پیش بیاد، می تونیم به دستورات بعد از شرط اشاره کنیم. برای مثال این مساله رو در نظر بگیرین: “برنامه ای بنویسید که یک عدد از کاربر دریافت کنه و اگر اون عدد زوج بود دو جمله ی “جمله ی اول” و “جمله ی دوم” رو با دو دستور cout چاپ کنه. خب مسلما برای دو دستور چاپ می تونیم از دستورات زیر استفاده کنیم:
cout << "jomleye aval" << endl; cout << "jomleye dovom" << endl;
اما سوالی که پیش میاد اینه که چطور به کامپیوتر بفهمونیم که هر دو دستور، مربوط به شرط هستن و باید در صورت برقراری شرط چاپ بشن. برای روشن تر شدن این سوال برنامه رو طبق دانسته هامون تا به اینجای کار می نویسیم و با دو ورودی ۴ و ۵ اون رو چک می کنیم. اینم کد برنامه:
#include <iostream> using namespace std; int main(){ int x; int y; cin >> x; y = x % 2; if(y == 0) cout << "jomleye aval" << endl; cout << "jomleye dovom" << endl; return 0; }
و این هم خروجی ها با ورودی های ۴ و ۵:
دقت کنید که دستور چاپ دوم جزو دستورات شرط در نظر گرفته نشده و حتی زمانی که عدد ۵ بود یعنی شرط برقرار نبود هم چاپ شده. در واقع این کاریه که کامپیوتر ها برای رفع ابهامات انجام میدن، و فقط اولین دستور بعد از شرط رو دستور شرط به حساب میارن. اما خب زمانی که ما بخوایم چند دستور رو به عنوان دستور شرط داشته باشیم می تونیم از بلاک ها استفاده کنیم. بلاک یا همون بلوک به دستوراتی گفته میشه که توسط علامت خاصی به هم متصل میشن تا ازشون بشه به عنوان یه دستور استفاده کرد و تو زبان ++C ما از علامت های “}” و “{” برای مشخص کردن یک بلاک استفاده میکنیم. یعنی می تونیم قطعه کد بالا رو به این صورت بنویسیم:
#include <iostream> using namespace std; int main(){ int x; int y; cin >> x; y = x % 2; if(y == 0){ cout << "jomleye aval" << endl; cout << "jomleye dovom" << endl; } return 0; }
دقت کنید هر دو دستور بعد از شرط داخل یه بلاک نوشته شدن. بنابراین بعد از اجرا خروجی های زیر رو خواهیم داشت:
و می بینید که در صورت فرد بودن عدد هیچ جمله ای چاپ نمیشه که کاملا درسته.
منتظر مقاله های بعدی مبانی برنامه نویسی و الگوریتم ها باشید.
قهرمان دنیای خودت باش!
لینک پست بعدی مبانی برنامه نویسی
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.