 اسلام علیکم پسلی دفعہ ہم نے فنکشنز کے بارے میں بات کی فنکشنز وہ اب ہماری زندگر کا حصہ بن جائیں گے because as I said earlier she is a function oriented language and we will be using functions again and again repeatedly over the rest of this course again as I repeated myself earlier in previous lectures ہماری تولکٹ بیسر تو کمپیٹ ہے لیکن ایک بڑا but the essential component was missing from this وہ کومپنٹ ہم آج دفعین کرنے جا رہے ہیں وہ کومپنٹ ہے arrays arrays کیا چیز ہیں ہم ان کے بات کرتے ہیں لیکن پہلے زرا پچھلے ایک پرانے لیکچر کی بات کریں جہاں پر میں نے ایک problem دیا تھا بلکہ دسکس کیا تھا کلاس کے اندر وہ تھا کہ جی ہم ہمارے پس دس student ہیں اور ان کی عمرے ہمیں پتا ہیں اور ہم ان کی average age نکالنا چاہتے ہیں تو اگر آپ یاد کریں ہم نے اس کے اندر دس integer variables ڈیکلیر کیے تھے age 1, age 2, age 3 اس طرح کر کے پھر ایک ایک کر کے ان کو input کیا تھا اور input کر کے پھر ان کو add کیا پھر total age ڈیلی پھر اس کی average ڈیلی every age ڈیلی نکالی کوئیسٹن ہے again true to my tradition کہ جی ایک اسان چیز کو مشکل کیا کیا جا سکتا ہے تو میں آپ کہتا ہوں کہ جی وہ دس students نہیں اب 100 students ہو گئے تو آپ سوچیں کہ وہ والی ٹیکنیک جو تھی variables ڈیکلیر کرنے کی کہ آپ وہ کام کرے گی ہمارے لیے I think it will be very very tedious to start writing down 100 different variable names کہ جی age 1, age 2, age 3 پھر چلتے چلتے age 51, age 52, age 78 تھک جائیں گے ہم کرتے ہوئے تو اس کام کو کرنے کیلئے کوئی اسان طریقہ ہے وہی ہے کہ ہم arrays کو اندردیوز کریں تو arrays ہی کیا arrays ڈیکلیر ہے وہ ایک SPECIAL كسم کی دیٹا طاپ ہے اور why it's a very name you understand that it is اگر ہمارے پاس بہت ساری ایک کسم کی چیزیں ہوں اور ان کی نویت بھی ایسی ہو کہ ہم ان کو ایک کتیگری میں رکھنا چاہتے ہیں جیسے age کی بات کی so we have 100 ages what do we do we can declare an array جو اس کی طاپ جو بھی ہو integer let's سے ہو اور اس کی اندر ایک ہی کسم کا دیٹا پڑا ہو یعنی ایک نمبر ہے پھر دوسر نمبر ہے پھر تیسہ نمبر ہے ساری چیزیں ایک چیز کو رپرینٹ کر رہی age کو اور مختلف لوگوں کی age ڈاری so arrays are like a data structure جس کی اندر identical data types are stored جتنے ہمیں چاہیں اتنی جگہ ہم ممری میں استعمال کرتے ہیں اور اس کے ساتھ کچھ attributes جو ہیں وہ attach ہوتے ہیں see کی اندر جو ہے arrays کے ساتھ ہر array کے ساتھ ایک اس کا نام ہوتا ہے اس کی data type ہوتی ہے اور پھر اس کا size ہوتا ہے memory کے اندر arrays جو ہیں وہ contiguous area میں یعنی ایک continuous area of memory occupy کرتی ہیں اور اس کے اندر ہم اس کو index کر کے استعمال کر سکتے ہیں کہ جی پہلی جگہ پے کیا لکھنا دوسی جگہ پے کیا لکھنا and so on so arrays are a specific data type arrays کا ایک size بھی ہوتا ہے یعنی کتنے elements جو ہیں وہ ایک array کے اندر موجود ہیں اس کے اندر see میں جب ہم array declare کرتے ہیں تو ہمیں اس کی data type name اور اس کا size تینوں چیزیں بتانی پڑتی ہیں کیا کوئی طریقہ ہے جہاں پہ ہم size name بتایں یا size بعد میں determine ہو رہا ہو ایک ہے طریقہ لیکن وہ پھر advanced topics میں آئے گا اس کو ہم بعد میں cover کریں گے اس وقتی assume کر لیں کہ see میں جو arrays ہیں وہ ایک fix size کی ہوں گی اور ہم جب declare کریں گے ہمیں array کا size معلوم ہو گا اب اگر یہ دیکھیں ایک image ہم دکھاتے ہیں آپ کو کہ جی memory میں array store کیسے ہوتی ہے تو ہم نے اپنی طرف سے کچھ memory locations دکھا دی ہیں اور memory locations کے اندر side میں میں اس کے name لکھ دیے ہیں اور اس کے اندر جو اس کے content ہیں وہ بھی دکھا دی ہیں for the moment ہم نے ایک integer array لی لی ہے تو آپ دیکھیں گے کہ جی left side پہ پہلے تو اس کے name پیو پرور کریں کہ ہم نے لکھا ہے c اور پھے square brackets میں لکھا ہے zero تو پھے دوسی لائن کے اوپر لکھا ہے c square brackets کے اندر لکھا ہے one and so on c جو ہے وہ اس array کا name ہو گا so it's exactly the same as the name of a variable وہی rules اپلائے کرتے ہیں کہ جی ہم نے اس کو name دے دیا اب square brackets کے اندر جو چیز ہے وہ کیا ہے وہ اس کا ہے index یعنی zero't position پہ کیا چیز ہے first position پہ کیا چیز ہے second position پہ کیا چیز ہے اور جو right side پہ ہم نے دکھا ہے وہ اس کے contents ہیں contents اسی طریقہ سے جسے variable کا ایک name ہوتا ہے اور ایک variable کی value ہوتی ہے تو contents وہ array کی ایک خاص position میں value پڑی ہوئی ہے اس کو ہم کہہ رہے ہیں اب جو c کے حوالے سے جو important چیز ہے note کرنے والی وہ یہ ہے کہ اس کی indexing ہے array کی وہ zero سے شروع ہوتی ہے so as I said earlier کہ جی you can start from zero and count up to nine and that means ten positions you will realize why I was saying that کہ جی c میں always arrays start from index zero so اگر آپ کو دس elements چاہیں for example اسی array c کے تو وہ c zero سے لے کے c nine تک اور اس کو لکھنے کا طریقہ یہ ہے کہ c اور پھر square brackets کے اندر index کی position let's go on and see کہ جی arrays کے اندر ہم ان کی declaration کیسے کرتے ہیں پھر ان کو استعمال کیسے کرتے ہیں and so on so forth پہلے اسی کو دیکھ لیں کہ جی ہم بات کر رہے تھے کہ جی وہ age وال a program اگر ہمارے پاس ایک array ہوتی اور اس کا نام ہم رکھ لیتے age اور اس کے پھر ہم دے دیتے کہ جی اس کے اندر 10 value store ہوں گی تو اگر ہم نے اس کو add کرنا تھا تو اب age ایک array ہونے کی وجہ سے ہم for loop استعمال کر سکتے ہیں so we don't have to write a very long statement with plus plus plus plus plus we can simply use a for loop and make things very elegant یہ بھی ہم آج examples میں دیکھیں گے جب ہم نے ایک array کو دیکلیر کرنا ہوتا ہے so جس طرح ہم variables کو دیکلیر کرتے ہیں اسی طرح ہم پہلے اس کی data type بتاتے ہیں so for example if we need an array of integers we will write int and then the name of the array as I mentioned variable naming rules apply اس کو نام دیا اور پھر square brackets کے اندر ہم اس کا size لکھ دیتے ہیں so اگر مجھے وہی age array ڈیکلیر کرنی ہے اور اس کا size ہے کہ جس میں 10 number store ہوں گے اور سارے integers ہوں گے تو میں لکھوں گا int, age, square bracket 10 square bracket semicolon as with other declarations there is no restriction کہ جی ایک declaration line کے اندر صرف ایک array ہی ڈیکلیر ہو you can declare 2 or 3 together اندر ڈیکلیر 10 ہمazz ڈیکلیر ڈیکلیر اور اس کے کی طرف 20 ایک اسی عاہی6 کہ آپی مجھے آپ Union کسی ڈیکلیر Juan شرط مجھے ڈیکلیر ایک اس کا اس ڈیکلیر ڈیکلیر جی ڈیکلیر 10 ہمین کیا 2 برائیں اور ایک بات ساکتے ہیں۔ لیکن یہ جو بہت سوچا ہے۔ کیا کہ ایرے کو بزات ہے؟ یہاں ایک دیتا سٹرکچر ہے اور اس کو ہم ایکسس کر سکتے ہیں۔ لیکن ایکسس کرتے وقت ہم پوری کی پوری ایرے کو ایکسس نہیں کرتے ہیں۔ ہم ایک ایک ایرے لیمینٹ میں ایکسس کرتے ہیں۔ ایک اس کا سپشل کیس ہے۔ وہ انٹ پی آئے گا وہ ہے کیا کرکٹر سٹرنگز کا۔ لیکن دیکھا ہے کہ ہم انٹیجز وگیرا کی بات کر رہے ہیں، تو رفرنس کے طور پہ تو ہم کہہ سکتے ہیں کہ ایج ایرے کا نام ہے۔ لیکن استعمال کرتے وقت ہمیں اس کا کوئی خاص ایرےمنٹ ہم استعمال کر رہے ہوتے ہیں۔ بیشاک وہ سی ان کے ذریعے ہم کی بورٹ سے پڑھ رہے ہوئی ہے۔ یا ان کو جما کر رہے ہوئی ہے۔ یا ان کو اوتپوٹ کر رہے ہوئی ہے۔ ہم اسی لیکن ایریمینٹ میں کوئی بی ایریمینٹ ہم دیکھو ہے۔ جو ہم ایک ایرے ایرے میں بھی ہم بات کر رہے ہوں۔ ہمی glitter مقت guerra اور سکشچ کے اوبارت بارے جیسے اسسطر تک ہوتا ہے�ا اولو گشم کی ا邦ام ہدھتا ہے ، کیا انہوں میں شام itsش پر کینگذин دلکیروگ کے اe 0 انڈیکس۔ انہوں سے اee 4 ڈار اکٹی ہوں گے۔ آپ نے اee 4 ڈار اکٹی ایٹ لکھ دیا، تو آپ جو آپ کو اe3 ڈار اکٹی ہونے کیا کہ یہ پروشن ہے۔ نیچے جاکے جب ہم اچھا ایج برکٹ five لکھ رہے ہیں then we are talking about an element we are not talking about the array ایک سنگل element کی بات ہوری ہے how do we work with these array elements think about it اگر مجھے انڈیکسنگ کا طریقہ آگیا ہے یہ نہیں ایج او five مینس the sixth element of the array ارے انڈیکس 5 تو can I step through the indexes کیا میں کوئی ایسی چیز کر سکتا ہوں کہ پہلے first student کی age پڑی جائے پھر second کی پڑی جائے پھر third کی پڑی جائے I think آپ کو answer already آتا ہے یا ابھی تک آپ کو خیال میں آگیا ہوگا you can use a very simple loop you can use a loop something like for I equal to zero I less than 10 increment I and in the body of the loop you can say see in greater than greater than age of I what are we doing we are running a little loop ہر دفعہ through the loop I کی value بدلتی ہے جو میں نے یہاں پہاں ایک سامل استعمال کیا I equal to zero سے شروع ہو کے I less than 10 so again it's 0 to 9 10 number are going to be read from the keyboard and running the loop we say see in greater than age of I اب ایج of I ہم کہ سکتے ہیں کہ مجھے ایج of 4 ہی کہنا تھا no problem the index when we referring to an element simply needs to be an integer it need not be an integer constant like 5 it can be an integer variable like I جو ابھی استعمال میں نے کیا ہے so we normally use arrays by using the index as a variable and we step through it by saying age of I اور یہ اب جب loop چلے گی تو I کی پہلے value 0 ہوگی تو age of 0 پڑی جائے گی پھر I کی value 1 ہو جائے گی age of 1 پڑی جائے گی and so on اسی طرح اگر ہم آگے چلے ہم کہیں کہ جی ان ایجز کو ہم نے add کرنا ہے into a variable let's say another integer variable called total age تو ہم simply a loop چلا دیں گے پہلے total age کو of course initialize کریں گے will say total age ایکویل 0 دن you canмے گو ان جائےن سیں Technology جو ای ایکویل to مد وک印 than 10 ایکو stay انگرے ایکویل رہے ہیں جو 是 ج Charlie نائے صار pelvis اور Granny ہم اسے І پBIا جانتے ہیں جانتےری از ڈو친 جرہا گئے جہاں and within the mixture body شخص پ sinks آئے جس جیانہ ایکئی ایک اس ballots بھاتے الق어야 جائے جونا للہ إو فرمہ ساتھ versteر آئے جائے جیار ایک آئے نی API should بن控ش دی آ whether it is 더 two شاہد is the next part because the ایک طریقہ تو یہ ہے کہ جی ہم نے ایج وہ ایک ایرے کو دیکلر کیا let's say ایج اور سائز اس کا ٹین ہے اور پھر ہم نے کہا کہ جی اب اس کی ویلیو کیا ہوگی تو let's not rely on default values compiler شاید آپ کو ڈیٹیل میں آپ کو لنگوچ کی سپیسیفکیشن دیکھیں تو پتہ چل رہا ہو کہ جب بھی ہم ایرے کو دیکلر کرتے ہیں وہ انشلائزٹ ہوتی ہے تو some value or the other I say it's good programming practice to make things explicit سامنے نظر آنی چاہی بات کی جی ہم کر کیا رہے ہیں so I can run a little loop saying پہلے تو ساری ایجز کو 0 کر دو so I can say for I equal to 0 I less than 10 increment I age of I equals 0 you know I'm not saying semi-colons I'm not saying braces but that I hope you understand by now so we can initialize an array by running a little loop and assigning values to the elements of the array the other way of doing it would be at declaration time we can actually say something like int age 10 way square brackets میں equals پھر کرلی braces کے اندر ہم دس انٹیجر value دے سکتے ہیں so we can write 0 comma 0 comma 0 10 times close the curly braces semi-colon تو ڈیٹ بھی ہوگی اور initialize بھی ہو گئی لیکن آسان طریقہ بھی ہے اگر 0 بھی کرنا ہے ایک single 0 لکھ کے کرلی بریس کو بند کر دیں تو ساری ایجز 0 پی نشلائس ہو جائے گی but again I prefer کے جی جو بھی نشلائی سیان کرنی ہے وہ explicitly loop کے ترو کر لی جائے اور usually ایجز اتنی چھوٹی ہوتی نہیں ہیں کہ جی دس نمبر لکھیں تو کام بن جائے سوہ کی بھی ہو سکتی ہے ہزار نمبروں کی ایجز بھی ہو سکتی ہے so it's easier to write a little loop to initialize those arrays nonetheless array initialization at declaration time is an option that is available to us and if you look through the book you will find numerous examples about how to initialize arrays but it's a simple task you can just do it in a loop لیکن ایک اسو رہا جاتا ہے کہ جی ہم array کو initialize کرتے وقت اگر ہم یہ کرلی بریسز والی تکنیک استعمال کریں اور ہم کہیں انٹ ایج اور صرف سکویر برکٹس دال دیں ایک ہے so opening bracket closing bracket بیچ میں کچھ نہیں لکنا equals اور پھر بریسز کے ساتھ ہم اس کو دس نمبر دے دیتے ہیں what happens is that the compiler will automatically so it's being a little intelligent it will automatically detect کہ جی دس نمبروں سے اس ایرے کو initialize کرنے لہذا ایرے کا سایز دس ہوگا keep remembering and I'll keep repeating کہ دس کی ایرے جو ہے وہ سی میں 0 اندیکسے شروع ہوتی ہے and 9 اندیکس پوزیشن پہ ختم ہوتی ہے سوکی ایرے 0 to 99 253 کی ایرے 0 to 252 اندیکس پوزیشن تک جائے گی so whenever we writing a loop to process an array we must remember that the last position is one less than the size of the array اسی کو اگر آپ for loop کے سنٹیکس کے ساتھ کمبائن کریں so you will realize get something that falls very naturally to the syntax for I equal to 0 first element semi colon I less than size of the array so less than or equal to نہیں دکھیں گے less than استعمال کریں گے so then it is okay zero سے لے کے less than 10 less than 10 means 9 you will again get 10 elements okay so many ways of working with it let us see what else we can learn about arrays ابھی میں بات جو کر رہا ہوں وہ ہے one dimensional arrays کی let's look at a little program that read numbers from the keyboard اور ان کو ایک array میں store کر لیتا ہے یہ program جو ہے ہم کہتے ہیں کہ جی it is meant to read only positive integers so ہم ایک ٹریک استعمال کرتے ہیں کہ جی آپ جتے مزی نمبر انٹر کر لیں up to let's say 100 نمبر لیکن اگر آپ نے اسے کم انٹر کرنے ہیں تو آپ ایک minus one انٹر کر دیجے گا because we said we're only going to read positive integers maybe including zero so we will do that with a function call so the function will read an array and then it will return the array to the calling program so we write a usual IO stream main declare the array as int let's say see bracket 100 Bracket semi-colon so we're declaring an array of 100 integers it'll be called a and it will index from zero up till 99 then we go and call the function which is going to read the array as I said it's easy ایرے پروسیسنگ کو لیتے ہیں جب ہم فنکشن میں جاتے ہیں تو وہاں پہ ہم ایک سیمپل لوپ چلا لیتے ہیں یا لیتے کہ ہم فنکشن میں جاتے ہیں ہم مین پروگرم میں ہی لوپ چلا کے ایرے کو پڑھ لیتے ہیں لیکن میں ایرے کے لئے بہت سکتا ہوں گے ہم کرنا کیا چاہتے ہیں ہم ایک نمبر پڑھیں گے کیبورڈ سے اگر وہ مینس ون نہیں ہے تو ہم اس کو ایک خاص ایرے ایرے مینٹ ہے اس جگہ پہ اس کو سٹور کر دیں گے اور پھر ہم واپس جاکے نیا نمبر پڑھیں گے اور یہ ہم کرتے رہیں گے جب تک یا تو نمبر 100 نہیں ہم پڑھ لیتے اور یا use جو ہے وہ مینس ون نہیں انٹر کر دیتا آپ دیکھیں یہاں پہ ایک use آرہ ہے لوپ کا اور آپ کو یاد ہوگا کسی اندر ہم نے 3 کسم کی لوپ کی بات بات کی تھی ایک while loop تھی ایک for loop تھی اور ایک do while loop تھی کیا فرق تھا کچھ یاد ہے ان لوپ variance کی اندر دیکھیں while loop ہم نے کہا تھا it executes 0 or more times for loop executes 0 or more times but the do while loop executes 1 or more times یہاں پہ اس problem میں ہم کہہ رہے ہیں کہ جی ایک نمبر پڑھیں گے یہ تو ہم لازمی پڑھیں گے so one number will be input regardless of whether it's minus one or a positive number including zero so why not use a do while loop so we say do اور ایک کوئی integer variable لے لیتے let's call it z so we say do c in greater than greater than z اور پھر z کو test کر لیتے if z is not equal to minus one so if statement آگئی تو اگر وہ minus one نہیں ہے تو اس کو ایرے میں place کر دی کہاں پے so we should start with the zeroth position so let's say کہ جی ہم ایک variable میں ایرے کی current position ڈیٹ کر دیتے ہیں and as usual variable can be i make it simple so before the loop starts ہم نے وہاں پے کر دیا where i equal to zero remembering that zero is the first element یہاں پے loop میں جو ہم نے c in سے z پر لیا ہم نے کہاں if z is not equal to minus one and if you remember the not equals operator is exclamation mark equals two اس کے بعد کیا کرنا ہے جو ہماری ایرے تھی اس میں position i کے اوپر so array name position i equals z یہ assignment statement ہے right side پے variable آرہا ہے جس میں ابھی ہم نے keyboard سے value پڑی اور left side پے ایرے کا element آرہا ہے remember now this is something interesting بار بار میں ایک چیز رپیٹ کرتا رہا ہوں کہ جی left side پے simple variable ہو سکتا ہے کوئی expression نہیں ہو سکتی کوئی function نہیں ہو سکتا on the left hand side of an assignment statement so what have we put here what we have put is an array element an array element behaves as an ordinary variable so it can appear on the left hand side of an assignment statement that is what we are doing over here اس کے بعد if statement کے ساتھ اتنا ہی کافی ہے اب ہم کیا کرتے ہیں کہ جی next position کیلئے تیار ہو جائیں i++ so let's say پہلی دفعہ i کی value 0 تھی اس میں 0th position پہ ہم نے value لکھتی اور پھر ہم نے کا i is equal to i plus one which means i کی value 1 ہو گئی ہے loop کا کام ختم ہو گیا اب آئے گا wild statement تو wild statement میں کیا لکھیں wild statement میں دو تیست ہمارے ساتھ ساتھ چل رہے ہیں ایک تیست ہے کہ جی last number جو user نے انٹر کیا تھا وہ minus one تو نہیں تھا اور دوسرا تیست ہے جو جتنے number ابھی تک پڑے ہیں وہ تو نہیں 100 ہو گئے so the while is a compound test where we say while let's say z is not equal to minus one and and کیسے لکھتے ہیں double and percent sign and i is less than 100 while less than the good old point کہ اگر 100 نمبروں کی ایرے ہے تو i up to 99 ہو سکتا ہے as the array index it cannot be 100 because that would mean کہ ایرے کا size 101 ہے so we say i less than 100 end of the loop so parentheses semicolon اب ہوگا کیا کہ جی اگر user نے minus one انٹر کر دیا تو پہلے تو if statement false ہو جائے گی so assignment نہیں ہوگی اس کے بعد i increment تو ہوگا لیکن wild statement کی condition false ہو جائے گی اور ہم wild loop سے بہر آ جائیں گے اگر اس نے کوئی valid positive integer including zero انٹر کر دیا تو وہ ایرے کی ith position پے assign ہو جائے گا i کی value increment ہو جائے گی اور loop میں ہم واپس جاکے next input number جو ہے from the keyboard وہ لے کے واپس z کے اندر دال دیں گے so this loops runs this loop runs and the array is populated at the end of the loop maybe we are interested in finding out کہ جی کتنے نمبرز input ہوئے upper limit تو ہمیں پتا ہے so ہے لیکن actually کتنے ہوئے so we can say see out the total number of integers entered by the user is یہ سارہ کچھ parentheses میں or double s than sign and out میں بھی آپ دیکھ سکتے ہیں اور اس کے بعد کیا لکھیں گے logically what is the total number of integers entered by the user بتائیں جی is it i or is it i-1 well actually it is both if you think about it the number of numbers or integers assigned inside the array will be i-1 but the minus one بھی ایک نمبر ہے so جو ہمیں سے زرا سے زیادہ tricky thoughts رکھتے ہیں ہم یہ کہیں گے کہ جی اس نے i نمبر انٹر کیے ہیں آخری والے ہم نے گنا نہیں ہے but for the moment what we are interested in finding out is how many positive integers so maybe you want see out کند لکھیں the number of positive integers entered by the user is and then after the double less than sign we will say i-1 and that will give us a count اس کا example تو بڑا trivial سا تھا لیکن اس کے use بہت ہیں and you can think in terms of کہ جی اگر میں آپ کو یہ دے دوں problem کہ جی اپنی کلاس کا اپنی کلاس کے لیہ آپ اپنی جیج نکالیں so maybe you know the exact number of students in the class maybe you don't if you don't you take a number which is larger than the number of students in the class and you declare an array so if you think کہ جی کلاس میں کوئی اسی نوے students ہیں تو آپ ایک ایرے ایج ڈیکلیر کر لیں گے your size 100 اور اس ٹرک کو استمال کر کے you can actually read exactly the positive ages that belong to the students اور جب students ختم ہو جائیں آپ minus 1 کر کے end کر دیں لوپ کو اس کے بعد جتی بھی processing کرنی ہے وہ ان نمبرز کی کرنی ہے جو آپ نے پڑے ہیں so اس وقت i کی value آپ کو معلوم ہے کہ جی کتی نمبرز انٹر ہوئے تھے اس کے ساتھ i کو استمال کریں اور واگے کام کر لیں اس مجھے ہوتے ہیں توپر ایک تبیہ ہے اس میں초قاہی طرح ہے توپر اوشا ایک کتی ہے کہ ہم ایک ایرے، ہم ایک ایرے ایرے میں کی ہے ایک ایک کام اے سا گیر ہم کام کرنا چاہتے ہیں جو ایک کام کیسا ہے میں ایک ایرے ایک کامی کیا ہوں پہلی چیز اگر ہم کام کرنا چاہتے ہیں تو تبارے ہم Vote انٹریکل ہو월کتا ہے آپ کو جو اسی شاہوں کے لیوانِ آپ کو کام کرنا چاہتے ہیں ہوای اور بھی کھوٹی بہت تک ہیں جس کیا سیڈ gefallenی مט ڈیرے ان کے خکمانی مخدرہ کرنا دے رہا ہے کیا ہوای اور مخدرہ ہے کھوٹی میں بہت مقابل ہے محقا بہت ہر ہے ہمزیدانی اسیاس کے بہت سے رہا ہوا ہے ہمزیدانی ہوا ہے جا ای چیز کیا ہے اس کے ہمار پس ایک ڈیرے ہے ایک ڈیرے کیا ہے اس کا سائج ہے ٹن اور ایک ڈیرے ہے ٹی وہ بھی بی کے اندر کچھ ویلیوز پڑی ہوئی ہیں اور ہم چاہتے ہیں کہ جی بی کے اندر وہ ویلیوز چلی جائیں تو رمیمبر what i said that if i write a simple element of any array i write b bracket five bracket and bracket means square bracket we are talking about a simple variable so i can use ten assignment statements i can say b of zero equals a of zero b of one equals a of one b of two equals a of two and so on up till ten and you know me میں کہوں گا جی اوہر ایکہ سائل سوہ ہوگئے اوہر ایکہ سائل حزار ہوگئے اب اجی ایکوال کر کے دکھائیں تو آپ تیپ کرتے کرتے تھکرے ہوگئے i think you know the answer use a loop so we say something like for i equal to zero i less than ten increment i so i plus plus next line b of i equals a of i semicolon end of story a simple little loop ایک ایکہ سائل سوہ ہوگئے دوسرے ایکہ سائل ہوگئے ہے very common we are always using loops with arrays and this is actually where the flexibility and the power of the array comes in whenever we dealing with data you will notice that if you look around you and try to formulate a problem or were problem you have a ایک ایٹم کا problem نہ ہو it always deals with some let's say averages or numbers you will find کے جی arrays are very very useful we will be using them again and again and they lead us to tackle a very large variety of useful problems یہی loop structure جو ہے یہ صرف اسائنمنٹ کے لیے استعمال نہیں ہوتا جو بھی computation کرنی ہو array elements کے ساتھ وہ ہم loops کے ترو کرتے ہیں so اگر میں نے یہ کرنا ہے کہ جی take the sum of squares of ten different numbers اور وہ نمبرز میں ایک ایک ایک اندر سٹور کیا ہوئے ہیں then i would simply declare a sum of squares equal to zero integer variable اگر انٹیجر ایرے ہے اور پھر وہی loop چلا ہوں گا for i equal to zero i less than array size increment i sum of squares equals sum of squares plus array of i times array of i so an arithmetic expression involving array elements array elements are being used as simple variables so they can be used anywhere where the a variable could be used and therefore you can do simple arithmetic or any type of complex computation that you want with them so lots of stuff that you can do but remember arrays and loops are very intricately linked میں بہت ہی جانتے ہیں کہ ہمارے پاس ایک لکھیں ایک لکھیں بذکر دی ہوں گی ہے اور اس کے اندر سے ہم ایک خاص نمبر دھونا چاہتے ہیں کہ اس لکھ میں موجود ہے یا نہیں ہے اس لکھے بہت ہی بہت بہت پہنچی پردی ہوتی ہے ہمیں ہم چاہتے ہیں کہ جو ہمیں کچھ ہمیں کچھ کامیٹ ہوتی ہے با کہ ہم دیکلیرر ایرے چندہ، ایک دیکلیرت سے کسی ہی دیکلیر کر دیتے ہیں۔ اینٹ، ایرڈ برکٹ 100 ملک۔ ہم ایک سوڑ نمبروں کی سوڑ ہم نے ایرے دیکلیر کر دیتے ہیں۔ اس کو آپ کو پولیٹ کرنا چاہتے ہیں۔ آپ چاہیں تو اپنے طور پر کسی پولیٹ کر لیں۔ اور پھر گیسنگیم کے لئے کسی اور کو کہیں کہ یہ اس کے اندر سے نمبر گیس کریں۔ لیکن پлиз bought himящر حقای کی د meer講ش د waited when I let's say qui zero show le کے handlar than cat take 3 good values оChristian it a chatter ا کی Jr Hassane آٹٰ how'd ایوچہ ایوچہ ڈے سو آیتہuku allezمنٹ کی value and talk about Aye ہی ہوگی آی ٹیک روچھ節 encountered سوان نمبرز جہاں место اندر سلائس ہوگا ہم جیسے بھر کناہا کیا کہ بھی زیادہ ہی نوہٹ کرنا۔ ان کو پہلے ساتھ اپی حرکت بھی تکر سکتی ہے۔ تو ہمہاروں کو بھی بھرکیں۔ پیش طور پہلے ساعدتا ہے۔ آرحای کہ بھرکہ کناہ جانتا ہے۔ ہم ایک حرکت بھی ضرور ہی بھرکیں ہی ہے۔ اب یہ بہرم ، جو زیادہ ہے وہ یہ نوہٹ ہیں۔ یہ عددانی ایک کلی کو توک ہے۔ جو زیادہ ہے ، تو اپنے اساج کے لئے دیکھیں۔ ایسا ہے کہ ہمیں ایرے ویلیوز کے اندر انکلوڈید ہے یا نہیں ہمیں نہیں پتا کہ ذیت کی ویلیو کیا ہے ہم کہ ہمیں ایرے سالی تک ہمیں بہت ہی نہیں کرے؟ میں آپ کی سالی تک ہی ہے کہ سب کچھ مطلب نہیں ہے ہمیں جو ہمارے پس ذیت میں نمبر آئے جو ہمارے پس ذیت میں نمبر آئے اس کو ایرے ایلیمنت کے ساتھ کمپیر کرنا شروع کر دیتے ہیں ہم کہتے ہیں کہ ای of zero کے برابر ہے نہیں ای of one کے برابر ہے نہیں زوئی possibility ہیں سو آپ تھاokoر راہ کنگ like stick جی ایکгоر بر som اسکو انیشلائز کر دیتے پھیں کر دیتے ہیں zero کیسات وینت انă kennune ہم اپنے لیے Sanders خلی مطلب رکھلئے تھے ہیں� rằng ایک کبیwww n n n n n n n n n n n n n n n ابان بائ�� ادار میں ر theہدین bilateral video پہلے تو سمگливоر آئے problematic بل سے کوئی falar ہےJust a件事情 اپنے اگر دیکھ سکتے ہیں ہے بھتleading ا째ے مر النہار کو از انneaسont سمکے لئے اہلام pony Connect کے انwwے ش review فرمانے لیدي آپ subconscious level سب سے پہلے تو جھنڈا کھڑا کرے نا کہ جی مل گیا۔ اس کے بعد اگر چاہیں تو اتنا ہی کر کے بریسز بند کر دیں اور فور لوپ کلوز کر دیں وہ لوپ پوری چل جائے گی۔ کیا ہم پوری چلانا چاہتے ہیں؟ well it depends on the problem. for the moment we don't really care. اگر found one ہو گیا ہے we might as well jump right out. اس میں وائل بھی آپ استعمال کر سکتے ہیں، دو وائل بھی کر سکتے ہیں اور break statement بھی استعمال کر سکتے ہیں یاد ہو گا switch کے ساتھ ہم نے break کہا تھا اور پھر break کو define کیا تھا کہ اگر break آجائے تو the loop is exited immediately so i could write the same for loop and say if z equals a of i open braces found equals one break close braces and a for loop for loop سے جب بہر آئیں گے for loop سے جب بہر آئیں گے تو کیا ہمارے program کو پتا ہے کہ وہ integer ملا ہے z جو تھا یا نہیں ملا array کے اندر at the moment all we know is کہ جی loop exit ہو گئی ہے یہ نہیں ہمیں پتا کہ ہم loop چلا چلا کے exit کی ہے اور ہمیں number نہیں ملا یا number مل گیا ہے اور پھر break کی وجہ سے ہم نے loop سے exit کیا ہے so if we want to test we have the if statement we say if found equals one اگر میں equals کہا رہا ہوں which means double equal to sign it's a logical comparison if found equals one see out we found the integer at position i کیونکہ i پہ وہ loop ہم نے terminate کر دیتی چلا گمار کے بہر آگئے تھے اور پھر else کے ساتھ آپ کہ دیں see out the number was not found a simple linear search back to the problem problem کی site نہیں بھول نہیں ٹیکنہ ہم کوڑ کے اندر گھوش جاتے ہیں تو ہم problem بھول جاتے ہیں problem یہ تھا given an array of numbers find out کہ جی a given number اس میں موجود ہے کہ نہیں ہے ہم نے کیا کیا ہم array کے اوپر سے شروع ہو گئے ایک ایک کر کے numbers کو compared کرتے گے with our test number which we stored in the variable called z and we went through the loop and decided at the end کہ جی whether we found the number or we didn't find it simple linear search اگر array کے اندر n elements ہیں تو n ڈفاہ test ہو سکتا ہے that's the upper limit جلدی بھی آپ کی loop terminate ہو سکتی ہے اور ہم کیا کر سکتے ہیں کوئی مزے کے چیز نہیں کر سکتے loops کے ساتھ let us see کہ جی ہم اسی چیز کو ہم ایک game کیوں نہ بنا لیں آپ کو as a programmer بھی نہ پتا ہو کہ جی computer نے کون سے numbers ڈور کییں اور user کے طور پہ آپ guessing game بنائیں how do we do that well اسی میں جو آپ کے پاس development environment ہے اور تقریباً تمام c کی جو compilers ہیں ان کے اندر ایک random number generation کے لیے ایک function موجود ہے وہ function ہے rand کا r a n d دیکھیں یہ c کا حصہ نہیں ہے لیکن c کی تمام standard libraries میں یہ ساتھ شپ ہوتا ہے یہ آپ کو in fact standard lib میں ہی ملے گا جہاں اوپر شاپ include io stream.h کر رہے تھے آپ کو ایک اور include کرنا پڑے گا sharp include اسی طرح angle brackets کے اندر std lib lib.h اس کو include کریں گے تو rand function جو ہے اس کی prototype آپ کو مل جائے گی rand جو ہے وہ typically return کرتا ہے ایک random number یعنی ایک set of numbers لے کوئی بھی choose کرکے آپ کو ایک واپس دے دیتا ہے normally c compilers میں اور آپ کے dev c plus plus میں اس کی upper limit جو ہے وہ 3, 2, 7, 6, 7 ہے so it will return a number between 0 and 3, 2, 7, 6, 7 idea ہے یہ 3, 2, 7, 6, 7 magic number کہاں سے آیا زرا آپ دیکھیں گا 2 to the power x calculate کر کے کہ کون سی number بنتا ہے it's a power of 2 minus 1 the actual power of 2 is 3, 2, 7, 6, 8 I'll give you a hint it has to do with the number of bits used to represent an integer try it out anyway rand کو call کرنے کا طریقہ simple یہ ہے کہ جی since it's a function it has to be on the right-hand side of an assignment statement so if I say x equals rand or rand function ہے تو end پہ ہم parentheses لکھتے ہیں خلی ان کے اندر کچھ نہیں لکھتے semi colon so we say x equals rand open parentheses close parentheses semi colon what happens is ایک function call جاتی ہے to the rand function وہ ایک number جنریٹ کرتا ہے اور واپس کرتا ہے اور وہ x میں ایسائن ہو جاتا ہے talking about function calls think about how it works program sequentially پر سے چلتا آیا ایک جگے پہنچا تو ایک function call ہو گیا function call کے لیے program وہاں پے رکیا اور کنٹرول جو ہے وہ function میں چلا گیا function execute ہوگا جب وہ complete ہوگا یا اس کے اندر return statement اس کو ملے گی اس پر کنٹرول واپس آجائے گا اور next line سے آگے processing شروع ہو جائے گی so that's just an aside to just remind you کجی function call کا mechanism کیا ہوتا ہے rand which is the random number generator اب یہ value دے رہا ہے 0 to 3 to 7 6 7 what if we want the value to be constrained in a smaller limit suppose ہم ڈائی کو roll کرتے ہیں تو ڈائی جو ہے اس کے اوپر آپ کو پتا ہے کہ جی ایک سے لے کے چھے تک number لگے ہوتے ہیں ہم دیکھنا چاہتے ہیں کہ جی random roll کیا کنسا number ملہ can we use rand to generate the roll of a ڈائی well we could if the number returned by rand was between 1 and 6 inclusive obviously ڈائی کے اوپر کوئی 3 2 7 6 7 تو نہیں لکھا ہوا so اس کے لیے ہم کیا کریں تا کہ largest number جو ہے وہ 6 ڈائی سوچیں there are two ways remember ہمارے پاس ایک C میں built-in operator ہے وہ operator ہے mod کا modulus operator کیا کرتا ہے remainder ڈائی کرتا ہے can we use the mod operator to return a number from the function rand which lies between 1 and 6 inclusive well the answer is simple enough if you say rand with parentheses modulo which is the percentage sign and then 6 the result will be what سوچ کے the result has to be between 0 and 5 inclusive why 0 because 0 تو rand return کر سکتا ہے یا mod کا operator remainder جو ہے 0 بھی ہو سکتا ہے اور کیوں کہ ہم divide 6 سے کر رہے ہیں so the largest number that could be a remainder is 5 6 cannot be a remainder so simply saying rand parentheses modulo 6 gives us a number between 0 and 5 ہم کیا چاہ رہے ہیں ڈائی کا roll کرنے کے لیے کہ جی 1 سے لے کے 6 تاک ہمیں number چاہی ہے تو کیا کریں add 1 so if you say 1 plus rand parentheses 6 you will randomly generate a number between 1 and 6 both numbers included and you can generate a random roll of a die اب تست کرنا ہے کہ جی ہم نے ایک دائے تو بنا لی وہ فیر ہے کہ نہیں آپ جانتے ہیں فیر دائے کیا ہوتی ہے فیر دائے یہ ہے کہ جی اس کو آپ پھیکنا شروع کریں roll کرنا شروع کریں تو اگر آپ 10 million times roll کر دیں یا 100 million times roll کریں تو on average equal number of 1 equal number of 2 equal number of 3 equal number of 4 اس طرح جنریٹ ہوں گے یا نہیں اس کا ہر face وہ equally like لائکلی ہے کہ وہ roll کے اوپر آجائے so can we test our random number generator کہ جی یہ equal numbers generate کرتا ہے کہ نہیں کرتا کہ جی 1 کی بھی اتنا ہی چانس ہے جتنا دو نوڈ جنریٹنگ a test for our our random number generator ترمز off ترامز نوڈ مقاوی بہت بہت اسے maybe go to the discussion board اگر آپ کیا群اتا جائے آپ کو唉قاوی بہت بہت بہت بہت ایک تھوڑ کیا کیا جائے آپ کو بہت بہت بہت اسی کو آپ استعمال کر سکتے ہیں for tosses of a coin. Coin, head or tail آتا ہے صرف دو possibility ہیں. So you can use zero and one. So Rand, modulo two will give you zero and one as the answer. And so on so forth. So it's a very useful function. اور ہم بہت دفعہ ریندم نمبر جنرےٹ کر کے real life situations کو simulate کر سکتے ہیں. And simulation is a whole science in itself. But it's a very useful science. اگر کمپیوٹر پروگرمس او رائیٹ کمپیوٹر پروگرمس that can test a real life situation without ever having that situation اکا. It's something like کجی اگر گاڑی جاکے دیوار میں لگی تو کیا ہوگا We can write a computer simulation to do that. I'm not saying کجی اس میں ریندم نمبرز استعمال ہوگے But maybe you want کجی سپیڈ ریندم لی چوز کر کے Accident کر کے دیکھو اور بتاو کجی کتنا نقصان ہوگا. So you can use computers for simulation. And RAND is an important function. اتنا امپورٹنٹ ہے کہ سٹانڈڈڈ لیبریری میں ہر کمپیلر کے ساتھ شپ ہوتا ہے. In fact, most major programming languages give you some kind of a random number generator as a function as part of the library. And in fact, random number generators لکھنا وہ بزاتے خود ایک فیلڈ ہے پوری کیونکہ کمپیوٹر ریندم نمبرز جنریٹ کر رہا ہے تو کیا وہ really random ہے کہ نہیں تو اس کے اوپر تو ہم کئی گھنٹوں بات کر سکتے ہیں For the moment go and play with this function. Let's go back and look at array declarations. میں نے یہ آپ کو بتایا تھا کہ جی array ڈیکلیر کرنے کے لیے ہم اس کی طائق بتاتے ہیں اس کو کوئی نام دیتے ہیں اور اس کو ایک size دیتے ہیں اور size let's say ہم نے 100 دیا تو ہم نے array declaration میں 100 لکھ دیا. پھر جہاں پہ ہم استعمال کرتے ہیں usually loops ہوتی ہیں وہاں پہ بھی array کیا پر لیمٹ چل رہی ہوتی ہے اس ہم لکھتے ہیں for i equal to 0 i less than 100 کچھ کرو کیا is this the only way and is this a good way of doing things well there's a problem remember کہ جی میں تو ہمیشہ آپ کو آکے کہتا ہوں جی 100 والا ہو گیا problem ہاں جی ہو گیا چلو اب ہزار والا کرو now you know اپنے word بھی استعمال کیا ہے کہ جی آپ کے پاس ایک search and replace function ہوتا ہے so you might want to go into the editor and say find 100 and replace with 1000 suppose your program is long and complex تو آپ دیکھتے ہیں کہ جیے والا 100 آیا replace پھر دوسرہ آیا replace پھر تیسرہ آیا replace eventually آپ تھاک کہ کہتے ہیں replace all سارے جگہ جہاں پہ بھی آپ نے 100 لکھا ہوا تھا وہ 1000 سے replace ہو جاتا ہے آپ program کو compile کرتے ہیں چلاتے ہیں اور کہتے ہیں oho یہ کیا ہو گیا کیوں کہیں پہ آپ نے 100 اور بھی استعمال کیا تھا یا 1000 بھی کہیں لکھا ہوا تھا اس میں بھی editor نے 100 کو مچ کر دیا 100 کے ساتھ اور اس کو replace کر دیا it's a very bad effect اس کے علاوہ it's very tedious to find each and every occurrence look at it yourself and decide کہ اس کو replace کرنا ہے کہ نہیں کرنا can we do something better the answer is yes and as you will this results in a brand new keyword from c the keyword this time is const c o n s t const keyword جہاں وہ declaration میں data type سے پہلے لکھ دیا جاتا ہے so for example اگر میں چاہتا ہوں کہ یہ ایک integer declare کروں array size so that's the name of the integer or the variable let's not call it a variable for the moment because we're going to call it a const so I would write int array size اور ساتھ ہی مجھے لکھنا ہے equal to 100 semicolon what does this statement do it creates an identity or an identifier called array size اور اس کو ایک value اسی وقت assign کر دیتا ہے in this example 100 and that array size is now called an integer constant so it's a named integer constant it is not a variable بعد میں آپ array size equal to 10 نہیں لکھ سکتے program کے اندر it is a constant and forever in that program it will remain a constant لیکن now if we apply the rule کہ جی ایک array کو declare کرنے کے لیے اس کا size must be a constant تو وہاں 100 لکھنے کی بجائے اب ہم array size لکھ سکتے ہیں so we can write a r r a y s i z e this makes life very easy for us why we can now declare arrays with meaningful names as their size جب بھی ہم کوئی loop استعمال کر رہے ہیں for processing the array we don't use constant numbers which are scattered all over the program and become confusing we use something like for i equal to 0 i less than array size increment i اور آگے کر دیتے ہیں and from where we started ہزار نمبروں کی ہونی چاہیے all you do is open your program go right to the top and where it says constant int array size equals 100 semi-colon اس 100 کو آپ 100 کر دیں باقی کا تمام program اسی طرح چلتا رہے گا using this constant key bird is very valuable and i suggest that you get into the habit of using it whenever you want to declare arrays ابھی جو آپ problems کر رہے ہوں گے they are going to be very simple so there is no real need but down the road when your programs get bigger and more complex it makes a lot of sense to use a named identifier remember i am not using the word variable these are constants but these are like named constants جب ایک نام آتا ہے program کی اندر and ریزی لکھی ہوئی وہ ہمیں زیادہ اصانی سے سمجھا جاتی ہے so today the topic was arrays topic is not finished yet we have many things to cover the most important thing for the moment is arrays of characters جب ہم لفظ بناتے ہیں تو لفظ جو ہے وہ ایک array of characters ہے ان کو ہم اگلی دفعہ کبر کریں گے پھر ملٹی دیمینشنل ڈیرے ہیں اور پھر ایک function call کے اندر array کیسے پہنچا ہی جاتی ہے میں نے اس کا شروع کیا تھا but وہ ہم اگلی دفعہ کبر کریں گے اتنی دیر کے لیے اجاز دیجے خدا حافیس