 سلام علیکم. Welcome to virtual university. The course is introduction to programming and today is lesson number seven. تھاور سام ریکیب کرتے چلیں کہ جی پیچھلی دفعہ ہم نے کیا کبر کیا تھا. If you remember decision operators or decisions کے بعد ہم نے loops کا آگاز کیا تھا اور لوپ میں پہلا سٹرکچر جو ہے وہ وائل لوپ کا تھا ہم نے وائل لوپ کے بارے میں بات کی ہم نے ریلیشنوہ اوپریٹرز کے بارے میں بات کی اور پھر کچھ لوپریٹرز کے بارے میں بات کی آج ہم لوپs کو لے کے زراہسا آگے چلیں گے اور نئی لوپ کے سٹرکچرز ان کے بارے میں بات کریں گے دیکھیں ہمارے پاس وائل لوپ کے بھی دسکس کر رہے تھے ہم نے یہ بات کہی تھی کہ کم از کام ایک دفعہ جو ہے وہ وائل لوپ اپریٹ کرتی ہے کہ نہیں کرتی اور آنسا بہت نو وائل لوپ جو ہے وہ zero اور more times اس کی body کی سٹیٹمنٹس جو ہیں وہ execute کرتی ہیں why zero اگر وائل لوپ کی condition پہلی دفعہ ہی false ہو جائے سو آپ کو یاد ہوگا اس کا syntax کے ہم کہتے تھے while condition اور اس کے بعد ہم اس کی کوئی body میں جو سٹیٹمنٹس تھی ان کی بات کرتے تھے تو اگر پہلی دفعہ ہی condition false ہو جائے تو while loop کی جو body کی سٹیٹمنٹس ہیں وہ execute نہیں ہوگی اور جو program ہے وہ jump کر کے while کے closing braces یا last statement کے بعد سے execution continue کرے گی سو we said that the while loop executes zero or more times what happens if you want the loop to execute at least one time now there are many situations تھوڑا سمح کوئی example contrive کر لیتے ہیں ہم ایک example کی بات کرتے ہیں کہ جی suppose ہم نے ایک guessing game لکنی ہے guessing game میں ہم کیا کرنا چاہ رہے ہیں ہم کہتے ہیں جی چلیں computer کوئی letter let's say keyboard پیسے نا as is z تک لے لیتے ہیں کہ جی کوئی letter computer کو کچھ پتا ہے اور آپ نے guess کرنا ہے ہم کہتے ہیں چلیں 5 tries آپ try کریں اور 5 tries میں آپ guess کریں کہ computer نے اپنے پاس کنسا letter چھپایا ہوا ہے اب اس problem کو اگر آپ دیکھیں کہ کم اس کم ایک try تو ہونی ہے نا the first try may be the correct one and the program should say کہ جی well done you've gotten the correct answer but you have to make at least one try now that is the situation and the loop کتنی دفعہ چلے گی ہم نے کہا جی 5 tries ہوں گی maximum so maximum loop جو ہے وہ 5 دفعہ چلے گی لیکن کم اس کم اس نے 1 دفعہ چلنا ہے تو کیا ہمارے پاس کوئی or structure ہے جو یہ guarantee کر دے کہ جی doop کی جو body کی statements ہیں وہ کم اس کم 1 دفعہ چل سکیں so c c++ in languages میں the next construct is do while so اگر آپ صرف نام کو ہی دیکھیں while loop کی ہم نے کیا کہا تھا کہ جی while some condition is true do these statements so the condition was tested on top first the condition was tested in this case we said do these things while this condition is true which means do کے بعد جو statements آ رہی ہیں وہ 1 دفعہ تو execute ہوں گی اس کے بعد جاکے while کی جو condition ہے اس کا test کی باری آئے گی which means a do while loop executes at least once اس کو ہم کہتے ہیں کہ جی a do while loop executes one or more times let's take a look at the syntax of the do while loop do while loop لکھتے وقت ہم اوپر لکھتے ہیں do اور اس کے بعد opening curly brace آ جاتا ہے اور curly brace کے بعد اس کی body کی statement آ جاتی ہیں جو ہم چاہتے ہیں کہ جی loop کے اندر execute ہوں اور پھر closing curly brace کے بعد ہم لکھتے ہیں while اور while کے بعد لکھتے ہیں parentheses کھولتے ہیں اور اس کے اندر condition لکھتے ہیں پھر parentheses بند کرتے ہیں اور سیمیکوالن کو اسی تلووں کو سکتے ہیں now the way it works again i will repeat the condition can be a simple condition while i is less than 10 اور it can be a compound condition while a is less than b and d is greater than f or something like that کوئی بھی compound condition ہو سکتی ہے تو کیونہ ہم اپنا جو problem ہم نے pose کیا تھا a guessing game بالا اس کو صرا code کر کے دیکھتے ہیں کہ وہ کیسے ہوگا گیسنگیم کے اندر ہم نے کمپیوٹر کو پرگرم کے اندر ہی بتا دیا کہ جی کونسا کاریکٹر ہے جو کہیوزر گیس کرے گا اس کے بعد ہم نے یہ بھی بتا دیا کہ جی پانچ ٹرائیز ہوں گی لیکن آپ کو کونٹر چاہیے یا ایک ویریابل چاہیے جس میں کتنی ٹرائیز ہو چکی ہیں وہ سٹور ہو رہی ہوں ویریابل جو ہم دیکلیر کر رہے ہیں پہلے ہم ایک کاریکٹر دیکلیر کرتے ہیں تو وہ ہوگا چار C-H-A-R پھر سپیس چھوڑ کے C-semi-colon یہ ایک کاریکٹر ویریابل ہے اس کے اندر ایک کاریکٹر سٹور ہو سکتا ہے کاریکٹر کیا چیز ہے وہی آپ کے کیبوٹ کے جتنے بٹنس ہیں ہر بٹن other than the non-typing keys they represent one character so a, b, c, d each one of them is one character the one, two, three numbers جو ہیں as digits they are also representing one character a comma, semi-colon, greater than sign, question mark these are all characters ان کاریکٹر کو سٹور کرنے کیلئے ہم نے یہ ویریابل دیفائن کر دیا C ساتھ ہم نے دوسہ ویریابل دیفائن کرنا ہے جس کے اندر ہم number of tries کو سٹور کریں گے اس کے لیے ہم کہتے ہیں int trinum so obviously integers is a logical choice for this type of variable because you can't have one and a half tries it's going to be a whole number so might as well use an integer variable trinum آگیا آگے ہم نے let's say internally code کر لیا ہے کہ جی ہم جوزہ سے کہیں گے کہ جی z دبایا تو وہ صحیح آنسر ہوگا کوئی اور دبایا تو غلت ہوگا اب ہم loop شروع کرتے ہیں ہم کہتے ہیں do then curly braces اور اس کے بعد سب سے پہلے as usual give the user a prompt tell the user what you expect from him so we have a see out statement saying please enter your guess by pressing a character key from a to z ایک explanatory prompt آگیا اس کے بعد ہم اس کی key stroke کو پرنا چاہتے ہیں تو اس کے لیے پرنے کا کونسا ہمارے پاس function ہے ہمارے پاس see in ہے so we have see in greater than greater than see اب یہ see جو ہے یہ وہ character variable ہے جس میں وہ key stroke جو user دبایا گا وہ store ہوگی تو اب یہ do کے اندر آرہا ہے کہ ایک دفاہ ہم نے prompt دیا اور پھر اس نے جو بھی character input کیا وہ see کے اندر store ہوگیا next step اب اس کو compared کرنا ہے کہ internally ہم نے decided کہ z جو ہے وہ correct answer ہوگا تو کیا اس نے z دبایا یا کوئی اور دبایا ہے so یہاں پہ ایک if statement لگی گی so we say if see the variable see double equal to which is the comparison operator and the equality comparison if see double equal to single quotation mark z single quotation mark closed اب یہ دیکھیں ایک character constant کی representation کا طریقہ ہے یہ ہے single quotes کی اندر ایک character لکھ دینہ جو ہے وہ ایک character گنا جاتا ہے دیکھیں اس کو میں am differentiating it from a character string which was represented by being enclosed in double quotation marks so single quotes enclose a single character اس کے اندر دو characters لکھنا جو ہے وہ ایک syntax error ہوگا so our if statement جو ہے وہ read کرتی ہے کہ جی if see is equal to single quotes z single quote end parenthesis اب آگے پھر وہ style والا issue آجاتا ہے اگر تو ایک statement issue کرنی ہے تو آپ بغیر braces کی کرنے لیکن I would strongly recommend کہ آپ braces تمال کر لیا جو کریں زیادہ braces سے غلطی کوئی نہیں ہوتی لیکن quote کی clarity بڑتی جاتی ہے تو if کے بعد ہم نے braces پھر کھول دیے اب نیچے آپ یا تو user کو congratulate کریں کہ جی اس نے اگر z دبایا ہے صحیح آنسر دیا ہے so you say see out congratulations you've guessed the correct answer ابی میں صرف code پڑتا جا رہا ہوں کیوں کہ logic کی طرف ابھی نہیں ہم آئے question جی ہے کہ جی اس کے بعد کیا کیا جی اس نے تو answer guess کر لیا تو کسی طریقے سے آپ نے loop سے بہر نکلنا ہے لیکن ابھی ہم اگر آپ کے پاس code آپ handouts میں دیکھ لیں آپ کو پتہ چلے گا جی یہ loop کی condition کیا ہے for the moment ہم ابھی یہاں کچھ نہیں کہتے ہم کہتے ہیں کہ جی else کے اندر کیا کرنے آیا تو اس نے صحیح جواب دے دیا اور یہاں اس نے صحیح جواب نہیں دیا تو else میں اور کچھ نہیں کرنا اور ہم کہتے ہیں یا else کے اندر number of tries کو increment کر دیتے ہیں so we say try number equal to try num plus one end of braces for the if statement and then end of braces for the do loop جس کے بعد اب لکھیں گے while اور parentheses کے اندر ہم لکھ رہے ہیں try num is less than equal to five یہاں پہ اب جو دیکھنے والی چیز ہے وہ یہ کہ یہ اوپر ہم نے try num میں نے mention نہیں کیا تھا اس کو initialize ہم نے کرنا ہے as one so we initialize it to one ہر دفعہ loop میں سے گزرے جب بھی آپ نے غلط گیس کیا اس نے try num کو ایک سے increment کر دیا پانچ دفعہ اگر آپ گیس نہیں کر سکے تو loop ختم ہو جائے گی وہ بہر آجائے گا یہاں example تو ہم بات کر رہے ہیں یہاں do while کے لیے جس کے اندر کم از کم ایک دفعہ گیس کرنا لازمی ہے تو اب اگر اس کو پھر سے اوپر دیکھیں گے جی اگر گیس جو ہے وہ صحیح ہو گیا تو loop سے نکلنک ایسے now you have to look at the loop condition and you say well the loop condition says while try num is less than or equal to five if we want to exit if we make try num greater than five inside the loop تو جب condition test ہوگی وہ fail ہو جائے گی which means loop will terminate so the best thing in this case we will see more efficient ways of doing it later but in this case if we say something like if c equals within single quotes z which means the correct answer we give the user a prompt saying c out congratulations you have made the correct guess and we set the loop counter which in this case is try num to a value that will violate the while condition so we say try num equal to six جب وہ six کر دیا else execute نہیں ہوگا while پہ جب آئے گا تو اس پہ لکھا ہوگا try num less than equal to five that condition will return false because try num is no longer less than or equal to five the loop will terminate آپ loop سے باہر آجائیں گے so یہ ایک چھوٹا سمینہ آپ کو ایک سامپل دیا very contrived کیجی do while which means a loop where we want execution to happen at least once in the loop body اب اسی کا اگر ہم flow chart بنانا چاہیں تو اس کی شکل کیا ہوگی اس کو درہ دیکھ لیتے ہیں do while loop کا flow chart وہ while loop سے similar بنے گا لیکن جو اس کا ٹیست ہے وہ process کے بعد آئے گا اگر آپ تصویر کو دیکھیں آپ کے ہندوٹس میں بھی آپ کے پاس ہے ہم اوپر جو ریکٹانگل ہے اوپر سے ہم لائن لائے ریکٹانگل کے اندر لکھا do-while this is to differentiate کیس کسم کی loop چال رہی ہے ہم نے do while لکھ دیا do while سے ہم نے right کو line نکالی the first level of indentation remember while loop ہے تو اس کے braces میں بھی ہم indent کریں گے اور پھر نیچے لاکے ہم نے پہلے processing block لکھا یعنی وہی ریکٹانگل بنائے جس کے اندر جو بھی چیز ہم loop کے اندر execute کرنا چاہتے ہیں وہ اس ریکٹانگل کے اندر لکھتے ہیں اس سے آگے نکلیں تو یہاں پہ loop condition آتی ہے which means diamond لگے گا or diamond کے اندر condition لکھی جائے گی in this case we would have written try num less than equal to 5 question mark اور normally جب بھی a diamond لگتا ہے تو ایک line وہ تو true کی condition نیچے کو نکال کے ہم line اوپر ملا دیتے ہیں تو یہ loop indicate کر دیتی ہے and for our convenience we normally indicate to the right hand side of the diamond saying no which means the condition is no longer true اور وہاں ہم صرف لکھ دیتے ہیں exit اس چیز کا خیال رکھنا important ہے کہ exit کہاں ہوری ہے exit جو اوپر سے line آئی تھی اور do while کے rectangle میں گئی تھی اس سے نیچے کو line نکال رہے ہے that is the exit point this is very important to remember this is true for the while construct it is true for the do while construct اور if statement کبھی اگر آپ کو flow chart یا تھے تو اس کے اندر بھی ہم کیا کر رہے تھے اوپر سے line لاتے تھے اور وہی سیدی نیچے جاتی تھی any if block کے اندر بھی there was single entry and single exit as you might have noticed I said this in a special manner and there was a reason behind it these are words you will hear again and again as we go along into structured programming ہم نے program تو لکھ لیا لیکن اس کے اندر ایک construct تھی جس کا کوئی خاص مزا نہیں آیا وہ construct تھی loop سے باہر نکلنے کا طریقہ یعنی کہ جب user نے correct guess کر لیا تو اس وقت ہم loop سے باہر کیا نکلنے بڑا ایک artificial کسم کی چیز لکتی لکھتی کہ جی while condition کو دیکھ لیں condition کہہ رہی ہے trynum less than equal to 5 تو trynum کی value بدلنے اسے ہم بہر نکل جائیں گے اس سے زیادہ elegant طریقہ ہے by using relational operators کیوں نا ہم loop کی جو test condition ہے اسی کے اندر دال دیں کہ جی user نے اگر صحیح جب آپ دیا ہے تب بھی loop سے نکل جاو so let me give you the one line for let's say a while loop جس کے اندر یہ test built in ہوگا along with the number of tries اب suppose کریں کہ جی ہم کرتے یہ ہے کہ جی ایک نیا variable introduce کر لیتے ہیں max tries اور کہ دیتیں کہ جی max tries جو ہے وہ 5 ہوگا اور trynum جو ہے وہ ایک variable ہوگا جس کے اندر ہم increment کرتے جائیں گے جتنی دفعہ بھی user نے guess کیا کہ جی computer نے کسا character رکھا ہوئے تو اس کے اندر initialization کی اندر تو آجائے گا something like trynum equal to 1 اور max tries equal to 5 اس کے بعد you might want کہ جی پہلے guess بہر لیلو so you have seen greater than greater than and then into the character character variable called see اور پھر loop جو ہے اس کی condition that's the important one we say while trynum is less than equal to max tries and اب یہ and یاد ہے آپ کو اس کا so and see وہ ویریبل جو user نے guess کیا is not equal to so not equal to operator exclamation mark equal to اور پھر جو بھی ہم نے اس میں guess ڈالنا تھا اس لی example میں ہم نے z ڈ رکھاوا تھا یہاں پہ بھی چلنے z ڈ رکھ لیتے تو single quotes کے اندر z اب while کی condition ہے condition لہاں لگا ہوئے آپ کنڈشن کو اگر آپ پڑیں اور اس کو سمجھیں تو it's obvious کہ یا تو number of tries وہ max tries سے بڑھ گیا تو loop exit ہو جائے گی یا user نے اگر correct guess کر لیا تو loop ختم ہو جائے گی اور پھر loop کی اندر ہم پڑتے جاتے ہیں characters اور tries کو increment کرتے جاتے ہیں یہ code آپ کے پاس ہونا چاہیے handouts کی اندر so there are many ways of constructing a loop elegance جو ہے وہ over a period of time آپ کے ساتھ یا آپ develop کریں گے اور یہ بھی decision آپ عاستہ عاستہ develop کریں گے یہ جی کنڈسی loop استعمال کرنے ہیں ابھی آپ کے پاس 2 ہیں in your toolkit ایک ہے while loop اور ایک ہے do while loop c کے اندر ایک تیسری قسم کی loop بھی ہے وہ ہے for loop for loop میں جانے سے پہلے پہلے تطرح دیکھا جائے کہ جی loop میں ہم کرتے ہیں ابھی تک کیا کرتے ہیں I hope آپ اپنے طور پہ بہت سارے example کر رہے ہوں گے don't just wait for the lecture ان سے کہ جی lecture کی اندر جو کر دیا تو وہ زیزہ بر دیکھ لیا اور اپنے طور پہ کام نہ کیا there are excellent and very comprehensive examples in the book and I would strongly urge you کہ جی ان کے اندر سے بھی آپ پرکٹس کریں اور اپنے examples بھی گھڑیں I mean you can pose problems for your class fellows تیک ہے نا اپنے ساتھیوں کے لیے آپ problem pose کریں وہ solve کریں وہ pose کریں آپ solve کریں that is the requirement بہت سے سبجیکٹ آرہا ہے نا لوپس میں ہم کرتے کیا آپ نے دیکھا ہو گا کہ ہمائیشہ کوئی نہ کوئی چیز پہلے انشالائیز کر رہے ہوتے ہیں اس کے بعد ایک ہم نے کوئی termination کیلیے condition ڈیوائز کرنے ہیں کہ جی لوپ ختم کب ہوگی اور پھر لوپ کو ختم کرنے کے لیے اس condition کو effect بھی کرتے ہیں لوپ کی body کی اندر کہ جی کوئی variable ہے جس کو test کیا جا رہا ہے تو لوپ کے اندر چونکہ اتھوئیس تو انفینٹ لوپ بن جائے گی سو ہمیشہ دیرز an initialization دیرز a termination test اور دیرز some kind of usually incrementing condition now there are many other possibilities but this is very common اس کے لیے سی نے for loopی آپ کو provide کی ہوئی ہے or for loop کا syntax وہ آپ کے hendouts میں بھی ہے it's very simple it is for پر انتصیز دال کے آپ کہتے ہیں initialization condition پھر semi colon اس کے بعد آپ کے پاس termination condition آتی ہے کب لوپ ختم ہوگی پھر semi colon اس کے بعد usually ہم کوئی incrementing condition دال دیتے ہیں کہ لوپ کا next چکر وہ کس طرح increment کر کے چلے گا parenthesis close کرتے ہیں یہ for کی statement ہوئی اس کے بعد پھر optional in the case that the for loop only has one statement in its body if it has more than one statement the braces are required braces کھولیں اندر ایک یا اس سے زیادہ یا ہزاروں statements لکھیں ہزاروں نہ لکھئے گا we want to keep every module very small اور پھر braces بند کر دیں یہ ایک for loop کی body بنتی ہے for loop کا structure اور اس کی usage اتنی کومن ہے that you may find that this is the most often used loop construct جو آپ خود اپنے پروگرم میں استعمال کر رہے ہوں گے ایک example کے لیے یہ two line باکی سب تمہید بگیرہ بعد میں دیکھ لیں آپ کے پاس لکھی ہوئی بھی ہے لیکن ایک simple اگر لیلیں کہ جی for let's say counter is an integer variable so we say for counter equal to zero semi colon counter less than 10 semi colon counter equals counter plus 1 parenthesis is closed next line see out less than less than counter semi colon صرف ان دو لائنوں کو چلائیں گے تو you will notice کہ counter you have 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 تک گنے گا so you have a full loop which is very nice کہ جی اسی کے اندر آپ نے initialization بھی کی آپ نے termination condition بھی بتا دی in this case counter less than 10 جیتی دیر counter کی value وہ دس سے کم ہے اتی دیتا کہ لوپ چلے گی جیسے ہی بڑھ گئی لوپ سے آپ بہار آجائیں گے لیکن counter کی value کہ ہم بدل رہی ہے وہ جو آخری clause ہے which is counter equals counter plus 1 one thing is critical یہ syntax کی بات ہے so you have the book as a reference جو آخری حصہ ہے for loop کا which is the incrementing condition وہاں پر semi colon ہم نہیں دالتے there are only two semi colon within the parenthesis following the for statement let's see کہ for کے ساتھ سیمپل سا example بناتے ہیں اور دیکھتے ہیں کہ یہ کتنی conveniently کتنا کچھ ہمارے لئے کر دیتی ہے suppose ہم table print کرنا چاہتے ہیں tables یادیں پہاڑے دو کا پہاڑا لکھنا چاہتے ہیں so what we want is two multiplied by one equals two two multiplied by two equals four and so on چلے دستہ کرتے ہیں computer تو جہاں تاکہ آپ لے جانا چاہنے لے جائے گا so two multiplied by ten equal to twenty will be our last line so two ہم نے fix کر دیا problem کو ذرا سا analyze کرتے ہیں کیجی کیسے چلے گا what you would want is for you would want to run a counter from one to ten and اگر اس کا variable loop کا variable وہی ہم لکھ لیتے ہیں let's say counter نام رکھ لیتے ہیں اس کا so every time through loop آپ پرنٹ کیا کرنا چاہتے ہیں two times counter اور ساتھ اس کے انگریزی کیجی two multiplied by value of the counter let's say one equals two اس طرح آپ لکھنا چاہتے ہیں so the program is very simple I have streaminclude کر لی main کر لیا opening braces آگے اس کے اندر آپ نے variables کچھ declare کرنے ہیں in this case the only variable you need to declare is counter and that will be of type int so we say int counter semi colon اس کے بعد straight off you can go to the for loop so we say for counter equals one semi colon counter less than equal to ten semi colon counter equals counter plus one parentheses closed braces open ابھی a for loop کی body آرہی ہے now for loop کی body کی اندر دیکھیں ایک میں ایک ہی لین پہ سارہ کچھ لکھتی ہے see out کے ساتھ سب کچھی لکھتی ہے so we wrote see out less than less than اب double quotation marks میں ہم نے لکھا two پھر x short for multiply پھر double quotation marks closed یہ تو ہو گئی character string یہ جیسے آپ نے لکھی ہے ویسے ہی screen کے اوپر appear کرے گی پھر less than less than اب یہاں پہ ہم لکھنا چاہتے ہیں جیسے two times one یا two times two یا two times three تو وہ value آرہی ہے counter variable سے so this double less than sign کے بعد آپ لکھیں گے counter تو جو بھی counter کی value ہوگی وہ وہاں پہ پرنٹ ہو جائے گی and let's continue so we say less than less than پھر double quotation marks میں ہم لکھیں equal to پھر less than less than اب آپ نے value لکھنی ہے کس چیز کی two multiplied by counter so just write it like that you know what the symbol for multiplication is it's the asterisk the star so you write two star counter and to make sure کہ جی لین ختم ہو جائے تو ہم new line character بھی دال دیتے ہیں تو پھر ہم دال دیتے ہیں less than less than double quotation marks backslash in double quotes semi colon یہ ایک c out کی لنبی c line ہے جب یہ چلے گا تو یہ لکھا ہوگا two multiplied by one equals two two multiplied by two equals four اور ہر دفعہ ایک new line which means نئی لین سے کام شروع ہو رہا ہوگا یہ لکھتے اس کے بعد actually تو کام ہی ختم ہو گیا کیونکہ اس میں اور کوئی چیز increment کرنے والی نہیں ہے for loop نے خود ہی counter کو counter plus one کر دیا ہے that's it closing braces ڈالیں program کو compile کریں چلائیں you will notice you've got a table لکھا گیا اسی program کا اب اگر flow chart کی طرف اور کریں کیسے بنے گا while loop یا for loop ان کا flow chart تقریبا ایک طرح سے ہی بن جاتا ہے آپ اس کو جس طرح مرزی بنائیں دیکھیں ہم جب flow chart بنارے ہوتے ہیں اس کے اندر that is like a programming aid it is not the program which means کوئی لازمی نہیں ہے کہ for loop میں لائے دا سکھ جانا ہے ہی بی انہوں کو ہی بی پر ہم تقریبا ایک طرح سے یہاں ہم 조심 کرنا چاہتا ہے ہم ایک طرح سے ہی بی بی ہم سے ہم ت القریبا ہم کہا آپ کو ایک طرح اور ہم سی کسی جو دی ہے بہت جانا ہے آپ کسی ہاں اس کے بعد آپ نے پرونی برہتا ہے ہمیں جلسا ہے کنوی پوزیڈ کمکڈر اور لپ کمکڈر دی۔ اینتیں ختم begepہدی دی۔ وہ جو بلکی حنکر تابعی کے بارے لوگ انہی دل کی طرح۔ اپنی بچنڈ جانا کہ ابھی ہمارہا غیری بارسٹی ہیں، ہم بارہ بہلی لوگ انہی بارسٹی ہے، پھر دیکھتے ہیں ایک فلو چارٹ کیا بنوئیں؟ یہ ایسا سائیز میں عبر بار بار و رپیٹ راتا ہوں، کامٹی برسطہ جاتے ہیں، لکھاتے ہیں کہ یہ خول کیا کہ آپ اطلاق دقاؤٹ دیکھیں اور آپ problematic ہے جو آپ احسان پر وکن گا تو خول کو شرطہ کیا تو آپ کا خول کے پیسز اڈئنٹفائی ہو جائیں گے اور آپ کو پتہ ہوگا یہ بلک یہاں لکھا گیا تھا جو میں میں آپ کنگ کسی بلک بھی ہے تھی کنم میں بھی performance ڈا موہی ہو خواہی کریں cái لے کے ساتھ میں کسی بلک ہوتا ہے اسی پروبرم کو لیکے تھوڑا سا پرانے جو پرنسپل آج داک ہم نے بات کی ہے جن کی ان کو تھوڑا سا اپلائے کرتے ہیں دیکھیں ایک سیمپل ہم نے نا ٹیبلز کا پروگرام لکھا یہ ٹو کا ٹیبل پرنٹ کرتا ہے سکرین کے اوپر اس جو میں نے کہا تھا کہ دی میں تنگ بہت کرتا ہوں تو میں کہتا ہوں کہ very good ادھری کا ٹیبل لکھو یا ٹو کا ٹیبل لکھو اور سو on what would you do every time you would have to go back to the program make the changes جہاں پہ بھی آپ نے quote marks کے اندر بھی 2x لکھا تھا اس کو بھی بدلیں گے جہاں پہ آپ نے 2 times counter لکھا تھا اس کو بھی بدلیں گے and you would hope that you made all the changes جہاں جہاں 2 آیا ہے غلطی سے کوئی اور 2 جو لکھا ہو program logic کا حصہ ہو سکتے اس کو آپ نہیں بدلنا چاہتے so there are issues so one should always think reuse چاہتے ہیں نا one should think in terms of reuse when you're designing the program so let's go back and think کہ جی اس پتکلے program میں which is writing the table of a number اس کے اندر کیا کیا reuse کی طرف ہم جا سکتے ہیں کتنا اس کو generalize کیا جا سکتا ہے ایک تو obvious چیز ہے کہ جی ٹو کا ٹیبل نہیں چاہی ہے مجھے ٹو کا ٹیبل چاہی ہے so just number کا ٹیبل ہم بنانا چاہ رہے ہیں وہ بھی user input کی طرف لے جائے جائے دوسی چیز کوئی اور خیال آتا ہے سپوز کہ ہم کہتے ہیں کہ جی آپ ہمیشہ ٹو ٹین ہی لکھتے ہیں ٹیبل شروع تو ہم one سے ہی کریں گے what if I want the table from one to twelve so two times ten پے ختم نہ ہو two times twelve پے جا کے ختم ہو so those would be two good additions to this programmer two good modifications to do this what do we do very simple just declare the variables that are needed obtain input from the user according to the new variables and then execute the program so if we would have written from the start then this program would have become something like this we would have defined a variable which number کا ٹیبل بنانے so int number after that we would have given another variable کہ جی ٹیبل کہاں تک بنانے we would have started from one let's do this now when you write for loop these are the things remember we declared the counter before now we will do it so we will write in the for loop for counter equals one semi colon counter less than or equal to max multiplier semi colon counter equals counter plus one so in the for statement we will do this modification after that we will put braces not put up to you because a single line is coming so see out we have already written in double quotation marks two multiplied by now with this modification two is not constant that can change while walking I am sorry we have to take the value of two from the user so before the for loop we are saying کہ کسی نمبر کا تیبل بنانا ہے so as usual being polite we should have a see out statement seeing see out please enter the number for which you wish to construct the table and then you say see in greater than greater than number so number کی value آپ for loop سے پہلے لے لیں گے اب جب for loop کیندر داخل ہوئے counter equal to one counter less than equal to max multiplier counter equals counter plus one see out کیندر two x نہیں لکھیں گے دبل کوٹس کے اندر آپ لکھیں گے see out less than less than number اب number کی value یہاں پرنٹ ہو جائے گی پھر less than less than double quotation marks کے اندر آپ کہیں گے x short for multiplied by اور پھر less than less than کا باقی تقریبا ہی رہے گا counter پھر less than less than equals اب two times counter نہیں آئے گا وہ ہوگا number times counter اور پھر new line character اب یہ ایک آپ کا program یہ جنارک بن گیا ہے آپ پہلے آپ بتائیں گے جی کس number کا تیبل بنانا ہے اور پھر بتائیں کتنا لمبر تیبل بنانا ہے بارہ پے رکنا ہے سولہ پے رکنا ہے ایک ہزار پے رکنا ہے of course screen سے اوتر جائے گا the lines will scroll off the screen but you can do it now it is very very general so model of the story always think reuse always think how can this program be made more general so that اگر مجھے اس کا کوئی اور کام اس سے لینا پڑے تو مجھے کھول کے code modification کے اندرنا جالا پڑے اس کے ساتھ ایک اور ٹیپ دیتا چلوں suppose یہ تو ہمارے contrived examples ہے نا اس course کے لیے the other area what one can do is sometimes we can't do this sometimes we can't give the user a prompt کہ جی یہ number ڈالو اور یہ ڈالو we still want کہ program self-contained ہوں ہم compile کریں execute کریں وہ چلے اور ہمیں جباب دے دے اور user input نہ بولے رہا ہو لیکن کچھ بیچ میں constants ہم ڈال رہے ہوتے then as a matter of programming style it is better to bring them up near the top of the program and group them together so they are very very visible اس کے بعد constants بزاتے خود آپ کسی calculation میں استعمال نہ کریں جہاں تک ممکن ہے these are guidelines these are not hard and fast rules وجہ اس کی کہ جی وہی بات کہ اگر 2 کا table لکھنا ہے تو جہاں پہ ہم نے 2 times counter لکھ رہے تھے ہر loop کے اندر پھر وہ دھوننا پڑے گا اس کو modify کرنے کے لیے اگر ہم پہلے اگزامپل میں بھی اس طرح کر لیتے تھے اوپر ایک variable define کر لیتے int number اور پھر number equal to لکھ دے تھے اور نیچے loop کے اندر لکھ رہا ہوتے c out کے ساتھ number times counter تو زندگی اسان اس پاستے ہوتی آپ کو اس چیز سے فکر نہیں ہے کہ جی نیچے کوئی اور بدلنے والی جگہ تو نہیں رہے گی ایک جگہ جاکے number equal to کی بجائے number equals 3 کر دیں آپ کو پتا ہے کہ جی آگے number جو variable ہے وہ استعمال ہوا بہت program میں تو it's a programming guideline that you should try never to use explicit constants in your calculations or in a longish routine کیونکہ بعد میں کبھی ان کو modify کرنا پڑے تو بڑا مشکل ہو جاتے کوئی نہ کوئی رہ جاتا ہے usually syntax error اس کی وجہ سے نہیں آتا لیکن logical error which means not just bad logic it simply means you're not getting the result that you want it اس طرح کی چیزیں ہونے لگبرتی so we don't want them to happen that's just a programming guideline اب ہم بات کرتے ہیں جو constructs ہم دیکھتے آئے ہیں اور بار بار لکھتے جا رہے ہیں کیا ان کے لیے کوئی آسان طریقہ ہے کہ نہیں دیکھیں ہم نے while loop جب شروع کی تھی ہم نے number equal to number plus one num equal to num plus one try num equals to try num plus one for loop میں آئے ہیں counter equal to counter plus one یہ لکھنا شروع ہو گئے I think even right from the beginning first lecture or maybe the second lecture میں نے یہ mention کیا تھا کہ یہ اتنا کومن construct ہے کہ ہم بار بار اس کو لکھ رہے ہیں so you should know it and you should understand what it means because C language own programmers نے ہی لکھی تھی ان کو بھی پتا تھا کہ یہ ہی ہوتا ہے اس کے لیے انہوں نے ایک special operator ہی بنا دیا کہ یہ کام اتنا کومن ہے کہ انہوں نے ایک increment operator بنا دیا this incrementing operator is written plus plus دو plus signs کٹھے so if you say counter plus plus it is the same as counter equals counter plus one it's an interesting shorthand یہ بھی آپ تین چار دفعہ لکھیں گے تو اس کے بعد یہ جیسے کہتے ہیں without a thought آپ استعمال کر رہیں گے for loop for counter equal to zero counter less than ten counter plus plus meaning counter equals counter plus one ایک حال رہے یہ ایک نیا اپریٹر ہے جو کہ counter یا variable جو بھی تھا اپریٹر کر رہے اس کی value بدلتا ہے none of the operators we have dealt with so far changes the value of the variable when you say x is equal to a plus b تو plus جو ہے وہ نہ a کی value بدلتا ہے نہ b کی value بدلتا ہے the only operator that was changing the value was the assignment operator کہ x کی value بدل رہی تھی اب یہ ایک نیا اپریٹر آیا when we say i plus plus کہتا ہے i is equal to i plus one so it is assignment plus addition so it does change the value of the variable ابھی ہم اس بات پہ نہیں جائیں گے کہ یہ پہلے ہوگا یا بعد میں ہوگا پر آپ کو یہ important یہ چیز important ہے کہ آپ کو یاد رہے کہ یہ operator variable کی value بدلتا ہے بالکل اسی کے ساتھ کا ایک decrement operator بھی ہے let's say minus minus وہ variable کی value ایک سے کم کر جاتا ہے so it is counter minus minus will be read as counter equals counter minus one reduce the value of counter by one these are so common in programming especially when we are working with loops that this was a useful short hand to be included in the language so we have two new operators the increment operator plus plus and the decrement operator minus minus let's try to apply this little piece of new information to the way we have been writing things and also I would like to reiterate a simple counting exercise کیونکہ سی جو ہے اس میں آپ کتابوں میں بھی دیکھیں گے بڑا commonly loops لکھی ہوئی ہیں تو آپ گبرانا جائیں گے یہ zero سے کیوں ہمیشہ شروع کرتے ہیں چلیں ایک question پوچھ لیتے ہیں پہلے zero سے لے کے nine تک کتنے distinct numbers ہیں کسی جانتے ہیں کسی جانتے ہیں جانتے ہیں because it is ten different numbers کسی جانتے ہیں start thinking again because zero one two three four five six seven eight nine ten nine تک there are ten different numbers whenever we start counting from zero we always add at one less than the target ہم نے نمبر of tries ڈرائیز کیا تھا ہم نے کہا تھا do while trannum less than or equal to five اور اوپر شروع کیا تھا trannum equal to one سے جب ہم four loop میں جاتے ہیں ہم نے پہلی دفعہ four loop لکھا تھا for counter equal to one counter less than or equal to ten ہم بھی writing one سے شروع کر رہے ہیں and less than or equal to پہ ختم کر رہے ہیں most of the time جب آپ سی کوڈ دیکھیں گے آپ سی پلس پلس کوڈ دیکھیں گے آپ دیکھیں گے کہ آپ آثر لکھ رہے ہیں for counter equal to zero counter less than ten so programmers think in different ways I am not saying which is right I mean feel use whatever you think is more natural in the case of writing a table جو کہ multipliers دکھا رہے ایک سے لیکے دس تک it is more natural to use something like counter equal to one ایک سے لیکے counter less than or equal to ten لیکن اگر counter کی value ہم نے استمال نہیں کرنی اور simply گنتی کرنی ہے یا loop کو چلانا ہے ten times then it is equally valid to say for counter equal to zero counter less than ten increment counter وہ بھی دس دفعہ ہی گنے گا so وہ آپ less than versus less than or equal to or اس طرف zero versus one اس کا خیال رکھی گا and finally as I said ہم انکریمنٹ دال رہا ہوتے ہیں تو وہاں پہ یعنی will find something like counter plus plus which means counter equals counter plus one but the plus plus operator the increment operator is not limited to being used in the for loop یہاں پہ بھی آتنے کسی چیز کو increment کرنا ہے by one you can just use this shorthand so i plus plus j plus plus age plus plus or whatever is needed whenever you want to say something like age equals age plus one you say age plus plus and keep in mind that the operator affects the value of the variable itself so the variable will be updated and same applies to the decrement operator minus minus so we have a special operator جو کہ ایک سے انکریمنٹ کرنا ہو یا ایک سے decrement کرنا ہو وہاں پہ تو چل جاتا ہے but is this the only time that we need to increment numbers or is this the only way کئی دفاہ آپ کے پاس آئے گا number equals number plus five بار بار آپ نے کر رہے ہونے یہ نہیں adding a constant to a variable is very common or for that matter ایک ویریبرل کند دوسرے ویریبرل کو add کرنا یا subtract کرنا these are common constructs اس کے لیے we do have special operators and these special operators انہوں سے انہوں سے انکریمنٹ کرنا جو دو کام ایک سے کر رہے ہوتے let's take the first one the first operator let's say is plus equal to so if we say something like counter plus equal to three semicolon it will be read as counter is equal to counter plus three so again it's a good shorthand کہ counter equals counter plus three we just say counter plus equals three اگر یہ plus کے لیے لکھا جا سکتا ہے تو کیا باکی operators کے لیے لکھا جا سکتا ہے answer is absolutely so we also have a minus equal to so if we write something like counter minus equals five semicolon it would be read as counter equals counter minus five multiplication sure if we say x star equals two remember the left hand side has to be a variable so x star equals two would mean x equals x multiplied by two so these are nice shorthands x slash equals two would mean x equals x divided by two remember what are they doing they are doing a computation and they are doing an assignment so these are compound assignment operators so remember that these are compound assignment any assignment variable کی value بھی بدل رہی ہے so plus minus multiplied divide four operators کے ساتھ ہم compound assignment بھی کر سکتے ہیں simply by writing the operator x is equal to sign ور اس کے اندر کوئی سپیس نہیں چھوڑنی پر ایک ریگ یہ ہے آپ پوچھ رہے ہوں گے کیا about the mod operator percentage sign remainder جو دیتا تھا absolutely وہ modular operator بھی چلتا ہے you can say x percent equals two ہم ذرہ سوچنے یہ کیا کرے گا کیا خیال ہے آپ کا it will do the modulo so it will do x percent two اس کا جواب کیا آتا ہے it is the remainder after x has been divided by two so x percent equals two will take the remainder and assign it to x باقی زرا سے سیدہ سا دے تھے x star equals two means x equals x multiplied by two syntax is exactly identical x percent equals two means x equal to x modulo two so effect بالکل وہی ہے لیکن remainder جا رہا ہے x میں اس کا خیال رکھیے گا these short hands are there but it is not necessary that you use them we have already covered three different types of loops while loop do while loop for loop it is not necessary that you must always use religiously a loop or religiously a long program has come so you have to use three loops that is a question in terms of the problem demand and your programming style so same thing applies to all these assignment operators also the increment and decrement operators whether you choose to use them or not is up to you because I have told you every alternative because I have told you increment you can always write number equals number plus one it is just that it has become a common short hand in c and c plus plus programming that you will normally write number plus plus rest compound assignment وہ is more a matter of style well people do use them most of the time but if the modulo operator is I would like to state it very explicitly I would like to write x equals x mod two x percentage two so that it becomes clear that the remainder is being assigned code should be self obvious as far as possible i.e. x, i, j, k probably are bad names for variables you want to use variable names that are self explanatory what have we used in today's lecture try num number of tries make sense a little bit but you understand something it is a variable called counter it is a loop counter یہ گنتہ ہے کتی دفعہ loop چلی ہے we have used a variable called c but that was not a nice name maybe we should have called that variable guess so we would have said char guess that would have been a better style in terms of using an explanatory or a self explanatory variable name so there are several guidelines for code programming because this is your benefit when you will read your code it will be understood quickly what I am repeating from the beginning you have to put in the comments today we will talk about some comments after that we will conclude today's talk in the comments one important thing before the program starts you write what this program does so you should always write a comment right near the top saying what does this program do after that again I mentioned earlier don't write comments for the sake of writing comments write comments that mean something now if we go to the guessing game code so your comment before the loop should be something like ask the user to enter a character and let him make up to 5 guesses یہ نہیں لکھیں کہ جی ہم loop لکھ رہے ہیں I mean writing it in a comment that okay loop follows that's not much fun so we have to use comments which are self explanatory ابھی تو ہمارے programs you have a 4 line 6 line کے programs رہے ہیں so you know comments did not seem necessary it seemed artificial کہ ہم بیچ میں will get more complex so it is important that you know what you are doing so what have we covered today we have looked at 2 new variants of the loop structure in C first was the do while loop carrying on from the while loop and in the do while loop we notice that it at least executes the code within the body of the loop once the while loop may do it 0 or more times always executes the body at least once then we looked at a third type of loop which was the for loop for loop کے اندر what we noticed was کہ جو loop ہماری construct ہوتی ہے اس کا ایک shorthand form ہے کہ جی ساری چیزیں ایک لائنگ پر لکھی جا سکتی ہیں اس کے بارے میں to complete the definition let me say that the for loop executes at least 0 times in other words the loop test might fail at the beginning it's more like the while than the do while then we looked at some shorthand operators incrementing decrementing and then the compound assignment operators so we've covered a fair amount of territory ایک انترسٹنگ بات بتاتا چلو in terms of writing programs you already know everything that you need to write any complex program اسے زیادہ آپ کو ضرورت نہیں ہے you have the decision structure and you have the loops اگلی دفعہ we will cover another optional statement اور اس کے ساتھ ہم اس کا program کو دیکھ لیں گے کہ جیسی کی تقریبا ان کمپلیتنیس آجائے گی اس کے بعد ہم variables اور arrays کی طرف چلنا شروع ہو جائیں گے so next time it'll be the switch statement and more goodies اس فکتہ کے لیے اجازت ایجیے خدا حافظ