[Powered by Google Translate] سیکشن کے مسائل 2 ترتیب دیں: ہیکر ایڈیشن روب Bowden، ہارورڈ یونیورسٹی یہ CS50 ہے. CS50.TV لہذا، میں روب ہوں. میں Kirkland کے میں ایک سینئر ہوں. یہ میرا تیسرا CS50 TFing سال ہے. یہ پہلی بار ہے کہ ہم روایتی لیکچر انداز سیکشن سے تبدیل کر رہے ہیں ہیں، ، جہاں ہم جائزے کے قسم کی ہے کہ آپ درس میں ہوا تھا اور اس کے بعد تم لوگ سوال پوچھتے اب بہت زیادہ مسئلہ کی بنیاد پر کیا جا رہا ہے، جہاں ہم خالی جگہوں کا استعمال کرتے ہیں، اور - اوہ، تو خیال اس لنک میں نے آپ کو بھیجا جانے کی ہے اور اس کے بعد آپ میری جگہ میں ہو جائے گا. کیا کسی کو بھی ایک لیپ ٹاپ نہیں ہے؟ ٹھیک ہے. تو ہم اس کا استعمال کرتے ہوئے جا رہے ہیں، اور ہم مسائل کرنے جا رہے ہیں کے حصے میں رہتے ہیں اور ان پر بحث اور باہر figuring کہ کیا غلط ہے اور میں نے آپ کے کوڈ کے کچھ ھیںچو، اور میں اپنے خیالات کے بارے میں بات کر سکتے ہیں کر سکتے ہیں. تو کسی مشکل گیا ہے؟ آپ کی طرف سے بات چیت کر سکتے ہیں، مجھے معلوم ہے کہ اگر ہم اس کی وجہ نہیں پڑے گا. اب، گزشتہ supersection کی طرح، اگر آپ اس کلاس میں تھے، تم جانتے ہو اس کے بارے میں کیا ہے. P سیٹ پر ان حصوں کو ہونے جا رہا ہے. تو 2 P-سیٹ، ونیردیشوں، مجھے لگتا ہے کہ آپ اسے 1 P-سیٹ پر پہلے سے ہی دیکھا ہے. لیکن ہم 2 P-سیٹ میں ہم آج جا جا رہے ہیں کے لئے تلاش کر سکتے ہیں. اور آپ کو سوالات کا ایک سیکشن کو دیکھ لیں گے. تو یہ P سیٹ میں سے سب سے ہو جائے گا، اس سوال کے ایک حصے ہوں گے. اب تک ہم نے کہا ہے، "اس پر عمل کرنے کا موقع سمجھتے ہیں." آپ کو اس پروگرام پیش نہیں کہا جائے گا. کا خیال ہے کہ ان کی طرح آپ کی مدد مسئلہ سیٹ کے ساتھ شروع کرنے کے توقع کی جاتی ہے. میں ہیکر کے ایڈیشن پر لگتا ہے، ان میں سے ایک بہت کچھ صرف نئے، دلچسپ سیکھنے کی چیزوں کی توقع کی جاتی ہے. وہ براہ راست مسئلہ سیٹ پر لاگو نہیں ہو سکتا. اور اب ہم نہیں تم ان کے پیش کر رہے ہیں، لیکن اصول میں، بعد مسئلہ کے سیٹ کے لئے، آپ کو ان سے عرض کریں، اور اس طرح آپ کے حصے میں یا تو آ سکتے ہیں کر سکتے ہیں یا سیکشن کے جوابات حاصل کرنے کے لئے دیکھتے ہیں، یا آپ ان کو صرف اپنے آپ حاصل کر سکتے ہیں اگر آپ میری موجودگی سے لطف اندوز نہیں ہو رہا ہے. تو - مجھے لگتا ہے کہ یہ سب سے پہلے ایک ہے. اوہ. کے علاوہ، ہم نے بھی آپ کو سوالات کے ان حصوں کے تحت شارٹس کے بارے میں سوالات پوچھنا ہے. تو مجھے لگتا ہے، اصول میں، آپ کے حصے میں آنے سے پہلے ان کو دیکھنے والے کر رہے ہیں، لیکن یہ ٹھیک ہے اگر آپ ایسا نہیں کرتے، اور ہم نے ان پر ویسے بھی کریں گے. تو ہم ان کے ساتھ شروع کر سکتے ہیں: "وقت لوپ کو کس طرح کیا جبکہ ایک لوپ سے مختلف ہے؟ مؤخر الذکر جب خاص طور پر مفید ہے؟ " تو کسی - [Student کی] کیا جبکہ لوپ کم از کم ایک بار ہمیشہ پھانسی گا. جی ہاں. تو یہ فرق ہے. ایک وقت لوپ - I'll صرف اسے یہاں کرتے ہیں - جبکہ لوپ، ہم شرط ہے یہیں، جبکہ ایک کیا جبکہ آپ کو ایک شرط ہے نہیں ہے جب تک ہم یہاں ملتا ہے. اور ایسا ہے، تو جب آپ کے پروگرام پر عمل، اور دیر لوپ ہو جاتا ہے، اسے فوری طور پر چیک کرتا ہے اگر یہ شرط سچ ہے. اگر اس کی حالت درست نہیں ہے، یہ ختم ہو صرف لوپ مکمل طور پر جائے گا. کیا جبکہ لوپ، کے طور پر پروگرام پر عمل کر رہا ہے، "کیا." ہو جاتا ہے کچھ بھی نہیں اس وقت ہوتا ہے، صرف قتل جاری ہے. پھر جب وہ "جبکہ" مار دیتی ہے اگر حالت درست ہے، اس لوپ اور اسے دوبارہ کرنا کی حمایت کریں گے اور بار بار تک حالت سچا ہے اور تو کے ذریعے آتا ہے نہیں ہے. لہذا، فرق کیا جا رہا ہے، کہ یہ بہت شروع سے ٹھیک ہوں. ایک بار یہ ضروری executes اور پھر زیادہ وقت پھانسی اگر حالت اب بھی سچ ہے. تو دیر لوپ صرف ایک بار کرنا، یا گا - جبکہ لوپ - ہم اس کی ضرورت نہیں کر سکتے ہیں، جیسے ہی ہم اسے حاصل کرنے کے لئے سے، اگر شرط باطل ہے، ہم اس پر صرف پر کریں گے. جبکہ جبکہ لوپ، ہم ایک بار پھانسی، ضروری گا. اس کے بعد، جب ہم حالت حاصل کرنے کے لئے، ہم یہ چیک کریں اگر یہ سچ ہے یا جھوٹ ہے. اگر یہ سچ ہے، ہم اسے دوبارہ کروں گا، اگر یہ غلط ہے، تو ہم جاری رکھیں گے. تو جب آخرالذکر خاص طور پر مفید ہے؟ تو میں نے 4 سال کی مکمل، 3 سال، جو کچھ بھی میں یہ کہہ سکتے ہو، کہ میں پروگرامنگ، میں اس کا استعمال کیا ہے، کی طرح 10 بار کے تحت،. اور شاید ان میں سے 5 CS50 میں ہیں جب ہم loops کرتے ہیں جبکہ-شروع کر رہے ہیں. پھر جب آپ استعمال کرتے ہیں جبکہ loops ہے؟ جی ہاں - کب ہے [Student کی] جب آپ کو صارف کی ان پٹ، یا کچھ اور حاصل کرنے کے لئے آپ کو چیک کرنے کے لیے کرنا چاہتے ہیں کرنے کی کوشش کر رہے ہیں - جی ہاں. تو جبکہ loops، صارف کی ان پٹ بڑا میں سے ایک ہے. یہی وجہ ہے کہ سب سے پہلے جوڑے مسئلہ سیٹ پر، جب آپ صارف سے پوچھنا چاہتے ہیں کرنا چاہتے ہیں،، "مجھے ایک تار دے دو،" کیا تم جاری رکھیں جب تک کہ آپ اس سٹرنگ کو حاصل نہیں کر سکتے. اور اس لئے تم، ضروری، سٹرنگ کے لئے کم از کم ایک بار سے پوچھنا کی ضرورت ہے. لیکن اس وقت اگر وہ کچھ برا کا جواب، تو آپ لوپ پر واپس کی ضرورت ہے اور پھر سے پوچھنا. لیکن دوسرے صارف کی ان پٹ سے، یہ بہت کم ہے کہ میں ایک مقدمہ کا سامنا میں فندی جہاں "کم از کم ایک بار" کرنا چاہتے ہیں لیکن ممکنہ طور پر زیادہ ہے. سوالات یا - کیا کسی نے کیا جبکہ لوپ کہیں اور استعمال کیا جاتا ہے؟ ٹھیک ہے. تو اگلے ایک ہے، "شناخت کنندہ کیا پہلے سے نہ سوچا ہے عام طور پر اس بات کی نشاندہی اگر بجنا کی طرف سے outputted؟ " تو کس قسم کی کوڈ کے حاصل کرنے کے لئے، میں لکھ سکتے تھے اگھوشیت شناخت کنندہ؟ ' [] Student کی یہ X = 2؟ تو ہم نے اسے یہاں میں صرف کوشش کر سکتے ہیں، X = 2. ہم اس چلانے گے - اوہ، میں اس پر کلک نہیں کیا. ٹھیک - تو ہم یہاں حاصل کریں. "اگھوشیت شناخت کنندہ ایکس کا استعمال کریں." تو وہ اگھوشیت شناخت کنندہ، متغیر ہے. یہ ایک متغیر ایک شناخت کنندہ بار بار فون کروں گا. تو معلوم نہیں یہ واقعی میں ایک متغیر ہے ہو سکتا ہے، یہ معلوم نہیں ہے کہ یہ کیا ہے. تو یہ ایک شناخت کنندہ ہے. کیوں تو یہ پہلے سے نہ سوچا ہے؟ جی ہاں. تو اصطلاحات، ایک متغیر کا اعلان صاف ہو جائے جب آپ کو "int X" یا "سٹرنگ Y،" جو کچھ بھی کہتے ہیں کہ ہے. متغیر کی، ابتدا، یا متغیر کی تفویض، جب بھی آپ کا کہنا ہے کہ "X = 2" ہے. تو ہم علیحدہ اقدامات میں ان کر سکتے ہیں، int X، X = 2، تک - - ہم یہاں میں سامان کا ایک گروپ کر سکتے ہیں لیکن جب تک یہ لائن ہوتا ہے، ایکس بھی، غیر ابتدا شدہ ہے لیکن اس نے اعلان کر دیا گیا ہے. اور اس طرح ہم Line 1 میں ظاہر ہے، کرتے ہیں اور اب ہم نے قرار دیا اور ابتدا کر رہے ہیں کر سکتے ہیں. سوال؟ اور آخر میں، "کیوں کیسر صفر ہے بہت محفوظ نہیں؟" سب سے پہلے تو، کسی کو بھی یہ کہنا چاہتے کیسر صفر کیا ہے؟ [Student کی] کیسر صفر صرف یہ ہے کہ آپ نقشے، آپ کو ہر خط میں منتقل، حروف کی ایک مخصوص تعداد میں ختم جاتے ہیں، اور اس سے زیادہ واپس منتقل، اور یہ بہت محفوظ نہیں ہے کیونکہ صرف 26 ممکن اختیارات ہیں اور تم ان میں سے 1 سے ہر ایک کی کوشش کی ہے جب تک کہ آپ اسے حاصل ہے. اوہ. لہذا میں نے دوبارہ چاہئے؟ کیسر صفر، it's - میرا مطلب ہے، تم اس کے ساتھ ہے کہ آپ مسائل پر نمٹنے جائے گی - یا میں مسئلہ سیٹ کہ ہیکر ایڈیشن پر نہیں ہے کے سٹینڈرڈ ایڈیشن لگتا ہے. تو مسئلہ سیٹ کے سٹینڈرڈ ایڈیشن پر، آپ کی طرح، ایک پیغام ملتا ہے "ہیلو دنیا" اور 6 کی طرح آپ کو بھی ایک بڑی تعداد ہے، اور آپ اس پیغام کو لے، اور ہر انفرادی کردار آپ اس حروف تہجی میں 6 پوزیشن کی طرف سے باری باری دکھائے گا. تو 'H' ہیلو میں ہو جائیں گے H-I-J-K-L-M (ن) کے. تو پہلی خط (ن) ہو جائے گی. ہمیں ای کے ساتھ ایک ہی بات کرتے ہیں. اگر ہم ایک ہیں،، Z یا کچھ اور، تو پھر ہم واپس ارد گرد لپیٹ کرنے کے لئے 'ایک. لیکن ہر کردار cycled حروف تہجی میں 6 حروف کے بعد ہو جاتا ہے، اور یہ بہت محفوظ نہیں ہے کے بعد کس طرح کئی طریقوں سے آپ کو ایک خط لپیٹ سکتا ہے کے لئے صرف 26 امکانات ہیں. تو آپ کو ان میں سے 26 سب صرف کرنے کی کوشش اور ایک کافی وقت تک پیغام کے لئے شاید کر سکتے ہیں، صرف ان ممکن 26 چیزوں کے 1 واضح ہونے جا رہا ہے، اور واضح بھی اصل پیغام جا رہا ہے. تو اس نے بالکل کچھ خفیہ کاری کا ایک بہت اچھا طریقہ نہیں ہے. ان شارٹس پر غیر متعلقہ، "ایک تقریب میں کیا ہے؟" تو کیا ایک تقریب ہے؟ جی ہاں. [Student کی] یہ کوڈ کا ایک علیحدہ حصہ ہے کہ آپ کے ذریعے جانے کے لئے اس کے بعد جو کچھ بھی کی واپسی کی قیمت حاصل کال کر سکتے ہیں کی طرح ہے. جی ہاں. بھی صرف اگلے ایک جواب دے کر یا بار بار - تو میں اسے بھی اگلے جواب دے کر جواب دونگا. تم افعال کی بجائے استعمال کرتے ہیں صرف کاپی اور پیسٹ کوڈ ختم کر سکتے ہیں اور پھر. بس اس کوڈ، ایک fuction میں ڈال، اور پھر آپ کو تقریب کہہ سکتے ہیں آپ کو جہاں بھی ہے کاپی اور چسپاں. تو افعال مفید ہیں. تو اب ہم اصل مسائل کا سامنا کروں گا. سب سے پہلے ایک ہے. تو پہلے ایک کی خیال ہے، آپ اسے ایک تار کے پاس، اور قطع نظر - یا یہ تمام چھوٹے کہتا ہے؟ یہ تمام چھوٹے نہیں کرتا. تو پیغام کو کچھ بھی ہو، کر سکتے ہیں اور - اوہ، نہیں. یہ کرتا ہے. "آپ کو سادگی کے لیے فرض ہے کہ صارف صرف چھوٹے حروف اور خالی جگہیں ان پٹ کر سکتے ہیں" تو ہم اسے صرف چھوٹے حروف کے ساتھ ایک پیغام کے پاس اور پھر ہم متبادل بڑے اور چھوٹے کے درمیان میں سب کچھ - ہم سٹرنگ بڑے اور چھوٹے، باری تبدیل. لہذا اس سے پہلے کہ ہم آپ کو ایک بھی مسئلہ میں کودو دوسری دے، پہلی بات یہ ہے کہ ہم کیا کرنے کی ضرورت ہے کیا ہے؟ اوہ، میں کیا صرف کیا کلک کریں؟ اوہ، میں نے صرف یہاں میں ایک ای میل کے پر کلک کیا ہے. تو پہلی بات ہم کیا کرنے کی ضرورت ہے - میں غلط ایک کو دیکھ رہا ہوں؟ یہ یہ ایک کا حصہ ہے؟ نہیں، وہ اب بھی وہاں ہیں، تاہم. ٹھیک ہے، اب بھی یہاں ہے. اب ہم فرض نہیں کر سکتے ہیں -؟ جی ہاں. ہم یہ فرض نہیں ہے کہ یہ صرف چھوٹے اور خالی جگہوں کر سکتے ہیں. تو اب ہم حقیقت یہ خط میں کہا گیا ہے کہ جو کچھ ہم نے انہیں کرنا چاہتے ہیں کر سکتے ہیں کے ساتھ نمٹنے کے لئے ہے. اور تو پہلی چیز جو ہم کرنا چاہتے ہیں صرف پیغام حاصل ہے. ہمیں صرف ایک تار کو حاصل کرنے کے لئے کی ضرورت ہے، سٹرنگ ایس GetString =، ٹھیک ہے. اب اس مسئلہ کرنے کے طریقوں میں سے ایک جوڑے کی ہیں. لیکن ہم bitwise آپریٹرز کو یہاں سے استعمال کرنا چاہتے ہیں کے لئے جا رہے ہیں. وہاں وہ لوگ ہیں جو یا تو supersection میں نہیں تھے، یا کچھ اور، جانتے ہیں اور نہیں bitwise آپریٹرز کیا ہیں؟ یا کہ وہ کس طرح کسی بھی طرح میں ASCII سے متعلق ہے؟ [Student کی] میں supersection میں نہیں تھا، لیکن میں جانتا ہوں کہ bitwise آپریٹرز ہیں. ٹھیک ہے. تو پھر میں ان کی بنیادی باتیں میں جانے کے لئے نہیں ہے، لیکن میں اس بات کی وضاحت کریں گے جو ہم یہاں استعمال کرنا چاہتے ہیں کے لئے جا رہے ہیں. تو 'A': دارالحکومت ایک بائنری کی نمائندگی کی تعداد 65 ہے. میں بس کو دیکھنے کے لئے جا رہا ہوں - 41 01000001 جا رہا ہے. تو اس دشملو میں 65 ہونا چاہئے، لہذا یہ کردار دارالحکومت A. بائنری نمائندگی کرتا ہے اب، کردار کی بائنری نمائندگی 'ایک' چھوٹے ایک ہی بات، تقریبا جا. ہے - 6، جی ہاں. یہ ٹھیک ہے. تو بائنری دارالحکومت A، بائنری چھوٹے '. تو دیکھیں گے کہ ایک اور 'اس ایک سا ہے. کے درمیان فرق اور یہ 32 بٹ، 32 نمبر کی نمائندگی سا ہوتا ہے. اور اس سے سمجھ میں آتا ہے کے بعد ایک 65 ہے. '97. ان کے درمیان فرق 32 ہے. تو اب ہم جانتے ہیں کہ ایک 'ایک' سے ہم A لینے کی طرف سے تبدیل کر سکتے ہیں اور یہ bitwise ORing کے ساتھ - 1 کی طرح لگتا ہے. یہ ایک OR 00100000 bitwise، ہے، اور یہ کہ ہمیں دیں گے '.' اور 'اے' سے ہم bitwise ANDing کی طرف سے ایک حاصل کرنے کے لئے کر سکتے ہیں 11، اس جگہ، 11111 میں 0 کے ساتھ. تو یہ ہمیں تو دے بالکل وہی جو 'ایک' تھا، لیکن یہ انفرادی سا منسوخ، تو ہم 01000001 پڑے گا، مجھے معلوم ہے کہ اگر میں صحیح شمار نہیں ہے. لیکن bitwise ORing اس ٹیکنالوجی دارالحکومت سے چھوٹے حاصل کرنے کے لئے، اور bitwise چھوٹے سے سرمایہ حاصل کرنے کے لئے ANDing A. خصوصی نہیں ہے حروف کی سب، بمقابلہ K K، Z بمقابلہ Z ان میں سے سب صرف اس ایک بٹ کی طرف سے اختلاف جا رہے ہیں. اور اس طرح آپ اس کا استعمال کسی بھی چھوٹے خط سے کسی بھی دارالحکومت خط اور اس کے برعکس کرنے کے لئے تبدیل کر سکتے ہیں. ٹھیک ہے. اس سے ہو رہی ہے تو ایک آسان طریقہ - کے بجائے کرنے کے باہر لکھنا جو بھی 1011111 ہے - اس نمبر کی نمائندگی کرنے کا ایک آسان طریقہ ہے، اور یہ ایک نہیں ہے کہ میں supersection میں گئے، لیکن اس کی ٹلڈا (~) ایک اور bitwise آپریٹر ہے. کیا ~ بٹ کی نمائندگی میں دکھائی دیتی ہے. کی کسی بھی تعداد کے لے. یہ صرف کچھ بائنری تعداد ہے، اور کیا ~ ہے یہ صرف بٹس کے تمام flips. تو یہ 1 تھا، اب 0، 0 ہے، اب 1، 010100. تو یہ سب ~ کرتا ہے. اس سے چھٹکارا حاصل کریں - تو 32 نمبر ہونے جا رہا ہے - تو 32 00100000 تعداد ہے، اور تو اس کی ~ جا رہا ہے یہ نمبر ہے کہ یہاں کے ساتھ میں 'ایک' ANDed. کیا سب نے یہ دیکھا؟ جب آپ کو معلوم کرنا چاہتے ہیں یہ بہت عام ہے، بعد کی چیزیں ہیں کہ ہم دیکھ سکتا ہے جب اگر ہم دیکھنا چاہتے ہیں کے لئے - یا ہم 1 کے علاوہ سب کچھ ہے، ہر ایک سا سیٹ چاہتے ہیں آپ سا ہے کہ ہم نے مقرر نہیں کرنا چاہتے ~ کرنا دیتے ہیں. تو تو ہم 32 بٹ سیٹ کی ضرورت نہیں ہے، ہم نے 32 کے ~ کرتے ہیں. ٹھیک ہے. تو ہم ان میں سے سب کو یہاں استعمال کر سکتے ہیں. ٹھیک ہے، تو یہ ٹھیک ہے اگر آپ نہیں کر رہے ہیں، ہم آہستہ آہستہ ایک ساتھ مل کر چلنا گے، یا اس سے زیادہ چل، تو - اس کے ذریعے. اس سے چلو. تو ہم اپنے سٹرنگ ہے، اور ہم اس سٹرنگ میں ہر کردار میں لوپ چاہتے ہیں اور اس سے کچھ ہیں. تو ہم کس طرح ایک تار پر لوپ؟ ہم کیا استعمال کرنا چاہئے؟ میں اسے یہاں نہیں جا رہا ہوں. جی ہاں. تو میں اپنے iterator ہے، اور اس نے یہ کہا، لیکن مجھے کس طرح پتہ سٹرنگ میں کتنے حروف ہیں؟ Strlen (زبانیں)، تو میں + +. تو جو میں نے یہاں کیا ہے کام کرنے کے سب سے بہتر طریقہ نہیں ہے. کیا کسی کو پتہ ہے کیوں؟ کیونکہ آپ سٹرنگ ہر ایک وقت کی زبان کی جانچ پڑتال کر رہے ہیں. تو ہم strlen منتقل کرنے کے لئے کرنا چاہتے ہیں جا رہے ہیں، میں نے کہہ سکتے ہو، int لمبائی، = strlen (زبانیں) اور اس کے بعد کی حد <، اور آپ کی صورت میں یہ نہیں دیکھا سے پہلے میں int میں = 0 طوالت = strlen (زبانیں) بھی کر سکتے ہیں اور اس طرح یہ کسی حد تک بہتر ہے، اب جب میں نے گنجائش محدود ہے متغیر لمبائی کی صرف لوپ 'کے لئے' کے بجائے اس سے پہلے یہ اعلان اور یہ کہ وہ ہمیشہ سے موجود ہے، اور اس معاملے میں تمہیں پکڑ کیوں یہ بری بات ہے نہیں کیا، یا کیوں اصل برا، it's تھا - لوپ کے لئے میں شروع. میں حالت کی جانچ پڑتال. کیا میں کے کی لمبائی <؟ لہذا کے کی لمبائی، کے ساتھ "ہیلو" پورے وقت کام. کی تو حد کے، H-L-L O-. لمبائی 5 ہے. تو تو میں = 0 طوالت 5 ہے، لہذا میں 5 <نہیں ہے، لوپ جاری ہے. اس کے بعد ہم پھر سے جانا. ہم حالت چیک کرنے کے لیے. ہے، میں ہیلو کی لمبائی <؟ تو ہیلو کی لمبائی چیک کرنے کے لیے. ایچ ای-L-L O-. 5 ہے، میں 5 <نہیں ہے، تو ہم پھر سے جاری ہے. تو ہم حساب، ہم ہیلو گنتی کر رہے ہیں لوپ میں سے ہر ایک iteration کے لئے، بھی سوچا کہ یہ کبھی تبدیل نہیں ہے، یہ ہمیشہ 5 جا رہا ہے. تو ہم سامنے 5 یاد ہے، اور اب سب کچھ اچھا ہے. تو پورے سٹرنگ پر iterating. ہم سٹرنگ میں سے ہر ایک کردار کے لئے کیا کرنا چاہتے ہیں؟ [Student کی بولنے، unintelligible] جی ہاں. تو، اگر کردار غیر اکشراتمک ہے، تو ہم صرف اس پر پر کرنا چاہتے ہیں. کیونکہ ہم صرف اکشراتمک خطوط کے بارے میں دیکھ بھال، ہم ایک نمبر استفادہ حاصل نہیں کر سکتے. تو ہم یہ کس طرح کر سکتے ہیں؟ ہماری حالت تو، اگر ایسا ہے تو ہم کچھ کرنا چاہتے ہیں - چیک کرنے کے لیے اگر یہ حروف تہجی کی ہے. تو ہم یہ کیسے چیک کر سکتا ہوں؟ [Student کی] آپ کو تقریب کا استعمال کر سکتے ہیں. الفا ہے. یہ ہے کہ ان میں سے کسی بھی، یا کسی میں شامل طرح char.h، یا کچھ میں شامل ہیں؟ ، تو ہم کے [میں] - چلو الفا فنکشن ہے، اور واضح استعمال کرنے کے لئے استعمال نہ کریں یاد ہے کہ کے کے آٹھویں کردار ہے، کہ ایک تار کرداروں میں سے ایک صف ہے، کے کے آٹھویں کردار ہے. اب، اگر یہ سرمایہ کا خط ہے، ہم جانتے ہیں کہ یہ ایک مخصوص حد میں ہونا ضروری ہے. اور وہ کیا رینج ہے؟ جی ہاں. تو اگر [میں] ≥ 65، اور S [میں] 90 ≤ ہے، بجائے میں کیا کرنا چاہیے؟ جی ہاں. تو آپ بالکل بھی نہیں کبھی کچھ ASCII اقدار کو جاننا چاہئے کی ضرورت ہے. 65 نمبر، 90، 97 اور 102، یا جو کچھ بھی ہے کبھی نہیں لگتا ہے. آپ کی ضرورت نہیں ہے - 112 - آپ کو بالکل ان جاننے کی ضرورت نہیں ہے. یہ غلط بھی ہے. صرف ایک اقتباس حروف، ایک اقتباس constants کا استعمال کریں. 'A' اور 90 سے کم 'Z.' اور یہ نمایاں طور پر بہتر ہے - مجھے نہیں معلوم کہ میرے سر کے سب سے اوپر ہے کہ Z 90. میں نے میرے سر کے سب سے اوپر ہے کہ 'Z' کے دارالحکومت Z. ہے جانتے ہیں خفی کے لئے جب تک کے طور پر یہ دارالحکومت Z، یا ہم سرمایہ کی حد میں ہے چیک کر سکتے ہیں، یا پھر اگر اس کی حد میں ہے ≥ 'اے' اور ≤ Z. جس سے کہ ہماری حالت ہے. کیا ہے کہ ان چیزوں کو کرنے کے لئے سٹائل ہوتی ہے. میں اس طرح کروں گا. اب ہمیں کیا کرنا چاہتے ہیں؟ ہم جانتے ہیں کہ اس خط میں ایک کردار ہے، ایک حرف ہے. تو ہم کہ یہ سرمایہ خط یا چھوٹے خط ہونا چاہئے کے درمیان متبادل کی ضرورت ہے. ہم ٹریک ہے جس کے بارے میں ہم یہ چاہتے ہیں کس طرح رکھ سکتا ہوں؟ [Student کی آواز، unintelligible] تو جی ہاں، لیکن آپ کے وزٹرز کا ریکارڈ رکھا چیک کرنے کے لیے ہے. 0-2 ماڈیول نے کہا گیا تھا، ایک تجویز باہر پھینک دیا تھا، اور میں اس کے ساتھ اتفاق کرتا ہوں. نوٹس سوائے اس کے کہ جیسے - یہ معاملہ ہے؟ جی ہاں. یہ ہر دوسرے، لیکن ہم میں 2 ماڈیول نہیں کر سکتے ہیں، یا میں 2 MOD، کیونکہ نوٹس کہ ای دارالحکومت ہے اور 'ایک' چھوٹے ہے؟ لیکن ان سے الگ خلا ہے؟ تو وہ اسی 2 MOD، رہے ہیں، لیکن وہ مختلف مقدمات ہیں. [Student کی سوال، unintelligible] جی ہاں. تو ہم صرف ایک شمار رکھنے کے لئے جا رہے ہیں. ہم یہاں بھی کر اگر ہم چاہتے تھے، وہ ایک چھوٹی سی unwieldy ہو سکتا ہے لوپ کا اعلان کے لئے، میں اسے یہاں کریں گے. تو int شمار = 0 سے شروع ہوتی ہے. اور تو اب، میں شمار کتنے حروف تہجی حروف ہم نے ہے جا رہا ہوں. تو ہم لامحالہ شمار + + ہم کے بعد ایک اور حرف مل گیا کے لئے جا رہے ہیں. لیکن، تو اب اگر تم شمار 2 MOD کہہ رہے ہو. تو کیا ہوا اگر شمار 2 MOD؟ اوہ. اب میں == 0 کر دونگا. ہم بھی چلے جائیں گے. لہذا اگر شمار 2 MOD 0 ==، تو کیا؟ [طلباء جواب، unintelligible] تو ہم اسے بڑے کو ختم کرنے کے لئے چاہتے ہیں. 2 مقدمات ہیں، بڑے اور چھوٹے 2 مقدمات ہیں. تو اگر ہم چھوٹے میں ہیں ہم اسے بڑے کرنے کی ضرورت ہے. اگر یہ بڑے ہے ہم کچھ کرنے کی ضرورت نہیں ہے. لیکن، کیا کوئی راستہ ہے - shouldn't flipped ہے - کہ ہم چیک کرنے کے لیے چاہے وہ بڑے یا خفی ہے بھی نہیں کی ضرورت ہے؟ ہم ہمیشہ اس بات کا یقین کر لیں کہ ہم بڑے حروف میں ہمیشہ ختم کرنے کا کیا کر سکتا ہوں؟ تو محسوس کیا ہم چھوٹے 'ایک' کے لئے کیا، اگر ہم نے اس ایک ہی عین مطابق کام کیا ہے ایک بڑے؟ تبدیلی کے بڑے کیا، یا قدر تبدیل کرتا ہے؟ جی ہاں. لہذا کسی بھی دارالحکومت خط 32 ~ کے ساتھ ANDed bitwise کہ ایک ہی بڑے کردار بننے جا رہا ہے کیونکہ کسی بھی بڑے کردار کے لئے 32nd سا نہیں مقرر کیا گیا ہے. تو اگر ہم کردار لانے کے لئے [میں]، ہم اس کے چھوٹے یا بڑے بننا چاہتے ہیں کرنا چاہتے ہیں. تو اگر یہ چھوٹے تھا، اب یہ ہے بڑے، اگر یہ بڑے تھے، یہ اب بھی ہے بڑے، اور یہ کہ اس. میں supersection میں اس نے کہا کہ: آپ 32 کا استعمال کریں اگر آپ چاہتے ہیں، لیکن میں کر 'ایک' کو ترجیح دیتے ہیں کر سکتے ہیں - ایک، بجائے صرف سادہ 32، کیونکہ یہ کسی دوسرے سا ہو سکتا ہے. 32 بٹ کے بعد ان میں سے کسی، یا ہمارے پاس کافی نہیں ہوگا کر سکتے ہیں حروف کی سب کی نمائندگی کرنے کی تعداد. تو اگر آپ 32 بٹ، 64 بٹ ہو سکتا ہے، یہ 128 بٹ ہو سکتا ہے. ان بٹس کی کوئی سا جو بڑے اور چھوٹے کے درمیان ممتاز ہو سکتا ہے. مجھے پتہ ہے کہ یہ 32 بٹ ہے کی ضرورت نہیں ہونی چاہئے. میں اس 'ایک' کا استعمال کر سکتے ہیں - تھوڑا سا حاصل کرنے کے لئے ہے کہ دونوں کے درمیان مختلف جادو نمبر 32 ہے پر انحصار کرنے کی ضرورت کے بغیر. اور تو اب، اور شمار عجیب تھا، تو اور میں کیا کرنا چاہتے ہیں؟ [Student کی جوابات، unintelligible] [Student کی] یہ کیا ہے؟ میں اسے 1 دوسری میں کیا کریں گے. تو اب اگر میں کرنا چاہتے ہیں - میں اس بات کا یقین کر لیں کہ حرف ہے چھوٹے بنانے کے لئے چاہتے ہیں، اور اس لئے میں، یا 32 کی طرف سے کیا جا سکتا ہے اور 32 معنی 'ایک' - A. لیکن گزشتہ ایک کے طور پر ایک ہی استدلال کی طرف سے نوٹس، کہ اگر خط پہلے ہی چھوٹے تھا، تو ORing 32 کی طرف سے رکھتا ہے، صرف یہ چھوٹے. یہ اصل کردار تبدیل نہیں کیا ہے. لیکن اب میں نے کہا، "اگر یہ خفی ہے، صرف اس کے بارے میں بھول سے بچنے کی ضرورت نہیں ہے، اور اگر یہ بڑے ہے، تو پھر اسے تبدیل کریں. " یہ زیادہ آسان ہے ایسا ہے. [Student کی] چھوٹے کام سے بڑے تفریق اگر یہ 32 نہیں تھے کہ حکمت عملی گے؟ اگر یہ تھا، 34 یا کچھ اور کو پسند ہے؟ تو، آپ کو معلوم ہے کہ 2 کے درمیان فرق ہے کی ضرورت ہے - >> 1 سا. 1 بٹ سے زیادہ ہو، جب تک کے طور پر اس عہدے سے نیچے بٹس کی سب ایک جیسے ہیں کر سکتے ہیں. تو ہم کم از کم 26 حروف کی ضرورت ہے - یا 26 حروف ہیں. تو ہم اختلاف کی نمائندگی کرنے کے لئے کم از کم 26 کی تعداد کی ضرورت ہے - ایک اور 'ایک' میں کم از کم 26 ہونا ضروری ہے، کے درمیان فرق ورنہ ہم تمام دارالحکومت تعداد نہیں ہوتا کی نمائندگی کی. اس کا مطلب یہ ہے کہ کہ A، اگر ہم 1 شروع، ان بٹس کو استعمال کرنے کے لئے جا رہا ہے، ان پہلی 5 کی بٹس، Z. ذریعے سب کچھ کی نمائندگی کے تمام اگلے سا یہی وجہ ہے کہ اگلے بٹ، یا یہ تھوڑا سا ہے، ایک ہے کہ اور کے درمیان فرق کا انتخاب کیا ہے ہے. ' یہی وجہ ہے کہ میں بھی ہے، ASCII ٹیبل میں 5 چھوٹے حروف سے بڑے حروف تہجی الگ علامات ہیں. چونکہ وہ علامات، اضافی 5 کہ 32 لاتا ہے ان کے درمیان فرق کیا جا رہا ہے ہیں. [Student کی] تو ہم اسے کرتے ہیں، کیونکہ ASCII اس طرح ڈیزائن کیا گیا ہے ہے. جی ہاں. لیکن ASCII - فرق ان دونوں بٹس کی بھی ہو سکتی ہے. کی طرح، اگر 10000001 تھے، اور 'ایک' 11100001 - میں بھول جاتے ہیں، جو کچھ بھی ہے. A. - لیکن اگر وہ یہ تھے، اس کے بعد ہم اب بھی 'ایک' استعمال کر سکتے ہیں اب یہ صرف ایک اور 'ایک' میں اب بھی ان 2 بٹس کے درمیان کیا فرق ہے. مجھے لگتا ہے کہ اس نے 48 لکھا ہے. یہ 32 + 64؟ مجھے لگتا ہے کہ یہ کیا ہے؟ ہر ایک کردار، پسند Z اور Z، K، اور K،، 2 بٹس اب بھی ہو جائے گا وہ ان 2 بٹس کے علاوہ ایک ہی عین مطابق مقرر بٹس اب بھی ہوگا. جب تک، جو ہمیشہ سچ ہے، اس بات سے قطع نظر اگر ہم ASCII یا کسی دوسرے نظام کا استعمال کرتے ہوئے کر رہے ہیں ، جب تک کے طور پر صرف بٹس جو ہر کردار کے لئے مختلف ہیں کی ایک سیٹ نمبر تو یہ ٹھیک کام کرتا ہے. یہ صرف ہے کہ 32 قائم کیونکہ اس سے پہلے بھی ہم ممکنہ طور پر استعمال کر سکتے ہیں ہے. ڈاؤن لوڈ، اتارنا. >> میں، اگر تم نے دیکھا نہیں کیا ہے، اگر بلاک صرف ایک لائن ہے کرنے کو ترجیح دیتے ہیں، آپ گھوبگھرالی منحنی خطوط وحدانی کے چھٹکارا حاصل کر سکتے ہیں، تو میں ایسا کرنے کو ترجیح دیتے ہیں ہیں. اس کے علاوہ، آپ کو پتہ ہے کہ ہم کس طرح [میں] + = 1 طرح باتیں کر سکتے ہیں؟ آپ [میں] bitwise اور 32 = بھی کر سکتے ہیں اور bitwise یا = 32. کے علاوہ، 2 جدید == 0 شمار. تو وہ یاد ہے - میں اسے لکھ نہیں کرے گا - کسی بھی غیر صفر قدر سچ ہے، اور 0 باطل ہے. تو "اگر شمار 2 MOD 0 ==" کہہ رہے ہیں کے طور پر ایک ہی ہے انہوں نے کہا کہ 'اگر 2 MOD شمار نہیں. " میں شاید لائنز گے الٹا اور کہا، "اگر شمار MOD 2، یا 1، اور کرتے ہیں اور 1 نہیں "تاکہ میں نے کی ضرورت نہیں ہے." لیکن اس کے ساتھ کام کرتا ہے. اور کیا میں یہاں کیا کر سکتے ہیں؟ تم نے انہیں تہرا کے ساتھ جمع اگر تم چاہتے تھے، لیکن پھر سکتا ہے کہ چیزوں messier صرف تھا اور شاید پڑھنے مشکل، تو ہم ایسا نہیں کریں گے. کوئی بھی کسی بھی دوسری تجاویز ہیں؟ ہے کہ تمام مسئلہ کے لئے کہا ہے؟ اوہ، جی ہاں. تو ان خالی لائنوں کی چھٹکارا حاصل ہے، اب ہم F S،٪ پرنٹ کریں گے، ڈور کے لئے ایک ہونے کے ہم F پرنٹ، S گا. اب ہم اسے چلاتے ہیں. کیا میں نے کچھ غلط کیا؟ وہ ایک \ "؛ میں ایک (ن) کی ضرورت ہے. ٹھیک ہے. اب ہم اسے چلانے دونگا. یہ شاید مجھ پر چللاو گے. Strlen string.h میں ہے. تو یہ ہے بجنا کے بارے میں اچھی بات یہ ہے یہ آپ کو بتاتا ہے کہ اس میں کیا ہے، بجائے جی سی سی جس میں صرف کا کہنا ہے کہ، "ارے، تم سے کچھ بھول گیا، میں پتہ نہیں کہ وہ کیا تھا." لیکن یہ مجھے بتائیں گے، "تم string.h کو شامل کرنے کا مطلب ہے." تو میں کسی بھی چیز کے لئے نہیں فوری طور پر، کیا تو اس نے کچھ بھی نہیں کہہ رہا ہے. لیکن ہم ان کی مثال کے طور پر کیا جائے گا، "4 شامل کریں شکریہ". یہ درست لگتا ہے. ہرے. تو آپ کے مرکزی آرہے ہیں، میں تقریبا کبھی نہیں کرنا. یہ اختیاری ہے. اور مین صرف تقریب ہے جس کے لئے یہ اختیاری ہے ہے. اگر آپ اہم سے کچھ بھی واپس نہیں ہے، اس لئے یہ فرض کر لیا گیا ہے کہ آپ 0 واپس کرنے کا مطلب ہے. سوال؟ ٹھیک ہے. تو اب دوسرا مسئلہ ہے. انہوں نے کہا کہ گزرنے کی طرف سے ہفتے 2 دوسرا لیکچر ہے کہ 2 'متغیر کی اقدار گماگمن سے یاد ایک تقریب میں (چاہے سویپ کہا جاتا ہے) ان 2 متغیر، کم از کم کے بغیر بالکل نہیں ہے کام 'اشارہ ہے. " اور اشارہ نظر انداز جب تک ہم ان سے حاصل کرنے کے لئے. ہم 2 متغیر تبادلہ چاہتے ہیں، ہم نے ایک تقریب کا استعمال نہیں کر رہے ہیں ایسا کرنے. ہم اب بھی یہ اہم ہے کہ یہ کہتے ہیں کہ کیا کرنے جا رہے ہیں. لیکن ان 2 متغیر کو استعمال کرنے کے لئے، ہم ایک عارضی متغیر کو استعمال کرنے کے لئے نہیں کرنا چاہتا ہے. ایسا کرنے کے 2 طریقے ہیں. تم یہ کر اپنے روایتی بائنری آپریٹرز کا استعمال کرتے ہوئے کر سکتے ہیں. تو کسی کے پاس یہ ہے کہ ایسا کرنے کے فوری اور گندی راستہ معلوم ہے؟ یہ سوچنے کا ایک منٹ بھی لے سکتے ہے. اگر میں نے - میں مسئلہ قائم وہ طرح سے پوچھیں گے. تو اگر میں 2 متغیر ہے، جو A، صرف ایک عدد صحیح ہے کہ وہ مجھے دو، اور رقم متغیر B، جس پر ایک عدد صحیح ہے کہ میں نے کر رہا ہوں. تو اگر میں یہ 2 متغیر ہے، اب میں ان کا تبادلہ کرنا چاہتے ہیں. روایتی، آپ کے باقاعدہ بائنری آپریٹرز کا استعمال کرتے ہوئے، میرا مطلب ہے، + طرح، - ÷. نہیں bitwise آپریٹرز جو بائنری پر عمل. ، +، ÷، اور ان سب - تو استعمال کرتے ہوئے ہے. ہم ایسا کچھ کر کے تبادلہ سکتا ہے ایک = A + B، اور b = A - B، ایک = A - B. تو، وویک چیک کرنے کے لیے، اور پھر ہم اس کام کو دیکھ لیں گے. چلو کا کہنا ہے کہ 7 =، B = 3، تو + B 10 کی جا رہی ہے. تو کیا اب ہم 10 = قائم کرنے رہے ہیں، اور پھر ہم B = ایک کر رہے ہیں - ب. تو ہم کر رہے ہیں B = A - B، جو 7 جا رہا ہے، اور ب = ایک - دوبارہ B یا = ایک - B. 7 جس 3 - جو 10 جا رہا ہے. درست طریقے سے، تو اب 'ایک' 7 تھی، بی 3، اور اب ب 7 ہے اور ایک '3 ہے. تو اس طرح کا احساس کرتا ہے. 'ایک' 2 تعداد کا مجموعہ ہے. اس وقت 'ایک' مجموعہ ہے، اور پھر ہم تفریق اصل ب کر رہے ہیں، اور پھر ہم باہر تفریق ہو جو اصل تھا 'ایک. لیکن یہ تمام اعداد و شمار کے لئے کام نہیں کرتا. یہ دیکھ کر، ایک ایسا نظام پر غور کریں، تو ہم عام طور پر 32 بٹس کے طور پر integers کے بارے میں سوچتے ہیں. کچھ کہ صرف 4 بٹس کی طرح ہے پر کام کرنے دو امید ہے کہ میں ایک اچھی مثال کے ساتھ ابھی آو. تو، میں سمجھتا ہوں، یہ آسان ہو جائے گا. چلو کا کہنا ہے کہ ہمارے 2 تعداد 1111، اور 1111 ہیں، تاکہ ہم بائنری میں ہیں ابھی. اصل دشملو میں، اگر آپ کو اس سے اس طرح سوچنا چاہتے ہیں، 15 = اور ب = 15. اور اس طرح ہم امید کرتے ہیں، ہم ان کے تبادلہ کے بعد - وہ ایک ہی تعداد بھی نہیں ہے، لیکن میں نے اسے اس طرح کیا. انہیں بنانے کے لئے ایک ہی تعداد میں نہیں. دو کی 1111 اور 0001. تو ایک 15 = اور B = 1. کے بعد ہم ان کے تبادلہ، ہم 'ایک' 1 اور بی 15 کی امید ہے. لہذا ہمارا پہلا قدم ہے = A + B. ہمارے تعداد صرف 4 بٹس وسیع ہیں، اس لئے '،'، جو 1111 ہے + B، جو 0001، 10000 ہونے کے ختم ہو رہا ہے، لیکن ہم صرف 4 بٹس ہے. تو اب = 0. B - - اصل میں، یہ اب بھی باہر بالکل کام کرتا ہے اور اب ہم مقرر B = ایک کرنا چاہتے ہیں. = ایک - B - چلو دیکھتے ہیں اگر یہ بالکل کام کرتا ہے. تو B = 0 - 1،، جس میں 15 اب بھی ہو جائے گا اور پھر ایک = ایک - B، جو 1 گے. شاید یہ کام کرتا ہے. مجھے لگتا ہے کہ وہاں ایک وجہ یہ باقاعدگی سے استعمال کرتے ہوئے کام نہیں کرتا ہے. ٹھیک ہے، تو مفروضہ کہ وہ باقاعدگی سے بائنری آپریشن کے ساتھ کام نہیں کرتا پر کام کر رہے اور میں نظر آئے گا - میں اگر یہ سچ ہے کو دیکھنے کے لئے گوگل گا. تو ہم نے اسے bitwise آپریٹرز کا استعمال کرتے ہوئے کرنا چاہتے ہیں، اور یہاں اشارہ XOR ہے. تو، XOR (^) متعارف کرانے اگر آپ نے اسے نہیں دیکھا ہے ابھی تک. تو یہ ہے، پھر ایک bitwise آپریٹر، تھوڑا سا اور it's کی طرف سے تھوڑا سا کام کرتا ہے - اگر آپ کے بٹس 0 اور 1 کے ہیں، تو اس 1 ہو جائے گا. اگر آپ 1 کی بٹس اور 0 ہے، اسے 1 ہو جائے گا، آپ 0 بٹس اور 0 اس 0 ہو جائے گا ہے، اور اگر آپ 1 کی بٹس اور 1 0 ہو جائے گی. تو اس کی طرح ہے. اگر بٹس کے کسی بھی سچے ہیں، اسے 1 ہے، لیکن OR کے برعکس، یہ دونوں بٹس یہ سچ نہیں ہو سکتا. یا یہ 1 کیا جائے گا XOR ہے، اس 0 ہو جائے گی. تو ہم XOR یہاں پر استعمال کرنا چاہتے ہیں کے لئے جا رہے ہیں. ایک منٹ کے لئے اس کے بارے میں سوچو، میں گوگل کو جا رہا ہوں. ٹھیک ہے، تم نے جو پڑھا نہیں کر سکتے ہیں، میں XOR سویپ الگورتھم صفحے پر ہوں. امید ہے کہ اس کی وضاحت میں کیوں can't - یہ بالکل الگورتھم ہے کہ ہم صرف کیا ہے. میں اب بھی نظر نہیں ہے کیوں - میں صرف ایک بری مثال اٹھایا، لیکن، اس صورت میں جہاں 'ایک' 0 5 بٹس پر حاصل کرنے کے بعد بننے، تو اب ایک '0 ہے ہوا یہ ہے کہ کیا کہا جاتا ہے "عددی اتپرواہ." وکی پیڈیا کے مطابق، "XOR سویپ کے برعکس، اس تبدیلی کی ضرورت ہوتی ہے کہ اس میں کچھ طریقوں کا استعمال کیا جاتا ہے اس بات کی ضمانت ہے کہ X + Y ایک عددی اتپرواہ کی وجہ سے نہیں ہے. " تو یہ مسائل ہیں ہے، یہ عددی اتپرواہ تھا، لیکن میں نے کچھ غلط کیا ہے. مجھے یقین نہیں ہے. میں ایک دوسرے کے ساتھ آنے کی کوشش کریں گے. [Student کی] ٹھیک ہے، عددی اتپرواہ نہیں ہے جب تم وہاں میں ایک بڑی تعداد کو کرنے کی کوشش کر رہے ہیں بٹس کی وہ رقم ہے جو آپ مختص ہے سے بڑا ہے؟ جی ہاں. ہم نے 4 بٹس ہے. That's - ہم نے 4 بٹس تھا، تو ہم اس کی 1 کا اضافہ کرنے کی کوشش ہے، تو ہم 5 بٹس کے ساتھ ختم. لیکن پانچویں تھوڑا کاٹ، ہو جاتا ہے ہاں. یہ اصل طاقت - [Student کی] کہ آپ کو کوئی غلطی کیا پھینک، یا یہ کہ اس کی - ایک غلطی، جو کہ پھینک دیں گے؟ نہیں تو کوئی خرابی نہیں ہے. جب آپ نے اسمبلی کی سطح حاصل کرنے کے لئے، ایک خاص سا کہیں مقرر ہے کہ نے کہا کہ ایک اتپرواہ تھا، لیکن C میں آپ اس کے ساتھ اس قسم کی نہ صرف سودا کرنے ہے. تم واقعی اس سے نمٹنے کے لئے نہیں ہے جب تک آپ خصوصی سی میں اسمبلی کی ہدایات کا استعمال کرتے ہیں کر سکتے ہیں. چلو XOR سویپ کے بارے میں سوچنا. اور مجھے لگتا ہے کہ وکیپیڈیا مضمون بھی کیا گیا ہے ہو سکتا ہے کا کہنا ہے کہ - تو یہ بھی ماڈیولر ریاضی لائے، تو مجھے لگتا ہے کہ میں تھا، اصول میں، ماڈیولر ریاضی کر میں نے کہا کہ جب کہ 0 - 1 15 پھر. تو یہ اصل طاقت - 15 1 = - ایک باقاعدہ پروسیسر ہے جو 0 کرتا ہے. چونکہ ہم نے 0 میں آخر، ہم 1 منہا، تو یہ صرف کے ارد گرد 1111 پر واپس wraps. یہ ٹھیک ہو سکتا ہے. - B، B - ایک تو یہ الگورتھم، اصل میں ایک + B، ایک کام ہو سکتا ہے لیکن کچھ پروسیسرز جو کہ نہیں ہے، اور یہ ان خصوصی ہیں میں ٹھیک نہیں ہو گا. XOR سویپ کسی بھی پروسیسر پر کام کرے گا. ٹھیک ہے. خیال ہے کہ یہ وہی ہو، اگرچہ والا ہے. ہم XOR کہاں کا استعمال کرتے ہوئے کسی نہ کسی طرح متغیرات میں سے 1 میں دونوں کی معلومات حاصل کر رہے ہیں، اور اس کے بعد انفرادی متغیرات میں سے کے بارے میں معلومات دوبارہ ھیںچو. تو کسی کے خیالات / جواب ہے؟ [Student کی جواب، unintelligible] تو یہ کام کرتے ہیں، اور بھی، XOR commutative ہے. کس کے حکم کی قطع نظر ان 2 نمبر یہاں میں ہو، یہ نتیجہ ایک ہی ہو جائے جا رہی ہے. تو ایک ^ ب ہے B ^ ایک. آپ یہ بھی دیکھ سکتے ہیں اس کے طور پر لکھا ^ = B، B ^ = ایک، ایک ^ = دوبارہ B. تو یہ صحیح ہے، اور یہی وجہ ہے کہ یہ کام بٹس، کے بارے میں سوچتے ہیں. ایک smallish تعداد کا استعمال کرتے ہوئے، 11001، اور 01100 کا کہنا ہے کہ. تو یہ 'ایک' ہے، یہ بی ہے. تو ایک ^ = B. ہم قائم کرنے '' = ان 2 چیزوں کے XOR جا رہے ہیں. 1 تو 0 ^ 1 ہے، 1 1 ^ 0 ہے، 0 1 ^ 1 ہے، اور 0 0 ^ 0 ہے، 1 0 ^ 1 ہے. تو، اگر آپ دشملو تعداد میں دیکھو، یہ جا رہا ہے - تم جا اصل 'اے' اور نئے کے درمیان تعلق کی زیادہ دیکھنے کے لئے نہیں کر رہے ہیں '،' لیکن بٹس دیکھ 'ایک' معلومات کا ایک نیٹ ورک کی طرح ہے دونوں اصل 'اے' اور اصل ب. تو اگر ہم B ^، ہم دیکھتے ہیں کہ ہم اصل میں ختم کریں گے 'ایک. لے اور اگر ہم لے اصل 'A' ^ نئے '،' ہم دیکھ کر ہم اصل ب میں ختم. تو (ایک ^ ب) ^ B = اصل '.' اور (ایک ^ ب) ^ ایک = اصل ب. آمدید ہے - دیکھ کر یہ کچھ XOR ہی ہے کا ایک اور طریقہ ہمیشہ 0. 1101 تو 1101 ^، تمام بٹس کو ایک ہی جا رہے ہیں. تو وہاں ایک کیس ہے جہاں 1 ہے 0 اور 1 دوسرے ہے کبھی نہیں ہے. تو یہ 0000 ہے. اس کے ساتھ ایک ہی ہے. (^ ب) ^ B کی طرح ہے ^ (ب ^ ب). (ب B ^) 0 ہونے جا رہا ہے، 0 ^ صرف '،' جا رہا ہے سے لے کر تمام بٹیں 0. تو صرف وہی ہیں جو ہونے جا رہا جہاں '' اصل میں 1 - والوں تھا. اور یہاں ایک ہی خیال، میں خوبصورت اس بات کا یقین کر لیں کہ یہ بھی ہے commutative ہوں. جی ہاں. میں کہا ہے کہ اس سے پہلے کہ commutative تھا. ^ '،' اور اس ساہچری ہے، تو اب (ب ^ ایک) ^ ایک. اور ہم B ^ (ایک ^ ایک) کر سکتے ہیں. اور تو پھر، ہم اصل ب ملتا ہے. تو '' اب 'اے' بی اور ایک ساتھ مجموعہ ہے. ہمارے نئے طومار کا استعمال کرتے ہوئے 'ایک' ہم کہتے B = طومار 'ایک' ^ اصل B، ہم اصل حاصل کریں '.' اور اب = طومار 'ایک' ^ نئے ب، جو اصل تھا - یا جو اب ہے جو 'ایک' یا ب تھا. کہ یہ معاملہ ہے یہاں. یہ = B، پرانی ب ہے. تو اب سب کچھ تبدیل ترتیب میں واپس آ گیا ہے. اگر ہم واقعی بٹس کو دیکھا، B = ایک ^ B، 2 ان XOR جا رہا ہے، اور جواب یہ جا رہا ہے، اور اس کے بعد = ایک ^ B ان 2 XORing ہے اور جواب یہ ہے سوال؟ ٹھیک ہے. تو گزشتہ ایک کسی حد تک زیادہ اہم مشکل ہے. [Student کی] مجھے لگتا ہے کہ وہ اس کے بارے میں ایک سوال ہے. >> اوہ، معاف کرنا. [Student کی] اصل میں کیا ہے تیزی سے؟ اگر آپ اس XOR کا استعمال کرتے ہیں، یا یہ ہے اگر آپ کو ایک نیا متغیر کا اعلان؟ تو تیزی سے اصل میں کیا ہے، ایک نیا متغیر کا اعلان یا XOR کا استعمال کرتے ہوئے پر تبادلہ؟ جواب تمام امکان میں ہے، ایک عارضی متغیر ہے. اور ہے کیونکہ ایک بار اسے نیچے مرتب کی ہے - اس لئے اسمبلی کی سطح پر، مقامی متغیر یا کسی عارضی متغیر یا اس چیز میں سے کسی کے طور پر اس طرح کے کام نہیں ہے. میموری ہے، اور وہاں رجسٹر ہیں - وہ صرف کر رہے ہیں. رجسٹر چیزیں کہاں فعال طور پر ہو رہی ہیں. آپ کی یاد میں 2 چیزیں شامل نہیں کرتے ہیں، آپ کو رجسٹر میں 2 چیزیں شامل ہیں. اور آپ کو رجسٹر میں یاد سے چیزیں لاتے تو انہیں شامل کرنے، اور پھر آپ ان میموری میں ڈال واپس، لیکن ہو سکتا ہے تمام کارروائی کے رجسٹر میں ہوتا ہے. تو جب آپ عارضی متغیر نقطہ نظر کا استعمال کرتے ہوئے کر رہے ہیں، عام طور پر کیا ہوتا ہے ان 2 نمبر رجسٹر میں پہلے سے ہی ہیں. اور اس کے بعد کے بعد تم نے انہیں تبدیل ہے اس نقطہ نظر سے دوسرے رجسٹر کا استعمال کرتے ہوئے شروع کر دیں گے. کہیں بھی نے تم سے کیا گیا تھا ب کا استعمال کرتے ہوئے، یہ رجسٹر جو پہلے ہی کیا گیا ذخیرہ کرنے کا استعمال کریں گے '.' تو یہ اصل میں سویپ کچھ کرنے کی ضرورت نہیں ہے. جی ہاں؟ [Student کی] لیکن یہ بھی زیادہ میموری لیتا ہے، ہے نا؟ یہ صرف زیادہ میموری لے اگر یہ ہے کہ عارضی متغیر کو محفوظ کرنے کی ضرورت ہے. ، اگر آپ کو بعد میں اس عارضی متغیر پھر کہیں استعمال کرنا تو - یا آپ اس عارضی متغیر کچھ تفویض. اگر ایسا ہے تو وقت، TEMP میں ب میں کسی بھی موڑ پر مخصوص اقدار یا کچھ اور ہے، تو اس یاد میں مختلف مقامات پر جا، لیکن یہ سچ ہے کہ بہت سے مقامی متغیر ہیں جو رجسٹر میں ہی رہے گا. کس صورت میں، یہ میموری میں ڈال دیا کبھی نہیں، اور تم میموری کبھی نہیں ضائع کر رہے ہیں. ٹھیک ہے. آخری سوال تھوڑی ہے. تو یہاں اس CS50 آلات میں ایک ڈکشنری ہے. اور اس کی وجہ کی وجہ سے ہے. [B66؟] سپیل چیکر ہے جہاں آپ لکھ رکھا جائے گا ہیش میزیں یا کرنے کی کوشش کرتا یا کچھ آنکڑا ڈھانچہ کا استعمال کرتے ہوئے. سپیل چیکر لکھنے جا رہے ہیں، اور آپ اس ڈکشنری کا استعمال کرتے ہوئے ایسا کرنے کے لئے جا رہے ہیں. لیکن اس مسئلہ کے لئے، ہم صرف اگر ایک لفظ لغت میں ہے دیکھنے کے لئے دیکھنے کی جا رہے ہیں. تو کچھ ڈیٹا ڈھانچے میں پوری لغت کو ذخیرہ کرنے کی بجائے اور پھر ایک مکمل دستاویز پر اگر کچھ غلط ہجے شدہ ہے، ہم صرف 1 لفظ کو تلاش کرنے کے لئے چاہتے ہیں. تو ہم صرف پورے لغت کو اسکین کر سکتے ہیں اور اگر ہم پورے لغت میں لفظ نہیں مل، تو اسے وہاں نہیں تھا. اگر ہم پوری لغت پر اسکین اور لفظ دیکھتے ہیں، تو ہم اچھے ہیں، ہم مل گیا ہے. یہاں یہ کہنا ہے کہ ہم C تقریب فائل کو سنبھالنے کی دیکھ شروع کرنا چاہتے ہیں، چونکہ ہم لغت کو پڑھنے کے لئے چاہتے ہیں، لیکن میں جس میں کام کرتا ہے آپ کے بارے میں سوچنا چاہئے کے طور پر اشارہ دے گا. میں انہیں خالی جگہوں پر لکھیں گے. تو اہم جو آپ کر رہے ہیں اور پھر کھلے F، ناگزیر، F بند دیکھنا چاہتا ہوں گے، جو آپ کے پروگرام کے آخر میں، اور F اسکین F گا. تم F پڑھ کر بھی استعمال کرتے ہیں، لیکن آپ کو شاید نہیں کرنا ہے کر سکتے ہیں کہ میں سب کچھ - تم نے ختم نہیں ہو کہ ضرورت ہے. F اسکین F ہے جو آپ کو ختم لغت کو سکین کا استعمال کرتے ہوئے جا رہے ہیں. اور تاکہ آپ کو حل کرنے کے لئے کوڈ کی ضرورت نہیں ہے، صرف اور پسند چھدم کوڈ اپنا راستہ کی کوشش کریں ایک حل اور پھر ہم اس بارے میں بات کریں گے. اور اصل میں، جب میں نے پہلے ہی ان نے تمہیں دیا تھا، آپ کوئی بھی ٹرمینل یا آپ کے آلے کے شیل میں اگر جاتے ہیں، میں کریں گے - عام طور پر میں - اگر آپ نے ابھی تک نہیں کیا ہے، میں اگر آپ کو کلاس میں کیا نہیں جانتے، لیکن مرد، تو آدمی کے صفحات، بہت زیادہ کسی بھی تقریب میں تلاش کرنے کے لئے بہت مفید ہیں. تو مجھے کیا کرنا، پسند، آدمی F کر سکتے ہیں، اسکین F. یہ اب کے افعال میں سے اسکین F خاندان کے بارے میں معلومات ہے. میں اس آدمی ایف، کھلی بھی، اور اس کے وزٹرز کا ریکارڈ رکھا جائے گا. میرے اس کی تفصیلات دے دونگا سکتا ہے. اگر ایسا ہے تو آپ کو معلوم ہے کہ آپ کیا تقریب کا استعمال کرتے ہوئے، یا کر رہے ہیں کہ آپ نے کوڈ پڑھ رہے ہو اور آپ کو کچھ تقریب دیکھتے ہیں اور تم جیسے، "یہ کیا کرتا ہے؟" آدمی اس تقریب کا نام ہے. عجیب مثالوں کی ایک جوڑے ہیں جہاں آپ کا کہنا ہے کہ ہو سکتا ہے اچھا لگتا ہے. کہ تقریب میں، نام، یا 3 آدمی اس تقریب کا نام، 2 آدمی لیکن آپ کو صرف کہ اگر آدمی تقریب کا نام پہلی بار کام نہیں ہوتا ہے. [Student کی] تو میں نے انسان کو کھلی کے لئے کا صفحہ پڑھ رہا ہوں، لیکن میں نے کس طرح اس پروگرام کو استعمال کرنے کے لئے اب بھی الجھن میں ہوں. ٹھیک ہے. آدمی کے صفحات کی ایک بہت مفید سے کم ہیں. وہ زیادہ مفید ہو، اگر آپ کے پاس پہلے سے ہی پتہ ہے کہ وہ کیا کرتے اور اس کے بعد آپ نے ابھی دلائل یا کچھ اور کے حکم کو یاد کرنے کی ضرورت ہے. یا وہ آپ کو ایک عام جائزہ دے، لیکن ان میں سے کچھ بہت بھاری ہو سکتا ہے. چ اسکین F کی طرح، بھی. یہ آپ کو ان کے افعال میں سے سب کے لئے کے بارے میں معلومات فراہم کرتا ہے، اور سطر نمبر 1 یہاں ذیل کہنا ہے، "F اسکین F سٹرنگ نقطہ یا سلسلے سے پڑھتا ہے." F کھول لیکن لہذا، ہم F کھلا کیسے استعمال کریں گے؟ ایک ایسا پروگرام ہے جس سے فائل کرنے کے لئے کی ضرورت ہے کے خیال I / O یہ ہے کہ آپ پہلے فائل کو کھولنے کے لئے آپ کے ساتھ کام کرنا چاہتے ہیں کی ضرورت ہے، لامحالہ اور اس فائل سے چیزیں پڑھیں اور ان کے ساتھ چیزیں کرنا. F کھلا ہے جو ہم فائل کو کھولنے کے لئے استعمال کرتے ہیں. بات ہم واپس ملے، تو ہم کس فائل کو کھولنے کے چاہتے ہیں، یہ ہمیں دیتا ہے - یہاں میں اس کا کہنا ہے کہ "/ صارف / حصہ / dict / الفاظ ہے." اس فائل میں ہے کہ ہم پر کھول کرنا چاہتے ہیں، اور ہم نے اسے کھولنے کے لئے چاہتے ہیں - ہم واضح طور پر وضاحت چاہے ہم یا اسے لکھ اگر ہم پر کھول کرنا چاہتے ہیں پڑھنا بنانا چاہتے ہیں. مجموعے اور سامان کے ایک جوڑے کی ہے، لیکن ہم نے پڑھنے کے لیے اس کو کھولنے کے چاہتے ہیں. ہم فائل سے پڑھنے کے لئے چاہتے ہیں. تو اس کی واپسی کرتا ہے؟ یہ ایک فائل ہے ستارہ (*) واپس، اور میں متغیر F میں سب کچھ * دکھائیں گے، پھر یہ کہ اس سے پوائنٹر ہے، لیکن ہم اشارہ کے ساتھ نمٹنے کے لئے نہیں کرنا چاہتا. آپ F کے بارے میں سوچ کر سکتے ہیں کے طور پر، F اب متغیر آپ فائل کی نمائندگی کرنے کے لئے استعمال کرنے کے لئے جا رہے ہیں. تو اگر آپ فائل سے پڑھنے کے لئے چاہتے ہیں، آپ F سے پڑھا ہے. اگر آپ فائل کو بند کرنا چاہتے ہیں، آپ F بند. تو پروگرام کے اختتام پر جب ہم لامحالہ فائل کو بند کرنا چاہتے ہیں، ہم کیا کرنا چاہیے؟ ہم F کو بند کرنا چاہتے ہیں. تو اب آخری فائل کی تقریب ہے کہ ہم استعمال کرنا چاہتے ہیں کے لئے جا رہے ہیں اسکین F، F اسکین F ہے. اور ہے کہ وہ کیا کرتا ہے ہے اس پر میچ کے لئے ایک نمونہ کے لئے لگ فائل پر دوڑاتا ہے. کی تلاش میں آدمی یہاں کے صفحے پر، ہم int F اسکین F دیکھتے ہیں، اب کے بدلے کی قیمت کو نظر انداز کریں. پہلی دلیل فائل * ندی ہے، پہلی دلیل ہم کو منتقل کرنا چاہتے ہیں جا رہے ہیں F ہے. ہم F پر سکین کر رہے ہیں. دوسری دلیل کی شکل سٹرنگ ہے. میں آپ کو ایک کی شکل سٹرنگ ابھی دے گا. مجھے لگتا ہے کہ ہم، 127s کریں \ n، کہ غیر ضروری ہے بہت کہنے ہو. کیا اس شکل سٹرنگ ہے کے خیال ہے، اسکین F آپ پرنٹ F کے برعکس کے طور پر سوچ سکتے ہیں. تو پرنٹ F، پرنٹ، F ہم بھی شکل کے پیرامیٹر میں اس قسم کی استعمال، لیکن پرنٹ F میں جو ہم کر رہے ہیں وہ ہے - دو مساوی کو دیکھو. تو F پرنٹ ہے، اور اس اصل میں بھی ایف ایف پرنٹ، جہاں پہلی دلیل F جا رہا ہے. جب آپ F پرنٹ طرح کچھ ہم کہتے ہیں، "پرنٹ 127s N \" کر سکتے ہیں اور اس کے بعد اگر ہم اسے کچھ سٹرنگ گزر، یہ اس کے اور پھر سٹرنگ میں ایک نئی سطر کو پرنٹ کرنے کے لئے جا رہا ہے. کیا 127 کا مطلب ہے، مجھے یقین ہے ہوں، لیکن میں نے اسے اپنے آپ کو محدود کر لیا ہے کبھی نہیں، تم یہ بھی پرنٹ F میں '127 'کہنا نہیں کی ضرورت ہو گی، لیکن کیا اس کا مطلب یہ پہلے 127 حروف پرنٹ ہے. تو مجھے یقین ہے کہ معاملہ ہے ہوں. آپ کو اس کے لئے گوگل کر سکتے ہیں. لیکن میں اگلے ایک میں تقریبا مثبت ہے اس کا مطلب ہے کہ ہوں. تو یہ ہے کہ پہلے 127 حروف، ایک نئی سطر کے بعد پرنٹ. F اسکین اب F، ایک متغیر دیکھ اور یہ پرنٹ کے بجائے کچھ سٹرنگ کو دیکھنے کے لئے، اور متغیر میں طرز کو محفوظ کی جا رہا ہے. میں اصل میں ایک مختلف مثال کے طور پر میں اسکین F استعمال ہوں. تو کا کہنا ہے کہ ہم نے کچھ int تھا، X = 4 اور ہم سے بنا سٹرنگ پیدا کرنا چاہتی تھی - سٹرنگ پیدا کرنا چاہتے تھے تھا کی طرح، یہ بہت بعد میں آئے گا، کچھ جو صرف 4.jpg کی طرح ہے. تو یہ ایک پروگرام ہے جہاں آپ کو رقم انسداد پڑے گا ہو سکتا ہے، میں مقابلہ خلاصہ، اور آپ کو تصاویر کے ایک گروپ کو بچانے کے لئے چاہتے ہیں. تو آپ i.jpg، جہاں میں آپ کے لوپ میں سے کچھ iteration ہے کو بچانے کے لئے کرنا چاہتے ہیں. تو ہم اس JPEG کے لئے اس جملے کو کس طرح کر سکتا ہوں؟ اگر آپ 4.jpg پرنٹ کرنے کے لئے چاہتے تھے، ہم نے پرنٹ F،٪ d.jpg صرف کہہ سکتے، اور پھر یہ کہ JPEG کے لئے پرنٹ گی. لیکن اگر ہم سٹرنگ 4.jpg کو بچانے کے لئے کرنا چاہتے ہیں، ہم نے اسکین F کا استعمال کرتے ہیں. کے سٹرنگ تو میں سب کچھ - دراصل ہم can't - کردار، چار کے، 100 جانا. تو میں صرف 100 حروف کے کچھ صف کا اعلان کر دیا، اور یہ کہ جو ہم لامحالہ کہ JPEG ذخیرہ کرنے اندر جا رہے ہیں تو ہم اسکین F کو استعمال کرنے کے لئے جا رہی ہو، اور شکل، کہ ہم کس طرح٪ d.jpg کہیں گے کے لئے 4.jpg پرنٹ کرنے کے لئے، اس کی شکل٪ d.jpg جا رہا ہے. تو شکل٪ d.jpg ہے، جو ہم کے ساتھ٪ D تبدیل کرنا چاہتے ہیں X ہے ہے، اور اب ہم اس سٹرنگ کو کہیں جمع کرنے کی ضرورت ہے. اور جہاں ہم اس جملے کو محفوظ کرنے جا رہے ہیں کی صف میں ہے. تو کوڈ کے اس لائن کے بعد، اگر ہم متغیر S F،٪ S پرنٹ، یہ 4.jpg پرنٹ کرنے کے لئے جا رہا ہے. تو F اسکین F اب اس فائل میں لگ رہا ہے کے طور پر ایک ہی اسکین F سوائے ہے، کیا کے میں ذخیرہ کرنے کے لئے. یہ آخری دلیل کیا جا رہا ہے. دونوں کی شکل کے مطابق جیسا کہ ذیل کی کوشش میں افعال علیحدہ اسکین کی ضرورت کی "سکین F خاندان - ہم پر محفوظ کرنا چاہتے ہیں. اگر کسی بھی مقام پوائنٹس میں جمع کیے جاتے ہیں تو آپ کو واپس کر سکتے ہیں - " نہیں، ہم اچھے ہو سکتا ہے. کے وزٹرز کا ریکارڈ رکھا جائے گا. میرے ایک لمحے کے لئے لگتا ہے. تو اسکین F نہیں ہے - کیا heck تقریب ہے جو کہ اس کی ہے؟ تو اسکین F ایک عددی لے اور ڈاٹ فوٹو کر نہیں ہے. [mumbles] میں ہو رہا ہے. سٹرنگ int C. int متغیر محفوظ اس متغیر کیا ہے، یا کیا اس تقریب میں بلایا ہے. جی ہاں. That's - جی ہاں. تو کیا میں تم سے وضاحت کر رہے تھے وہ اس سے پہلے کے پرنٹ F تھا، جس - ہے جو بہت زیادہ احساس کیوں میں نے کہا کہ یہ پرنٹ F کی طرح زیادہ تھی کرتا ہے. سکین F اب بھی ہے مہربان پرنٹ F کی طرح، لیکن کے پرنٹ F کو سکین کر جا رہا ہے اور متغیر کی جگہ اور اب یہ ایک تار میں سٹور. یہ پرنٹ کرنے کے بجائے، یہ ایک تار میں ذخیرہ ہے. تو مکمل طور پر کہ نظر انداز. کیا تم پرنٹ F اس طرح کے طور پر فارمیٹ specifier اب بھی سوچ سکتے ہیں. تو اب، اگر ہم 4.jpg بات کرنا چاہتے تھے، ہم کے پرنٹ F کرنا، اس کے X گی. تو جو اسکین F کر رہا ہے - کیا آپ کے سوال پر جا رہے ہیں؟ [Student کی] میں جو ہم ابھی یہاں کیا کرنے کی کوشش کر رہے ہیں پر الجھن میں ہوں کہ JPEG کے ساتھ. کیا آپ کہ 1 مزید وقت کی وضاحت کر سکتا ہوں؟ تو یہ تھا - یہ کم F اسکین اب F relevent ہے، امید، راستے سے کسی قسم میں واپس باںدتا. لیکن کیا میں ابتدائی طور پر ظاہر ارادہ تھا - یہ اصل میں براہ راست ان [سے متعلقہ ہے؟؟ F5] آپ کے پرنٹ F کا استعمال کرتے ہوئے جا رہے ہیں، جہاں کا کہنا ہے کہ ہم نے 100 تصاویر ہیں، اور آپ شبیہ 1.jpg، 2.jpg، 3.jpg کو پڑھنے کے لئے چاہتے ہیں. تو اس لئے کہ ایسا کرنے کی، آپ F کھول کی ضرورت ہے، اور پھر آپ کو سٹرنگ ہے کہ آپ کو کھولنے کے چاہتے ہیں میں منتقل کرنے کی ہے. تو ہم 1.jpg بنانا چاہتے ہیں، سٹرنگ کہ 1.jpg ہے بنانے کے لئے کے لئے، ٪ ہم کے کرتے پرنٹ F d.jpg ہم int میں 0 = کے لئے نہیں کیا تھا. میں 40 <، میں + +. تو کے پرنٹ F٪ میں d.jpg. تو اس لائن کے بعد، اب متغیر یا کے صف 1.jpg جا رہا ہے. یا، 0.jpg، 1.jpg، 2.jpg. اور اس کے نتیجے میں ہم کھولنے، پڑھنے کے لیے ہر تصویر کر سکتے ہیں. تو اس کے پرنٹ F کرتا ہے. کیا تم نے دیکھا ہے کیا <پرنٹ F اب کر رہا ہے؟ [Student کی] ٹھیک ہے، تو یہ لے جا رہا ہے - یہ ایک سٹرنگ پیدا، something.jpg، اور پھر یہ ذخیرہ ہے. جی ہاں. یہ پیدا - اس کی ایک اور شکل سٹرنگ صرف اسکین ایف اور پرنٹ F کی طرح ہے، ہے، جہاں دوسری دلیل میں متغیرات میں سے سب اضافہ، کے طور پر میں کے خلاف ہو سکتا ہے. شاید - میرا مطلب ہے، یہ بات ہے. لیکن جو کچھ بھی دلائل کے حکم ہے. متغیرات میں سے سب کی شکل سٹرنگ میں داخل کرنے جا رہا ہے اور پھر ہمارے بفر میں سٹور، ہم کہتے ہیں کہ ایک بفر، یہ وہ جگہ ہے جہاں ہم سٹرنگ ذخیرہ کرنے کر رہے ہیں. تو ہم کے اندر ذخیرہ کرنے رہے ہیں اور صحیح طریقے سے فارمیٹ سٹرنگ،٪ D 4 کے ساتھ کی جگہ. [Student کی] متغیر صرف reassigned رکھا جائے جا F تو اگر ہم نے یہ کیا ہے؟ جی ہاں. تو ہم یہ کرنے سے پہلے اصل F بند ہو جانا چاہئے. لیکن - اور پھر بھی، اگر ایک F یہاں کھول نہیں تھے، تو پھر ہم یہ کہنے کی ضرورت ہو گی - جی ہاں. لیکن یہ ایک سو مختلف فائلوں کو کھولنے گے. ٹھیک ہے - [Student کی] لیکن ہم یا تک رسائی حاصل کرنے کے قابل نہیں کرے گی. ٹھیک ہے. تو اسکین F، F اسکین F، اسی خیال کی قسم ہے، بلکہ اس کی بجائے، بجائے ایک سٹرنگ میں ذخیرہ کرنے کا، یہ اب آپ ہیں کی طرح ہے ایک قسم اور اس سٹرنگ کے خلاف طرز کے ملاپ کے پر چل رہا ہے اور متغیر میں نتائج کو ذخیرہ کرنے. آپ کو اسکین F استعمال 4.jpg طرح کچھ زائد کا تجزیہ کرنے کے لئے، کر سکتے ہیں اور رقم int ایکس میں عددی 4 محفوظ کر سکتے ہیں. یہی ہے جو ہم کے لئے اسکین F کا استعمال کر سکتے ہیں. F اسکین F ہے کہ کمانڈ لائن میں کیا کرنے والی ہے. میں واقعی میں ہوں یقین ہے یہ وہی ہے جو CS50 لائبریری کرتا ہے. تو جب آپ کا کہنا ہے کہ، "int حاصل،" یہ پر اسکین F-ING - اسکین F جس طرح سے آپ صارف کی ان پٹ حاصل ہے. F اسکین F ایک ہی بات کیا کرنے جا رہا ہے لیکن ایک فائل کا استعمال کرتے ہوئے ختم اسکین. تو یہاں، ہم اس فائل پر سکین کر رہے ہیں. طرز پر ہم مقابلہ کرنے کی کوشش کر رہے ہیں وہ کچھ سٹرنگ ہے کہ 127 حروف طویل ہے ہے ایک نئی سطر کے بعد تو مجھے یقین ہے ہم بھی کہہ سکتے ہوں "کے میچ،" لغت میں کے بعد ہم ہو، ہم بات کی ضمانت کوئی لفظ جب تک کہ ہے، اور بھی ایف اسکین F نئی لائن میں، میں سوچتا ہوں، کوئی بات نہیں جو بند ہو جائیں گے. لیکن ہم میچ میں نئی ​​لائن شامل گے، اور - [Student کی] اگر ہم نئی لائن شامل نہیں کیا، اس ایک لفظ کے حصے نہیں ملے گا؟ یہ - ہر - ڈکشنری دیکھ - تو لغت میں، یہ ہیں ہماری تمام الفاظ کی ہے. میں سے ہر ایک میں ایک نئی سطر ہے. اسکین F اس لفظ لینے جا رہی ہے. اگر ہم نئی لائن شامل نہیں ہے، تو یہ ممکن ہے کہ اگلے اسکین F نئی لائن پڑھ گا. لیکن نئی لائن بھی شامل ہے تو نئی لائن کو نظر انداز کرے گا. لیکن ہم ایک لفظ کا حصہ کبھی نہیں ملے، کے بعد ہم ہمیشہ ایک نئی سطر میں ہیں پڑھ کر، کوئی بات نہیں کیا کریں گے. [Student کی] لیکن کیا اگر آپ cissa طرح لفظ "cissa،" کے لئے تلاش کریں. کہ یہ تلاش اور کا کہنا ہے کہ یہ ایک میچ ہے؟ لہذا ہم یہاں - اس میں پڑھنے گا - یہ اصل میں ایک اچھی بات ہے. ہم موجودہ کا استعمال کرتے ہوئے کبھی نہیں رہے ہیں - لفظ ہم کے لئے تلاش کر رہے ہیں کی پہلی کمانڈ لائن کی دلیل یہ ہے. تو سٹرنگ لفظ، = 1 argv. تو سٹرنگ ہم کے لئے تلاش کر رہے ہیں 1 argv ہے. ہم ہمارے اسکین F میں سب ایک لفظ کے لئے تلاش نہیں کر رہے ہیں. کیا ہم اسکین F کے ساتھ کر رہے تھے لغت میں ہر لفظ ہو رہی ہے، اور پھر ایک بار ہم اس لفظ ہم strcmp ان کا آپس میں موازنہ کرنے کے لئے استعمال کی جا رہے ہیں. ہم ہمارے لفظ کا آپس میں موازنہ کرنے جا رہے ہیں اور جو ہم نے ابھی اندر پڑھ تو لامحالہ، ہم اسکین fs کا ایک گروپ کرنے کو ختم کرنے جا رہے ہیں جب تک یہ صرف اس لئے ہوتا اسکین F کہ واپس آ جائیں گے - یہ ایک واپس، جب تک کے طور پر یہ ایک نیا لفظ مماثل ہے، اور یہ کچھ اور جیسے ہی لفظ سے ملنے کے لئے ناکام ہو گیا ہے واپس آ جائیں گے. ہم پوری لغت پر پڑھ رہے ہیں اور لائن کی طرف سے لائن ہر لفظ متغیر S میں ذخیرہ کرنے. اس کے بعد ہم کے ساتھ لفظ موازنہ کر رہے ہیں، اور اگر موازنہ 0 == strcmp 0 اگر ایک میچ کیا گیا تھا لانے ہوتا ہے. تو اگر یہ 0 تھی، تو پھر ہم F پرنٹ، مماثل کر سکتے ہیں، یا لفظ لغت میں ہے، یا جو کچھ بھی آپ F پرنٹ کرنے کے لئے چاہتے ہیں. اور پھر - ہم F ختم بند کرنے اور پھر نہیں چاہتا ہے. یہ چیز کی طرح ہے جو ہم کرنا چاہتے ہیں، اور ہم لغت میں لفظ کے لئے نہ صرف دیکھ رہے ہیں. تو ہم ایسا، اگر ہم ان کے پیٹرن، cissa تلاش کرنے کے لئے کرنا چاہتا تھا، جیسے تم نے پہلے کہا تھا، اگر ہم نے کہ اس انداز سے تلاش کرنے کے لئے کرنا چاہتا تھا، تو اس صورت میں ناکام گی کہ اصل میں ایک لفظ نہیں، لیکن اس کی لغت میں الفاظ میں سے ایک اس میں کیا ہوتا ہے. کیونکہ. تو اس لفظ میچ، لیکن اس لفظ کے اپسمچی ایک لفظ ہی نہیں ہے. لیکن یہ نہیں ہے کہ ہم کس طرح اس کا استعمال کر رہے ہیں، ہم ہر لفظ میں پڑھ رہے ہو اور پھر لفظ ہم اس لفظ کے ساتھ موازنہ کرتے ہیں. تو ہم ہمیشہ مکمل الفاظ کا موازنہ کر رہے ہیں. میں حتمی شکل دے دی حل بعد میں بھیج سکتے ہیں. یہ تقریبا درست جواب کی طرح ہے، مجھے لگتا ہے. [Student کی تبصرہ، unintelligible] اوہ، میں اس سے چھٹکارا سے پہلے ملا؟ چار کے، مجھے لگتا ہے کہ ہم 127 نے کہا - میں بھول جاؤ جو سب سے بڑا ہے. تو اب کے کافی ہے، ہم 128 کروں گا. ہم کچھ بھی پرنٹ کرنے کی ضرورت نہیں ہے. ہم نے اپنی فائل کو بند کرنے کی ضرورت چاہتے جا رہے ہیں، اور یہ کہ درست جواب کے بارے میں ہونا چاہئے. CS50.TV