JASON HIRSCHHORN: خوش آمدید ہفتہ سے تین، سب. ہم نے ایک مصروف لیکن دلچسپ ہے آگے ہم کے سیکشن. تو سب سے پہلے، ہم نے کچھ کر دیا ہے کیونکہ کورس کے ساتھ پیش رفت لیکن ہم اب بھی سیکھنے کی ایک بہت میں ہوں، ایسا کرنے کے لئے چھوڑ دیا ہے تم لوگ کچھ وسائل کو ظاہر کرنے کے لئے جا کہ ناقابل یقین حد تک ثابت کرنا چاہئے آپ سے رجوع نہ صرف مددگار کے طور پر آپ مسئلہ سیٹ، بلکہ سب کے سب ہضم ہم آپ لوگوں کو دے مواد لیکچر اور شارٹس اور حصے. اس کے بعد ہم پہلے 20 خرچ کرنے کے لئے جا رہے ہیں حصے پر جا کے 25 منٹ آپ یا نہیں کر سکتے ہیں کر سکتے ہیں جس GDB، اس وقت استعمال کیا جاتا ہے، لیکن یہ ایک ہے ناقابل یقین حد تک مددگار آلہ کرے گا آپ کو آپ کے پروگرام ڈیبگ مدد. آپ کی ایک بہت میں printf کا استعمال کیا کر سکتے ہیں اعداد و شمار آپ کے پروگرام کے مشرق ایک متغیر برابری کیا. GDB بھی printf کے مقابلے میں بہتر ہے اپنے کوڈ کو بگاڑ نہیں ہے آپ کی وجہ سے ایک executable فائل پر چلانے. تو ہم 10 سب سے زیادہ مفید جائیں گے آپ GDB کے لئے کی ضرورت کا حکم، اور ہم ہیں ایک دوسرے کے ساتھ تو ایک مشق پر جانے کے لئے جا مسئلہ میں آپ کو، تین اور اس سے باہر قائم ڈبگ مدد کرنے کے لئے GDB استعمال کر سکتے ہیں آپ کے پروگراموں. اور آخر میں، ہم کچھ پر جانے کے لئے جا رہے ہیں الگورتھم چھانٹ رہا ہے اور تلاش آپ درس میں نے دیکھا، اور ہم ہیں اصل کوڈ، نہ صرف کرنے کے لئے جا pseudocode، لیکن کوڈ بائنری تلاش، بلبلا طرح، اور انتخاب کی طرح. تو سب سے پہلے، میں جانا چاہتا ہوں وسائل پر. یہ ایک وسیع فہرست ہے، اور یہ ہے میں نے ایک بہت تھا کیونکہ چھوٹے فونٹ یہاں پر فٹ. لیکن ان، آپ کی مدد نہ صرف پھر، مسئلہ کے سیٹ کے ساتھ اور تم نے سیکھا digesting کے بارے میں معلومات، لیکن یقینی طور پر، کوئز وقت، ان گی ناقابل یقین حد تک مددگار ثابت ہو. تو سب سے پہلے، لیکچر نوٹ. آپ cs50.net/lectures پر جانے اور تو مخصوص ہفتے اور دن میں سکرال، آپ کو ہر ایک کے لئے نوٹوں ہیں کہ دیکھیں گے بس نہیں ہے، لیکچر ایک نقل، لیکن ایک ترمیم ورژن کوڈ کے ساتھ درس میں شامل کیا گیا تھا کیا ٹکڑوں اور دوسرے مددگار tidbits کے. میں انتہائی ان پر جانے کی سفارش. اور پھر اس کے ساتھ ساتھ، منبع کوڈ ہے ہر ایک لیکچر سے دستیاب. اور پھر، ان سلائڈ بھی ہو جائے گا cs50.net/sections پر آن لائن دستیاب اس شام. تو دوسری شارٹس ہر ہفتے ہیں احاطہ کرتا موضوعات میں، عام طور پر 5 سے 15 لمبائی میں منٹ. اور وہ امید ہے کہ آپ کو ایک دے گا مختلف موضوعات پر بہت اچھا پرائمر. تیسری - اور اس نئے برانڈ ہے سال - study.cs50.net ہے. آپ اسے باہر کی جانچ پڑتال نہیں ہوا ہے تو، میں انتہائی آپ کو ایسا مشورہ ہے کہ. آپ کو ایک موضوع کو منتخب کرنے کے لئے حاصل. ہم وہاں پر موضوعات کے درجنوں ہے. تو مثال کے طور پر، آپ کے افعال کو منتخب. یہ آپ کو کچھ سلائڈ دیتا ہے اور افعال پر نوٹ. وہ اصل میں سلائڈ ہیں کی TFs کے دوران استعمال کرنے کے لئے حوصلہ افزائی کی جاتی ہماری کے سیکشن میں پیش پیش. نمٹنے کے لئے تجاویز اور ترکیبیں بھی ہے کام کرتا ہے، اور وہاں کے ساتھ مدد ہے کہ پریکٹس کے مسائل آپ کے افعال کے ساتھ کام. ہم نے بھی مختصر طور پر کرنے کے لئے آپ کے لنکس دے کام کرتا ہے اور بار ہے کہ کام کرتا ہے درس میں آئے ہیں. ایسا study.cs50.net، نئے برانڈ سال کے، ایک تصوراتی، بہترین وسائل. اگلا، میں دستی ہے جس میں انسان، ہے، تم پر چلا سکتے ہیں کمانڈ کمانڈ لائن. تو آپ کو ایک کے بارے میں کوئی سوال ہے تو کمانڈ، مثال کے طور پر، رانڈ، جو ہم سیکشن کے دوران گزشتہ ہفتے کا سامنا کرنا پڑا اور آپ کا امکان میں سامنا کرنا پڑا ہے کے ذریعے جا رہا ہے جب آپ کا مسئلہ سیٹ کوڈ پیدا، لیکن آپ کو آدمی ٹائپ رانڈ، آپ کے صفحے مل جائے گا کہ رانڈ کے بارے میں آپ سب کو بتاتا ہے. یہ لیتا ہے آپ کو دیتا ہے یہ لیتا ہے پیرامیٹرز، کے طور پر بھی واپسی قسم اور ایک مختصر وضاحت اس تقریب کی. تو رانڈ چیک. یہ، تھوڑی wordy اور مبہم ہو سکتا ہے تو کبھی کبھی مجھے لگتا ہے کہ تلاش بس میں جاننا چاہتے ہیں ہیں Googling جواب تلاش کرنے کا بہترین طریقہ. تو گوگل کے ساتھ عمل. گوگل میں اچھی حاصل. یہ آپ کی سب سے اچھی دوست بن جائے گا. کے ساتھ ساتھ گوگل، آپ اسے تلاش نہیں کر سکتے ہیں گوگل پر، cs50.net/discuss، یہ ہے فورم. آپ سے ایک سوال ہے تو امکان ہے، ایک ہیں آپ 700 + ساتھیوں کی بھی ہے کہ سوال اور کہا ہے کہ ہو سکتا ہے یہ پہلے سے ہی بات چیت میں فورمز اور اس کا جواب دیا ہے. تو آپ کو ایک عام سوال یا ہے تو اگر آپ کو لگتا ہے کہ میں ایک سوال ہے شاید دوسرے لوگوں میں چلانے کے ہو سکتا ہے، cs50.net/discuss چیک. آخر میں، گزشتہ دو، اگر تم چاہو تو ایک حقیقی انسان، دفتر سے بات جمعہ کے ذریعے پیر کے روز گھنٹے. آن لائن دفتری اوقات بھی ہے توسیع کے طالب علموں کے لئے. ، اور آخری لیکن یقینی طور پر کم از کم نہیں مجھے، فجائیہ نقطہ. تم میرے تمام رابطے کی معلومات ہیں. آپ کو کسی چیز کی ضرورت ہو، تو براہ مہربانی کبھی نہیں مجھ سے رابطہ کرنے میں سنکوچ. ہمیشہ ایسا کرنے کے لئے آزاد محسوس کرتے ہیں. تم میں سے بہت کم Gchat پر شامل کر لیا ہے، تو یہ، مایوس کن رہا ہے لیکن امید ہے کہ اس کے درمیان تبدیل کر دیں گے یہ اور اگلے حصے. اب تک وسائل پر کوئی سوال؟ عظیم. آخر میں، ایک اور پلگ ان کے لئے رائے، sayat.me/cs50. تم میرے گمنام رائے دے سکتے ہیں میں کر رہا ہوں کہ کس طرح. کہ گزشتہ ہفتے واقعی مددگار تھا. میں تم لوگوں سے تبصرے کے ایک جوڑے کی ہے صحیح سیکشن، کے علاوہ کی طرف سے کے بعد دیکھا جو دوسرے طالب علموں کو ہفتے کے دوران، اور یہ ناقابل یقین حد تک مددگار تھے. میں کوشش اور میرے استعمال کا محدود کرنے کے لئے جا رہا ہوں لفظ "، میٹھی،" لیکن میں دکھایا جائے گا میری جوش و جذبے اور جوش و خروش دوسرے طریقوں سے. لیکن دیگر اضافی تھے اہم feedbacks کی، pluses اور ڈیلٹا دونوں. تو، میں تم لوگوں کو رائے دینے براہ مہربانی آپ کا مسئلہ سیٹ پر. میرے رائے دینے کے لئے آزاد محسوس کرتے ہیں میری تعلیم پر. میں تم لوگوں کے لئے یہاں ہوں. عظیم. اس کے لئے میں ہے ہے پہلے حصے. کسی کو کسی بھی ہے سوال اب تک؟ اور میں نے کے لئے ایک نوٹ ہے کنٹرول سینٹر. توسیع کے طالب علموں نے مجھے پیغام دیا ہے وہ کسی بھی آڈیو نہیں مل رہے ہیں، کہہ رہے ہیں، لیکن اس کو ٹھیک کرنے کے لئے میری طاقت سے باہر ہے. تو امید ہے کہ، کہ ہو جاتا ہے جلد ہی حل کیا. آپ آن لائن دیکھ رہے ہیں، ہیلو، لیکن تم نے مجھے سنا نہیں کر سکتے ہیں. تو سب سے پہلے، ہم جا رہے ہیں gdb کے ذریعے جانے کے لئے. GDB، میں نے پہلے بھی اشارہ دیا کے طور پر، بگ آلہ ہے printf کے مقابلے میں بہت بہتر. اگر ایسا ہے تو، GDB، لوگ آپ کے ساتھ شروع کرنے کے لئے آپ کو آپ کے آلے کو کھولنے کے لئے چاہتے ہیں، اور میں آپ کو ای میل اس فائل لے پہلے - اس فائل بھی ہو جائے گا تھوڑا سا میں آن لائن دستیاب - اور GDB چلانے. / فائل کے نام. سب سے پہلے، کورس کے، آپ کو مرتب کرنے کے لئے ہے GDB صرف کام کرتا ہے فائل فائلوں. لیکن کیا تم نے کبھی شروع کرنے کے لئے چاہتے ہیں تو GDB، تم کرتے ہو سب سے پہلی چیز، آپ GDB. / کیسر چلانے. تو ہے کہ ہم اس پروگرام کا نام ہے اب اس کے ساتھ جانے کے لئے جا. تو میں کیسر، بنانے لکھنے جا رہا ہوں جس مجھے ایک executable فائل دے گا یہاں سبز رنگ میں روشنی ڈالی. اور پھر میں نے GDB. / سیزر کو چلانے کے لئے جا رہا ہوں. اور تم وہاں جاؤ. ہم کچھ متن مجھ سے کہہ رہا ہے کہ دیکھ، مجھے دے GDB کے ورژن، کے بارے میں پھر کچھ وارنٹی کی معلومات، اور ہم ترتیب لگتا ہے جو جی ڈی پی کے فوری طور پر، ہے کی ہماری کمانڈ لائن فوری طور پر کی طرح، لیکن آپ اسے کھولیں دیکھ قوس، GDB، قریبی قوس. ہم اس فائل کو جاری رکھنے اور ڈبگ سے پہلے میں آپ سب کے لئے بھیجا ہے، کی کو دیکھو کچھ مفید حکم دیتا ہے تو ہم نے ایک احساس ہے کیا ہم پورا کرنے کے لئے جا رہے ہیں. یہ حکم دیتا ہے میں یہاں درج کر رہے ہیں میں عام طور پر ان کا استعمال ہے جس میں حکم. تو میں چلانے کی طرف سے اپنے پروگرام شروع پروگرام کے GBD. / نام، اس صورت میں، کیسر. اور پھر پہلی بات میں 99.9 فیصد کرنا وقت کی قسم وقفے کا مطلب ہے. یہ اہم میں ایک بریک پوائنٹ کا تعین کرتا ہے. بنیادی طور پر، آپ وہاں کیا کر رہے ہیں پروگرام کو روکنے کے لئے جا رہا ہے اہم تو آپ یہ لائن کی تحقیقات شروع کر سکتے ہیں لائن کی طرف سے، بلکہ تمام چلانے سے راستے کے ذریعے. آپ میں مختلف مقامات پر توڑ سکتا ہے آپ کے کوڈ، لیکن اہم عام طور پر ہے ایک شروع کرنے کے لئے اچھی جگہ. میں چلانے اگلا کمانڈ چلائیں ہے. اس پروگرام کو چلانے کے شروع ہوتا ہے، اور آپ کمانڈ لائن میں داخل کرنے کی ضرورت ہے دلائل، آپ کو یہ ہے کہ کمانڈ چلائیں. دلائل کے ساتھ چلائیں. ہم ایک ورژن پر جا رہے ہیں تو بعد پروگرام آپ کے لوگ ہے جو سی، کے pset کے دونوں کے لئے لکھا - اس میں سے ایک، کورس کے، کچھ کیڑے ہے امید ہے کہ ہم تلاش کر لیں گے کہ اس میں - ہم نے کچھ کمانڈ کے ساتھ چلائیں چلائیں جا رہے ہیں لائن کے دلائل کی وجہ سے قیصر، تم لوگوں کو مسئلہ کے مطابق جانتے ہیں رپورٹ مقرر، کچھ لیتا ہے کمانڈ لائن کے دلائل. حکم دیتا ہے کے اگلے دو، اگلا ایک اصل اگلا کہا جاتا ہے. یہ ایک لائن کی طرف سے آپ کو لائن میں لیتا ہے آپ کے پروگرام کے ذریعے. درج کریں تاکہ تو ن مار لیتا ہے اگلی لائن، عمل پچھلے لائن. مرحلہ پر لے جاتا ہے نہ صرف اگلی لائن، لیکن یہ آپ کے اندر کام کرتا ہے لیتا ہے. تو آپ کو ایک تقریب میں لکھا ہے تو آپ کے کوڈ یا آپ کی چاہتے ہیں ایک میں، مثال کے طور پر، اگر آپ کا مارا، کر سکتے ہیں اور بلکہ کی اگلی لائن میں جانے کی نسبت تم صحیح کے ذریعے جا رہے ہیں کہ فائل اب، آپ کو اصل میں قدم گے اس تقریب میں اور اس کے کوڈ کو دیکھنے کے. فہرست دوستانہ بہت صارف، آپ کو ظاہر کرتا ہے شکل، کے ارد گرد 10 یا تو لائنز آپ فی الحال آپ کے کوڈ میں جہاں تو اگر آپ اصل فائل دیکھ سکتے ہیں بلکہ واپس تبادلہ کرنے کے لئے اور سے آگے مختلف خیالات کے درمیان. پرنٹ، printf طرح ہے اس کے نام کا مطلب ہے کے طور پر. جو ایک متغیر کے برابر ہے کیا آپ کو دکھاتا ہے. معلومات مقامی لوگوں واقعی مددگار ہے. اس پرنٹ کی ایک خصوصی ورژن ہے. معلومات مقامی لوگوں کے مقامی کے تمام شوز متغیر، آپ کے لئے ان تمام پرنٹ فی الحال دستیاب ہیں. تو بجائے کرنے کے مقابلے میں عام طور پر میں، میں ہوں کہ چار متغیر پرنٹ میں ایک لوپ کے لئے، کے لئے میں ہوں تو کے بارے میں جاننا مثال کے طور پر، میں نے صرف معلومات مقامی لوگوں لکھنا، اور اس سے مجھے میری انسداد میں دکھائیں گے مجھے اس صف کے ساتھ ساتھ، برابر برابر پر کام کر رہے. آخر میں، جاری رکھیں. وقفے ٹائپ آپ کو روکتا ہے وقفے کے نقطہ پر. آپ کی طرف سے لائن کے ذریعے چل کر سکتے ہیں اگلا اور قدم کے ساتھ لائن. آپ کے اگلے پر چلتا پروگرام کو جاری نقطہ کو توڑنے یا تکمیل تو جب تک کوئی وقفے پوائنٹس ہیں. غیر فعال وقفے پوائنٹس کو ہٹا دیتا ہے اگر آپ مرکزی توڑ نے فیصلہ کیا نامناسب، آپ چاہتے ہیں کہیں اور یہ مقرر. اور آخر میں (ق)، چھوڑ، GDB سے باہر ہو جاتا ہے. تو اس پروگرام پر،. / کیسر، ہم جا رہے ہیں ابھی کے ذریعے دیکھو اور ہم تلاش کرنے کے لئے GDB استعمال کرنے کے لئے جا رہے ہیں اس پروگرام میں کیڑے. میں اس کے ساتھ اس سے پہلے اس پروگرام بھاگ گیا 50 کی جانچ پڑتال کریں، اور میں ایک برانبنگ ہے. سب کچھ اس کے مرتب، موجود، یہ ٹیسٹ کی ایک بہت منظور، لیکن کسی وجہ سے، یہ پانچویں پاس نہیں تھا میں BARFOO، تمام بڑے حروف، رخ ٹیسٹ، ای ڈی یو میں آر آر، تمام بڑے حروف، ایک اہم کے طور پر تین کا استعمال کرتے ہوئے. میں نے بہت قریب ہے. میں نے ایک خط کی طرف سے ہے. تو یہاں میں کچھ چھوٹی سی غلطی ہے. میں اپنے کوڈ کے ذریعے دیکھا ہے. مجھے یہ سمجھ نہیں کر سکتے ہیں. امید ہے، آپ لوگ میری مدد کر سکتے ہیں اس مسئلے ہے اعداد و شمار کیا. تو ہے کہ ہم خامی ہے کے لئے تلاش. کی GDB میں منتقل کرتے ہیں. ایک بار پھر، میں، GDB. / کیسر چلائے گئے تو اب ہم GDB میں ہیں. اور سب سے پہلے کیا ہے مجھے کیا کرنا چاہئے بات؟ میں صرف GDB میں داخل ہے. کسی نے مجھے ایک اچھا دے داخل کرنے کا حکم. طالب علم: اہم توڑ. JASON HIRSCHHORN: اہم توڑ. تصوراتی، بہترین. کے اندر اس قسم کے ہیں تم لوگوں کو یہاں دیکھتے ہیں یا عمل کر سکتے ہیں آپ کے کمپیوٹر پر ساتھ ساتھ. اہم توڑ، اور آپ کو ایک نظر آئے گا وقفے کے نقطہ پر قائم کیا گیا تھا - اس نے مجھے کچھ عجیب میموری ایڈریس دیتا ہے، اور یہ بھی مجھ سے لائن نمبر دیتا ہے. میں نے اس فائل میں واپس نظر آئے تھے، تو میں اس اہم احساس کریں گے 21 لائن پر ہوا. میں کیا چلانا چاہئے؟ میرے پروگرام چلا رہا ہے؟ نمبر تو میں کیا چلانا چاہئے؟ طالب علم: چلائیں. JASON HIRSCHHORN: چلائیں. میں صرف چلائیں چلائیں، یا چاہئے میں نے کچھ دوسری چیزوں میں شامل کریں؟ طالب علم: دلیل کے ساتھ چلائیں. JASON HIRSCHHORN: کے ساتھ چلائیں کمانڈ دلائل. اور میں ایک بہت ہی خاص ٹھیک کر رہا ہوں کے بعد کیس، میں اس میں داخل ہونا چاہئے کمانڈ لائن کی دلیل. تو میں نے، پھر، ہے، جو، تین چلانے کروں گا میں چیک 50 سے ملا پیداوار. پروگرام شروع. ہم لائنوں کے ایک جوڑے کے ذریعے جانا. اب آپ ہم 21 لائن پر ہیں دیکھیں گے کہ. کس طرح ہم نے 21 لائن پر ہیں کہ جانتے ہیں؟ کیونکہ آپ کو بائیں طرف نظر آتے ہیں میرے ٹرمنل ونڈو کی، وہاں یہ لائن 21 کا کہنا ہے کہ. اور یہ کہ، اصل میں، مجھے فراہم کرتا ہے 21 لائن پر ہے کہ کوڈ. تو میں نے پہلے misspoke. مین 21 لائن پر اصل میں نہیں ہے. مین 21 سے اوپر کی لائنوں کی ایک جوڑے کی ہے. لیکن 21 لائن پر، ہے ہم کہاں توڑ رہے ہو. کوڈ کی اس لائن ہے ابھی تک پھانسی نہیں. یہ ضروری ہے. آپ کو دیکھ لائن نہیں ہے ابھی تک پھانسی دے دی گئی. اس کوڈ کی اگلی لائن ہے آپ پر عمل کرنے کے بارے میں ہیں. آپ لوگ ہیں تو اگلی لائن، ساتھ شاید واقف، یہ ہے حالت میں ہے تو دیکھنے کے لئے کی جانچ پڑتال ایک کمانڈ لائن کی دلیل میں داخل. اور میں ایک، دوسرے کیا ہے یہ ہے کہ ایسا کا حصہ؟ ایک میں کیا ہے؟ طالب علم: ایک عددی کے لئے اس کو تبدیل کرنے. JASON HIRSCHHORN: معاف کیجئے گا؟ طالب علم: اس کو تبدیل کرنے کی ہے ایک عدد صحیح دلیل. JASON HIRSCHHORN: تو میں تبدیلیاں کرنے کے لئے ARG ایک عددی کے لئے ایک تار سے V1. اور پھر یہ کیا جانچ پڑتال کی ہے؟ طالب علم: ایک دوسری ہے تو کمانڈ لائن کی دلیل، ایک طرف پروگرام چلانے سے. JASON HIRSCHHORN: اور کیا ہے اس کے دوسرے نصف حصے بولین اظہار کی جانچ پڑتال؟ یہاں یہ حصہ، ایک میں؟ طالب علم: یہ منفی ہے تو. JASON HIRSCHHORN: ضرور کیا بنا؟ طالب علم: اس بات کو یقینی بنانے اصل میں، مثبت، ہے. JASON HIRSCHHORN: بالکل. یہ تو دیکھنے کے لئے جانچ پڑتال کی ہے یہ منفی ہے، منفی، اور اگر، مجھے ایک احساس اگلی لائن کی طاقت ہے مجھے چللا صارف میں ہو. تو اس لائن پر عمل کرنے کی آخر مارا. ہم اس لائن کو نظر نہیں آتا کہ آپ لوگ شاید میں چللا کو دیکھنے کے لئے امید کی جاتی ہے صارف اور اس کے بعد واپس لوٹنے، کیونکہ اس لائن پر عمل نہیں کیا. میں 3 میں داخل. تو میں، حقیقت میں، دو حکم میں داخل کیا لائن کے دلائل، اور 3 ہے صفر سے زیادہ. تو ہم اس لائن کو دیکھا، ہم پھانسی دے دی، لیکن ہم قدم نہیں تھا اگر حالت کے اندر. تو اب، اگلا، میں نے کی ترتیب کو دیکھ INT اہم ایک میں V1 ARG برابر. تو اس نے مجھے ایک متغیر اہم پیدا کر رہا ہے. تو میں اب اہم پرنٹ ہیں، کیونکہ کہ آپ کو دیکھنے کے لئے کی اجازت دیتا ہے قیمت متغیر کے اندر، اہم 47 کے برابر ہے. یہ، کورس کے عجیب ہے، لیکن میں نہیں ہے، کیونکہ یہ ہے ابھی تک اس لائن کو پھانسی دے دی. میں ن مارا تو اب، اگر، اس لائن کو پھانسی اور پرنٹ اہم ہے، اہم، 3 کے برابر ہو گا ہم اس کے برابر کرنے کے لئے توقع ہے جس میں. تو پھر، GDB، لائن میں ابھی تک آپ کو پھانسی نہیں کیا ہے دیکھنے کے. آپ ن یا S یا ایک نمبر مارا ہے اصل میں دیگر حکم دیتا ہے اس لائن کو پھانسی. پرنٹ اہم. 3 چابی ہے. اب تک تو اچھا ہے. جملہ سادہ متن ہے. کی اس لائن پر عمل کرتے ہیں. میں صارف سے ایک تار ہو رہا ہے. میرا چیک 50 میں دیکھتے ہیں، میں نے BARFOO تمام بڑے حروف میں داخل، تو کہ میں داخل کریں گے کیا ہے. اب میں سادہ متن پرنٹ. تم نے اسے ایک تار کے برابر نظر آئے گا. یہ میرے کسی دوسرے عجیب شش اعشاری دیتا ہے تعداد، لیکن اس میں کرتا ہے حقیقت یہ ہے کہ میری سٹرنگ BARFOO کا کہنا ہے کہ. میں چابی میں برابری کیا دیکھنا چاہتے ہیں تو اس نقطہ نظر، میں کس طرح اہم چیک کر سکتے ہیں؟ طالب علم: پرنٹ اہم. JASON HIRSCHHORN: پرنٹ اہم، بالکل. اور اصل میں، ایک شارٹ کٹ ہے. آپ کو پرنٹ ٹائپ کا تھکا ہوا ملتا ہے، آپ کو صرف P ٹائپ کر سکتے ہیں. تو P اہم ایک ہی عین مطابق بات کرتا ہے. اور پھر، میں نے اس کے 3 برابر دیکھ. میں کیا اہم دونوں باہر تلاش کرنے کے لئے چاہتے تھے اور BARFOO ایک ہی وقت میں برابری لیکن میں ہر ٹائپ کی تھکا ہوا تھا ایک باہر انفرادی طور پر، میں نے معلومات مقامی لوگوں کے ٹائپ کر سکتے ہیں. یہ میرے اہم برابر 3 دیتا ہے. سادہ متن BARFOO برابر. یہ بھی میرے ان دو عجیب چیزوں دیتا ہے سب سے اوپر، اس متغیر میں اور اس متغیر (ن). وہ اصل میں موجودہ ہیں میرا بنیادی پروگرام میں. ہم، ابھی تک ان کا سامنا نہیں ہے لیکن ایک جائزہ کے طور پر، ان لوگوں کو میری لوپ کے لئے موجود ہیں. تو اب، وہ کچھ عجیب برابر تعداد وہ نہیں ہے کیونکہ ابھی initialized ہے، لیکن وہ اب بھی موجود ہیں یاد میں، تو وہ صرف قائم کر رہے ہیں کچھ ردی کی ٹوکری کی قیمت پر. لیکن ہم سادہ میں اہم دیکھتے ہیں وہیں متن. تو میں اس لائن پر عمل کرنے جا رہا ہوں، لائن 34، کے لئے لوپ. ہم میں کودنے کے لئے جا رہے ہیں ن مارنے کی طرف سے لوپ کے لئے. اور ہم لوپ کے لئے اندر ہو. ہم اپنے سب سے پہلے چیک میں ہیں. اور پھر، ان کی طرح نظر آنا چاہئے یہ ایک تھا کیونکہ آپ سے واقف کیسر لکھا گیا پروگرام ہے کہ، لیکن پھر، بگ کے کچھ قسم ہے. میں ہوں کیونکہ اور اب میں، معلومات مقامی لوگوں کرتے ہیں لوپ کے لئے کہ اندر، آپ کو نظر آئے گا ہم امید کرتے ہیں کے طور پر میں، صفر کے برابر ہے. کہ ہم پر یہ قائم ہے اور ابتدا کیا ہے یہ لوپ کے لئے میں. ن 6 برابر ہے. ہم نے مقرر کی وجہ سے یہ بھی سمجھ میں آتا ہے سادہ متن کے strlen کی کے لئے اس. تو میں نے معلومات مقامی لوگوں یا پرنٹ کرنے کے لئے پسند متغیر اکثر اس بات کو یقینی بنانے کے لئے ہر چیز ہمیشہ کیا ہے میں اس کے برابر کرنے کے لئے کی توقع. اس صورت میں، سب کچھ ہے میں اس کے برابر کرنے کے لئے توقع ہے. تو کے ذریعے منتقل شروع یہ لوپ کے لئے. میں ہوں لائن لائن 36 ہے، تو سادہ متن میں ایک اور سادہ سے زیادہ ہے متن میں سے کم یا Z کے برابر ہے. میں اپنے مسئلہ میری پہلی کے ساتھ نہیں ہے خط، یہ دوسری خط کے ساتھ ہے. ہم چیک میں واپس دیکھو 50، بی ای ٹھیک جاتا ہے. میں ایک لے اور کے طور پر اس جا رہا ہوں ایک ایک، ڈی، لہذا یہ نہیں بدلتے کچھ کے ساتھ غلط ہے دوسرے خط. تو میں منتقل کرنے کے لئے جا رہا ہوں وہاں ایک دوسری میں. لیکن میں کیا سادہ جانچ کرنا چاہتے ہیں کیا تو متن میں اس خاص طور پر برابری کیس، میں نے اسے کیا ہونا چاہئے؟ سادہ متن میں اس میں برابر کیا لوپ کے لئے کے ذریعے پہلے مرحلے؟ طالب علم: زیرو؟ JASON HIRSCHHORN: میں کے سادہ متن؟ تو یہ، میں، کورس کے دارالحکومت بی ہونا چاہئے صفر کے برابر ہے، لیکن سادہ متن بریکٹ صفر بند بریکٹ بی کے برابر ہے کیونکہ ڈور، ہم نے گزشتہ ہفتے دیکھا، صف ہیں، تو ہم ہو رہے ہیں اس سے پہلے کردار. تو پھر، میں سادہ متن طباعت اگر میں، میں، حقیقت میں، کردار ملتا ہے B. اور یہ درست، صاف ہے؟ میں اصل میں سادہ متن میں نہیں ہے یہی ہے جو میں مقرر متغیرات میں سے ایک نہیں ہے یا initialized ہے، لیکن آپ کو پرنٹ کر سکتے ہیں چیزوں کی ایک پوری میزبان باہر آپ کرنا چاہتے ہیں. لیکن کے ذریعے منتقل. سادہ متن میں ایک سے زیادہ ہے اور اگر سادہ متن میں سے کم یا برابر ہے ہم کیونکہ Z، جو واضح طور پر سچ ہے میں چلانے کے لئے جا رہا ہوں سرمایہ بی اس پر کچھ کمانڈ. ہم نے گزشتہ ہفتے کہ ریاضی دیکھا، تو ہم کریں گے یہ کام کرتا ہے حاصل کی جاچکی کے لئے اسے لے لو حق 50 کی جانچ پڑتال کے مطابق. یہ گھوبگھرالی منحنی خطوط وحدانی، سب سے پہلے ایک میں تو باہر نکلنے ظاہر ہوا ہے کہ حالت، دوسرا دکھایا میں لوپ کے لئے باہر نکلنے رہا ہوں. میں اگلے مارا اور جب تو اب، ہم دیکھیں گے ہم پھر لوپ کے لئے واپس پر ہیں. ہم کے ذریعے جا رہے ہیں پھر لوپ کے لئے. اصل میں دوسری میں قدم ہیں لوپ اور قسم کے لئے iteration کے معلومات مقامی لوگوں کے. تو ہم دوسرے iteration میں ہیں ہمارے لئے لوپ کے. میں ہم امید کرتے ہیں، جس میں 1 برابر. n ہم توقع ہے، جس میں 6 برابر ہے. کلیدی ہم امید کرتے ہیں، جس میں 3 کے برابر ہے. اور سادہ متن، آپ کو نظر آئے گا، برابر EARFOO اب، اب BARFOO نہیں کیونکہ ہمارے گزشتہ iteration میں، بی تھا سرمایہ ای تبدیل تو ہم کے بارے میں ہیں مسئلہ کا سامنا کرنے کے لئے، ایسا ہم جا رہے ہیں جہاں ہے بگ میں کودو. لیکن کسی کو کوئی سوال ہے ہم نے اب تک کیا کیا ہے کے بارے میں؟ تصوراتی، بہترین. تو ہم تو اس پر عمل کرنے کے بارے میں ہیں حالت، میں نے بند کر دیا سادہ متن بریکٹ بریکٹ ایک سے زیادہ اور سادہ متن میں سے کم یا زیڈ کے برابر لیکن اس سے پہلے یہ ہے، کیونکہ میں اس میں جہاں میں نے کی طرف اشارہ کرنا چاہتے ہیں، میری غلطی ہے I. کے سادہ متن باہر کی پرنٹ باہر ڈال دو. یہ کردار ایک کے برابر ہوتا ہے، تاکہ اب تک، سب کچھ ٹھیک اور اچھا ہے لگتا ہے. تو میں نے، میری منطق کے مطابق اس لائن کی توقع اس لائن سچ ہونا چاہئے. یہ ایک سرمایہ خط ہے. میں ن مارا لیکن، ہم احساس ہے کہ اس لائن، حقیقت میں، پھانسی نہیں کیا. میں اور تو نیچے کود گیا. ایسا کیوں ہوا؟ طالب علم: آپ کو کیونکہ آپ کی حالت سادہ متن کی زیادہ سے زیادہ ہے ایک، نہیں کے برابر یا اس سے زیادہ سے زیادہ. JASON HIRSCHHORN: تو میں اپنی سادہ متن تھا میں ایک، زیادہ نہیں کے مقابلے میں زیادہ ہے زیادہ یا برابر. تو واضح طور پر، دارالحکومت ایک نہیں کیا حالت تو یہ متحرک، اور ہم نے کیا اس میں قدم، اور ہم نے کیا نہیں ضروری تبدیلی نہیں. تو یہ اصل میں، یہ ہے. میں اپنے مسئلے سے سوچا. میں اپنے سورس فائل میں واپس جا سکتے ہیں، اسے تبدیل، اور اس کو اپ ڈیٹ اور پھر 50 کی جانچ پڑتال کریں چلانے کے. لیکن ہم صرف درس کے لئے، دیکھیں گے خاطر، میں جا رہو. اور اگر دونوں میں سے کسی پر عمل نہیں کرتا، لیکن کیا اس کی بجائے برابر حکم ہے اس کو تبدیل نہیں کرتا. تو یہ بالکل تبدیل، اور نہیں ہے تو میں یہاں سادہ متن کو پرنٹ، ہم جا دیکھیں گے اس کے ذریعے لوپ کے لئے، حقیقت میں، نہیں بالکل کہ دوسرا کردار کو تبدیل. یہ اب بھی ایک دارالحکومت A. ہے تو پھر، ہم اپنی غلطی کو ٹھیک کر دیا. ہم وہاں تھا احساس ہوا کہ لاپتہ کچھ منطق. اور ہم نے اس سے پہلے کہ وقت سے قبل یہ ٹھیک کر دیا اصل میں اس لائن پر عمل، لیکن آپ کو محسوس ہوتا تھا کہ ہم صرف اگلے مارا اور اگر یہ کوئی اور کود، مطلب یہ ہے کہ کہ اگر حالت سچ نہیں تھا. ہم، حقیقت میں، نہیں مل سکا نتیجہ ہم توقع. تو پھر ہم حوصلہ افزائی کی جا سکتا تھا، تھا ہم کو دیکھنے کے لئے، تو ہوشیار نہیں کہ، حالت اور اصل میں، تو چیک کریں، تو ہماری حالت کا اندازہ کرنا چاہئے موجودہ تناظر میں سچ. اس پروگرام ہے کہ بگ کے لئے ہے. کسی کا کوئی سوال ہے؟ میں GDB چھوڑنے پر کیا کمانڈ مارا کر سکتا ہے؟ * کیا اور پھر میں نے پوچھا جائے گا، ویسے بھی چھوڑ دیا؟ ہاں یا نہ. میں ہاں مار دونگا، اور میں GDB چھوڑ گے. تو ہے کہ GDB کے لئے ایک فوری پرائمر تھا. اصل میں، ایک حقیقی منظر نامے میں، میں دفتر کے اوقات میں نے یہ کیا. میں نے اس کے عین مطابق پروگرام میں GDBed ایک طالب علم کے ساتھ دفتر کے اوقات. اور ہم نے دیکھا حکم واپس جاؤ اس سے پہلے، ہم سب سے پہلے، وقفے کے اہم استعمال کیا جاتا ہے بات یہ ہے کہ ہم نے کیا. ہم کمانڈ لائن کے دلائل کے ساتھ رن استعمال کیا جاتا ہے، دوسری بات یہ ہے ہم نے کیا. ہم منتقل کرنے کے لئے اگلے ایک بہت استعمال کیا جاتا ہے لائنوں کے ذریعے ہم سے. اور پھر، مختصر ورژن کے اگلے ن ہے. یہ قوسین میں ہے سلائڈ پر سرمئی میں. ہم قدم کا استعمال نہیں کیا، لیکن ہم نے ایسا نہیں کیا ضروری اس کیس کے لئے کرنے کی ضرورت ہے. لیکن ہم نے اس کے بعد تھوڑا سا میں یہ استعمال کر سکتے ہیں آج ہم ٹھیک کر رہے ہیں، کے لئے مثال کے طور پر، بائنری تلاش ہے جب بائنری تلاش ایک علیحدہ میں کہا جاتا ہے تقریب لیکن وہاں ہے اس کے ساتھ کچھ خرابی. ہم میں قدم کرنا چاہتے ہیں جا رہے ہیں بائنری تلاش کرنے کے لئے کال اور اصل میں یہ ڈیبگ. ہم نے کیونکہ ہم یا تو استعمال نہیں کیا کی فہرست ہمارے کوڈ کا ایک اچھا احساس ہے، لیکن اگر میں کیا کوڈ میں کا احساس حاصل کرنے کے لئے چاہتا تھا کے ارد گرد کیا گیا تھا، میں نے صرف فہرست استعمال کر سکتے ہیں. ، ہم استعمال کیا جاتا ہے کی معلومات مقامی لوگوں کے لئے استعمال کیا جاتا پرنٹ. ہم اس میں استعمال کرنے کی ضرورت نہیں تھی آگے کیس، نہ تو ہم استعمال کرنے کی ضرورت کیا ہے غیر فعال، لیکن ہم نے استعمال چھوڑ دیا. ایک بار پھر، ان 10 حکم دیتا ہے، ان کی مشق. آپ کو ان 10 حکم دیتا ہے سمجھ تو، آپ کو کسی بھی بگ کے لئے مقرر کیا جانا چاہئے GDB کے ساتھ جاری. تو ہم پر، پھر، پر جانے کے لئے کے بارے میں ہیں سیکشن کی جڑ آج ختم ہو جا ان چھانٹ رہا ہے اور تلاش الگورتھم. ہم ایسا کرنے سے پہلے، ایک بار پھر، کوئی سوال، GDB کے لئے تبصرے، خدشات؟ تو سب کا استعمال کرنے جا رہی ہے GDB کے بجائے printf کا؟ دائمی کی خاطر تو سب لوگ،، سب ان کے سر کے دائیں جھکی ہے اب، تو میں دفتری اوقات میں آپ دیکھیں گے اور سب کی TFs آپ اور دیکھیں گے وہ کس طرح استعمال کرنے کے لئے مجھے دکھانا، کہیں گے GDB، اور آپ کے قابل ہو جائے گا حق، ان کو ظاہر کرنے کے لئے؟ قسم کی؟ ہو سکتا ہے کہ امید ہے کہ. ڈاؤن لوڈ، اتارنا. تو ہم میں منتقل کرنے کے لئے جا رہے ہیں چھانٹ رہا ہے اور تلاش. تم نے پہلے ہی کے مطابق ایک فہرست ہے نظر آئے گا ہمیں، لیکن یہ نہیں جا رہا ہے کے لئے ہمیشہ ایسا ہونا. تو مسئلہ میں تفصیلات مقرر مسئلہ تین قائم، آپ کے شارٹس ہے آپ کو اس کی اصل کو دیکھنے کے، کر سکتے ہیں اور یہ کہ ان شارٹس کو دیکھنے کے لئے آپ سے کہتا ہے. اس کے علاوہ درس میں گزشتہ ہفتے، ہم گئے یہ الگورتھم کی ایک بہت ہے، تو میں ہوں جا کلاس میں وقت خرچ کرنے کے لئے نہیں جا رہا ان پھر الگورتھم یا ڈرائنگ کے دوران کس طرح ان کے لئے تصاویر یلگوردمز کام. ایک بار پھر، آپ کو دوبارہ دیکھ سکتے ہیں کہ معلومات لیکچر، یا اس کے بارے میں معلومات شارٹس پر outstandingly قبضہ کر لیا ہے ان تلاش، سب کے لئے cs50.net میں دستیاب ہیں جس میں. تو بجائے، ہم کیا کرنے جا رہے ہیں ایسا ان پروگراموں لکھنا ہے. ہم کس طرح کی ذہنی ماڈل، احساس ہے وہ کام، اور تو کیا ہم جا رہے ہیں ایسا کرنے کے لئے اصلی کے لئے ان کے کوڈ ہے. ہم اس ذہنی ماڈل تبدیل کرنے کے لئے جا رہے ہیں، تصویر، اگر آپ، میں اصل کوڈ. اور تم تھوڑا الجھن یا اگر ذہنی ماڈل پر پیار، میں مکمل طور پر سمجھ. ہم اصل میں نہیں کر رہے ہیں کوڈ فورا کود. یہ سلائڈ میں یہ فوری طور پر پوچھتا ہے جبکہ تو آپ کو بائنری تلاش کے کوڈ، اور اصل میں، ایک تکراری ورژن بائنری تلاش، سب سے پہلی چیز میں نے واقعی آپ کیا کرنا چاہیں کچھ pseudocode لکھنے. تو آپ کو اس ذہنی ماڈل ہے کے کس طرح بائنری تلاش کے کام. اگر آپ کو کاغذ کی ایک شیٹ لے لو ایک آسانی سے دستیاب، یا کھولیں ٹیکسٹ ایڈیٹر، اور میں چاہوں گا لکھنے کے لئے سب. لکھنے کے لئے چار منٹ لے لو بائنری تلاش کے لئے pseudocode. ایک بار پھر، کہ ذہنی ماڈل کے بارے میں سوچنا. اگر آپ سوالات ہیں میں کے ارد گرد آئے گا اور ہم تصویر کو اپنی طرف متوجہ کر سکتے ہیں. لیکن سب سے پہلے، ہم پروگرامنگ شروع کرنے سے پہلے، میں لکھنا چاہتے ہیں بائنری تلاش کے لئے pseudocode تو جب ہم میں کودو، ہم کے طور پر کچھ سمت ہے ہم سر کرنا چاہئے جہاں. طالب علم: ہم صف فرض کر سکتے ہیں ہم اقدار پہلے ہی کے مطابق ہے؟ JASON HIRSCHHORN: تو ثنائی کے لئے تلاش کریں کام کرنے کے لئے - بہترین سوال - آپ ایک کے مطابق میں لینے کے لئے ہے اقدار کی صف. تو یہ کام کرے گا فرض. ہم اس کے واپس سلائڈ جائیں گے. آپ جامنی رنگ تقریب میں نظر آئے گا اعلان bool کے binary_search int ہے قیمت، int اقدار، int ن. آپ کو ہے تو اس سے واقف نظر آنا چاہئے پہلے ہی رابطہ کیا یا ہو آپ مسئلہ سیٹ کے ساتھ گندے ہاتھوں. لیکن یہ آپ کی تقریب میں اعلان ہے. ایک بار پھر، کے بارے میں فکر کرنے کی ضرورت نہیں ہونا چاہئے اس وقت اتنا. کیا میں واقعی میں آپ کیا کرنا چاہتے ہیں لے pseudocode بائنری چار منٹ تلاش، اور پھر ہم چلے جائیں گے ایک گروپ کے طور پر اس سے زیادہ. اور میں کے ارد گرد آئے گا. اگر آپ سوالات ہیں، محسوس کرتے ہیں آپ کے ہاتھ کو بلند کرنے کے لئے آزاد. کیوں آپ کو دو منٹ لے نہیں ہے pseudocode کو ختم کرنے کے لئے؟ میں نے یہ کہ مضحکہ خیز لگ سکتا ہے جانتے ہیں ہم پر اتنا وقت خرچ کر رہے ہیں میں بھی اصل میں نہیں ہے کہ کچھ سی، لیکن خاص طور پر ان سے زیادہ کے لئے مشکل یلگوردمز اور مسئلہ ہم باہر کے اعداد و شمار ہے کہ سیٹ، pseudocode فکر نہیں میں شروع نحو کے بارے میں، صرف کے بارے میں فکر منطق، ناقابل یقین حد تک مددگار ہے. اور اس طرح، آپ کو دو کو حل نہیں کر رہے ہیں ایک بار میں ناقابل یقین حد تک مشکل مسائل. آپ کو صرف منطق پر توجہ مرکوز، اور کر رہے ہیں تو آپ نحو میں منتقل. ٹھیک ہے. کے ذریعے جا شروع pseudocode. میں ثنائی، یہاں لکھا ہے تلاش pseudocode. ہم پر یہ لکھیں گے ایک ساتھ مل کر بورڈ. یا میں لکھیں گے اور آپ کو دے دیں گے مجھے ضرورت کا اشارہ ملتا ہے. تو کسی پہلے مجھے دے سکتے ہیں pseudocode کی لائن بائنری تلاش کے لئے لکھا؟ جی ہاں، ینی؟ طالب علم: جبکہ کی لمبائی فہرست صفر سے زیادہ ہے. JASON HIRSCHHORN جبکہ لمبائی صفر سے زیادہ کی فہرست. اور پھر، ہم نے کچھ سی نظر دیکھنے کے یہاں پر نحوی چیزیں. لیکن اس کی سب سے زیادہ انگریزی میں ہے. کسی کو وہ ڈال کسی بھی لائن ہے کیا ان چھدم کوڈ میں اس سے پہلے؟ طالب علم: ایک صف حاصل کریں کی تعداد کے مطابق. JASON HIRSCHHORN: آپ نے لکھا ہے "ایک حاصل کے مطابق تعداد کے صف. "فی تقریب کا اعلان، ہم گزر جائے گا کے مطابق تعداد کے ایک صف. طالب علم: [اشراوی]. JASON HIRSCHHORN: تو ہم اس کی ضرورت گا. لیکن ہاں، ہم اس کی ضرورت نہیں تھی تو ہم کے ہمارے صف کو حل کرنے کی ضرورت ہو گی تعداد، کیونکہ بائنری تلاش صرف حل arrays کے پر کام کرتا ہے. فہرست کی لمبائی صفر کے برابر تو ہے، میں میں ہوں کچھ گھوبگھرالی منحنی خطوط وحدانی میں ڈال دیا جا رہا یہ تھوڑا سا زیادہ کی طرح نظر بنانے کے لئے سی لیکن جبکہ، ایک پر نقشے پر لگتا ہے جبکہ لوپ، تو یہ دیر کے اندر لوپ ہم کیا کرنے کی ضرورت ہے ثنائی کے لئے تلاش کرتے ہیں؟ مجھے نہیں دی ہے جو کسی اور ابھی تک جواب لیکن جو اس نے لکھا؟ طالب علم: لسٹ کے وسط میں جاؤ. JASON HIRSCHHORN: ٹام. فہرست کے وسط میں جاؤ. اور اپ کی پیروی کے سوال، کیا ہم پر ہیں ایک بار ہم کیا کرتے ہیں فہرست کے درمیان میں؟ طالب علم: یہ ہے کہ آیا ایک چیک کرتے آپ کے لئے تلاش کر رہے ہیں کی تعداد. JASON HIRSCHHORN: بہترین. فہرست کے درمیان میں جاؤ اور چیک ہماری قیمت ہے تو - تصوراتی، بہترین. کسی کو کچھ اور تھا کہ اس سے مختلف تھا؟ بالکل ٹھیک ہے. ہم بائنری تلاش میں کیا پہلی بات فہرست کے درمیان میں کرنے کے لئے جانا جاتا ہے اور ہماری قیمت ہے تو دیکھنے کے لئے چیک کریں. ہماری قیمت ہے تو تو میں فرض ، ہم کیا کرتے ہیں؟ طالب علم: ہم [اشراوی] صفر واپس. JASON HIRSCHHORN: جی ہاں، تو ہمارے قیمت ہے، ہم اسے مل گیا. تو ہم تاہم، کوئی راستہ بتا سکتے ہیں اس تقریب کے بیان کیا جاتا ہے، ہم صارف بتا ہم اسے مل گیا. یہ وہاں نہیں ہے، اگرچہ، ہے یہ مشکل ہو جاتا ہے، جہاں. تو یہ وہاں نہیں ہے، تو کسی اور جو بائنری تلاش یا کام کر رہا تھا اب، ہم کیا ایک خیال کرتے ہیں ہے؟ طالب علم: سوال. JASON HIRSCHHORN: جی ہاں؟ طالب علم: صف پہلے ہی کے مطابق ہے؟ JASON HIRSCHHORN: جی ہاں، ہم سنبھالنے کر رہے ہیں صف پہلے ہی کے مطابق ہے. طالب علم: تو پھر آپ کو چیک کرنے کے ہے اگر آپ کو دیکھ کر اس قدر سے زیادہ ہے آپ چاہتے ہیں کہ قیمت، آپ کو منتقل کر سکتے ہیں دوسرے نصف کے درمیان. JASON HIRSCHHORN: تو اگر مشرق فہرست ہم سے زیادہ ہے کیا، تو ہم کرتے ہیں؟ ہم جہاں میں ڈالیں؟ طالب علم: آپ کو منتقل کرنا چاہتے ہیں کے ساتھ کی فہرست کے نصف اس سے بھی کم تعداد کے. JASON HIRSCHHORN: تو ہم کریں گے چھوڑ دیا کال. مشرق زیادہ ہے تو، ہم تلاش کر سکتے ہیں فہرست کے بائیں نصف. اور اس کے بعد تلاش کی طرف سے، کیا میں نے تلاش کی طرف سے مطلب ہے؟ طالب علم: [اشراوی]. JASON HIRSCHHORN: ہم مشرق کے پاس جاؤ. ہم اصل میں اس بات کا اعادہ. ہم اپنے جبکہ لوپ کے ذریعے واپس جانا. میں آپ کو آخری ایک دے گا - ورنہ اگر،، مشرق سے کم ہے ہم یہاں کیا کرتے ہیں؟ طالب علم: ٹھیک ہے جاؤ. JASON HIRSCHHORN: ٹھیک ہے تلاش. یہ اچھا لگ رہا ہے، لیکن کسی کو بھی ہے ہم لاپتہ یا جا سکتا ہے کہ کچھ آپ کو ڈال دیا کہ کچھ اور آپ چھدم کوڈ میں؟ تو یہ ہم نے اب تک کیا ہے. فہرست کی لمبائی زیادہ سے زیادہ ہے صفر سے، ہم جا رہے ہیں فہرست کے وسط اور ہماری قیمت ہے تو چیک کریں. مشرق بڑا ہے، ہم جا رہے ہیں مشرق ہے تو تلاش اور، چھوڑ دیا کم، ہم تلاش کرنے کے لئے جا رہے ہیں. تو ہم سب کے ساتھ کچھ واقف تھا ہم کمپیوٹر سائنس میں استعمال کی شرائط اور اوزار ہم. لیکن آپ نے پہلے ہی ہم تھے محسوس کریں گے انگریزی میں بات، لیکن ہم نے محسوس کیا ایک پر نقشے پر لگ رہا تھا کہ بہت سی چیزوں کے ہم اپنی کوڈنگ کے آلے کٹ میں ہے، فورم کے اوزار. تو دائیں بیٹ سے دور، ہم نہیں ہیں اصل میں ابھی تک کوڈ جا رہا. ہم نے انگریزی میں یہاں کیا دیکھ رہے ہیں کہ نقشے چیزوں کو ہم C میں لکھ سکتے ہیں؟ طالب علم: جبکہ. JASON HIRSCHHORN جبکہ. تو یہ بات ٹھیک ہے یہاں کیا پر نقشے؟ طالب علم: ایک جبکہ لوپ. JASON HIRSCHHORN: جبکہ لوپ؟ یا شاید، عام طور پر، ایک لوپ. ہم سے زیادہ کچھ کرنا چاہتے ہیں. تو ہم ایک لوپ کوڈ لئے جا رہے ہیں. ہم نے کیا ہے کیونکہ ہم پہلے ہی جانتے ہیں، یہ ایک وقت کے جوڑے اور ہم ، وہاں سے باہر مثالیں بہت ہے کس طرح اصل میں لکھنا ایک لوپ کے لئے اس انڈیکس. تو یہ بہت آسان ہونا چاہئے. ہم اس کو حاصل کرنے کے قابل ہونا چاہئے بہت تیزی سے شروع کر دیا ہے. اور کیا ہم یہاں دیکھتے ہیں؟ کیا دوسری ڈھانچے syntaxes، چیزیں ہم C میں سے واقف ہیں، ہم کرتے ہیں پہلے ہی کی بنیاد کا احساس ہے ہم استعمال کیا جاتا الفاظ سے دور؟ جی ہاں، انا؟ [اشراوی] صرف مذاق کر رہا. ینا، آگے بڑھو. طالب علم: اگر اور کچھ. JASON HIRSCHHORN: اگر اور - یہاں. تو کیا ان لوگوں کی طرح نظر آتے ہیں؟ طالب علم: ایک اور بیان تو. JASON HIRSCHHORN: جی ہاں، حالات، ٹھیک ہے؟ تو ہم شاید ضرورت پڑے گی کچھ شرائط لکھنا. اور پھر، اگرچہ ہو سکتا ہے کہ میں بردوست سب سے پہلے، ہم عام طور پر اب ایک احساس ہے حالات اور لکھنے کے لئے کس طرح حالات کے لئے نحو. ہم نہیں ہے تو، ہم صرف نظر حالات، کٹ اور پیسٹ کے لئے نحو کہ، ہم جانتے ہیں یہاں ایک شرط کی ضرورت ہے. ہم پر اس نقشے کو دیکھنے کے کسی بھی دوسری چیزوں ہم C میں کرنے کی ضرورت ہے ہو سکتا ہے؟ جی ہاں، Aleha؟ طالب علم: یہ، واضح ہو سکتا ہے صرف کی جانچ پڑتال کی طرف سے اگر قیمت کچھ برابر. JASON HIRSCHHORN: تو ہم کس طرح چیک کر سکتا ہوں اور - اس فہرست کے درمیان میں کرنے کے لئے جانا ہماری قیمت ہے اور اگر چیک کریں؟ ہم اس C میں کس طرح کرتے ہیں؟ اس کے لئے نحو کیا ہے؟ طالب علم: برابر، برابر. JASON HIRSCHHORN: برابر، برابر. تو اس چیک شاید جا رہا ہے ایک برابر ہو، برابر. تو ہم کہیں کہ کی ضرورت ہے پتہ چل جائے گا. اور اصل میں، صرف اس کے لکھنے میں، ہم ان دوسری چیزوں کو دیکھنے کے. ہم کچھ کرنے کے لئے جا رہے ہیں مقابلے آپریٹرز وہاں میں - تصوراتی، بہترین. تو یہ اصل کی طرح، کی طرف سے اور لگ رہا ہے بڑی، ہم نہیں لکھا ہے ایک ابھی تک C کوڈ کے لفظ. لیکن ہم ذہنی ماڈل ہے لیکچر اور ان کے شارٹس کے ذریعے. ہم نے ایک گروپ کے طور پر چھدم کوڈ لکھا. اور پہلے سے ہی، ہم 80 فیصد تو نہیں ہے ہم کیا کرنے کی ضرورت کا 90 فی صد. اب، ہم صرف کوڈ کرنے کی ضرورت ہے یہ، ایک بار پھر، ایک جو حل کرنے کے لئے غیر معمولی مسئلہ. لیکن کم از کم ہم منطق پر پھنس گئے ہیں. ، ہم دفتر کے اوقات کے لئے جانا اب جب کم از کم مجھے ضرورت ہے معلوم ہے کہ کیا کہہ سکتے ہیں، ایسا کرنے کے لئے، لیکن آپ کو یاد دلاتے کر سکتے ہیں نحو کے مجھے؟ یا دفتر گھنٹے، بھیڑ رہے ہیں یہاں تک کہ اگر بلکہ، نحو کے لئے گوگل کر سکتے ہیں منطق پر پھنس گئے کیا جا رہا ہے سے. اور پھر، کی بجائے حل کرنے کی کوشش منطق اور نحو کے مسائل تمام ایک ہی وقت میں، یہ اکثر زیادہ بہتر ہے میں ان دو مشکل مسائل توڑ دو زیادہ انتظام ہیں اور کرتے ہیں سی میں چھدم کوڈ سب سے پہلے اور پھر کوڈ تو کے لئے میں نے کیا دیکھتے ہیں چھدم کوڈ وقت سے قبل. فہرست کی لمبائی زیادہ سے زیادہ ہے صفر سے، مشرق میں دیکھو فہرست کے. تعداد اور، سچ ہے واپس مل گیا ہے تعداد اس سے زیادہ، تلاش چھوڑ دیا. اور اگر تعداد کم، تلاش حق، جھوٹے واپس. تو ہے کہ تقریبا ایک جیسی لگتی ہے اگر نہیں ہم نے لکھا جو تقریبا ایک جیسی. اصل میں، ٹام، آپ سب سے پہلے کیا کہا، فہرست کے اور اگر مشرق توڑ دو بیانات میں پایا تعداد میں نے اصل میں ہے کیا. میں وہاں ان کے مشترکہ. میں بات سننی چاہیے اگر آپ پہلی بار. تو ہے کہ ہم نے چھدم کوڈ ہے. اب آپ چاہتے ہیں تو، معذرت، جانا ہمارے ابتدائی مسئلہ کی حمایت. کوڈ binary.c ہیں. تو ایک تکراری ورژن کے نفاذ کے مندرجہ ذیل کا استعمال کرتے ہوئے بائنری تلاش تقریب اعلان. اور آپ کو کاپی کرنے کے لئے کی ضرورت نہیں ہے اس کو ابھی تک. میں اصل میں کھولنے جا رہا ہوں اپ یہاں binary.c. تو تقریب اعلان ہے سکرین کے وسط میں. اور تم میں چھدم کوڈ لیا دیکھیں گے اپنے اطراف سے، لیکن تقریبا ایک جیسی کیا ہم نے لکھا، اور آپ کے لئے اس میں ڈال دیا. تو اب، پانچ منٹ لے اس تقریب کے کوڈ. اور پھر، اگر آپ کو کوئی سوال ہے تو، آپ کے ہاتھ کو بلند، میں کروں گا، مجھے پتہ ہے کے ارد گرد آئے. طالب علم: [اشراوی]. JASON HIRSCHHORN: تو میں ثنائی لیا تلاش تعریف لائن 12 پر، سب سے اوپر. یہی وجہ ہے کہ میں نے اپنے سلائڈ کے لئے گیا تھا. اور پھر یہ سب چھدم کوڈ میں صرف کاپی اور سلائڈ سے چسپاں، چھدم کوڈ سلائڈ. میں اب بھی [اشراوی] نہیں سن رہا ہوں. آپ کو ختم کر دیا ہے اگر ایسا ہے تو آپ عمل درآمد، میں نے اس کی جانچ کرنا چاہتے. میں آپ helpers.h فائل ای میل پہلے اس کلاس میں. اور اس کے ساتھ ساتھ آن لائن دستیاب ہو جائے گا دیکھ کر لوگوں کے لئے ڈاؤن لوڈ، اتارنا کے لئے اس حصے کے وقت میں تاخیر. اور میں صرف عام تقسیم استعمال کیا جاتا ہے pset3 سے کوڈ. تو میں find.C، میری helpers.h فائل کو استعمال کر لیا بلکہ helpers.h فائل سے کہ تقسیم کے کوڈ میں دیا ہے. اور میں ایک دوسرے کی تبدیلی کرنے کے لئے تھا بلکہ صرف بلا سے find.C تلاش، binary_search کال. تو آپ اپنے کوڈ کو ٹیسٹ کرنے کے لئے کرنا چاہتے ہیں تو، کہ یہ کس طرح کرنا ہے. اصل میں، ہم اس کوڈ کو چلانے جائے گا جب اب، میں نے صرف ایک نقل کی جاتی میری pset3 ڈائریکٹری، ایک بار پھر، باہر تبدیل پھر مددگار فائلوں اور بنا دیا binary_search فون کرنے find.C میں تبدیل کی بجائے صرف تلاش. JASON HIRSCHHORN: جی ہاں. آپ سے ایک سوال ہے؟ طالب علم: کوئی بات نہیں. JASON HIRSCHHORN: کوئی تشویش نہیں. ٹھیک ہے، چلو شروع کرتے ہیں. ہم نے ایک گروپ کے طور پر اس کوڈ کو کیا جائے گا. ایک دوسرے نوٹ. ایک بار پھر، اس، آسانی سے تبدیل کیا جا سکتا ہے مسئلہ سیٹ تین کے لئے. میں اپنے helpers.h فائل ہے جس میں، بلکہ helpers.h سے ہم دے رہے ہیں، بائنری تلاش، بلبلا اعلان ترتیب، اور انتخاب کی طرح. اور find.c میں آپ کو لائن پر محسوس کریں گے، کیا لائن 68، ہم بائنری کال، ہے تلاش کی بجائے تلاش. تو پھر، دستیاب ہے کہ کوڈ آن لائن یا آپ ہیں کہ کوڈ ابھی پیدا آسانی سے تبدیل کیا جا سکتا ہے کے لئے P یہ چیک کرنے کے 3 سیٹ. لیکن سب سے پہلے، بائنری تلاش کے کوڈ ہیں. ہمارے تقریب اعلان، ہم ایک bool واپس. ہم قیمت نامی ایک عددی لے. ہم نے integers کے ایک صف لے اقدار، اور ہم ن لے صف کے سائز. یہیں لائن 10،، میں ہے تیز stdbool.h شامل ہیں. کہ ہے کیوں کسی کو پتہ ہے؟ تو کوڈ کے اس لائن کیا کرتا ہے؟ طالب علم: یہ آپ کو کرنے کی اجازت دیتا ایک bool واپسی کی قسم کا استعمال کرتے ہیں. JASON HIRSCHHORN: بالکل. طالب علم: یا یہ اجازت دیتا ہے کہ ایک لائبریری ہے ایک bool واپسی کی قسم استعمال کرنے کے لئے. JASON HIRSCHHORN: تو تیزی سے شامل ہیں stdbool.h لائن مجھے کچھ دیتا ہے چیزوں کے لئے کی تعریف اور اعلان میں استعمال کرنے کی اجازت ہوں اس لائبریری. لہذا ان کے درمیان ہے کہ کہہ رہا ہے اس قسم bool کہتے ہیں، اور یہ بھی ہو سکتا ہے صحیح یا غلط. تو یہ اس لائن کرتا ہے. میں اس لائن کی ضرورت نہیں تھی اور اگر میں کروں گا یہ لکھنے کے لئے مصیبت میں حاصل یہاں، bool کے، وہیں لفظ. بالکل صحیح. تو میں نے اس کے کوڈ میں اس کی ضرورت. ٹھیک ہے. تو یہ، پھر، تکراری ہے ورژن، نہیں ایک پنراورتی ایک. تو ہم شروع کرنے ہیں. یہ پہلے سے شروع کرتے ہیں چھدم کوڈ کی لائن. اور امید ہے کہ، ہم - یا نہیں امید ہے. ہم نے کمرے کے ارد گرد جا رہے ہیں. ہم لائن کی طرف سے لائن جائیں گے، اور میں مدد ملے گی آپ کو ہم کی ضرورت ہے کہ لائن اعداد و شمار سب سے پہلے لکھنے کے لئے. تو جبکہ فہرست کی لمبائی صفر سے زیادہ ہے. کے سامنے شروع. کیا لائن میں لکھنا چاہیے یہاں، کوڈ میں؟ طالب علم: جبکہ قوسین ن 0 سے بڑا ہے. JASON HIRSCHHORN: جبکہ ن 0 سے بہت اچھا ہے. تو (ن)، کی ایک فہرست کے سائز ہے اور ہم اگر جانچ پڑتال کر رہے ہیں - [INTERPOSING آوازیں] JASON HIRSCHHORN: - معاف کیجئے گا؟ طالب علم: ہم کیسے جانتے ہیں کہ N فہرست کے سائز کے ہے؟ JASON HIRSCHHORN: معذرت. pset کی تفصیلات کے مطابق، تلاش اور طرح، آپ کو لکھنے کے لئے کی ضرورت ہے کام کرتا ہے (ن) کی فہرست کے سائز ہے. میں یہاں اس بات کی وضاحت کرنا بھول گئے. لیکن ہاں. (ن) کے سائز ہے اس معاملے میں کی فہرست،. تو جبکہ N 0 سے بڑا ہے. ٹھیک ہے. کہ تھوڑا مسئلہ ثابت ہو سکتا ہے تاہم، چیزوں پر اگر. ہم جانتے رہیں گے کیونکہ اس میں فہرست کے سائز کے تقریب، لیکن ہم شروع کا کہنا ہے کہ 5 integers کے ایک صف کے ساتھ. اور ہم کے ذریعے جاؤ اور ہم نے اب اس کو نیچے اکٹھا 2 integers کے ایک صف. کہ جس میں 2 integers کے ہے؟ سائز ہم چاہتے ہیں کہ اب 2 ہے میں نظر آتے ہیں، لیکن ہے کہ جس میں 2 ہے؟ ہے، اس سوال کا احساس ہے؟ ٹھیک ہے. میں اسے دوبارہ سے پوچھیں گے. تو ہم 5 سے اس صف کے ساتھ شروع integers کے، اور (ن) کے حق، 5 برابر ہے؟ ہم یہاں کے ذریعے چلائے جائیں گے. ہم شاید سائز تبدیل کر دیں گے، حق، چیزوں پر جانے کے طور پر. جو ہم ہم کرنا چاہتے ہیں کا کہنا ہے کہ کیا ہے. ہم تلاش نہیں کرنا چاہتے مکمل بات ایک بار پھر. تو ہم 2 اسے تبدیل کہتے ہیں. ہم عجیب ہے کہ نصف فہرست لے. تو صرف 2 منتخب کریں. تو اب ن 2 برابر. میں غریب کے لئے معذرت خواہ خشک دستی تحریر مارکر. ٹھیک ہے نا؟ اور ہم نے فہرست کے ذریعے تلاش کر رہے ہیں پھر 2 سائز کی ایک فہرست کے ساتھ. ٹھیک ہے، ہمارے صف اب بھی 5 سائز کے ہے. ہم صرف چاہتے ہیں اس میں 2 کے مقامات تلاش. لہذا ان جس میں 2 مقامات ہیں؟ احساس ہے کہ ہے؟ انہوں نے چھوڑ دیا 2 مقامات ہیں؟ وہ صحیح 2 مقامات ہیں؟ وہ مشرق 2 مقامات ہیں؟ ہم اس مسئلے کو ٹوٹ، لیکن ہم اصل میں معلوم نہیں ہے جس کے حصے کی ہم اب بھی دیکھ رہے ہیں مسئلہ، صرف ان 2 متغیر ہونے کی طرف سے. تو ہم زیادہ تو تھوڑا سا کی ضرورت ہے ن 0 سے بڑا ہے جبکہ. ہم جاننے کی ضرورت ہے کہ جہاں ن ہماری اصل صف میں ہے. تو کوئی ہے اس لائن کو تبدیل؟ اس لائن میں سے زیادہ تر ہے بالکل درست. ایک دوسرے کے علاوہ ہے؟ ہم ن کے لئے کچھ باہر تبادلہ کر سکتے ہیں تھوڑا سا بہتر اس لائن ہے؟ MM-HM؟ طالب علم: اگر آپ کو ایک متغیر کی ابتدا کر سکتے ہیں اس کے بعد استعمال کیا جائے گا کہ ن لمبائی کی طرح بعد تقریب میں؟ JASON HIRSCHHORN: تو ابتدا (ن) کے لئے ایک متغیر کی حد کے، اور ہم اس کے بعد استعمال کرتے ہیں؟ لیکن اس وقت ہم صرف لمبائی اور ہم کو اپ ڈیٹ اب بھی اس مسئلہ میں چلاتے ہیں ہم کہاں ہمارا مسئلہ کی لمبائی کو کاٹ، لیکن ہم، اصل میں، جہاں کبھی پتہ نہیں کہ لمبائی پر نقشے. طالب علم: ایسا نہیں جا رہا ہے تم کہہ رہے ہو اس کے بعد جب، چھوڑ، تلاش، حق کی تلاش؟ آپ کو ایک مختلف پر جانے کے لئے جا رہے ہیں آپ کے علاقے - JASON HIRSCHHORN: ہم جا رہے ہیں ایک ایسے علاقے میں، لیکن کس طرح ہم جانتے ہیں پر جانے کے لئے جس کی ہیں؟ ہم صرف صف اور اس ہے تو (ن)، ہم کیسے جانتے ہو جہاں صف میں جانے. پیٹھ میں، جی ہاں؟ طالب علم: اگر آپ ہے، کی طرح، ایک کم پابند اور ایک پابند بالائی رکن کی یا کچھ اس طرح؟ JASON HIRSCHHORN: ٹھیک ہے. تو یہ ایک اور خیال ہے. بلکہ صرف کا ٹریک رکھنے کے مقابلے میں سائز، ہم کم کے ٹریک رکھنے کے لئے اور پابند بالائی متغیر. تو ہم کس طرح سے سائز حساب ہے کم جانے اور جانے اوپری؟ [INTERPOSING آوازیں] JASON HIRSCHHORN: باقی نکالنا. اور بھی کم کا ٹریک رکھنے پابند اور اوپری ہمیں بتائیں پابند، ہم ان دونوں کی تلاش کر رہے ہیں؟ ہم یہاں پر ان دو کی تلاش کر رہے ہیں؟ ہم مشرق کے دو تلاش کر رہے ہیں؟ شاید نہیں مشرق دو، کیونکہ اس، اصل میں، بائنری تلاش ہے. لیکن اب ہم سائز کو حاصل کرنے کے قابل ہو جائے گا، بلکہ صف کے حدود. جوہر میں، ہم اپنے وشال ہے تو فون بک، ہم نصف میں چیر. چھوٹے اب ہم کہاں جانتے ہیں فون بک ہے. لیکن ہم اصل ripping کے نہیں کر رہے ہیں نصف میں فون کی کتاب. ہم اب بھی جاننے کی ضرورت ہے جہاں ہمارا مسئلہ کی نئی حد ہے. کسی کو کوئی سوال ہے اس کے بارے میں؟ جی ہاں؟ طالب علم: یہ ایک پیدا کی طرف سے کام کریں گے متغیر، میں، آپ تو صرف میں منتقل ہے کہ اس میں رشتہ دار کی پوزیشن موجودہ پوزیشن، اور لمبائی، ن؟ JASON HIRSCHHORN اور میں کیا ہے؟ طالب علم: میں طرح طرح کی طرح - کی طرح آپ میں ہونا ابتدا کریں گے صف کے وسط کی پوزیشن. اور پھر، اگر پوزیشن پر قیمت میں پایا میں صف کے وسط کی آپ کو ضرورت کی قیمت سے کم ہو، اب میں صف کی لمبائی ہو جاتا ہے، اس کے علاوہ میں کی قیمت 2 سے تقسیم. کی طرح، دیکھ، تم میں منتقل - JASON HIRSCHHORN: ٹھیک ہے. طالب علم: - تک - JASON HIRSCHHORN: تو میں نے تقریبا ہوں کام کریں گے کہ مثبت. لیکن بات کیا جا رہا ہے، آپ کو دو کی ضرورت ہے یہاں کی معلومات کے ٹکڑے ٹکڑے. آپ، شروع اور ختم ہونے کے ساتھ یہ کر سکتے ہیں یا آپ پھر سائز کے ساتھ کیا، کر سکتے ہیں اور کچھ مارکر. لیکن آپ کو دو ٹکڑے کی ضرورت ہے یہاں معلومات کے. آپ کو صرف ایک کے ساتھ کی طرف سے حاصل نہیں کر سکتے. کہ سمجھ میں آتا ہے ہے؟ تو ہم کے ذریعے جانے کے لئے جا رہے ہیں، اور ہم کیا کرنے جا رہے ہیں [اشراوی] اور کچھ مارکر بنانے کے. تو آپ کو آپ کے کوڈ میں نے کیا لکھا؟ طالب علم: میں نے صرف اتنا کہا INT پابند ایک 0 کے برابر ہے. JASON HIRSCHHORN: کی کال کرتے ہیں کہ INT، شروع. طالب علم: ٹھیک ہے. JASON HIRSCHHORN: یہ کرتا ہے میرے لئے زیادہ احساس. اور؟ طالب علم: میں ختم ہونے والے INT، مجھے لگتا ہے، انہوں نے کہا کہ. JASON HIRSCHHORN: ختم سیریز: Int. طالب علم: میں، لگتا ہے، (ن) مائنس 1 یا اس طرح کچھ. کی طرح، آخری عنصر. JASON HIRSCHHORN: تو آپ نے لکھا، INT برابر 0، نیم وقفہ، اور int شروع آخر ن مائنس 1، نیم وقفہ برابر. تو بنیادی طور پر، ہم کیا کر رہے ہیں یہاں، سب سے پہلے 0 پوزیشن. ہم arrays میں جانتے ہیں کے طور پر، وہ نہیں جاتے N کرنے کے لئے، وہ 1 ن مائنس جانا. تو ہم ہمارے صف سے کچھ حد ہے. اور ان کی ابتدائی حد ہو ہمارا مسئلہ کی ابتدائی حد. ٹھیک ہے. تو یہ اچھا لگتا ہے. پھر ہم نے، واپس اس لائن پر جاتے ہیں جبکہ فہرست کی لمبائی، 0 سے بڑا ہے کیا، بجائے اس کے (ن) کے، چاہئے ہم یہاں میں ڈال دیا؟ طالب علم: مائنس آغاز ختم لکھیں. JASON HIRSCHHORN: مائنس ختم کرتے ہوئے شروع 0 سے بڑا ہے؟ ٹھیک ہے. اور ہم چاہتے ہیں، کر سکتے ہیں کہ تھوڑا سا اچھا، کیا اور ہم ایسا کر سکتے ہیں؟ ہم صاف کرنے کے لئے چاہتے تھے اپ تھوڑا سا اس کوڈ؟ کس طرح ہم 0 سے چھٹکارا حاصل کر سکتے ہیں؟ یہ صرف ایک سٹائل سوال ہے. یہ اب صحیح ہے. طالب علم: خاتمہ نہیں کرتا برابر آغاز؟ JASON HIRSCHHORN: ہم کیا کر سکتے ہیں؟ [INTERPOSING آوازیں] طالب علم: ختم زیادہ ہے؟ JASON HIRSCHHORN: جی ہاں. ختم جبکہ ہم صرف کر سکتے ہیں آغاز سے بڑا ہے. ٹھیک ہے. ہم دوسری طرف کرنے کے لئے شروع میں شامل اس کے، اور ہم 0 سے چھٹکارا مل گیا. تو یہ صرف ایک لگتا ہے تھوڑا سا کلینر. ٹھیک ہے. فہرست کی لمبائی 0 ہے جبکہ تو،، ہم نے لکھا کہ، ختم، جبکہ زیادہ ہے آغاز سے. ہم اپنے ضروری میں ڈال دیا جا رہے ہیں گھوبگھرالی منحنی خطوط وحدانی، اور اس کے بعد سب سے پہلی چیز ہم کرنا چاہتے ہیں پر نظر ہے ایک چھوٹی سی فہرست میں ان. تم نے؟ کیا آپ مجھے دے سکتے ہیں - طالب علم: اگر قوسین قیمت مربع بریکٹ - JASON HIRSCHHORN: قوسین تو قیمت مربع بریکٹ. طالب علم: 2 کی طرف سے تقسیم کو ختم. JASON HIRSCHHORN: ختم؟ طالب علم: میں نے آپ کے ساتھ ایک مسئلہ دیکھ - JASON HIRSCHHORN: ٹھیک ہے. ٹھیک ہے، مشرق کی طرف دیکھو. ہم کس طرح مشرق کیا ہے پتہ ہے؟ جی ہاں. تو مجھے اس کوڈ کو خارج کر دیں. ہم کس طرح مشرق کیا ہے پتہ ہے؟ کچھ میں، آپ کو شروع ہے جب اور آخر، کس طرح آپ کو تلاش کرتے ہیں مشرق؟ طالب علم: آپ اوسط. طالب علم: آپ کو ان میں شامل کریں ایک دوسرے کے ساتھ اور پھر - JASON HIRSCHHORN ان کریں ایک دوسرے کے ساتھ اور پھر؟ طالب علم: اور آپ اوسط. 2 کی طرف سے تقسیم. JASON HIRSCHHORN ان کریں ایک دوسرے کے ساتھ اور 2 کی طرف سے تقسیم. تو int مشرق برابر ہے؟ ٹام، تم مجھے دے سکتے ہیں؟ طالب علم: آغاز کے علاوہ ختم - JASON HIRSCHHORN: آغاز پلس ختم. طالب علم: تمام، بریکٹ، 2 کی طرف سے تقسیم کیا گیا. JASON HIRSCHHORN: تمام، قوسین میں، 2 کی طرف سے تقسیم کیا گیا. تو ہے کہ مجھے مشرق دیتا ہے کچھ بھی، صحیح؟ طالب علم: آپ کو اسے دور کرنے کی ضرورت ہے. JASON HIRSCHHORN: آپ کیا مطلب، میں نے اس کے لئے منہاج القرآن کی ضرورت ہے؟ [INTERPOSING آوازیں] طالب علم: کیونکہ یہ ایک عجیب ہے تعداد، تو اس طرح ہے - JASON HIRSCHHORN: ٹھیک ہے، ٹھیک ہے. تو میں نے اسے پکڑ دھکڑ کر سکتے ہیں. یہ ایک طاق، ایک 5 لیکن اگر، میں کر سکتا ہوں دور مشرق سے 1 لے. یا پھر یہ اس سے بھی بڑی تعداد ہے، بلکہ، کہ ایک بہتر معاملہ ہے. یہ 4 ہے تو، ہم صرف 4 ہے، میں لے جا سکتے ہیں سب سے پہلے "مشرق"، اقتباس، unquote جو یا دوسری "مشرق" ایک. یا تو ایک بائنری تلاش کے لئے کام کریں گے، تو میں نے اصل میں یہ منہاج القرآن کی ضرورت نہیں ہے. لیکن ایک دوسری چیز میں ہے اس لائن کو دیکھنے کے لئے کی ضرورت ہے. ہم، ابھی تک یہ احساس نہیں کر سکتے ہیں لیکن ہم اسے واپس آ جائیں گے. اس لائن اصل میں اب بھی کیونکہ ایک اور چیز کی ضرورت ہے. لیکن اب تک، ہم نے لکھا ہے کوڈ کی چار لائنوں. ہم اپنے آغاز ہے اور مارکر ختم. ہم نقشے جو ہمارے جبکہ لوپ، ہے پر براہ راست اپنے pseudocode پر. ہم نقشے کہ مشرق کی طرف دیکھ رہے ہیں براہ راست اپنے pseudocode پر. میں نے اس کے مشرق کو جاتا ہے کا کہنا ہے کہ فہرست میں، کوڈ کی اس لائن. اور پھر، ایک بار ہم کے درمیان جانا فہرست، ہم کرنے کی ضرورت ہے اگلی بات ہماری قیمت کے لئے ہے تو چیک ہے pseudocode ہم نے پہلے لکھا تھا. تو ہم کس طرح کی جانچ پڑتال کرتے ہیں تو ہماری قیمت فہرست کے درمیان میں ہے؟ آپ. تم نے یہ کیوں نہیں کرتے؟ طالب علم: ہماری قیمت ہے ہے تو مشرق میں برابر ہے ہم نے مقرر - جو کچھ بھی میں برابر برابر کا مطلب - JASON HIRSCHHORN: یہ - ٹھیک ہے. طالب علم: مجھے یقین نہیں ہے کیا متغیر ہم تلاش کر رہے ہیں کے لئے اگرچہ، ہے کیونکہ - [INTERPOSING آوازیں] طالب علم: [اشراوی]. JASON HIRSCHHORN: بالکل. تقریب کے اعلان کے مطابق، ہم ایک قیمت کے لئے تلاش کر رہے ہیں. تو ہم نے ایک قیمت کے لئے تلاش کر رہے ہیں اقدار کی ایک صف میں. تو آپ بالکل ٹھیک کہہ رہے ہو. آپ کیا کریں گے، تو کھلی قوس قیمت بریکٹ مشرق بریکٹ برابر بند کر دیا اندر کی قیمت کے برابر ہے، اور ہمیں کیا ضرورت ہے؟ تو ہماری قیمت ہے وہاں، کیا ہم کیا کرنے کی ضرورت ہے؟ [INTERPOSING آوازیں] طالب علم: صفر واپس. JASON HIRSCHHORN: حقیقی واپس. طالب علم: یہ سچ ہے واپس. JASON HIRSCHHORN: مائیکل، اس لائن کیا کرتا ہے؟ طالب علم: [اشراوی] پروگرام کو چلانے کے ہے اس کورس، اور اس سے زیادہ ہے، اور آپ کیا کرنے کی ضرورت ہے؟ JASON HIRSCHHORN: پروگرام یا کیا؟ اس صورت میں؟ طالب علم: فنکشن. JASON HIRSCHHORN: فنکشن. اور اس طرح، کہا جاتا ہے، جو کچھ بھی کرنے کے لئے واپس کرنے کے لئے یہ اور یہ سچ ہے، اس کی قیمت دے. بالکل صحیح. مین. واپسی کی قسم کیا ہے اہم، مائیکل؟ طالب علم: INT، عددی؟ JASON HIRSCHHORN: INT، بالکل. ایک عددی. اس بات کا یقین کرنے کے لئے صرف ایک سوال تھا تم لوگ اس کے سب سے اوپر پر کیا گیا ہے. یہ عام طور پر ہے، تو کیا واپس کرتا ہے تمام چیزوں کو اچھی طرح سے کام کر رہے ہیں؟ طالب علم: صفر. JASON HIRSCHHORN: صفر. بالکل صحیح. طالب علم: یہ صرف صحیح واپس تو، دی جا کوئی معلومات نہیں ہے کے بارے میں کیا - اوہ، یہ صرف کہہ رہا ہے کہ قیمت صف کے اندر ہے. JASON HIRSCHHORN: بالکل. اس پروگرام کے بارے میں معلومات نہیں دے رہی قیمت ہے کہاں کی. یہ صرف جی ہاں، ہم نے محسوس کیا، کہہ رہا ہے یہ، یا نہیں، ہم اسے تلاش نہیں کیا. تو پتہ ہے، تو حقیقی واپس. ٹھیک ہے، اصل میں ہم صرف کیا کہ واقعی فوری طور پر کوڈ کے کہ ایک لائن کے ساتھ. تو میں pseudocode کی اس لائن کو منتقل کریں گے. طالب علم: ہم نے کی ضرورت نہیں ہے صف کو تبدیل کرنے کے لئے؟ یہ درست، اقدار، قدر نہیں ہونا چاہئے؟ JASON HIRSCHHORN: معذرت. آپ کا شکریہ. طالب علم: جی ہاں. JASON HIRSCHHORN: یہ لائن اقدار ہونا چاہئے. بالکل صحیح. ٹھیک ہے. تو ہم مشرق فہرست پر دیکھا ہے. تعداد پایا واپس اگر یہ سچ ہے. تو، اپنے pseudocode کے ساتھ جاری مشرق زیادہ ہے، تلاش چھوڑ دیا. تو تو میں، یہاں میں تھا تعداد اعلی، تلاش چھوڑ دیا. کانسٹنٹائن، آپ کو دے سکتا آپ کے وزٹرز کا کوڈ کے اس لائن؟ طالب علم: مشرق اگر ویلیو - JASON HIRSCHHORN: تو قیمت ہے - کھلی قوس بریکٹ اہمیت دیتا ہے تو مشرق قریب بریکٹ - طالب علم: قیمت سے چھوٹا ہے؟ JASON HIRSCHHORN: سے بھی کم ہے. طالب علم: قیمت سے کم. JASON HIRSCHHORN: قیمت. ٹھیک ہے، اصل میں، آپ چاہتے ہیں تعداد چیک - معذرت. یہ تھوڑا سا مبہم ہے. لیکن اور اگر میں نمبر فہرست کے درمیان میں زیادہ ہے. طالب علم: ٹھیک ہے، اوہ. JASON HIRSCHHORN: میں نے اس کو تبدیل کریں گے. مشرق زیادہ ہے اور اگر، ہم ٹھیک ہے، بائیں طرف تلاش کرنا چاہتے ہیں؟ اور ہم اندر کیا کرتے ہیں یہ شرط ہے؟ طالب علم: میں نے ایک چھوٹی سی تبدیلی کر سکتے ہیں اگر حالت، اور کرنے کے لئے اسے تبدیل؟ JASON HIRSCHHORN: اگر نہیں تو؟ ٹھیک ہے. تو اس کوڈ پر عمل کیا جائے گا اسی کے بارے میں. لیکن اس کے علاوہ، اگر کا استعمال کرتے ہوئے کے بارے میں اچھی بات یہ ہے ، یا اگر نہیں تو اگر کسی اگر، اور، تو ان میں سے صرف ایک کی جا رہی ہے کہ اس کا مطلب جانچ پڑتال کی جائے، ان کے تمام تین، ممکنہ طور پر. اور یہ کہ یہ تھوڑا سا بنا دیتا ہے ہے کہ کمپیوٹر پر اچھے آپ کے پروگرام چل رہا ہے. تو [؟ کانسٹنٹائن،؟] ہم، اقدار ورنہ اگر، اس لائن کے اندر ہیں بریکٹ مشرق بند بریکٹ قیمت سے زیادہ ہے. ہمیں کیا ضرورت ہے؟ ہم نے چھوڑ دیا تلاش کرنے کی ضرورت. ہم اس کو کس طرح کرتے ہیں؟ میں آپ کو ایک آغاز دینے جا رہا ہوں. ہم نے ان دو چیزیں ہیں شروع اور ختم. تو کیا ہو کرنے کی ضرورت ہے شروع کرنے کے لئے؟ آپ کے بائیں تلاش کرنے کے لئے چاہتے ہیں تو فہرست، ہم اپنے موجودہ آغاز حاصل. کیا ہم ایسا کرنے کی ضرورت ہے؟ طالب علم: ہم شروع قائم مشرق کے علاوہ 1. JASON HIRSCHHORN: تو ہم ہیں بائیں تلاش؟ طالب علم: معذرت، مشرق مائنس - تو آخر مشرق کی جائے گی مائنس 1 اور آغاز - JASON HIRSCHHORN: اور کیا شروع کرنے کے لئے ہوتا ہے؟ طالب علم: یہ ایک ہی رہتا ہے. JASON HIRSCHHORN: تو معنی ایک ہی رہتا ہے. ہم بائیں تلاش کر رہے ہیں، تو ہم ہیں اسی آغاز کا استعمال کرتے ہوئے - بالکل صحیح. اور آخر؟ معذرت، کیا کرتا ہے پھر برابر ختم؟ طالب علم: مشرق مائنس 1. JASON HIRSCHHORN مشرق مائنس 1. اب، کیوں مائنس 1، مشرق نہ صرف؟ طالب علم: مشرق سے باہر ہے ہم نے کی وجہ سے، پہلے ہی تصویر اسے باہر کی جانچ پڑتال کی ہے؟ JASON HIRSCHHORN: ہے بالکل صحیح. مشرق تصویر سے باہر ہے. ہم نے پہلے ہی مشرق کی جانچ پڑتال. تو ہم نے "مشرق" اقتباس نہیں چاہتے unquote جو، میں کرنے کے لئے جاری ہم دیکھ رہے ہیں کہ صف. تو یہ بہت اچھا ہے. ورنہ اقدار بریکٹ مشرق زیادہ ہے تو قیمت برابر ختم ہونے سے مشرق مائنس 1. جیف، کیا یہ آخری لائن کے بارے میں؟ طالب علم: نہیں تو. اقدار مشرق قیمت سے کم ہے؟ JASON HIRSCHHORN: ہم کریں گے اور تم مجھے دے رہے ہیں. تم مجھ سے نہیں دیتے تو - طالب علم: تو پھر شروع مشرق کے علاوہ 1 ہو جائے گا. JASON HIRSCHHORN: آغاز سے برابر مشرق کے علاوہ 1، ایک بار پھر، کے لئے ایک ہی وجہ یہ ہے کہ کانسٹنٹائن پہلے ہمیں دیا. اور آخر میں، جو نہیں دیا مجھے ابھی تک کوڈ کی ایک لائن؟ جھوٹے، Aleha، واپس کیا ہم یہاں لکھ سکتا ہوں؟ طالب علم: جھوٹے واپس. JASON HIRSCHHORN: جھوٹے واپس. اور ہم، ایسا کرنے کی ضرورت ہے تو ہم اسے تلاش نہیں، ہم کہنے کی ضرورت اسے تلاش نہیں کیا. اور ہم واپس جا رہے ہیں نے کہا کہ bool کے، تو ہم ضرور واپس کرنا پڑے ایک bool کہیں. تو اس کوڈ چلانے. میں اصل میں کرنے جا رہا ہوں - تو ہم ٹرمینل میں ہیں. ہم اپنی ونڈو کو صاف کریں گے. کی تمام کرتے ہیں. ہم ایک غلطی ہے پایا. توقع لائن 15 پر ایک غلطی ہے، کے آخر میں نیم وقفہ اعلان. تو میں کیا بھول گئے؟ طالب علم: نیم وقفہ. JASON HIRSCHHORN: نیم وقفہ یہیں تک. مجھے لگتا ہے کہ ٹام کوڈ تھا. تو ٹام، [اشراوی]. صرف مذاق کر رہا. کے سب پھر کرتے ہیں. طالب علم: کیا ڈراپ باکس ڈائرکٹری ہم اس کے لئے ہونا چاہئے؟ JASON HIRSCHHORN: تو آپ کر سکتے ہیں صرف اس تھوڑا سا کے لئے دیکھتے ہیں. لیکن پھر، آپ کو اس کے منتقل کرنے کے لئے کرنا چاہتا تھا کرنے کی کوشش کریں آپ pset3 ڈائرکٹری کوڈ میں اسے باہر، کہ میں نے کیا کیا ہے. آپ یہاں محسوس کریں گے تو - معذرت، اچھا سوال ہے. [؟ LS،؟] میں یہاں ہے find.c کوڈ اس ہفتے کی distro کوڈ سے. میں helpers.h ہے. مجھے لگتا ہے کہ میں نے اصل میں ایک بنانا فائل ہے ان نئے شامل کرنے کے لئے تھوڑا سا ترمیم ہم لکھ رہے ہیں فائلوں. کہ تمام کوڈ، دستیاب نہیں ہو گا تقسیم کے کوڈ، لیکن نئے فائل بنائیں، نئے helpers.h دائر کریں گے ڈاؤن لوڈ، اتارنا کے لئے آن لائن دستیاب ہو. ایک بار پھر، تاکہ لوگ ہیں اضافی کوڈ ہم. تو سب کو، اس لائن کے مطابق،، ​​کی تلاش کرتا ہے ثنائی، بلبلا انتخاب - کرتا تمام ان میں سے تین اور میں آگاہ اس کارکردگی کے کوڈ کو تلاش. تو عام طور پر، ہم نہیں چاہتے براہ راست check50 کرنے کے لئے. ہم اپنے طور پر کچھ ٹیسٹ کو چلانے کے لئے چاہتے ہیں. لیکن صرف تو ہم، یہ تھوڑا سا تیز کر سکتے ہیں check50 2013 pset3.find گزر جائے گا میرا برا - helpers.c میں. میں اب بھی نہیں ہیں. تو ہم اصل میں جا رہے ہیں حقیقی کے لئے کوڈ کو چلانے کے. Usage.find /، آپ کا مطلب ہے کہ کیا پتہ ہے؟ طالب علم: آپ کو ایک دوسرے کی ضرورت ہے اس پر کمانڈ لائن. JASON HIRSCHHORN: مجھے اس کی ضرورت ایک دوسری کمانڈ لائن. اور تفصیلات کے مطابق، مجھے اس کی ضرورت ہم کے لئے تلاش کر رہے ہیں میں داخل ہونے کی. تو 42 کے لئے نظر. ہم، کے مطابق میں اسے رکھیں گے کیونکہ ہم ابھی تک ایک طرح کی تقریب نہیں ہے - 42، 43، 44. اور کنٹرول D نہیں مل سکا ٹیبل میں انجکشن. یہ بری بات ہے. یہ یقینی طور پر نہیں ہے. کی کچھ کوشش کرتے ہیں. میں ڈال دیا کیونکہ شاید یہ ہے شروع میں یہ. کی 41، 42، 43 کرتے ہیں. ہم وہاں چلتے ہیں. یہ پتہ چلا ہے. صرف، اب آخر میں ڈال دو تو ہم مکمل ہو سکتا ہے - 40، 41، 42. انجکشن کو تلاش نہیں کیا. لہذا میں نے یہ پہلے ذکر کیا. بدقسمتی سے، میں نے یہ جانتے تھے ہونے جا رہا تھا. لیکن تعلیمی مقاصد کے لئے، یہ دریافت کرنے کی اچھا ہے. یہ کام نہیں کرتا. کسی وجہ سے، اسے تلاش نہیں کر سکتے. ہم وہاں میں کیا جانتے ہیں، لیکن ہم اس کی تلاش نہیں کر رہے ہیں. تو ہم کیا کر سکتے ایک بات کے ذریعے جانا ہے GDB، اسے تلاش، لیکن کسی کو کرتا ہے gdb کے ذریعے جانے کے بغیر، ایک ہم مصیبت میں جہاں کا احساس؟ [؟ Madu؟ ؟] طالب علم: میں نے اسے ختم کیا جا سکتا ہے جب لگتا ہے آغاز کے برابر ہے، اور یہ صرف ایک عنصر فہرست. تو یہ صرف اس کی بجائے اس کو نظر انداز اصل میں اس کی جانچ پڑتال. JASON HIRSCHHORN: ہے بالکل صحیح. آخر آغاز کے برابر ہے تو، ہم کرتے ہیں اب بھی ہماری فہرست میں ایک عنصر ہے؟ طالب علم: جی ہاں. JASON HIRSCHHORN: جی ہاں، اصل میں، ہم ایک اور صرف ایک عنصر ہے. اور یہ سب سے زیادہ امکان ہے جب ہو گا، ہم نے تجربہ کیا کوڈ کے مطابق، ہم میں ہیں ٹیبل یا میں سامنے ٹیبل کے اختتام. جہاں شروع اور ہے آخر برابر کی جا رہی ہے بائنری تلاش کے ساتھ ایک،. تو ان دونوں صورتوں میں یہ کام نہیں کیا، ختم ہونے کی وجہ سے آغاز کے برابر تھا. لیکن ختم ہونے والے ہیں، آغاز کے برابر ہے اس دیر لوپ پر عمل کرتا ہے؟ یہ نہیں کرتا ہے. اور ہم کی جانچ پڑتال کر سکتے ہیں کہ پھر gdb کے ذریعے. تو ہم کس طرح، اس کوڈ کو ٹھیک کر سکتے ہیں کیونکہ ختم کرتے ہوئے کے برابر ہے جب شروع، ہم بھی یہ چاہتے ہیں لوپ کو چلانے کے لئے ہے. تو ہم 18 لائن کیا حل کر سکتے ہیں؟ طالب علم: [اشراوی] زیادہ ہے زیادہ یا برابر. JASON HIRSCHHORN: بالکل صحیح. آخر سے زیادہ ہے جبکہ یا شروع کے برابر. تو اب، ہم نے اس کے حاصل کرنے کے لئے بات کو یقینی بنائیں آخر میں کونے کے کیس. اور دیکھتے ہیں. یہ ایک بار چلاتے ہیں. سب بنا دو. ایک بار پھر، آپ کو کرنا پڑے گا صرف یہاں ساتھ کی پیروی. 41 اس وقت تلاش. بس اسے مسلسل رکھنے. 42 تلاش. کے آغاز میں یہ ڈال دو - 42، 43، 44. ہم اسے مل گیا. تو یہ واقعی تبدیلی تھی ہم کرنے کی ضرورت ہے. کہ ہم کوڈنگ کی ایک بہت تھا صرف، بائنری تلاش کیا. کسی سے پہلے کسی بھی سوال ہے میرے خیال میں ہم میں لکھا لائنوں میں منتقل بائنری تلاش یا ہم کس طرح سوچا ہم اعداد و شمار کیا کیا؟ ہم پر منتقل کرنے سے پہلے، میں نے یہ بھی کی طرف اشارہ کرنا چاہتے ہیں، اس سے اور بڑی سے باہر، ہم مائچترت ہماری چھدم کوڈ سے ایک ہمارے کوڈ پر ایک. ہم اس مشکل بات ہے کیا کے ساتھ کے اعداد و شمار شروع اور ختم. لیکن آپ، کہ سوچا نہیں تھا بہت لکھا ہوتا جیسی کوڈ، کے لئے کو بچانے کے ان سب سے اوپر دو لائنیں. اور پھر آپ کو احساس ہوتا ہے جب آپ کو چیک اور صورتوں میں یہ بنایا کہ آپ کو کچھ اور کی ضرورت ہے. آپ کے بعد کیا تھا تو بھی اگر ہماری لائن چھدم کوڈ کی لائن، آپ کو ہوگا کی دو لائنیں لیکن تمام ہو گیا آپ کو لکھنے کے لئے کی ضرورت کوڈ اور میں شرط لگا سکتا ہوں کے لئے تیار ہو جائے گا کہ تم لوگ تمام ہے کہ سوچا ہوتا بہت تیزی سے، آپ کو ڈال کرنے کی ضرورت ہے مارکر کسی قسم کا وہاں میں اعداد و شمار تم کہاں تھے باہر. یہی وجہ ہے کہ ایک بار پھر، کرنے کے طاقت ہے چھدم کوڈ وقت سے قبل. تو ہم نے تو سب سے پہلے منطق، اور کر سکتے ہیں ہم نحو کے بارے میں پریشان کر سکتے ہیں. ہم منطق کے بارے میں الجھن گیا تھا جبکہ C میں اس کوڈ لکھنے کی کوشش کر، ہم سب گڑبڑ ہو گیا ہوتا. اور پھر ہم کے بارے میں سوال کیا جائے گا منطق اور نحو اور meshing ان سب کو. اور ہم گمشدہ ہو گیا ہوتا جلدی سے ایک بن کر سکتے ہیں میں بہت مشکل مسئلہ ہے. تو اب پر منتقل انتخاب کی طرح کرنے کے لئے. ہم نے چھوڑ دیا 20 منٹ ہے. تو میں ہم کرنے کے قابل نہیں ہو گا ایک احساس ہے انتخاب کی طرح کے تمام کے ذریعے حاصل کرنے کے لئے اور بلبلا طرح. لیکن ہم کم از کم کرنے کی کوشش کرتے ہیں انتخاب کی طرح ختم کرنے کے لئے. تو ترتیب کا استعمال کرتے ہوئے انتخاب عمل درآمد تقریب کے اعلان کے بعد. ایک بار پھر، اس سے لیا جاتا ہے مسئلہ سیٹ کی تفصیلات. int اقدار بریکٹ، ہے integers کے ایک صف. اور int.n اس صف کا سائز ہے. سلیکشن طرح کی جا رہی ہے اس صف کو حل کرنے. انتخاب کی ہماری ذہنی ماڈل فی ترتیب، ہم ھیںچو - سب سے پہلے، ہم نے فہرست کے ذریعے سب سے پہلے جانا وقت، سب سے چھوٹی تعداد کو تلاش، شروع میں ڈال دیا، دوسرا تلاش سب سے چھوٹی تعداد میں، میں ڈال دیا ہم کرنا چاہتے ہیں تو دوسری پوزیشن صعودی میں ترتیب. میں آپ کو لکھنے کے لئے مجبور نہیں کر رہا ہوں چھدم کوڈ اب. لیکن ہم میں ایک کلاس کے طور پر کوڈ سے پہلے پانچ منٹ، ہم لکھنے کے لئے جا رہے ہیں چھدم کوڈ تاکہ ہم کچھ احساس ہے کے ہم کہاں جا رہے ہیں. تو چھدم کوڈ لکھنے کی کوشش اپنے اپنے طور پر. اور پھر اس کو تبدیل کرنے کی کوشش کوڈ میں چھدم کوڈ. ہم نے ایک گروپ کے طور پر کیا جائے گا پانچ منٹ میں. اور ظاہر کی، مجھے پتہ ہے اگر آپ کوئی سوال ہے. طالب علم: یہ ہے کہ؟ JASON HIRSCHHORN: کتنی دور آپ ملاحظہ مزید دو منٹ میں حاصل کر سکتے ہیں. میں نے آپ کو نہیں سمجھ ختم کرنے کے لئے کے قابل ہو جائے. لیکن ہم ایک گروپ کے طور پر اس سے زیادہ ہو جائے گا. تم سب کو [اشراوی] تو کوڈنگ کر رہے ہیں، تو میں ہوں آپ کیا کر رہے ہیں کو روکنے کے لئے معذرت. لیکن ایک گروپ کے طور پر اس کے ذریعے جانے. اور پھر، بائنری تلاش، آپ سب کو دے مجھے ایک کوڈ کا زیادہ لائنوں اگر نہیں. اس کے لئے آپ کا شکریہ. ہم ایک ہی بات کرنے جا رہے ہیں یہاں، ایک گروپ کے طور پر ایک دوسرے کے ساتھ کوڈ. تو انتخاب کی طرح - کی لکھنے کچھ فوری چھدم کوڈ. ذہنی ماڈل فی، کسی نے مجھے دے سکتے ہیں چھدم کوڈ کی پہلی لائن، براہ مہربانی؟ مجھے کیا کرنا چاہتے ہیں؟ طالب علم: جبکہ فہرست حکم سے باہر ہے. JASON HIRSCHHORN: ٹھیک ہے، جبکہ فہرست حکم سے باہر ہے. اور تم "کے حکم سے باہر؟" کیا مطلب ہے طالب علم: جبکہ [اشراوی] کے مطابق نہیں کیا گیا ہے. JASON HIRSCHHORN جبکہ فہرست حکم سے باہر ہے، ہم کیا کرتے ہیں؟ مجھے دوسری لائن دے، براہ مہربانی، مارکس. طالب علم: تو اگلے تلاش سب سے چھوٹی تعداد. یہ پوٹ دار ہو گا. JASON HIRSCHHORN: تو تلاش اگلے سب سے چھوٹی تعداد. اور پھر کسی اور؟ ہم اگلے سب سے چھوٹی ایک بار جب تعداد، ہم کیا کرتے ہیں؟ مجھے کہنے جا رہا ہوں سب سے چھوٹی تعداد. کہ ہم کیا کرنا چاہتے ہے. تو سب سے چھوٹی تعداد کو تلاش. اس کے بعد ہم کیا کرتے ہیں؟ طالب علم: [اشراوی] شروع کرنے کے لئے. JASON HIRSCHHORN: معاف کیجئے گا؟ طالب علم: میں رکھ فہرست کے آغاز. JASON HIRSCHHORN: تو میں رکھ فہرست کے آغاز. اور ہم نے بات کیا کرتے ہیں کہ شروع میں تھا فہرست میں، ٹھیک ہے؟ ہم کچھ overwriting کی کر رہے ہیں. تو جہاں ہم نے اس کے ڈال دیا ہے؟ جی ہاں، انا؟ طالب علم: کہاں سے چھوٹی تعداد تھی؟ JASON HIRSHHORN: تو شروع میں ڈال دیا فہرست کے جہاں سب سے چھوٹی تعداد تھی. فہرست حکم سے باہر ہے تو جبکہ، تلاش سب سے چھوٹی تعداد میں، میں ڈال فہرست کے آغاز، ڈال فہرست کے آغاز کہاں سب سے چھوٹی تعداد تھی. مارکس، آپ اس لائن rephrase کر سکتے ہیں فہرست کے حکم سے باہر ہے؟ طالب علم: جبکہ تعداد کے مطابق نہیں کیا گیا ہے؟ JASON HIRSHHORN: ٹھیک ہے، تو میں حکم کے لئے تعداد نہیں ہے جانتے ہیں کہ کے مطابق، کیا ہم کرتے ہیں کی ضرورت ہے؟ ہم کس طرح زیادہ سے زیادہ کی ضرورت ہے اس فہرست کے ذریعے جانا ہے؟ طالب علم تو میں لوپ کے لئے ایک اندازہ، یا جبکہ، تعداد کی جانچ پڑتال کرتے ہوئے کم ہے فہرست کی لمبائی سے؟ JASON HIRSHHORN: ٹھیک ہے، یہ اچھی بات ہے. میں misphrased لگتا ہے میرا سوال یہ غیر تسلی بخش. میں صرف میں حاصل کرنے کے لئے کوشش کر رہا تھا ہم جانے کے لئے جا رہے ہیں پوری فہرست کے ذریعے. فہرست حکم سے باہر ہے تو جبکہ، میرے لئے، پر نقشہ کے لئے مشکل ہے. لیکن بنیادی طور پر، کہ کس طرح میں نے اس کے بارے میں سوچنا. تلاش، مکمل فہرست کے ذریعے جاؤ سب سے چھوٹی تعداد میں، میں ڈال آغاز - اصل میں، تم صحیح ہو. کی ان دونوں کو ڈال دو. فہرست حکم سے باہر ہے تو، ہم مکمل فہرست کے ذریعے جانا کرنے کی ضرورت ہے ایک بار، سب سے چھوٹی تعداد، کی جگہ تلاش اس فہرست کے آغاز میں، ڈال فہرست کے آغاز کہاں سب سے چھوٹی تعداد میں تھا، اور اس کے بعد اگر فہرست ہم نے، حکم سے باہر اب بھی ہے اس کے ذریعے جانا ہے عمل پھر، ٹھیک ہے؟ یہی وجہ ہے کہ انتخاب کی طرح، بگ O-رن ٹائم ہے انتخاب کی طرح، کوئی ہے؟ طالب علم: مربع ن. JASON HIRSHHORN: مربع ن. مارکس اور میں صرف احساس کی طرح کیونکہ یہاں، ہم جا رہے ہیں فہرست کے ذریعے جاؤ اوقات کی تعداد. تو کچھ کے ذریعے جا لمبائی N (ن) کی تعداد اصل میں مربع ن ہے. تو یہ اپنے pseudocode ہے. یہ بہت اچھا لگ رہا ہے. کسی کو کوئی سوال ہے pseudocode کے بارے میں؟ اصل میں انتخاب کی طرح چاہئے کیونکہ شاید میں سے ایک، کوڈ آئے pseudocode. کے بارے میں تو کوئی سوالات pseudocode کی منطق؟ اب یہ براہ کرم دریافت کریں. سلیکشن طرح - فہرست ہے جبکہ آرڈر کے، ہم اس کے ذریعے جانے کے لئے جا رہے ہیں اور سب سے چھوٹی ہر وقت تلاش اور سامنے میں ڈال دیا. فہرست، کر سکتے ہیں کے لئے سے باہر ہے تو جبکہ کسی نے مجھ کوڈ کی اس لائن دینے والے مجھے ایک لائن نہیں دی ہے براہ مہربانی، ابھی تک کوڈ کے؟ یہ کس طرح لگتا ہے؟ طالب علم: یہ لوپ کے لئے ایک ہے. JASON HIRSHHORN: یہ لگتا ہے لوپ کے لئے ایک طرح. ٹھیک ہے، تم نے مجھے لوپ کے لئے دے سکتے ہیں؟ کے لئے - طالب علم: میں 0 برابر. JASON HIRSHHORN: میں یا - ہم کیا یاد کر رہے ہیں؟ کیا یہاں جاتا ہے؟ طالب علم: INT. JASON HIRSHHORN: بالکل. - (میں 0 = int میں طالب علم: میں ن <؛ میں + +). JASON HIRSHHORN: جیف، یہ nailed. ہم، فہرست کے ذریعے جا رہے ہیں؟ ہم سے پہلے اس کوڈ دیکھا ہے. کامل. تو ہمارے یہاں گھوبگھرالی منحنی خطوط وحدانی ڈال دو. میں کچھ ڈال کے لئے جا رہا ہوں یہاں گھوبگھرالی منحنی خطوط وحدانی. یہ 0 ہے جبکہ تو، ہم جانے کی ضرورت ہے مکمل فہرست کے ذریعے. تو ہر وقت ہم نے فہرست کے ذریعے جاؤ کیا ہم ٹریک رکھنے کے لئے چاہتے ہیں؟ طالب علم: کوئی سویپ بنا رہے ہیں. JASON HIRSHHORN: تلاش سب سے چھوٹی تعداد. تو ہم شاید ٹریک کے رکھنا چاہئے سب سے چھوٹی تعداد میں ہر وقت. تو لائن میں ٹریک رکھنے کے لئے کر سکتے ہیں سب سے چھوٹی تعداد کی؟ Aleha، میں کس طرح رکھ سکتے ہیں کچھ کے ٹریک؟ طالب علم: ایک نیا متغیر شروع. JASON HIRSHHORN: ایک نیا متغیر شروع. تو ایک متغیر تشکیل دیں. کس قسم کی؟ طالب علم: INT. JASON HIRSHHORN: INT. کی سب سے چھوٹی کہتے ہیں. اور کیا اس کے برابر جب کرتا ہے ہم صرف باہر شروع کر رہے ہیں؟ ہم ابھی تک فہرست کے ذریعے نہیں گئے. ہم کے پہلے حصہ میں ہیں کے ذریعے ہماری پہلی بار کی فہرست. برابر کرتا ہے، سب سے چھوٹا نمبر؟ طالب علم: اقدار میں. JASON HIRSHHORN: اقدار میں. یہ ٹھیک ہے، بالکل ٹھیک لگتا ہے؟ شروع میں سب سے چھوٹی تعداد ہم کہاں ہیں ہے. تو اب ہم ہمارے سب سے چھوٹی ہے، اور ہم نے کی ضرورت مکمل فہرست کے ذریعے جاؤ اور پر سب سے چھوٹا اس کا موازنہ سب کچھ کرنے کے لئے. تو ہم پھر سے فہرست کے ذریعے جانا ہے؟ مائیکل؟ طالب علم: آپ کو کرنے کی ضرورت ہے لوپ کے لئے ایک. JASON HIRSHHORN: لوپ کے لئے ایک اور. چلو اسے کرتے ہیں. مجھے کچھ کوڈ دے. طالب علم: لوپ کے لئے - سب سے چھوٹی کے لئے - صرف J int میں، آپ کہہ سکتے ہیں؟ = 0؛ اس طرح ہے - JASON HIRSHHORN: ٹھیک ہے، ہم چاہتے ہیں مکمل فہرست کے ذریعے جانا - طالب علم: J