 اسلام علیکم یہ ہے سیس ٹوزیرو ون انٹردکٹنٹو پرگرامنگ اور آج یہ ہمارے چوتھی ملاقات ہے انہی لیکچر نمبر فور تھوزہ ریکیپ کرتے چلیں پچھلے لیکچر میں ہم نے سی کی کچھ ڈیٹاٹائف دیکھی ارثمیٹیک اوپریٹرز دیکھی تھوڑی سی ایک سپریشنز دیکھی ان کی مینیپلیشن دیکھی دیکھا بائنری اوپریٹرز ہیں سو انسو فوت ایس تا ایس تا ہماری اب ہم نے ویریبلز کے بارے میں بات کی آج جو ہے اپنا جو تھوڑا سا ہم نے نولی جب گین کر لیا ہے اس کو ہم ایکٹھا کر کے تھوڑسی پرگرامنگ ایکسرسائزیز کی طرف بھی جائیں گے اور ان کو دیکھیں گے کہ یہ اور کیا استعمال کیا جا سکتا ہے یا کیسے ہم کمپلیکس پرگرامنگ بنا سکتے ہیں تھوڑے سے چلیں ابھی استعمال تو نہیں ہوں گے لیکن آپ کو بتاتا چلوں کچھ اور کیورڈز سی کے پرگرامنگ بھی جانتا ہے یہ نہیں ہے کہ یہ بہت بہت بہت بہت بہت بہت بہت جاویسکریپ والے نام آرہیں بیچ میں if, else while do یا for یہ کیورڈز ہیں جیادہ ابھی نید ویل کرتے کیونکہ جب ہم آئیں گے کندشنلز کے اوپر جب ہم لوپز کے بارے میں بات کریں گے تو پھر ان کی ایکسپرنیشن اور آجائے گی کہ جی یہ بھی کیورڈز ہیں ان کو بھی نہیں استمال کیا جاتا as variables or variable names اب اگر ہم توہاں سا اپنا جو پیچھلے لیکچر میں کیا تھا اس کو لیکن ہم ایکسپینٹ کرتے ہیں دو سیمپلسی ایکسپریشنز لیتے ہیں پچھلی دفعہ بھی دیسکاس کی تھی ان کو توہاں سا اور ایکسپین کرتا چلوں وہی بات کہ جی اگر ایک سی کی سٹیٹمنٹ لکھی ہو x is equal to 2 plus 4 just to recap نہ 2 کو کچھ ہوگا نہ 4 کو کچھ ہوگا ہاں 2 plus 4 جو ایکسپریشن ہے وہ ایویلویٹ ہوگی اس کا رزلت آئے گا 6 اور وہ assign ہو جائے گا جو variable ہے x کو یعنی میمری کی اس لوکیشن میں x کے جگے پہ 6 لکھا جائے گا اسی طریقے سے اگر ایکسپریشن ہو x is equal to a plus b جہاں پھر x a اور b جو ہیں ایکسپریشن ہی ڈیٹا تائپس انٹھوں یا فلوٹسوں یا ڈبلز ہوں ہم نے کچھ ڈیٹا تائپس کے بارے میں بات کی تھی تو کیا ہوگا پلس وہ bainary operator ہے a اور b اس کے operant ہیں a اور b کو کچھ نہیں ہوگا ان کی value's جو ہیں وہ اپس میں جمع کی جائیں گی جو اس کا resultant آئے گا وہ x کے اندر سٹور کر دیا جائے گا اس پر آپ یہ دیکھیں گے جنابی آپ ہم یہ بات کرتنے کے جمع کر رہے ہیں ہم سو ای اور بی کی value جو اید کر رہے ہیں یہ کہیں اور تمپرروری جگے پر اک کی ہونے ہیں یا پھر اپنے دماغ میں اگر دیکھ لے کنی بلاک بورد کا تصور تو ہم سائیڈ پر ایک لائن لگا آکے تھوڑسا رف وقت کر لے تھی ہیں تو رف وقت کی جگے بھی ہے وہ بھی ممری کے اندر ہوا ہوتی ہے کبھی ریجسٹرز میں ہوا ری ہے کبھی ریم میں ہوا ری ہے وہاں پہ نمبرز کی کالکلیشن ہوتی اور پھر رزال چیوہے کسی میمری لوکیشن پہ سٹور کر دیا جاتے اور سٹوریج کے لیے ہم استعمال کر رہے ہیں ایسائنمنٹ اوپریٹر سو کیپ دوز سیمپل بیسکس in mind اب ہم ذرا سا ایک غیر کمپلکیٹٹ تو نہیں سیمپل سا پروگرم ہے لیکن اس میں کچھ ہم نئی چیزیں انٹردوز کرنا چاہیں گے سپوز کہ آپ کی کلاس کے اندر دس دوڑنٹسیں اور ہم پتہ یہ کرنا چاہتے ہیں کہ جی آپ کی کلاس کی ایورڈیج ایج جو ہے نا ایورڈیج عمر وہ کتنی ہے تو ایورڈیج ایسیوم you know how to take it جی سب کی ایجز کو جمع کرنا ہے اور ان کو نمبرہ سٹوڈنٹ سے ڈیوائٹ کرنا ہے اور جو رزالٹ آئے گا وہ آپ کی کلاس کی ایورڈیج ایج ہوگی سو اب سیمی یہ پروگرم کیسے لکھا جائے گا وہی بات let's start پہلے تو آیا شاپ include iostream.h within those angle brackets because ہمیں اس کی ضرورت ہے see in یا see out و گرہ کے ساتھ میں نے see in بھی کہہ دیا نئی چیز ہے آرہی ہے اس کے بعد مین آگیا پرانتھیسیز کے ساتھ ابھی ہم نے پرانتھیسیز میں کچھ نہیں لکھا بعد میں جاکے لکھنا شروع ہو جائیں گے اس کے بعد opening brace آئی یہ curly bracket یا brace یہ مین کی body کو شروع کر رہی ہے اس کے بعد ہم نے ایمیجیٹ لی کچھ declaration ڈال دی اب جہاں سے میں نے problem کو state کیا تھا کہ ہم نے کہا کہ دیا آپ کی کلاس کے اندر دس students ہیں سو ہمیں دس students کی age کہیں پہ سٹور کرنی ہے اس کے لیے ہم نے اس program کے اندر ہم نے دس variables declare کیا ہے یہ دس variables جو ہیں یہ انٹیجر طاپ ہم سمجھیں گے کہ یہ آپ کا اگر عمر جو ہے وہ سڑے سترہ سال ہے تو ہم اس کو کہیں گے 17 اس کے لیے انٹہ نمہ عمر جو ہے ہم کہتے ہیں کہ جنب انٹے اور پھر age 1 ڈاailable age 2 ڈاifique age 3 اور اسے بھسی ورن پر اگر 10 سیمیکوالن پر اگر اس کے لیے 10 طے پر کسی ارادی حلم سیکٹمین انٹے عمر 1 سیمیکوالن انٹے عمر 2 سیمیکوالن اور اسے بھسی ورن ہمات کرنے تھے انٹے عمر 1 سیمیکوالن اینٹ ایج دو سیمی کولن اور سو آن بات ایک چھوٹا سا شوٹ ہین ڈیویلپ ہو جاتا ہے کہ جی اگر ہم نے دس انٹیجز ہی دیکلیر کرنے ہیں تو ایک دفعہ انٹ لکھ کے دس کے نام لکھ دیے جائے سیپریٹڈ بایٹ کومال this is like a list separator لیسٹ جب چیزوں کی ہم لکھتے ہیں اس کو کومال سے سیپریٹ کرتے ہیں لیسٹ سیپریٹڈر استعمال کیا دس ویریبرل نام دیے سیمی کولن دے دیا اس کے بعد just for this program ہم نے دسائدیے کیا کچھنا پہلے تو ہم تمام آپ کی عمریں جو ہے وہ آپ سے obtain کریں گے بجائے program کے اندر لکھنے کے ہم بتائیں گے جی پوچھیں گے جی آپ اپنی عمر بتائیں ہم اس میں ٹائپ کر دی اور پھر اس کو کہیں سٹور کریں گے جی ساروں کا سم کیا ہے تو اس کے لیے میں نے ایک اور ویریبرل دیکلیر کر دیا انٹ ٹائپ ہی ہے جب ساری ایجز جو ہیں وہ ہم whole numbers ملے رہے ہیں تو ان کا سم بھی whole number ہوگا تو انہوں نے ایک اور انٹ دیٹا تائپ دیکلیر کر دیا اس کا نام میں نے رکھا ہے Total Age تو Total Age ایک ویرٹ سپیس نہیں آسکتی اس کے اندر ویریبرل نیم ہے سنگل ویرٹ اور اپنی روز کو پہلے جو یہاں کہ یہاں یہ کارکٹر سے شروع ہو یا یہ اندر سکور سے شروع ہو اور میں نے آپ کو ایک گائیڈلائن دیتی کہ جی ان جنرل اپنے پروگرموں میں آپ اندر سکور سے شروع نہ کریں آپ کارکٹر سے ہی شروع کریں جو وہاں پے میں نے ایک ویریبرل دیکلیر کر دیا انٹ Total Age Semi colon اور ساتھ ہی مجھے ایوریڈ بھی چاہی آئی آپ کی ایڈ کی نا سپوز ہم کہتے ہیں کہ جی ایوریڈ جو ہے وہ بھی ہم whole number ہی لیں گے ایک ایوریڈ جو ہے میں جنرل میں ہی ہی خود نہیں بھی ہے۔ ولو ایک خود میں پر سیمپل پرگرم تک کہ سوکھتا ہے کہ انہوں کو ہم ہم خود میں ہی ڈریٹ کریں گے۔ ہم نے ایک اور ہمیں ڈریبل چاہیے وہ ہے اے ایج آج اس کس میٹھا وہ ہم نے ایک اور ڈریبل ڈکلیر کیا انٹ ایج آج ڈریبل میں آپ دیکھیں جو ہمیں شروع ہوا تھا آپ یہ سارے ڈریبل ایک لائن پر بھی ڈکلیر کر سکتے ہے کہ انٹ ساکسیں وہی کومہ ڈال کے آپ چلتے جاتے لیکن اگین از گوڈ پروگریمنگ فرکتس ہم نے کہا جو تو دس عمریں آپ کی ہم نے گٹ کرنی تھی پرنی تھی اور سٹور کرنی تھی ان کو تو ایک لائن میں ڈیکلیر کر دیا اس کے بعد ٹوٹل یہ جو ہے اس کا کہیں پہ مفہوم ڈیفرنٹ ہے کہیں اور استعمال ہونے ہے وہ تایپ انٹ ہی اس کو ہم نے نئی لائن پر ڈیکلیر کر دیا اور فائنڈ لی جو ہمیں جواب چاہیئے اس کو ہم نے اس کی اپنی لائن پر ڈیکلیر کیا یہ سٹائل اشوز ہیں آپ اپنا سٹائل وہ ڈیکلیر کریں گے as you go along and become proficient programmers but just as a matter of logic or common sense or clarity کے اسانی سے پڑھا جائے program ہم نے یہ سٹائل اختیار کیا ہے اب اس کے بعد نکس لائن پہ جائے دیکھیں اب یہاں پہ ڈیوزر ڈیفیس فلی باتا رہی میں نے پہلے یہ ذکر کیا تھا کہ جب بھی آپ program بنائیں تو اس کو ایک اسم کا ڈیوزر فرنڈلی ہونا چاہیئے یعنی کوئی اور ڈیوزر اگر چلا رہا ہوں آپ نہ بیٹھیں ہوں وہاں پہ تو اس کو پھر بھی سمجھ آجائے کہ یہ program کیا مانگ رہا ہے اس کو کیا انپوٹ دینا ہے اور پھر دیکھے کے لیے اس کی ڈیوزر ڈیوزر ڈیوزر کیا آتی ہے تو یہاں پہلے سب سے ہم کہتے ہیں see out اور see out آپ کو یاد ہے وہ دروازہ ہے جس کے ذریعے سے ہم چیزیں ڈیسپلی کرتے ہیں screen کے اوپر تو see out less than less than اور quotation marks کے اندر ہم نے ایک spring لکھی please enter the age of student 1 now دیکھیں یہ صرف میں زیادہ پولائٹنی ہو رہا please لکھنے کے لیے its just a general guideline make it friendly make it clearly explained ok now so please enter the age of student 1 its very difficult کوئی اس کا غلط مطلب سمجھے کہ جی کیا مانگا جا رہا ہے مجھے تو سمجھ نہیں آئے اتنے تو تمے سمجھ آنی چاہیے کہ اگر لکھا ہوئے Please enter the age of student one. تو اب اس کی age انٹر کرو گے. تھوڑے سے اس میں اور complication ہیں کہ جی ہم نے یہ نہیں بتایا کہ جی age whole number میں انٹر ہو یا نہیں پھر refinement ہے ہو سکتی ہے بعد میں. اس کے بعد ہم کہتے ہیں کہ جی اب جب ہم نے یہ اس جو جو quotation marks کے اندر ہم نے چیز لکھی تھی Please enter the age of student one. وہ بیسیکلی کہتی ہے prompt. تو ہم نے ایک user کو prompt دی ہے اس کو کہا ہے کہ جی کچھ کرو computer تمہارا انتظار کر رہا ہے. وہاں سے the user should understand کہ اب کوئی age ڈالنی ہے تو اس نے ڈال دیا 18 18 ڈال کے اس نے enter ڈبایا normally input کے وقت enter ڈبانا ضروری اس وقت ہوتا ہے کہ جی اگر آپ صرف one ڈب کریں اور انتظار کریں تو computer کو یہ نہیں پتا کہ اس کے بعد بھی 8 لکھنا ہے اپنے so computer wait till you press enter only then it accepts the input so اب 18 ڈبا کے enter کیا یہ computer کیسے اپنے پاس variable میں store کرے گا یہ اگر آپ program کی دوسی لائن کو دیکھیں تو وہاں پہ لکھا وے see in greater than greater than اور آگے ہے age one semi colon اب دیکھیں نئی چیز آگے جہاں پہ ہم نے کہا تھا see out ایک ایسا دروازہ ہے جس کے تحت ہم کوئی ڈیٹا یا کوئی constant یا کوئی character string یا in this case a prompt ہم screen پر display کرتے ہیں see in اسی دروازے کا counter part ہے دوسی طرف جہاں سے آپ user سے input حاصل کر سکتے ہیں so it is the door by which we supply ڈیٹا to the program so now again اگر وہ جو see out ڈوالی اگر آپ کو میری بات یاد ہو کہ arrows point اس طرف کر رہے ہیں جس طرف کو ڈیٹا نے travel کرنا ہے تو see in کے arrows جو ہیں وہ see in سے پرے کو point کر رہے ہیں یعنی اب ڈیٹا پیچھے سے کہیں سے آئے گا in this case the keyboard اور see in اس کو لے کے greater than greater than signs کے بعد جو variable لکھا ہوا ہے اس کے اندر ڈال دے گا اس لائن کے اوپر variable لکھا ہوا ہے age one so جو بھی آپ ڈائپ کر کے enter دبائیں گے وہ age one کو assign ہو جائے گا دیکھیں اس کے اندر بھی assign کا لفظ میں نے استعمال کیا ہے that means age one جو دبہ تھا memory میں جو location تھی اس کے اندر یہ value لکھی جائے گی now what does that tell you اگر میں نے assignment کا لفظ استعمال کر لیا ہے do you remember something میں نے ایک بات کہی تھی کہ جی assignment کے وقت میں expression کو assign نہیں ہوتا یہی چیز یہاں پہ importantly ہے کہ جو number enter کیا گیا ہے وہ ایک simple variable کو assign ہو سکتا ہے expression کو assign نہیں ہو سکتا آپ یہ نہیں کہہ سکتے تھے کہ see in greater than greater than age one plus 10 which was an expression but it would be illegal یہ compiler بھی پکر لے گا ایسے ڈرس اور ان کو آگے نہیں چلنے دے گا چلیں یہ اب ایک simple pair of statements تھی see out please enter the age of student one اور پھر computer انتظار کر رہا ہے اور آگے نہیں چلے گا program جب تک آپ کوئی number ڈال کے enter نہیں دباتے اور اس پہ see in نے number accept کیا keyboard سے اور جاکے age one جو variable ہے اس میں store کر دیا semi colons ڈالنا مت بھولیگا it is important every statement must end with a semi colon اب اس کے بعد ہم نے prompt کیا input لے لی تو اب تھوڑا سا mechanical کام کرنا پڑے گا سونے کی نہیں رکھی ہوئی جاگتے رہی گا لیکن کیونکہ 10 student کی edges لینی ہے تو again good practice user friendliness and simple politeness demands that you issue a prompt for every age سو وہی لائنے آپ دیکھیں گے سپین پہ رپیٹ ہو رہیں کہ جی see out please enter the age of student 2 see in age 2 اب میں greater than greater than sign نہیں کہہ رہا semi colon نہیں بول رہا لیکن بیسکلی دستفہ رپیٹ کرنا ہے اس رپیٹشن کے بعد آپ کے پاس کیا ہوا کی دی دس edges جو ہیں آپ نے کی بور سے حاصل کی اور دس مختلف variables called age 1 age 2 and so on up to age 10 ان کے اندر store کر دی اب simple see arithmetic پہلے تو ان کو جمع کر لیا جائے so next statement جو ہے that is a simple arithmetic calculation and assignment statement assign کس کو ہو رہا ہے total age کو so we write total age equals age 1 plus age 2 plus age 3 and so on up to plus age 10 semi colon اس تیٹمنٹ کو سمجھنے کے لیے تھوڑے سے rules ڈیاد رکھیں یہاں پہ تو ایک ہی اپریٹرے استعمار ہو لیا plus so کوئی مسئلہ نہیں ہے ہے یہ binary operator اس کو ہر جگہ پہ دو operant چاہیں order of evaluation میں نے پہلے ذکر کیا تھا کہ وہ left to right چلے گا so actually ہو کیا رہا ہو گا پہلے age 1 اور age 2 جمع ہوں گے جو ان کا result آئے گا وہ نیا operant بن جائے گا next plus sign کے لئے اب ہوگا وہ result plus age 3 اس کا جو result آئے گا وہ نیا operant بن جائے گا next plus sign کے لئے اب ہوگا نیا value plus age 4 and so on till you reach plus age 10 at that time یہ کیونکہ right hand side پوری evaluate ہو چکی ہے اس کی جو resultant value آئے گی وہ assign ہو جائے گی total age کو وہی بات بھی سے رپیٹ کرتا جا رہوں کہ ایجی اس پورے operation کے اندر نہ age 1 کو کچھ ہوا نہ age 2 کو کچھ ہوا نہ age 3 کو کچھ ہوا and so on you need the things on the right hand side were not affected by the addition operation the only thing that was affected was the variable being assigned to یعنی جو left hand side پہ ہم نے total age لکھا ہے اس کی value change ہوئی ہے اس operation کے ساتھ اس کے اندر total جلا گیا اس کے بعد تو ہمارا program چھوٹا سا رہا جاتا ہے کہ جی اب total age ہمیں مل گئی ہے اس کی average نکالیں کتنے students تھے 10 students تھے 10 کی age ہم نے لی تھی so the next line simply says average age equals total age divided by 10 so total age slash 10 semi colon now we have used the division operator کس کسم کی division یادائی کچھ بات یہ integer division ہو رہی ہے کیونکہ total age integer ہے int ہے 10 جیسے لکھا ہوا ہے یہ بھی integer ہے لہذا total age slash 10 is integer division I have already mentioned that integer division truncates that means اس میں کوئی fractional حصہ آگر آیا اس کو پھیک دیا جائے گا suppose ہرے کی عمر جو ہے وہ کسی کی سترہ ہے کسی کی اٹھارہ ہے تو آپ کا total age let's سے آگیا 175 تو 175 کو جب آپ ڈبائٹ کرتے ہیں 10 سے تو آنسر آتا ہے 17.5 کیونکہ یہ integer division ہے وہ 0.5 گائب ہو جائے گا آنسر 17 بنے گا اور وہ آنسر ہے جو کہ average age variable کو assign ہو گا so assignment ہو گی calculation ہو گی اب program میں کیا چیز رہتی ہے سمجھری جو جباب آیا اس کو display کر دیں so again niceness or user interface issues demand that you explain what is being displayed so ہم نے ایک see out statement لکھی see out less than less than پھر quotation marks کے اندہ string آئی the average age of the class is colon quotation marks ختم اب دیکھے میں ایک اور بیچ میں trick لگا رہا ہوں بجائے یہاں پہ سٹیٹمنٹ ختم کرنے کے میں نے پھر less than less than sign لگا آگے آگے اس کے average age semi colon لکھ دیا ہے this is another hint as to how the see out operator works یعنی اس کو بھی ایک لین کے اوپر if you can output many things in one time all you need to do is separate them by the less than less than signs so we have written two statements in one statement see out less than less than the average age of the class is colon quotation marks ختم کیونکہ string ختم ہو گئی ہے پھر less than less than average age semi colon اب see out کی یا see compiler کی یا see plus plus compiler کی intelligence تھوڑی سی آپ دیکھ لیں اس نے خود ہی دیٹرمین کیا کہ پہلا والا حصہ جو ہے وہ character string ہے quotation marks کے اندر ہے تو اس کو تو as is screen کے اوپر دکھا دو اس کے بعد next less than less than sign کے پاتھ جو لکھا ہوا ہے وہ ایک variable کا نام ہے so variable کی value screen کے اوپر دکھا ہوا and you get a nice formatted output ہاں اگر اور ہم اس کے اندر user friendly ہونا چاہتے تو ہم کچھ ایسا بھی لکھتے تھے کہ جھی پورا پیرگراف بنالے تھے کہ جی the ages of the students are اور پھر دس number پرنٹ کرتے اور پھر ایک لائن لکھتے تھے the average age of this class of 10 students is تو یہ تو niceties ہیں ہم ان کو add کر سکتے ہیں مین چیز یہ ہے کیا ہمارے پاس وہ tool skills اب موجود ہیں کیا ہم لکھ سکتے simple see out اس کے ساتھ اب سب کچھ format کر سکتے ہیں see out itself کے اوپر ہم کافی time لگائیں گے اس کی formating کے اوپر جب ہم آگے چلیں گے اس پروگرم کے اندر ایک چیز کا خاص شاہل رکھنا ہے یہاں پہ ہم نے division کی ہے وہ میں نے بتا دیا کہ جھی integer division ہے truncate کرتی and so and so forth لیکن division کا جب بھی loves آئے یہ لازمی ہے کہ آپ انشور کریں کہ جی divide by zero تو نہیں ہو رہا divide by zero is illegal ہم کو پتا ہے کہ جی algebra میں بھی x over zero indeterminate ہو جاتا ہے infinity ہو جاتا ہے اس کی value نہیں دیترمین کی جا سکتی تو programs کے اندر بھی آپ divide by zero نہیں کر سکتے اس program میں ہمیں مسئلہ کیوں نہیں آیا کیونکہ ہم divide ہی 10 سے کر رہے ہیں 10 ہم نے program کے اندر لکھا ہوا ہے see can it's a number that's written there so we know that there is no issue of dividing by zero so we didn't need to worry about it but whenever you come across a division please remember check کہ کہی zero سے divide تو نہیں ہم کرنے لگے کیونکہ جب آپ آگے چلیں گے اور آپ variables سے divide کرنا چلو کریں گے it becomes important کہ جی variable کو check کر لیا جائے otherwise compilation میں error نہیں آئے گا compiler کو نہیں پتا کہ اس value variable کی value ہے چلتے وقت کیا ہو جائے گی ہاں اگر چلتے وقت اس کی value zero ہو گئی اور ہم نے اس سے divide کر لیا تو اس کو runtime error کہتے ہیں کہ چلتے وقت یہ error آیا ہے so runtime errors most commonly is a divide by zero error overflow ہو جاتا ہے error messager جاتا ہے program وہیں بس ہو جاتا ہے اب چلتے ہیں کچھ تھوڑیسی complicated expressions کو دیکھ لیتے ہیں سیمپل سا کام ہے تھوڑسان کو دیسکر دے چلتے ہیں again evaluation of expressions کے اوپر ہم رہ رہے ہیں اگر ہم assignment operator کو لے لیں تو assignment operator جو ہے اس کے ایک سید پر ہم نے variable لکتی ہے دوسی طرف ہم نے expression لکتی اب اگر ایک سیمپل ایک سیمپل سا کام لیں جیسے ہم نے ایک quadratic equation لکھنی ہے تو آپ کو یاد ہوگا algebra سے ایک quadratic equation ہے y is equal to ax square plus bx plus c چلیں اس میں c میں تو لکھیں کیسے لکھیں گے y equals اب دیکھیں algebra والی equation تھی یہاں پہ جب c میں پہنچ دے جیسے ہم نے equal کہا تو اب equation نہیں رہی یہ assignment ہو گئی ہے اب آپ اس کو assignment کے طور پہ سوچیں ہم لکھیں گے y پھر equals اب ax square ax square کیسے لکھا جائے it turns out کسی کے اندر کوئی power operator نہیں ہے you can't say کہ the x raised to the power 2 but we all know that x raised to the power 2 is nothing but x multiplied by itself not x multiplied by x x multiplied by x تو ہمیں لکھنا آتا ہے so we write y equals a star x star x plus b star x plus c اب اس کے اندر ہم نے parenthesis کیوں نہیں دا لے بتا سکتے ہیں ہیٹ دوں یا بتا دیتا ہوں دیکھیں پرسیڈنس order of operators وہ یہاں پے اپلائے کرتا ہے Multiplication یعنی جہاں ہم نے star ڈالا ہے اس کی precedence plus سے کہیں زیادہ ہے پہلے Multiplication ہوگی اور پھر addition ہوگی لہذا ہم جب لکھتے ہیں a star x star x پہلے تو یہ left to right جائے گا so a star x سے ax ہمیں ملے گا پھر ax star x ہمیں ax squared مل جائے گا یہ علیدہ سے کالکلیٹ ہو جائے گا پھر plus کی باری آئے گی لیکن plus کے بعد ایک اور Multiplication لکھی ہوئی ہے لہذا plus کی کیونکہ order کم ہے وہ ابھی رک جائے گا ابھی plus نہیں ہوگا پہلے b star x یعنی bx evaluate ہوگا اب ہمارے پاس ایک سمپلسی expression آگی ہے ایک طرف اس میں ax squared کی value آ چکی ہے پھر plus کا سائن ہے پھر bx کی value آ چکی ہے پھر plus کا سائن ہے پھر c لکھا ہوا ہے اب یہ تینوں چیزیں Add ہو سکتی ہیں again left to right so ax squared کی value جو آئی تھی وہ bx کے اندر جمع ہوگی پھر جو resultant آئے گا وہ c میں جمع ہوگا اور پھر جو اس کا پورا resultant آئے گا وہ left-hand side یعنی y کو assign ہو جائے گا so ایک order of evaluation is important understanding the precedence of operators is important اور کہیں پے اگر آپ کو کوئی شک ہو تو brackets لال دیں I mean brackets are free you can use as many as you like putting in redundant brackets کوئی خرچہ نہیں آتا اگر کوئی complicated expression ہے اس کو آپ کلیر کرنا چاہتے ہیں تو brackets ضرور دال دیں let's take another simple expression ہم نے لکھا ہے a star b modular c plus d اب اس کی evaluation کیسے ہوگی یہ میں نے صرف expression بولی ہے اس کی طرف نہیں گیا ایکی بات ہے آپ دیکھیں جب ہم کہتے ہیں a star b modular c تو اب تھوڑا سا مسئلہ آگیا کہ star یعنی multiplication اور modular یعنی remainder operation ان کی ہم نے کہا تھا کہ جی precedence ایک جتنی ہے اب left to right چلے گا so it'll be a multiplied by b اور پھر جو resultant آئے گا اس کا remainder with respect to c اگر c سے اس کو divide کریں تو کیا remainder آتا ہے اور پھر plus whatever اس کے اندر جو چیز خاص خیال رکھنے والی کہ یہاں پہ شاہد آپ کو brackets کی ضرورت پڑھ جائے کیونکہ can we guarantee that a multiplied by b remainder c is the same as a multiplied by b remainder c I don't know I mean ask a mathematician maybe it is maybe it isn't لیکن اگر ہم نے یہ کرنا ہے کہ جی میں چاہتا ہوں کہ جی b کا پہلے remainder نکال آجا ہے c کے مقابلے میں اور پھر اس remainder سے multiply کرنا ہے ایک او تو میں bracket دال دوں گا so brackets میں نے پہلے بھی ذکر کیا they are free and they can be used to order or force the order of evaluation of expressions and you should use them as liberally as you want for forcing this order and making the expressions clear میں نے پہلے ایک دفعہ بات کی تھی early on کہ جی comments آپ liberally استعمال کریں آپ کو بعد میں یاد کرنے میں اسانی ہو جائے گی کہ یہاں پہ ہم نے کیا کیا اسی طریقے سے brackets جو ہے وہ دالنے سے آپ کے بہت سارے errors جو ہے نا unknown errors کیونکہ bracket نہ دالنے سے compiler آپ کو error نہیں دے گا وہ تو ارام سے ایک expression لے لے گا اس کی اپنی جو مزیہ اس order میں evaluate کر کے رکھ چھوڑے گا جب اب چلایں گے ہو سکتا ہے جو آپ کچھ ہوری آرہ ہو کلاسک اگزانپر آپ نے quadratic equation solve تو کی ہو گی you know جو میں کہہ رہا تھا کہ y is equal to ax squared plus bx plus c اس کو solve کریں تو ایک formula ہوتا ہمارے پاس minus b plus minus etc. this formula کا right-hand side ہے نا وہ ہے discriminant that means وہ determine کرتا ہے quadratic equation کیا سلوشن ہے roots جو ہیں وہ real ہوں گی یا equal ہوں گی یا complex ہوں گی اور determinant پر depend کرتا ہے کیونکہ یہاں پہاں آپ نے کسی چیز کی square root لینی ہے تو determinant وہ ہے b squared minus 4ac over 2a اب یہ پوری expression b squared minus 4ac over 2a over ساری چیز divide ہو رہی ہے 2a کے ساتھ اس کو c میں لکھیں گے دیکھیں اگر ہم یہ لکھتے ہیں یہ بی square لکھنا ہے تو b times b b star b لکھ دیا minus 4ac لکھنا ہے ہم لکھتے ہیں minus 4 star a star c اب ہم ساری چیز کو divide کرنا چاہتے ہیں ہم کہتے ہیں slash آپ divide کرنا ہے 2a سے تو ہم کہتے ہیں 2 star a اگر یہ ہم expression لکھتے ہیں اور کہیں پے کوئی bracket استعمال نہیں کرتے ہیں تو لازمان اس کا آنسر غلط ہوگا کیوں غلط ہوگا دیکھیں جو ہم وات کرتے ہیں rules of evaluation کی ہوگا کیا سب سے پہلے b times b multiply ہو جائے گا چلیں b square تو آگیا اس کے بعد minus ہے تو minus کی precedence low ہے وہ ابھی تھیر جائے گا اس کے بعد ہم نے لکھا ہے 4 times a times c تو 4 star a star c یہ evaluate ہو جائے گا اس کے بعد slash لکھا ہوا ہے اب یہ left to right ہم چل رہے ہیں multiplication اور division کی precedence ایک جتنی ہے اس کے بعد جب slash آگیا تو اس نے 2 سے divide کر دیا تو اب آپ کے پاس کیا آئے گا b square اکیلہ بیٹھا ہو گا minus 4 ac divided by 2 ہو چکا ہے اس کی کوئی value آچکی ہے اور پھر اخیر میں رہ گیا times a تو جو یہ minus 4 ac over 2 آجائے گا اس کو یہ multiply کر دے گا a کے ساتھ لیکن ہم چاہیے نہیں رہے تھے a تو نیچے ہے اس سے تو divide کرنا ہے so simple جیسے آپ اپنی copy پے brackets استعمال کرتے ہیں یہاں بھی کر لیں very simple just write it open parenthesis b times b i.e. b star b minus 4 star a star b parenthesis closed slash parenthesis open کیوکہ اب denominator میں ایک multiplication ہو رہی ہوں کہ وہ multiplication ہو جائے تو division ہو تو we go slash parenthesis open 2 star a parenthesis closed اب اس کی جو evaluation ہوگی وہ صحیح ہوگی so it is important to learn the use of parenthesis in evaluating arithmetic expressions so let me repeat it once again کئی چیزیں ہیں وہ میں اتنا پہلی بات نہیں یہ آپ کا حصہ بن جا نی چاہیں no expressions on the left hand side of an assignment ٹھیک ہے یہ کلیر کر لیں اس کے بعد کچھ اور باتیں ہم نے کی تھی انٹیجر division وہ ٹرنکیٹ کرتی ہے اس کا خیال رکھیئے گا یہ بڑے unforeseen side effects ہوجاتے ہیں program کے جی ہم نے تو divide کیا یہ کیا ہوگئے جب آپ کو جب آپ کو ہوا یہ ہوتا ہے کہ اس کا fractional حصہ ٹرنکیٹ ہوا پڑا ہوتا ہے because آپ کا اس کا بھی خیال رکھنا بڑے گا اور پھر comments یہاں پے میں نے کہا liberally استعمال کریں تو brackets یہاں parentheses ان کا بھی آپ liberally استعمال کر سکتے ہیں for forcing the order of expressions ایک چھوٹی سی بات کرتا چلو Algebra میں ہم نے کوئی لمبی چھوڑی گھمبیر کی اسم کی expression لکھنی ہونا تو ہم square brackets بھی دال لیتے ہیں embraces بھی دال لیتے ہیں then ordinary brackets دال لیتے ہیں یہاں پہ یہ نہیں ہوگا یہاں پہ ایک expression کی اندر صرف اور صرف parentheses جو عام چھوٹا curved brackets ہوتا ہے وہ استعمال ہوگا باقی braces یا square brackets وہ expressions کی اندر استعمال نہیں ہوتے ان کے مطلب اور ہیں اب کیوں نہ ہم تھوڑا سو کوئی interesting problem کرنے چلے یہ problem یہ تھوڑا سا آپ دماء کو exercise کرایا گا because اس میں کچھ ہمیں چیزیں design کرنی پڑیں گے problem یہاں suppose میں آپ کو ایک 4 digit کا integer دیتنا 1 2 3 4 7 7 6 3 کوئی ایسا 4 digit کا نمبر اور ہم کہتے ہیں کہ جی اس نمبر کو لے کے اس کے جو ہنسے ہیں اس کے digits جو ہیں ان کو علیدہ علیدہ آپ سکرین پے present کرنے اب we have to start thinking in terms of جی ایک بڑے نمبر کے digits کو علیدہ کیسے کیا جاتا ہے یہاں decimals decimal numbers کی بات کر رہے ہیں so تھوڑا سا آپ کو decimal number لکھنے کے rules کے اوپر غور کرنا پڑے گا وہ جو ہے tricksی ہیں مطلب they are tricks of the trade لیکن it's a way of thinking اگر میں آپ کو کہو میرے پاس 4 digit number ہے 1 2 3 4 اس میں سے 4 کو کیسے نکالا جا سکتا ہے سوچیں زرا مطلب as human beings تو ہمیں کوئی مسئلہ نہیں ہے نا ہم تو کہتے ہیں یہ آخری digit ہے وہ ہم نے نکال لیا but no wait a minute جیاد رہے computer کیا چیز ہیں very sophisticated very fast machines but very stupid you have to tell them how to do these things you can't just tell a computer مجھے آخری digit دے دو وہ دے دے گا you have to think in terms of اس کو تا صرف addition subtraction multiplication division modulus یہ چیزیں آتی ہیں so let's take a look again اگر 1 2 3 4 آپ کو ایک number دیا جائے integer تو اس کا آخری digit کیسے حاصل کریں گے what happens if I divide this number by 10 کیا ریمینڈر کیا آئے گا چار آئے گا نا because اس کے end پہ 0 نہیں ہے 10 سے یہ exactly divide نہیں ہوگا so 1 2 3 4 divided by 10 will give a remainder 4 موٹا سہنٹ کہ کیسے 4 حاصل کیا جائے so why don't we say 1 2 3 4 موڈلو 10 پرسنٹیج سائن موڈلس کا اپریٹر کا سائن پرسنٹیج ہے سی کے اندر تو میں لکھتا ہوں 1 2 3 4 پرسنٹیج 10 تو اس کا جواب ملے گا 4 ایک digit مل گیا اب کیا کریں again اگر سوچا جائے as human beings ہم کیا کرتے ہیں ہم کہتے ہیں کہ یہ آخری digit ہو گیا تو اب next digit کونسا ہے کمپیٹر کے لیے اتنا آسانی اس کو next digit کونسا ہے سوچا جائے ہم کیا کرتے ہیں سوچا جائے اس کے جی اب 4 کو نکال دو اور باکی کا جو نمبر بچتا ہے اس کو استعمال کرو اب بتائیں 4 کو نکالا کیسے جائے اور باکی کا نمبر یعنی 1 2 3 حاصل کیسے کیا جائے بیسٹ only on what we have done so far اس سے علیدہ نولج نہیں ابھی ہم استعمال کرنا چاہتے جو آپ لنبی چوڑی کالکلیشن بھی کر سکتے ہیں کہ جی 1,234 میں سے کیا چیز میں سبٹریکٹ کرو تو 123 میرے پاس بچے گا لیکن اس سے آسان طریقہ ہے what happens اگر میں اس نمبر کو 10 سے ڈبائیڈ کر دو 1 2 3 4 ڈبائیڈ ڈبائیڈ by 10 will give me عام arithmetic ڈبائیڈ it would give me 1 2 3 0.4 لیکن back to that rule which says ڈبائیڈ ڈبائیڈ ڈبائیڈ truncates وہ ڈبائیڈ ڈبائیڈ پھیک دیتی ہے اگر میں 1 2 3 4 کو 10 سے ڈبائیڈ کرو اور کہو یہ ڈبائیڈ ڈبائیڈ ہے تو 0.4 گر جائے گا اور میرے پاس باقی بچے گا 1 2 3 اب جا 1 2 3 بچا اب مجھے کیا چاہی ہے مجھے آخری والا ڈبائیڈ چاہی ہے آخری ڈبائیڈ ڈبائیڈ 12 بچا اس کا last digit modular 10 12 mod 10 یا 12 percentage 10 gives me 2 2 آگیا پھر آخری digit لینے کے لیے 2 کو اب ہیکنا ہے تو 12 integer division 10 will give me 1 وہ آخری digit ہے آپ چاہیں تو 1 modular 10 کرلیں یا کہیں آخری digit ہے یہ ہمیں چاہی ہے سو ایک لحاظ سے ہم نے ایک problem پکڑا وہ problem تھا کہ یہ آپ کو چاہر digit کا ایک integer دیا ہوا ہے اس کے آپ digit علیدہ علیدہ کر کے program کے تھرو پرنٹ کرائیں تو اس کا ہم نے analysis کیا ہم نے دیکھا کہ کیا approach لیے جا سکتی ہے کیا tricks ہیں یا mathematical tools ہیں یا operators ہیں جو ہمارے tool set میں پڑے بیں or toolkit میں پڑے بیں اور ان کو استعمال کرتے بے ہم نے اس کو ایک شکل دیلی کہ یہ کیا کیا steps چاہیں ہوں گے یہاں دیکھیں ایک قسم کا یہ ایک analysis ہو رہا ہے وہی steps ڈیٹرمین ہو رہے ہیں جن کو ہم نے define کیا تھا کہ جی اس کو ہم program کہتے ہیں یہ جب ہم نے analysis کر لیا اور program کے مطلب انگریزی عام فہم لکھلی تو چلے آئیے اب c میں لکھتے دیکھتے ہیں اس کو کہ کیا بنتا ہے standard چیزیں sharp include angle brackets کے اندر iostream.h یہ تو ہم لکھیں گے on faith main parenthesis لکھیں گے main program ہے اس کو چلنا ہے braces open کریں گے close کریں گے اس کے اندر main کی body آئے گی یہاں پے question آگیا کہ جی اب یہاں سے number handle کرنے ہم نے اس number کے لیے ہم ایک integer variable ڈیکلیر کرتے ہیں ہم کہتے ہیں int number semi colon so now number is a variable of type int declare ہو گیا جب یہ program چلے گا memory میں ایک integer کے لیے جگہ رزاب ہو جائے گی اس کا نام لکھا جائے گا number اور ہم number کو استمال کریں گے اس کے بعد اب اس میں ہم value ڈالنا چاہتے ہیں value جو ہے اور ساتھ ہمیں ایک اور چی چاہی ہے ہم digits کو print کرنا چاہتے ہیں تو کیونہ ہم ایک اور variable ڈیکلیر ہی کر لیں جس میں یہ digit پڑا ہوگا جس کو ہم print کرنا چاہ رہے ہیں تو ہم کہتے ہیں int digit چیک ہے ایک اور variable ڈیکلیر ہو گیا type integer name digit semi colon اس کے بعد وہی تمیز دار program ہم لکھنا چاہتے ہیں تو ہم نے c out سے ایک user کو prompt دی وہ is c out less than less than quotation marks میں لکھ دیا please enter a four digit integer end quotation marks semi colon so یہ screen پرامٹ آ جائے گی جب program چلے گا جنب اب چار digit integer کا مجھے انتظار ہے اس کے بعد یہ integer ہم پڑنا چاہتے ہیں جو user input کرے وہ ہم store کریں گے so c in کی statement آگی کیونکہ c in یاد رہے وہی دروازہ ہے جس سے keyboard سے input لی جاتی ہے اور کسی variable میں store کی جاتی ہے تو ہم کہتے ہیں c in greater than greater than اور آگے لکھ دیتے ہیں number semi colon so اب جب یہاں پی آئے گا program وہ انتظار کرے گا prompt دینے کے بعد کہ جی اب number input کرو ہم نے number input کیا وہ store ہو گیا in the variable of type integer called number اب یہاں سے جاکے آگے ہماری manipulation شروع ہوتی ہے manipulation شروع کرنے کے لیے ہم نے already analysis کیا تھا جسے ہم نے کہا تھا کہ آخری digit حاصل کرنے کے لیے ہمیں remainder operator استعمال کرنا ہے اور جس کا جو divide کرنے والا number ہوگا وہ ہوگا 10 چونکہ یہ decimal numbers کی بات ہو رہی ہے so ہم نے next statement you have کہتی ہے digit equals so it's an assignment statement digit equals number percentage 10 semi colon simple جو analysis کیا تھا وہ ہی لکھا جا رہا ہے کیا ہوگا number کا remainder لیا جائے گا by 10 سے divide کرنے کے بعد اور جو remainder بنے گا وہ digit کو assign کر دیا جائے گا so in this case اگر number ہم نے input کیا تھا keyboard سے 1,2,3,4 تو اس کو 10 کا remainder لیا 10 کے ساتھ تو اس کا remainder آئے گا 4 وہ value چلی جائے گی digit کی اندر next line اس digit کو display کر دو screen پے so you say see out again let's be polite the rightmost digit یا the digit is اور پھر اسی کو استعمال کرتے بے کہ جی ایک لین میں آپ دو چیزیں بھی output کر سکتے ہیں ہم نے the digit is کر کے quotation marks بند کر دیے پھر less than less than sign کر کے لکھ دیا digit semi colon تو see out کو پتا ہے کہ جی پہلا حصہ character string ہے وہ as is output کر دو دوسرا حصہ جو ہے وہ variable ہے وہ variable کی value output کر دو تو screen پے لکھا با آجائے گا the digit is 4 اب اس سے آگے چلنا ہے اچھی بات تو یہ ہو کہ آگے چلنے کے لیے ہم چاہیں کہ یہ نئی لین پے لکھی جائے چیز اب نئی لین پے کیسے جائیں ابھی تاک ہم نئی لین پے نہیں جا سکے ہم جو چیز لکھتے ہیں وہ ایک لین پے لکھی جاتی ہے نئی لین پے جانے کے لیے دو تین مختلف طریقیں ہیں ابھی کے لیے صرف ایک میں بتاتا چلوں آپ کو جب آپ کیبورٹ پے enter کی دباتیں ہیں چونکہ وہ character ہے computer کے لیے وہ بھی character ہے وہ character آپ see program میں بھی لکھ سکتے ہیں اور وہ character کو اگر output کریں گے تو screen پے next line پے چلا جائے گا cursor آپ کا وہ character کیوں کہ special character ہے اس کے لکھنے کا طریقہ بھی special ہے وہ ہے back slash in اس کو clearly identify کر لیں کہ ایک forward slash ہے جو ہم division کے لیے استعمال کرتے ہیں یہ ہے back slash in یہ escape characters کہلاتے ہیں escape characters in the sense that کچھ characters جیسے tab ہے یا return ہے یا اور characters ہیں کیبورٹ پے وہ درکلی type نہیں ہوتے these are non typing characters they do some action اگر آپ program کے اندر سے ان کو استعمال کرنا چاہیں تو آپ کو یہ escape characters ساتھ استعمال کرنے پڑتے ہیں تو یہاں پہ ہم back slash in استعمال کر سکتے ہیں اس کے لیے آپ اسی see out کی line کو extend کر دیتے ہیں ہم کہتے ہیں کہ جی the digit is پھر less than less than digit اور پھر less than less than اس کو for the moment ہم treat کرتے ہیں as a character string ہم کہتے ہیں less than less than double quotation marks کے اندر back slash in اور پھر semi column اس سے ہوگا یہ کہ جناب آپ کی line لکھی جائے گی the digit is four اور cursor next line پے چلا جائے گا so back to the problem itself اب آپ نے ایک digit تو پرنٹ کر دیا determine کرنے کے بعد آپ یاد ہے وہ ہم نے کرنا تھا کہ جی one two three four مے سے four کو کسی طرح دروپ کیا جائے that means جو number میں value stored ہے اب اس کو بدلنا ہے اب ہم کیا کرتے ہیں بدلنے کا طریقہ ہم نے analysis stage پے already determine کر لیا تھا ہم نے کہا تھا جو number ہوگا اس کو 10 سے divide کر دیں گے اور یہ integer division ہونی چاہیے so all we need to do is write the assignment statement number equals number slash 10 semi column اب اگر دیکھیں سیکرولس کو number was a variable of type integer so integer divided by 10 as written this is also an integer automatically means یہ integer division ہو رہی ہے number کا جو بھی result آئے گا divided by 10 کا اس کا fractional part will get thrown away اور جو result آئے گا وہ واپس number میں store ہو جائے گا so one two three four which was the original value of number slash 10 gives us one two three and that is now being stored back in the number دیکھیں میں نے پہلے آپ کو کہا تھا کہ x equal to x plus one جو ہے وہ بڑی عام طور پے ہمارا استعمال ہوتا رہ گا یہاں پے اسی کا variant آگیا ہے number equals number slash 10 which means دونوں طرف number لکھا ہوئے so remember the concept کہ آپ نے number والی بالتی اٹھائی ہے اس کو اوٹایا ہے اس کے اندر سے جو چیز نکلی ہے اس کو ڈیویٹ کیا 10 کے ساتھ جو جواب آیا اس کو واپس بالتی میں دال دی ہے so بالتی کے contents have been replaced by the new expression or the new result they have not been added to or something they are replaced the original contents are gone right now the variable called number contains one two three ایک سو تیس اس میں پڑاوے number جو ہے باکی back to the analysis stage ہم نے کیا کیا next digit digit equals number mod 10 ہمیں 3 مل جائے گا see out the digit is 3 پھر نیو لائن کا کارکٹر استعمال کر لیں back slash n اس کو ہم نیو لائن بھی کہتے ہیں semi colon پھر رپیٹ کر دیں number equals number slash 10 integer division one two three کی بجائے one two رہے گیا نمبر کے اندر پھر mod 10 one two کے اندر سے جب mod 10 کیا تو two ہمیں مل گیا وہ digit میں سٹور کر لیا پھر digit کو پرنٹ کر دیا screen کے اوپر اور اخیر پہ one ملا one کو بیشا کا mod 10 کریں نہ کریں وہ آخری digit ہے اس کو درکی بھی display کر سکتے ہیں یا پھر for the sake of completeness ہم کہتے ہیں digit equals number mod 10 in this case ہوگا one mod 10 answer one digit میں سٹور ہو جائے گا see out the digit is one interesting simple enough آپ کہیں گے یہ کیا کسم کا contrived کسم کا ایک سامپل لے ہیں کہ یہ ایک نمبر ہے اس کے digit separate کرو اتنا contrived نہیں ہے یہ actually آپ استعمال کریں گا اور بعد میں exercise بھی آپ کو دوں گا کرنے کو اگر کبھی آپ نے دیکھا ہو computer سے پرنٹ ہوا ہوا چیک تو چیک کے اوپر لکھا ہوتا ہے 1224 روپ ہے one two three four point zero zero اور نیچے اُس کے الفاظ لکھے ہوتے ہیں in English 1234 so that means we do need to translate somehow from numbers to characters and English words so there's a lot of stuff جو اس پروگرم کے تھوے کیا جا سکتا ہے اور اس کو ہم refine کریں گے آج کے لیے آپ کی اپنی exercise اور یہ میں expect کروں گا discussion board پے کہ آپ جائیں وہاں پے اور مجھے یہ بتائیں کہ آج تو ہم نے 1234 کو لیکے پرنٹ کیا four three two one کے ساتھ اس کو اگر التا پرنٹ کرنا چاہیں یہ صحیح اوڑر میں یعنی one پھر two پھر three پھر four کیسے کریں گے think about it okay it's an interesting problem can we do it and if so what do we need to do other issues that you might want to think off کے دی اس پروگرم میں ہم نے reuse کیا ہے we have reuse the variable called integer and we have reuse the variable called digit اور ہر لین پر ان کی value بدلتی رہی ہے reuse versus using several variables there are trade-offs بہت چیزوں پر ہر دفعہ trade-off ہوتا ہے trade-off یہ ہے کہ اگر reuse کریں گے تو آپ کم variables استعمال کریں گے memory کم استعمال کر رہیں نقصان کیا ہے کئی دفعہ program کلیر نہیں رہتا اگر تو trade-off ہے between clarity and memory usage I would always opt for clarity بعد میں سمجھ مجھے بھی آ جائے گی دوسرے جو میرا کام دیکھ رہے ہوگے ان کو بھی سمجھ آ جائے گی okay so there is an issue اگر memory اتنی تائٹ ہوکہ جناب extra word استعمال کر لی ہے extra integer declare کر دیتا تو program چلنے سے ہی رہ جائے گا تو پھر بیشاک ہم reuse کی طرف چلے جائیں so آج کا ذرا ہم recap کرتے چلتے ہیں وہی سے ہم نے دیتا تائٹ سے شروع کیا ہم نے operators کی بات کی ہم نے expressions کو اور detail میں دیکھا پھر ہم نے دو reasonable programs I mean they are very simple but the second one especially the separation of the digits was reasonably complex ابھی ہم نے character دیتا کے اوپر زیادہ کام نہیں کیا جب اس پہ آئیں گے وہ تھوڑا سا loops کے ساتھ چلے گا اور arrays کے ساتھ چلے گا لیکن اس میں بہت مزے مزے کی exercise ہوتی ہیں so اس وقت آج اس کو یہی پہ ختم کرتے ہیں اگلی دفعہ ہم operators کو لیکے اور آگے چلیں گے دیتا تائپس کو بدلیں گے اور نئی دیتا تائپس کے ساتھ ہم اور complex programs develop کریں گے but the main issue for the next coming up lecture would be looking for a conditional statement see کی اندر as in other normal programming languages we do have conditional statements so if statement کو ہم دیکھیں گے کی جیسے سیمپل نمبروں کو اس طرح ہی تو نہیں جمع کرتے جاتے یا اس طرح ہی تو نہیں divide کرتے جاتے کئی دفعہ ہوتا ہے کہ اگر یہ ہو جائے تو پھرکا کیا جائے ورنا کیا کیا جائے so conditional statement کو ہم دیکھیں گے Boolean operators آجائیں گے بیچ میں جہاں پر logical connectives آجاتے ابھی تک ہم نے arithmetic operators دیکھیں گے so relational expressions آئیں گے اور logical operators آئیں گے اس وقت کے لیے اجاز دیجے خدا حافظ