JASON HIRSCHHORN: خوش آمدید، ہفتہ 6 پر سب،. مجھے اچھی طرح سے زندہ تم سب کو دیکھ کر بہت خوش ہوں اور کوئز 0 کے بعد، کیونکہ میں نے معلوم ہے کہ تھوڑا سا کسی نہ کسی طرح تھا. لیکن شکر ہے، آپ سب کو ناقابل یقین حد تک اچھی طرح سے کیا. اور تو ہے کہ بہت اچھا ہے. آپ میرے حصے میں ہیں، میں سب سے زیادہ دیا ہے آپ کے پہلے سے ہی آپ quizzes کی حمایت. آپ کی ایک جوڑے، میں مل رہا ہوں کلاس کے بعد. اور آپ کو ایک توسیع طالب علم اور ہیں آپ کو واپس آپ کوئز موصول نہیں ہوا ہے ابھی تک، آپ TF شاید اس پر کام کر رہا ہے اور یہ گریڈنگ، اور اسے واپس مل جائے گا آپ کو جلد ہی. ہیں تو میری توسیع کے طالب علموں کو اب دیکھ - امید ہے کہ رہتے ہیں - میں نے آپ کے سوال جواب مل جائے گا جلد ہی اس کے ساتھ ساتھ. مندرجہ ذیل کے طور پر آج کے لئے ہمارے ایجنڈا ہے. سب سے پہلے، ہم نے کچھ پر جانے کے لئے جا رہے ہیں CS50 آپ کے لئے فراہم کرتا ہے وسائل. ہم اگلے کوئز 0 پر جانے کے لئے جا رہے ہیں، اور میں کسی بھی سوال کا کسی کو جواب دیں گے خاص طور پر مسائل کے بارے میں ہے. اور پھر، ہم جا رہے ہیں فائل میں / O اور مسئلہ سیٹ 5. ان لوگوں کو آخری دو عنوانات کے لے جائے گا سیکشن کا بڑا حصہ آج. میں ایک کے طور پر ہر ہفتے اس فہرست میں ڈال دیا آپ سب کو، لیکن کور کے یاد دہانی سیکشن، ہم صرف 90 منٹ ہے - ہم نے سب کچھ کا احاطہ کرنے کے قابل نہیں ہیں کہ میں لوگ آپ کے لئے پورا کرنے کے لئے محبت کرے گا. لیکن ہم نے کے لئے وسائل کی ایک ٹن ہے آپ کو معلوم کرنے کے لئے حاصل کے طور پر آپ صلی اللہ علیہ وسلم اپنی طرف متوجہ کرنے کے ذریعے مواد اور کام آپ کا مسئلہ سیٹ. میں آن لائن کو ایک متن ہے کہ ایک یاد دہانی اگر آپ کو بھرنے کے لئے آپ کے لئے قائم باکس، میرے لئے کسی بھی رائے ہے، مثبت اور دونوں سیکشن کے بارے میں، تعمیری. اس یو آر ایل کا حق نیچے یہاں واقع ہے. آپ کو کسی بھی ہیں تو ایک لمحے کے لئے، براہ مہربانی رائے، چاہے سیکشن کے دوران، یا اس کے بعد، یا اس کے بعد آپ کو ویڈیو دیکھنے کے آن لائن، مجھے آپ کی رائے دینے کے لئے. میں واقعی میں اس کے کسی بھی اور تمام تعریف. تو میں نے چھوٹی بات چیت کر رہے ہیں میری ایک بہت کے ساتھ ہفتے بھر میں طالب علموں کو - میں نے ہاتھ کے طور پر واپس quizzes ہے، کے بارے میں بات جی ہاں، آپ کر رہے ہیں کس طرح دیکھ کر. اور ایک موضوع پر آئے اور ہے پر کے بارے میں بات میں - میں خاص طور پر - مسئلہ سیٹ. اور میں اس موضوع محفوظ ہیں اب بورڈ پر. بنیادی طور پر، فرق ہے ہے کہ کچھ میں تبدیل کے درمیان درست طریقے سے اور کچھ کیا کہ اچھی طرح سے کیا جاتا ہے. زیادہ تر لوگوں کو بہت اچھا کر رہے ہیں درست کی شرائط میں - تمام psets میں 5 یا 4 کے. زیادہ تر لوگوں کو ہو رہے ہیں ان کے وقت کی تمام. تاہم، صرف اس وجہ سے آپ نے کیا کیا ہے کچھ صحیح آپ نے مطلب یہ نہیں ہے کے طور پر سروچپورن کچھ کیا، یا مؤثر طریقے سے، یا سفائیپسند آپ کے طور پر یہ کیا ہے ہو سکتا ہے. اور یہ کہ کیا ڈیزائن ہے - اور ایک کم کی ڈگری، سٹائل - کلہاڑی کے لئے ہیں. تو میں آپ سب کو دھکا، اور دوسرے کی TFs ہوں نہ صرف باری، تم لوگ کر رہے ہیں درست ہیں، لیکن باری ہے کہ چیزوں میں اچھی طرح کوڈت ہیں کہ چیزوں میں. loops کے لئے غیر ضروری نہیں کر رہے، متغیر اگر recalculating نہیں آپ کی ضرورت نہیں ہے. مثال کے طور پر، مقرر واپس مسئلہ کرنے کے لئے تلاش 4، پر اینٹوں رکھنے جب سکرین، ہر صف ہے - ایک میں ہر اینٹ دی قطار اسی Y-تعاون ہے - اسی اونچائی محدد. Y-سمنوی کی ضرورت نہیں کیا تھا کہ وزارت داخلہ کے اندر کا حساب کیا جائے آپ کا امکان استعمال کیا جاتا ہے لوپ کے لئے اندر در اندر سکرین پر ان اینٹوں ڈال. یہ صرف ہر حساب کرنے کی ضرورت ہے وقت آپ کو ایک قطار میں تبدیل کر دیا، یا ایک صف نیچے منتقل کر دیا گیا. 10 اینٹوں کی ایک میں ہیں تو کہتے ہیں کہ صف، ہر اینٹ پر ایک ہی ہو سکتا ہے Y-سمنوی، اور Y-محدد ہے صرف حساب کیا جا سکتا ان میں سے سب کے لئے ایک بار. یہ 10 کا حساب کرنے کی ضرورت نہیں ہے بار، اور نہ ہی کرتا ہے حساب کتاب کی ضرورت اصل میں ہو تقریب کال کریں - نئے gracked تقریب کال. تو اس کے لئے ایک چھوٹا سا مبہم تھا آپ کو زیادہ generically، چیزوں کو کہ ہر ایک وقت ایسا کرنے کی ضرورت نہیں ہے آپ کو نہیں ہونا چاہئے کے لئے لوپ کے ذریعے جاؤ کے لئے لوپ کے اندر ڈال دیا، اور نہیں کرنا چاہئے تم جاؤ ہر وقت ہو کے لئے لوپ کے ذریعے. ہم نے دیکھا ایک اور اچھی ڈیزائن مثال کے طور پر 15 ہفتہ 3 میں، آپ کو رکھ سکتا صفر کا ٹریک. تو آپ کو، آپ کو بورڈ ابتدا جب کو بچانے کے - ایک عالمی متغیر میں، شاید - X اور صفر کی Y-سمنوی. اور پھر جب بھی آپ - آپ اس اقدام تقریب میں، جب بھی آپ کو ایک کامیاب اقدام، آپ کو اپ ڈیٹ صفر کی جگہ. ایسا کرنے کے لئے ہونے سے آپ کو بچانے کے کریں گے کے ذریعے تلاش کرنے loops کے لئے اندر در اندر آپ اس اقدام کی تقریب میں ہر وقت سوار اور صفر کی تلاش، یا ٹائل کو تلاش کریں، اور پھر اگلے اس کے لئے کیا ہے کی جانچ پڑتال. اس کے بجائے، آپ کی جگہ ہے صفر، آپ کو صرف، ذیل میں، اوپر دیکھ سکتے ہیں اور اس کے بائیں اور دائیں کرنے کے لئے، تلاش کرنے کے لئے آپ کے لئے تلاش کر رہے تھے ٹائل. تو ہم پروگرام کی شرائط میں لکھنے، وہ کافی بڑے کبھی نہیں رہے ہیں کہ ان ڈیزائن کے فیصلوں سے کچھ واقعی متاثر کرنے کے لئے جا رہے ہیں آپ پروگرام، یا، اس سے زیادہ آہستہ آہستہ چلانے کے یا شاید بھی میموری سے باہر چلانے کے. لیکن ہم اب بھی تم لوگ آگے بڑھانے رہے ہیں لکھنے کے لئے کے طور پر خوبصورت اور ممکن طور پر موثر کوڈ. لہذا اگر آپ ایسا کرتے چیزیں لکھ ختم ایک نمایاں طور پر بڑی ہے گنجائش، وہ اچھے کے ساتھ لکھا جائے گا درست ہونے کے علاوہ میں ڈیزائن. تو آپ کے پاس کی ایک بڑی تعداد کہ باہر لایا. یہی ہے جو ہم کے لئے تلاش کر رہے ہیں کچھ ہے - ہم جاری رکھنے کے لئے جا رہے ہیں کچھ آپ پر لوگوں کو دھکا. کیا تم نے کبھی کے بارے میں کوئی سوالات ہیں، تو آپ کے پروگرام کے ڈیزائن، آزاد محسوس کرتے ہیں مجھ سے باہر تک پہنچنے، اور میں خوش ہوں پر آپ کے ساتھ آپ کے پروگرام کے ذریعے چلنا، اور ڈیزائن کے کچھ باہر کی طرف اشارہ تم نے، اور آپ کو کچھ دینے کے فیصلے بنانے کے لئے کس طرح کی تجاویز بھی بہتر ڈیزائن کے فیصلوں. تو ہم پر منتقل کرنے کے لئے جا رہے ہیں کوئز 0 کے بارے میں بات کرنے کے لئے. ہم ایسا کرنے سے پہلے، کسی کو کرتا ہے کے بارے میں کوئی سوالات ہیں، کیا میں نے اب تک کا احاطہ کرتا ہے؟ [RUSTLING شور] JASON HIRSCHHORN: سات سیکنڈ. ٹھیک ہے. ایک تھوڑا سا کے لئے کوئز 0 کے بارے میں بات کرتے ہیں. آپ میں سے زیادہ تر آپ کوئز 0 واپس ہے. تم نہیں، امید کرتے ہیں آپ کو یہ تھوڑا سا یاد ہے. لیکن آپ پھر کوئز 0، تم نے لیا ہے تو بھی میں آن لائن پی ڈی ایف کو رسائی حاصل ہے نمونہ کے حل. کسی سے پہلے کسی بھی سوال ہے ہم کے بارے میں ہفتے کے مال میں کود کوئز 0 ایک خاص مسئلہ - کیوں کا جواب یہ ہے کہ کیا ہے؟ کسی چیز کے بارے میں الجھن میں ہے؟ تم صحیح مسئلہ ہے، لیکن یہاں تک کہ اگر صرف مجھ سے یہ تھوڑا سا وضاحت کرنا چاہوں گا زیادہ، میں اب ایسا کرنے کے لئے خوش ہوں. تو میں تم لوگوں سے کہا ہے کہ کچھ کے ساتھ تیار آئے کوئز 0 کے بارے میں خیالات. تو جو ہم حاصل کرنا چاہتے ہیں ایک سوال کے ساتھ یا اس کے شروع کر دیا کوئز 0 تبصرہ؟ [پیپر RUSTLING] JASON HIRSCHHORN: نہیں سب بالکل کیا. تو مجھے پتہ [ہنستا ہے] کچھ سوالات ہونا پڑے کوئز 0 کے بارے میں. ٹھیک ہے. جی ہاں. Ompica. OMPICA: 10 نمبر. JASON HIRSCHHORN: 10 نمبر. کون سا نمبر 10 تھا؟ OMPICA: - JASON HIRSCHHORN: میں نے haven't - OMPICA: میں شامل ہیں - JASON HIRSCHHORN: 10 نمبر آٹھ سال کی تھی میں - میں آٹھ لکھنے؟ OMPICA: جی ہاں. JASON HIRSCHHORN: ٹھیک ہے. تو ایک اور سوال آپ کر سکتے ہیں میں prescient رہا تھا پوچھا؟ جواب ہاں میں ہے. کوئز سے پہلے حصے میں، میں نے پوچھا تم لوگ سٹرلنگ دونوں کوڈ اور آٹھ میں. ان دونوں کو کیا ہوا کوئز پر نظر آتے ہیں. تو امید ہے کہ، آپ کو ادا کی اس پر توجہ. تمہارے پاس تھا، تو آپ کو پڑے گا شاید ان دونوں پر اچھی طرح سے کیا. لیکن آٹھ میں، ہم نے اصل میں نہیں کوڈ اس کلاس میں، لیکن یہ، پھر، تھا گئے تمام سوالات پر پوچھا. تو لینے کی چیزوں کے ایک جوڑے میں آٹھ کوڈنگ نوٹ جب. پہلی بات یہ ہے، سوال کے مطابق، تھا آپ کو چیک کرنے کی ضرورت ہے تو سٹرنگ شہوت انگیز null کے برابر تھا. ایک جوڑے لوگوں کو بعد میں چیک کرنے کی کوشش کی پروگرام میں ے تو بریکٹ میں تھا - اس میں اتنا ایک مخصوص کردار تار - شہوت انگیز null کے برابر تھا. لیکن اس شہوت انگیز null بنیادی طور پر ہے، یاد ہے - اس کے بارے میں سوچنا اچھا ہے ایک صفر پوائنٹر کے طور پر، شہوت انگیز null - صفر پر ایک پوائنٹر - میموری میں کہیں جہاں آپ تک رسائی حاصل نہیں کر سکتے. اگر ایسا ہے تو تمہیں کچھ، شہوت انگیز null برابر ہے initialized یہ ہے نہیں کیا گیا ہے پتہ ہے کہ، یا وہاں کچھ بھی نہیں ہے. تو S، ایک چار ستارہ ے ہے بریکٹ میں ایک چار ہے. تو یہ، شہوت انگیز null کا موازنہ کرنے کے لئے سمجھ میں آتا ہے لیکن نہیں کی بریکٹ میں، شہوت انگیز null. لیکن پھر - تو یہ پہلی چیز تھی آپ کیا کرنے والے تھے کہ - اس بات کو یقینی بنانے کے لئے چیک کرنے کے لیے آپ اصل میں ایک حقیقی سٹرنگ ہے. اگلا، آپ کے ذریعے جانا چاہتا تھا تار میں ہر کردار. اور تو ہے کہ ایک S بریکٹ طرح ہو جائے گا میں، مثال کے طور پر، میں نے آپ iterator ہے. اور اس کے کردار کو لے، اور اس کی اصل قیمت حاصل. تم نے اسے ایک چار کے طور پر محفوظ ہے، لیکن صفر کے لئے ASCII قیمت - ایک کردار کے طور صفر - اصل میں عددی صفر نہیں ہے. یہ آپ کر سکتے ہیں کہ کچھ دوسرے نمبر ہے ASCII ٹیبل میں نظر. تو ایک ہی راستہ اس کے لئے درست کرنے کے لئے - کے لئے درست کرنے کے لئے شاید سب سے بہتر طریقہ ہے - اس سے منہا کیا جاتا ہے کردار قیمت - ایک کردار کے طور پر صفر. تو مائنس ایک اقتباس، صفر، ایک اور ایک اقتباس. یہی وجہ ہے کہ آپ کے پاس جو کچھ بھی نمبر لے جائے گا ایک چار کے طور پر، اور اس کے برابر حاصل ایک حقیقی عددی طور پر تعداد. اور اس نقطہ نظر کی طرح ہے لوگوں کی ایک بہت میں لے لیا مسئلہ کیسر کے ساتھ، 2 سیٹ اور Viginere - ان خفیہ کار، جب آپ ان کے گھومنے گیا تھا. آپ کی طرف سے ایک بڑی تعداد کے طور پر یہ ہے تو اس کے بعد صفر سے نو، پھر - کی بنیاد پر یہ حتمی تعداد میں کہاں جاتا ہے - اگر آپ اسے ضرب کرنے کی ضرورت ہے 10 کے ایک طاقت کی طرف سے. کچھ لوگوں کو پیچھے سے منتقل کر دیا گیا سامنے، اور انفرادی میں کئی گنا اضافہ 10 کے ایک طاقت کی طرف سے بڑی تعداد ہے. کچھ لوگوں کی طرف سے منتقل کر دیا گیا واپس سامنے - اور تو سب سے زیادہ لیا سب سے پہلے نمبر حکم - اور میں ان لوگوں کو بچانے کے کریں گے عالمی انسداد متغیر. اور اس کے بعد کے لئے کے ذریعے ہر وقت لوپ، ضرب ہے کہ عالمی وشالکای بنانے کے لئے، 10 کی طرف سے متغیر کا مقابلہ اگلے چار کے لئے جگہ. تو اس کے بغیر ایک چھوٹا سا الجھا تھا مجھے بورڈ پر لکھ. لیکن نمونے کا حل آپ کے لئے دستیاب ہے. لیکن ان بڑی باتیں کر رہے تھے ہم کے لئے تلاش کر رہے تھے. اس کے علاوہ اس بات کا یقین ہر ایک بنانے کے لئے ایک چیک انفرادی کردار ایک ہے بے شک صفر اور نو، اور نہیں کے درمیان کردار ایک ایک کی طرح کچھ دوسرے کردار،، مثال کے طور پر. وہ ہم تلاش کر رہے تھے چیزیں تھیں کے لئے اس سوال میں. کہ آپ کے سوال کا جواب ہے؟ OMPICA: جی ہاں. JASON HIRSCHHORN: ٹھیک ہے. کسی بھی دیگر سوالات ہیں کوئز 0 کے بارے میں؟ کیا تالیف کے بارے میں؟ ہر کوئی حق تالیف؟ نمبر ایک تھے - [ہنستا ہے] کے بارے میں کوئی سوال تالیف کے عمل؟ واہ. [پیپر RUSTLING] JASON HIRSCHHORN: جی ہاں. مائیکل. مائیکل: - بے ترتیب تعداد 7 ہے؟ JASON HIRSCHHORN: نمبر 7. نمبر 7 ایک بے ترتیب عددی حاصل تھا. بہترین. تو آپ کو ایک عددی ایک دیا اور ایک کر رہے ہیں عددی B، اور آپ کو ایک بے ترتیب کرنا چاہتے ہیں A اور B کے درمیان عددی. ہم اصل میں اس پر لکھ سکتے ہیں بورڈ، اس کی وجہ یہ ایک کوڈ کی ایک لائن تھی - ایسا کرنے کا ایک طریقہ. تو ہم نے ایک کے طور پر drand دی کر رہے ہیں تقریب ہم استعمال کر سکتے ہیں. اور کیا drand ہے - یہ ترجیح گیا ہے سنبھالنے - کیا واپس drand ہے؟ مائیکل: 0.0 اور 1.0 کے درمیان ایک فلوٹ. JASON HIRSCHHORN: ایک بڑی تعداد - جی ہاں. 0 اور 1 کے درمیان ایک بڑی تعداد. اور اس طرح ہم بی اور ایک ہے. اور پھر ہم اپنے بے ترتیب تعداد میں ہے 0 کے درمیان اور 1 drand طرف سے ہمیں دیا. کچھ لوگ بی ڈال کرنے کی کوشش، یا ب مائنس ان کے اندر ایک، یا کچھ اور قوسین. وہ ہیں مطلب ہو گا اس تقریب کے دلائل. drand کوئی بحث نہیں لے کرتا ہے - GetString کے کی طرح کوئی بحث نہیں لے. تو اس کے قریب، صرف کھلی قوس ہے قوس - اور یہ کہ، خود، ہے تقریب کال. اور یہ کہ آپ کو ایک نمبر دیتا ہے 0 کے درمیان اور 1. کورس کے، ہم ایک مکمل رینج ہے تعداد اندر ہو سکتا ہے B 10 ہے اور ایک 5 ہے تو، ہم واقعی، کا کہنا ہے کہ 5 کی ایک رینج کے ساتھ ایک نمبر کی ضرورت ہے. تو ہم کیا کرنے کی ضرورت اگلی بات ہے رینج بی مائنس ایک کی طرف سے اس ضرب. تو اس میں کئی گنا اضافہ ہے سنبھالنے. اور یہ کہ ہمیں ایک نمبر دے گا ایک دیا رینج کے اندر اندر. اور اس مخصوص رینج ہونے بی مائنس ایک کے درمیان فرق. اور آخر میں، کہ صرف سے دے دیں گے - بی مائنس ایک کے درمیان رینج کا کہنا ہے کہ 5، کہ ہمیں ایک دے دونگا ہے 0 سے 5 تعداد. ایک حقیقت 5 میں ہے لیکن اگر ہم کو فروغ دینے کی ضرورت ہے یہ ہے جہاں اس کی حد تک اصل میں ایک انہوں نے مزید کہا کی طرف سے، ہونا چاہیے. تو یہ منطق صحیح ہو جاتا ہے. اور اس کے بعد، آپ کو پڑے گا ایک سوال؟ مائیکل: نمبر میں صرف اب واقعی گونگا محسوس. [ہنستا ہے] JASON HIRSCHHORN: نمبر واقعی گونگا محسوس نہیں کرتے. لوگوں کی ایک بڑی تعداد جدوجہد اس سوال کے ساتھ. اور پھر، دوسرے سوال ہے، drand، آپ نے کہا کہ اگر آپ کو فلوٹ دیتا ہے - ایک فلوٹ واپس. لیکن اس تقریب اصل میں پوچھا ایک عددی واپس کرنے کے لئے. آپ کو واضح طور پر اس ڈال کرنے کی ضرورت نہیں ہے ایک عدد صحیح، ان کی وجہ سے آپریشن کے تمام کے طور پر اس کا علاج کریں گے تیرنے لگتے ہیں - چل نقاط تعداد کے طور پر. اس گی - یہ بھی تو ایک عدد صحیح، یہ مرضی ہے صحیح طریقے سے کئی گنا بڑھ جائے. تمام ضرب کام کریں گے. آپ اسے یہاں ڈال کرنے کی ضرورت نہیں ہے. اصل میں، آپ کو اس پر ڈال نہیں کرنا چاہئے. کرے گا - آپ کو ایک ڈالے گا تو ہے 0 اور 1 کے درمیان ہے - ایک بے ترتیب تعداد، چل نقاط - پھر اس کے بعد یا تو تو، صرف 0 یا 1 ہو جائے گا آپ کو اس کی صحت سے متعلق کے تمام کھو دیں گے. لیکن آخر میں، آپ واپس جب، یہ خود کار طریقے جاتا ہے ایک عددی طور پر واپس بھیج دیا. تو آپ کیا کرنے کی ضرورت نہیں ہے کہ اپنے آپ کو ڈال. تو اس کا جواب تھا اس سوال کا، نمبر 7. کوئز 0 پر کسی بھی دوسرے سوال؟ جی ہاں، ینی. ینی: ہم پنراورتی استعمال کرتے ہیں تو - جب ہم تکراری loops کے استعمال کرتے ہیں؟ JASON HIRSCHHORN: جب آپ استعمال کرتے ہیں پنراورتی - تو عام طور پر، تکرار کے مقابلے کے پیشہ اور cons تکراری نقطہ نظر. کوئی پرو یا ایک CON پیش کر سکتے ہیں؟ براہ مہربانی؟ کسی کو نہیں کر سکتے ہیں. کون پرو یا ایک CON پیش کر سکتے ہیں؟ [پیپر RUSTLING] طالب علم: 1 پنراورتی کم ہے کوڈنگ - کم ٹائپنگ؟ JASON HIRSCHHORN: تو عام طور پر، تکرار خاص طور پر، ایک تقریب - یا ضم طرح ایک الگورتھم ترتیب - جو خود کو ڈھال لیتا ایک پنراورتی نقطہ نظر کرنے کے لئے - زیادہ براہ راست ہو سکتا ہے تکراری طور کوڈ. اور صرف زیادہ احساس تکراری طور پر کرنے کے لئے. تو اس تکرار پر ایک حامی ہو جائے گا. دوسروں؟ جی ہاں؟ طالب علم 2: تکرار پر CON - یہ زیادہ میموری استعمال کرتا ہے. JASON HIRSCHHORN: تو بالکل صحیح. ایک پنراورتی تقریب انہوں نے مزید کہا رکھیں گے اسٹیک اسٹیک فریم. آپ کی ایک بہت پر کام کر رہے ہیں اگر ایسا ہے تو تعداد، اور اس کو فون کرنے کی ہے ایک بہت کام ہے، تو آپ کو یقینی طور گا جبکہ، زیادہ میموری لے تکراری نقطہ نظر صرف ایک ہی ڈال دیا جائے گا ، اسٹیک پر فریم کتابیں رکھی کیونکہ یہ سب ایک تقریب کے اندر اندر ہوتا ہے. کسی دوسرے کی پیشہ اور cons؟ جی ہاں. طالب علم 3: تکرار کے لئے پیشہ. آپ کا تعین کرنے کے لئے کی ضرورت نہیں ہے آگے بڑھانے کتنی بار کوڈ بار بار کیا جا کرنے کے لئے تھا. تم میں سے ایک پہلے سے مقرر کی تعداد میں کر سکتے ہیں آپ کو تو، iterate کرنے کے لئے ہے کہ اوقات تکرار، بہتر ہے، کیونکہ یہ نتیجہ ہے کہ لیتا ہے. JASON HIRSCHHORN: میں نے سچ ہے کہ لگتا ہے. لیکن میں دونوں صورتوں میں لگتا ہے تم کبھی نہیں کرے گا - آپ کو شاید کچھ مل جائے گا صارف کی طرف سے ان پٹ. یا اس تقریب کچھ ان پٹ ہوگا کہ اس بات کا تعین کرے گی کتنی بار یہ چلانا چاہئے. تو عام طور پر، آپ کو مشکل کوڈ نہیں کریں گے - یہاں تک کہ ایک تکراری نقطہ نظر میں - کس طرح کئی بار کہ لوپ چلانا چاہئے. اگر آپ کی ایک اور تھا ینی، کے بارے میں سوچ؟ ٹھیک ہے. لہذا ان کو شاید دو ہیں - سب سے بڑا حامی اور سب سے بڑا کے مقابلے میں ایک پنراورتی پر کون تکراری نقطہ نظر. ٹھیک ہے. کوئز 0 اور کچھ؟ پر منتقل کرتے ہیں. فائل میں / او ایک عجیب مختصر نہیں ہے اس ہفتے کی فائل میں / O کہ امید ہے کہ آپ ایک سے زیادہ دیکھا ہے بار، اور تعریف کی. کام کی ایک بہت ہے کہ میں چلا گیا، اور میں نے یہ انتہائی مددگار ہے سنا. میں نے بھی، اس سلائڈ پر لنک شامل ہیں صورت میں آپ کو نہیں ہے ایک یہ 10 بار دیکھنے کے لئے موقع. تو، ہم مختصر طور پر جانے کے لئے جا رہے ہیں کھولنے اور کام کرنے کے لئے اہم اقدامات فائلوں کے ساتھ، اور پھر ہم جا رہے ہیں سے پہلے ایک کوڈنگ مسئلہ میں کودو مسئلہ سیٹ کی تحقیقات. تو پھر، میں اس پیش کرنے جا رہا ہوں سکرین، لیکن میں نے کے لئے بات کرنے کے لئے جا رہا ہوں ہم اس کے بارے میں صرف ایک منٹ فائل کے ساتھ یہاں کیا کر I/O-- اس کا کیا مطلب ہے؟ کہ ہم تشکیل دے سکتے ہیں کا مطلب ہے کہ ہمارے پروگراموں، اور پھر ہمارے پروگرام ہوتے ہیں باہر نکلیں، اور پر کوئی اثر بنا دیا ہے نہیں ہمارے پروگرام کے باہر کی دنیا. لیکن ہم فائلوں کے ساتھ کام شروع - جب دونوں میں انہیں پڑھنے اور پیدا ان - ہم پر کچھ اثر ہو سکتا ہے ہمارے پروگرام کے باہر کی دنیا. جیسے مائیکروسافٹ ورڈ کے قابل نہیں تھا اس کے بعد، کسی بھی Word دستاویزات بنانے کے لئے مائیکروسافٹ ورڈ، آپ کے تمام چھوڑ دیا ایک بار کام چلا جائے گا، اور یہ کریں گے واقعی بیکار ہو جائے. ہم بالآخر کرنے کے قابل ہونا چاہتے ہیں متاثر کر سکتا ہے کے پروگرام لکھنا ان کے ارد گرد کی دنیا، دونوں میں لینے کی طرف سے فائلوں کی شرائط میں اور - کمپلیکس آدانوں فائلوں کے ذریعے، اور بھی دلچسپ بنانے اور مجبور نتائج - فائلوں کی مختلف اقسام کے لحاظ سے. ہم شروع کر رہے ہیں یہی وجہ ہے کہ ہے فائلوں کے ساتھ کام کرنے کے بارے میں جاننے کے. مزید خاص طور پر، کیا ہم نے مندرجہ ذیل کیا ہے. یہ بہت آسان ہے. وہاں اقدامات کے صرف ایک جوڑے کی ہیں، اور وہ اس کوڈ کو یہاں درج کر رہے ہیں. تو ہم کے ذریعے جانے کے لئے جا رہے ہیں لائن کی طرف سے اس کوڈ کو لائن. سب سے پہلے، آپ کو روشنی ڈالی دیکھ - آپ کو ایک فائل کے ساتھ کام، کر رہے ہیں جب سے قطع نظر فائل کی قسم یہ ہے تم نے اسے کھولنے کے لئے کی ضرورت ہے. اور یہ کہ fopen کی ایک کال کے ساتھ ہے - یہاں. آپ کو فائل کے نام شامل ہیں. فائل، اپنی ڈائریکٹری میں نہیں ہے تو یا فولڈر جہاں اس پروگرام زندگی، تو آپ کو بھی شامل کرنے کی ضرورت اس فائل ہے جہاں کے لئے ایک راستہ. ہم فرض کرنے جا رہے ہیں کہ اس "text.txt" نامی فائل - ایک سادہ متن دستاویز - ہے اس پروگرام کے طور پر ایک ہی فولڈر میں ہے. تو ہے کہ میں رکھنے کے لئے ایک اور چیز ہے ذہن - ہے کہ آپ کو ایک فائل کو کھولنے کے لئے چاہتے ہیں تو کہیں اور، آپ اصل میں ضرورت ہے اس کی جگہ شامل کرنے کے لئے. دوسرا، آپ کو ایک دلیل منتقل کر سکتی ہیں fopen کی، اور یہ کہ آپ کیا کرنا چاہتے ہے فائل کے ساتھ. تین اہم دلائل کہ ہیں آپ fopen کی پر منتقل کرنے کے لئے جا رہے ہیں. کون مجھے ان تین دے سکتے ہیں؟ کون مجھے ان میں سے ایک دے سکتے ہیں؟ جی ہاں. طالب علم 4: فائل کا نام؟ JASON HIRSCHHORN: معذرت. آپ کو منتقل کر سکتے ہیں تین اہم دلائل دوسری دلیل fopen کی کے طور پر. تم ٹھیک کہتے ہو - فائل کا نام پہلی دلیل ہے. لیکن fopen کی دوسری دلیل ہیں عام طور پر تین ڈور، اور - جی ہاں. Aleja. ALEJA: شامل کے لئے ایک. JASON HIRSCHHORN: ایک، آپ چاہتے ہیں تو پہلے سے ہی موجود ہے کہ ایک فائل میں شامل. طالب علم 5: پڑھنے کے لئے ر. JASON HIRSCHHORN: ر، اگر آپ کو ایک فائل سے پڑھنے کے لئے چاہتے ہیں. طالب علم 6: لکھنے کے لئے ڈبلیو. JASON HIRSCHHORN: اور، ڈبلیو، تو آپ ایک فائل میں لکھنے کے لئے چاہتے ہیں. تو اس صورت میں، ہم لکھ رہے ہیں فائل، تو ہم مغرب ہے. آپ اسے کھول، آپ کو بھی بچانے کے لئے ہے کہیں فائل، اور اس کے ساتھ ہے کے بائیں ہاتھ کی طرف کرنے کے لئے کوڈ تفویض آپریٹر - میں نے ایک فائل پوائنٹر پیدا کر رہا ہوں اس صورت، فائل میں، کہا جاتا ہے. ہمیں فکر کرنے نہیں جا رہے ہیں کیا یہ سب ٹوپیاں فائل بات ہے. یہ کہنا کافی ہے، یہ ایک طویل ہے zeros اور ہیں کی ندی. اور یہ کہ ہم جا رہے ہیں کس طرح یہ کام اور یہ سمجھ. ہم کیا کرنے کی ضرورت ہے اگلی بات ہے - اور یہ ناقابل یقین حد تک اہم ہے - آپ کو ایک فائل کو کھولنے جب بھی - اصل میں، آپ malloc فون جب بھی، کے لئے مثال کے طور پر، اور کچھ یاد ہو جاؤ اور کوشش کریں اور آپ کو ہمیشہ، ایک پوائنٹر میں اس کو بچانے کے اس بات کو یقینی بنانے کے لئے چیک کرنے کے لئے چاہتے ہیں کہ تقریب شہوت انگیز null واپس نہیں کیا. تو اس صورت میں، ہم کرنے کے لئے کی جانچ پڑتال کر رہے ہیں ہم اصل میں کھول دیا اس بات کا یقین صحیح طریقے سے فائل، اور وہاں تھا ہمارے پروگرام میں کوئی غلطی. اگلا، ایک بار ہم اس بات کو یقینی بنانے کے لئے جانچ پڑتال کی ہے ہم کر سکتے ہیں، ایک کام کر فائل ہے کہ ، لکھیں، یا پڑھنے کی طرف سے یا فائل میں شامل. اس صورت میں، میں صرف پرنٹنگ ہوں اس فائل ایک لائن. مجھے کس طرح پتہ ہے کہ ہے؟ ٹھیک ہے، میں اس تقریب کا استعمال کرتے ہوئے کر رہا ہوں fprintf کہا جاتا ہے. آپ استعمال کریں گے افعال میں سے سب ، کرنے کے لئے لکھنے یا سے، یا جب پڑھنے فائلوں کو توڑ کے لئے اسی طرح کی ہو جائے گا تم سے پہلے دیکھا ہے، لیکن افعال خط ایف کے ساتھ شروع، فائل کے لئے کھڑے. اور fprintf، ہمارے عام پرنٹ کے برعکس اے پی پی، ایک اضافی دلیل لیتا ہے، اور یہ کہ فائل ہے جہاں آپ کرنے کے لئے اس لائن پرنٹ کرنا چاہتے ہیں. میں کچھ بھی نہیں ہے ohai کا حق. میں نے تیسری نہیں ہے دلیل printf - یا دوسری دلیل printf سے، تیسری دلیل fprintf کرنے کے لئے، کیونکہ میں یہاں کسی بھی جگہ دار نہیں ہے. میں کسی بھی متغیر سمیت نہیں کر رہا ہوں. لیکن پھر، fprintf اور ان فائل کی تمام فائلوں کے ساتھ کام کام کرتا ہے عام طور پر فائل کی ضرورت ہے کرنے کے لئے جا رہے ہیں جس پر وہ کام کر رہے ہیں. آخر میں، آخری اہم بات کرنے کے لئے صرف کی طرح، فائل کو بند کرنے کے لئے ہے کے ساتھ - ہم کچھ MALLOC جب بھی، ہم ایسا نہ ہو، کچھ آزاد کرنا چاہتے ہیں ایک میموری لیک ہے - ہم چاہتے ہیں ہماری فائل بند کرنے کے لئے. اس پروگرام کے بند کئے بغیر باہر تو فائل، مشکلات کچھ نہیں جائیں گے ہیں غلط، خاص طور پر اگر یہ ایک چھوٹی سی فائل تھی. لیکن یہ یقینی طور پر اچھا کوڈنگ سٹائل ہے اور ہمیشہ آپ کی فائل بند کرنے کی مشق اگر آپ اسے استعمال کرتے ہوئے ختم کر رہے ہیں جب. تو اس فائل کی بنیادی باتیں I / O. ہے آپ نے شاید اس سے پہلے کہ دیکھا، یا ہے کہ تصوراتی، بہترین مختصر میں دیکھا. کسی کے سامنے، میں کوئی سوال ہے ہم نے کچھ پریکٹس کوڈنگ میں جاؤ فائل کے بارے میں مسائل، I / O یا اقدامات میں صرف گئے؟ [ٹائپنگ آواز] JASON HIRSCHHORN: کیا تم ایک سوال، AVI ہے؟ AVI: نمبر JASON HIRSCHHORN: ٹھیک ہے. میں نے ایک اور انتظار کرنے کے لئے جا رہا ہوں سات چلیں. [ہنستا ہے] کہ واقعی ایک اچھی ٹپ ہے. تم لوگ پسند نہیں کرتے سوال پوچھ. یہ ٹھیک ہے. ٹھیک ہے. تو ہماری پہلی مشق مسئلہ ہم ہیں، ہے تقریب کی نقل کرنے کے لئے جا ایک کمانڈ لائن کا آلہ ہے کہ آپ شاید کاپی - اس سے پہلے استعمال کیا جاتا ہے - کاپی کے آلے. آپ CP ٹائپ کریں اور پھر اس کے پاس تو دو آپ کے ٹرمنل میں دلائل، آپ کر سکتے ہیں ایک فائل کی کاپی. اور یہ کہ ہم جا رہے ہیں کیا ہے ابھی لکھنا. تو پھر، اس سلائڈ سے دور پڑھنے، میں تھا آپ کو لے کہ ایک پروگرام کو لکھنے کے لئے دو اور دو کمانڈ لائن صرف دلائل - ایک ذریعے فائل اور ایک منزل فائل - اور کاپیاں ذریعہ کے مندرجات منزل فائل فائل ایک وقت میں ایک بائٹ. تو اس کے لئے طلب کرنے کے لئے ایک بہت ہے. ایک بار پھر، اس کے لئے ایک اچھا نقطہ نظر ہے C کوڈ کے براہ راست جا، لیکن نہیں اقدامات کے ایک جوڑے میں ٹوٹ. سب سے پہلے، منطق کے بارے میں لگتا ہے کہ - بالکل مجھے کیا کرنا تم سے پوچھ رہا ہوں - اور سب سمجھ اس مسئلہ کے لئے اقدامات. نہیں سی، صرف کچھ pseudocode میں، یا اس سے بھی ایک ذہنی ماڈل کیا ہو رہا ہے. اگلا، آپ pseudocode نیچے ہے ایک بار، یہ اعداد و شمار کس طرح pseudocode آلات اور ہم نے چیزوں پر نقشے سی میں استعمال کرنے کے لئے سیکھا ہے اور آخر میں، ایک بار آپ سب کو ہے کہ ایک دوسرے کے ساتھ، آپ کے مسئلہ کو کوڈ کر سکتے ہیں. کرنے کے لئے 5 سے 10 منٹ لے لو اس مسئلہ پر کام. میں دی گئی ہدایات پر ڈال دیں گے واپس ایک دوسرے میں. اور پھر ہم پر جانے کے لئے جا رہے ہیں pseudocode، اور کوڈ یہ ایک گروپ کے طور پر رہتے ہیں. تم جبکہ آپ کوئی سوال ہے تو اس پر کام کر، بلند کرنے کے لئے آزاد محسوس کرتے ہیں آپ کے ہاتھ، اور میں آ جائے گا کے ارد گرد اور ان کا جواب. طالب علم 7: میں نے swipe کے کر سکتے ہیں ایک کاغذ کا ٹکڑا؟ JASON HIRSCHHORN: کیا بات ہے؟ [ٹائپنگ آواز] JASON HIRSCHHORN: ٹھیک ہے. کی پہلی pseudocode پر چلتے ہیں، اور تو میں آپ کو ایک جوڑے کو دے دونگا منٹ کوڈنگ ختم کرنے کے لئے. کون مجھ سے دور شروع کرنے کے لئے چاہتے ہیں کی پہلی سطر کے ساتھ اس تقریب کے لئے pseudocode؟ طالب علم 8: اس بات کو یقینی بنانے کے لئے چیک کریں آپ کو دو فائلوں کو دیا گیا. JASON HIRSCHHORN: ٹھیک ہے. اور ہم نہیں ہیں؟ طالب علم 8: میں 0 واپس کریں گے. JASON HIRSCHHORN: ہم واپس 0 چاہئے؟ طالب علم 8: ایک واپسی - blanking. معذرت. JASON HIRSCHHORN: جی ہاں. شاید نہیں 0. 0 سب کچھ اچھا تھا کیونکہ اس کا مطلب. ٹھیک ہے. تو اس پہلی لائن ہے pseudocode کی. کون pseudocode کی دوسری لائن ہے؟ طالب علم 9: فائلوں دونوں کھلے؟ JASON HIRSCHHORN: دونوں فائلوں کو کھولنے کے. ٹھیک ہے؟ طالب علم 10: دیکھنے کے لئے چیک فائل خالی ہے؟ JASON HIRSCHHORN: کرنے کے لئے چیک اس بات کا یقین نل ہیں نہ. ایک طرف ایک - 0 سلیش - کہ شہوت انگیز null ہے؟ طالب علم 11: نمبر JASON HIRSCHHORN: یہ نل نہیں ہے. کہ شہوت انگیز null مختتم کہا جاتا ہے. یہ اصل میں صرف ایک ایل کے ساتھ ہجے. تو اس کے خلاف کچھ کی جانچ پڑتال - کہ اصل میں ایک کردار ہے - تو اس کے خلاف کچھ کر رہا ہے کی جانچ پڑتال دیکھنے کے لئے کی جانچ پڑتال کے طور پر ہی نہیں تو یہ نل کے برابر ہے. اور کچھ لوگ - ان quizzes اور ان کے مسئلہ پر سیٹ - مل گیا ہے الجھن میں ان میں سے دو. لیکن ان کے دو ہیں مختلف حقیقت میں. ایک ایک تار ختم ہو جاتی ہے - ایک 0 پوائنٹر ہے. طالب علم 12: کیوں آپ کو چیک نہیں کیا جائے گا فائلوں نل نہیں ہیں کہ بات کو یقینی بنانے آپ ان کے کھولنے سے پہلے؟ JASON HIRSCHHORN: تو کھولیں بچاتا ہے اس فائل میں کچھ. اور تم یہاں واپس جانا ہے - تو اس لائن - fopen کی - آپ کو ایک ایڈریس اور سٹور دے گا یہ کام کرتا ہے اگر فائل میں اس ایڈریس. یہ کام نہیں کرتا ہے، تو یہ نل جمع کریں گے - طالب علم 12: اوہ. ٹھیک ہے. پکڑ لیا. JASON HIRSCHHORN: فائل میں. تو کیا تم نل کے لئے چیک نہیں کر سکتے ہیں آپ ان کو کھول دیا ہے اس سے پہلے. نل کچھ نہیں کیا مطلب ہے صحیح طریقے سے کام. ٹھیک ہے. اتنا یقین نہ ہے بنانے کے لئے چیک کریں؟ یا ہیں؟ ہم کیا سوچتے ہیں؟ ہم اس کے ساتھ جائیں گے. طالب علم: 13 ہے. JASON HIRSCHHORN: ہے؟ نہ تو؟ طالب علم: 13 ہے. JASON HIRSCHHORN: ٹھیک ہے. ہم کچھ کرنے کے لئے لگ رہے ہو اس پر اتفاق رائے. نل ہے نہ. ٹھیک ہے، pseudocode کی اگلی لائن. کون مجھے ابھی تک ایک لائن نہیں دی ہے؟ ہم آپ کے لئے انتظار کریں گے. جی ہاں. طالب علم 14: آپ کو پڑھنے کے لئے ہے پہلی فائل سے؟ JASON HIRSCHHORN: ٹھیک ہے. طالب علم 14: یا ہم fscanf کا استعمال یا کہ سب سے پہلے فائل کی طرح کچھ؟ JASON HIRSCHHORN: تو ہم کرنا چاہتے ہیں پہلی فائل سے پڑھنے کے اور - حق کہ یہاں ڈال. ذریعہ فائل سے پڑھنے کے. اور پھر، ہم نے اس کے بعد کیا کرتے ہیں سورس فائل سے پڑھنے کے؟ کسی اور؟ طالب علم 15: لکھنے میں منزل فائل؟ JASON HIRSCHHORN: ہم لکھیں منزل فائل، اور - ٹھیک ہے. ہم اور کیا یاد کر رہے ہیں؟ مجھے ایک نہیں دی ہے جو کسی اور ابھی کوڈ کے لائن - pseudocode کی. جی ہاں. طالب علم 16: ہو سکتا ہے کہ آپ کو ہمیشہ چیک کر سکتے ہیں چاہے کے لئے پڑھنے کے لئے کچھ ہے، اگلی لائن کی طرح؟ اگلی لائن طرح ہیں، اگر یہ موجود ہے کو دیکھنے کے. [الیکٹرانک بیپ] JASON HIRSCHHORN: افوہ. یہ میری journaling سافٹ ویئر ہے. جی ہاں؟ طالب علم 16: جی ہاں. JASON HIRSCHHORN: تو دے یہ میرے لئے ایک بار. طالب علم 16: وہاں ہے یا نہیں کی جانچ پڑتال کریں کی طرف سے اب بھی ایک اگلی لائن پڑھنے کے ذریعہ فائل. JASON HIRSCHHORN: ٹھیک ہے. تو ہم لائنوں پڑھنے نہیں کر رہے ہیں - یہاں بائٹس پڑھ رہے تھے - لیکن آپ درست ہیں. ہم جب تک پڑھنے اور لکھنے کے لئے چاہتے ہیں کوئی بائٹس ہیں. ٹھیک ہے. اور اس طرح یہ واقعی پوٹ دار ہونا چاہئے تھوڑا سا، وہ وہاں کے تحت رہے ہیں. ٹھیک ہے نا؟ ہم بائٹس سے باہر ہیں جب تک، ہم جا رہے ہیں سورس فائل سے پڑھنے اور لکھنے منزل فائل. اور پھر، آخری ہے pseudocode کی لائن؟ دیا نہیں ہے کوئی جو مجھے کچھ ابھی تک. طالب علم: 17 فائلوں قریب؟ JASON HIRSCHHORN: بالکل. فائلوں کو بند کریں. تو اپنے pseudocode ہے. میں میں pseudocode ڈال کرنے جا رہا ہوں کی gedit، اور منٹ کے ایک جوڑے میں ہم ایک ساتھ مل کر اس کوڈ کو کیا جائے گا. ٹھیک ہے. ہمیں ایک گروپ کے طور پر شروع ہو جاتے ہیں. نشانت، میں اپنے نئے فائل ہے. میں صرف اس کے لئے کھول دیا ہے. بلا عنوان دستاویز 1. مجھے کیا کرنا چاہئے سب سے پہلی چیز کیا ہے؟ NISHANT: لائبریریوں کو شامل؟ JASON HIRSCHHORN: ٹھیک ہے. کیا لائبریریاں؟ NISHANT: stdio.h کی، stdlib.h، مجھے یقین ہے؟ JASON HIRSCHHORN: ٹھیک ہے. کے لئے stdlib کیا ہے؟ NISHANT: میں بھول گیا. JASON HIRSCHHORN: ٹھیک ہے. تو stdio میں شامل ہیں. میں نے بھی اس سے پہلے کیا کرنا چاہئے میں کوڈنگ گیا ہے؟ NISHANT: ایک ہیڈر لکھیں؟ JASON HIRSCHHORN: کس طرح یہ رنگ میں حاصل کرتے ہیں؟ [INTERPOSING آوازیں] NISHANT: کس طرح آپ کو یہ رنگ حاصل کرتے ہیں؟ JASON HIRSCHHORN: کس طرح میں کوڈنگ رنگ ہے؟ NISHANT: میں نہیں جانتا. اوہ. محفوظ کریں. JASON HIRSCHHORN: محفوظ کریں. جی ہاں. میں ایک. سی کے طور پر اس کو بچانے کے لئے کرنا چاہئے. تو cp.c. کے طور پر ڈیسک ٹاپ پر اس کو بچانے کے میٹھی. اور مجھے مکمل سٹائل حاصل کرنے کے لئے چاہتے ہیں تو پوائنٹس، کیا مجھے سب سے اوپر میں شامل ہیں؟ NISHANT: آپ کو اپنا نام، نام لکھ سکتے تھے پروگرام، اور اس مقصد کے اس کے ساتھ ساتھ پروگرام کا؟ JASON HIRSCHHORN: اچھا لگتا ہے. بہترین. تو آپ بالکل ہمارے دور شروع کر دیا ہے. # میں شامل ہیں - ہم بھی لکھیں گے - ٹھیک ہے. تو میں نے سب کو جانا قائم رہا ہوں. جو میرے لئے کوڈ کی پہلی لائن ہے - یا کوڈ کی پہلی لائنوں کہ یہ ہماری پہلی مطمئن کرنے کے لئے لے جائے گا pseudocode میں تبصرہ؟ آپ. طالب علم 18: یہ INT نہیں ہونا چاہئے جہاں argc، اور پھر چار * argv؟ JASON HIRSCHHORN: مجھے لگتا ہے کہ تم صحیح ہو. یہ اہم، کھلی قوس int میں تبدیل کرتے ہیں، INT جہاں argc، کوما، چار * argv؟ کی طرح؟ طالب علم: 18 قوسین. JASON HIRSCHHORN: قوسین. کھلا بریکٹ، بند بریکٹ، بند والدین. کامل. اب میں کمانڈ لائن کے دلائل لے جا سکتے ہیں. ٹھیک ہے. ہم دو فائلوں کو دے رہے ہیں اس بات کا یقین. آپ کے ساتھ ساتھ مجھے دے سکتے ہیں. طالب علم: 18 جہاں argc ہے - یہ ایک 3 کے برابر نہیں ہے. JASON HIRSCHHORN: اگر کھلی قوس 3 جہاں argc کے برابر نہیں ہے؟ طالب علم 18: جی ہاں، آپ واپس 1 یا کچھ بھی. JASON HIRSCHHORN: معذرت. طالب علم: 18 واپس 1 یا کچھ. JASON HIRSCHHORN: واپس 1. ٹھیک ہے؟ عظیم. دونوں فائلوں کو کھولنے کے. کون میرے دونوں فائلوں کو کھولنے میں مدد کر سکتے ہیں؟ کون مجھے ابھی تک کوڈ نہیں دیا گیا ہے؟ کرٹ؟ کرٹ: تو تمام بڑے حروف ایف میں ایل ای سٹار ذریعہ. JASON HIRSCHHORN: میں جا رہا ہوں سر باہر لے جانا. لوگ اچھے ہیں. یہ Tumblr طرح ہے. طالب علم: 18 fopen کی برابر - JASON HIRSCHHORN: fopen کی برابر ہے؟ طالب علم: 18 کھلی قوس، ہے argv، اوپن بریکٹ. JASON HIRSCHHORN: انتظار. معذرت. کھلی قوس. ٹھیک ہے. طالب علم 18: جی ہاں. ہے argv ذیلی 1. JASON HIRSCHHORN: سب 1؟ طالب علم 18: جی ہاں. ہے argv کھولیں بریکٹ 1 - جی ہاں. اور پھر کوما، اور پھر کھولیں ڈبل اقتباس، R، ڈبل اقتباس، بند قوس، نیم وقفہ. JASON HIRSCHHORN: میٹھی. اور کیا ایک دوسرے کے بارے میں؟ طالب علم: 18 بہت اسی طرح، بلکہ اس کی بجائے S-R-C کے، آپ کو D-S-T یہ فون کروں گا. JASON HIRSCHHORN: جی! مجھے یہ پسند ہے. طالب علم 18: بس D-S-T. جی ہاں. اور پھر،، 2 اوپن بریکٹ میں argv. جی ہاں. اور پھر مغرب کی بجائے ر. جی ہاں. JASON HIRSCHHORN: عظیم. لائنوں کے اگلے دو. اس کے علاوہ، کسی کو شامل کرنے کے لئے چیزوں کو ہے ہم نے کیا کیا ہے کہ لائنز، کرنے کے لئے آزاد محسوس کرتے ہیں اس کے ساتھ ساتھ ان لوگوں کو شامل کریں. اس بات کا یقین نہ تو نل ہے بنانے کے لئے چیک کریں. کون مجھ سے مجھے اس کی ضرورت کوڈ دے سکتے ہیں pseudocode کی اس لائن کو پورا؟ آرچر. آرچر: ایسآرسی برابر برابر تو شہوت انگیز null یا ڈیایسٹی برابر برابر نل، تو آپ کو واپسی - JASON HIRSCHHORN: کیا؟ آرچر: 2 واپس؟ JASON HIRSCHHORN: 2 واپس. تو کھلی قوس ایسآرسی برابر ہے نل کے برابر ہے، یا - کہ thing's جو بھی - پائپ؟ پائپ؟ ہم پائپ اسے فون کروں گا. پائپ، پائپ، ڈیایسٹی برابر برابر نل، 2 واپس. ٹھیک ہے؟ ہم بائٹس سے باہر ہیں جب تک - ہم قسم کی طرف سے یہ قدم کے دوران چھوڑا یہاں جا pseudocode حصہ. لیکن جب تک ہم بائٹس سے باہر ہیں - کہ آواز کی طرح کیا کرتا ہے؟ سی ساخت کس قسم کی - لیکن میں نے لفظ کی ساخت کا استعمال نہیں کرتے، ہم کا استعمال کرتے ہوئے شروع کرنے کے لئے جا رہے ہیں کہ دوسری صورت میں - لیکن C آلہ کی طرح وہ آواز ہے؟ طالب علم 19: ایک لوپ. JASON HIRSCHHORN: ایک لوپ. ایک لوپ کی طرح لگتا ہے. تو جو پہلی سطر دے سکتے ہیں یہاں لوپ کوڈ کی؟ آپ یہ بھی منتخب کر سکتے ہیں کس قسم کی کیا آپ مجھے دے لوپ آپ چاہتے ہیں کوڈ کی اس لائن. تین اقسام ہیں. آپ کو لینے کے لئے حاصل. میں نے ان میں سے ایک تجویز کرے گا. AVI. آپ کو کون سا کرنا چاہتے ہیں؟ AVI: کے لئے. JASON HIRSCHHORN: کے لئے. AVI: میں صفر کے برابر INT. JASON HIRSCHHORN: ٹھیک ہے. AVI: کے بارے میں یقین نہیں ہے یہ حصہ. لیکن میں سائز سے کم ہے سٹار ذریعہ کی؟ مجھے اس بات کا یقین نہیں ہوں. JASON HIRSCHHORN: ٹھیک ہے. آپ چاہتے ہیں کیونکہ: AVI ایک فائل کے سائز کی، ٹھیک ہے؟ JASON HIRSCHHORN: تو شاید یہ نہیں کریں گے ہم اصل کا سائز دے بائٹس میں فائل. تو ہم اور کیا کر سکتا ہے؟ لوپ کی ایک اور قسم کیا ہے؟ یا ہم کے لئے لوپ کے ساتھ رہنا چاہئے؟ طالب علم 20: اگر آپ کو ایک جبکہ لوپ کر سکتے ہیں؟ اور پھر، آپ کیا چاہتے ہیں you'd ہے - ہم فائل کے لئے ایک چار * ہے کیونکہ. ہم صرف incrementing رکھنے کہ اگر ہم شہوت انگیز null کردار میں تلاش کروں گا جب تک اس کے آخر؟ یا کوئی، فائلوں کو کس طرح کام نہیں ہے؟ JASON HIRSCHHORN: تو ہم رکھ سکتے ہیں چار * incrementing ہم شہوت انگیز null تلاش تک - طالب علم 20: بنیادی طور پر جاری رکھنے کردار سے کردار ہم کو مارا ہے جب تک فائل کے آخر میں. JASON HIRSCHHORN: جی ہاں. تو ہے کہ ہم کیا کرنا چاہتے ہے. ہم پڑھنے، کردار رکھنا چاہتے ہیں کردار کی طرف سے، ہم جب تک فائل کے آخر میں. طالب علم 20: جی ہاں. تلاش کریں - آخر یا سٹاپ سائن کیا ہے ایک ٹیکسٹ فائل کے آخر میں. JASON HIRSCHHORN: ٹھیک ہے. تو ہم فائل کے آخر میں حاصل کرنے کے لئے - جب کس طرح ہم تک پہنچ چکے ہیں جانتے ہیں ایک فائل کے آخر؟ میں بلا رہا ہوں تو - تو قدم پیچھے ہیں. ایک تقریب کیا ہے؟ کی یہیں اس لائن پر چلتے ہیں. ذریعہ فائل سے پڑھنے کے. مجھے کون کوڈ کی اس لائن دے سکتے ہیں؟ طالب علم 21: Fscanf؟ JASON HIRSCHHORN: Fscanf. ٹھیک ہے. کیا میں پڑھنے کے لئے چاہتے ہیں، تو بہت خاص طور پر، ایک بائٹ؟ طالب علم 21: مجھے نہیں معلوم. JASON HIRSCHHORN: ٹھیک ہے. fscanf سے بھی آسان ہے - ایک کیا ہے - میں نے ایک ذریعہ فائل سے پڑھنے کے لئے چاہتے ہیں؟ ایک ذریعے فائل سے پڑھنے کے. ایک تقریب کیا ہے - جی ہاں. طالب علم 22: یہ fread ہے؟ JASON HIRSCHHORN: Fread. میں کے ساتھ رہنا ہیں لگتا ہے اب کے لئے کہ ایک. دلائل کے کس طرح fread لگتا ہے؟ طالب علم 22: شاید فائل کی قسم، اور پھر فائل میں مقام؟ JASON HIRSCHHORN: میں یہاں کیا ٹائپ کر سکتے ہیں اعداد و شمار کے دلائل کی قسم fread لیتا ہے؟ ایک سے زیادہ طالب علموں: انسان fread. JASON HIRSCHHORN: انسان fread اور fwrite. وہ ایک ساتھ باہر پھانسی کی طرح لگتا ہے. تو fread کتنے دلائل لگتا ہے؟ طالب علم 23: چار. JASON HIRSCHHORN: یہ لیتا ہے چار دلائل. یہ ایک پوائنٹر، ایک سائز لیتا ہے، اور یہ کہ عجیب ہے جو چیز،، اور کچھ فائل. ٹھیک ہے؟ کے یہاں اس کے بارے میں پڑھیں. "تقریب fread ن memb پڑھتا ہے اعداد و شمار کے عناصر، ہر سائز بائٹس طویل، ندی سے کی طرف سے کی طرف اشارہ مقام پر ان کے محفوظ کرنے، ندی پوائنٹر کی طرف سے دی. " تو چار دلائل. کیوں میں نے صرف اس کی کاپی نہیں ہے، اور یہاں چسپاں کر دیں. ٹھیک ہے. تو جو بھرنے شروع کر سکتے ہیں میرے لئے ان دلائل؟ AVI. AVI: باطل باہر لے جاؤ. صرف ایسآرسی رکھو. پوائنٹر اور سٹار باہر لے جاؤ. ایسآرسی رکھو. اس کے بعد - JASON HIRSCHHORN: تو مجھے روکنے کے لئے جا رہا ہوں وہاں آپ کو، کہ غلط ہے کیونکہ. آپ ایسآرسی کے ساتھ صحیح ہیں، لیکن ایسآرسی کہاں جانا چاہئے؟ [INTERPOSING آوازیں] JASON HIRSCHHORN: یہ چاہئے یہاں جانا. یہ ایسآرسی ہے - ہماری ایسآرسی ایک قسم ہے. یہاں دیکھو. یہ ایک قسم کی فائل * کے لئے پوچھ رہا ہے، ہم دراصل عام طور پر اس طرح ان کو دیکھنے کے. تو اس کی ایک دلیل کے لئے پوچھ رہا ہے * ایسآرسی ہے کہ کہا جاتا ہے ندی فائل کی قسم. ٹھیک ہے؟ چیزوں کو کس سائز ہم پڑھنے کے لئے چاہتے ہیں؟ میں آپ کو اس دی مسئلہ کی تفصیل. طالب علم 24: ایک وقت میں ایک بائٹ. JASON HIRSCHHORN: ایک بائٹ. ایک بائٹ کتنا بڑا ہے؟ اس کا سائز بائٹس میں ہے، تو کیا ہوا میں ابھی وہاں ڈال کر سکتے ہیں؟ طالب علم 25: ایک. JASON HIRSCHHORN: ایک. ٹھیک ہے. اس کے سائز یونٹ بائٹ میں ہے، تو 1 1 بائٹ ہے. میں ایک وقت میں پڑھنے کے لئے کتنے چاہتے ہیں. طالب علم 26: ایک؟ JASON HIRSCHHORN: ایک بات. میں کے سائز کی ایک بات کو پڑھنے کے لئے چاہتے ہیں، 1، ایک وقت میں ایک کاٹنے. میں نے اسے پڑھا اور ایک بار جہاں میں، ڈال دیا ہے؟ طالب علم 27: مقصود؟ JASON HIRSCHHORN: تو میں نہیں ڈال سکتا یہ براہ راست منزل میں. طالب علم 28: تم ڈال رہے ہیں یہ ایک تیسری پوائنٹر میں؟ طالب علم 27 منزل پر. JASON HIRSCHHORN: ٹھیک ہے. جی ہاں. طالب علم 29: تم سے کچھ اعلان کر سکتے ہیں عارضی اسٹوریج پہلے کے طور پر کام. JASON HIRSCHHORN: ٹھیک ہے. وہ مجھے دو. طالب علم 29: ایک فائل پوائنٹر، شاید؟ JASON HIRSCHHORN: ٹھیک ہے. تو یہ باطل ستارہ ہے - یہ ایک قسم صفر ستارہ ہے، تو ایسا نہیں ہوتا ایک فائل پوائنٹر ہونا پڑے گا. اور میں ایک بائٹ پڑھ رہا ہوں تو، ایک اچھی جگہ ہو گی جہاں ایک بائٹ سٹور کرنے کے لئے؟ طالب علم 29: ایک صف؟ JASON HIRSCHHORN: ایک صف. ٹھیک ہے. اور ہے کہ کچھ اور کیا ہے صرف ایک بائٹ سائز؟ طالب علم 30: ایک چار *؟ طالب علم 29: جی ہاں. JASON HIRSCHHORN: ایک چار * ایک بائٹ نہیں ہے. طالب علم 29: ایک چار. JASON HIRSCHHORN: ایک چار ایک بائٹ ہے. ٹھیک ہے نا؟ تو اس بفر فون ایک عام ہے ذخیرہ کرنے کے لئے ان چیزوں کے لئے استعمال کیا نام کچھ عارضی طور پر. تو میں نے ایک بفر کی تخلیق. ٹھیک ہے نا؟ لیکن یہ * ایک باطل لگتا ہے. تو شاید آپ ٹھیک کہتے ہیں کہ یہ 0 سائز کے ایک بفر ہونا چاہئے. تو یہ ایک اسٹورز - حق. کیونکہ یہاں اس حق - چار بفر کردار ہے، لیکن یہ * ایک صفر لیتا ہے - ایک پوائنٹر. تو اب میں یہ کرتے ہیں اور کر سکتے ہیں بفر پوائنٹر ہے. میں اور کیا کر سکتا ہے؟ طالب علم 31: چار اگلا ایک ستارہ رکھو. JASON HIRSCHHORN: میں کر سکتا ہوں یہ چار * پیدا کیا ہے. ٹھیک ہے. میں کر سکتا دوسری بات کیا ہے؟ یا اس ایک کے ساتھ جانے. چار * بفر، تو کیا میں یہاں ڈال دیا ہے؟ طالب علم 31 بفر. JASON HIRSCHHORN: بفر. بفر ایک چار پوائنٹر ہے. اور اس جگہ میں، ہم ڈال رہے ہیں ہم نے پڑھا ہے کچھ میں سے ایک بائٹ. جی ہاں. AVI. AVI: صرف ایک فوری سوال ہے. آپ بفر MALLOC کرنا چاہتے ہیں؟ JASON HIRSCHHORN: جو اس سوال کا جواب؟ طالب علم 32: ٹھیک ہے، یہ واقعی نہیں ابھی کچھ نقطہ، تو - JASON HIRSCHHORN: لیکن ہم اس MALLOC کرنا چاہتے ہیں؟ طالب علم 32: اگر آپ ایسا کرنے کے لئے تھے کہ آپ کی ضرورت چاہتے کیونکہ جس طرح سے، میں، جی ہاں، لگتا ہے اس کی طرف اشارہ کرنے کے لئے کچھ جگہ. JASON HIRSCHHORN: ہم کیا کرتے ہیں یہ MALLOC ہے؟ طالب علم 33: اگر آپ جا رہے ہیں لوپ سے باہر اس کا استعمال. JASON HIRSCHHORN: ہم جا رہے ہیں لوپ سے باہر اس کا استعمال؟ طالب علم 34: جی ہاں. طالب علم 35: انتظار. ہم اس کا اعلان کرنا چاہتے ہیں سے باہر کرنے کے لوپ میں؟ JASON HIRSCHHORN: تو میں ہم لگتا ہے یہاں ہم ہیں کہ کچھ چھدم جبکہ لوپ ، اعداد و شمار کی کوشش کر رہے ہیں کہ ہم ابھی تک نہیں ملا ہے. ہم اس MALLOC کی ضرورت نہیں ہے. ہم اہم میں کام کر رہے ہیں، یہ صرف جا رہا ہے اس لوپ کے اندر استعمال کیا جائے گا. اس پر موجود کی ضرورت نہیں ہے اس کے باہر. تو یہ ایک مقامی متغیر ہو سکتا ہے. آپ کو ایک پوائنٹر کے لئے ہے ایک مقامی متغیر. طالب علم 36: لیکن یہ نہیں ہے کچھ کی طرف اشارہ. JASON HIRSCHHORN: نہیں، یہ نہیں ہے کچھ initialized ہے. لیکن ہم بھی اس کا استعمال نہیں کر رہے ہیں. ہم میں کچھ ڈال کے لئے جا رہے ہیں یہ پہلی بار ہم نے اسے استعمال کرتے ہیں. تو یہ ٹھیک لگتا ہے. تو ہم یہاں malloc کی ضرورت نہیں ہے. اور میں ہے کے طور پر یہ ٹھیک ہے. ٹھیک ہے. ہم fread لائن ہے. کی اگلی لائن کرتے ہیں. ہم نے ایک فائل کو لکھنے کے لئے چاہتے ہیں، تو کیا ہے ایسا کرنے کے لئے استعمال کرنے کے لئے ایک اچھی تقریب؟ طالب علم 37: Fwrite؟ طالب علم 38: Fprintf؟ JASON HIRSCHHORN: Fprintf میں سے ایک ہے. ایک کیا ہے؟ طالب علم 39: Fwrite. JASON HIRSCHHORN: Fwrite. اور ہمارے مقاصد کے لئے، fwrite، ہم یہاں جس نے دیکھا، ہے شاید بہتر انتخاب. اس کے ساتھ ساتھ چار دلائل لیتا ہے. نشانت، آپ کو دے سکتا دلائل مجھے؟ NISHANT: سب سے پہلے کی جا صرف بفر ہو. JASON HIRSCHHORN: ٹھیک ہے. NISHANT: دوسرا ایک صرف 1 جا رہا. تیسرا 1 جا رہا ہے. اور چوتھے ایک ڈیایسٹی جا رہا ہے. JASON HIRSCHHORN: کسی کو ہے اس لائن کے بارے میں کوئی سوال ہے؟ یہ اچھا لگتا ہے. ٹھیک ہے. تو اب یہ ہم ایک چیز کی طرح لگتا ہے لاپتہ - اصل میں، لکھنے یہ آخری لائن. فائلوں کو بند کریں. کون تحریری طور پر ہمیں ختم کر سکتے ہیں ان آخری دو لائنوں؟ جی ہاں. معذرت، آپ کا نام کیا ہے؟ LUCY: لسی. JASON HIRSCHHORN: لسی. LUCY: پھر میں fclose ایسآرسی اور میں fclose منزل. JASON HIRSCHHORN: میں fclose، کھلی قوس، ایسآرسی، قریبی قوس، نیم وقفہ. اور میں fclose - جی ہاں؟ LUCY: کھولیں قوسین، ڈیایسٹی اور اس کے بعد نیم وقفہ. JASON HIRSCHHORN: عظیم. اور میں نے آخر میں کیا شامل کرنا چاہئے؟ LUCY: 0 واپس. JASON HIRSCHHORN: 0 واپس. میں ہے؟ صرف ایک سوال. ہم واپسی 0 شامل کرنے کے لئے ہے؟ ایک سے زیادہ طالب علموں: نمبر JASON HIRSCHHORN: نمبر مین خود کار طریقے سے کرتا ہے آپ کو ختم کرنے کے لئے ملتا ہے. لیکن میں اس کے لئے اچھا لگتا ہے واضح طور پر اس میں شامل ہیں. ہم دیگر آرہے ہیں خاص طور پر جب پروگرام کے دوران چیزیں. ٹھیک ہے. یہ ہم یاد کر رہے ہیں کیا ہے - کیا ہے؟ جو کچھ کے بارے میں سوچ کر سکتے ہیں - کے کچھ احساس ہے کیا ہوا ہے میں وہاں جا سکتا ہے؟ یہ صرف کچھ pseudocode میں ہے یہاں تک کہ اگر زبان کی طرح؟ ہم واقعی کیا ہیں - کیا ہم جب تک جانے کے لئے چاہتے ہیں؟ جی ہاں، لسی. LUCY: فائل کے آخر میں. JASON HIRSCHHORN: فائل کے آخر میں. تو آپ کو فائل کے آخر کی طرف سے کیا مطلب ہے؟ LUCY: آپ تک پہنچنے کے بعد فائل کے آخر میں، کو روکنے کے. JASON HIRSCHHORN: ٹھیک ہے. تو ایک بار ہم فائل کے آخر تک پہنچنے کے. ہم پہنچ چکے ہیں جب ہم کیسے جانتے ہو فائل کے آخر؟ طالب علم 40: میں بفر لگتا ہے نل کرنے کے لئے مقرر کیا جائے گا. طالب علم 41: بفر اعلان کیا جاتا ہے لوپ کے اندر. JASON HIRSCHHORN: تو آپ کو لگتا ہے بفر نل کرنے کے لئے مقرر کیا جائے گا. کیوں شہوت انگیز null قائم کیا جائے بفر گے؟ طالب علم 40: جب آپ کو اس کی وجہ fread، آپ کو ڈال کرنے کی کوشش کر رہے ہیں بفر میں کچھ بھی نہیں. JASON HIRSCHHORN: ٹھیک ہے. تو آپ fread سوچ رہے ہیں - ہم کے اختتام تک پہنچ گئے جب فائل، کیا fread کیا جا رہا ہے؟ میں نے اس سوال کے جواب میں ہے ہم باہر کے اعداد و شمار کے لئے ہے. fread کیا کرتا ہے؟ یہ بفر میں نل ڈال دیا، یا ہے یہ کچھ کرتا ہے؟ ہم کس طرح یہ کیا کرتا ہے کے اعداد و شمار کر سکتے ہیں؟ طالب علم 42: انسان. JASON HIRSCHHORN: آدمی. تو یہاں دیکھو. قیمت واپس. کامیابی، fread پر اور واپس fwrite پڑھ یا لکھا اشیاء کی تعداد. یہ تعداد بائٹس کی تعداد کے برابر ہے 1 سائز ہے صرف اس وقت جب میں منتقل کر دیا. ایک خرابی اس وقت ہوتی ہے، یا کے آخر تو فائل تک پہنچ جاتا ہے، کی واپسی قیمت ہے مختصر آئٹم شمار یا 0. تو ہمارے مقاصد کے لئے، تو fread تک پہنچ جاتا ہے فائل کے آخر میں، اور سے پڑھتا ہے فائل کے آخر، چھوڑ دیا کچھ بھی نہیں ہے پڑھنے کے لئے، کیا اس کو واپس جا رہا ہے؟ طالب علم 43: زیرو؟ JASON HIRSCHHORN: کیا؟ طالب علم 43: زیرو؟ JASON HIRSCHHORN: صفر. یہ صفر واپس جا رہا ہے. تو ہم نے کر لیا ہے کہ fread، جانتے فائل کے آخر تک پہنچ گئی، جا رہا ہے صفر واپس کرنے کے لئے. کس طرح ہم نے اپنے فائدہ کے لئے اس کا استعمال کر سکتے ہیں؟ AVI: آپ باہر ایک متغیر کا اعلان کر سکتے ہیں چیک بلایا لوپ کے. چیک برابر ہیں - اب کے لئے - ایک. JASON HIRSCHHORN: ٹھیک ہے. AVI: اور پھر آپ کو ایک اگر ڈال کر سکتے ہیں حق fread کہہ کر بیان تو fread صفر کے برابر ہے - کوئی. JASON HIRSCHHORN: کون بذریعہ Avi مدد کر سکتے ہیں؟ AVI: قیمت کیا ہے fread کی ​​طرف سے واپس لوٹ آئے؟ JASON HIRSCHHORN: ہم صرف میں چلے گئے. AVI: آپ کو یہ کس طرح کی نمائندگی کرتے ہیں؟ JASON HIRSCHHORN: تو یہ واپس - چلو یہاں دیکھو - یہ ایک واپسی بنیادی طور پر ہے جو size_t، ایک عددی. تو یہ ایک عددی واپسی. اور ہمارے معاملے میں، یہ 1 یا 0 واپسی - 1 یہ ایک بات پڑھا ہے - ایک بائٹ، 0 ہم آخر تک پہنچ گئی ہے تو. تو fread ہیں - جی ہاں؟ طالب علم 45: آپ کو صرف مکمل نہیں ڈال سکتے ہیں میں fread (بفر، 1، 1، ایس آر سی) جبکہ لوپ؟ JASON HIRSCHHORN: تو اگر آپ کی تجویز وہاں میں یہ کر؟ [INTERPOSING آوازیں] JASON HIRSCHHORN: رکو. تو ہم نے اس کی نجات دلانے رہے ہیں. تو آپ ڈال کی تجویز پیش کر رہے ہیں fread وہاں میں؟ کیا ہم بھی منتقل کرنا چاہئے اگر آپ ایسا کرنا چاہتے ہیں؟ طالب علم 45: باہر بفر. JASON HIRSCHHORN: ہمیں چاہئے یہاں بھی اس سے باہر منتقل. طالب علم 45: لیکن کرتا ہے مسلسل آگے منتقل؟ [INTERPOSING آوازیں] JASON HIRSCHHORN: ٹھیک ہے. تو اس Okshar کی تجویز پیش کی ہے. ہم اپنے بفر بنانے کے. ہم وقت fread، تو ہم fwrite. اس پر خیالات؟ طالب علم 46: میرا سوال صرف، گے یہ اصل میں کمانڈ fread پھانسی؟ JASON HIRSCHHORN: بڑا سوال. آپ کو ایک تقریب کال ڈال رہے ہیں جب ایک شرط کے اندر، کہ کرتا ہے تقریب کال پھانسی؟ ہم نے اس کی مثالیں دیکھا ہے. ٹھیک ہے نا؟ طالب علم 46: ٹھیک ہے. جی ہاں. تو اس پر عمل کرتا ہے. JASON HIRSCHHORN: ہم چیزوں کو دیکھا ہے اس سے پہلے، ہم نے جہاں کی طرح ایک شرط کے اندر تقریب کال. اس تقریب کی کال پر عمل کرتا ہے؟ جی ہاں. تو جواب ہاں میں ہے. اس فنکشن کال پر عمل کیا جائے گا. لیکن پھر، کہ ہم کیا چاہتے ہیں؟ ہم اعداد و شمار کر سکتے ایک طریقہ کیا ہے ہم چاہتے ہیں باہر تو کیا ہوگا؟ ایک سے زیادہ طالب علموں: اسے چلائیں؟ JASON HIRSCHHORN: ہم اسے چلانے کر سکتے ہیں. ہم ایسا لیکن اس سے پہلے، ہم کر سکتے بھی اس کے ذریعے وجہ. تو - ہم میں سے ایک بائٹ کا کہنا ہے کہ ہماری ہم یہاں مل جائے گا، فائل، ہم اس کوڈ کو مل جائے گا. یہ چلے گا. fread ایک بائٹ واپس جائے گا اور یہ بفر میں سٹور. اور یہ، 1 کا اندازہ کریں گے حق، کے بعد انہوں نے 1 واپس. جبکہ 1. کہ اندر کوڈ کا مطلب جبکہ لوپ پر عمل کرے گا؟ طالب علم 47: جی ہاں. یہ سچ ہے. JASON HIRSCHHORN: جی ہاں. 1 سچ ہے. یہ 0 نہیں ہے. تو یہاں کے اندر کوڈ پر عمل کیا جائے گا. تو ہم نے اس لکھیں گے. ہم اس کو واپس منتقل کریں گے لائن ایک بار پھر. اب ہم ہے - ہم اپنی فائل کے آخر میں ہیں. ہم اپنی فائل کے آخر سے پڑھا، ہم صرف اس میں ایک بائٹ تھا کیونکہ. Fread 0، دکانوں واپس بفر میں کچھ. میں ایمانداری سے نہیں جانتے یہ بفر میں ذخیرہ. ہم شاید نظر کر سکتے ہیں یہ کیا کرتا ہے کو دیکھنے کے لئے. میں ایمانداری سے نہیں جانتے کہ. ہم کیا پرواہ ہے، جو نہیں جانتے یہ بفر میں ذخیرہ؟ لیکن یہ 0 واپس کرتا ہے. اور 0 پر عمل کرتے ہوئے گا؟ 0 پھانسی نہیں کرے گا. تو پھر ہم یہاں نیچے منتقل کریں گے. تو ہاتھ کے ایک شو حاصل یہ تو ہم کو چلانے کے، یا ہم تو چاہئے کوڈ آن ہے پہلی تبدیلیاں کرنا چاہئے. آپ کو لگتا ہے تو - اگر آپ کو ووٹ ڈالنے کے لئے ہے. آپ کو ہم اس کوڈ کو چلانے چاہئے تو کے طور پر ہے، آپ کے ہاتھ کو بلند کریں. ٹھیک ہے. ایک ہے - آپ سے ایک سوال، تشویش ہے؟ جی ہاں. طالب علم 48: ہم بفر اقدام کے بعد لوپ سے باہر، ہم کرتے ہیں یہ MALLOC ہے؟ JASON HIRSCHHORN: بڑا سوال. ہم سے باہر بفر اقدام کے بعد لوپ، ہم اس MALLOC ہے؟ یہ ایک دائرہ کار سوال ہے. ہم باہر بفر ابتدا تو اس لوپ کے، یہ موجود گی لوپ کے اندر؟ ایک سے زیادہ طالب علموں: جی ہاں. JASON HIRSCHHORN: جی ہاں. اس کی گنجائش، لوپ کے اندر کا احاطہ کرتا ہے اور، واقعی، کچھ اندر اس کے نیچے جن میں اس کوڈ کو، کے یہاں اندر چیزیں. تو ہم اس MALLOC کی ضرورت نہیں ہے. یہ ایک مقامی متغیر ہے، اور اس کا دائرہ کار اب بھی لوپ میں شامل ہیں. طالب علم 49: ہم اس کو آزاد کرنے کی ضرورت ہے؟ JASON HIRSCHHORN: ہم کیا کرتے ہیں مفت بفر کی ضرورت ہے؟ طالب علم 49: جی ہاں، ہم malloc کا نہیں ہے. JASON HIRSCHHORN: ہم کیا کرتے ہیں مفت بفر کی ضرورت ہے؟ ہم ایسا نہیں کرتے. ایک بار پھر، یہ ایک مقامی متغیر ہے، تو ہم اس کو آزاد کرنے کی ضرورت نہیں ہے. ٹھیک ہے. کیا ہوتا ہے دیکھتے ہیں. تو یہ غیر ابتدا شدہ ہے. یہی کچھ تھا کہ مارکس پہلے کی تجویز پیش کی. تو ہم اس کی غلطی، متغیر بفر ہے یہاں استعمال کیا جاتا ہے جب غیر ابتدا شدہ ہے. ہم اس کو کس طرح ٹھیک کر سکتے ہیں؟ طالب علم 50: یہ MALLOC؟ طالب علم 51: نل برابر ہے؟ طالب علم 52: بفر نل کے برابر کہہ دو. JASON HIRSCHHORN: ٹھیک ہے. اچھا لگتا ہے. اب ہم اس کے ہیں. کی کاپی کرنے کی کوشش کریں کچھ پیدا کرتے ہیں. تو ہم اپنے ٹیکسٹ فائل ہے. ہم کس طرح اس پروگرام کو چلانے کر سکتے ہیں؟ جی ہاں. طالب علم 53: آپ کو نقطہ کر سکتے ہیں CP، test.txt سلیش. اور پھر آپ کو ایک اور فائل کا نام کر سکتے ہیں اس میں محفوظ ہو جائے گا. JASON HIRSCHHORN: ٹھیک ہے. ہم اس out.txt فون کروں گا. ڈاؤن لوڈ، اتارنا؟ SEG غلطی. SEG غلطی پر خیالات؟ یہ بہت اچھا ہے. ہم کس طرح باہر تلاش کر سکتے ہیں جہاں SEG غلطی ہے؟ کیا ہے؟ طالب علم 54: GDB. JASON HIRSCHHORN: GDB. ہم، GDB ڈاٹ سلیش لکھ کر GDB چلانے ہمارے پروگرام کا نام. کوئی کمانڈ لائن کے دلائل. ہم نے ایک قائم کرنے کے لئے جا رہے ہیں اہم میں توڑ مقام. میں GDB کو شروع کرنا چاہتے ہیں تو، میں کیا کروں؟ طالب علم 55: آر اس کے بعد آر اور کیا: جیسن HIRSCHHORN؟ طالب علم 55: دلائل؟ JASON HIRSCHHORN: پھر کمانڈ لائن کے دلائل. کے ذریعے چلنے دو. (ن) صرف لائن کی طرف سے مجھ سے لائن لے جا رہا ہے. میں جا رہا ہوں، جب تک میں اپنے SEG غلطی حاصل. میری SEG غلطی نہیں ہے. fread کی ​​وجہ سے ایسا لگتا ہے میری SEG غلطی. میں، fread میری SEG غلطی کی وجہ سے جانتے ہیں کہ تھا کیونکہ لائن ہم صرف پھانسی. کیا گیا تھا اور صرف ایک ہی چیز اس لائن میں ہو رہا - دو چیزیں ہو رہا تھا. Fread جا رہا تھا، اور پھر ہم تھے کچھ دیر کی جانچ پڑتال کر رہے ہیں. میں شرط لگاتا ہوں کے لئے تیار ہوں جبکہ جانچ پڑتال میری SEG غلطی کی وجہ سے نہیں کیا گیا تھا. سب سے زیادہ امکان، fread تھا میری SEG غلطی کی وجہ سے. میں نے بھی یہاں کچھ، memcopy دیکھ. یاد داشت کی کاپی. کی طرف سے میموری میں منتقل کی طرح لگتا ہے دیگر ایک مقام. ہو گا کہ کچھ کی طرح لگتا ہے fread میں، شاید کچھ یاد یہاں یہاں سے آگے بڑھ رہے ہیں. پھر اس کے ذریعے جانے دو. میں اسے کس طرح سے شروع کرتے ہیں اور اسے دوبارہ چلانے کے؟ جی ہاں. طالب علم 56: اگر آپ کو ڈال کرنے کی ضرورت بفر سے پہلے ایک ایمپرسینڈ؟ JASON HIRSCHHORN: تو اس سے پہلے ایمپرسینڈ بفر مجھے پتہ کے دے گی * ایک چار ہے جس میں بفر،. یہ ایک وقت کے ذریعے چلاتے ہیں. میں کس طرح ایک بار اس کے ذریعے چلائی جاتی ہیں؟ طالب علم 57: کر سکتے ہیں آپ کو صرف دوبارہ چلائیں ٹائپ؟ JASON HIRSCHHORN: بس دوبارہ چلائیں ٹائپ. تو ہم نہیں کر رہے ہیں اس لائن کو پھانسی. تو بفر null پوائنٹر ہے. صحیح؟ اس کی طرف اشارہ ہے - چلو دیکھتے ہیں. اگر ہم ہماری - اس کا ایک فوری تصویر کو اپنی طرف متوجہ. تو سب دیکھ سکتے ہیں میں یہاں لکھنا؟ تو اسٹیک میں، ہم نے ایک مقامی ہے متغیر اور یہ بفر کہا جاتا ہے، اور یہ ایک چار پوائنٹر ہے. کیا پتہ اس چار ہے؟ طالب علم 58: 0x0. JASON HIRSCHHORN: ٹھیک ہے. کہ یہ ہے کیا ہے. یہاں، بفر کے اندر، 0x0 محفوظ کیا جاتا ہے. یہی وجہ ہے کہ ہم نے کیا ہے - ہم اب ہے سیٹ اپ. تو اس لائن، fread، کچھ رکھتا ہے جہاں ذریعہ سے؟ اس باکس یا اس کے خانے میں؟ کون سا باکس؟ باکس یا دائیں باکس چھوڑ دیا ہے؟ یہ درست باکس. یہ پوائنٹر مندرجہ ذیل ہے، اور یہاں میں رکھتا ہے. ہم کوشش کرتے ہیں اور رابطے میموری جب مقام 0، ہم کیا ملتا ہے؟ ایک انقطاع غلطی. کہ ہم اب ہے غلطی ہے. جی ہاں. طالب علم 59: اگر آپ کو نہیں ہے سٹار بفر ڈال؟ نہیں یا؟ fread کے لیے؟ JASON HIRSCHHORN: تو fread ایک پوائنٹر لیتا ہے. تو یہ بفر میں گزر جاتا ہے. اور پھر یہ کریں گے ڈی حوالہ کہیں fread کے اندر. لیکن پھر ہم نے دیکھا، یہ ایک پوائنٹر لیتا ہے. ہم نے اس کے سٹار بفر منتقل کرنے کی ضرورت نہیں ہے. یہ گزر جائے گا یہ یہاں ہے جو کچھ بھی. اور یہ کہ شاید ہم ایک غلطی دے گی ہم اسے ڈی حوالہ کر رہے ہیں. ٹھیک ہے نا؟ ہم اس پوائنٹر ریفرنس ڈی جب، جب ہم اس مقام تک رسائی حاصل کرنے کی کوشش کریں، ہم نے ایک غلطی ہو رہی ہے - ہمارے انقطاع غلطی. تو - افوہ. ہم GDB کے باہر چھوڑ جا رہے ہیں. ہماری لائن - ہمارا مسئلہ - حق ہے یہاں اس لائن پر. اور یہ ایک مسئلہ ہے کیونکہ اس لائن کی. ہم کس طرح ایک باکس بنا سکتے ہیں fread میں قابل رسائی ہے. ٹھیک ہے نا؟ ہم ایک ہے کہ ایک باکس تخلیق کرنے کی ضرورت بائٹ بڑی، ایک چار کا سائز. لیکن ہم اس باکس قابل رسائی ہو جائے کرنے کی ضرورت ہے اس تقریب executes ہے جب. تو جہاں - جی ہاں. کوئی خیال ہے؟ طالب علم 60: بس کے طور پر مقرر کسی بھی بے ترتیب کردار. صرف چار بفر برابر کرنا کردار. اور اس کے بعد، آپ کو وہاں بفر ہے جب - JASON HIRSCHHORN: انتظار. چار بفر؟ تو کوئی سٹار؟ طالب علم 60: جی ہاں. سٹار باہر لے جاؤ. ایک بے ترتیب کردار کے برابر ہے. JASON HIRSCHHORN: ٹھیک ہے. تو مجھے ایک دو. طالب علم 60: کی طرح یا کچھ اور. اور پھر آپ کو بفر ہے جب آمدید، آپ کو ایک استعمال کرتے ہیں - طالب علم 61: سٹار؟ ارے نہیں، ایمپرسینڈ. طالب علم 60: ایمپرسینڈ استعمال. JASON HIRSCHHORN: ٹھیک ہے. اور کیا fwrite کے بارے میں؟ طالب علم 60: دوبارہ ایمپرسینڈ استعمال. JASON HIRSCHHORN: ٹھیک ہے. تو آپ کے خیال ہے، ہم ایک چار بنانے اور تو اس میں کچھ ڈال دیا، اور کہ چار لکھیں. طالب علم 60: جی ہاں. JASON HIRSCHHORN کیا لوگوں کا خیال ہے؟ طالب علم 62: یہ convoluted ہے. JASON HIRSCHHORN: ٹھیک ہے. یہ اپنی طرف متوجہ. اس وقت تو میں نے اس کو اپنی طرف متوجہ کرنے کے لئے جا رہا ہوں ہم تو یہاں اسٹیک پر ریڈ، اور پڑے گا - ؤہ! معذرت. اس وقت تو ہم کچھ ہے بفر، اور اس کے اسٹیک پر ہے. صحیح؟ اور ہم نے ابتدائی طور پر، یہ ایک میں بچت کر رہے ہیں. پھر ہم fread پر ہماری کال ہے. کیا fread اس سے ایک بائٹ لیتا ہے کرتا ہے ہماری فائل اور کہیں کہتے ہیں. یہ جو کچھ بھی میں رکھتا ہے بات کی طرف اشارہ ہے. ٹھیک ہے، ہم اس کا پتہ تھا اس سے پہلے - 0x0. اب ہم کیا پتہ ہے؟ طالب علم 63: جو بھی پتہ بفر ہے. JASON HIRSCHHORN: جو بھی پتہ بفر ہے. شاید یہ ہونے جا رہا ہے اس طرح کچھ. شاید ایک B کے ساتھ شروع کرنے کے لئے جا رہا ہے اور پھر ایک F، اور چھ دیگر ہے شش اعشاری ہندسے. کوئی فرق نہیں پڑتا. کچھ پتہ. اور ہم اندر اس ایڈریس گزر رہے ہیں اور ہم نے اپنے ایک ڈال کرنے جا رہے ہیں اس پتے پر بائٹ بات. تو ہم اپنے ایک ڈال کرنے جا رہے ہیں بائٹ بات یہاں اندر. اور پھر ہم سے لکھنے کے لئے جا رہے ہیں اندر یہاں کبھی کیا ہے. کسی کو کوئی سوال ہے اس کے بارے میں؟ کون اس کوڈ کام کریں گے سوچتا ہے؟ آپ کے خیال میں اگر آپ کے ہاتھ اٹھانے اس کوڈ سے کام کریں گے. آپ کو ایک موقف لینے کے لئے ہے. اور کون اس کوڈ کام نہیں کرے گا سوچتا ہے؟ اپنے ہاتھ اٹھانے کی. اور سب ہونا چاہئے ان کے ہاتھ اٹھانے. ٹھیک ہے. مائیکل، آپ کہاں کھڑے ہیں؟ مائیکل: میں فیصلہ نہیں کر سکتے. قسم کے وسط میں. JASON HIRSCHHORN: تم درمیان میں. ایک کو منتخب کریں. مائیکل: میں ایمان ہو گا اور یہ کام کریں گے. JASON HIRSCHHORN: ٹھیک ہے. آپ ایمان ہے اور یہ کام کرتا ہے کہیں گے؟ کیا ہوا؟ [INTERPOSING آوازیں] JASON HIRSCHHORN: کوئی SEG غلطی. ہم کس طرح دیکھنے کے لئے چیک کر سکتے ہیں دو چیزوں کے برابر ہیں؟ دو فائلوں کو برابر ہیں. طالب علم 64: مختلف نسخوں کا. JASON HIRSCHHORN: مختلف نسخوں کا. کے درمیان اختلافات کے مختلف نسخوں کا چیک اسے واپس دو فائلوں، اور اگر کچھ بھی نہیں، وہ ایک جیسی ہیں. ہم کو کھولنے اور اگر، ہم اپنی فائل حاصل. تو اس کا صحیح حل تھا. کی اس پر ایک بار واپس دیکھو. ہم اصل میں بھی نہیں کیا اس کی ابتدا کرنے کی ضرورت ہے. شاید یہ تھوڑا سا نظر آئے گا آپ کو ڈال نہیں کیا تو کلینر وہاں میں بے ترتیب کچھ. نقطہ ہونے کی وجہ سے، آپ کو پیدا کرنے کے لئے کی ضرورت ہے سے کچھ ذخیرہ کرنے کے لئے کچھ جگہ fread اور کچھ لینا fwrite سے باہر. اور یہ بات ایک مقامی یا تو ہو اسٹیک پر متغیر - آپ کچھ جگہ malloc'd کر سکتا. تو ہم اصل میں کر سکتے ہیں لکھا یہاں malloc کے، اور یہ کام کیا ہے گا. اور پھر ہم کو محفوظ کرنے کے کیا گیا ہے کہیں ڈھیر پر ہماری چیزیں. لیکن یہ، شاید، اصل میں ہے سب سے زیادہ خوبصورت حل. صرف اسٹیک پر کچھ جگہ بنانے کے ان چیزوں کو جانے کے لئے. میں نے دو دیگر تبصرے ہوگا. آپ کو اس میں موڑ لے، اور کرنے کے لئے تھے اس کے بعد میرے تبصرے، اس پر بنائے جاتے ہیں مندرجہ ذیل ہو گی. یہ 1 یہاں ہے، مجھے دیکھو، جادو کی تعداد کی طرح. یہ 1، fread کی ​​شرائط میں، سمجھ میں آتا ہے. کہ چیزوں کی تعداد ہے پڑھنے یا لکھنے کے لئے. لیکن یہاں ایک ہونا چاہئے شاید کچھ اور ہو. تو ایک حل کیا ہے؟ طالب علم 65: بائٹ کا سائز. JASON HIRSCHHORN: کی طرح؟ طالب علم 65: چار کا سائز. JASON HIRSCHHORN: چار کا سائز. جی ہاں، بائٹ ایک قسم نہیں ہے. چار کام کے سائز تو. ہم کے سب سے اوپر، کر سکتے ہیں ہمارے کوڈ، # کہ وضاحت کی گئی ہے. کچھ بائٹ اور کہا یہ واقعی ایک چار ہے. اصل میں، اس سے بھی بہتر طریقہ یہ ہو سکتا ہے - uint. کوئی بھی ہے کہ پتہ ہے کیا؟ معذرت. میں نے پیچھے کی طرف ہے. نہیں، رکو. یہ کس طرح ہے؟ کوئی بھی ہے کہ پتہ ہے کیا؟ جی ہاں. طالب علم 67: معیاری مدد کرنا نظام کی چیزوں میں ہے کہ ہے - اہستاکشرت integers کے کی طرح 8 بائٹس ہے؟ JASON HIRSCHHORN: ہے بالکل صحیح. مختلف مشینوں پر، ایک چار کا سائز - عام طور پر ایک چار. حروف عام طور پر ایک بائٹ ہیں. لیکن دوسرے اعداد و شمار اقسام کے سائز کے ہیں ایک 32 بٹ مشین پر مختلف سائز ایک 64 بٹ مشین کے مقابلے میں. ایک uint8_t ہمیشہ 8 بٹس ہے - ہمیشہ ایک بائٹ. اور میں شامل کرنے کے لئے کی ضرورت ہے معیاری INT ہیڈر فائل. تو اب، شاید یہ ہوتا ہے اس کوڈ لکھنے کے لئے سب سے بہتر طریقہ. تو میں جادو کی تعداد سے چھٹکارا حاصل. اور میں بھی ایک زیادہ منطقی ہے بفر کی قسم. یہ ایک بائٹ ہے، صرف ایک چار نہیں ہے جس میں ہم اس کے ہونے کی امید ہے. اور یہاں، ہم اصل میں ہے تھوڑا سا زیادہ مضبوط ہو گیا. ہم، جو ایک چار بلا نہیں کر رہے ہیں - ہو سکتا ہے، کون جانتا ہے - ایک مختلف ہو سکتا ہے مختلف مشینوں پر سائز. ہم اصل میں یہ بالکل ہے کہہ رہے ہو ایک بائٹ، ہمیشہ، کوئی بات نہیں کیا. ہم یہاں دیکھتے ہیں اور ہم CP بنانے کے. اہ اوہ. کیا ہوا؟ طالب علم 68: یہ تبدیل ہو سکتا ہے. JASON HIRSCHHORN: کیا؟ طالب علم 69: یہ کیا ہے؟ طالب علم 70: آپ نے ایسا نہیں کیا ایک قسم کے طور پر اس کی وضاحت. طالب علم 71: لیکن یہ کرنا چاہئے معیار میں وضاحت کی جائے. طالب علم 72: کیا ہو رہا ہے؟ طالب علم 73: کی وضاحت کرنا چاہئے تمام بڑے حروف ہو؟ JASON HIRSCHHORN: تو یہ نہیں ہے # وضاحت. اصل میں، اس معاملے میں، میں ہوں typedef استعمال کرنے کے لئے جا رہا ہے. ہم کے طور پر اس کا استعمال کرتے ہوئے کر رہے ہیں ایک جگہ میں ایک قسم. تو اس صورت میں، ہم اصل میں چاہتے ہیں کے لئے ہم ایک نئی قسم چھپائی رہے ہیں کی طرح typedef بائٹ، اور اس، بنیادی طور پر، ہے. یہ # وضاحت سے تھوڑا سا مختلف ہے. اور اب، ہمارے کوڈ بالکل کام کرتا ہے. تو، ایک بار پھر، # کچھ لیتا ہے کی وضاحت، ہر جگہ اس کی جگہ لے لیتا ہے دوسری بات یہ ہے کے ساتھ. یہ صرف ایک میکرو ہے - آشلپی جادو کی تعداد سے چھٹکارا حاصل کرنے. لیکن اس معاملے میں، کیونکہ ہم ہیں ایک قسم کے طور پر اس کا استعمال کرتے ہوئے - یہیں - جو کام کرنے کے لئے ترتیب میں، ہمیں ضرورت ہے جو کچھ بھی ہے بائٹ typedef پر. اور ہم یہاں اس کی وضاحت کر رہے ہیں. یہ اصل میں ہے، ایک struct نہیں ہے صرف ایک اہستاکشرت عدد صحیح. یہ ایک بائٹ طویل ہے. اس کوڈ سے آن لائن دستیاب ہو جائے گا، اور تم ٹھیک اب یہ ہونا چاہئے. تو ہم ہے - کامل - 13 منٹ جانے کے لئے چھوڑ دیا پر مسئلہ سیٹ 5. میں، ایک دوسرے کے ساتھ copy.c کے ذریعے چلنا چاہتے ہیں اور پھر ہم مختصر طور پر بات کریں گے دوسرے حصوں کے بارے میں مسئلہ کے مقرر. تو مجھے copy.c. ھیںچو اور ٹھنڈی چیز ہم اصل میں ہے، ہے پہلے سے ہی اس کوڈ کا ایک بہت لکھا. ہم لفظی لکھا کوڈ صرف میں تھا جب یہاں سے باہر آئے اپنے یہ لکھ. لیکن یہ، copy.c ہے فاؤنڈیشن کے فارم کے پہلے دو حصوں کے لئے whodunit.c، کے لئے مقرر کیا مسئلہ ہے جس میں آپ کو لکھنے کے لئے کی ضرورت ہے، اور resize.c. تیسرے اور آخری ہے جس Recover.c، مسئلہ سیٹ کا حصہ نہیں ہے، اس فائل کے دور کی بنیاد پر. آپ اس فائل کو لکھنے کے لئے کی ضرورت کے لئے جا رہے ہیں، ہم آپ کو اس کے لئے ایک سانچے دے فائل، لیکن یہ کچھ بھی نہیں ہے copy.c. کے ساتھ کیا لیکن copy.c کے لئے بنیاد ہے پہلے دو حصوں، ہم جا رہے ہیں اب اس کے ذریعے چل، تو آپ کو کرنے کی ضرورت یہ کیا کرتا ہے کا ایک اچھا احساس. اور تبصرے اس میں سے کچھ دے. ہم نے پہلے ہی اس میں سے کچھ لکھا ہے. سب سے پہلے، ہم اس بات کا یقین کر رہے ہیں ہم تین دلائل حاصل. اگلا، ہم فائل کے نام کو یاد کر رہے ہیں. تو ہم اس قدم چھوڑا جب ہم اپنی بات کوڈت - جب ہماری CP. لیکن یہاں، وہ کر رہے ہیں تھوڑا سا کلینر یہ. وہ اس بات کو یقینی بنانے کے لئے کی جانچ پڑتال کر رہے ہیں میں دونوں فائلوں کو، اچھے ہیں ان کو کھولنے کے علاوہ. ہم صرف اب اس کوڈ میں لکھا تھا، لہذا میں ہوں اس کوڈ پر رہنے کے لئے نہیں جا رہا. اگلا لئے مخصوص ہے کہ کچھ چیزیں ہے ہم استعمال کر رہے ہیں فائلوں کی قسم جس کے بٹ نقشہ فائلوں ہیں. بٹ نقشہ فائلوں کچھ میٹا ڈیٹا ہے ان کے ساتھ منسلک. تو بائٹس کے پہلے دو فائل کے بارے میں آپ کو بتا. وہ رنگ نہیں ہیں اس تصویر میں پکسل. وہ فائل کے بارے میں آپ کو بتا. اور آپ کو مسئلہ سیٹ کے ذریعے پڑھنے کے تو، آپ کو بہت زیادہ معلومات پڑے گا میٹا ڈیٹا ڈھانچے کی کیا اقسام bitmaps کے ساتھ شامل ہیں. ہم اس سے پہلے کیوں لیکن یہ ہے یہاں اس کوڈ - کے مقرر. ہم میٹا ڈیٹا کو پڑھنے کے ہیں - میٹا ڈیٹا کے دو ٹکڑے - فائل ہیڈر اور معلومات ہیڈر. اور ہم اس کے کچھ حصوں کی جانچ پڑتال کر رہے ہیں اس بات کا یقین ہے کہ یہ ایک حقیقی بٹ نقشہ فائل ہے بنانے کے جاری رکھنے سے پہلے. اور پھر، ان تفصیلات ہم ہیں اب میں جانے کی ضرورت نہیں ہے. آپ کا مسئلہ سیٹ کے ذریعے پڑھتے ہیں، آپ ان کو سمجھ جائے گا. لمبی کہانی مختصر، یہ صرف کہہ رہے ہیں، یہ ایک بٹ نقشہ فائل ہے، اور تصدیق کی ہے کہ. اگلا، ہم ان لوگوں کو لکھ رہے ہیں باہر فائل. ہم یہاں دیکھتے ہیں کہ. ہم باہر پوائنٹر لکھ رہے ہیں. اگلا، ہم بھرتی کا تعین کر رہے ہیں. تو پھر، کے طور پر خاصیت کے ساتھ ہے ایک بٹ نقشہ فائل، کچھ لائنز شامل ہیں آخر میں بھرتی. اور آپ کو مسئلہ سیٹ کے ذریعے پڑھنے کے تو، آپ کی بھرتی کے بارے میں مزید معلومات حاصل کریں گے. اس بھرتی کے تلاش کرنے کے لئے فارمولہ ہے. یاد رکھنا ضروری - آپ کو ایک بٹ نقشہ کے سائز کو تبدیل جب ، بھرتی تبدیلیاں. آپ کو ایک کے سائز کو تبدیل کرتے ، بھرتی تبدیلیاں. یہ ہونے جا رہا کبھی نہیں 3 سے زیادہ - یہ، 3 کے ذریعے جامع 0 ہو جائے گا. لیکن آپ کا سائز تبدیل کرتے ہیں کچھ، بھرتی تبدیلیاں. میں صرف یہ ہے کہ قطار میں ایک پکسل ہے تو، میں ، بھرتی کے تین بائٹس کی ضرورت ہے ہر صف چار ملٹی ہونا ضروری ہے ایک بٹ نقشہ فائل میں طویل بائٹس. لیکن میں نے اس کو دوگنا اگر، ایک پکسل کی طرف سے جانے کے لئے دو پکسل، جن میں سے ہر، کا کہنا ہے کہ، ایک بائٹ، تو مجھے اس کی ضرورت ہے بنانے کے لئے بھرتی کے دو بائٹس چار کہ برابر. تو میں کچھ کا سائز تبدیل کرتے ہیں، میں رقم کو تبدیل کرنے کی ضرورت ہے بھرتی کے میں ہے. کہ سب کو احساس ہے؟ اگلا، ہم ہر صف پر iterate، یا تمام قطاروں کے ذریعے. اور پھر ہم کے ذریعے iterate ہر قطار میں ہر کالم. ہم جیسے اس بٹ نقشہ علاج کر رہے ہیں ایک گرڈ، جیسا کہ ہم علاج کیا ہے 15 میں بورڈ. جیسا کہ ہم اینٹ کا علاج کیا جب ہم سکرین پر ان کی چھپی. قطار اور کالموں کی ایک گرڈ. اس کے بعد - ہم نے اس کو دیکھا. ہم اصل میں صرف اس کوڈت. ہم نے کچھ عارضی اسٹوریج پیدا. اس کے بعد ہم وہاں میں پڑھا، اور ہم اس کے لکھنے. یہ ہم صرف کیا بالکل وہی جو ہے. میں نے کہا کہ اگلا، کیونکہ ہر سطر کچھ بھرتی میں ختم ہو جاتی ہے، ہم کہ بھرتی پر ہوں - پرانے بھرتی. اور پھر ہم اسے واپس شامل. اس صورت میں، ہم پیدا کر رہے ہیں ایک ہی عین مطابق فائل. ہم صرف اس کے کاپی کر رہے ہیں. تو اس لائن قسم کی پاگل ہے. ہم کر سکتے لفظی صرف اندر بھرتی ڈال لیکن آپ کو فائل کے سائز کو تبدیل کرتے ہیں، اگر آپ اب بھی اس لائن کرنا چاہتے ہیں؟ ہم نے ایک فائل کے سائز کو تبدیل اگر ایسا ہے تو، ہم اب بھی پر کرنا چاہتے ہیں پرانے بھرتی پر؟ طالب علم 74: جی ہاں. JASON HIRSCHHORN: تو ہم کرتے ہیں. یہ، ایک بار پھر، سودے کیونکہ سورس فائل کے ساتھ. ہم بھرتی کے بارے میں پرواہ نہیں ہے سورس فائل سے. ہم اگلی لائن پر جانا چاہتے ہیں. لیکن ہم صرف واپس نہیں ڈال بھرتی کے پرانے رقم. ہم واپس ڈال کرنے کی ضرورت بھرتی کی نئی رقم. تو ہم نے ایک کے سائز کو تبدیل کر رہے ہیں جب فائل، ہم اب بھی پر چھوڑ کرنا چاہتے ہیں، پرانے فائل میں بھرتی - کیا ہم سے پڑھ رہے ہیں. لیکن ہم لکھ رہے ہیں کیا ہے، ہم جا رہے ہیں کچھ مختلف واپس ڈال کرنے کی ضرورت پر بھرتی کی تعداد ہے ہم سے مقرر ہے. جی ہاں. طالب علم 75: ان دونوں کے حکم لائنوں کا حق، کوئی فرق نہیں پڑتا؟ آپ ہینڈلنگ رہے ہیں مختلف فائلوں. JASON HIRSCHHORN: بالکل. یہ دو لائنوں کی ترتیب کوئی فرق نہیں پڑتا. ہم اس لائن لکھنے. یہ فائل کے لئے یہاں ہے ہم لکھ رہے ہیں. یہ ضروری ہے، تو ہم حاصل بھرتی کی صحیح رقم. اس میں فائل کے ساتھ نمٹنے کے لئے ہے. ہم کو چھوڑ کرنا چاہتے ہیں، بھرتی کے دوران. ہم پڑھنے کے لئے نہیں کرنا چاہتے - ہم ایک وقت میں ایک بائٹ پڑھ رہے ہیں، تو ہم ان بھرتی بائٹس کی پرواہ نہیں کرتے. ہم اگلی لائن پر منتقل کرنا چاہتے ہیں. آخر میں لسی ہمارے لئے دی طرح، ہم فائلوں کو بند کرنے اور واپس 0. تو اس copy.c. ہے اور ہم اصل میں لکھا - ہم کے سب سے زیادہ خرچ بنیادی طور پر، یہ لکھ سیکشن. آپ اس بنایا. تو امید ہے کہ آپ ایک اچھا احساس ہے یہاں کیا ہو رہا ہے کے. بڑا فرق، ایمانداری سے، صرف ہے کے ساتھ کرتا ہے کہ اس پہلے حصے بٹ نقشہ فائلوں کی خصوصیات. تو میں، میری اگلی سلائڈ کے طور پر ہے ہمیں کیا ضرورت ہے؟ ٹھیک ہے، Whodunit کے بارے میں سوچنا. اور کسی کے لئے کون ذریعے پڑھنے مسئلہ سیٹ، کیا ہم کرتے ہیں Whodunit میں کرنے کی ضرورت ہے؟ بس. Aleja. ALEJA: آپ حصہ لے سکتے ہیں ریڈ کرنا ہے کہ ہر پکسل کے. اور پھر - قسم کی؟ JASON HIRSCHHORN: ٹھیک ہے. تو ہر ایک کے حصے کے باہر لے ریڈ کرنا ہے کہ پکسل. یہی وجہ ہے کہ اس کے تمام بند، لیکن نہیں ہے. طالب علم 76: ٹھیک ہے، وہاں ہے ایسا کرنے کے لئے مختلف طریقوں سے. JASON HIRSCHHORN: ٹھیک ہے. مجھے ایک راستہ دے. طالب علم 76: تمام سرخ باہر لے جاؤ، اور پھر زور نیلے اور سبز. JASON HIRSCHHORN: ٹھیک ہے. تو ان طریقوں دونوں دی - ہم اسے ایک پکسل دے کی طرح، لگتا ہے یہ ایک، بلیو، سرخ اور سبز رنگ کی سطح ہے. ہم رشتہ دار کی سطح کی تبدیل کرنا چاہتے ہیں منحصر ہے،، بلیو، سرخ اور سبز کہ پکسل پر. اس کوڈ میں ہم کو تبدیل کرنا چاہئے کہاں رشتہ دار، بلیو، سرخ اور سبز ایک دیئے گئے پکسل کی سطح. ہم نے اسے پڑھا ہے کے بعد - ہم اسے لکھنے سے پہلے؟ مجھے لائن نمبر دے دو. ایک سے زیادہ طالب علموں: 83. JASON HIRSCHHORN: 83. تو یہیں پر. Whodunit کے لئے، کوڈ آپ کو کرنے کی ضرورت ہے لکھنا ٹھیک ہے وہاں جانا چاہئے. اور یہ کہ صرف کوڈ ہے آپ کو لکھنے کے لئے کی ضرورت ہے. ہم نے سنا ہے کی طرح، تم سب کو کرنے کی ضرورت ہے، کیونکہ کرتے، ان کے رشتہ دار نیلے رنگ تبدیل ہر پکسل سے سرخ، اور سبز سطح. آپ اس میں پڑھا ہے، اور اب تم اسے باہر لکھنے کے لئے جا. میں کس طرح حاصل کرتے ہیں - میں اس بات ہے تو یہاں، ٹرپل کہا جاتا ہے، اور اس کا ہے RGBTRIPLE ٹائپ کریں - ٹھیک ہے، ہم bmp.h میں دیکھا تو، RGBTRIPLE کیا ہے؟ طالب علم 77: یہ ایک struct ہے. JASON HIRSCHHORN: RGBTRIPLE ایک struct ہے. ہم یہاں دیکھتے ہیں کہ. اور اس میں، کا کہنا ہے کہ، تک رسائی حاصل کرنا چاہتا تھا struct کے ریڈ سطح، میں کس طرح کرتے ہیں اس struct کے سرخ سطح تک رسائی حاصل؟ [کلاس MURMURS] طالب علم 78: RGBTRIPLE.rgbtred؟ JASON HIRSCHHORN: یہ صحیح ہے؟ طالب علم 79: یہ ٹرپل ہونا چاہئے بجائے RGBTRIPLE ڈاٹ کے نقطہ،؟ JASON HIRSCHHORN: ٹرپل. ٹرپل مقامی متغیر ہے، تو یہاں، یہاں کوئی اشارہ نہیں ہے. تو ہم صرف ڈاٹ سنکیتن کا استعمال کرتے ہیں. یہ میرے لال کی سطح دے گا. میں اسے تبدیل کرنا چاہتے ہیں، میں صرف مقرر یہ مختلف کچھ کرنے کے برابر. تو پھر، کوڈ کی اس لائن تک رسائی حاصل اس struct کے اندر متغیر، اور ہم نے کچھ نیا کرنے کے لئے مقرر کر سکتے ہیں. تو Whodunit کے لئے، ایک بار پھر، یہ، ہے جوہر میں، ہم کیا کرنے کی ضرورت ہے. بہت آسان. بس کچھ رشتہ دار کے درجے کو تبدیل، اور اس کوڈ جاتا ہے جہاں یہ ہے. دوسری طرف، کا سائز تبدیل کریں، تھوڑا سا trickier ہے. اصل میں، نیا سائز شاید ہے اس مسئلے کے trickiest حصہ مقرر کیا. ہم نے اس پر جانے کے لئے تین منٹ ہیں. لیکن پھر، ہم نے پہلے ہی لکھا ہے اس کوڈ سے سب سے زیادہ، تو ہم بہت واقف ہونا چاہئے. ہم میں کرنا چاہتے ہیں کچھ چیزیں کیا ہیں تم پر پڑھا ہے، کا سائز تبدیل کریں مسئلہ سیٹ کی؟ آپ کو مجھے دے دو، تو ہم ان کے بارے میں بات کر سکتے ہیں. ہم کرنا چاہتے ہیں کچھ چیزیں کیا ہیں؟ طالب علم 80: عمودی - تو آپ کو، افقی طور پر اس کا سائز تبدیل کرنے کے لئے ہے لیکن عمودی طور پر کے ساتھ ساتھ اس کا سائز تبدیل کریں؟ JASON HIRSCHHORN: تو ہم دے رہے ہیں تو ایک پکسل، اور ہم نے ایک کی طرف سے اس کا سائز تبدیل کرنے کے لئے چاہتے دو عنصر، اب یہ کرنے کی ضرورت ہے افقی طور پر تبدیل اور تبدیل عمودی طور پر. احساس ہے کہ ہے؟ جی ہاں. تو وہ شاید سب سے بڑا چیلنج. اور ہم نے ایک سیکنڈ میں اس کے بارے میں بات کریں گے. جی ہاں. طالب علم 81: میں نے اس کے بارے میں سوچا طریقہ آپ کو پرنٹ اسے باہر کی ضرورت کیا گیا تھا - JASON HIRSCHHORN: انتظار. تم نے کیا کیا ہمیں نہیں بتا. ہم منطق میں بات کرنے کے لئے جا رہے ہیں. طالب علم 81: ٹھیک ہے. سوال کیا تھا؟ JASON HIRSCHHORN: آپ کو صرف آپ کے ہاتھ اٹھایا. کوئی سوال نہیں تھا. مجھے اس کے سامنے پیش کرتے ہیں. مجھے صرف اس مختصر بات چیت. تو ہم ایک پکسل چاہتے ہیں دونوں افقی، اس کو دہرانے اور عمودی طور پر. تو مثالی طور پر کیا ہم یہاں کیا ہے، ہم ہمارے پکسل میں پڑھا، ہم اسے لکھ وقت کی تاہم بہت سے. لیکن اس وقت ہم، ہمارے یہاں چال ہے کیونکہ تو ہم پر جائیں کرنا چاہتے ہیں اگلی لائن اور اس میں لکھنا اگلا سطر کے شروع. تو ہم دونوں کی نقل تیار کرنا چاہتے ہیں تو افقی اور عمودی طور، کیا ہے ایسا کرنے کے لئے ایک اچھا طریقہ - اچھا، اگرچہ ایسا کرنے کے لئے؟ تو ہم مسلسل حاصل کرنے کے لئے کی ضرورت نہیں ہے ہماری فائل کے ارد گرد چیزیں رکھنے کے لئے. یہ سوال ہے نہیں کر سکتے ہیں احساس بنا دیا، لیکن مجھے لگتا ہے کہ ایک اس کا جواب دینے میں مدد ملے گی. طالب علم 82: ایک صف بنائیں؟ JASON HIRSCHHORN: تو لگتا ہے ایک قطار کے طور پر ہر فائل کی. کی قطاروں کے معاملے میں لگتا ہے. ہم اپنے چھوٹے سے پہلی صف ہے تو تصویر، ہم اس قطار بنانے کے کر سکتے ہیں ایک بڑی تصویر کی طرف سے ایک بڑی قطار میں، اور اس کے بعد تاہم اس صف کی نقل تیار اسے نقل کرنے کی ضرورت ہے کئی بار، بلکہ پکسل پکسل میں جانے کی نسبت، جب مبہم ہو جاتا ہے جس میں فائلوں کے ساتھ نمٹنے. ہم نے کیونکہ اگر - میں جگہ سے باہر چلا رہا ہوں. یہ ہماری فائل ہے، اور ہم ہیں، تو اس وہاں ایک پکسل، اور ہم نے اسے ڈال کرنا چاہتے ہیں وہیں، ہم اب بھی کچھ چیزیں ہیں وہاں ہم جب جانے کے لئے اس کی ضرورت لکھنے اور ہماری نئی فائل - ہماری فائل ہے کہ دو مرتبہ کے طور بڑا ہے. لیکن یہ فائل افعال کے ساتھ واقعی مشکل ہے نئی لائنوں کے ارد گرد جائیں اس طرح، اور پھر یہاں واپس جاؤ اور وہاں میں چیزیں ڈال. کچھ کرنے کے لئے تقریبا ناممکن ہے اس طرح، کہ سمجھ میں آتا ہے. ہم قطار کے معاملے میں لگتا ہے کہ اگر ایسا ہے تو، ہم کر سکتے ہیں ہمارے صف لے، اور پھر اسے ڈال دیا - عمودی قطاروں دہرانے. اور یہ کہ ہم نیا سائز کے ساتھ نمٹنے کے لئے کس طرح ہے عمودی بلکہ افقی سے. اس قسم کے فوری تھا، اور تھوڑا مبہم. بدقسمتی سے ہمارے وقت نہیں ہے. میں نے تم میں سے ان لوگوں کے لئے باہر کھڑے ہوں گے یہاں کے بارے میں سوالات ہیں جو کی وصولی سمیت مسئلہ سیٹ،. تو اب کے لئے ملتوی کرتے ہیں. اور پھر، اگر آپ کو کوئی سوال ہے تو، ہم باہر بات چیت کر سکتے.