1 00:00:00,000 --> 00:00:02,670 [Powered by Google Translate] سیکشن کے مسائل 2 ترتیب دیں: ہیکر ایڈیشن 2 00:00:02,670 --> 00:00:04,910 روب Bowden، ہارورڈ یونیورسٹی 3 00:00:04,910 --> 00:00:07,410 یہ CS50 ہے. CS50.TV 4 00:00:07,410 --> 00:00:15,770 لہذا، میں روب ہوں. میں Kirkland کے میں ایک سینئر ہوں. یہ میرا تیسرا CS50 TFing سال ہے. 5 00:00:15,770 --> 00:00:22,220 یہ پہلی بار ہے کہ ہم روایتی لیکچر انداز سیکشن سے تبدیل کر رہے ہیں ہیں، 6 00:00:22,220 --> 00:00:25,610 ، جہاں ہم جائزے کے قسم کی ہے کہ آپ درس میں ہوا تھا اور اس کے بعد تم لوگ سوال پوچھتے 7 00:00:25,610 --> 00:00:32,250 اب بہت زیادہ مسئلہ کی بنیاد پر کیا جا رہا ہے، جہاں ہم خالی جگہوں کا استعمال کرتے ہیں، اور - 8 00:00:32,250 --> 00:00:37,410 اوہ، تو خیال اس لنک میں نے آپ کو بھیجا جانے کی ہے اور اس کے بعد آپ میری جگہ میں ہو جائے گا. 9 00:00:37,410 --> 00:00:42,410 کیا کسی کو بھی ایک لیپ ٹاپ نہیں ہے؟ ٹھیک ہے. 10 00:00:42,410 --> 00:00:47,050 تو ہم اس کا استعمال کرتے ہوئے جا رہے ہیں، اور ہم مسائل کرنے جا رہے ہیں کے حصے میں رہتے ہیں 11 00:00:47,050 --> 00:00:50,740 اور ان پر بحث اور باہر figuring کہ کیا غلط ہے 12 00:00:50,740 --> 00:00:56,390 اور میں نے آپ کے کوڈ کے کچھ ھیںچو، اور میں اپنے خیالات کے بارے میں بات کر سکتے ہیں کر سکتے ہیں. 13 00:00:56,390 --> 00:01:02,140 تو کسی مشکل گیا ہے؟ 14 00:01:02,140 --> 00:01:07,000 آپ کی طرف سے بات چیت کر سکتے ہیں، مجھے معلوم ہے کہ اگر ہم اس کی وجہ نہیں پڑے گا. 15 00:01:07,000 --> 00:01:12,270 اب، گزشتہ supersection کی طرح، اگر آپ اس کلاس میں تھے، تم جانتے ہو اس کے بارے میں کیا ہے. 16 00:01:12,270 --> 00:01:19,200 P سیٹ پر ان حصوں کو ہونے جا رہا ہے. 17 00:01:19,200 --> 00:01:22,550 تو 2 P-سیٹ، ونیردیشوں، مجھے لگتا ہے کہ آپ اسے 1 P-سیٹ پر پہلے سے ہی دیکھا ہے. 18 00:01:22,550 --> 00:01:27,400 لیکن ہم 2 P-سیٹ میں ہم آج جا جا رہے ہیں کے لئے تلاش کر سکتے ہیں. 19 00:01:27,400 --> 00:01:29,460 اور آپ کو سوالات کا ایک سیکشن کو دیکھ لیں گے. 20 00:01:29,460 --> 00:01:37,530 تو یہ P سیٹ میں سے سب سے ہو جائے گا، اس سوال کے ایک حصے ہوں گے. 21 00:01:37,530 --> 00:01:41,340 اب تک ہم نے کہا ہے، "اس پر عمل کرنے کا موقع سمجھتے ہیں." 22 00:01:41,340 --> 00:01:44,940 آپ کو اس پروگرام پیش نہیں کہا جائے گا. 23 00:01:44,940 --> 00:01:48,480 کا خیال ہے کہ ان کی طرح آپ کی مدد مسئلہ سیٹ کے ساتھ شروع کرنے کے توقع کی جاتی ہے. 24 00:01:48,480 --> 00:01:53,220 میں ہیکر کے ایڈیشن پر لگتا ہے، ان میں سے ایک بہت کچھ صرف نئے، دلچسپ سیکھنے کی چیزوں کی توقع کی جاتی ہے. 25 00:01:53,220 --> 00:01:58,590 وہ براہ راست مسئلہ سیٹ پر لاگو نہیں ہو سکتا. 26 00:01:58,590 --> 00:02:01,810 اور اب ہم نہیں تم ان کے پیش کر رہے ہیں، لیکن اصول میں، 27 00:02:01,810 --> 00:02:07,480 بعد مسئلہ کے سیٹ کے لئے، آپ کو ان سے عرض کریں، اور اس طرح آپ کے حصے میں یا تو آ سکتے ہیں کر سکتے ہیں 28 00:02:07,480 --> 00:02:10,380 یا سیکشن کے جوابات حاصل کرنے کے لئے دیکھتے ہیں، یا آپ ان کو صرف اپنے آپ حاصل کر سکتے ہیں 29 00:02:10,380 --> 00:02:16,350 اگر آپ میری موجودگی سے لطف اندوز نہیں ہو رہا ہے. 30 00:02:16,350 --> 00:02:21,010 تو - مجھے لگتا ہے کہ یہ سب سے پہلے ایک ہے. 31 00:02:21,010 --> 00:02:29,280 اوہ. کے علاوہ، ہم نے بھی آپ کو سوالات کے ان حصوں کے تحت شارٹس کے بارے میں سوالات پوچھنا ہے. 32 00:02:29,280 --> 00:02:33,440 تو مجھے لگتا ہے، اصول میں، آپ کے حصے میں آنے سے پہلے ان کو دیکھنے والے کر رہے ہیں، 33 00:02:33,440 --> 00:02:38,550 لیکن یہ ٹھیک ہے اگر آپ ایسا نہیں کرتے، اور ہم نے ان پر ویسے بھی کریں گے. 34 00:02:38,550 --> 00:02:42,590 تو ہم ان کے ساتھ شروع کر سکتے ہیں: "وقت لوپ کو کس طرح کیا جبکہ ایک لوپ سے مختلف ہے؟ 35 00:02:42,590 --> 00:02:46,210 مؤخر الذکر جب خاص طور پر مفید ہے؟ " 36 00:02:46,210 --> 00:02:49,390 تو کسی - 37 00:02:49,390 --> 00:02:52,730 [Student کی] کیا جبکہ لوپ کم از کم ایک بار ہمیشہ پھانسی گا. 38 00:02:52,730 --> 00:03:02,950 جی ہاں. تو یہ فرق ہے. ایک وقت لوپ - I'll صرف اسے یہاں کرتے ہیں - جبکہ لوپ، ہم شرط ہے 39 00:03:02,950 --> 00:03:19,760 یہیں، جبکہ ایک کیا جبکہ آپ کو ایک شرط ہے نہیں ہے جب تک ہم یہاں ملتا ہے. 40 00:03:19,760 --> 00:03:24,130 اور ایسا ہے، تو جب آپ کے پروگرام پر عمل، اور دیر لوپ ہو جاتا ہے، 41 00:03:24,130 --> 00:03:26,380 اسے فوری طور پر چیک کرتا ہے اگر یہ شرط سچ ہے. 42 00:03:26,380 --> 00:03:30,710 اگر اس کی حالت درست نہیں ہے، یہ ختم ہو صرف لوپ مکمل طور پر جائے گا. 43 00:03:30,710 --> 00:03:34,390 کیا جبکہ لوپ، کے طور پر پروگرام پر عمل کر رہا ہے، "کیا." ہو جاتا ہے 44 00:03:34,390 --> 00:03:37,920 کچھ بھی نہیں اس وقت ہوتا ہے، صرف قتل جاری ہے. 45 00:03:37,920 --> 00:03:42,690 پھر جب وہ "جبکہ" مار دیتی ہے اگر حالت درست ہے، اس لوپ اور اسے دوبارہ کرنا کی حمایت کریں گے 46 00:03:42,690 --> 00:03:46,730 اور بار بار تک حالت سچا ہے اور تو کے ذریعے آتا ہے نہیں ہے. 47 00:03:46,730 --> 00:03:50,600 لہذا، فرق کیا جا رہا ہے، کہ یہ بہت شروع سے ٹھیک ہوں. 48 00:03:50,600 --> 00:03:56,770 ایک بار یہ ضروری executes اور پھر زیادہ وقت پھانسی اگر حالت اب بھی سچ ہے. 49 00:03:56,770 --> 00:04:03,720 تو دیر لوپ صرف ایک بار کرنا، یا گا - جبکہ لوپ - ہم اس کی ضرورت نہیں کر سکتے ہیں، 50 00:04:03,720 --> 00:04:07,900 جیسے ہی ہم اسے حاصل کرنے کے لئے سے، اگر شرط باطل ہے، ہم اس پر صرف پر کریں گے. 51 00:04:07,900 --> 00:04:11,770 جبکہ جبکہ لوپ، ہم ایک بار پھانسی، ضروری گا. 52 00:04:11,770 --> 00:04:14,560 اس کے بعد، جب ہم حالت حاصل کرنے کے لئے، ہم یہ چیک کریں اگر یہ سچ ہے یا جھوٹ ہے. 53 00:04:14,560 --> 00:04:19,790 اگر یہ سچ ہے، ہم اسے دوبارہ کروں گا، اگر یہ غلط ہے، تو ہم جاری رکھیں گے. 54 00:04:19,790 --> 00:04:24,680 تو جب آخرالذکر خاص طور پر مفید ہے؟ 55 00:04:24,680 --> 00:04:31,190 تو میں نے 4 سال کی مکمل، 3 سال، جو کچھ بھی میں یہ کہہ سکتے ہو، 56 00:04:31,190 --> 00:04:38,780 کہ میں پروگرامنگ، میں اس کا استعمال کیا ہے، کی طرح 10 بار کے تحت،. 57 00:04:38,780 --> 00:04:43,140 اور شاید ان میں سے 5 CS50 میں ہیں جب ہم loops کرتے ہیں جبکہ-شروع کر رہے ہیں. 58 00:04:43,140 --> 00:04:47,510 پھر جب آپ استعمال کرتے ہیں جبکہ loops ہے؟ 59 00:04:47,510 --> 00:04:49,510 جی ہاں - کب ہے 60 00:04:49,510 --> 00:04:53,180 [Student کی] جب آپ کو صارف کی ان پٹ، یا کچھ اور حاصل کرنے کے لئے آپ کو چیک کرنے کے لیے کرنا چاہتے ہیں کرنے کی کوشش کر رہے ہیں - 61 00:04:53,180 --> 00:04:59,700 جی ہاں. تو جبکہ loops، صارف کی ان پٹ بڑا میں سے ایک ہے. 62 00:04:59,700 --> 00:05:03,160 یہی وجہ ہے کہ سب سے پہلے جوڑے مسئلہ سیٹ پر، جب آپ صارف سے پوچھنا چاہتے ہیں کرنا چاہتے ہیں،، 63 00:05:03,160 --> 00:05:08,520 "مجھے ایک تار دے دو،" کیا تم جاری رکھیں جب تک کہ آپ اس سٹرنگ کو حاصل نہیں کر سکتے. 64 00:05:08,520 --> 00:05:12,980 اور اس لئے تم، ضروری، سٹرنگ کے لئے کم از کم ایک بار سے پوچھنا کی ضرورت ہے. 65 00:05:12,980 --> 00:05:16,950 لیکن اس وقت اگر وہ کچھ برا کا جواب، تو آپ لوپ پر واپس کی ضرورت ہے اور پھر سے پوچھنا. 66 00:05:16,950 --> 00:05:20,810 لیکن دوسرے صارف کی ان پٹ سے، یہ بہت کم ہے کہ میں ایک مقدمہ کا سامنا 67 00:05:20,810 --> 00:05:27,170 میں فندی جہاں "کم از کم ایک بار" کرنا چاہتے ہیں لیکن ممکنہ طور پر زیادہ ہے. 68 00:05:27,170 --> 00:05:33,370 سوالات یا - کیا کسی نے کیا جبکہ لوپ کہیں اور استعمال کیا جاتا ہے؟ 69 00:05:33,370 --> 00:05:36,780 ٹھیک ہے. تو اگلے ایک ہے، "شناخت کنندہ کیا پہلے سے نہ سوچا ہے 70 00:05:36,780 --> 00:05:43,310 عام طور پر اس بات کی نشاندہی اگر بجنا کی طرف سے outputted؟ " 71 00:05:43,310 --> 00:05:47,380 تو کس قسم کی کوڈ کے حاصل کرنے کے لئے، میں لکھ سکتے تھے اگھوشیت شناخت کنندہ؟ ' 72 00:05:47,380 --> 00:05:49,550 [] Student کی یہ X = 2؟ 73 00:05:49,550 --> 00:05:52,650 تو ہم نے اسے یہاں میں صرف کوشش کر سکتے ہیں، X = 2. 74 00:05:52,650 --> 00:06:04,830 ہم اس چلانے گے - اوہ، میں اس پر کلک نہیں کیا. ٹھیک - تو ہم یہاں حاصل کریں. 75 00:06:04,830 --> 00:06:07,100 "اگھوشیت شناخت کنندہ ایکس کا استعمال کریں." 76 00:06:07,100 --> 00:06:11,610 تو وہ اگھوشیت شناخت کنندہ، متغیر ہے. 77 00:06:11,610 --> 00:06:13,910 یہ ایک متغیر ایک شناخت کنندہ بار بار فون کروں گا. 78 00:06:13,910 --> 00:06:17,300 تو معلوم نہیں یہ واقعی میں ایک متغیر ہے ہو سکتا ہے، یہ معلوم نہیں ہے کہ یہ کیا ہے. 79 00:06:17,300 --> 00:06:19,380 تو یہ ایک شناخت کنندہ ہے. 80 00:06:19,380 --> 00:06:26,060 کیوں تو یہ پہلے سے نہ سوچا ہے؟ جی ہاں. 81 00:06:26,060 --> 00:06:32,190 تو اصطلاحات، ایک متغیر کا اعلان صاف ہو جائے 82 00:06:32,190 --> 00:06:37,360 جب آپ کو "int X" یا "سٹرنگ Y،" جو کچھ بھی کہتے ہیں کہ ہے. 83 00:06:37,360 --> 00:06:41,910 متغیر کی، ابتدا، یا متغیر کی تفویض، 84 00:06:41,910 --> 00:06:44,510 جب بھی آپ کا کہنا ہے کہ "X = 2" ہے. 85 00:06:44,510 --> 00:06:52,950 تو ہم علیحدہ اقدامات میں ان کر سکتے ہیں، int X، X = 2، تک - - ہم یہاں میں سامان کا ایک گروپ کر سکتے ہیں 86 00:06:52,950 --> 00:07:00,350 لیکن جب تک یہ لائن ہوتا ہے، ایکس بھی، غیر ابتدا شدہ ہے لیکن اس نے اعلان کر دیا گیا ہے. 87 00:07:00,350 --> 00:07:06,760 اور اس طرح ہم Line 1 میں ظاہر ہے، کرتے ہیں اور اب ہم نے قرار دیا اور ابتدا کر رہے ہیں کر سکتے ہیں. 88 00:07:06,760 --> 00:07:10,730 سوال؟ 89 00:07:10,730 --> 00:07:18,390 اور آخر میں، "کیوں کیسر صفر ہے بہت محفوظ نہیں؟" 90 00:07:18,390 --> 00:07:23,830 سب سے پہلے تو، کسی کو بھی یہ کہنا چاہتے کیسر صفر کیا ہے؟ 91 00:07:23,830 --> 00:07:28,100 [Student کی] کیسر صفر صرف یہ ہے کہ آپ نقشے، آپ کو ہر خط میں منتقل، 92 00:07:28,100 --> 00:07:34,420 حروف کی ایک مخصوص تعداد میں ختم جاتے ہیں، اور اس سے زیادہ واپس منتقل، اور یہ بہت محفوظ نہیں ہے کیونکہ 93 00:07:34,420 --> 00:07:42,260 صرف 26 ممکن اختیارات ہیں اور تم ان میں سے 1 سے ہر ایک کی کوشش کی ہے جب تک کہ آپ اسے حاصل ہے. 94 00:07:42,260 --> 00:07:45,470 اوہ. لہذا میں نے دوبارہ چاہئے؟ 95 00:07:45,470 --> 00:07:51,600 کیسر صفر، it's - میرا مطلب ہے، تم اس کے ساتھ ہے کہ آپ مسائل پر نمٹنے جائے گی - 96 00:07:51,600 --> 00:07:56,110 یا میں مسئلہ سیٹ کہ ہیکر ایڈیشن پر نہیں ہے کے سٹینڈرڈ ایڈیشن لگتا ہے. 97 00:07:56,110 --> 00:08:01,550 تو مسئلہ سیٹ کے سٹینڈرڈ ایڈیشن پر، آپ کی طرح، ایک پیغام ملتا ہے "ہیلو دنیا" 98 00:08:01,550 --> 00:08:08,410 اور 6 کی طرح آپ کو بھی ایک بڑی تعداد ہے، اور آپ اس پیغام کو لے، اور ہر انفرادی کردار 99 00:08:08,410 --> 00:08:11,310 آپ اس حروف تہجی میں 6 پوزیشن کی طرف سے باری باری دکھائے گا. 100 00:08:11,310 --> 00:08:16,560 تو 'H' ہیلو میں ہو جائیں گے H-I-J-K-L-M (ن) کے. 101 00:08:16,560 --> 00:08:19,600 تو پہلی خط (ن) ہو جائے گی. ہمیں ای کے ساتھ ایک ہی بات کرتے ہیں. 102 00:08:19,600 --> 00:08:23,530 اگر ہم ایک ہیں،، Z یا کچھ اور، تو پھر ہم واپس ارد گرد لپیٹ کرنے کے لئے 'ایک. 103 00:08:23,530 --> 00:08:29,280 لیکن ہر کردار cycled حروف تہجی میں 6 حروف کے بعد ہو جاتا ہے، اور یہ بہت محفوظ نہیں ہے 104 00:08:29,280 --> 00:08:35,440 کے بعد کس طرح کئی طریقوں سے آپ کو ایک خط لپیٹ سکتا ہے کے لئے صرف 26 امکانات ہیں. 105 00:08:35,440 --> 00:08:42,919 تو آپ کو ان میں سے 26 سب صرف کرنے کی کوشش اور ایک کافی وقت تک پیغام کے لئے شاید کر سکتے ہیں، 106 00:08:42,919 --> 00:08:46,860 صرف ان ممکن 26 چیزوں کے 1 واضح ہونے جا رہا ہے، 107 00:08:46,860 --> 00:08:50,300 اور واضح بھی اصل پیغام جا رہا ہے. 108 00:08:50,300 --> 00:08:56,240 تو اس نے بالکل کچھ خفیہ کاری کا ایک بہت اچھا طریقہ نہیں ہے. 109 00:08:56,240 --> 00:08:59,070 ان شارٹس پر غیر متعلقہ، "ایک تقریب میں کیا ہے؟" 110 00:08:59,070 --> 00:09:03,370 تو کیا ایک تقریب ہے؟ جی ہاں. 111 00:09:03,370 --> 00:09:11,640 [Student کی] یہ کوڈ کا ایک علیحدہ حصہ ہے کہ آپ کے ذریعے جانے کے لئے اس کے بعد جو کچھ بھی کی واپسی کی قیمت حاصل کال کر سکتے ہیں کی طرح ہے. 112 00:09:11,640 --> 00:09:18,160 جی ہاں. بھی صرف اگلے ایک جواب دے کر یا بار بار - تو میں اسے بھی اگلے جواب دے کر جواب دونگا. 113 00:09:18,160 --> 00:09:22,410 تم افعال کی بجائے استعمال کرتے ہیں صرف کاپی اور پیسٹ کوڈ ختم کر سکتے ہیں اور پھر. 114 00:09:22,410 --> 00:09:27,200 بس اس کوڈ، ایک fuction میں ڈال، اور پھر آپ کو تقریب کہہ سکتے ہیں 115 00:09:27,200 --> 00:09:29,870 آپ کو جہاں بھی ہے کاپی اور چسپاں. 116 00:09:29,870 --> 00:09:33,350 تو افعال مفید ہیں. 117 00:09:33,350 --> 00:09:35,860 تو اب ہم اصل مسائل کا سامنا کروں گا. 118 00:09:35,860 --> 00:09:46,490 سب سے پہلے ایک ہے. تو پہلے ایک کی خیال ہے، آپ اسے ایک تار کے پاس، اور قطع نظر - 119 00:09:46,490 --> 00:09:52,060 یا یہ تمام چھوٹے کہتا ہے؟ یہ تمام چھوٹے نہیں کرتا. 120 00:09:52,060 --> 00:09:57,730 تو پیغام کو کچھ بھی ہو، کر سکتے ہیں اور - اوہ، نہیں. یہ کرتا ہے. 121 00:09:57,730 --> 00:10:01,610 "آپ کو سادگی کے لیے فرض ہے کہ صارف صرف چھوٹے حروف اور خالی جگہیں ان پٹ کر سکتے ہیں" 122 00:10:01,610 --> 00:10:08,180 تو ہم اسے صرف چھوٹے حروف کے ساتھ ایک پیغام کے پاس اور پھر ہم متبادل 123 00:10:08,180 --> 00:10:15,450 بڑے اور چھوٹے کے درمیان میں سب کچھ - ہم سٹرنگ بڑے اور چھوٹے، باری تبدیل. 124 00:10:15,450 --> 00:10:22,920 لہذا اس سے پہلے کہ ہم آپ کو ایک بھی مسئلہ میں کودو دوسری دے، 125 00:10:22,920 --> 00:10:32,420 پہلی بات یہ ہے کہ ہم کیا کرنے کی ضرورت ہے کیا ہے؟ 126 00:10:32,420 --> 00:10:36,900 اوہ، میں کیا صرف کیا کلک کریں؟ اوہ، میں نے صرف یہاں میں ایک ای میل کے پر کلک کیا ہے. 127 00:10:36,900 --> 00:10:42,870 تو پہلی بات ہم کیا کرنے کی ضرورت ہے - میں غلط ایک کو دیکھ رہا ہوں؟ 128 00:10:42,870 --> 00:10:49,320 یہ یہ ایک کا حصہ ہے؟ 129 00:10:49,320 --> 00:10:51,320 نہیں، وہ اب بھی وہاں ہیں، تاہم. 130 00:10:51,320 --> 00:10:55,160 ٹھیک ہے، اب بھی یہاں ہے. 131 00:10:55,160 --> 00:11:03,160 اب ہم فرض نہیں کر سکتے ہیں -؟ جی ہاں. ہم یہ فرض نہیں ہے کہ یہ صرف چھوٹے اور خالی جگہوں کر سکتے ہیں. 132 00:11:03,160 --> 00:11:07,770 تو اب ہم حقیقت یہ خط میں کہا گیا ہے کہ جو کچھ ہم نے انہیں کرنا چاہتے ہیں کر سکتے ہیں کے ساتھ نمٹنے کے لئے ہے. 133 00:11:07,770 --> 00:11:11,910 اور تو پہلی چیز جو ہم کرنا چاہتے ہیں صرف پیغام حاصل ہے. 134 00:11:11,910 --> 00:11:19,790 ہمیں صرف ایک تار کو حاصل کرنے کے لئے کی ضرورت ہے، سٹرنگ ایس GetString =، ٹھیک ہے. 135 00:11:19,790 --> 00:11:24,890 اب اس مسئلہ کرنے کے طریقوں میں سے ایک جوڑے کی ہیں. 136 00:11:24,890 --> 00:11:29,840 لیکن ہم bitwise آپریٹرز کو یہاں سے استعمال کرنا چاہتے ہیں کے لئے جا رہے ہیں. 137 00:11:29,840 --> 00:11:35,280 وہاں وہ لوگ ہیں جو یا تو supersection میں نہیں تھے، 138 00:11:35,280 --> 00:11:37,480 یا کچھ اور، جانتے ہیں اور نہیں bitwise آپریٹرز کیا ہیں؟ 139 00:11:37,480 --> 00:11:41,710 یا کہ وہ کس طرح کسی بھی طرح میں ASCII سے متعلق ہے؟ 140 00:11:41,710 --> 00:11:45,650 [Student کی] میں supersection میں نہیں تھا، لیکن میں جانتا ہوں کہ bitwise آپریٹرز ہیں. 141 00:11:45,650 --> 00:11:49,560 ٹھیک ہے. تو پھر میں ان کی بنیادی باتیں میں جانے کے لئے نہیں ہے، لیکن میں اس بات کی وضاحت کریں گے 142 00:11:49,560 --> 00:11:51,830 جو ہم یہاں استعمال کرنا چاہتے ہیں کے لئے جا رہے ہیں. 143 00:11:51,830 --> 00:11:59,680 تو 'A': دارالحکومت ایک بائنری کی نمائندگی کی تعداد 65 ہے. 144 00:11:59,680 --> 00:12:07,560 میں بس کو دیکھنے کے لئے جا رہا ہوں - 41 01000001 جا رہا ہے. 145 00:12:07,560 --> 00:12:14,170 تو اس دشملو میں 65 ہونا چاہئے، لہذا یہ کردار دارالحکومت A. بائنری نمائندگی کرتا ہے 146 00:12:14,170 --> 00:12:19,440 اب، کردار کی بائنری نمائندگی 'ایک' چھوٹے 147 00:12:19,440 --> 00:12:33,350 ایک ہی بات، تقریبا جا. ہے - 6، جی ہاں. یہ ٹھیک ہے. 148 00:12:33,350 --> 00:12:37,670 تو بائنری دارالحکومت A، بائنری چھوٹے '. 149 00:12:37,670 --> 00:12:43,940 تو دیکھیں گے کہ ایک اور 'اس ایک سا ہے. کے درمیان فرق 150 00:12:43,940 --> 00:12:49,440 اور یہ 32 بٹ، 32 نمبر کی نمائندگی سا ہوتا ہے. 151 00:12:49,440 --> 00:12:53,910 اور اس سے سمجھ میں آتا ہے کے بعد ایک 65 ہے. '97. 152 00:12:53,910 --> 00:12:56,610 ان کے درمیان فرق 32 ہے. 153 00:12:56,610 --> 00:13:03,770 تو اب ہم جانتے ہیں کہ ایک 'ایک' سے ہم A لینے کی طرف سے تبدیل کر سکتے ہیں 154 00:13:03,770 --> 00:13:09,710 اور یہ bitwise ORing کے ساتھ - 1 کی طرح لگتا ہے. 155 00:13:09,710 --> 00:13:20,900 یہ ایک OR 00100000 bitwise، ہے، اور یہ کہ ہمیں دیں گے '.' 156 00:13:20,900 --> 00:13:26,850 اور 'اے' سے ہم bitwise ANDing کی طرف سے ایک حاصل کرنے کے لئے کر سکتے ہیں 157 00:13:26,850 --> 00:13:33,700 11، اس جگہ، 11111 میں 0 کے ساتھ. 158 00:13:33,700 --> 00:13:43,840 تو یہ ہمیں تو دے بالکل وہی جو 'ایک' تھا، لیکن یہ انفرادی سا منسوخ، 159 00:13:43,840 --> 00:13:50,070 تو ہم 01000001 پڑے گا، مجھے معلوم ہے کہ اگر میں صحیح شمار نہیں ہے. 160 00:13:50,070 --> 00:13:56,750 لیکن bitwise ORing اس ٹیکنالوجی دارالحکومت سے چھوٹے حاصل کرنے کے لئے، 161 00:13:56,750 --> 00:14:02,080 اور bitwise چھوٹے سے سرمایہ حاصل کرنے کے لئے ANDing A. خصوصی نہیں ہے 162 00:14:02,080 --> 00:14:06,510 حروف کی سب، بمقابلہ K K، Z بمقابلہ Z 163 00:14:06,510 --> 00:14:10,080 ان میں سے سب صرف اس ایک بٹ کی طرف سے اختلاف جا رہے ہیں. 164 00:14:10,080 --> 00:14:16,290 اور اس طرح آپ اس کا استعمال کسی بھی چھوٹے خط سے کسی بھی دارالحکومت خط اور اس کے برعکس کرنے کے لئے تبدیل کر سکتے ہیں. 165 00:14:16,290 --> 00:14:26,670 ٹھیک ہے. اس سے ہو رہی ہے تو ایک آسان طریقہ - کے بجائے کرنے کے 166 00:14:26,670 --> 00:14:32,170 باہر لکھنا جو بھی 1011111 ہے - اس نمبر کی نمائندگی کرنے کا ایک آسان طریقہ ہے، اور یہ ایک نہیں ہے 167 00:14:32,170 --> 00:14:39,710 کہ میں supersection میں گئے، لیکن اس کی ٹلڈا (~) ایک اور bitwise آپریٹر ہے. 168 00:14:39,710 --> 00:14:42,520 کیا ~ بٹ کی نمائندگی میں دکھائی دیتی ہے. 169 00:14:42,520 --> 00:14:45,630 کی کسی بھی تعداد کے لے. 170 00:14:45,630 --> 00:14:53,130 یہ صرف کچھ بائنری تعداد ہے، اور کیا ~ ہے یہ صرف بٹس کے تمام flips. 171 00:14:53,130 --> 00:15:00,630 تو یہ 1 تھا، اب 0، 0 ہے، اب 1، 010100. 172 00:15:00,630 --> 00:15:08,320 تو یہ سب ~ کرتا ہے. اس سے چھٹکارا حاصل کریں - تو 32 نمبر ہونے جا رہا ہے - 173 00:15:08,320 --> 00:15:23,320 تو 32 00100000 تعداد ہے، اور تو اس کی ~ جا رہا ہے 174 00:15:23,320 --> 00:15:29,980 یہ نمبر ہے کہ یہاں کے ساتھ میں 'ایک' ANDed. 175 00:15:29,980 --> 00:15:35,600 کیا سب نے یہ دیکھا؟ جب آپ کو معلوم کرنا چاہتے ہیں یہ بہت عام ہے، 176 00:15:35,600 --> 00:15:40,740 بعد کی چیزیں ہیں کہ ہم دیکھ سکتا ہے جب اگر ہم دیکھنا چاہتے ہیں کے لئے - 177 00:15:40,740 --> 00:15:44,710 یا ہم 1 کے علاوہ سب کچھ ہے، ہر ایک سا سیٹ چاہتے ہیں 178 00:15:44,710 --> 00:15:47,910 آپ سا ہے کہ ہم نے مقرر نہیں کرنا چاہتے ~ کرنا دیتے ہیں. 179 00:15:47,910 --> 00:15:53,090 تو تو ہم 32 بٹ سیٹ کی ضرورت نہیں ہے، ہم نے 32 کے ~ کرتے ہیں. 180 00:15:53,090 --> 00:15:57,790 ٹھیک ہے. تو ہم ان میں سے سب کو یہاں استعمال کر سکتے ہیں. 181 00:15:57,790 --> 00:16:03,000 ٹھیک ہے، تو یہ ٹھیک ہے اگر آپ نہیں کر رہے ہیں، ہم آہستہ آہستہ ایک ساتھ مل کر چلنا گے، 182 00:16:03,000 --> 00:16:11,870 یا اس سے زیادہ چل، تو - اس کے ذریعے. اس سے چلو. 183 00:16:11,870 --> 00:16:20,790 تو ہم اپنے سٹرنگ ہے، اور ہم اس سٹرنگ میں ہر کردار میں لوپ چاہتے ہیں اور اس سے کچھ ہیں. 184 00:16:20,790 --> 00:16:26,710 تو ہم کس طرح ایک تار پر لوپ؟ ہم کیا استعمال کرنا چاہئے؟ 185 00:16:26,710 --> 00:16:30,980 میں اسے یہاں نہیں جا رہا ہوں. جی ہاں. 186 00:16:30,980 --> 00:16:42,940 تو میں اپنے iterator ہے، اور اس نے یہ کہا، لیکن مجھے کس طرح پتہ سٹرنگ میں کتنے حروف ہیں؟ 187 00:16:42,940 --> 00:16:47,030 Strlen (زبانیں)، تو میں + +. 188 00:16:47,030 --> 00:16:49,860 تو جو میں نے یہاں کیا ہے کام کرنے کے سب سے بہتر طریقہ نہیں ہے. 189 00:16:49,860 --> 00:16:51,860 کیا کسی کو پتہ ہے کیوں؟ 190 00:16:51,860 --> 00:16:55,290 کیونکہ آپ سٹرنگ ہر ایک وقت کی زبان کی جانچ پڑتال کر رہے ہیں. 191 00:16:55,290 --> 00:17:06,859 تو ہم strlen منتقل کرنے کے لئے کرنا چاہتے ہیں جا رہے ہیں، میں نے کہہ سکتے ہو، int لمبائی، = strlen (زبانیں) 192 00:17:06,859 --> 00:17:11,900 اور اس کے بعد کی حد <، اور آپ کی صورت میں یہ نہیں دیکھا سے پہلے 193 00:17:11,900 --> 00:17:20,410 میں int میں = 0 طوالت = strlen (زبانیں) بھی کر سکتے ہیں 194 00:17:20,410 --> 00:17:25,010 اور اس طرح یہ کسی حد تک بہتر ہے، اب جب میں نے گنجائش محدود ہے 195 00:17:25,010 --> 00:17:29,150 متغیر لمبائی کی صرف لوپ 'کے لئے' کے بجائے اس سے پہلے یہ اعلان 196 00:17:29,150 --> 00:17:34,990 اور یہ کہ وہ ہمیشہ سے موجود ہے، اور اس معاملے میں تمہیں پکڑ کیوں یہ بری بات ہے نہیں کیا، 197 00:17:34,990 --> 00:17:39,410 یا کیوں اصل برا، it's تھا - لوپ کے لئے میں شروع. 198 00:17:39,410 --> 00:17:43,380 میں حالت کی جانچ پڑتال. کیا میں کے کی لمبائی <؟ 199 00:17:43,380 --> 00:17:46,790 لہذا کے کی لمبائی، کے ساتھ "ہیلو" پورے وقت کام. 200 00:17:46,790 --> 00:17:49,670 کی تو حد کے، H-L-L O-. لمبائی 5 ہے. 201 00:17:49,670 --> 00:17:57,580 تو تو میں = 0 طوالت 5 ہے، لہذا میں 5 <نہیں ہے، لوپ جاری ہے. 202 00:17:57,580 --> 00:18:02,750 اس کے بعد ہم پھر سے جانا. ہم حالت چیک کرنے کے لیے. ہے، میں ہیلو کی لمبائی <؟ 203 00:18:02,750 --> 00:18:08,390 تو ہیلو کی لمبائی چیک کرنے کے لیے. ایچ ای-L-L O-. 5 ہے، میں 5 <نہیں ہے، تو ہم پھر سے جاری ہے. 204 00:18:08,390 --> 00:18:13,330 تو ہم حساب، ہم ہیلو گنتی کر رہے ہیں لوپ میں سے ہر ایک iteration کے لئے، 205 00:18:13,330 --> 00:18:17,380 بھی سوچا کہ یہ کبھی تبدیل نہیں ہے، یہ ہمیشہ 5 جا رہا ہے. 206 00:18:17,380 --> 00:18:22,530 تو ہم سامنے 5 یاد ہے، اور اب سب کچھ اچھا ہے. 207 00:18:22,530 --> 00:18:24,990 تو پورے سٹرنگ پر iterating. 208 00:18:24,990 --> 00:18:31,470 ہم سٹرنگ میں سے ہر ایک کردار کے لئے کیا کرنا چاہتے ہیں؟ 209 00:18:31,470 --> 00:18:38,510 [Student کی بولنے، unintelligible] 210 00:18:38,510 --> 00:18:47,000 جی ہاں. تو، اگر کردار غیر اکشراتمک ہے، تو ہم صرف اس پر پر کرنا چاہتے ہیں. 211 00:18:47,000 --> 00:18:52,300 کیونکہ ہم صرف اکشراتمک خطوط کے بارے میں دیکھ بھال، ہم ایک نمبر استفادہ حاصل نہیں کر سکتے. 212 00:18:52,300 --> 00:19:10,850 تو ہم یہ کس طرح کر سکتے ہیں؟ ہماری حالت تو، اگر ایسا ہے تو ہم کچھ کرنا چاہتے ہیں - چیک کرنے کے لیے اگر یہ حروف تہجی کی ہے. 213 00:19:10,850 --> 00:19:14,060 تو ہم یہ کیسے چیک کر سکتا ہوں؟ 214 00:19:14,060 --> 00:19:18,720 [Student کی] آپ کو تقریب کا استعمال کر سکتے ہیں. الفا ہے. 215 00:19:18,720 --> 00:19:23,160 یہ ہے کہ ان میں سے کسی بھی، یا کسی میں شامل طرح char.h، یا کچھ میں شامل ہیں؟ 216 00:19:23,160 --> 00:19:32,710 ، تو ہم کے [میں] - چلو الفا فنکشن ہے، اور واضح استعمال کرنے کے لئے استعمال نہ کریں 217 00:19:32,710 --> 00:19:40,460 یاد ہے کہ کے کے آٹھویں کردار ہے، کہ ایک تار کرداروں میں سے ایک صف ہے، 218 00:19:40,460 --> 00:19:43,180 کے کے آٹھویں کردار ہے. 219 00:19:43,180 --> 00:19:49,280 اب، اگر یہ سرمایہ کا خط ہے، ہم جانتے ہیں کہ یہ ایک مخصوص حد میں ہونا ضروری ہے. 220 00:19:49,280 --> 00:19:54,370 اور وہ کیا رینج ہے؟ 221 00:19:54,370 --> 00:20:07,860 جی ہاں. تو اگر [میں] ≥ 65، اور S [میں] 90 ≤ ہے، بجائے میں کیا کرنا چاہیے؟ 222 00:20:07,860 --> 00:20:18,470 جی ہاں. تو آپ بالکل بھی نہیں کبھی کچھ ASCII اقدار کو جاننا چاہئے کی ضرورت ہے. 223 00:20:18,470 --> 00:20:25,640 65 نمبر، 90، 97 اور 102، یا جو کچھ بھی ہے کبھی نہیں لگتا ہے. 224 00:20:25,640 --> 00:20:32,470 آپ کی ضرورت نہیں ہے - 112 - آپ کو بالکل ان جاننے کی ضرورت نہیں ہے. یہ غلط بھی ہے. 225 00:20:32,470 --> 00:20:41,940 صرف ایک اقتباس حروف، ایک اقتباس constants کا استعمال کریں. 'A' اور 90 سے کم 'Z.' 226 00:20:41,940 --> 00:20:47,930 اور یہ نمایاں طور پر بہتر ہے - مجھے نہیں معلوم کہ میرے سر کے سب سے اوپر ہے کہ Z 90. 227 00:20:47,930 --> 00:20:52,690 میں نے میرے سر کے سب سے اوپر ہے کہ 'Z' کے دارالحکومت Z. ہے جانتے ہیں 228 00:20:52,690 --> 00:21:02,100 خفی کے لئے جب تک کے طور پر یہ دارالحکومت Z، یا ہم سرمایہ کی حد میں ہے چیک کر سکتے ہیں، 229 00:21:02,100 --> 00:21:17,010 یا پھر اگر اس کی حد میں ہے ≥ 'اے' اور ≤ Z. 230 00:21:17,010 --> 00:21:19,010 جس سے کہ ہماری حالت ہے. 231 00:21:19,010 --> 00:21:22,520 کیا ہے کہ ان چیزوں کو کرنے کے لئے سٹائل ہوتی ہے. 232 00:21:22,520 --> 00:21:29,520 میں اس طرح کروں گا. 233 00:21:29,520 --> 00:21:31,520 اب ہمیں کیا کرنا چاہتے ہیں؟ 234 00:21:31,520 --> 00:21:39,530 ہم جانتے ہیں کہ اس خط میں ایک کردار ہے، ایک حرف ہے. 235 00:21:39,530 --> 00:21:46,270 تو ہم کہ یہ سرمایہ خط یا چھوٹے خط ہونا چاہئے کے درمیان متبادل کی ضرورت ہے. 236 00:21:46,270 --> 00:21:48,820 ہم ٹریک ہے جس کے بارے میں ہم یہ چاہتے ہیں کس طرح رکھ سکتا ہوں؟ 237 00:21:48,820 --> 00:21:55,520 [Student کی آواز، unintelligible] 238 00:21:55,520 --> 00:21:59,150 تو جی ہاں، لیکن آپ کے وزٹرز کا ریکارڈ رکھا چیک کرنے کے لیے ہے. 239 00:21:59,150 --> 00:22:04,910 0-2 ماڈیول نے کہا گیا تھا، ایک تجویز باہر پھینک دیا تھا، اور میں اس کے ساتھ اتفاق کرتا ہوں. 240 00:22:04,910 --> 00:22:11,780 نوٹس سوائے اس کے کہ جیسے - یہ معاملہ ہے؟ جی ہاں. 241 00:22:11,780 --> 00:22:18,270 یہ ہر دوسرے، لیکن ہم میں 2 ماڈیول نہیں کر سکتے ہیں، یا میں 2 MOD، کیونکہ 242 00:22:18,270 --> 00:22:22,950 نوٹس کہ ای دارالحکومت ہے اور 'ایک' چھوٹے ہے؟ لیکن ان سے الگ خلا ہے؟ 243 00:22:22,950 --> 00:22:27,150 تو وہ اسی 2 MOD، رہے ہیں، لیکن وہ مختلف مقدمات ہیں. 244 00:22:27,150 --> 00:22:29,150 [Student کی سوال، unintelligible] 245 00:22:29,150 --> 00:22:34,690 جی ہاں. تو ہم صرف ایک شمار رکھنے کے لئے جا رہے ہیں. 246 00:22:34,690 --> 00:22:38,730 ہم یہاں بھی کر اگر ہم چاہتے تھے، وہ ایک چھوٹی سی unwieldy ہو سکتا ہے 247 00:22:38,730 --> 00:22:41,300 لوپ کا اعلان کے لئے، میں اسے یہاں کریں گے. 248 00:22:41,300 --> 00:22:48,840 تو int شمار = 0 سے شروع ہوتی ہے. 249 00:22:48,840 --> 00:22:54,070 اور تو اب، میں شمار کتنے حروف تہجی حروف ہم نے ہے جا رہا ہوں. 250 00:22:54,070 --> 00:22:59,550 تو ہم لامحالہ شمار + + ہم کے بعد ایک اور حرف مل گیا کے لئے جا رہے ہیں. 251 00:22:59,550 --> 00:23:09,130 لیکن، تو اب اگر تم شمار 2 MOD کہہ رہے ہو. 252 00:23:09,130 --> 00:23:12,590 تو کیا ہوا اگر شمار 2 MOD؟ اوہ. اب میں == 0 کر دونگا. 253 00:23:12,590 --> 00:23:21,740 ہم بھی چلے جائیں گے. لہذا اگر شمار 2 MOD 0 ==، تو کیا؟ 254 00:23:21,740 --> 00:23:27,830 [طلباء جواب، unintelligible] 255 00:23:27,830 --> 00:23:32,750 تو ہم اسے بڑے کو ختم کرنے کے لئے چاہتے ہیں. 256 00:23:32,750 --> 00:23:37,520 2 مقدمات ہیں، بڑے اور چھوٹے 2 مقدمات ہیں. 257 00:23:37,520 --> 00:23:40,990 تو اگر ہم چھوٹے میں ہیں ہم اسے بڑے کرنے کی ضرورت ہے. 258 00:23:40,990 --> 00:23:43,710 اگر یہ بڑے ہے ہم کچھ کرنے کی ضرورت نہیں ہے. 259 00:23:43,710 --> 00:23:50,760 لیکن، کیا کوئی راستہ ہے - shouldn't flipped ہے - 260 00:23:50,760 --> 00:23:54,800 کہ ہم چیک کرنے کے لیے چاہے وہ بڑے یا خفی ہے بھی نہیں کی ضرورت ہے؟ 261 00:23:54,800 --> 00:24:02,240 ہم ہمیشہ اس بات کا یقین کر لیں کہ ہم بڑے حروف میں ہمیشہ ختم کرنے کا کیا کر سکتا ہوں؟ 262 00:24:02,240 --> 00:24:07,830 تو محسوس کیا ہم چھوٹے 'ایک' کے لئے کیا، اگر ہم نے اس ایک ہی عین مطابق کام کیا ہے ایک بڑے؟ 263 00:24:07,830 --> 00:24:11,900 تبدیلی کے بڑے کیا، یا قدر تبدیل کرتا ہے؟ 264 00:24:11,900 --> 00:24:23,100 جی ہاں. لہذا کسی بھی دارالحکومت خط 32 ~ کے ساتھ ANDed bitwise کہ ایک ہی بڑے کردار بننے جا رہا ہے 265 00:24:23,100 --> 00:24:29,220 کیونکہ کسی بھی بڑے کردار کے لئے 32nd سا نہیں مقرر کیا گیا ہے. 266 00:24:29,220 --> 00:24:40,920 تو اگر ہم کردار لانے کے لئے [میں]، ہم اس کے چھوٹے یا بڑے بننا چاہتے ہیں کرنا چاہتے ہیں. 267 00:24:40,920 --> 00:24:46,890 تو اگر یہ چھوٹے تھا، اب یہ ہے بڑے، اگر یہ بڑے تھے، یہ اب بھی ہے بڑے، اور یہ کہ اس. 268 00:24:46,890 --> 00:24:54,290 میں supersection میں اس نے کہا کہ: آپ 32 کا استعمال کریں اگر آپ چاہتے ہیں، لیکن میں کر 'ایک' کو ترجیح دیتے ہیں کر سکتے ہیں - ایک، 269 00:24:54,290 --> 00:25:01,150 بجائے صرف سادہ 32، کیونکہ یہ کسی دوسرے سا ہو سکتا ہے. 270 00:25:01,150 --> 00:25:03,610 32 بٹ کے بعد ان میں سے کسی، یا ہمارے پاس کافی نہیں ہوگا کر سکتے ہیں 271 00:25:03,610 --> 00:25:05,840 حروف کی سب کی نمائندگی کرنے کی تعداد. 272 00:25:05,840 --> 00:25:09,110 تو اگر آپ 32 بٹ، 64 بٹ ہو سکتا ہے، یہ 128 بٹ ہو سکتا ہے. 273 00:25:09,110 --> 00:25:13,990 ان بٹس کی کوئی سا جو بڑے اور چھوٹے کے درمیان ممتاز ہو سکتا ہے. 274 00:25:13,990 --> 00:25:18,350 مجھے پتہ ہے کہ یہ 32 بٹ ہے کی ضرورت نہیں ہونی چاہئے. 275 00:25:18,350 --> 00:25:27,130 میں اس 'ایک' کا استعمال کر سکتے ہیں - تھوڑا سا حاصل کرنے کے لئے ہے کہ دونوں کے درمیان مختلف 276 00:25:27,130 --> 00:25:33,000 جادو نمبر 32 ہے پر انحصار کرنے کی ضرورت کے بغیر. 277 00:25:33,000 --> 00:25:38,770 اور تو اب، اور شمار عجیب تھا، تو اور میں کیا کرنا چاہتے ہیں؟ 278 00:25:38,770 --> 00:25:43,920 [Student کی جوابات، unintelligible] 279 00:25:43,920 --> 00:25:45,920 [Student کی] یہ کیا ہے؟ 280 00:25:45,920 --> 00:25:49,850 میں اسے 1 دوسری میں کیا کریں گے. 281 00:25:49,850 --> 00:25:55,690 تو اب اگر میں کرنا چاہتے ہیں - میں اس بات کا یقین کر لیں کہ حرف ہے چھوٹے بنانے کے لئے چاہتے ہیں، 282 00:25:55,690 --> 00:26:04,140 اور اس لئے میں، یا 32 کی طرف سے کیا جا سکتا ہے اور 32 معنی 'ایک' - A. 283 00:26:04,140 --> 00:26:06,510 لیکن گزشتہ ایک کے طور پر ایک ہی استدلال کی طرف سے نوٹس، کہ اگر 284 00:26:06,510 --> 00:26:11,670 خط پہلے ہی چھوٹے تھا، تو ORing 32 کی طرف سے رکھتا ہے، صرف یہ چھوٹے. 285 00:26:11,670 --> 00:26:16,220 یہ اصل کردار تبدیل نہیں کیا ہے. 286 00:26:16,220 --> 00:26:19,910 لیکن اب میں نے کہا، "اگر یہ خفی ہے، صرف اس کے بارے میں بھول سے بچنے کی ضرورت نہیں ہے، 287 00:26:19,910 --> 00:26:23,650 اور اگر یہ بڑے ہے، تو پھر اسے تبدیل کریں. " 288 00:26:23,650 --> 00:26:26,900 یہ زیادہ آسان ہے ایسا ہے. 289 00:26:26,900 --> 00:26:33,190 [Student کی] چھوٹے کام سے بڑے تفریق اگر یہ 32 نہیں تھے کہ حکمت عملی گے؟ 290 00:26:33,190 --> 00:26:35,330 اگر یہ تھا، 34 یا کچھ اور کو پسند ہے؟ 291 00:26:35,330 --> 00:26:41,840 تو، آپ کو معلوم ہے کہ 2 کے درمیان فرق ہے کی ضرورت ہے - >> 1 سا. 292 00:26:41,840 --> 00:26:49,840 1 بٹ سے زیادہ ہو، جب تک کے طور پر اس عہدے سے نیچے بٹس کی سب ایک جیسے ہیں کر سکتے ہیں. 293 00:26:49,840 --> 00:26:58,500 تو ہم کم از کم 26 حروف کی ضرورت ہے - یا 26 حروف ہیں. 294 00:26:58,500 --> 00:27:04,590 تو ہم اختلاف کی نمائندگی کرنے کے لئے کم از کم 26 کی تعداد کی ضرورت ہے - 295 00:27:04,590 --> 00:27:07,650 ایک اور 'ایک' میں کم از کم 26 ہونا ضروری ہے، کے درمیان فرق 296 00:27:07,650 --> 00:27:10,760 ورنہ ہم تمام دارالحکومت تعداد نہیں ہوتا کی نمائندگی کی. 297 00:27:10,760 --> 00:27:18,630 اس کا مطلب یہ ہے کہ کہ A، اگر ہم 1 شروع، ان بٹس کو استعمال کرنے کے لئے جا رہا ہے، 298 00:27:18,630 --> 00:27:23,900 ان پہلی 5 کی بٹس، Z. ذریعے سب کچھ کی نمائندگی کے تمام 299 00:27:23,900 --> 00:27:32,170 اگلے سا یہی وجہ ہے کہ اگلے بٹ، یا یہ تھوڑا سا ہے، ایک ہے کہ اور کے درمیان فرق کا انتخاب کیا ہے ہے. ' 300 00:27:32,170 --> 00:27:40,930 یہی وجہ ہے کہ میں بھی ہے، ASCII ٹیبل میں 5 چھوٹے حروف سے بڑے حروف تہجی الگ علامات ہیں. 301 00:27:40,930 --> 00:27:49,050 چونکہ وہ علامات، اضافی 5 کہ 32 لاتا ہے ان کے درمیان فرق کیا جا رہا ہے ہیں. 302 00:27:49,050 --> 00:27:51,840 [Student کی] تو ہم اسے کرتے ہیں، کیونکہ ASCII اس طرح ڈیزائن کیا گیا ہے ہے. 303 00:27:51,840 --> 00:27:57,280 جی ہاں. لیکن ASCII - فرق ان دونوں بٹس کی بھی ہو سکتی ہے. 304 00:27:57,280 --> 00:28:12,040 کی طرح، اگر 10000001 تھے، اور 'ایک' 11100001 - میں بھول جاتے ہیں، جو کچھ بھی ہے. 305 00:28:12,040 --> 00:28:18,100 A. - لیکن اگر وہ یہ تھے، اس کے بعد ہم اب بھی 'ایک' استعمال کر سکتے ہیں 306 00:28:18,100 --> 00:28:22,650 اب یہ صرف ایک اور 'ایک' میں اب بھی ان 2 بٹس کے درمیان کیا فرق ہے. 307 00:28:22,650 --> 00:28:32,240 مجھے لگتا ہے کہ اس نے 48 لکھا ہے. یہ 32 + 64؟ مجھے لگتا ہے کہ یہ کیا ہے؟ 308 00:28:32,240 --> 00:28:40,160 ہر ایک کردار، پسند Z اور Z، K، اور K،، 2 بٹس اب بھی ہو جائے گا 309 00:28:40,160 --> 00:28:45,160 وہ ان 2 بٹس کے علاوہ ایک ہی عین مطابق مقرر بٹس اب بھی ہوگا. 310 00:28:45,160 --> 00:28:48,870 جب تک، جو ہمیشہ سچ ہے، اس بات سے قطع نظر اگر ہم ASCII یا کسی دوسرے نظام کا استعمال کرتے ہوئے کر رہے ہیں 311 00:28:48,870 --> 00:28:53,050 ، جب تک کے طور پر صرف بٹس جو ہر کردار کے لئے مختلف ہیں کی ایک سیٹ نمبر 312 00:28:53,050 --> 00:28:55,050 تو یہ ٹھیک کام کرتا ہے. 313 00:28:55,050 --> 00:29:06,110 یہ صرف ہے کہ 32 قائم کیونکہ اس سے پہلے بھی ہم ممکنہ طور پر استعمال کر سکتے ہیں ہے. ڈاؤن لوڈ، اتارنا. >> 314 00:29:06,110 --> 00:29:14,520 میں، اگر تم نے دیکھا نہیں کیا ہے، اگر بلاک صرف ایک لائن ہے کرنے کو ترجیح دیتے ہیں، 315 00:29:14,520 --> 00:29:24,280 آپ گھوبگھرالی منحنی خطوط وحدانی کے چھٹکارا حاصل کر سکتے ہیں، تو میں ایسا کرنے کو ترجیح دیتے ہیں ہیں. 316 00:29:24,280 --> 00:29:34,010 اس کے علاوہ، آپ کو پتہ ہے کہ ہم کس طرح [میں] + = 1 طرح باتیں کر سکتے ہیں؟ 317 00:29:34,010 --> 00:29:41,090 آپ [میں] bitwise اور 32 = بھی کر سکتے ہیں 318 00:29:41,090 --> 00:29:46,400 اور bitwise یا = 32. 319 00:29:46,400 --> 00:29:51,490 کے علاوہ، 2 جدید == 0 شمار. 320 00:29:51,490 --> 00:30:00,900 تو وہ یاد ہے - میں اسے لکھ نہیں کرے گا - کسی بھی غیر صفر قدر سچ ہے، اور 0 باطل ہے. 321 00:30:00,900 --> 00:30:07,880 تو "اگر شمار 2 MOD 0 ==" کہہ رہے ہیں کے طور پر ایک ہی ہے انہوں نے کہا کہ 'اگر 2 MOD شمار نہیں. " 322 00:30:07,880 --> 00:30:11,580 میں شاید لائنز گے الٹا اور کہا، "اگر شمار MOD 2، 323 00:30:11,580 --> 00:30:15,350 یا 1، اور کرتے ہیں اور 1 نہیں "تاکہ میں نے کی ضرورت نہیں ہے." 324 00:30:15,350 --> 00:30:18,650 لیکن اس کے ساتھ کام کرتا ہے. 325 00:30:18,650 --> 00:30:25,660 اور کیا میں یہاں کیا کر سکتے ہیں؟ 326 00:30:25,660 --> 00:30:29,060 تم نے انہیں تہرا کے ساتھ جمع اگر تم چاہتے تھے، لیکن پھر سکتا ہے کہ چیزوں messier صرف تھا 327 00:30:29,060 --> 00:30:33,770 اور شاید پڑھنے مشکل، تو ہم ایسا نہیں کریں گے. 328 00:30:33,770 --> 00:30:37,330 کوئی بھی کسی بھی دوسری تجاویز ہیں؟ 329 00:30:37,330 --> 00:30:41,580 ہے کہ تمام مسئلہ کے لئے کہا ہے؟ اوہ، جی ہاں. 330 00:30:41,580 --> 00:30:51,070 تو ان خالی لائنوں کی چھٹکارا حاصل ہے، اب ہم F S،٪ پرنٹ کریں گے، ڈور کے لئے ایک ہونے کے 331 00:30:51,070 --> 00:30:56,620 ہم F پرنٹ، S گا. 332 00:30:56,620 --> 00:30:59,330 اب ہم اسے چلاتے ہیں. کیا میں نے کچھ غلط کیا؟ 333 00:30:59,330 --> 00:31:03,200 وہ ایک \ "؛ میں ایک (ن) کی ضرورت ہے. 334 00:31:03,200 --> 00:31:07,840 ٹھیک ہے. اب ہم اسے چلانے دونگا. یہ شاید مجھ پر چللاو گے. 335 00:31:07,840 --> 00:31:11,250 Strlen string.h میں ہے. 336 00:31:11,250 --> 00:31:14,290 تو یہ ہے بجنا کے بارے میں اچھی بات یہ ہے یہ آپ کو بتاتا ہے کہ اس میں کیا ہے، 337 00:31:14,290 --> 00:31:19,140 بجائے جی سی سی جس میں صرف کا کہنا ہے کہ، "ارے، تم سے کچھ بھول گیا، میں پتہ نہیں کہ وہ کیا تھا." 338 00:31:19,140 --> 00:31:29,220 لیکن یہ مجھے بتائیں گے، "تم string.h کو شامل کرنے کا مطلب ہے." 339 00:31:29,220 --> 00:31:32,130 تو میں کسی بھی چیز کے لئے نہیں فوری طور پر، کیا تو اس نے کچھ بھی نہیں کہہ رہا ہے. 340 00:31:32,130 --> 00:31:42,540 لیکن ہم ان کی مثال کے طور پر کیا جائے گا، "4 شامل کریں شکریہ". 341 00:31:42,540 --> 00:31:47,880 یہ درست لگتا ہے. ہرے. 342 00:31:47,880 --> 00:31:52,370 تو آپ کے مرکزی آرہے ہیں، میں تقریبا کبھی نہیں کرنا. 343 00:31:52,370 --> 00:31:57,110 یہ اختیاری ہے. اور مین صرف تقریب ہے جس کے لئے یہ اختیاری ہے ہے. 344 00:31:57,110 --> 00:32:07,140 اگر آپ اہم سے کچھ بھی واپس نہیں ہے، اس لئے یہ فرض کر لیا گیا ہے کہ آپ 0 واپس کرنے کا مطلب ہے. 345 00:32:07,140 --> 00:32:13,070 سوال؟ 346 00:32:13,070 --> 00:32:20,980 ٹھیک ہے. تو اب دوسرا مسئلہ ہے. 347 00:32:20,980 --> 00:32:24,810 انہوں نے کہا کہ گزرنے کی طرف سے ہفتے 2 دوسرا لیکچر ہے کہ 2 'متغیر کی اقدار گماگمن سے یاد 348 00:32:24,810 --> 00:32:30,780 ایک تقریب میں (چاہے سویپ کہا جاتا ہے) ان 2 متغیر، کم از کم کے بغیر بالکل نہیں ہے کام 'اشارہ ہے. " 349 00:32:30,780 --> 00:32:37,020 اور اشارہ نظر انداز جب تک ہم ان سے حاصل کرنے کے لئے. 350 00:32:37,020 --> 00:32:40,070 ہم 2 متغیر تبادلہ چاہتے ہیں، ہم نے ایک تقریب کا استعمال نہیں کر رہے ہیں ایسا کرنے. 351 00:32:40,070 --> 00:32:43,410 ہم اب بھی یہ اہم ہے کہ یہ کہتے ہیں کہ کیا کرنے جا رہے ہیں. 352 00:32:43,410 --> 00:32:48,360 لیکن ان 2 متغیر کو استعمال کرنے کے لئے، ہم ایک عارضی متغیر کو استعمال کرنے کے لئے نہیں کرنا چاہتا ہے. 353 00:32:48,360 --> 00:32:50,770 ایسا کرنے کے 2 طریقے ہیں. 354 00:32:50,770 --> 00:32:56,310 تم یہ کر اپنے روایتی بائنری آپریٹرز کا استعمال کرتے ہوئے کر سکتے ہیں. 355 00:32:56,310 --> 00:33:00,180 تو کسی کے پاس یہ ہے کہ ایسا کرنے کے فوری اور گندی راستہ معلوم ہے؟ 356 00:33:00,180 --> 00:33:07,650 یہ سوچنے کا ایک منٹ بھی لے سکتے ہے. اگر میں نے - 357 00:33:07,650 --> 00:33:12,130 میں مسئلہ قائم وہ طرح سے پوچھیں گے. تو اگر میں 2 متغیر ہے، جو A، صرف ایک عدد صحیح ہے 358 00:33:12,130 --> 00:33:17,800 کہ وہ مجھے دو، اور رقم متغیر B، جس پر ایک عدد صحیح ہے کہ میں نے کر رہا ہوں. 359 00:33:17,800 --> 00:33:22,700 تو اگر میں یہ 2 متغیر ہے، اب میں ان کا تبادلہ کرنا چاہتے ہیں. 360 00:33:22,700 --> 00:33:31,550 روایتی، آپ کے باقاعدہ بائنری آپریٹرز کا استعمال کرتے ہوئے، میرا مطلب ہے، + طرح، - ÷. 361 00:33:31,550 --> 00:33:36,630 نہیں bitwise آپریٹرز جو بائنری پر عمل. 362 00:33:36,630 --> 00:33:39,600 ، +، ÷، اور ان سب - تو استعمال کرتے ہوئے ہے. 363 00:33:39,600 --> 00:33:52,980 ہم ایسا کچھ کر کے تبادلہ سکتا ہے ایک = A + B، اور b = A - B، ایک = A - B. 364 00:33:52,980 --> 00:34:04,260 تو، وویک چیک کرنے کے لیے، اور پھر ہم اس کام کو دیکھ لیں گے. 365 00:34:04,260 --> 00:34:13,320 چلو کا کہنا ہے کہ 7 =، B = 3، تو + B 10 کی جا رہی ہے. 366 00:34:13,320 --> 00:34:18,820 تو کیا اب ہم 10 = قائم کرنے رہے ہیں، اور پھر ہم B = ایک کر رہے ہیں - ب. 367 00:34:18,820 --> 00:34:30,250 تو ہم کر رہے ہیں B = A - B، جو 7 جا رہا ہے، اور ب = ایک - دوبارہ B 368 00:34:30,250 --> 00:34:38,650 یا = ایک - B. 7 جس 3 - جو 10 جا رہا ہے. 369 00:34:38,650 --> 00:34:44,850 درست طریقے سے، تو اب 'ایک' 7 تھی، بی 3، اور اب ب 7 ہے اور ایک '3 ہے. 370 00:34:44,850 --> 00:34:48,679 تو اس طرح کا احساس کرتا ہے. 'ایک' 2 تعداد کا مجموعہ ہے. 371 00:34:48,679 --> 00:34:53,000 اس وقت 'ایک' مجموعہ ہے، اور پھر ہم تفریق اصل ب کر رہے ہیں، 372 00:34:53,000 --> 00:34:56,860 اور پھر ہم باہر تفریق ہو جو اصل تھا 'ایک. 373 00:34:56,860 --> 00:35:01,150 لیکن یہ تمام اعداد و شمار کے لئے کام نہیں کرتا. 374 00:35:01,150 --> 00:35:08,880 یہ دیکھ کر، ایک ایسا نظام پر غور کریں، تو ہم عام طور پر 32 بٹس کے طور پر integers کے بارے میں سوچتے ہیں. 375 00:35:08,880 --> 00:35:13,050 کچھ کہ صرف 4 بٹس کی طرح ہے پر کام کرنے دو 376 00:35:13,050 --> 00:35:15,450 امید ہے کہ میں ایک اچھی مثال کے ساتھ ابھی آو. 377 00:35:15,450 --> 00:35:18,680 تو، میں سمجھتا ہوں، یہ آسان ہو جائے گا. 378 00:35:18,680 --> 00:35:26,720 چلو کا کہنا ہے کہ ہمارے 2 تعداد 1111، اور 1111 ہیں، تاکہ ہم بائنری میں ہیں ابھی. 379 00:35:26,720 --> 00:35:34,630 اصل دشملو میں، اگر آپ کو اس سے اس طرح سوچنا چاہتے ہیں، 15 = اور ب = 15. 380 00:35:34,630 --> 00:35:37,630 اور اس طرح ہم امید کرتے ہیں، ہم ان کے تبادلہ کے بعد - وہ ایک ہی تعداد بھی نہیں ہے، 381 00:35:37,630 --> 00:35:41,140 لیکن میں نے اسے اس طرح کیا. 382 00:35:41,140 --> 00:35:47,100 انہیں بنانے کے لئے ایک ہی تعداد میں نہیں. دو کی 1111 اور 0001. 383 00:35:47,100 --> 00:35:51,860 تو ایک 15 = اور B = 1. 384 00:35:51,860 --> 00:35:57,670 کے بعد ہم ان کے تبادلہ، ہم 'ایک' 1 اور بی 15 کی امید ہے. 385 00:35:57,670 --> 00:36:01,780 لہذا ہمارا پہلا قدم ہے = A + B. 386 00:36:01,780 --> 00:36:08,770 ہمارے تعداد صرف 4 بٹس وسیع ہیں، اس لئے '،'، جو 1111 ہے + B، جو 0001، 387 00:36:08,770 --> 00:36:16,780 10000 ہونے کے ختم ہو رہا ہے، لیکن ہم صرف 4 بٹس ہے. 388 00:36:16,780 --> 00:36:22,540 تو اب = 0. 389 00:36:22,540 --> 00:36:34,080 B - - اصل میں، یہ اب بھی باہر بالکل کام کرتا ہے اور اب ہم مقرر B = ایک کرنا چاہتے ہیں. 390 00:36:34,080 --> 00:36:39,630 = ایک - B - چلو دیکھتے ہیں اگر یہ بالکل کام کرتا ہے. 391 00:36:39,630 --> 00:36:53,720 تو B = 0 - 1،، جس میں 15 اب بھی ہو جائے گا اور پھر ایک = ایک - B، جو 1 گے. 392 00:36:53,720 --> 00:36:56,210 شاید یہ کام کرتا ہے. 393 00:36:56,210 --> 00:36:59,020 مجھے لگتا ہے کہ وہاں ایک وجہ یہ باقاعدگی سے استعمال کرتے ہوئے کام نہیں کرتا ہے. 394 00:36:59,020 --> 00:37:06,400 ٹھیک ہے، تو مفروضہ کہ وہ باقاعدگی سے بائنری آپریشن کے ساتھ کام نہیں کرتا پر کام کر رہے 395 00:37:06,400 --> 00:37:15,040 اور میں نظر آئے گا - میں اگر یہ سچ ہے کو دیکھنے کے لئے گوگل گا. 396 00:37:15,040 --> 00:37:23,490 تو ہم نے اسے bitwise آپریٹرز کا استعمال کرتے ہوئے کرنا چاہتے ہیں، اور یہاں اشارہ XOR ہے. 397 00:37:23,490 --> 00:37:28,780 تو، XOR (^) متعارف کرانے اگر آپ نے اسے نہیں دیکھا ہے ابھی تک. 398 00:37:28,780 --> 00:37:34,610 تو یہ ہے، پھر ایک bitwise آپریٹر، تھوڑا سا اور it's کی طرف سے تھوڑا سا کام کرتا ہے - 399 00:37:34,610 --> 00:37:39,910 اگر آپ کے بٹس 0 اور 1 کے ہیں، تو اس 1 ہو جائے گا. 400 00:37:39,910 --> 00:37:45,230 اگر آپ 1 کی بٹس اور 0 ہے، اسے 1 ہو جائے گا، آپ 0 بٹس اور 0 اس 0 ہو جائے گا ہے، 401 00:37:45,230 --> 00:37:47,640 اور اگر آپ 1 کی بٹس اور 1 0 ہو جائے گی. 402 00:37:47,640 --> 00:37:56,180 تو اس کی طرح ہے. اگر بٹس کے کسی بھی سچے ہیں، اسے 1 ہے، لیکن OR کے برعکس، یہ دونوں بٹس یہ سچ نہیں ہو سکتا. 403 00:37:56,180 --> 00:37:59,320 یا یہ 1 کیا جائے گا XOR ہے، اس 0 ہو جائے گی. 404 00:37:59,320 --> 00:38:02,250 تو ہم XOR یہاں پر استعمال کرنا چاہتے ہیں کے لئے جا رہے ہیں. 405 00:38:02,250 --> 00:38:09,960 ایک منٹ کے لئے اس کے بارے میں سوچو، میں گوگل کو جا رہا ہوں. 406 00:38:09,960 --> 00:38:16,230 ٹھیک ہے، تم نے جو پڑھا نہیں کر سکتے ہیں، میں XOR سویپ الگورتھم صفحے پر ہوں. 407 00:38:16,230 --> 00:38:21,340 امید ہے کہ اس کی وضاحت میں کیوں can't - 408 00:38:21,340 --> 00:38:34,190 یہ بالکل الگورتھم ہے کہ ہم صرف کیا ہے. 409 00:38:34,190 --> 00:38:37,330 میں اب بھی نظر نہیں ہے کیوں - میں صرف ایک بری مثال اٹھایا، 410 00:38:37,330 --> 00:38:44,940 لیکن، اس صورت میں جہاں 'ایک' 0 5 بٹس پر حاصل کرنے کے بعد بننے، تو اب ایک '0 ہے ہوا 411 00:38:44,940 --> 00:38:48,730 یہ ہے کہ کیا کہا جاتا ہے "عددی اتپرواہ." 412 00:38:48,730 --> 00:38:54,370 وکی پیڈیا کے مطابق، "XOR سویپ کے برعکس، اس تبدیلی کی ضرورت ہوتی ہے کہ اس میں کچھ طریقوں کا استعمال کیا جاتا ہے 413 00:38:54,370 --> 00:38:59,780 اس بات کی ضمانت ہے کہ X + Y ایک عددی اتپرواہ کی وجہ سے نہیں ہے. " 414 00:38:59,780 --> 00:39:08,350 تو یہ مسائل ہیں ہے، یہ عددی اتپرواہ تھا، لیکن میں نے کچھ غلط کیا ہے. 415 00:39:08,350 --> 00:39:10,520 مجھے یقین نہیں ہے. میں ایک دوسرے کے ساتھ آنے کی کوشش کریں گے. 416 00:39:10,520 --> 00:39:13,640 [Student کی] ٹھیک ہے، عددی اتپرواہ نہیں ہے جب تم وہاں میں ایک بڑی تعداد کو کرنے کی کوشش کر رہے ہیں 417 00:39:13,640 --> 00:39:16,640 بٹس کی وہ رقم ہے جو آپ مختص ہے سے بڑا ہے؟ 418 00:39:16,640 --> 00:39:23,730 جی ہاں. ہم نے 4 بٹس ہے. That's - ہم نے 4 بٹس تھا، تو ہم اس کی 1 کا اضافہ کرنے کی کوشش ہے، تو ہم 5 بٹس کے ساتھ ختم. 419 00:39:23,730 --> 00:39:26,690 لیکن پانچویں تھوڑا کاٹ، ہو جاتا ہے ہاں. 420 00:39:26,690 --> 00:39:28,970 یہ اصل طاقت - 421 00:39:28,970 --> 00:39:33,010 [Student کی] کہ آپ کو کوئی غلطی کیا پھینک، یا یہ کہ اس کی - ایک غلطی، جو کہ پھینک دیں گے؟ 422 00:39:33,010 --> 00:39:40,720 نہیں تو کوئی خرابی نہیں ہے. جب آپ نے اسمبلی کی سطح حاصل کرنے کے لئے، ایک خاص سا 423 00:39:40,720 --> 00:39:47,020 کہیں مقرر ہے کہ نے کہا کہ ایک اتپرواہ تھا، لیکن C میں آپ اس کے ساتھ اس قسم کی نہ صرف سودا کرنے ہے. 424 00:39:47,020 --> 00:39:55,160 تم واقعی اس سے نمٹنے کے لئے نہیں ہے جب تک آپ خصوصی سی میں اسمبلی کی ہدایات کا استعمال کرتے ہیں کر سکتے ہیں. 425 00:39:55,160 --> 00:39:58,110 چلو XOR سویپ کے بارے میں سوچنا. 426 00:39:58,110 --> 00:40:02,220 اور مجھے لگتا ہے کہ وکیپیڈیا مضمون بھی کیا گیا ہے ہو سکتا ہے کا کہنا ہے کہ - 427 00:40:02,220 --> 00:40:07,310 تو یہ بھی ماڈیولر ریاضی لائے، تو مجھے لگتا ہے کہ میں تھا، اصول میں، ماڈیولر ریاضی کر 428 00:40:07,310 --> 00:40:11,160 میں نے کہا کہ جب کہ 0 - 1 15 پھر. 429 00:40:11,160 --> 00:40:15,410 تو یہ اصل طاقت - 15 1 = - ایک باقاعدہ پروسیسر ہے جو 0 کرتا ہے. 430 00:40:15,410 --> 00:40:20,430 چونکہ ہم نے 0 میں آخر، ہم 1 منہا، تو یہ صرف کے ارد گرد 1111 پر واپس wraps. 431 00:40:20,430 --> 00:40:28,930 یہ ٹھیک ہو سکتا ہے. - B، B - ایک تو یہ الگورتھم، اصل میں ایک + B، ایک کام ہو سکتا ہے 432 00:40:28,930 --> 00:40:34,030 لیکن کچھ پروسیسرز جو کہ نہیں ہے، اور یہ ان خصوصی ہیں میں ٹھیک نہیں ہو گا. 433 00:40:34,030 --> 00:40:39,880 XOR سویپ کسی بھی پروسیسر پر کام کرے گا. ٹھیک ہے. 434 00:40:39,880 --> 00:40:42,280 خیال ہے کہ یہ وہی ہو، اگرچہ والا ہے. 435 00:40:42,280 --> 00:40:50,120 ہم XOR کہاں کا استعمال کرتے ہوئے کسی نہ کسی طرح متغیرات میں سے 1 میں دونوں کی معلومات حاصل کر رہے ہیں، 436 00:40:50,120 --> 00:40:54,120 اور اس کے بعد انفرادی متغیرات میں سے کے بارے میں معلومات دوبارہ ھیںچو. 437 00:40:54,120 --> 00:41:04,330 تو کسی کے خیالات / جواب ہے؟ 438 00:41:04,330 --> 00:41:14,540 [Student کی جواب، unintelligible] 439 00:41:14,540 --> 00:41:22,220 تو یہ کام کرتے ہیں، اور بھی، XOR commutative ہے. 440 00:41:22,220 --> 00:41:27,620 کس کے حکم کی قطع نظر ان 2 نمبر یہاں میں ہو، 441 00:41:27,620 --> 00:41:30,100 یہ نتیجہ ایک ہی ہو جائے جا رہی ہے. 442 00:41:30,100 --> 00:41:35,800 تو ایک ^ ب ہے B ^ ایک. 443 00:41:35,800 --> 00:41:51,860 آپ یہ بھی دیکھ سکتے ہیں اس کے طور پر لکھا ^ = B، B ^ = ایک، ایک ^ = دوبارہ B. 444 00:41:51,860 --> 00:42:00,200 تو یہ صحیح ہے، اور یہی وجہ ہے کہ یہ کام بٹس، کے بارے میں سوچتے ہیں. 445 00:42:00,200 --> 00:42:10,400 ایک smallish تعداد کا استعمال کرتے ہوئے، 11001، اور 01100 کا کہنا ہے کہ. 446 00:42:10,400 --> 00:42:12,790 تو یہ 'ایک' ہے، یہ بی ہے. 447 00:42:12,790 --> 00:42:15,540 تو ایک ^ = B. 448 00:42:15,540 --> 00:42:22,380 ہم قائم کرنے '' = ان 2 چیزوں کے XOR جا رہے ہیں. 449 00:42:22,380 --> 00:42:32,920 1 تو 0 ^ 1 ہے، 1 1 ^ 0 ہے، 0 1 ^ 1 ہے، اور 0 0 ^ 0 ہے، 1 0 ^ 1 ہے. 450 00:42:32,920 --> 00:42:37,380 تو، اگر آپ دشملو تعداد میں دیکھو، یہ جا رہا ہے - 451 00:42:37,380 --> 00:42:41,160 تم جا اصل 'اے' اور نئے کے درمیان تعلق کی زیادہ دیکھنے کے لئے نہیں کر رہے ہیں '،' 452 00:42:41,160 --> 00:42:45,600 لیکن بٹس دیکھ 'ایک' معلومات کا ایک نیٹ ورک کی طرح ہے 453 00:42:45,600 --> 00:42:49,970 دونوں اصل 'اے' اور اصل ب. 454 00:42:49,970 --> 00:42:57,930 تو اگر ہم B ^، ہم دیکھتے ہیں کہ ہم اصل میں ختم کریں گے 'ایک. لے 455 00:42:57,930 --> 00:43:08,910 اور اگر ہم لے اصل 'A' ^ نئے '،' ہم دیکھ کر ہم اصل ب میں ختم. 456 00:43:08,910 --> 00:43:18,380 تو (ایک ^ ب) ^ B = اصل '.' 457 00:43:18,380 --> 00:43:27,910 اور (ایک ^ ب) ^ ایک = اصل ب. 458 00:43:27,910 --> 00:43:37,010 آمدید ہے - دیکھ کر یہ کچھ XOR ہی ہے کا ایک اور طریقہ ہمیشہ 0. 459 00:43:37,010 --> 00:43:45,020 1101 تو 1101 ^، تمام بٹس کو ایک ہی جا رہے ہیں. 460 00:43:45,020 --> 00:43:47,920 تو وہاں ایک کیس ہے جہاں 1 ہے 0 اور 1 دوسرے ہے کبھی نہیں ہے. 461 00:43:47,920 --> 00:43:51,080 تو یہ 0000 ہے. 462 00:43:51,080 --> 00:43:57,240 اس کے ساتھ ایک ہی ہے. (^ ب) ^ B کی طرح ہے ^ (ب ^ ب). 463 00:43:57,240 --> 00:44:03,680 (ب B ^) 0 ہونے جا رہا ہے، 0 ^ صرف '،' جا رہا ہے سے لے کر تمام بٹیں 0. 464 00:44:03,680 --> 00:44:08,050 تو صرف وہی ہیں جو ہونے جا رہا جہاں '' اصل میں 1 - والوں تھا. 465 00:44:08,050 --> 00:44:12,070 اور یہاں ایک ہی خیال، میں خوبصورت اس بات کا یقین کر لیں کہ یہ بھی ہے commutative ہوں. 466 00:44:12,070 --> 00:44:17,590 جی ہاں. میں کہا ہے کہ اس سے پہلے کہ commutative تھا. 467 00:44:17,590 --> 00:44:24,680 ^ '،' اور اس ساہچری ہے، تو اب (ب ^ ایک) ^ ایک. 468 00:44:24,680 --> 00:44:28,970 اور ہم B ^ (ایک ^ ایک) کر سکتے ہیں. 469 00:44:28,970 --> 00:44:31,540 اور تو پھر، ہم اصل ب ملتا ہے. 470 00:44:31,540 --> 00:44:37,120 تو '' اب 'اے' بی اور ایک ساتھ مجموعہ ہے. 471 00:44:37,120 --> 00:44:49,660 ہمارے نئے طومار کا استعمال کرتے ہوئے 'ایک' ہم کہتے B = طومار 'ایک' ^ اصل B، ہم اصل حاصل کریں '.' 472 00:44:49,660 --> 00:45:05,170 اور اب = طومار 'ایک' ^ نئے ب، جو اصل تھا - یا جو اب ہے جو 'ایک' یا ب تھا. 473 00:45:05,170 --> 00:45:13,620 کہ یہ معاملہ ہے یہاں. یہ = B، پرانی ب ہے. 474 00:45:13,620 --> 00:45:16,550 تو اب سب کچھ تبدیل ترتیب میں واپس آ گیا ہے. 475 00:45:16,550 --> 00:45:22,960 اگر ہم واقعی بٹس کو دیکھا، B = ایک ^ B، 2 ان XOR جا رہا ہے، 476 00:45:22,960 --> 00:45:33,920 اور جواب یہ جا رہا ہے، اور اس کے بعد = ایک ^ B ان 2 XORing ہے اور جواب یہ ہے 477 00:45:33,920 --> 00:45:41,090 سوال؟ ٹھیک ہے. تو گزشتہ ایک کسی حد تک زیادہ اہم مشکل ہے. 478 00:45:41,090 --> 00:45:43,180 [Student کی] مجھے لگتا ہے کہ وہ اس کے بارے میں ایک سوال ہے. >> اوہ، معاف کرنا. 479 00:45:43,180 --> 00:45:49,380 [Student کی] اصل میں کیا ہے تیزی سے؟ اگر آپ اس XOR کا استعمال کرتے ہیں، یا یہ ہے اگر آپ کو ایک نیا متغیر کا اعلان؟ 480 00:45:49,380 --> 00:45:55,190 تو تیزی سے اصل میں کیا ہے، ایک نیا متغیر کا اعلان یا XOR کا استعمال کرتے ہوئے پر تبادلہ؟ 481 00:45:55,190 --> 00:45:59,600 جواب تمام امکان میں ہے، ایک عارضی متغیر ہے. 482 00:45:59,600 --> 00:46:05,780 اور ہے کیونکہ ایک بار اسے نیچے مرتب کی ہے - اس لئے اسمبلی کی سطح پر، 483 00:46:05,780 --> 00:46:12,320 مقامی متغیر یا کسی عارضی متغیر یا اس چیز میں سے کسی کے طور پر اس طرح کے کام نہیں ہے. 484 00:46:12,320 --> 00:46:16,060 میموری ہے، اور وہاں رجسٹر ہیں - وہ صرف کر رہے ہیں. 485 00:46:16,060 --> 00:46:20,920 رجسٹر چیزیں کہاں فعال طور پر ہو رہی ہیں. 486 00:46:20,920 --> 00:46:24,750 آپ کی یاد میں 2 چیزیں شامل نہیں کرتے ہیں، آپ کو رجسٹر میں 2 چیزیں شامل ہیں. 487 00:46:24,750 --> 00:46:28,160 اور آپ کو رجسٹر میں یاد سے چیزیں لاتے تو انہیں شامل کرنے، 488 00:46:28,160 --> 00:46:33,180 اور پھر آپ ان میموری میں ڈال واپس، لیکن ہو سکتا ہے تمام کارروائی کے رجسٹر میں ہوتا ہے. 489 00:46:33,180 --> 00:46:38,750 تو جب آپ عارضی متغیر نقطہ نظر کا استعمال کرتے ہوئے کر رہے ہیں، عام طور پر کیا ہوتا ہے 490 00:46:38,750 --> 00:46:42,810 ان 2 نمبر رجسٹر میں پہلے سے ہی ہیں. 491 00:46:42,810 --> 00:46:46,570 اور اس کے بعد کے بعد تم نے انہیں تبدیل ہے اس نقطہ نظر سے 492 00:46:46,570 --> 00:46:51,540 دوسرے رجسٹر کا استعمال کرتے ہوئے شروع کر دیں گے. 493 00:46:51,540 --> 00:46:56,510 کہیں بھی نے تم سے کیا گیا تھا ب کا استعمال کرتے ہوئے، یہ رجسٹر جو پہلے ہی کیا گیا ذخیرہ کرنے کا استعمال کریں گے '.' 494 00:46:56,510 --> 00:47:02,180 تو یہ اصل میں سویپ کچھ کرنے کی ضرورت نہیں ہے. جی ہاں؟ 495 00:47:02,180 --> 00:47:05,690 [Student کی] لیکن یہ بھی زیادہ میموری لیتا ہے، ہے نا؟ 496 00:47:05,690 --> 00:47:10,280 یہ صرف زیادہ میموری لے اگر یہ ہے کہ عارضی متغیر کو محفوظ کرنے کی ضرورت ہے. 497 00:47:10,280 --> 00:47:14,830 ، اگر آپ کو بعد میں اس عارضی متغیر پھر کہیں استعمال کرنا 498 00:47:14,830 --> 00:47:18,920 تو - یا آپ اس عارضی متغیر کچھ تفویض. 499 00:47:18,920 --> 00:47:24,630 اگر ایسا ہے تو وقت، TEMP میں ب میں کسی بھی موڑ پر مخصوص اقدار یا کچھ اور ہے، 500 00:47:24,630 --> 00:47:30,680 تو اس یاد میں مختلف مقامات پر جا، لیکن یہ سچ ہے کہ 501 00:47:30,680 --> 00:47:34,800 بہت سے مقامی متغیر ہیں جو رجسٹر میں ہی رہے گا. 502 00:47:34,800 --> 00:47:44,370 کس صورت میں، یہ میموری میں ڈال دیا کبھی نہیں، اور تم میموری کبھی نہیں ضائع کر رہے ہیں. 503 00:47:44,370 --> 00:47:58,620 ٹھیک ہے. آخری سوال تھوڑی ہے. 504 00:47:58,620 --> 00:48:04,850 تو یہاں اس CS50 آلات میں ایک ڈکشنری ہے. 505 00:48:04,850 --> 00:48:12,390 اور اس کی وجہ کی وجہ سے ہے. [B66؟] سپیل چیکر ہے جہاں آپ لکھ رکھا جائے گا 506 00:48:12,390 --> 00:48:15,780 ہیش میزیں یا کرنے کی کوشش کرتا یا کچھ آنکڑا ڈھانچہ کا استعمال کرتے ہوئے. 507 00:48:15,780 --> 00:48:22,660 سپیل چیکر لکھنے جا رہے ہیں، اور آپ اس ڈکشنری کا استعمال کرتے ہوئے ایسا کرنے کے لئے جا رہے ہیں. 508 00:48:22,660 --> 00:48:28,280 لیکن اس مسئلہ کے لئے، ہم صرف اگر ایک لفظ لغت میں ہے دیکھنے کے لئے دیکھنے کی جا رہے ہیں. 509 00:48:28,280 --> 00:48:31,250 تو کچھ ڈیٹا ڈھانچے میں پوری لغت کو ذخیرہ کرنے کی بجائے 510 00:48:31,250 --> 00:48:35,180 اور پھر ایک مکمل دستاویز پر اگر کچھ غلط ہجے شدہ ہے، 511 00:48:35,180 --> 00:48:38,490 ہم صرف 1 لفظ کو تلاش کرنے کے لئے چاہتے ہیں. تو ہم صرف پورے لغت کو اسکین کر سکتے ہیں 512 00:48:38,490 --> 00:48:44,300 اور اگر ہم پورے لغت میں لفظ نہیں مل، تو اسے وہاں نہیں تھا. 513 00:48:44,300 --> 00:48:52,150 اگر ہم پوری لغت پر اسکین اور لفظ دیکھتے ہیں، تو ہم اچھے ہیں، ہم مل گیا ہے. 514 00:48:52,150 --> 00:48:56,580 یہاں یہ کہنا ہے کہ ہم C تقریب فائل کو سنبھالنے کی دیکھ شروع کرنا چاہتے ہیں، 515 00:48:56,580 --> 00:48:59,930 چونکہ ہم لغت کو پڑھنے کے لئے چاہتے ہیں، 516 00:48:59,930 --> 00:49:07,680 لیکن میں جس میں کام کرتا ہے آپ کے بارے میں سوچنا چاہئے کے طور پر اشارہ دے گا. 517 00:49:07,680 --> 00:49:11,510 میں انہیں خالی جگہوں پر لکھیں گے. 518 00:49:11,510 --> 00:49:20,490 تو اہم جو آپ کر رہے ہیں اور پھر کھلے F، ناگزیر، F بند دیکھنا چاہتا ہوں گے، 519 00:49:20,490 --> 00:49:26,540 جو آپ کے پروگرام کے آخر میں، اور F اسکین F گا. 520 00:49:26,540 --> 00:49:31,060 تم F پڑھ کر بھی استعمال کرتے ہیں، لیکن آپ کو شاید نہیں کرنا ہے کر سکتے ہیں 521 00:49:31,060 --> 00:49:34,200 کہ میں سب کچھ - تم نے ختم نہیں ہو کہ ضرورت ہے. 522 00:49:34,200 --> 00:49:41,880 F اسکین F ہے جو آپ کو ختم لغت کو سکین کا استعمال کرتے ہوئے جا رہے ہیں. 523 00:49:41,880 --> 00:49:46,370 اور تاکہ آپ کو حل کرنے کے لئے کوڈ کی ضرورت نہیں ہے، صرف اور پسند چھدم کوڈ اپنا راستہ کی کوشش کریں 524 00:49:46,370 --> 00:50:05,200 ایک حل اور پھر ہم اس بارے میں بات کریں گے. 525 00:50:05,200 --> 00:50:14,110 اور اصل میں، جب میں نے پہلے ہی ان نے تمہیں دیا تھا، آپ کوئی بھی ٹرمینل یا آپ کے آلے کے شیل میں اگر جاتے ہیں، 526 00:50:14,110 --> 00:50:18,250 میں کریں گے - عام طور پر میں - اگر آپ نے ابھی تک نہیں کیا ہے، میں اگر آپ کو کلاس میں کیا نہیں جانتے، 527 00:50:18,250 --> 00:50:23,490 لیکن مرد، تو آدمی کے صفحات، بہت زیادہ کسی بھی تقریب میں تلاش کرنے کے لئے بہت مفید ہیں. 528 00:50:23,490 --> 00:50:27,330 تو مجھے کیا کرنا، پسند، آدمی F کر سکتے ہیں، اسکین F. 529 00:50:27,330 --> 00:50:32,300 یہ اب کے افعال میں سے اسکین F خاندان کے بارے میں معلومات ہے. 530 00:50:32,300 --> 00:50:37,070 میں اس آدمی ایف، کھلی بھی، اور اس کے وزٹرز کا ریکارڈ رکھا جائے گا. میرے اس کی تفصیلات دے دونگا سکتا ہے. 531 00:50:37,070 --> 00:50:40,750 اگر ایسا ہے تو آپ کو معلوم ہے کہ آپ کیا تقریب کا استعمال کرتے ہوئے، یا کر رہے ہیں کہ آپ نے کوڈ پڑھ رہے ہو 532 00:50:40,750 --> 00:50:43,000 اور آپ کو کچھ تقریب دیکھتے ہیں اور تم جیسے، "یہ کیا کرتا ہے؟" 533 00:50:43,000 --> 00:50:45,280 آدمی اس تقریب کا نام ہے. 534 00:50:45,280 --> 00:50:47,340 عجیب مثالوں کی ایک جوڑے ہیں جہاں آپ کا کہنا ہے کہ ہو سکتا ہے 535 00:50:47,340 --> 00:50:51,620 اچھا لگتا ہے. کہ تقریب میں، نام، یا 3 آدمی اس تقریب کا نام، 2 آدمی 536 00:50:51,620 --> 00:50:58,230 لیکن آپ کو صرف کہ اگر آدمی تقریب کا نام پہلی بار کام نہیں ہوتا ہے. 537 00:50:58,230 --> 00:51:03,010 [Student کی] تو میں نے انسان کو کھلی کے لئے کا صفحہ پڑھ رہا ہوں، لیکن میں نے کس طرح اس پروگرام کو استعمال کرنے کے لئے اب بھی الجھن میں ہوں. 538 00:51:03,010 --> 00:51:06,170 ٹھیک ہے. آدمی کے صفحات کی ایک بہت مفید سے کم ہیں. 539 00:51:06,170 --> 00:51:08,470 وہ زیادہ مفید ہو، اگر آپ کے پاس پہلے سے ہی پتہ ہے کہ وہ کیا کرتے 540 00:51:08,470 --> 00:51:12,670 اور اس کے بعد آپ نے ابھی دلائل یا کچھ اور کے حکم کو یاد کرنے کی ضرورت ہے. 541 00:51:12,670 --> 00:51:17,640 یا وہ آپ کو ایک عام جائزہ دے، لیکن ان میں سے کچھ بہت بھاری ہو سکتا ہے. 542 00:51:17,640 --> 00:51:22,220 چ اسکین F کی طرح، بھی. یہ آپ کو ان کے افعال میں سے سب کے لئے کے بارے میں معلومات فراہم کرتا ہے، 543 00:51:22,220 --> 00:51:28,120 اور سطر نمبر 1 یہاں ذیل کہنا ہے، "F اسکین F سٹرنگ نقطہ یا سلسلے سے پڑھتا ہے." 544 00:51:28,120 --> 00:51:32,360 F کھول لیکن لہذا، ہم F کھلا کیسے استعمال کریں گے؟ 545 00:51:32,360 --> 00:51:38,470 ایک ایسا پروگرام ہے جس سے فائل کرنے کے لئے کی ضرورت ہے کے خیال I / O یہ ہے کہ 546 00:51:38,470 --> 00:51:45,070 آپ پہلے فائل کو کھولنے کے لئے آپ کے ساتھ کام کرنا چاہتے ہیں کی ضرورت ہے، لامحالہ اور 547 00:51:45,070 --> 00:51:51,220 اس فائل سے چیزیں پڑھیں اور ان کے ساتھ چیزیں کرنا. 548 00:51:51,220 --> 00:51:55,350 F کھلا ہے جو ہم فائل کو کھولنے کے لئے استعمال کرتے ہیں. 549 00:51:55,350 --> 00:52:04,190 بات ہم واپس ملے، تو ہم کس فائل کو کھولنے کے چاہتے ہیں، یہ ہمیں دیتا ہے - 550 00:52:04,190 --> 00:52:11,970 یہاں میں اس کا کہنا ہے کہ "/ صارف / حصہ / dict / الفاظ ہے." 551 00:52:11,970 --> 00:52:16,740 اس فائل میں ہے کہ ہم پر کھول کرنا چاہتے ہیں، اور ہم نے اسے کھولنے کے لئے چاہتے ہیں - 552 00:52:16,740 --> 00:52:21,440 ہم واضح طور پر وضاحت چاہے ہم یا اسے لکھ اگر ہم پر کھول کرنا چاہتے ہیں پڑھنا بنانا چاہتے ہیں. 553 00:52:21,440 --> 00:52:26,490 مجموعے اور سامان کے ایک جوڑے کی ہے، لیکن ہم نے پڑھنے کے لیے اس کو کھولنے کے چاہتے ہیں. 554 00:52:26,490 --> 00:52:29,380 ہم فائل سے پڑھنے کے لئے چاہتے ہیں. 555 00:52:29,380 --> 00:52:34,290 تو اس کی واپسی کرتا ہے؟ یہ ایک فائل ہے ستارہ (*) واپس، 556 00:52:34,290 --> 00:52:37,260 اور میں متغیر F میں سب کچھ * دکھائیں گے، 557 00:52:37,260 --> 00:52:40,840 پھر یہ کہ اس سے پوائنٹر ہے، لیکن ہم اشارہ کے ساتھ نمٹنے کے لئے نہیں کرنا چاہتا. 558 00:52:40,840 --> 00:52:46,470 آپ F کے بارے میں سوچ کر سکتے ہیں کے طور پر، F اب متغیر آپ فائل کی نمائندگی کرنے کے لئے استعمال کرنے کے لئے جا رہے ہیں. 559 00:52:46,470 --> 00:52:49,850 تو اگر آپ فائل سے پڑھنے کے لئے چاہتے ہیں، آپ F سے پڑھا ہے. 560 00:52:49,850 --> 00:52:54,820 اگر آپ فائل کو بند کرنا چاہتے ہیں، آپ F بند. 561 00:52:54,820 --> 00:53:00,350 تو پروگرام کے اختتام پر جب ہم لامحالہ فائل کو بند کرنا چاہتے ہیں، ہم کیا کرنا چاہیے؟ 562 00:53:00,350 --> 00:53:06,750 ہم F کو بند کرنا چاہتے ہیں. 563 00:53:06,750 --> 00:53:12,600 تو اب آخری فائل کی تقریب ہے کہ ہم استعمال کرنا چاہتے ہیں کے لئے جا رہے ہیں اسکین F، F اسکین F ہے. 564 00:53:12,600 --> 00:53:20,930 اور ہے کہ وہ کیا کرتا ہے ہے اس پر میچ کے لئے ایک نمونہ کے لئے لگ فائل پر دوڑاتا ہے. 565 00:53:20,930 --> 00:53:39,100 کی تلاش میں آدمی یہاں کے صفحے پر، ہم int F اسکین F دیکھتے ہیں، اب کے بدلے کی قیمت کو نظر انداز کریں. 566 00:53:39,100 --> 00:53:45,230 پہلی دلیل فائل * ندی ہے، پہلی دلیل ہم کو منتقل کرنا چاہتے ہیں جا رہے ہیں F ہے. 567 00:53:45,230 --> 00:53:47,900 ہم F پر سکین کر رہے ہیں. 568 00:53:47,900 --> 00:53:53,680 دوسری دلیل کی شکل سٹرنگ ہے. 569 00:53:53,680 --> 00:53:58,310 میں آپ کو ایک کی شکل سٹرنگ ابھی دے گا. 570 00:53:58,310 --> 00:54:05,180 مجھے لگتا ہے کہ ہم، 127s کریں \ n، کہ غیر ضروری ہے بہت کہنے ہو. 571 00:54:05,180 --> 00:54:12,490 کیا اس شکل سٹرنگ ہے کے خیال ہے، اسکین F آپ پرنٹ F کے برعکس کے طور پر سوچ سکتے ہیں. 572 00:54:12,490 --> 00:54:17,160 تو پرنٹ F، پرنٹ، F ہم بھی شکل کے پیرامیٹر میں اس قسم کی استعمال، 573 00:54:17,160 --> 00:54:25,000 لیکن پرنٹ F میں جو ہم کر رہے ہیں وہ ہے - دو مساوی کو دیکھو. 574 00:54:25,000 --> 00:54:32,550 تو F پرنٹ ہے، اور اس اصل میں بھی ایف ایف پرنٹ، جہاں پہلی دلیل F جا رہا ہے. 575 00:54:32,550 --> 00:54:40,980 جب آپ F پرنٹ طرح کچھ ہم کہتے ہیں، "پرنٹ 127s N \" کر سکتے ہیں اور اس کے بعد اگر ہم اسے کچھ سٹرنگ گزر، 576 00:54:40,980 --> 00:54:44,050 یہ اس کے اور پھر سٹرنگ میں ایک نئی سطر کو پرنٹ کرنے کے لئے جا رہا ہے. 577 00:54:44,050 --> 00:54:49,690 کیا 127 کا مطلب ہے، مجھے یقین ہے ہوں، لیکن میں نے اسے اپنے آپ کو محدود کر لیا ہے کبھی نہیں، 578 00:54:49,690 --> 00:54:52,470 تم یہ بھی پرنٹ F میں '127 'کہنا نہیں کی ضرورت ہو گی، 579 00:54:52,470 --> 00:54:57,090 لیکن کیا اس کا مطلب یہ پہلے 127 حروف پرنٹ ہے. 580 00:54:57,090 --> 00:54:59,350 تو مجھے یقین ہے کہ معاملہ ہے ہوں. آپ کو اس کے لئے گوگل کر سکتے ہیں. 581 00:54:59,350 --> 00:55:03,000 لیکن میں اگلے ایک میں تقریبا مثبت ہے اس کا مطلب ہے کہ ہوں. 582 00:55:03,000 --> 00:55:08,880 تو یہ ہے کہ پہلے 127 حروف، ایک نئی سطر کے بعد پرنٹ. 583 00:55:08,880 --> 00:55:14,680 F اسکین اب F، ایک متغیر دیکھ اور یہ پرنٹ کے بجائے 584 00:55:14,680 --> 00:55:22,620 کچھ سٹرنگ کو دیکھنے کے لئے، اور متغیر میں طرز کو محفوظ کی جا رہا ہے. 585 00:55:22,620 --> 00:55:26,360 میں اصل میں ایک مختلف مثال کے طور پر میں اسکین F استعمال ہوں. 586 00:55:26,360 --> 00:55:31,670 تو کا کہنا ہے کہ ہم نے کچھ int تھا، X = 4 587 00:55:31,670 --> 00:55:41,110 اور ہم سے بنا سٹرنگ پیدا کرنا چاہتی تھی - سٹرنگ پیدا کرنا چاہتے تھے 588 00:55:41,110 --> 00:55:44,250 تھا کی طرح، یہ بہت بعد میں آئے گا، 589 00:55:44,250 --> 00:55:49,020 کچھ جو صرف 4.jpg کی طرح ہے. 590 00:55:49,020 --> 00:55:51,870 تو یہ ایک پروگرام ہے جہاں آپ کو رقم انسداد پڑے گا ہو سکتا ہے، 591 00:55:51,870 --> 00:55:56,420 میں مقابلہ خلاصہ، اور آپ کو تصاویر کے ایک گروپ کو بچانے کے لئے چاہتے ہیں. 592 00:55:56,420 --> 00:56:02,430 تو آپ i.jpg، جہاں میں آپ کے لوپ میں سے کچھ iteration ہے کو بچانے کے لئے کرنا چاہتے ہیں. 593 00:56:02,430 --> 00:56:05,500 تو ہم اس JPEG کے لئے اس جملے کو کس طرح کر سکتا ہوں؟ 594 00:56:05,500 --> 00:56:11,720 اگر آپ 4.jpg پرنٹ کرنے کے لئے چاہتے تھے، ہم نے پرنٹ F،٪ d.jpg صرف کہہ سکتے، 595 00:56:11,720 --> 00:56:14,410 اور پھر یہ کہ JPEG کے لئے پرنٹ گی. 596 00:56:14,410 --> 00:56:20,050 لیکن اگر ہم سٹرنگ 4.jpg کو بچانے کے لئے کرنا چاہتے ہیں، ہم نے اسکین F کا استعمال کرتے ہیں. 597 00:56:20,050 --> 00:56:30,860 کے سٹرنگ تو میں سب کچھ - دراصل ہم can't - کردار، چار کے، 100 جانا. 598 00:56:30,860 --> 00:56:35,400 تو میں صرف 100 حروف کے کچھ صف کا اعلان کر دیا، 599 00:56:35,400 --> 00:56:39,830 اور یہ کہ جو ہم لامحالہ کہ JPEG ذخیرہ کرنے اندر جا رہے ہیں 600 00:56:39,830 --> 00:56:47,920 تو ہم اسکین F کو استعمال کرنے کے لئے جا رہی ہو، اور شکل، کہ ہم کس طرح٪ d.jpg کہیں گے 601 00:56:47,920 --> 00:56:54,980 کے لئے 4.jpg پرنٹ کرنے کے لئے، اس کی شکل٪ d.jpg جا رہا ہے. 602 00:56:54,980 --> 00:57:04,020 تو شکل٪ d.jpg ہے، جو ہم کے ساتھ٪ D تبدیل کرنا چاہتے ہیں X ہے ہے، 603 00:57:04,020 --> 00:57:06,590 اور اب ہم اس سٹرنگ کو کہیں جمع کرنے کی ضرورت ہے. 604 00:57:06,590 --> 00:57:12,500 اور جہاں ہم اس جملے کو محفوظ کرنے جا رہے ہیں کی صف میں ہے. 605 00:57:12,500 --> 00:57:21,640 تو کوڈ کے اس لائن کے بعد، اگر ہم متغیر S F،٪ S پرنٹ، 606 00:57:21,640 --> 00:57:26,280 یہ 4.jpg پرنٹ کرنے کے لئے جا رہا ہے. 607 00:57:26,280 --> 00:57:38,930 تو F اسکین F اب اس فائل میں لگ رہا ہے کے طور پر ایک ہی اسکین F سوائے ہے، 608 00:57:38,930 --> 00:57:43,600 کیا کے میں ذخیرہ کرنے کے لئے. 609 00:57:43,600 --> 00:57:46,160 یہ آخری دلیل کیا جا رہا ہے. 610 00:57:46,160 --> 00:57:54,170 دونوں کی شکل کے مطابق جیسا کہ ذیل کی کوشش میں افعال علیحدہ اسکین کی ضرورت کی "سکین F خاندان - ہم پر محفوظ کرنا چاہتے ہیں. 611 00:57:54,170 --> 00:58:02,450 اگر کسی بھی مقام پوائنٹس میں جمع کیے جاتے ہیں تو آپ کو واپس کر سکتے ہیں - " 612 00:58:02,450 --> 00:58:12,910 نہیں، ہم اچھے ہو سکتا ہے. کے وزٹرز کا ریکارڈ رکھا جائے گا. میرے ایک لمحے کے لئے لگتا ہے. 613 00:58:12,910 --> 00:58:26,350 تو اسکین F نہیں ہے - کیا heck تقریب ہے جو کہ اس کی ہے؟ 614 00:58:26,350 --> 00:58:31,650 تو اسکین F ایک عددی لے اور ڈاٹ فوٹو کر نہیں ہے. 615 00:58:31,650 --> 00:58:43,490 [mumbles] میں ہو رہا ہے. 616 00:58:43,490 --> 00:58:49,360 سٹرنگ int C. int متغیر محفوظ 617 00:58:49,360 --> 00:58:55,940 اس متغیر کیا ہے، یا کیا اس تقریب میں بلایا ہے. 618 00:58:55,940 --> 00:59:04,950 جی ہاں. That's - جی ہاں. تو کیا میں تم سے وضاحت کر رہے تھے وہ اس سے پہلے کے پرنٹ F تھا، 619 00:59:04,950 --> 00:59:09,820 جس - ہے جو بہت زیادہ احساس کیوں میں نے کہا کہ یہ پرنٹ F کی طرح زیادہ تھی کرتا ہے. 620 00:59:09,820 --> 00:59:14,700 سکین F اب بھی ہے مہربان پرنٹ F کی طرح، لیکن کے پرنٹ F کو سکین کر جا رہا ہے 621 00:59:14,700 --> 00:59:17,510 اور متغیر کی جگہ اور اب یہ ایک تار میں سٹور. 622 00:59:17,510 --> 00:59:19,620 یہ پرنٹ کرنے کے بجائے، یہ ایک تار میں ذخیرہ ہے. 623 00:59:19,620 --> 00:59:25,070 تو مکمل طور پر کہ نظر انداز. کیا تم پرنٹ F اس طرح کے طور پر فارمیٹ specifier اب بھی سوچ سکتے ہیں. 624 00:59:25,070 --> 00:59:34,510 تو اب، اگر ہم 4.jpg بات کرنا چاہتے تھے، ہم کے پرنٹ F کرنا، اس کے X گی. 625 00:59:34,510 --> 00:59:38,520 تو جو اسکین F کر رہا ہے - کیا آپ کے سوال پر جا رہے ہیں؟ 626 00:59:38,520 --> 00:59:40,820 [Student کی] میں جو ہم ابھی یہاں کیا کرنے کی کوشش کر رہے ہیں پر الجھن میں ہوں 627 00:59:40,820 --> 00:59:43,450 کہ JPEG کے ساتھ. کیا آپ کہ 1 مزید وقت کی وضاحت کر سکتا ہوں؟ 628 00:59:43,450 --> 00:59:52,710 تو یہ تھا - یہ کم F اسکین اب F relevent ہے، امید، راستے سے کسی قسم میں واپس باںدتا. 629 00:59:52,710 --> 01:00:02,240 لیکن کیا میں ابتدائی طور پر ظاہر ارادہ تھا - یہ اصل میں براہ راست ان [سے متعلقہ ہے؟؟ F5] 630 01:00:02,240 --> 01:00:08,520 آپ کے پرنٹ F کا استعمال کرتے ہوئے جا رہے ہیں، جہاں کا کہنا ہے کہ ہم نے 100 تصاویر ہیں، 631 01:00:08,520 --> 01:00:13,630 اور آپ شبیہ 1.jpg، 2.jpg، 3.jpg کو پڑھنے کے لئے چاہتے ہیں. 632 01:00:13,630 --> 01:00:21,520 تو اس لئے کہ ایسا کرنے کی، آپ F کھول کی ضرورت ہے، اور پھر آپ کو سٹرنگ ہے کہ آپ کو کھولنے کے چاہتے ہیں میں منتقل کرنے کی ہے. 633 01:00:21,520 --> 01:00:30,020 تو ہم 1.jpg بنانا چاہتے ہیں، سٹرنگ کہ 1.jpg ہے بنانے کے لئے کے لئے، 634 01:00:30,020 --> 01:00:37,660 ٪ ہم کے کرتے پرنٹ F d.jpg ہم int میں 0 = کے لئے نہیں کیا تھا. 635 01:00:37,660 --> 01:00:46,580 میں 40 <، میں + +. 636 01:00:46,580 --> 01:00:51,130 تو کے پرنٹ F٪ میں d.jpg. 637 01:00:51,130 --> 01:00:56,320 تو اس لائن کے بعد، اب متغیر یا کے صف 1.jpg جا رہا ہے. 638 01:00:56,320 --> 01:01:10,610 یا، 0.jpg، 1.jpg، 2.jpg. اور اس کے نتیجے میں ہم کھولنے، پڑھنے کے لیے ہر تصویر کر سکتے ہیں. 639 01:01:10,610 --> 01:01:19,550 تو اس کے پرنٹ F کرتا ہے. کیا تم نے دیکھا ہے کیا <پرنٹ F اب کر رہا ہے؟ 640 01:01:19,550 --> 01:01:25,720 [Student کی] ٹھیک ہے، تو یہ لے جا رہا ہے - یہ ایک سٹرنگ پیدا، something.jpg، اور پھر یہ ذخیرہ ہے. 641 01:01:25,720 --> 01:01:30,360 جی ہاں. یہ پیدا - اس کی ایک اور شکل سٹرنگ صرف اسکین ایف اور پرنٹ F کی طرح ہے، ہے، 642 01:01:30,360 --> 01:01:37,530 جہاں دوسری دلیل میں متغیرات میں سے سب اضافہ، کے طور پر میں کے خلاف ہو سکتا ہے. 643 01:01:37,530 --> 01:01:42,280 شاید - میرا مطلب ہے، یہ بات ہے. لیکن جو کچھ بھی دلائل کے حکم ہے. 644 01:01:42,280 --> 01:01:45,440 متغیرات میں سے سب کی شکل سٹرنگ میں داخل کرنے جا رہا ہے 645 01:01:45,440 --> 01:01:52,250 اور پھر ہمارے بفر میں سٹور، ہم کہتے ہیں کہ ایک بفر، یہ وہ جگہ ہے جہاں ہم سٹرنگ ذخیرہ کرنے کر رہے ہیں. 646 01:01:52,250 --> 01:02:00,750 تو ہم کے اندر ذخیرہ کرنے رہے ہیں اور صحیح طریقے سے فارمیٹ سٹرنگ،٪ D 4 کے ساتھ کی جگہ. 647 01:02:00,750 --> 01:02:08,080 [Student کی] متغیر صرف reassigned رکھا جائے جا F تو اگر ہم نے یہ کیا ہے؟ 648 01:02:08,080 --> 01:02:18,110 جی ہاں. تو ہم یہ کرنے سے پہلے اصل F بند ہو جانا چاہئے. 649 01:02:18,110 --> 01:02:22,810 لیکن - اور پھر بھی، اگر ایک F یہاں کھول نہیں تھے، تو پھر ہم یہ کہنے کی ضرورت ہو گی - 650 01:02:22,810 --> 01:02:29,280 جی ہاں. لیکن یہ ایک سو مختلف فائلوں کو کھولنے گے. 651 01:02:29,280 --> 01:02:37,360 ٹھیک ہے - [Student کی] لیکن ہم یا تک رسائی حاصل کرنے کے قابل نہیں کرے گی. 652 01:02:37,360 --> 01:02:44,230 ٹھیک ہے. تو اسکین F، F اسکین F، اسی خیال کی قسم ہے، 653 01:02:44,230 --> 01:02:53,610 بلکہ اس کی بجائے، بجائے ایک سٹرنگ میں ذخیرہ کرنے کا، یہ اب آپ ہیں کی طرح ہے 654 01:02:53,610 --> 01:03:02,420 ایک قسم اور اس سٹرنگ کے خلاف طرز کے ملاپ کے پر چل رہا ہے اور متغیر میں نتائج کو ذخیرہ کرنے. 655 01:03:02,420 --> 01:03:11,290 آپ کو اسکین F استعمال 4.jpg طرح کچھ زائد کا تجزیہ کرنے کے لئے، کر سکتے ہیں اور رقم int ایکس میں عددی 4 محفوظ کر سکتے ہیں. 656 01:03:11,290 --> 01:03:13,430 یہی ہے جو ہم کے لئے اسکین F کا استعمال کر سکتے ہیں. 657 01:03:13,430 --> 01:03:16,300 F اسکین F ہے کہ کمانڈ لائن میں کیا کرنے والی ہے. 658 01:03:16,300 --> 01:03:19,200 میں واقعی میں ہوں یقین ہے یہ وہی ہے جو CS50 لائبریری کرتا ہے. 659 01:03:19,200 --> 01:03:29,050 تو جب آپ کا کہنا ہے کہ، "int حاصل،" یہ پر اسکین F-ING - اسکین F جس طرح سے آپ صارف کی ان پٹ حاصل ہے. 660 01:03:29,050 --> 01:03:34,670 F اسکین F ایک ہی بات کیا کرنے جا رہا ہے لیکن ایک فائل کا استعمال کرتے ہوئے ختم اسکین. 661 01:03:34,670 --> 01:03:41,090 تو یہاں، ہم اس فائل پر سکین کر رہے ہیں. 662 01:03:41,090 --> 01:03:45,460 طرز پر ہم مقابلہ کرنے کی کوشش کر رہے ہیں وہ کچھ سٹرنگ ہے کہ 127 حروف طویل ہے ہے 663 01:03:45,460 --> 01:03:48,100 ایک نئی سطر کے بعد 664 01:03:48,100 --> 01:03:54,770 تو مجھے یقین ہے ہم بھی کہہ سکتے ہوں "کے میچ،" لغت میں کے بعد 665 01:03:54,770 --> 01:03:57,770 ہم ہو، ہم بات کی ضمانت کوئی لفظ جب تک کہ ہے، 666 01:03:57,770 --> 01:04:03,310 اور بھی ایف اسکین F نئی لائن میں، میں سوچتا ہوں، کوئی بات نہیں جو بند ہو جائیں گے. 667 01:04:03,310 --> 01:04:06,970 لیکن ہم میچ میں نئی ​​لائن شامل گے، اور - 668 01:04:06,970 --> 01:04:13,960 [Student کی] اگر ہم نئی لائن شامل نہیں کیا، اس ایک لفظ کے حصے نہیں ملے گا؟ 669 01:04:13,960 --> 01:04:22,900 یہ - ہر - ڈکشنری دیکھ - 670 01:04:22,900 --> 01:04:26,200 تو لغت میں، یہ ہیں ہماری تمام الفاظ کی ہے. 671 01:04:26,200 --> 01:04:30,500 میں سے ہر ایک میں ایک نئی سطر ہے. 672 01:04:30,500 --> 01:04:32,510 اسکین F اس لفظ لینے جا رہی ہے. 673 01:04:32,510 --> 01:04:38,750 اگر ہم نئی لائن شامل نہیں ہے، تو یہ ممکن ہے کہ اگلے اسکین F نئی لائن پڑھ گا. 674 01:04:38,750 --> 01:04:44,180 لیکن نئی لائن بھی شامل ہے تو نئی لائن کو نظر انداز کرے گا. 675 01:04:44,180 --> 01:04:49,440 لیکن ہم ایک لفظ کا حصہ کبھی نہیں ملے، کے بعد ہم ہمیشہ ایک نئی سطر میں ہیں پڑھ کر، کوئی بات نہیں کیا کریں گے. 676 01:04:49,440 --> 01:04:54,530 [Student کی] لیکن کیا اگر آپ cissa طرح لفظ "cissa،" کے لئے تلاش کریں. 677 01:04:54,530 --> 01:04:57,380 کہ یہ تلاش اور کا کہنا ہے کہ یہ ایک میچ ہے؟ 678 01:04:57,380 --> 01:05:05,110 لہذا ہم یہاں - اس میں پڑھنے گا - یہ اصل میں ایک اچھی بات ہے. 679 01:05:05,110 --> 01:05:10,660 ہم موجودہ کا استعمال کرتے ہوئے کبھی نہیں رہے ہیں - لفظ ہم کے لئے تلاش کر رہے ہیں کی پہلی کمانڈ لائن کی دلیل یہ ہے. 680 01:05:10,660 --> 01:05:16,460 تو سٹرنگ لفظ، = 1 argv. 681 01:05:16,460 --> 01:05:20,020 تو سٹرنگ ہم کے لئے تلاش کر رہے ہیں 1 argv ہے. 682 01:05:20,020 --> 01:05:23,290 ہم ہمارے اسکین F میں سب ایک لفظ کے لئے تلاش نہیں کر رہے ہیں. 683 01:05:23,290 --> 01:05:28,030 کیا ہم اسکین F کے ساتھ کر رہے تھے لغت میں ہر لفظ ہو رہی ہے، 684 01:05:28,030 --> 01:05:34,320 اور پھر ایک بار ہم اس لفظ ہم strcmp ان کا آپس میں موازنہ کرنے کے لئے استعمال کی جا رہے ہیں. 685 01:05:34,320 --> 01:05:39,210 ہم ہمارے لفظ کا آپس میں موازنہ کرنے جا رہے ہیں اور جو ہم نے ابھی اندر پڑھ 686 01:05:39,210 --> 01:05:45,110 تو لامحالہ، ہم اسکین fs کا ایک گروپ کرنے کو ختم کرنے جا رہے ہیں 687 01:05:45,110 --> 01:05:52,130 جب تک یہ صرف اس لئے ہوتا اسکین F کہ واپس آ جائیں گے - 688 01:05:52,130 --> 01:05:54,800 یہ ایک واپس، جب تک کے طور پر یہ ایک نیا لفظ مماثل ہے، 689 01:05:54,800 --> 01:06:01,360 اور یہ کچھ اور جیسے ہی لفظ سے ملنے کے لئے ناکام ہو گیا ہے واپس آ جائیں گے. 690 01:06:01,360 --> 01:06:08,440 ہم پوری لغت پر پڑھ رہے ہیں اور لائن کی طرف سے لائن ہر لفظ متغیر S میں ذخیرہ کرنے. 691 01:06:08,440 --> 01:06:17,240 اس کے بعد ہم کے ساتھ لفظ موازنہ کر رہے ہیں، اور اگر موازنہ 0 == 692 01:06:17,240 --> 01:06:21,650 strcmp 0 اگر ایک میچ کیا گیا تھا لانے ہوتا ہے. 693 01:06:21,650 --> 01:06:31,510 تو اگر یہ 0 تھی، تو پھر ہم F پرنٹ، مماثل کر سکتے ہیں، 694 01:06:31,510 --> 01:06:35,370 یا لفظ لغت میں ہے، یا جو کچھ بھی آپ F پرنٹ کرنے کے لئے چاہتے ہیں. 695 01:06:35,370 --> 01:06:41,450 اور پھر - ہم F ختم بند کرنے اور پھر نہیں چاہتا ہے. 696 01:06:41,450 --> 01:06:50,410 یہ چیز کی طرح ہے جو ہم کرنا چاہتے ہیں، اور ہم لغت میں لفظ کے لئے نہ صرف دیکھ رہے ہیں. 697 01:06:50,410 --> 01:06:56,660 تو ہم ایسا، اگر ہم ان کے پیٹرن، cissa تلاش کرنے کے لئے کرنا چاہتا تھا، جیسے تم نے پہلے کہا تھا، 698 01:06:56,660 --> 01:07:00,260 اگر ہم نے کہ اس انداز سے تلاش کرنے کے لئے کرنا چاہتا تھا، تو اس صورت میں ناکام گی 699 01:07:00,260 --> 01:07:08,010 کہ اصل میں ایک لفظ نہیں، لیکن اس کی لغت میں الفاظ میں سے ایک اس میں کیا ہوتا ہے. کیونکہ. 700 01:07:08,010 --> 01:07:13,560 تو اس لفظ میچ، لیکن اس لفظ کے اپسمچی ایک لفظ ہی نہیں ہے. 701 01:07:13,560 --> 01:07:17,250 لیکن یہ نہیں ہے کہ ہم کس طرح اس کا استعمال کر رہے ہیں، ہم ہر لفظ میں پڑھ رہے ہو 702 01:07:17,250 --> 01:07:19,740 اور پھر لفظ ہم اس لفظ کے ساتھ موازنہ کرتے ہیں. 703 01:07:19,740 --> 01:07:25,780 تو ہم ہمیشہ مکمل الفاظ کا موازنہ کر رہے ہیں. 704 01:07:25,780 --> 01:07:29,620 میں حتمی شکل دے دی حل بعد میں بھیج سکتے ہیں. 705 01:07:29,620 --> 01:07:32,050 یہ تقریبا درست جواب کی طرح ہے، مجھے لگتا ہے. 706 01:07:32,050 --> 01:07:34,720 [Student کی تبصرہ، unintelligible] 707 01:07:34,720 --> 01:07:40,870 اوہ، میں اس سے چھٹکارا سے پہلے ملا؟ چار کے، مجھے لگتا ہے کہ ہم 127 نے کہا - میں بھول جاؤ جو سب سے بڑا ہے. 708 01:07:40,870 --> 01:07:44,100 تو اب کے کافی ہے، ہم 128 کروں گا. 709 01:07:44,100 --> 01:07:46,570 ہم کچھ بھی پرنٹ کرنے کی ضرورت نہیں ہے. 710 01:07:46,570 --> 01:07:56,440 ہم نے اپنی فائل کو بند کرنے کی ضرورت چاہتے جا رہے ہیں، اور یہ کہ درست جواب کے بارے میں ہونا چاہئے. 711 01:07:56,440 --> 01:07:59,440 CS50.TV