 السلام علیکم. Welcome to the World Children's University, Introduction to Programming. آج یہ ہماری تیسری ملاقات ہے لیکچر number 3. پہلے ہم تھویجا ریکیپ کرلے دے ہیں کہ آج تک ہم نے ابھی تک کیا کیا ہے. پھر آگے میں تھویجا اس کو مطلب اس لیکچر کے بارے میں بتاوں گا اور پھر ہم اس کے سپیسفیکٹ آقا کریں گے. تو ہم نے سب سے ہی چھوڑوں تو کیا تھا اس کو اوٹھو بھی دو ہی لیکچر ہوئے ہیں. کہ جناب پرگیمنگ کیا ہوتی ہے کیوں ہمارے لیے ایمپورٹنٹ ہے اس کی یجوال سکیلس کیا چاہی ہیں اور وہ سکیلس انہوے ہم نے ایکسپلین کرنے کی کوشش کی کہ جی ہماری روز مرہ زندگی کی اندر بھی بہت ایمپورٹنٹ سکیلس ہیں پرگیمنگ کے انٹروڈکشن کبر کرنے کے بعد ہم نے پرگیم کی تفصیل تو تھوڑیسی بتائی ہی تھی ایک ہم نے design recipe بھی تیار کی تھی کہ جی عام طور پہ ہم programs وہ کس طرح لکھتے ہیں کہ ایک problem سے شروع ہوکے پھر اس کو analyze کر کے پھر refine کر کے کچھ test اور checks ہاتھ سے بنا کے پھر اس کی coding کر کے پھر اس کو چلاتے ہیں اس کے بعد ہم چلے گیا تھے اپنی development environment کی طرف یعنی dev c++ اس کے اندر ہم نے کچھ اس کے features explore کیے ہیں جیسے جیسے یہ course آگے بڑے گا یہ features ہم اور detail میں explore کرتے جائیں گے ابھی جو چیز ہمیں چاہیے صرف اتنی پہ ہم نے ہاتھ لگایا ہے اس کے اندر ہم نے ایک چھوٹا سا program بھی لکھا تھا v u dot c آپ کو یاد ہوگا آج شروع ہم اس چگے سے کرتے ہیں کہ جزرہ v u dot c جو program لکھا تھا اس کو ادھیڑا جائے اس کو سمجھا جائے کہ جیسی program کے basics کیا ہوتے ہیں ہم line by line اس پہ چلتے ہیں اور ایک ایک line کے اوپر تھوڑیسی تفصیل سے بات کرتے ہیں اس program میں اگر دیکھیں تو سب سے پہلی line جو ہے وہ ہے شارپ سائن کے ساتھ شارپ include iostream dot h اور iostream dot h جو ہے اس کو ہم نے angle brackets کے اندر انکلوز کیا ہوا ہے now یہ تھوڑی سی پہ چیدہ چیز ہے یہ جو شارپ include ہوتا ہے یہ سی میں pre processor directive کہلاتا ہے pre processor کے بہت ساری features ہیں وہ ابھی ہم استعمال نہیں کریں گے ہم down the road جاکے ان کے بارے میں تفصیل میں بات کریں گے فلحال آپ اس کو on faith لے لیں کہ یہ آپ کو line لکھنی ہی لکھنی ہے sharp include stand iostream dot h اور شارپ سائن آپ کے کیبور پہ آپ کو ملیا ہوگا number کے اوپر shift کے ساتھ آتا ہے اس کو hash sign بھی کہا جاتا ہے but generally میں اس کو sharp کہا کروں گا next line جو ہے وہ ہے main m a i n اور پھر اس کے آگے parenthesis ڈالے ہوئے ہیں her c program میں ایک main ہوتا ہے مطلب یہ line ایک دفعہ کرتی ہے اور صرف ایک دفعہ main جو ہے یہ اس کے main program کا نام ہے اور اس کی بھی ہم تھوڑی سی تفصیل میں جاتے ہیں کہ دیکھیں جب program ہم نے بنالیا لکھ لیا compile کر لیا let's say ایک executable form میں آگیا executable form کا مطلب بھی ہے اب یہ computer پہ چل سکتا ہے یہ نہیں machine code میں translation اس کی ہو چکی ہے تو جب یہ program ہم کہیں گے کہ چلے تو ہم بیسیکلی کمان دیتے ہیں یا آپ جیسے graphical environment میں ڈبل کلک کرتے ہیں کسی چیز کو وہاں پہ ہوتا ہے کہ جی program جو ہے وہ loader ڈسک سے انتوار پر ڈسک سے اٹھاتا ہے اور اس کو memory میں لیاتا ہے memory میں program آگیا تو اب آپ نے processor کو یہ ڈریکٹ کرنے ہیں کہ جی اس program کو execute کرو تو question یہ ہوتا ہے کہ جی execution شروعu کہاں سے ہوگی see programs میں execution ہمیشہ main program سے ہوتی ہے جیسے ہم آگے چلیں گے اور بڑے زیادہ complex programs لکھیں گے آپ یہ ڈسکاورٹ کریں گے کہ جیسی صرف ایک نہیں کئی module ہو سکتے ہیں ایک program کے اندر لیکن program جب execute ہوگا تو اس کی شروعات یہ اس کا starting point ہمیشہ main function ہوتا ہے اس کے بعد دیکھیں کہ main کے ساتھ ہم نے parentheses بھی رکھے ہوئے ہیں normal brackets جن کو ہم کہتے ہیں parentheses اس وقت خالی ہیں ان کے اندر کچھ نہیں لکھا ہوا ان کے اندر بھی کچھ لکھا جا سکتا ہے وہ بھی ہم بعد میں ان کا ذکر کریں گے for the moment you have to take it on faith کہ see program میں پہوی لائن ہم اس وقت شاپ include iostream.h لکھ رہے ہوں گے اور main program جو ہے ہمیشہ these characters یعنی اس word سے شروع ہوگا m-a-i-n اور پھر parentheses next دیکھیں تو ایک curly bracket ڈالا ہوا ہے curly bracket یعنی brace اس کو میں عام طور پہ braces کہوں گا تو جو عام bracket ہیں گول والے جو ہیں ان کو ہم parentheses کہتے ہیں curly brackets کو ہم braces کہتے ہیں تمام brackets کی ایک خاصیت ہے کہ جی وہ pairs میں آتے ہیں تیک ہے ان کا جوڑا بنتا ہے کبھی اکیلہ bracket نہیں لکھا جاتا جیسے main کے بعد بھی ایک جوڑا تھا ordinary parentheses کا تو جہاں پہ ہم نے اس کے بعد curly bracket شروع کیا ہے تو یہ curly bracket یا brace جو ہے اس کو ختم بھی کرنا ہے main کی body جو ہے نا which means the main program وہ enclosed ہے ان braces کے اندر تو ایک شروع کا brace ہے اور ایک اخیر کا brace ہے اور ان کے درمیان وہ program کی body آتی ہے braces یہ see language میں بہت ہی important چیز ہیں کیونکہ یہ blocks of statements کو enclose کرتے ہیں اس وقت ہم نے صرف ایک pair استعمال کیا ہے جو کہ main کی ساری لائنوں کو enclose کر رہا ہے لیکن بعد میں چلے ہم دیکھیں گے کہ braces کا استعمال اور جگوں پہ بھی آئے گا جہاں پہ بھی ہم نے کچھ statements کی grouping کرنی ہو ابھی میں آگے ان areas کا mention نہیں کروں گا جب وہ آئے گی ان کی باری اس وقت بات کریں گے اس وقت کے لیے important آپ کو یاد رکھنا یہ ہے کہ جی main کے بعد braces آتے ہیں اور braces ہمیشہ جوڑے میں آتے ہیں اور یہ سمجھ کا ایک tot کا لیے لیں آج کے لیے کہ جی braces جو ہیں جبھی آپ نے ڈالنے ہوں یا parentheses ڈالنے ہوں even quotation marks ڈالنے ہوں کیونکہ یہ سب چیزیں جوڑوں میں آتی ہیں they come in pairs what you can do is type both of them at the same time which means جبھی brace ڈالنا ہے تو آپ opening and closing brace اس کو ایک اٹھا ڈالنے اس کے بعد اس کے درمیان میں جو ڈایپ کرنا ہے وہ ڈایپ کرتے رہے ہیں اس کا فائدہ یہ ہوگا کہ آپ کبھی closing brace ڈالنے ہوں یا closing parentheses یا closing quotation marks کبھی miss نہیں کریں گے so یہ تو ایک tipsی ہے آپ جیسا بھی style اپنا evolve کریں گے وہ ہوتا رہے گا اس کے بعد ہماری جو لائن آتی ہے یہ اصل کیا کہنا چاہی ہے meet of the program ہے because ہمارا program بڑا سیمپلسا ہے so اس کے اندر ایک ہی لائن ہے موجود اس وقت وہ ہے c out اور اس کے بعد double less than sign ہے less than less than اور پھر quotation marks میں لکھا ہوئے welcome to virtual university quotation marks بند ہوتے ہیں اور پھر semi colon آتا ہے اس میں کافی ساری چیزیں اس لائن میں ہم ایک ایک کر کے ان کو لیتے ہیں یہ جو c out کا لفظ یہاں پر لکھا ہوئے یہ c or c plus پلس پلس میں actually یہ ایک stream کہلاتی ہے اس وقت again آپ کو streams کے بارے میں ہم نہیں بتائیں گے کوئی زیادہ complicated چیز ہے بعد میں آتی رہے گی ہم اس کی ابھی بات نہیں کرتے اس وقت آپ سمجھیں کہ stream جو ہے نا ایک کسم کا دروازہ ہے ایک جگہ سے دوسی جگہ تک دیتہ پہنچانا ہو یعنی import یا output اس طرح وہاں پہ ہم streams استعمال کرتے ہیں تو c out جو ہے یہ by this very name seems to be a stream جسے ہم output حاصل کرتے ہیں so c out جو ہے وہ کوئی دیتہ لیتا ہے جو computer کی اندر ہے یہ compute ہو رہا ہے اور اس کو output پے دکھا دیتا ہے یہ نہیں screen پے پیش کر دیتا ہے so c out ہم استعمال کریں گے output کے لیے اس کے بعد جو double angle brackets آرہیں or double less than sign آرہا ہے وہ جوڑے میں ہے اس کے درمیان میں space نہیں چھوڑنی یہ 2 less than signs ہیں ایک کتھے لکھے ہوئے آپ اس کو سمجھنے کہ یہ اشارہ کر رہے ہیں کہ جی دیتہ کس طرف کو جاتا ہے so جو چیز بھی ان کے بعد آئے گی وہ ہم c out کو بھیج دیں گے اور اگر c out کا آپ تصور وہی رکھیں یہ دروازہ ہے تو یہ چیز دروازے میں سے گزر کے کہاں جائے گی well c out کا function ہے screen پے دکھانا تو جو چیز بھی ہم امتر double less than sign کے right hand side پے لکھتے ہیں وہ c out کے through ہوتی ہوتی جا کے screen پے end up کرتی ہے in double quotes in double angle brackets کے بعد کیا آرہا ہے ہمارے پاس ایک double quotation marks کے اندر کچھ characters لکھے ہوئے ہیں یہ جو double quotes ہیں دیکھے یہ ایک special character ہے keyboard پے یہ دونوں quotes ایک اٹھے تاپ کرتا ہے اس کو confuse نہ کیجے گا single quotation mark کے ساتھ اور دو single quotation mark تاپ کرتے ہیں آپ سمجھ رہے ہیں ہم نے double quotes لکھ دیا ایک single character ہے اب یہ جو double quotes ہیں ان کے درمیان میں جو چیز لکھی اس کو ہم کہتے ہیں character string so character strings in C are enclosed in double quotation marks اب quotation marks کا جو پیر ہے اس کے اندر ہمیں بری freedom ہے اس کے اندر جو مرزی لکھیں جو چیز لکھیں گے تو اس تیٹمنٹ کے تاہت وہ see out کو ملے گی see out اس کو screen پے دکھا دے گا ہم نے یہاں پے لکھا ہمارا message welcome to virtual university لہذا وہ string وہ see out کے through ہوتی ہوئے ہمارے screen پے display ہو جاتی ہے اور finally ایک چھوٹیسی چیز ہے لیکن بہت ہی important چیز ہے کہ یہ end والے double quotation marks کے بعد ایک semi colon لگا ہوئے اب semi colon بھی آپ نے استعمال کیا ہوگا JavaScript نے اور اور جگوں پے بھی استعمال کریں گے semi colon کے ساتھ تمام see کی statement کا اختطام ہوتا ہے یعنی every see statement ends with a semi colon not putting a semi colon is a syntax error normally compiler آپ کو کہ دے گا کہ یہ a statement incomplete ہے یہ یہاں پہ semi colon missing ہے یا کئی دفعہ یہ ہوتا ہے کہ جی compiler semi colon کو اگر آپ نے نہیں دالا تو وہ اس لائن کو جوڑ کے دوسی لائن کے ساتھ interpret کرنی کی کوشش کرے گا پھر بھی وہ normally غلطی پکر لے گا اس چیز کا بھی خال رکھیں یہ بھی in a way آپ کہ لیں کہ جی ہمارا see کا religion بن رہے کہ جی ہر statement کے end پے semi colon ان کے اوپر تو وہ see میں کہ لاتی ہے null statement اس سے کچھ نہیں ہوتا ہمیں نہ چیز ہم نے کوئی instruktion دی ہے نہ اس نے program کے execution کے اندر کوئی فرق دالنا ہے so semi colon extra ڈالے جا سکتے ہیں لیکن ان کا extra ڈالنے کا کوئی مقصد نہیں on the other hand اگر semi colon آپ miss کر دیں تو پھر تو ایک syntax error normally اکر کر جائے گا اور compiler ہی آپ کو warn کر دے گا unfortunately اب ایک تھوڑا سا اگر semi colon غلط جگہ پی آپ لگا دیں تو یہ ایک بڑا subtle کسم کا programming error ہو سکتا ہے جو کہ compiler نہ پکڑے لیکن execution کے وقت ایک logical یا run time error ہو جائے اس کے examples بعد میں آئیں گے جب ہم زیادہ complex structures کے اندر جائیں گے لیکن میں آپ کو ساتھ ساتھ warn کرتا رہوں گا کیجنات semi colon کا استمال استمال نہیں کہنا چاہیے یہ تو requirement ہے لیکن اس کو غلط جگہ پے نہیں لگانا اب ہم تھوڑا سا آگے چلتے ہیں ابھی تک کہ ہمارا program تھا اس کو ہم نے ایک fixed character string دی اس نے اٹھا کے اس کو screen کے اوپر display کر دیا تو کہ لیں یہ ہمارا پہلہ program تھا valid program تھا چلتا ہے کوئی زیادہ useful نہیں ہے programs کو useful بنانے کے لیے ہمیں ایک چیز کی ضرورت ہوتی ہے وہتے variable so variables کا concept کس کرنا چاہوں گا variable ہمارا let's programming کرنا bread and butter ہے ہر کسم کا ڈیٹا ہم variables میں store کرتے ہیں concept کے لیے آپ variable کو میں تو کمز کام ہمیشہاں تصور کرتا ہوں کہ یہ ایک بالتی پڑی ہوئی اس کے اوپر کچھ نام لکھا ہوا ہے but to be form computer کے اندر بہت ساری memory ہے memory ہمارا وہ blackboard والا حصہ جس کے اوپر ہم کچھ چیز لکھتے ہیں blackboard خالی ہو جاتا ہے ساف ہو جاتا ہے یا computer off کرتے ہیں memory ساف ہو جاتی ہے memory کے اندر locations ہیں بہت سیادہ ہیں عام طور پہ میرے دفتر میں جو computer پڑا بے اس کے اندر 128 megabytes of memory ہے now megabyte آپ کو یاد ہو گا is 1024 squared so it's a lot of memory locations ان location کو اگر ہم نے کرنا ہو کہ جی کونسی location ہے تو یا تو میں کہوں گا location پہ کچھ لکھتو یا جناب 10,323 واری location کے اوپر لکھتو تو ان کے locations کے addresses تو ہیں جو کہ numerical addresses ہیں لیکن ان کے ساتھ اگر ہمیں program کے اندر سے deal کرنا پڑجا تو بہت ہی مشکل ہو جاتا ہے variables جو ہیں وہ ہے طریقہ کہتی program memory locations کو اسانی سے handle کیسے کرے so ہم کرتے کیا ہیں کہتی ہم memory locations کو کچھ نام دے دیتے ہیں وہ نام ہمیں استعمال کرتے ہیں وہ variable name بن جاتا ہے variable names رکھنے کے بھی کچھ rules ہیں ان کے بارے میں ہم بات کریں گے but basically c کے اندر variables یا character سے شروع ہوگے یا underscore سے شروع ہوگے underscore means underline میں یہ رکمن کروں گا کہ آپ اپنے programs میں underline سے شروع نہ کریں variables کو کیونکہ c کی اپنی بہت ساری libraries ہیں اور libraries کے اندر بھی variables بھی اور function names بھی کوئی conflict نہ ہو variables جو ہیں آپ وہی تصبر کریں کہ جی جو memory میں locations ہیں ان کا ایک label ہے to be even ہم آپ کو روزمرہ کی زندگی سے کوئی example دے کے دیتا ہوں دیکھیں جیسے آپ داکھانے میں کئیوں نے po box لیا ہوتا ہے post office box تو اگر آپ کبھی جائیں تو داکھانے کے اندر پیچھے جاکے کہ دیکھنے کا موقع ملا ہوں تو ایک almarی سی ہوتی اس کے اندر ڈبے بنے ہوتے تو ڈبوں کے اوپر بہت سارے ڈبے ہیں انچی لنمی چاڑی almarی ہے تو وہی بات یا تو آدمی جاکے کہ جی وہ جو اوپر سے تیسرہ اور بائیں ہاتھ سے آٹھوان ڈبے اس میں جو خات ہیں وہ مجھے دے دیں یا آپ کہتے ہیں جی میرا po box number 423 ہے تو داکھانے والے جو ہوتے ہیں وہ جاکے 423 number box سے چیز نکال آتے ہیں so in a way that is a variable location جیس کو یا تو ہم row column سے identify کرتے اور یا پھر اس کو کوئی نام دے دیتے تو po boxes میں عمتور پر نام کی جگہ پر نمبر دیا ہوتا ہے لیکن اس کو اور آسان بنانے کی لیے کیونکہ پھر وہی بات کہ جی 423 کا کیا مطلب ہے 424 کا کیا مطلب ہے ہم variables کے نام وہ characters میں عمتور پر استعمال کرتے ہیں اور وہ characters ہم کوشش کرتے ہیں کہ variable کا تو وہ آپ کو نظر آجائے گا کہ جی ہم variables کے نام کیس طرح سے رکھتے ہیں یعنی they should be explanatory in some sense so to summarize variable کیا چیز ہے it is the name of a location in memory and this name is the one that we use inside our C program then we don't have to worry about کہ جی memory location تھی کنسی تھی کنہ کنسے ہزار بھی نمبر کی کنسی bite استعمال ہم صرف نام x استعمال کر لیتے ہیں x equal to 3 variables بگیرہ جو ہیں یہ مطلب ہمارا جیسے میں نے کہا bread and butter ہیں ان کے ساتھ ہمیں بہت سارا واستہ پڑے گا اور non stop پڑھتا رہے گا program کے اندر ہر variable کا کوئی نا کوئی نام ہوتا ہے اس کی type بھی ہوگی دیتا type کیا اوپر میں ابھی آتا ہوں تھوڑی دیر میں اور type کی وجہ سے اس کے ساتھ ایک size بھی associated ہوتا ہے یعنی memory میں یہ کتنی جگہ لے گا 2 bites لے گا 1 bite لے گا یعنی 1,000 bites لے گا normally ڈیٹا type ڈیٹرمین کر رہی ہوتی ہے کچھنا بھی memory میں کتنی جگہ جو ہے وہ variable کی لیے مطلب reserve کی جائے گی اب variables اکیلے بیٹھے وے تو سمجھ لیں کہ وہی دبے ہیں اوپر لے بل لگے وے ایک دبے کے اوپر x لکھا ہوا ہے دوسرے پہ y لکھا ہوا ہے 3 پہ z لکھا ہوا ہے یا IJK لکھا ہوا ہے یا name لکھا ہوا ہے اکیلہ تو variable میں مزا نہیں ہے کوئی ہمارے پس طریقہ ہونا چاہی ان دبوں میں کوئی چیز ڈالنے کا یعنی variable کے ساتھ value associate کرنے کا اگر ہم کہیں کہ جہاں variable کے پاس نام بھی ہوتا ہے type بھی ہوتی ہے size بھی ہوتی ہے تو اس کے ساتھ ایک اس کا value بھی ہوتی ہے value جو ہے variable میں ڈالنے کے لیے ہم assignment استعمال کرتے ہیں seek ڈر assignment ڈر assignment کے لیے ایک operator ہے وہ ہے equal to sign اب تھوڑا سا یہ trickی ہے اس کو آپ نے خاص طور پہ خیال رکھنا ہے اور سمجھنا ہے algebra میں جب ہم کہتے ہیں x equal to 2 تو اس کا مطلب یہ ہوتا ہے x کی value 2 ہے جب ہم programming languages میں استعمال کرتے ہیں x equal to 2 اس کا یہ نہیں مطلب ہوتا کہ x کی value 2 ہے اس کا مطلب یہ ہوتا ہے value 2 کی value low اور اس دببے میں یا اس بارتی میں جس کا label x ہے اس میں ڈال دو so it is an assignment of a value to a variable this should be very very clear from the start and you should never confuse the equality with assignment unfortunately کیوں کہ keyboard وہی ہے typing وہی ہوتی ہے ہم equal to کا sign استعمال کرتے ہیں for the assignment operator in C مختلف languages میں مختلف signs استعمال ہو چکے ہیں لیکن majority of the language میں simple equal to sign وہ assignment کے لیے استعمال ہوتا ہے اور assignment operator because it is an operator اس کے دو حصے ہیں ایک اس کی left-hand side ہے ایک اس کی right-hand side ہے the way it works is جو بھی right-hand side پہ چیز لکھی ہوئی ہے اس کو computer evaluate کرتا ہے اس کا نتیجہ نکالتا ہے جو بھی جمات افریق کرنی ہے زب کرنی ہے multiply divide whatever the result is it assigns to the variable on the left-hand side now this is crucial to understand کی جی left-hand side کی اوپر variable ہی ہوگا left-hand side of the equal to your assignment operator کوئی expression نہیں ہو سکتی algebra میں تو ہم اسانی سے لکھ لیتے ہیں x plus 3 equal to y plus 4 تو left-hand side پر the x plus 3 لکھا ہوئے which is like an expression اوپرگرامنگ لانگوڈج and in C the left-hand side cannot be an expression it has to be a single variable so we can say things like z is equal to x plus 4 that is okay but you cannot say x plus 4 is equal to z that is incorrect وہ کمپائلر ہی پاس نہیں ہونے دے گا کمپائلر ہی کمپلین کر دے گا کی جی یہ اس بات کی مجھے سمجھ نہیں آئی اب assignment جو ہے اس کا مطلب پلیر ہونا چاہیے کہ جی جو بھی ہمارے پاس کیا کہنا چاہیے یہ variable ہے اس کے اندر value ڈالنی ہو تو ہم assignment operator استعمال کرتے ہیں کچھ ہم examples دیکھ لیتے ہیں اگر ہم C کے اندر لکھیں x equal to 10 اور end پر remember semi colon ڈالنن لازمی ہے otherwise یہ C کی statement نہیں بنتی اس کا مطلب یہ ہے کہ جی 10 جو number ہے وہ لیا جائے اور اس دبے میں ڈال دیا جائے جس دبے کا label x ہے so it's an assignment variable کیوں ہے کیوں کہ اگلی لائن ہی کہہ سکتی ہے x equal to 30 so کیا ہوگا کہ جی 30 جو number ہے وہ اسی دبے میں ڈال دیا جائے گا original 10 کا کیا بنے گا کچھ نہیں زایا ہو گیا غائب ہو گیا اس کا کچھ پتانی کہاں گیا اس کی نئی value وہ ہے جو لیٹسٹ assignment operator نے وہاں پہ پلیس کی ہے اب ایک ڈرسٹنگسی assignment دیکھتے ہیں جو کہ programming میں اتنی کامن ہے کہ جی آدے مہینے کیا already شہد آپ کے نا عام فہم زبان کا حصہ بن گئی ہو یہ لائن ہے x equal to x plus 1 semi colon یا i equal to i plus 1 یا j equal to j plus 1 تھوڑا سا اس پر ہور کریں x equal to x plus 1 کیا یہ ڈیرسٹنگسی ہوسکتی ہے یہ ڈیرسٹنگسی ہوسکتی ہے کب you see it is only true in ڈیرسٹنگسی اگر x کی value infinity ہو کیونکہ ہم کہتے ہیں کہ ڈیرسٹنگسی کوئی ایک ایسا نمبر ہے جس میں ایک آد جمع کردو یا سپریکٹ کردو تو وہ ڈیرسٹنگسی ہی رہتا ہے so only then is infinity equal to infinity plus 1 for any other number x equal to x plus 1 is incorrect لیکن programming میں ہم دن رات یہ ایک ایک سپریشن دیکھ رہا ہوتے ہیں یہ ایک سپریشن کہتی کیا ہے اس کو ذرا سمجھنی کی ضرورت ہے دیکھیں اس میں x جو ہے دونوں سائیڈوں پے اکر کر رہا ہے اس کا ایک سپریشن کو evaluate کرنے کا آپ تصور یہ رکھیں کہ جی ڈیرسٹنگسی ہم نے پہلے evaluate کرنا ہے so اس کو evaluate کرنے کیلی ہمیں کیا ضرورت ہے جی وہ دبے پے جائیں جس کا نام x ہے یا ڈیرسٹنگسی اس کے ڈیرسٹنگس کو بہر نکالنے so let's say ڈیرسٹنگس میں اس وقت 10 پڑا باتا تو ہمارے پس 10 آگیا plus one اس میں ایک جمع کیا 11 i value اب x equal to operate کرے گا the assignment operator which says now جو بھی آپ کا آنسر آیا ہے اس کو اسی ڈبے میں ڈال دو جس کا نام x ہے so in a way x کی اب نئی value 11 ہو جائے گی پرانی value کا کوئی history نہیں ہے کوئی record نہیں ہے ہمیں نہیں پتا وہ کیا تھی it is a common expression for incrementing a variable by one which means اگر variable کا value ایک سے بڑھانی ہے یا ایک سے کم کرنی ہے ڈیرسٹرہ یہ ایک common طریقہ x equal to x plus one یا i equal to i plus one so اس کو آپ تر آپ نے دماغ میں بالکل کلیر کر لیں کہ جی اس سے ہو کیا رہا ہے ہم نے پرانی value بہر نکال لی اور اس کو استعمال کی ایک expression میں جو بھی جواب آیا اس کو اٹھا کے ہم نے variable location پہ لکتیا پرانی value زایا ہو گئی دوسا طریقہ اس کا سوچنے کا ہے کہ جی بالٹی پڑی ہوئی ہے اس میں 10 لکھا ہوا تھا اس کے اوپر ہم نے ایک اور پھیک دیا تو اب اس کے اندر گیارہ ہو گیا but I prefer to say کہ جی پہلے بالٹی کو خالی کیا تا کہ ہمار پس اس کے original contents آجائیں اس میں ہم نے جو بھی جمع کیا یا multiply کیا یا کچھ کیا وہ result ہم نے واپس سٹور کر دیا تو assignment ابھی چلتی رہے گی ہر ہماری arithmetic جو ہے operation ہم کر رہے ہوں گے see programs کے اندر اس میں assignment operator بار بار آ رہا ہوگا so you should get use to this اب درہ ہم آتے ہیں back to variables کیونکہ ہم نے variables mention کیا پھر assignment mention کیا تو اب ہم بات کرتے ہیں variables کی data type کی جیسے میں نے پہلے ذکر کیا ہر variable کی کوئی نہ کوئی data type ہونی لازمی ہے data type جو ہے سمجھ لے کہ یہ ایک data type ہے جس میں whole number ہم اس کو integers بھی کہتے ہیں یا اس کے اندر character store ہوتا ہے یا کوئی اور چیز store ہوسکتے ہیں تو وہ اس کی types ہیں see کے اندر بڑی تھوڑی type ہیں see is what we call a sparse language it is very concise it's very elegant خوبصورت language تھوڑے سے اس کے reserved words ہیں اور وہ استعمال کر کے آپ دنیا کا کوئی بھی program لکھ سکتے ہیں so جب ہم data types پی آتے ہیں let's say see کی data types کیا کیا ہم اس وقت صرف ایک کو پکر لیتے ہیں whole numbers کو simple one integer integer کیلئے جو see کا reserved word ہے وہ ہے int i n t so جب بھی آپ نے کوئی integer declare کرنا ہو program کے اندر تو آپ i n t کا reserved word استعمال کرے گے see کے reserved words بھی ہیں کچھ وہ ہم آیستہ آیستہ انٹردیوز کرتے جائیں گے ایک چھوٹے سے پرگراف میں پوری see کے نا reserved words پورے ہو جاتے ہیں reserved words کے بارے میں آپ کو معلوم ہونے یا پتا ہونے کہ reserved words cannot be used as variable names so you cannot have a variable جس کا نام int ہو int is a reserved see word so it's a keyword so you can use it as a specify for a type of a variable but you cannot use it as a variable name so now int صرف اسی کو لے کے ہم کوئی program لے لکھ سکتے ہیں simple sa program لکھ لیتے ہیں ساتھ ساتھ میں منشن کرتا چاہوں کجی جو data type ہوتی ہے اس کا display کے ساتھ بھی چھوٹا مٹا تعلق ہوتا ہے کہ جی وہ display کس طریقے سے ہوگی یہ یاد رکھیں کہ computer کے اندر جو ہر چیز store ہو رہی ہے وہ تو zeros and ones میں ہو رہی ہے ہمارے general purpose binary computer کے اندر تو آپ جو بھی انگریزی لکھ رہے ہیں یا abc لکھ رہے ہیں یا 123 لکھ رہے ہیں اندر اس کا store ہے جو ہے وہ zeros and ones میں ہو رہا ہے جب ہم اس کو display کرنے آتے ہیں تو اس کو کسی طریقے سے ہم نے اس طریقے سے display کرنے ہے جو کہ ہمیں as human beings سمجھا جاتا ہوں جو data type ہے اس چیز کو بھی affect کرتی ہے اور see out کو پتا ہے کہ دی integer data کو کس طرح display کرنا ہے so it is not just that it has other implications the other implication of the data type itself is the size of storage جب ہم data type کو declare کرتے ہیں جیسے int declare کیا تو اس کا مطلب ہے کہ جی memory میں اس integer کیلئے کچھ جگے reserve ہو جاتی ہے کتنی جگے یہ machine پہ بھی depend کرتا ہے compiler پہ بھی depend کرتا ہے but let's say integer کیلئے 4 bytes 32 bits وہ reserve ہو جائیں گی so اگر ہم کہیں کہ جی integer نہیں کوئی اور data type تو ہو سکتا ہے اس کے لئے مختلف size کی reserve ہو رہی ہو so data type space allocated in memory کو بھی affect کرتی ہے اب ہم نے variables کی بھی بات کی data types کی بھی بات ہوئی جس چیز کے ہمیں خاص طور پہ خیال رکھنا پڑتا ہے وہ یہ ہے کہ جی کوئی بھی variable استعمال کرنے سے پہلے ہمیں اس کو declare کرنا پڑتا ہے declaration کا کیا مطلب ہے یعنی program کے اندر اگر suppose ایک integer ہے i کے نام سے وہ ہم استعمال کرنا چاہتے ہیں تو پہلے ہم program میں یہ لائن لکھیں گے int i semi colon اس کو ہم declaration لائن کہتے ہیں کرتا ہے یہ کیا ہے یہ بیسکلی memory کے اندر ایک جگے رزاب کرتا ہے integer جتنی جگے اور اس کو label کر دیتا ہے i اب جب ہم program لکھ رہے ہیں یا compile کر رہے ہیں or disk پے save کر رہے ہیں تو کچھ نہیں ہو رہا it is only instructions that are saved جب ہم اس کو چلانے لگتے ہیں program کو جب execute کرنے جاتے ہیں تو اس وقت کوئی memory میں خاص جگے وہ reserve ہو کے اس کا label you cannot use a variable in c unless you declare it first اس کا اب تھوڑا سام ایک دیکھتے ہیں ایک c کا program دیکھتے ہیں جو سیمپل 2 integers لے گا ان کو جمع کر کے ان کا result display کر دے screen کے اوپر تو آئیے ہم اپنا c program دیکھتے ہیں اس program کو اگر دیکھیں تو سیمپل c لائنے ہیں actually آپ اگر اس کو سارے کوڈ کو ایک کٹھا دیکھ لیا تو آپ کبر آ جائیں گے کبرانے کی کوئی چیز نہیں بالکل سیمپل چیزیں لکھی ہوئی ہیں لیکن کچھ interesting aspect ہیں جو کہ میں ساتھ ساتھ explain کرتا چلوں گا پہلی لائن جو ہے وہ جیسے میں نے پہلے ارس کیا کہ دی شاپ include iosprim.h یہ تو ہم استعمال کر ہی رہے ہیں اور یہ استعمال کر رہے ہیں output لینے کے لیے اس کے بعد main آگیا opening brace آ گئی وہی بات کہ جی بریس جان شروع ہوگی ختم بھی ہوگی تو نیچے ایک آپ دال لیجیے اس کے بعد اب ہم کیونکہ اس program کے اندر variables استعمال کرنا چاہتے ہیں ہم ان کو declare کریں گے یہاں پہ ہم نے 3 variables declare کیے ہیں x, y اور z اور ساتھ ان کی دیتا طاپ جو ہے وہ ہے integer تو اس declaration کیلی ہم کہتے ہیں int x semicolon پھر y semicolon پھر تیسری لین پہ ہم لکھتے ہیں int z semicolon ان لینوں کو ہم ایک اٹھا بھی لکھ سکتے تھے یہاں پہ سی ہمیں provide کرتی ہے comma separator so comma وہ بزاتے خود ایک c کا character بن جاتا ہے آپ اس کو concisely لکھ سکتے تھے int x comma y comma z semicolon اس کا مطلب بالکل وہی ہوتا جو ہم نے علیادہ علیادہ کرتے لکھا ہے ایک اور چیز میں بتاتا چڑنو کسی کو جو ہم نئی لین پے لکھتے ہیں چیز اس سے کوئی خاص گھرز نہیں ہیں آپ چاہتے تو آپ ایک لین میں بھی لکھ سکتے تھے int x semicolon int y semicolon int z semicolon وہ ہے statement delimiter یعنی statement ختم semicolon پہ ہو رہی ہے آپ ایک لین پہ کئی statement لکھ سکتے ہیں لیکن میں یہی کہوں گا آپ ایک لین پر ایک statement ہی لکھیں اس کے بعد اس پروگرم کے اندر ہم نے کیا کیا ہے ہم نے x اور y کو کچھ value اسائن کی ہیں اسائنمنٹ کی بھی ہم بات ابھی کر چکے ہیں کہ جی ہم نے کہا کہ جی x equal to 10 تو 10 کی value اس ویریبرل کو جو ڈیجر ڈائب کا ہے اور اس کا نام x ہے اس کو اسائن ہو گئی اب computer کے اندر کیا ہو رہے کہ جی جو number 10 تھا وہ اس memory location میں لکھتی ہاں گیا جس memory location کا label x تھا اس کے بعد next line i y is equal to 20 اسی طریقے سے 20 جو number ہے وہ اس memory location میں لکھا گیا ہے جس کا label y ہے اب next line یہ ہمارا پہلہ exposure ہے to an actual arithmetic operator ہم کہتے ہیں z is equal to x plus y semi colon semi colon میں پرتا جا رہا ہوں بعد میں شہد اس میں کتا ہی کرلوں کہ جی میں ہتھا بہر semi colon نہیں کہوں گا لیکن جات رکھی ہے c کی statement کے ڈن پے semi colon ہونا لازمی ہے تو یہ جو line ہے z is equal to x plus y semi colon یہ کیا کر رہی ہے یہ x location میں جو چیز لکھی ہوئی تھی جو number تھا جو اس کی value تھی اس نے اس کو لیا y location میں جو value تھی اس کو لیا ان دونوں کو جما کیا in this case 10 plus 20 giving the result 30 اور پھر assignment operator جس کا symbol equal to sign ہے اس کی وجہ سے 30 کی value z variable کے اندر جو ایک میمری میں ایک اور location ہے وہاں پہ اس نے store کر دی دیکھے کہ اس لین میں ہم نے کافی کچھ کیا ہے ایک چیز کا خاص طور پر شاعل رکھنے کی ضرورت ہے یا سوچنے کی ضرورت ہے کیا اس operation میں x یا y کو کچھ ہوا کیا خیال دیو تھی بہت افکٹید بھائی دیس operation تھی بہت سمپل ارثمیٹک دیز اور ایک اور ایک اور لیجبرا کہ ایک اور لیجبرا میں اگر آپ کہتے ہیں x is equal to 2 plus 3 تو وہ 2 plus 3 value 8 ہو کے 5 ہو کے x کی value 5 ہو جاتی ہے لیکن 2 اور 3 کو کچھ ہوتا ہے کچھ نہیں ہوتا وہ ارشنال اپنا 2 اور 3 ہی بنا رہتا ہے یہاں پہ بھی when we say z is equal to x plus y تو x اور y کو کچھ نہیں ہوتا they remain and retain their original values so the variables participating in an expression on the right hand side of a c statement normally will never be affected their values will never be affected they will remain what they were originally the only exception وہی آجاتی ہے جو میں نے پہلے کہا تھا x equal to x plus 1 تو پھر x میں نئی value چیلی جاتی ہے but otherwise ان کی values affect نہیں ہوتی اس کے بعد ہمارے پاس کئی ساری لائنے ہیں جنکہ اندر ہم نے c out کو استعمال کیا ہے چیزوں کو display کرنے کے لیے تو ہم نے کہا c out پھر less than less than اور quotation marks میں لکھتی ہے x equal to and quotation marks semi colon تو اس لائنے کیا کیا screen کے اوپر x equal to لکھتی ہے ہم چاہتے ہیں کہ اس کے بعد x کی value لکھی جائے تو next line وہ کہہ رہی ہے c out less than less than x semi colon اب دیکھیں یہاں پہ ڈیٹر تیپ کا effect آگیا c out کے اوپر پہلی والی c out جو statement تھی اس کے اندر ایک character string جو ہے double quotation marks والی وہ screen پہ پرنٹ ہو رہی تھی اب ہم نے c out less than signs کے بعد ہم نے ایک variable کا نام دے دیا ہے یہ جب screen پہ پرنٹ ہونے جائے گا تو x وہاں نہیں لکھا جائے گا x کی value لکھی جائے گی اور x کی value جو ہے وہ c out اپنے خاص اندار سے انٹرپریٹ کرے گی کہ x جو ہے وہاں ہے a variable of type int integer ہے تو اس کو integer کے طور پہ لکھا جائے وہاں پہ 10 لکھا جاتا ہے اس کے بعد next line یہی کر رہی ہے c out less than less than y equal to تو وہ y equal to پرنٹ ہو جائے گا screen کے اوپر یہ مطلب بات جو میں بتانے کی کوشش کر رہا ہوں وہ یہ ہے کہ جب آپ quotation marks استعمال کرتے ہیں تو quotation marks کے اندر جو بھی چیز ہے وہ تو as is پرنٹ ہو جاتی ہے لیکن جب آپ quotation marks چھوڑ کے کوئی variable کا نام دیتے ہیں تو variable کا نام پرنٹ نہیں ہوتا اس کی value پرنٹ ہوتی ہے تو ہم اس program کو کمپیٹ کرتے ہیں پھر ہم نے y کی value پرنٹ کر دی اس کے بعد کہا ایک character string کے اندر کہ z is equal to x plus y وہ جو expression تھی is equal to تاکہ جب ہم program کی output دیکھے تو ہمے سمجھ بیا ہے کہ اس program نے کیا ہے اور اخیر میں ہم نے z کی value output کر دی again using c out تو what we've got now جب یہ program چلتا ہے تو screen کے اوپر آپکہ نظر آتا ہے x is equal to 10 y is equal to 20 z is equal to x plus y is equal to 30 simple arithmetic کوئی ایسی بڑی بات نہیں ہے لیکن اس کے لیے ہمیں تھوڑا سے concepts جو ہیں وہ آپ تاکہ بہن چاہنے تھے اس کے اندر آپ اس چھوٹے سے program کے اندر دیکھا کہ ہم نے انٹیجرز کو declare کیا x y z اور declaration نے کیا کیا میمری میں کچھ جگہ reserve کی اور وہ جگہ جو تھی تین انٹیجرز کے لیے تھی تین مختلف جگہ اس نے reserve کیا ہمیں نہیں پڑھا کہ exactly memory location کیا اور ہمیں اسے ہرز بھی نہیں ہے ہرز صرف یہ ہے کہ ان location کو اس نے label بھی لگا دیے ایک جگہ کو label کر دیا x دوسی کو کر دیا y اور تیسی کو کر دیا z and declaration نے وہاں پہ ہمیں جگہ reserve کر دی اس کے بعد ہم assignment پے آئے تو جو x اور y کی assignment کی ان پہ تو ہم نے number ڈال دیا تھے نمبرز کو ہم constants کہتے ہیں but constants کو پھر ہم بعد انہوں کو دیسکس کریں گے تو وہ 10 اور 20 وہ those locations میں ڈال دیا گئے تیسی جو تھی اس میں ایک arithmetic expression بھی آگئی کہ the x plus y جما کیا ہم نے دو نمبرز کو اور ان کی assignment جو تھی وہ z variable کے ساتھ کر دیا ایک پوری list of statements کے ساتھ ہم نے ان چیزوں کو screen کے اوپر display کیا so this program actually has manipulated or shown you quite a few different things but these are things that will become second nature to you as we go on and we write more and more programs declarations ارام سے آپ کر رہے ہوں گے assignments ارام سے کر رہے ہوں گے arithmetic operators ارام سے استعمال کر رہے ہوں گے اب ذرا آگے چلتے ہیں اور دیکھتے ہیں کہ دی کوئی اور بھی دیتا ٹائپس ہیں سی کے اندر کوئی اور بھی operators ہیں but obviously درار میں نہیں اگر ہم دیتا ٹائپس کی بات کریں تو سی کے اندر میں نے پہلے ارز کیا کہ یہ بڑی concise لنگوج ہے بڑی elegant لنگوج ہے اس کے اندر whole numbers کو سٹور کرنے کے لیے یعنی انٹیجرز کو سٹور کرنے کے لیے تین مختلف دیتا ٹائپس ہیں وہ بیسیکلی انٹیجرڈیٹا ٹائپ ہے انٹ انٹ جو میں نے پہلے ہم بھی ہم نے program میں استعمال بھی کیا وہ عام طور پہ ہماری آج کل کی مشینوں پہ 4 bytes یعنی 32 bits کا ہوتا ہے اس کے بعد کئی دفعہ ہمیں چھوٹے چھوٹے نمبرز استعمال کرنے کی ضرورت ہے چھوٹے نمبرز ایک سے دستہ استعمال کرنے ہیں ایک سے بیسٹہ کرنے ہیں تو کیا میں ہر دفعہ وہ 32 bits ہی استعمال کرنے کیلیے اگر آپ کو کوش یاد ہو تو آپ کو پتا ہوگا کہ جی اگر آپ کے پاس ایک bit ہو تو اس میں آپ دو مختلف value سٹور کر سکتے ہیں 0 اور 1 دو bits ہوں تو 2 to the power 2 value سٹور ہوسکتی ہیں یعنی 4 value سٹور ہو جاتی ہیں اسی طریقے سے اگر آپ کے پاس 32 bits ہوں تو آپ خیال کرنے کہ 2 to the power 32 values آپ مختلف سٹور کر سکتے ہیں کیلیے نمبرز its actually 65536 لیکن اگر آپ نے گنتی ہی بڑے چھوٹے نمبروں کی کرنی ہیں تو پھر کیا ہم وہی 4 bytes لے کے آگے چلیں اس کے لیے سی آپ کو Provide کرتی ہے ایک short integer اور سیمپل اس کی دیتر طاپ ہے بھی short S H O R T جہاں ہم نے int i لکھا تھا آپ اس کو short i بھی لکھ سکتے ہیں یا اس کو اگر چھوٹا انٹیجر استعمال کرنا چاہیں تو short کرنے Why should we do this? Think about it Why should I use a short when it is تو short کیوں استعمال کریں Well basically we are being efficient in memory usage جب آپ کے program بڑے ہو جاتے ہیں جب آپ نے بہت ساری memory استعمال کرنے لگ پڑتے ہیں those programs تو آپ شاہد ایک ایک byte کے اوپر نہ care کر رہے ہیں کہ کوئی جگہ زایا نہ ہو جائے تو وہاں پہ آپ short integers استعمال کرنا شروع کر دیتے ہیں اس کی دوسی طرف بھی ہے تو آپ کو استعمال کرنا پڑھ جائے which means کہ ایک انٹیجر جو کے بتیس بیٹس میں پورا ہی نہ آتا ہوں یعنی بتیس بیٹس بھی بڑا انٹیجر ہے ہول نمبری ہے یہ انٹیجر لیکن it does not fit in 32 bits what do you do she provides you another data type which is of type long l o n g so you can say long i اس میں بہت ساری بیٹس ہوتی ہیں normally انٹیجر سے بہت بڑی بڑی ویلیوز ہول نمبر کی اس کے اندر سٹور کی جا سکتی ہیں next data type جو ہے let's say کہ جی فلوٹنگ پوینٹ نمبر کی آجاتی ہے ہول نمبر سے بھی بات کرتے تھے 1 2 3 but what about 1.5 6.79 ان کو سٹور کرنے کے لیے ہمیں real number کی کوئی data type چاہی ہے see اس میں بھی آپ کو دو مختلف data types دیتے ہیں ایک نام ہے float فلوٹ float data type اس کے اندر real number سٹور کیا جا سکتے ہیں that means اس میں decimal point ہوتا ہے and floats are signed which means sign bit بھی ہوتی ہے انٹیجرز میں بھی ہوتی ہے ان میں بھی ہوتی ہے positive number and negative number دونوں سٹور کیا جا سکتے ہیں جس طرح انٹ کے سات long تھا کہ جی اگر نمبر بہت بڑا ہو جائے وہ انٹ والی جگہ میں پورا نہ آئے فلوٹ دول کی فیصلیٹی ہے which means a very big real number جو ریال نمبر فلوٹ میں پورا نہ آتا وہ اس کے لیے ہم دول استعمال کرتے ہیں یہ جو میں لفس استعمال کر رہا ہوں انٹ short long float دول یہ سب سی کے کیورڈس ہیں یعنی کیورڈس کے بارے میں میں نے پہلے کیا بات کی تھی کہ جی کیورڈس کو آپ as variable نمز استعمال نہیں کر سکتے سو یہ تھوڑی تھوڑی تھوڑی آپ کی تھوڑی سی لفس ہیں سی کے اندر ایک دفعہ میں آپ کو دکھا بھی دوں گا شہد آپ کی ہینڈاوٹ اگر آگے آپ دیکھیں تو نظر بھی آجائے گا سی کے سارے کیورڈ ایک پاراگراف میں پورے آجاتے ہیں سو یہ نہیں ہے کہ ہم نے کوئی لنبی جوڑی کتاب وہ رٹمی ہے یہ جو کیورڈس ہیں سو we have looked at انٹ کی تین ورائٹیز فلوٹ کی دو ورائٹیز اور ایک کرکٹر دیتا وہ ہوتا ہے جس کے اندر ہم abc وگیرہ سٹور کرتے ہیں سو اب نمبر سے ہم ہٹکے انگریزی سٹور کرنے چلے ہیں سو کرکٹر دیتا ایسا ورائٹیز ایسا جب میں آپ سے یہ ذکر کیا تھا کہ جناب دبل کوٹس کے اندر ہم نے کرکٹر سٹرنگ لکھی ہوئی ہے تو وہ کرکٹر دیتا تھا لیکن ایک اور کسم کا یہاں پہاں کرنا چاہیں تو اس کی دیتا تاپ ہوگی چار c h a r سو چار is a کرکٹر دیتا تاپ یہ تو ہم نے کچھ دیتا تاپس کیسے ذکر کیا ابھی ان کا استمال وہ آگی چلے کافی سارا آتا رہے گا کیونکہ ہم نے ارثمیٹک کیلو کرلی ہے تو اس وقت میں آپ کے ساتھ تھوڑے سے ارثمیٹک اپریٹر کے بارے میں بات کرنا چاہوں گا ارثمیٹک کیلیے اینی پلس مائنس ملٹیپلائی اور ڈیوائٹ کے لیے اور ایک موجلس کا پلس اپریٹر کا سیمبل پلس آپ کے کیبورد پے موجود ہے مائنس اپریٹر کا مائنس وہ بھی کیبورد پے موجود ہے اگین مائنس کو آپ اندر لین کے ساتھ کنفیوز نہ کیجے گا یہ چھوٹا ہے اندر لین کیبورد پے تریکی نیس اندر اندر سینس کی جب ہم عام طور پے ڈیوائٹ لکھتے ہیں تو ہم ڈیوائٹ ملٹیپلائیٹ با ایکس کو ڈیوائٹ لکھتے ہیں کمپیوٹر کو اگر آپ ڈیوائٹ لکھیں گے تو وہ سمجھ گا کہ یہ ایک نیا ویریبل جس کا نام ڈیوائٹ اور ڈیوائٹ سیمبل اسٹرسک یہ بھی آپ کمپیوٹ آپ نے all the آپ ڈیوائٹ جو کامپیوٹر ربککا بھی ڈیوائٹ پر بلکہ اسٹرسک کہنا زرہ مشکل ہے میں اس کو ڈیوائٹ ڈیوائٹ اسٹرسامبل وہ ملٹیپلائیٹ کیلی استعمال ہوتا ہے ویرروڈ ڈیوائٹ با ایک ڈیوائٹ دو And ڈیوائٹ ایک ڈیوائٹ ڈیوائٹ ہم وہ ہے ڈیویژن کا سیمبل سو there is plus for addition minus for subtraction star for multiplication and slash for division اب میں نے کہا تھا کہ modular operator بھی ہے اس کے لیے سیمبل استعمال کیا جاتا ہے وہ ہے percentage sign so percentage sign کو بھی آپ لوکیٹ کر لیں this is an interesting operator بہت زیادہ اس کا استعمال نہیں ہوتا لیکن جب ضرورت پڑتی ہے یہ بہت کام آتا ہے ان اپریٹرس کے بارے میں کچھ چیزیں آپ کو معلوم ہونی چاہی ہیں یہ سب اس کاتیگری کے اپریٹرس ہیں جن کو ہم binary operators کہتے ہیں binary کا مطلب یہ ہے کہ ان اپریٹرس کے دونوں طرف کوئی نہ کوئی چیز آتی ہے یہ نہیں جب آپ پلس استعمال کرنا چاہتے ہیں تو آپ دو نمبر کو جمع کر رہے ہیں so you say i plus j so plus کے سیدوں پر i بھی آیا اور j بھی آیا اسی طریقے سے you say star y which means x multiplied by y again two variables or two expressions expressions ہم کور کریں گے on either side of the star symbol which stands for multiplication same thing a slash b which means a divided by b and so on modulus operator a percentage b that means the modulus میں اس کو تھوڑا سا explain آپ کو کر دوں گا as a good programming practice اور اپنے لیے بھی تھوڑی سی زندگی آسان کرنے کے لیے آپ یہ عادت ہی ڈالنے کہ جب بھی operator آپ لکھیں تو اس کے دونوں طرف ایک ایک space چھوڑتے جائیں پڑھنے میں بھی آسانی ہوگی location میں بھی آسانی ہوگی جلدی سے نظر آجائے گا so you would normally type something like a space plus space b and of course semi colon جو اب میں نہیں بول رہا c کی ہر statement کے ان پے semi colon آتا ہے modulus operator یہ ہے remainder operator that means when we say amodulo b so that means a کو b سے divide کرو اور جو بھی remainder آئے وہ اس expression کی value ہوگی so agar ہم کریں five modulo 2 so five کو two سے divide کیا two two's are four four نکل جاتا ہے ایک بچتا ہے so five modulo two will have one as the result of the expression یہ دیکھئی جا کہ it's the remainder operator آسان ہے modulus یاد رکھنے میں جو آپ remainder operator کہتے ہیں یہ remainder ملتا ہے ہمیں جب بھی آپ دو نمبرس کو ایک دوسے سے divide کرتے ہیں جو remainder بچتا ہے وہ modulus ہے یہ خیال رکھنے کہ جی آپ اگر divide کرنے چلیں گے آپ کہیں گے one modulo two آپ کہیں گے ایک کو دو سے divide کریں گے تو fraction میں چلا گیا no that means the remainder is one so one modulo two is one دیکھیں گے two mod two is zero because there is no remainder it divides exactly so the modulus is a remainder operator so all of these operators they are binary they take two variables or two expressions on either side and then they come up with the result of the expression and they necessarily occur on the right hand side of any C statement پہلے میں نے ذکر یہ کیا کہ جناب C میں left hand side let's say of the assignment operator وہاں پہ expression نہیں ہو سکتی وہاں پہ تو simple variable ہی ہو سکتا ہے so here because expressions میں آتے ہیں لہذا یہ equal to side which is the assignment operator اس کے right hand side پہیے ہی رہیں گے دوسی چیز جو اس کے اندر operators کے ساتھ خاص طور پے ریالائز کرنے والی ہے which means جو اپریٹر کے دونوں ساید پہ چیزیں آئیں ہیں وہ ان اپریٹر سے affect بالکل نہیں ہوتے which means when we say x plus y تو نہ x affect ہوتا ہے نہ y affect ہوتا ہے ان کی values کا سم ہمیں مل جاتا ہے اور وہ سم ہم normally کسی تیسرے variable کو assign کر دیتے ہیں so these the operands themselves are not affected by these operations ایک ان میں اور چھوٹیسی بات کر لیں کیونکہ ابھی تک ہم ایک دیتا ٹائیپ کے ساتھ کام کرتے رہے ہیں وہ تھی int integer کی addition سیدی سادی subtraction سیدی سادی multiplication سیدی سادی division جو ہے اس کے اندر تھوڑا سا problem ہے integer division میں کیا ہوتا ہے اگر میں کہوں کہ جی four slash two which is four divided by two تو the answer is two no problem if i say five slash two کیا خیال ہے this is integer division now logically if you see this then either its answer can be two which is the whole number part of the division or if you are rounding and you are saying next highest number its answer can be three well in c integer division always truncates which means when fractional part comes it is thrown and the whole number part of the answer is the result of this expression so you have to keep in integer division that it is a truncation operation as it is an exact division then it is easy where if not an exact division then fractional part will truncate now lets talk about the precedence of the operators پہلے کنسا ایویلیوٹ ہوتا ہے پھر کنسا ایویلیوٹ ہوتا ہے دیکھیں یہاں پہ زندگی تھوڑی سی آسان ہے کیونکہ آپ اس چیز کے آدیدی ہیں ہم عام الجبرہ یا ارثمیٹک کے اندر بھی بریکٹس استعمال کرتے رہے ہیں to be accurate parentheses جو چھوٹے گول والے بریکٹس ہوتے تھے parentheses ہم استعمال کرتے تھے to force the order of evaluation پہلے کیا چیز کرنی ہے اس کے بعد اس کی evaluation کہاں کو جائے گی جب ہم ارثمیٹک اکپریشنز لکھ رہا ہوتے ہیں c کے اندر اس میں parentheses have the highest precedence اور پھر اگر بریکٹس کے اندر بریکٹس کے اندر بریکٹس ہوں تو سب سے اندر والے سب سے پہلے evaluate ہوں گے اس کے بعد ان سے بہر والے ان کے بعد بہر والے بریکٹس so brackets have the highest precedence پھر آپ آجیں صرف آپ اپریٹرز کی بات کر رہے تھے اپریٹرز کے آپس میں کیا relationship ہے تو اس میں جو multiply divide or modulus operators ہیں remainder operator ان کی precedence higher ہے یہ پہلے evaluate ہوتے ہیں جمہ یعنی plus or minus addition and subtraction یہ بعد میں evaluate ہوتے ہیں تو اگر آپ کے پاس کوئی بھی expression ہو جس میں multiplication بھی ہو and addition بھی ہو تو پہلے multiplication والا operation ہوگا اور پھر جو اس کا result آئے گا وہ addition یا subtraction کے اندر استعمال ہوگا ابھی ہم آگلے لیکٹر میں دیکھیں گے بہت ساری expressions کے ساتھ deal کریں گے آپ اس کے ساتھ comfortable ہو جائیں گے but there is an order to the precedence and the expressions are evaluated left to right جو چیز left سے آپ evaluate کرنا شروع کریں گے so a plus b plus c پہلے a plus b evaluate کریں گے اور اس کا جواب جو ہے وہ plus c کے ساتھ add ہوگا اور پھر اس کا total جواب آئے گا so there is a precedence to the operators اور بہت ساتھ an order of evaluation which means left to right ان چیزوں کا آپ کو خاص خیال رکھنا ہے آج کے لیکٹر کو ہم ذرا ساد summarize کرتے چلتے ہیں سب سے پہلے ہم نے ایک چھوٹا سا see program پکڑا اور اس کو ادھڑا تیک ہے نا right down to the nitty-gritty کے جی semi colon کہاں پے دالتے ہیں پھر ہم نے variables کے بارے میں بات کی پھر ہم نے کچھ declaration کے بارے میں آپ کو بتا ہے کہ declaration کیا کرتی ہے یا نہیں memory میں کوئی جگہ رزورف کرتی ہے تو declaration کے ساتھ ہمارے پاس کے questions آگے جی کتنی جگہ تو کتنی جگہ بتانے کے لیے ہم data types میں چلے گئے so پھر ہم نے کچھ see کی data types کا ذکر کیا اور پھر اس کے بعد ہم نے کچھ arithmetic operators کے بارے میں مطلب دیکھا اور ہم نے int data type کے بارے میں تھوڑی سے زیادہ تفصیل میں گفتگو کی اگلی دفعہ ہم انی arithmetic operators کو لے کے آگے چلیں گے اور expressions کو لے کے آگے چلیں گے ایک سمپلسہ ایک program لکھیں گے جس کے اندر let's say کہ جی ہم کچھ نمبروں کی average نکال سکیں پھر ہم اور in depth expressions کو evaluیٹ کریں گے کہ جی کتنی کو کمپلکیٹید expressions آ سکتی ہیں کس طرح لکھا جاتے ہیں ان کو see کی اندر and so on so forth so آس تا آس تا ہم جو ہم آپ کی vocabulary کو build کر رہے ہیں building کا مطلب یہ ہے کہ جی ہم ایک لیکٹر کے اندر آپ کو ساری see لیکنگج نہیں بتا دیتے آپ کو کئی دفعہ لگے گا کہ یہ بڑی obvious چیز ہیں کیونکہ آپ کا JavaScript exposure ہو چکا ہے لیکن میں یہ چاہوں گا کہ آپ ان کو نئے سرے سے ہر چیز کو سوچتے جائیں دماغ کو کھولا رکھیں and let these things soak in what we want eventually although this is not just see programming we are talking about programming اگلے لیکٹر میں programming بھی ہوگی چاہئے یہ کہ جی آپ سورے ہوں جاگرے ہوں آپ ارام سے program لکھ سکیں you shouldn't have to worry about things you don't have to think that you declaration کرنی ہے کہ جی انٹ کیا چیز ہوتی ہے نہیں یہ تو آپ کے خون پسینے کا حصہ بن جا نا چاہیے اتنی اپنے programming کرنی ہے اب ہم اجازت لیتے ہیں اگلے لیکٹر پہ پھر ملاقات ہوگی خدا ہافیس