خوش آمدید، نوجوان سیکھنے والوں! آج ہم کمپیوٹر پروگرامنگ میں کنٹرول ڈھانچے کے بارے میں جاننے جا رہے ہیں۔ کنٹرول ڈھانچے کمپیوٹر پروگرام کے لیے سڑک کے نشانات کی طرح ہیں۔ وہ بتاتے ہیں کہ کس راستے پر جانا ہے اور آگے کیا کرنا ہے۔ جس طرح آپ گھر یا اسکول میں قواعد کی پیروی کرتے ہیں، اسی طرح جب کمپیوٹر پروگرام چلاتا ہے تو کنٹرول ڈھانچے کی پیروی کرتا ہے۔
ایک کنٹرول ڈھانچہ ہدایات کا ایک مجموعہ ہے جو کمپیوٹر کو بتاتا ہے کہ پروگرام کو انجام دیتے وقت مختلف مراحل کے درمیان انتخاب کیسے کیا جائے۔ یہ فیصلہ کرتا ہے کہ آیا کمپیوٹر کو اسی ترتیب میں چلتے رہنا چاہیے یا کچھ مختلف کرنے کا فیصلہ کرنا چاہیے۔
تصور کریں کہ آپ ایک نسخہ پر عمل کر رہے ہیں۔ ہدایت آپ کو ہر قدم بتاتی ہے: سب سے پہلے، آٹا اور پانی مکس کریں؛ پھر، ایک انڈے شامل کریں؛ اگلا، ہلچل؛ اور آخر میں، مرکب پکانا. کمپیوٹر میں، کنٹرول ڈھانچے اسی طرح کام کرتے ہیں۔ وہ کمپیوٹر کو یہ جاننے میں مدد کرتے ہیں کہ کون سی ہدایات آگے آتی ہیں اور جب انتخاب ہوتے ہیں تو کون سا فیصلہ کرنا ہے۔
کنٹرول ڈھانچے کی تین اہم اقسام ہیں جن کے بارے میں آپ آج سیکھیں گے۔ وہ ہیں:
ترتیب وار کنٹرول ڈھانچے کمپیوٹر کو ایک مقررہ ترتیب میں ایک کے بعد ایک ہدایات پر عمل کرنے کو کہتے ہیں۔ ترتیب وار کنٹرول میں کوئی فیصلہ سازی نہیں ہے۔ ہر قدم ایک قطار میں ہوتا ہے، بالکل اسی طرح جب آپ سمتوں کے ایک سادہ سیٹ پر عمل کرتے ہیں۔
مثال کے طور پر، اپنے روزانہ صبح کے معمولات کے بارے میں سوچیں:
ہر سرگرمی ایک کے بعد ایک واضح ترتیب میں ہوتی ہے۔ پروگرامنگ میں، اسے سیکوینشل ایگزیکیوشن کہا جاتا ہے۔ کمپیوٹر پہلی ہدایات، پھر دوسری اور پھر تیسری پڑھتا ہے۔
اگر ہم سینڈوچ بنانے کے لیے ایک سادہ سیوڈو پروگرام کے بارے میں سوچتے ہیں، تو یہ اس طرح نظر آسکتا ہے:
مرحلہ 1: روٹی کے دو سلائس لیں۔
مرحلہ 2: ایک سلائس پر مکھن پھیلائیں۔
مرحلہ 3: مکھن کے اوپر پنیر رکھیں۔
مرحلہ 4: دونوں ٹکڑوں کو ایک ساتھ رکھیں۔ اپنے سینڈوچ کا لطف اٹھائیں!
جیسا کہ آپ سینڈوچ بناتے ہیں، کمپیوٹر ایک ایک کرکے ہدایات دیتا ہے۔
سلیکشن کنٹرول ڈھانچے کمپیوٹر کو انتخاب کرنے کی اجازت دیتے ہیں۔ وہ سڑک میں کانٹے کی طرح کام کرتے ہیں یا "اپنی اپنی مہم جوئی کا انتخاب کریں" کتاب۔ کمپیوٹر کسی شرط یا اصول کو دیکھتا ہے، اور پھر فیصلہ کرتا ہے کہ کون سا راستہ اختیار کرنا ہے۔
مثال کے طور پر، صبح کے وقت کیا پہننا ہے اس کا انتخاب کرنے کے بارے میں سوچیں۔ آپ فیصلہ کر سکتے ہیں: "اگر بارش ہو رہی ہے تو میں برساتی پہنوں گا، اگر دھوپ ہو تو میں ٹی شرٹ پہنوں گا۔" یہ ایک ایسا فیصلہ ہے جو آپ کو موسم کے لیے تیار رہنے میں مدد کرتا ہے۔ پروگرامنگ میں، کمپیوٹر فیصلے کرنے کے لیے if ، else if ، اور else بیانات کا استعمال کرتا ہے۔
سادہ زبان میں ایک سادہ کوڈ جیسی مثال اس طرح نظر آتی ہے:
اگر بارش ہو رہی ہے، تو "چھتری لے لو" پرنٹ کریں ۔
بصورت دیگر ، پرنٹ کریں "چھتری کی ضرورت نہیں ہے۔"
اس کا مطلب ہے: اگر حالت (بارش) صحیح ہے تو عمل کرو (چھتری لے لو)۔ ورنہ دوسری کارروائی کریں۔
آئیے ایک اور مثال استعمال کرتے ہیں۔ تصور کریں کہ آپ ایک گیم کھیل رہے ہیں، اور ایک اصول ہے جو کہتا ہے، "اگر آپ 10 پوائنٹس اسکور کرتے ہیں، تو آپ جیت جاتے ہیں!" یہ اصول سلیکشن کنٹرول ڈھانچہ کی طرح ہے۔ گیم چیک کرتا ہے کہ آیا آپ کے پوائنٹس 10 کے برابر ہیں۔ اگر ہاں، تو یہ آپ کو فاتح قرار دیتا ہے۔ اگر نہیں، تو یہ کھیلتا رہتا ہے۔
انتخابی ڈھانچے کمپیوٹر کو ایسے فیصلوں کو سنبھالنے میں مدد کرتے ہیں جن کے صرف چند ممکنہ جوابات ہوتے ہیں۔ وہ کمپیوٹر سے کہتے ہیں، "اگر یہ سچ ہے تو یہ کرو، اور اگر یہ نہیں ہے تو کچھ اور کرو۔"
تکرار کنٹرول ڈھانچے کمپیوٹر کو بار بار کچھ کرنے کو کہتے ہیں۔ اسے لوپنگ یا دہرانے والی کارروائیوں کے نام سے جانا جاتا ہے۔ جب آپ کو کسی کام کو کئی بار دہرانے کی ضرورت ہوتی ہے تو تکرار کا استعمال کیا جاتا ہے۔
اس بارے میں سوچیں جب آپ ایک ٹوکری میں سیب کی تعداد گنتے ہیں۔ آپ گن سکتے ہیں: 1، 2، 3، 4، 5، وغیرہ۔ آپ ایک نمبر سے شروع کرتے ہیں اور آخر تک پہنچنے تک گنتے رہتے ہیں۔ یہ اسی طرح ہے جیسے کمپیوٹر لوپس کو استعمال کرتا ہے۔
پروگرامنگ میں لوپس کی دو عام قسمیں ہیں:
A for loop اس وقت استعمال ہوتا ہے جب آپ جانتے ہوں کہ آپ کسی چیز کو کتنی بار دہرانا چاہتے ہیں۔ مثال کے طور پر، اگر آپ گانے کی ایک ہی لائن کو 5 بار گانا چاہتے ہیں، تو آپ لوپ کے لیے استعمال کر سکتے ہیں:
کے لیے (1 سے 5 تک شمار) یہ سطر گائے: "ہیپی برتھ ڈے!"
کمپیوٹر دکھائے گا "ہیپی برتھ ڈے!" پانچ بار کیونکہ یہ مرحلہ 5 بار دہراتا ہے۔
ایک while لوپ استعمال کیا جاتا ہے جب کمپیوٹر کو کسی چیز کو دہراتے رہنا چاہیے جب تک کہ کوئی شرط درست ہو۔ مثال کے طور پر، اگر آپ غبارہ اڑا رہے ہیں، تو آپ اس وقت تک اڑانا جاری رکھ سکتے ہیں جب تک کہ غبارہ کافی بڑا نہ ہو۔ اصول یہ ہو سکتا ہے: "جب کہ غبارہ بڑا نہ ہو، اس میں ہوا اڑاتے رہیں۔"
یہ کہنے کے مترادف ہے: جب کہ (غبارہ چھوٹا ہے)، اڑانا جاری رکھیں۔ جب غبارہ کافی بڑا ہو جائے تو لوپ بند کر دیں۔
لوپ آئیڈیا کا استعمال کرتے ہوئے یہاں ایک اور آسان مثال ہے: تصور کریں کہ آپ کو تالیاں بجانا پسند ہے۔ آپ 10 بار تالی بجانے تک تالیاں بجانے کا فیصلہ کرتے ہیں۔ آپ کہہ سکتے ہیں: "تالیاں" 10 بار دہرائیں ۔ ایک پروگرام میں، کمپیوٹر ہر تالی کو شمار کرے گا اور جب 10 تالی تک پہنچ جائے گا تو رک جائے گا۔
پروگرامنگ میں کنٹرول ڈھانچے بہت اہم ہیں۔ وہ پروگرام میں کاموں کو منظم کرنے میں مدد کرتے ہیں تاکہ یہ صحیح طریقے سے کام کرے۔ ان کے بغیر، ایک کمپیوٹر نہیں جانتا کہ کس طرح فیصلے کرنا ہے یا اعمال کو دہرانا ہے۔
یہاں کچھ وجوہات ہیں جن کی وجہ سے کنٹرول ڈھانچے کلیدی ہیں:
آئیے روزمرہ کی زندگی سے کچھ مثالیں دیکھتے ہیں جو پروگرامنگ میں کنٹرول ڈھانچے کی آئینہ دار ہیں۔
ترتیب وار کنٹرول کی مثال:
تصور کریں کہ آپ اسکول کے لیے تیار ہو رہے ہیں۔ سب سے پہلے، آپ جاگ. پھر، آپ اپنا چہرہ دھو لیں. اگلا، آپ اپنے کپڑے پہنتے ہیں. آخر میں، آپ ناشتہ کھاتے ہیں. یہ ان اعمال کا ایک سلسلہ ہے جو آپ یکے بعد دیگرے انجام دیتے ہیں۔ کمپیوٹر پروگرامنگ میں، ترتیب وار کنٹرول استعمال کیا جاتا ہے جب ہر ہدایات پر بغیر کسی شرط کے عمل کیا جاتا ہے۔
سلیکشن کنٹرول کی مثال:
اپنے کپڑوں کا انتخاب کرتے وقت اپنے فیصلے پر غور کریں۔ اگر موسم سرد ہے تو آپ گرم سویٹر پہنیں۔ اگر موسم گرم ہے تو آپ ٹی شرٹ پہنیں۔ یہ فیصلہ سازی کا عمل اسی طرح کا ہے جس طرح ایک کمپیوٹر "if" بیان کا استعمال کرتا ہے۔ کمپیوٹر موسم (حالت) کو چیک کرتا ہے اور پھر لباس کا صحیح اختیار (کارروائی) چنتا ہے۔
تکرار کنٹرول کی مثال:
اپنے آپ کو گھر کا کام کرتے ہوئے تصور کریں، جیسے اپنے کھلونے دور کرنا۔ آپ کے پاس لینے کے لیے بہت سے کھلونے ہو سکتے ہیں۔ ایک ایک کر کے ہر کھلونے کے بارے میں سوچنے کے بجائے، آپ صرف ایک ہی عمل کو دہرائیں: ایک کھلونا اٹھاؤ، اسے کھلونا کے ڈبے میں رکھو، اور اگلے کھلونے کی طرف بڑھو جب تک کہ سب اٹھا نہ لیا جائے۔ یہ پروگرامنگ میں ایک لوپ کی طرح دہرائی جانے والی کارروائی ہے۔
بعض اوقات، کنٹرول ڈھانچے کو ایک دوسرے کے اندر رکھا جا سکتا ہے۔ اسے نیسٹڈ کنٹرول ڈھانچہ کہا جاتا ہے۔ یہ تب ہوتا ہے جب ایک فیصلہ یا لوپ دوسرے کے اندر ہوتا ہے۔ ایک گیم کی تصویر بنائیں جہاں آپ کئی مراحل پر انتخاب کرتے ہیں۔ مثال کے طور پر، آپ پہلے فیصلہ کر سکتے ہیں کہ بائیں یا دائیں جانا ہے۔ اگر آپ بائیں طرف کا انتخاب کرتے ہیں، تو آپ کو ایک اور انتخاب کا سامنا کرنا پڑ سکتا ہے: "کیا آپ پہاڑی پر چڑھتے ہیں یا اس کے ارد گرد چلتے ہیں؟" ہر انتخاب ایک چھوٹا سا فیصلہ ہے، اور وہ ایک کے بعد ایک گھونسلے ہیں.
کوڈنگ میں، نیسٹنگ کمپیوٹر کو زیادہ پیچیدہ کاموں کو سنبھالنے کی اجازت دیتی ہے۔ یہاں تک کہ ایک سادہ گیم یا ایپلیکیشن میں فیصلوں اور لوپس کی کئی پرتیں ہوسکتی ہیں۔ جب یہ پرتیں مل کر کام کرتی ہیں، تو پروگرام بہتر فیصلے کر سکتا ہے اور مزید دلچسپ چیزیں کر سکتا ہے۔
مثال کے طور پر، ایک ایسے پروگرام کا تصور کریں جو آپ کو پکنک کا منصوبہ بنانے میں مدد کرتا ہو۔ یہ پہلے پوچھ سکتا ہے، "کیا موسم اچھا ہے؟" اگر جواب ہاں میں ہے تو پروگرام پھر پوچھے گا، "کیا تمہارے پاس کافی کھانا ہے؟" اگر آپ دوبارہ ہاں میں جواب دیتے ہیں، تو یہ کہے گا، "بہت اچھا! پکنک پر جانے کا وقت!" اگر کوئی جواب نفی میں ہے تو یہ دوسرا منصوبہ تجویز کرے گا۔ یہ نیسٹڈ فیصلہ سازی کمپیوٹر کو آپ کے انتخاب کو بہتر طور پر سمجھنے میں مدد دیتی ہے۔
جب کوئی کمپیوٹر پروگرام چلتا ہے، تو یہ ان ہدایات پر عمل کرتا ہے جو آپ نے مخصوص ترتیب میں دی ہیں۔ آئیے ایک سادہ پروگرام کے بارے میں سوچتے ہیں جو کمپیوٹر اسکرین پر سلام کو ظاہر کرتا ہے۔ پروگرام مندرجہ ذیل کام کر سکتا ہے:
مرحلہ 1: پروگرام شروع کریں۔
مرحلہ 2: دن کا وقت چیک کریں۔
مرحلہ 3: اگر صبح کا وقت ہے تو "گڈ مارننگ!" دکھائیں۔
مرحلہ 4: اگر وقت دوپہر کا ہے، تو دکھائیں "گڈ آفٹرنون!"
مرحلہ 5: اگر شام کا وقت ہے تو "گڈ ایوننگ!" دکھائیں۔
مرحلہ 6: پروگرام ختم کریں۔
اس پروگرام میں، ایک واضح ترتیب ہے. اسکرین پر کیا دکھانا ہے اس کا فیصلہ بھی ہوتا ہے۔ یہ فیصلہ کرنے کے لیے کمپیوٹر سلیکشن کنٹرول ڈھانچہ ( if-else بیانات) استعمال کرتا ہے۔
اگلا، تصور کریں کہ آپ ایک سادہ کمپیوٹر گیم کھیل رہے ہیں جہاں آپ کو سکے جمع کرنے کی ضرورت ہے۔ ہر بار جب آپ ایک سکہ جمع کرتے ہیں تو یہ پروگرام چیک کرنے کے لیے ایک لوپ کا استعمال کر سکتا ہے۔ یہ آپ کے سککوں کو جمع کرتے ہی شمار کرے گا۔ جب آپ تمام سکے جمع کر لیتے ہیں تو گیم ختم ہو جاتی ہے۔ یہاں، لوپ تکرار کنٹرول ڈھانچہ ہے جو گنتی کے عمل کو دہراتا ہے۔
کنٹرول ڈھانچے صرف اسکول کی مشقوں یا چھوٹے پروگراموں میں استعمال نہیں ہوتے ہیں۔ وہ بہت سی حقیقی دنیا کی ایپلی کیشنز میں استعمال ہوتے ہیں جو ہم ہر روز دیکھتے ہیں۔ یہاں کچھ دلچسپ مثالیں ہیں:
یہ مثالیں ظاہر کرتی ہیں کہ کنٹرول ڈھانچے ہر جگہ موجود ہیں! وہ جدید آلات اور پروگراموں کو ہر ممکن حد تک آسانی سے کام کرنے میں مدد کرتے ہیں، جو ہماری زندگیوں کو آسان اور زیادہ پرلطف بناتے ہیں۔
آئیے ایک سادہ سی سیوڈوکوڈ مثال لکھتے ہیں۔ Pseudocode سادہ الفاظ کا استعمال کرتے ہوئے پروگراموں کی منصوبہ بندی کرنے کا ایک طریقہ ہے جو کوڈ کی طرح نظر آتے ہیں۔
مثال: نمکین کے لیے ایک سادہ فیصلہ ساز
تصور کریں کہ آپ یہ فیصلہ کرنا چاہتے ہیں کہ ناشتے کے طور پر سیب لینا ہے یا کیلا۔ آپ اس طرح کے قواعد لکھ سکتے ہیں:
اگر آپ بھوکے ہیں اور کچھ میٹھا چاہتے ہیں، تو ایک سیب کا انتخاب کریں۔
بصورت دیگر اگر آپ کو بھوک لگی ہے اور کوئی نرم چیز چاہیے تو کیلے کا انتخاب کریں۔
بصورت دیگر ، بیٹھ کر سوچیں کہ آپ کیا چاہتے ہیں۔
یہ سیڈو کوڈ کمپیوٹر کو بتاتا ہے: پہلے چیک کریں کہ کیا آپ کو کوئی میٹھی چیز چاہیے۔ اگر یہ سچ ہے تو ایک سیب چنیں۔ اگر نہیں، تو کچھ اور تلاش کریں، جیسے کیلا۔ اگر انتخاب میں سے کوئی بھی میچ نہیں کرتا ہے، تو فیصلہ کرنے کے لیے ایک لمحہ نکالیں۔
نقشے کے طور پر کنٹرول ڈھانچے کے بارے میں سوچنے میں مدد مل سکتی ہے۔ ایک سادہ خزانے کے نقشے کی تصویر بنائیں۔ نقشے میں ایک نشان زدہ راستہ ہے جس میں مراحل ترتیب سے لکھے گئے ہیں۔ جب آپ سڑک کے کانٹے پر آتے ہیں، تو نقشہ آپ کو بتاتا ہے کہ خزانے سے ملنے والے اشارے کی بنیاد پر کس راستے پر جانا ہے۔ کبھی کبھی، نقشہ آپ کو کئی بار اسی راستے پر چلنے کو کہتا ہے جب تک کہ آپ خزانے تک نہ پہنچ جائیں۔ یہ تمام ہدایات آپ کو صحیح راستہ تلاش کرنے میں مدد کرتی ہیں۔
اسی طرح، ایک کمپیوٹر نقشے کی پیروی کرنے کے لیے ترتیب وار مراحل کا استعمال کرتا ہے، فورکس پر صحیح راستے کا انتخاب کرنے کے لیے انتخاب، اور ہدف تک پہنچنے تک کاموں کو دہرانے کے لیے تکرار کرتا ہے۔ کنٹرول ڈھانچے کا استعمال کرتے ہوئے، ہم کمپیوٹر کو بخوبی بتا سکتے ہیں کہ اس کے "خزانے" تک کیسے پہنچنا ہے - صحیح نتیجہ۔
آئیے ان اہم خیالات کا جائزہ لیں جو ہم نے آج سیکھے ہیں: