1 00:00:00,000 --> 00:00:02,750 >> [سیکشن 9] [زیادہ آرام دہ] 2 00:00:02,750 --> 00:00:04,750 [روب Bowden] [ہارورڈ یونیورسٹی] 3 00:00:04,750 --> 00:00:06,750 [یہ CS50 ہے.] [CS50.TV] 4 00:00:06,750 --> 00:00:12,130 >> ٹھیک ہے. بنیادی طور پر آج یہ کچھ سوال پوچھنا تمام لوگ آپ پر منحصر ہے. 5 00:00:12,130 --> 00:00:15,070 میں نے کچھ موضوعات کے ساتھ گھومنا کرنے کے قابل ہو سکتا ہے 6 00:00:15,070 --> 00:00:17,570 کوئی بھی پوچھنا کا کوئی سوال ہے تو تھوڑا سا کے لئے. 7 00:00:17,570 --> 00:00:20,660 امید ہے کہ آپ ایسا کرتے ہیں. کسی کا کوئی سوال ہے؟ 8 00:00:20,660 --> 00:00:25,220 شاید ماضی quizzes کی طرف سے، چیزوں کو آپ فی الحال کے ساتھ آرام دہ اور پرسکون نہیں ہو. 9 00:00:34,630 --> 00:00:37,850 >> جی ہاں. >> [طالب علم] بفر اتپرواہ حملوں کے جا سکتا ہے؟ >> [روب] جی ہاں. 10 00:00:37,850 --> 00:00:45,530 اہم مثال کے طور پر اصل میں یہاں ہو سکتا ہے. 11 00:00:45,530 --> 00:00:48,720 بفر اتپرواہ حملوں کے پیچھے اہم معاہدے ہیں 12 00:00:48,720 --> 00:00:51,540 ہم یہاں، کچھ بفر ہے. 13 00:00:51,540 --> 00:00:54,110 چار C - صرف سائز 12 ہے - 14 00:00:54,110 --> 00:00:57,580 لیکن اس وقت ہم نے اس کے بفر میں کچھ داخل کر رہے ہیں 15 00:00:57,580 --> 00:01:00,050 لیکن ہم داخل کر رہے ہیں کتنا بالکل جانچ پڑتال نہیں. 16 00:01:00,050 --> 00:01:06,740 یہاں ہم C میں strlen کی (بار) داخل کر رہے ہیں، لیکن جو طویل بار ہے کس طرح جانتا ہے. 17 00:01:06,740 --> 00:01:11,970 یہ 12 حروف سے زیادہ طویل ہے تو یہ اس بفر اتپرواہ کی جا رہی ہے. 18 00:01:11,970 --> 00:01:15,830 اس تصویر کو دیکھ کر - 19 00:01:15,830 --> 00:01:20,840 آپ 61 لے تو آپ کو ترتیب کے اس طرح کے ساتھ بہت زیادہ واقف ہو جاؤ گے 20 00:01:20,840 --> 00:01:25,760 اور محفوظ فریم پوائنٹر اور واپسی ایڈریس اور والدین کی معمول اسٹیک کے ساتھ نمٹنے 21 00:01:25,760 --> 00:01:27,760 اور ان کی اصل چیزوں کے. 22 00:01:27,760 --> 00:01:31,340 لیکن یہاں آپ کو صرف کہ ہم جاننے کی ضرورت ہے 23 00:01:31,340 --> 00:01:35,990 ہمارے بفر کے لئے اس چھوٹی سی جگہ. 24 00:01:35,990 --> 00:01:39,480 یہاں ہم C (0) ہے اور پھر ہم تو C، 1، 2، 3، 4، 5 اور ہے. 25 00:01:39,480 --> 00:01:44,810 عام حالات کے تحت ہم معمول کے مطابق اس بفر بھرنے گا. 26 00:01:44,810 --> 00:01:50,480 ہم ڈالا تو خوش 'ہم H-E-L-L-O / 0 پڑے گا، 27 00:01:50,480 --> 00:01:52,900 اور اس کے بعد خالی جگہ کے صرف ایک گروپ. 28 00:01:52,900 --> 00:01:57,910 ایک ہیکر کے لئے - اوہ، میں نے یہ مثال ہے لگتا ہے. 29 00:01:57,910 --> 00:02:02,470 ایک ہیکر کے لئے ہم نے یہ کہاں کی طرح کچھ حاصل 30 00:02:02,470 --> 00:02:04,760 کیا وہ خاص طور پر کرنے کی کوشش کر رہے ہیں 31 00:02:04,760 --> 00:02:07,890 عام طور پر واپسی ایڈریس کی جگہ لے لے. 32 00:02:07,890 --> 00:02:12,510 آپ کو ایک تقریب فون اور آپ کے اسٹیک فریم اسٹیک پر دھکیل دیا جاتا ہے جب بھی 33 00:02:12,510 --> 00:02:14,690 کہ اسٹیک فریم کس طرح پتہ کرنے کی ضرورت ہے - 34 00:02:14,690 --> 00:02:21,020 ٹھیک ہے، کہا گیا ہے کہ تقریب پر یہ کہا جاتا ہے کہ تقریب کے لئے واپس کرنے کے لئے کس طرح پتہ کرنے کی ضرورت ہے. 35 00:02:21,020 --> 00:02:23,780 اہم کالز FOO تو،، FOO کو، اہم کرنے کے لئے واپس کرنے کی ضرورت ہے 36 00:02:23,780 --> 00:02:26,300 اور تو ہے کہ اس کی واپسی کے ایڈریس کرتا ہے. 37 00:02:26,300 --> 00:02:28,800 لیکن کیا ہیکر کیا جا رہا ہے ہے 38 00:02:28,800 --> 00:02:30,820 ایک خصوصی واپسی ایڈریس کے ساتھ اس کی جگہ لے لے 39 00:02:30,820 --> 00:02:40,090 پھر جہاں - لٹل بھارتی - یہ براہ راست نہیں ہے لیکن ہر بائٹ پیچھے کی طرف ہے. 40 00:02:40,090 --> 00:02:47,300 یہ واپسی ایڈریس جہاں تک کمپیوٹر کے طور پر فکر مند ہے 41 00:02:47,300 --> 00:02:51,390 اس پتے پر واپس لوٹنے FOO واپس لوٹنے کے برابر یا اہم ہے 42 00:02:51,390 --> 00:02:53,850 یا جو کچھ بھی تقریب میں یہ کہا جاتا ہے. 43 00:02:53,850 --> 00:02:54,800 تو یہ اس پتے پر واپس جا رہا ہے 44 00:02:54,800 --> 00:02:58,130 تو اس پتے پر ہوتا ہے جس 45 00:02:58,130 --> 00:03:04,740 جو یا تو کبھی کبھی کیا وہ یہاں واپسی ایڈریس کا استعمال 46 00:03:04,740 --> 00:03:09,150 وہ جانتے ہیں کہ ایک مخصوص تقریب کے وہاں پہلے سے ہی ہے. 47 00:03:09,150 --> 00:03:12,630 میں تقریب کہا جاتا ہے کیا یاد نہیں کر سکتے. 48 00:03:12,630 --> 00:03:14,630 میں بعد میں اس کو دیکھتا ہوں. 49 00:03:14,630 --> 00:03:17,570 >> یہاں وہ کیا کر رہے ہیں واپسی ایڈریس گزر رہا ہے 50 00:03:17,570 --> 00:03:26,310 اسٹیک خود، اور یہ کسی حد تک عجیب ہے جہاں ہے 51 00:03:26,310 --> 00:03:29,530 میموری جہاں کی مثالیں ہیں - 52 00:03:29,530 --> 00:03:34,350 میموری صرف پڑھنے، پڑھنے لکھنے میں تقسیم، اور کارکردگی میموری کیا جا سکتا ہے 53 00:03:34,350 --> 00:03:38,710 - ہم سے پہلے جہاں میموری صرف پڑھنے دیکھا ہے جہاں 54 00:03:38,710 --> 00:03:43,960 میں نے چار * کا کہنا ہے کہ = خوش میں خوش تبدیل نہیں کر سکتے. 55 00:03:43,960 --> 00:03:46,200 یہ صرف پڑھنے کی میموری. 56 00:03:46,200 --> 00:03:49,570 کارکردگی میموری کے اس خیال بھی ہے 57 00:03:49,570 --> 00:03:53,870 کارکردگی میموری آپ کے کوڈ کے متن کے ٹکڑے ہو جائے گا جہاں. 58 00:03:53,870 --> 00:03:57,350 اپنے معمول کے پتے کی جگہ ترتیب میں تلاش - 59 00:03:57,350 --> 00:04:03,090 مجھے لگتا ہے کہ ایک اچھی تصویر جا رہا ہے یقین ہے کہ - 60 00:04:08,200 --> 00:04:12,170 یہ کام کرتا ہے - ہم یہاں ہمارے اسٹیک ہے جہاں. ہم ڈیٹا میموری ہے. 61 00:04:12,170 --> 00:04:16,360 بنیادی طور پر اس پر توجہ نہ دیں. یہ ہماری ڈھیر ہے. 62 00:04:16,360 --> 00:04:18,810 اور پھر ہم یہاں ہماری اہم پروگرام کوڈ ہے. 63 00:04:18,810 --> 00:04:27,480 یہ ہم * = خوش چار کی طرح ہمارے ڈور ڈال جگہ ہے جہاں کی طرح ہے 64 00:04:27,480 --> 00:04:29,730 اور یہ کہ صرف پڑھنے ہے. 65 00:04:29,730 --> 00:04:33,590 لیکن آپ کو بھی کارکردگی کے طور پر اس اہم پروگرام کے کوڈ کو نشان زد کر سکتے ہیں. 66 00:04:33,590 --> 00:04:37,950 اور تم نے کیا کر رہے ہیں یا آپ کے آپریٹنگ سسٹم کرتا ہے کہ اگر درست طریقے سے 67 00:04:37,950 --> 00:04:40,910 پھر اس کی یاد میں صرف جگہ ہونا چاہئے 68 00:04:40,910 --> 00:04:44,830 کوڈ ہے کہ اصل میں پھانسی کر سکتے ہیں 69 00:04:44,830 --> 00:04:48,550 جس بفر اتپرواہ حملے کے اس طرح ہم یہاں پر ہے مطلب یہ ہے کہ 70 00:04:48,550 --> 00:04:53,800 یہ یہاں ہمارے اسٹیک میں میموری پر عمل کرنے کی کوشش کر رہی ہے کیونکہ غیر موثر ہو جائے گا. 71 00:04:53,800 --> 00:04:57,230 تصاویر سب سے پہلے ہیں نوٹس. 72 00:04:57,230 --> 00:04:59,270 ہم اپنے اسٹیک بڑھتی ہوئی ہے. 73 00:04:59,270 --> 00:05:01,270 یہاں اسٹیک نیچے بڑھ رہی ہے. 74 00:05:01,270 --> 00:05:03,270 CS50 مقاصد کے لئے اسٹیک بڑھتا ہے. 75 00:05:03,270 --> 00:05:09,520 >> یہ بفر اتپرواہ کے اس مخصوص قسم درکنار ممکن ہے 76 00:05:09,520 --> 00:05:15,110 غیر کارکردگی علاقوں میں میموری کی یہ کارکردگی خطے کی طرف سے. 77 00:05:15,110 --> 00:05:21,420 لیکن یہ صرف اس شاذ و نادر ہی کارکردگی میموری کارکردگی کے طور پر نشان لگا دیا گیا ہے کہ ایسا ہوتا ہے. 78 00:05:21,420 --> 00:05:26,520 یہ صرف، صرف پڑھنے اور دوبارہ لکھنے جا استعمال کیا جاتا ہے کہ صرف چیزیں ہیں کے لئے جاتا ہے 79 00:05:26,520 --> 00:05:28,990 تو یہ اب بھی بہت مؤثر ہے. 80 00:05:28,990 --> 00:05:31,950 اور ہم یہاں ہم چاہتے ہیں جو کچھ بھی ڈال سکتے ہیں. 81 00:05:31,950 --> 00:05:35,020 یہ اصل میں 61 اس سال میں ایک pset کے طور پر نہیں کیا گیا تھا، 82 00:05:35,020 --> 00:05:38,400 لیکن آپ کو گزشتہ سال کی اس کی پیشکش یا کسی بھی گزشتہ سال پر نظر ڈالیں تو 83 00:05:38,400 --> 00:05:44,110 ایک pset کے آپ خاص طور پر سمجھا جاتا ہے کہ یہاں کے کوڈ میں داخل کرنے کی توقع کر رہے ہیں 84 00:05:44,110 --> 00:05:48,960 کچھ مخصوص قدر کو پرنٹ یا سے مختلف ہے کہ ایک قیمت واپس 85 00:05:48,960 --> 00:05:51,400 پرنٹ کرنے کے لئے سمجھا جاتا ہے اس کی قیمت. 86 00:05:51,400 --> 00:05:57,770 یا اس سے زیادہ چالاکی، یہ آپ کے فون یا لکھنے کے لئے چاہتا ہے - 87 00:05:57,770 --> 00:06:03,320 ، تو یہ یہاں تک واپس آ جائیں گے اور پھر آپ یہاں کچھ کوڈنگ پر عمل کریں گے 88 00:06:03,320 --> 00:06:09,720 اور کناروں سے باہر آ کے cleverest تو اس ایڈریس کو واپس کرنے کے لئے استعمال کیا واپس آ جائیں گے. 89 00:06:09,720 --> 00:06:11,970 ہم اس کی جگہ لے لے کرنے کی ضرورت ہے تو اگرچہ 90 00:06:11,970 --> 00:06:16,720 یہاں آنے کے لئے، ہم اب بھی کہیں کہ واپسی ایڈریس یاد 91 00:06:16,720 --> 00:06:18,890 ہم، اہم یا جو کچھ بھی کرنے کے لئے واپس کر سکتے ہیں تاکہ 92 00:06:18,890 --> 00:06:23,800 ہم بھی چیزیں غلط ہو گیا کہ دیکھا کبھی نہیں کی طرح ہے اور یہ ہے. 93 00:06:23,800 --> 00:06:30,100 لیکن چیزیں کہ شاید یہاں کے اندر ہم نے اپنے فون gelbroke جہاں معاملہ ہے ایسا ہی کیا. 94 00:06:30,100 --> 00:06:35,670 حالات معمول کے طور پر جانے - ہم کچھ پروگرام کو چلانے اور چیزوں کو واپس لوٹنے کو ختم طرح 95 00:06:35,670 --> 00:06:38,540 اس کے لئے واپس کرنے کے لئے کرنا ہے جو کچھ بھی، لیکن اس دوران میں 96 00:06:38,540 --> 00:06:41,820 آپ کو پورے آپریٹنگ سسٹم کو تباہ کرنے کے لئے منظم. 97 00:06:41,820 --> 00:06:50,950 کوڈ بفر کناروں سے باہر آ کے بارہ میں یا اصل میں اس کا فائدہ اٹھاتے ہوئے معلوم کرنے کے لئے کی ضرورت نہیں ہے. 98 00:06:50,950 --> 00:06:58,060 آپ کو اس کے بنیادی نظریات جاننے کی ضرورت ہے پر overflowed کیا جا رہا ہے کہ بفر ہے، 99 00:06:58,060 --> 00:07:02,010 اور یہ ہم جانچ پڑتال نہیں کر رہے ہیں کیونکہ اس پر overflowed کیا جا سکتا ہے کی وجہ سے ہے 100 00:07:02,010 --> 00:07:06,110 ہم اس کی حد کے اندر اندر اصل میں ہیں. 101 00:07:06,110 --> 00:07:09,880 >> [طالب علم] یہ صرف حد کی جانچ پڑتال کی ہے کی روک تھام کے لئے حل کیا ہے؟ 102 00:07:09,880 --> 00:07:13,600 [روب] جی ہاں. اس صورت میں حل ہو جائے گا 103 00:07:13,600 --> 00:07:20,850 بار کے strlen کی 12-1 سے زیادہ ہے تو آپ کہہ سکتے ہیں یا تو - 104 00:07:20,850 --> 00:07:24,970 آپ کو آخر میں / 0 کی ضرورت ہے - 105 00:07:24,970 --> 00:07:34,090 یا آپ کو دستی طور پر لوپ کے لئے ایک ہے کہ صرف کاپیاں پہلے 11 حروف، کر سکتے ہیں 106 00:07:34,090 --> 00:07:39,710 یا آپ اصل میں آپ اس بفر اتپرواہ نہیں ہے اس بات کا یقین کرنے کے لئے کی جانچ پڑتال کر رہے ہیں جہاں کچھ. 107 00:07:45,580 --> 00:07:49,050 >> دیگر سوال؟ جی ہاں؟ 108 00:07:49,050 --> 00:07:52,760 [طالب علم] کی کوشش کرتا ہے اور شاید پروگرامنگ (اشراوی) کے بارے میں کچھ کے بارے میں بات کر سکتے ہیں. 109 00:07:52,760 --> 00:07:58,720 [روب] جی ہاں. 110 00:07:58,720 --> 00:08:03,500 اصل پروگرام - 111 00:08:03,500 --> 00:08:08,190 ہم آپ کو امتحان پر ایک trie کا ایک عمل درآمد کرتے ہیں کبھی نہیں کرے گا 112 00:08:08,190 --> 00:08:12,840 یہ ہیش میزیں کیا وہ لوگ جو غیر منصفانہ ہو گا کیونکہ. 113 00:08:12,840 --> 00:08:16,030 اور اسی طرح ہم نے آپ کو امتحان پر ایک ہیش میز پر عمل درآمد کبھی نہیں کرے گا 114 00:08:16,030 --> 00:08:18,560 اس کی کوشش کرتا ہے جو ان لوگوں کے لئے غیر منصفانہ ہو گا کیونکہ. 115 00:08:18,560 --> 00:08:25,220 آپ بہر حال ایک trie یا ایک ہیش ٹیبل کے struct کی یا جو کچھ بھی کے struct کی پتہ ہونا چاہیئے. 116 00:08:25,220 --> 00:08:30,230 یہ اصل میں ہم نے دیکھا ہے اعداد و شمار کے ڈھانچے کی کسی بھی قسم کی سچ ہے. 117 00:08:30,230 --> 00:08:33,559 لنک کی فہرست، سجا دیئے skews، بائنری درخت - 118 00:08:33,559 --> 00:08:38,190 آپ کو دل کی طرف سے ان لوگوں کو structs کی وضاحت کرنے کے قابل ہونا چاہئے. 119 00:08:38,190 --> 00:08:44,810 ایک trie - آپ کیا کرنے کی ضرورت ہو گی صرف ایک ہی چیز کا مطلب ہے کہ ہم آپ کو دے دیں گے ہو سکتا ہے 120 00:08:44,810 --> 00:08:50,070 کچھ لفظ یا کچھ اور ہم اس trie کے تعمیر کہیں گے - 121 00:08:50,070 --> 00:08:52,870 ہم آپ کے الفاظ کی شاید ایک سیٹ دے دیں گے 122 00:08:52,870 --> 00:08:56,280 ہم اس ڈکشنری کی نمائندگی کرتا ہے ایک trie کی تعمیر کی طرح ہو. 123 00:08:56,280 --> 00:09:05,980 >> کی ہماری لغت بلی اور کتا بنا دو. 124 00:09:05,980 --> 00:09:10,790 trie کے خیال ہے کہ ہم اس صف کے ساتھ باہر شروع ہے - 125 00:09:10,790 --> 00:09:16,510 26 سلاٹس - 126 00:09:16,510 --> 00:09:24,490 اور ہر ایک سلاٹ میں سلاٹ کی اصل انڈیکس ہم سے فکر مند ہیں خط کے مساوی ہے. 127 00:09:24,490 --> 00:09:28,560 تو یہاں ہم ہمارے trie میں بلی داخل کرنے کی کوشش کر رہے ہیں 128 00:09:28,560 --> 00:09:35,360 پہلے کردار کی جا رہی ہے جس میں 'سی' ہے ایک 0 ہے تو B 1 ہے، C 2 ہے. ' 129 00:09:35,360 --> 00:09:38,090 ہم دوسرے انڈیکس میں جانے کے لئے جا رہے ہیں، 130 00:09:38,090 --> 00:09:41,100 اور ہم اس سے دور ایک trie پیدا کرنے کے لئے جا رہے ہیں. 131 00:09:41,100 --> 00:09:47,080 ہم 26 سلاٹ لئے جا رہے ہیں. 132 00:09:47,080 --> 00:09:51,140 اور پھر ہم انڈیکس بلی کے دوسرے کردار کے لئے جا رہے ہیں. 133 00:09:51,140 --> 00:09:53,340 یہ 0 اسپاٹ جا رہا ہے جو 'ایک' ہے. 134 00:09:53,340 --> 00:09:56,960 اور یہ کہ 26 مقامات کے کرنے کے لئے جا رہا ہے. 135 00:09:56,960 --> 00:10:05,650 اس کے بعد ہم 'ٹی' پر جائیں اور ہم بھی نیچے آ اصل میں اس قسم کی ضروری ہے کہ جو ہو گا 136 00:10:05,650 --> 00:10:13,990 کیونکہ - یہ یہاں آئے ہیں دو. یہاں 'T' کے لئے ہمارے trie ہے. 137 00:10:13,990 --> 00:10:23,370 یہ 'T' 19 انڈیکس ہے کا کہنا ہے کہ دو. 138 00:10:23,370 --> 00:10:31,020 کوشش کرتا ہے کے بارے میں یاد کے لئے اہم بات یہ ہے کہ آپ کو صرف یہ اشارہ کا ٹریک رکھنے کے نہیں کر سکتے ہیں. 139 00:10:31,020 --> 00:10:35,470 تم نے بھی یہ اصل میں ایک لفظ کے آخر ہے کہ کے ٹریک رکھنے کے لئے ہے. 140 00:10:35,470 --> 00:10:38,570 تو، یہاں کے اندر ہم کا کہنا ہے کہ پرچم کے کچھ قسم کی ضرورت ہے 141 00:10:38,570 --> 00:10:41,520 ٹھیک ہے، یہ اصل میں ایک لفظ کے آخر ہے. 142 00:10:41,520 --> 00:10:46,830 ہم بعد ہماری لغت میں تباہ کن داخل کرنے کی کوشش کریں تو وجہ 143 00:10:46,830 --> 00:10:49,930 اسی سے شروع ہونے والے 3 حروف ہے جو 144 00:10:49,930 --> 00:10:57,250 لیکن مزید پر جاتا ہے ہم اس ایک لفظ کے آخر ہے کہ تسلیم کرنے کی ضرورت ہے. 145 00:10:57,250 --> 00:11:01,330 ہم 'اے' کو دیکھنے کے لئے کی کوشش کرتے ہیں یا متبادل کے طور پر ہو سکتا ہے ایک لفظ نہیں ہے 146 00:11:01,330 --> 00:11:06,100 لیکن ہم یہاں پھر ہم کو حاصل - 147 00:11:06,100 --> 00:11:10,270 یا اسے سی ہو جائے گا اور پھر ہم ایک میں نظر آئے گا - 148 00:11:10,270 --> 00:11:13,940 ہم کو تسلیم کرنے کی ضرورت ہے کہ اس نوڈ سے باہر آنے والے ایک پوائنٹر ہے اگرچہ 149 00:11:13,940 --> 00:11:15,940 اس لفظ کے آخر کی نمائندگی نہیں کرتا. 150 00:11:15,940 --> 00:11:19,430 >> تو، اس کا کیا مطلب ہے - کیا تم کہتے جا رہے تھے؟ 151 00:11:19,430 --> 00:11:22,760 کہ ہماری struct کی طرح لگتا کیا مطلب ہے؟ 152 00:11:22,760 --> 00:11:25,760 [Student کی] یہ ایک bool تھے یا نہیں تھے تو 26 طویل اور ہے کہ اشارہ کے ایک صف ہے. 153 00:11:25,760 --> 00:11:47,430 [روب] جی ہاں. لہذا، ہم ایک struct trie کے * اشارہ پڑے گا - یہاں ہم [26] پر کہیں گے 154 00:11:47,430 --> 00:11:49,590 اور پھر یہاں پر نیم وقفہ. 155 00:11:49,590 --> 00:11:53,210 لیکن pset پر، ہم بھی اپوسٹروفاس لئے اکاؤنٹ کی ضرورت، 156 00:11:53,210 --> 00:11:58,170 جس سے آپ انڈیکس 27 یا کچھ اور کے ساتھ apostrophe کے کہ سخت کوڈ کی ضرورت ہے کا مطلب ہے. 157 00:11:58,170 --> 00:12:00,440 لیکن یہاں ہم صرف کے بارے میں 26 کی دیکھ بھال. 158 00:12:00,440 --> 00:12:11,830 اور پھر ہم شاید ایک میں چار یا bool کے کی ضرورت ہے - یہ لفظ ہے کہتے ہیں. 159 00:12:11,830 --> 00:12:18,120 کہ میں تم نے کبھی کی کوشش کرتا ہے کے بارے میں جاننے کی ضرورت ہو گی لگتا ہے کہ 3 چیزوں کے 2 ہے - 160 00:12:18,120 --> 00:12:24,370 ان کی تعمیر، ان میں سے struct کی، اور آخری بات یہ ہے کہ ان میں سے رن وقت ہے. 161 00:12:24,370 --> 00:12:28,250 یا ایک trie میں تلاش - >> ایک trie کی رن ٹائم کیا ہے؟ 162 00:12:28,250 --> 00:12:47,500 ہم اس K ہم دیکھ ہو لفظ کی لمبائی ہے جہاں اے (K) کا کہنا ہے کہ جہاں یہ ہے، 163 00:12:47,500 --> 00:12:53,850 لیکن ایک ہی وقت میں ہم کہتے ہیں - کم از کم 5 pset کے ہجے کنندہ کے لئے - ہم کا کہنا ہے کہ 164 00:12:53,850 --> 00:12:59,470 لغت میں سب سے طویل لفظ 45 حروف ہے، تو یہ بنیادی طور پر ہے 165 00:12:59,470 --> 00:13:04,900 مسلسل وقت ہے جس میں 45 اے. 166 00:13:04,900 --> 00:13:09,660 تو، ایک پابند بالائی تو آپ سب سے طویل لفظ پر ہے - 167 00:13:09,660 --> 00:13:15,130 یا اس سے بھی انگریزی لغت کی طرح - آپ کے سب سے طویل لفظ پر پابند بالائی ہے. 168 00:13:15,130 --> 00:13:19,970 یا کسی بھی لغت - ایک سب سے طویل آپ کے اوپری لفظ پر پابند ہے. 169 00:13:19,970 --> 00:13:25,480 کوئی بات نہیں آپ کیا کر رہے ہیں مسلسل وقت ہے، 170 00:13:25,480 --> 00:13:33,810 اصل میں چل رہا کے درمیان ایک فرق کا کہنا ہے کہ کیونکہ کشمیر کے O اچھا ہے 171 00:13:33,810 --> 00:13:40,120 صرف 3 حروف تک الفاظ ہیں جس میں ایک حروف تہجی کے مقابلے میں 45 کردار لفظ. 172 00:13:40,120 --> 00:13:52,870 اس کے بارے میں ایک اور بات یہ ہے کہ - 173 00:13:52,870 --> 00:13:57,520 اوہ، کیونکہ صرف 45 ہماری سب سے طویل لفظ پر ہوتا ہے یہ کہتے ہوئے کہ 174 00:13:57,520 --> 00:14:02,330 ایک ہی وقت میں کی ایک الگورتھم این اے کا کہنا ہے کہ کیونکہ قسم کے پاگل ہے 175 00:14:02,330 --> 00:14:06,510 ٹھیک ہے ٹھیک ہے، میموری صرف 2 ^ 32 بائٹس تک کی حمایت کرتا ہے کیونکہ، 176 00:14:06,510 --> 00:14:11,770 تو (ن) سب سے زیادہ 4 ارب میں ہے اور یہی وجہ ہے کہ کچھ مواقع پر ہے، جو مسلسل وقت ہے 177 00:14:11,770 --> 00:14:14,870 یہ ایک پابند بالائی ہے جہاں اس طرح کی چیز کا کہنا ہے کہ پاگل ہے 178 00:14:14,870 --> 00:14:19,540 سب کچھ مسلسل وقت ہے کیونکہ ہم صرف مسلسل وقت کو کم کر سکتے ہیں 179 00:14:19,540 --> 00:14:22,320 تم اس طرح میں اس کے لگتا ہے کہ جب. 180 00:14:22,320 --> 00:14:25,470 لیکن ہم شاید ان میں سے دونوں قبول نہیں کرے گا. 181 00:14:25,470 --> 00:14:31,780 کسی بھی صورت میں یا تو وضاحت ہے کہ اے (1) آپ کو لفظ کے اوپری جکڑے ہوئے لمبائی ہے کا مطلب ہے؛ 182 00:14:31,780 --> 00:14:34,070 اے (K) لفظ کے آپ کی حد کے کا مطلب ہے - 183 00:14:34,070 --> 00:14:40,900 ٹھیک ہے، K لفظ کی لمبائی ہے. 184 00:14:44,060 --> 00:14:47,280 >> جی ہاں. >> [Student کی] bool کے ہے - کیونکہ آپ اپنے trie جب 185 00:14:47,280 --> 00:14:53,220 آپ کو بلی جائیں گے اور اس کے بعد آپ کو اگلے پوائنٹر جانا - یہ تھا کی طرح لگ رہا تھا 186 00:14:53,220 --> 00:14:59,860 یہ سچ برابر تو آپ کو بتا - آپ کو اس ٹی کے ساتھ کی طرح میں سچ ڈال دیں گے؟ 187 00:14:59,860 --> 00:15:06,560 [روب] کی اس کیس ہے جہاں آپ کو صرف کرنے کی کوشش کریں اور اس کے ساتھ آ سکتے ہیں مثالوں کی ایک بہت 188 00:15:06,560 --> 00:15:12,310 سادہ اور / یا انتہائی مثالیں اور کیا یہ ہو، تو لفظ 'ایک' کے بارے میں سوچنا چاہئے. 189 00:15:12,310 --> 00:15:21,320 ہماری اصل trie میں - 190 00:15:21,320 --> 00:15:35,510 ہم یہاں ایک 1 ڈال کرنا چاہتے ہیں، یا ہم یہاں ایک 1 ڈال چاہتے ہیں. 191 00:15:35,510 --> 00:15:41,350 میں آخر میں یہ شاید یا تو ہو / یا کہ کہیں گے. 192 00:15:41,350 --> 00:15:46,000 میں ایک وجہ کے بارے میں سوچنا نہیں کر سکتے ہیں - یا واقعی آپ wouldn't - 193 00:15:46,000 --> 00:15:51,060 آپ کو بھی اتنی دور جانے کی ضرورت نہیں ہے کیونکہ میں وہاں نیچے ڈال نہیں کریں گے کی وجہ سے ہے. 194 00:15:51,060 --> 00:15:55,820 ہم اس trie کے مختص کرنے کی ضرورت کبھی نہیں. 195 00:15:55,820 --> 00:15:57,950 ہم صرف وہاں 1 ڈال دیا. 196 00:15:57,950 --> 00:16:03,310 یہ اب بھی شہوت انگیز null اشارہ ہے. 197 00:16:03,310 --> 00:16:09,430 ہم صرف ایک حروف لئے جا رہے ہیں 198 00:16:09,430 --> 00:16:17,220 صرف استعمال کیا جاتا ہے کے طور پر اس خط کے موقع پر ایک دوسرے trie کے نیچے فراہم کرنے کے لئے کوئی وجہ نہیں ہے. 199 00:16:17,220 --> 00:16:21,260 اسی طرح ہم 'A' وہاں ڈال دیا تھا تو 200 00:16:21,260 --> 00:16:27,860 تو ضروری ان میں سے سب صرف تمام اوقات میں 0 ہو جائے گی. 201 00:16:27,860 --> 00:16:36,060 >> [Student کی] لیکن ہم اس 'A' کی طرف اشارہ کرے گا کہ ایک شروع ہونے والے trie کے ضرورت نہیں ہے؟ 202 00:16:36,060 --> 00:16:43,570 [روب] ہم نے کچھ عالمی یا کچھ struct کی trie کے * T ہے 203 00:16:43,570 --> 00:16:47,270 جس میں یہاں اشارہ ہے، لیکن یہ صرف ایک پوائنٹر ہے. 204 00:16:47,270 --> 00:16:51,500 یہ اس کی طرف اشارہ ہے کہ ایک مکمل تیار trie کے نہیں ہے. 205 00:16:51,500 --> 00:17:02,000 [Student کی] ٹھیک ہے. لفظ میں کے ساتھ - ہم کس طرح خط 'i'تفویض کرے گا؟ 206 00:17:02,000 --> 00:17:06,380 [روب] اس سوال کہ جواب دینے کے کیا جا سکتا ہے. رکو. 207 00:17:06,380 --> 00:17:15,060 - یہ ایک مسئلہ ہے جہاں میں اور خود کی ایک trie ہے 208 00:17:15,060 --> 00:17:17,880 میں pset کے یہ لکھا ہوتا ہے جس طرح سے معلوم نہیں ہے. 209 00:17:17,880 --> 00:17:19,880 گزشتہ struct کی خراب تھا. 210 00:17:19,880 --> 00:17:41,690 اور ایک پوائنٹر - لیکن ہم یہ بھی struct نوڈ ایک bool ہے کر سکتے ہیں - 211 00:17:41,690 --> 00:17:46,500 آپ کو یہ لکھ سکتے ایک سے زیادہ طریقوں اصل میں نہیں ہے. 212 00:17:46,500 --> 00:18:01,800 متبادل طور پر ایک trie ایک struct کرنے کی ضرورت نہیں ہے. 213 00:18:01,800 --> 00:18:21,250 * typedef نوڈ - یہ بھی trie کے ہو سکتا ہے - 214 00:18:21,250 --> 00:18:34,760 نوڈ [26] ایک trie ہے، اور اس struct نہیں ہے. 215 00:18:34,760 --> 00:18:44,270 pset کے آپ کے لئے امید کی جاتی ہے کہ جس طرح کے بارے میں سوچ کی کوشش کر رہا ہوں - اب وہاں جا رہا ہے. 216 00:18:44,270 --> 00:18:47,650 [Student کی] میں اس کا جائزہ لینے کے سیشن نکالا اور میں وہ صرف جانے لگتا ہے کہ - 217 00:18:47,650 --> 00:18:50,670 جیسے آپ کو ایک ایک تو آپ کو اگلے جانا ہے تو - >> [روب] یہ وہ ایسا کس طرح ہے؟ 218 00:18:50,670 --> 00:18:53,750 [] طالب علم اور اس کے بعد ایک سچے وہاں اگر یہ کام نہیں کرتا - 219 00:18:53,750 --> 00:18:58,710 [روب] جی ہاں. یہ کام کرتا ہے. یہ خلائی برباد کرتا ہے - 220 00:18:58,710 --> 00:19:03,910 آپ کو ضروری آپ کو پہلی جگہ میں کی ضرورت نہیں کرے گا trie کے ایک پوری دوسرے سطح ہے. 221 00:19:03,910 --> 00:19:08,410 یہاں یہ ہر ایک کے ساتھ بدسورت ہو رہی ہے - 222 00:19:08,410 --> 00:19:11,530 بنیادی طور پر کیا میں یہاں کرنے کی کوشش کر رہا ہوں ساتھی ہے - 223 00:19:11,530 --> 00:19:15,000 اس کی بجائے آپ کی کوشش کرتا ہے 26 اشارہ ہونے کے، 224 00:19:15,000 --> 00:19:20,810 یہ تو 26 bool کے پوائنٹر، bool کے پوائنٹر، bool کے پوائنٹر، اور ہے. 225 00:19:28,940 --> 00:19:34,410 >> [طالب علم] 2 arrays کے نہیں کر سکتے ہیں؟ bools اور اشارہ کی ایک صف کے ایک صف؟ 226 00:19:34,410 --> 00:19:38,060 [روب] آپ لیکن اس وقت آپ کی ضرورت چاہتے ہیں کر سکتے ہیں - 227 00:19:38,060 --> 00:19:41,500 Booleans کے اور اشارہ کے 2 arrays کے. 228 00:19:41,500 --> 00:19:47,340 اس کے بعد آپ booleans کے آپ کے صف کی تعمیر کرنے کی ضرورت ہو گی - 229 00:19:47,340 --> 00:19:51,240 booleans کے اپنے صف trie کے جتنا بڑا کرنے کی ضرورت ہے 230 00:19:51,240 --> 00:19:53,200 آپ کو صرف 26 Booleans کے نہیں کر سکتے ہیں کی وجہ سے. 231 00:19:53,200 --> 00:19:57,010 یہ ہر ممکن ساتھ بڑھ ہے - 232 00:19:57,010 --> 00:20:03,240 کی طرح اپنے trie سے زیادہ 26 صحیح یا غلط ممکن الفاظ ہیں. 233 00:20:03,240 --> 00:20:08,240 اس وقت وہ اس کے ساتھ ساتھ صرف اپنے trie کے ساتھ اگنے والے ایک struct کی ہو سکتی ہے. 234 00:20:08,240 --> 00:20:15,210 میں یہاں کیا کرنا چاہتے ہیں - کیونکہ یہ درست نہیں لگتا؟ 235 00:20:15,210 --> 00:20:23,640 تو، trie کے * T - 236 00:20:23,640 --> 00:20:30,200 آپ typedef (نوڈ *) [26] trie کے کر سکتے ہیں، 237 00:20:30,200 --> 00:20:33,090 کہ میں دیکھ رہا ہوں نحو ہو سکتا ہے. 238 00:20:36,740 --> 00:20:41,450 اور یہ صرف ایک باقاعدہ trie کے ہونا چاہئے. 239 00:20:44,900 --> 00:20:47,440 مجھے یقین نہیں ہے. 240 00:20:47,440 --> 00:20:54,850 لیکن یہ ہم جائزے میں یہ کیا طریقہ ہے، تو اس کا بھی، بالکل ٹھیک کام کرتا ہے. 241 00:20:54,850 --> 00:20:57,850 اگر یہ ہے جس صورت میں صرف bool کے لفظ ہے اور اس کے بعد 26 کے ایک صف 242 00:20:57,850 --> 00:21:01,750 تو آپ کو اگلے سطح پر جانے کے لئے ہے. 243 00:21:01,750 --> 00:21:05,420 میں نے ایسا کرے گا جس طرح کے بارے میں سوچتا ہوں. 244 00:21:07,500 --> 00:21:09,550 >> دیگر سوال؟ 245 00:21:09,550 --> 00:21:12,540 [Student کی] میں کچھ کے بارے میں سوالات پوچھ سکتے ہیں؟ >> [روب] جی ہاں. 246 00:21:12,540 --> 00:21:19,040 [طالب علم] کیا فرق ہے پر جا سکتے ہیں اور جب آپ ایجیکس بمقابلہ jQuery کے استعمال کروں؟ 247 00:21:19,040 --> 00:21:24,550 [روب] وہ مکمل طور پر مختلف اور خود کے ہیں. 248 00:21:24,550 --> 00:21:32,720 jQuery ایجیکس کو فعال کرتا ہے. یہ ہمارے ایجیکس کے کچھ آسان استعمال دیتا ہے. 249 00:21:32,720 --> 00:21:38,480 لیکن ایجیکس جاوا اسکرپٹ کے ساتھ بھیج دیا آتا ہے. جاوا اسکرپٹ ایجیکس صلاحیتوں ہے. 250 00:21:38,480 --> 00:21:47,490 میں کرنا چاہتے ہیں جب میں نے ایک صفحہ پر پہلے سے ہی ہوں اور موازنہ کرنا ایجیکس کا مطلب ہے - 251 00:21:47,490 --> 00:21:52,820 میں کچھ پر کلک کریں جب میں اس نئی معلومات ڈاؤن لوڈ کرنے کے صفحہ دوبارہ لوڈ کرنے کی ضرورت نہیں ہے. 252 00:21:52,820 --> 00:21:55,020 میں صرف اس نئی معلومات کی درخواست. 253 00:21:55,020 --> 00:22:01,220 آپ فیس بک یا کچھ میں اس میں دیکھ سکتے ہیں. 254 00:22:01,220 --> 00:22:05,580 نیٹ ورک کا معائنہ. 255 00:22:05,580 --> 00:22:07,460 اس سکیڑیں. 256 00:22:12,070 --> 00:22:14,940 یہاں ہم نے ان تمام درخواستوں کو ہو رہے ہیں دیکھتے ہیں کہ. 257 00:22:14,940 --> 00:22:18,990 اب میں پر کلک کریں - جب میں نے بھی کسی بھی چیز پر کلک کرنے سے پہلے ٹھیک ہے، یہ ایجیکس کر رہی ہے. 258 00:22:18,990 --> 00:22:24,140 میں اس پر کلک کریں، تو اسے یہاں نیچے کی درخواستوں کا ایک گروپ بنانے کے لئے جا رہا ہے 259 00:22:24,140 --> 00:22:33,530 صرف ان درخواستوں بنا ہے - اوہ، اب یہ یہاں ہے. 260 00:22:33,530 --> 00:22:36,590 کی تازہ کاری کرتے ہیں. 261 00:22:36,590 --> 00:22:38,580 یہ پھر سے کرتے. 262 00:22:38,580 --> 00:22:42,090 ہم ان تمام درخواستوں کو حاصل ہے کہ دیکھ، لیکن یہ اب بھی صفحے کے لوڈ کے عمل میں ہو سکتا ہے. 263 00:22:42,090 --> 00:22:47,400 فیس بک کا صفحہ بھری ہوئی ہے کے بعد بھی ان کی مسلسل درخواستوں کر رہا ہے نوٹس. 264 00:22:47,400 --> 00:22:51,470 میں یہاں پر کلک کریں اور اگر اس میں کچھ اعداد و شمار کے لئے کچھ زیادہ درخواستوں پر بنا دیں گے 265 00:22:51,470 --> 00:22:54,990 کہ میں صرف پر کلک کیا بات کے جواب میں ہے. 266 00:22:54,990 --> 00:23:04,660 یہ ایجیکس ہے صرف کیا ہے. یہ آپ کو اصل صفحے کے ساتھ ڈاؤن لوڈ نہیں کیا گیا تھا کہ اعداد و شمار کے لئے ھیںچو. 267 00:23:04,660 --> 00:23:12,050 >> jQuery کی الگ ہے. jQuery کے آسان چیزوں کی ایک بہت ہے کہ صرف ایک جاوا سکرپٹ لائبریری ہے. 268 00:23:12,050 --> 00:23:28,660 jQuery کے ساتھ یہ فائدہ کی ایک بہت یہ صرف ہے - 269 00:23:28,660 --> 00:23:34,030 ڈالر مدد - ڈالر علامت جاوا سکرپٹ میں ایک درست متغیر ہے. 270 00:23:34,030 --> 00:23:43,460 تو، jQuery کی - یہ کر رہی ہے سب کی طرح کہہ رہا ہے متغیر $ = چیزیں کی ایک پوری چڑھانے - 271 00:23:43,460 --> 00:23:46,690 اس میں یہ سب سامان کے ساتھ کچھ بڑے کی تقریب کی طرح - 272 00:23:46,690 --> 00:23:52,650 اور پھر آپ کی طرح کے طریقوں میں ہے کہ ڈالر کا نشان استعمال 273 00:23:52,650 --> 00:24:23,940 $ ("# فوٹر"). سٹائل ("متن سیدھ کریں"، "مرکز"). 274 00:24:23,940 --> 00:24:32,330 jQuery کے ہمیں جہاں ایک بڑا فائدہ نحو اس طرح دیتا ہے - 275 00:24:32,330 --> 00:24:35,650 یہ دیگر خصوصیات ہیں لیکن ہم آپ کو سب سے زیادہ پر توجہ مرکوز کرنا چاہتے ہیں 276 00:24:35,650 --> 00:24:38,760 صرف اس طرح کے عناصر کو منتخب کرنے کے قابل کیا جا رہا ہے. 277 00:24:38,760 --> 00:24:42,780 باقاعدہ، سادہ پرانے جاوا اسکرپٹ میں آپ کی طرح باتیں کر سکتے ہیں 278 00:24:42,780 --> 00:24:50,490 ID فٹر ڈاٹ طرف سے عنصر دستاویز ڈاٹ کو ملتا ہے - میں نے اسے اس وقت کیا ہے پتہ نہیں ہے - 279 00:24:50,490 --> 00:24:52,790 سی ایس ایس یا سٹائل یا چیز کے بارے میں کچھ - 280 00:24:52,790 --> 00:24:58,930 لیکن اس کے بعد متبادل طور پر، ہم طبقے کی طرف سے منتخب کرنے کے لئے کرنا چاہتا تھا کا کہنا ہے کہ. 281 00:24:58,930 --> 00:25:06,330 اب ہم اس سٹائل کے ساتھ ایک کلاس فوٹر کے ساتھ سب کچھ اسٹائل رہے ہیں. 282 00:25:06,330 --> 00:25:16,070 ہم کسی بھی پیراگراف سٹائل کے لئے چاہتا تھا یہاں تک کہ اگر. 283 00:25:16,070 --> 00:25:22,000 تو، اس سلیکٹر - اس طرح ڈوم میں چیزوں کو منتخب کرنے کے قابل ہونے کے ناقابل یقین حد تک آسان ہے 284 00:25:22,000 --> 00:25:29,420 سادہ پرانے جاوا سکرپٹ میں آپ کو کلاس کے نام سے دستاویز ڈاٹ حاصل عناصر کرنا ہوگا کے بعد 285 00:25:29,420 --> 00:25:34,260 یا جو کچھ بھی ہے، یا میں نے ایک ٹیگ چاہتے تھے تو میں ٹیگ کے نام کی طرف سے عناصر کو حاصل کرنے کے لئے کہنے کی ضرورت تھا. 286 00:25:34,260 --> 00:25:37,530 تو، میں نے ان تمام چیزوں تک رسائی حاصل ہے کہ مخصوص طریقوں سے جاننے کی ضرورت ہے. 287 00:25:37,530 --> 00:25:40,810 کام کرتا ہے میں نے ایک کلاس یا ایک ID استعمال کر رہا ہوں چاہے کی بنیاد پر مختلف ہو جائے جا رہے ہیں 288 00:25:40,810 --> 00:25:46,420 یا ایک ٹیگ یا کیا، jQuery کی صرف میرے لئے ہے کہ کرتا ہے جبکہ. 289 00:25:46,420 --> 00:25:53,120 >> [Student کی] jQuery کی آپ کے صفحے کی ابتدائی اسٹائل کر رہے ہیں کا استعمال کیا جا رہا ہے؟ 290 00:25:53,120 --> 00:25:56,570 یا اسٹائل تبدیل کرنے کے لئے یہ پہلے سے ہی ہے کے بعد - >> [روب] اسے تبدیل کرنے کی. 291 00:25:56,570 --> 00:25:58,440 [Student کی] یہ پہلے سے ہی بھری ہوئی ہے کے بعد. >> [روب] جی ہاں. 292 00:25:58,440 --> 00:26:07,020 کسی بھی ابتدائی اسٹائل - ویسے، بھی - 293 00:26:07,020 --> 00:26:09,970 عام طور پر آپ کی تبدیلی کے اس طرح استعمال کریں گے. 294 00:26:09,970 --> 00:26:14,330 آپ کو تبدیل نہیں کریں گے - یہ بالکل ٹھیک کام کریں گے. 295 00:26:14,330 --> 00:26:17,720 لیکن عام طور پر آپ کو اس طرح سٹائل کو تبدیل نہیں کرے گا. 296 00:26:17,720 --> 00:26:20,610 اس کے بجائے، آپ کو اس کے ایک نئے طبقے یا کچھ دے گا 297 00:26:20,610 --> 00:26:24,650 سی ایس ایس پہلے ہی ایک خاص طریقے میں اس طبقے کے لئے بیان کیا گیا ہے جبکہ. 298 00:26:24,650 --> 00:26:28,920 ان اشیاء دے کر میں نے ایک نئی قسم کو منتخب کر رہا ہوں 299 00:26:28,920 --> 00:26:32,200 میں نے پہلے ہی ڈاؤن لوڈ کیا گیا ہے کہ سٹائل کا اطلاق کر رہا ہوں. 300 00:26:32,200 --> 00:26:36,720 [Student کی] تو آپ چیک باکسز کے ایک جوڑے کی ہے اور آپ کو منتخب کیا ہے کہ چیزوں کو منتخب کریں 301 00:26:36,720 --> 00:26:41,820 ایک نئے سٹائل تبدیل کرنے اور مختلف تلاش شروع. >> [روب] جی ہاں. 302 00:26:41,820 --> 00:26:45,490 کے بارے میں یاد دیگر چیزیں - 303 00:26:45,490 --> 00:26:48,350 ٹھیک ہے، تم jQuery کے بارے میں یاد رکھنا چاہئے کئی افعال ہیں. 304 00:26:48,350 --> 00:26:55,570 ہم ID پی کے ساتھ کچھ انتخاب کر رہے ہیں کا کہنا ہے کہ دو 305 00:26:55,570 --> 00:27:00,500 >> [Student کی] آپ ہمیشہ پونڈ استعمال کرنے کے لئے ہے؟ 306 00:27:00,500 --> 00:27:09,600 [روب] اس ID کا مطلب ہے. یہ سی ایس ایس کے برابر ہے، تو سی ایس ایس سلیکٹرز - یہ اس کی طرف سے حوصلہ افزائی ہے. 307 00:27:09,600 --> 00:27:12,410 کہاں میں ایک فوٹر سٹائل کرنا چاہتا تھا سی ایس ایس میں - 308 00:27:12,410 --> 00:27:16,950 یا ID فٹر کے ساتھ کچھ - 309 00:27:16,950 --> 00:27:23,490 یہ متن سیدھ طرح ہو جائے گا: مرکز؛ 310 00:27:23,490 --> 00:27:28,820 آپ کو امتحان پر سی ایس ایس لکھنے کے لئے کی ضرورت نہیں ہے، لیکن آپ کو سلیکٹرز جاننے کی ضرورت ہے. 311 00:27:28,820 --> 00:27:34,280 آپ کو اس کے پڑھنے کے لئے کس طرح پتہ کرنے کی ضرورت ہے - آپ کو کیا جاننے کی ضرورت ہے. 312 00:27:34,280 --> 00:27:36,000 لیکن ہم کبھی نہیں کریں گے - 313 00:27:36,000 --> 00:27:42,390 آپ کو مختلف ممکن اسٹائل چیزوں کے حفظ کرنے کی ضرورت نہیں ہے. یا ان میں سے کوئی بھی. 314 00:27:42,390 --> 00:27:50,020 >> jQuery کی چیزیں آپ کو یاد رکھنا چاہیے - 315 00:27:50,020 --> 00:27:58,380 آپ ڈاٹ ایچ ٹی ایم ایل، اور jQuery میں ایک عام پیٹرن کو یاد رکھنا چاہیے - اس کے دوبارہ لکھنا. 316 00:27:58,380 --> 00:28:09,640 ایک عام پیٹرن ہم ("# F") $ ہے ہے. HTML 317 00:28:09,640 --> 00:28:15,650 میں صرف سادہ قوسین ڈال دیا ہے کہ ایچ ٹی ایم ایل کو حاصل کا مطلب ہے؛ 318 00:28:15,650 --> 00:28:23,870 جبکہ میں نے ایچ ٹی ایم ایل کا کہنا ہے کہ اور یہاں میں چاہتا ہوں جو کچھ بھی ڈال دیا - کچھ کرنے کے لئے کچھ لنک - 319 00:28:23,870 --> 00:28:30,410 قوسین کے اندر کچھ ڈال اب ایچ ٹی ایم ایل کا تعین کرتا ہے. 320 00:28:30,410 --> 00:28:33,760 اس کے افعال میں سے ایک گروپ کے درمیان بہت عام ہے. 321 00:28:33,760 --> 00:28:38,360 متن کے ساتھ ایک ہی سودا ہے. 322 00:28:38,360 --> 00:28:41,720 HTML اور متن کے درمیان فرق کریں اس کو شامل کرنے کے لئے جا رہا ہے 323 00:28:41,720 --> 00:28:46,350 کے طور پر لفظی کم سے، زیادہ سے زیادہ کی بجائے ایک اینکر ٹیگ کے طور پر. 324 00:28:46,350 --> 00:28:53,000 اور متن میں ایسا ہو تو ایک ہی جا رہا ہے. 325 00:28:53,000 --> 00:28:55,760 نہیں دستاویز کی ایچ ٹی ایم ایل - یہ دستاویز کا متن حاصل کرنے کے لیے جا رہا ہے 326 00:28:55,760 --> 00:29:01,810 لیکن اس عنصر کے اندر اندر صرف متن. 327 00:29:01,810 --> 00:29:08,430 'F' ایک ان پٹ کے لئے ایک شناختی ہو تو ایک ہے، 328 00:29:08,430 --> 00:29:14,250 تو-F-ڈاٹ ویل ہیش - میں کچھ اس طرح کرنے کے لئے ان پٹ قائم کرنے کے لئے چاہتے ہیں - 329 00:29:14,250 --> 00:29:17,900 کی میں ایک چیک باکس کو مارا کہتے ہیں اور میں نے ایک طے شدہ قیمت مقرر کرنا چاہتے ہیں - 330 00:29:17,900 --> 00:29:26,070 ڈاٹ ویل - 3 - ہے - میں بھی نہیں جانتے تو یہ خود کار طریقے سے متن باکس 3 میں داخل کرے گا، 331 00:29:26,070 --> 00:29:35,980 میں 3 ڈاٹ ویل کا کہنا ہے کہ لیکن اگر، کہ میرے لئے متن باکس میں فی الحال جو کچھ بھی ہے کو دوبارہ حاصل کرے گا. 332 00:29:35,980 --> 00:29:39,690 >> اس فارم کی توثیق کے لئے مفید ہے، جہاں 333 00:29:39,690 --> 00:29:48,030 میں صرف وہ اصل میں تمام چیزوں کی بھر اس بات کو یقینی بنانا چاہتے ہیں. 334 00:29:48,030 --> 00:29:54,710 میں عرض مارا کے بعد لامحالہ سرور پر کچھ صفحات پر بھیج دیا ہے تو یہ ہے کہ ایسا کا ایک طریقہ ہے - 335 00:29:54,710 --> 00:30:00,190 جیسے ہمارے لئے پی ایچ پی کی ہو جائے گا - اور یہ کہ ڈیٹا پر عملدرآمد کرنے کی کوشش کریں گے اور یہ کہیں گے 336 00:30:00,190 --> 00:30:03,030 اب کہتے ہیں کہ ایک صفحے پر ان ری ڈائریکٹس تاکہ وہ، کچھ باہر بھر نہیں تھا 337 00:30:03,030 --> 00:30:05,050 آپ کو سب کچھ کو بھرنے نہیں کیا. 338 00:30:05,050 --> 00:30:11,650 اس کی بجائے ایسا کرنے کے ویل خالی ہے، جاوا سکرپٹ / jQuery میں آپ کو صرف دیکھ سکتے ہیں. 339 00:30:11,650 --> 00:30:17,270 خالی کی قیمت درج - یا ویل ہے. 340 00:30:17,270 --> 00:30:23,120 اب ہم آپ کو اس میدان کو بھرنے نہیں تھا کہ ان کو مطلع کر سکتے ہیں - یہ صرف جا رہا ہے. 341 00:30:23,120 --> 00:30:26,990 لامحالہ آپ پی ایچ پی سرور سائیڈ کی جانچ پڑتال کرنے کی ضرورت ہے کیونکہ 342 00:30:26,990 --> 00:30:31,210 آپ کو صرف تمام براؤزرز میں جاوا سکرپٹ کو غیر فعال کر سکتے. 343 00:30:31,210 --> 00:30:36,180 لیکن جاوا اسکرپٹ کا، اسے چالو ہے جو ان لوگوں کے لئے یہ آسان بنا دیتا ہے 344 00:30:36,180 --> 00:30:42,940 اور براؤزر کے تقریبا نوے نو نکاتی کچھ فیصد آج کل اس پر ہے. 345 00:30:42,940 --> 00:30:46,630 بہت کم لوگ جاوا اسکرپٹ کو بند کردیں. 346 00:30:46,630 --> 00:30:52,850 یہ ایک صارف کی سہولت ہے. آپ پی ایچ پی کی توثیق کرنے کی ضرورت ہے. 347 00:30:52,850 --> 00:30:55,990 آپ کو جاوا اسکرپٹ توثیق کرنا چاہئے. 348 00:30:55,990 --> 00:30:57,950 >> [Student کی] # F یہاں کیا رجوع کرتا ہے؟ 349 00:30:57,950 --> 00:31:00,020 [روب] # F کیا رجوع کرتا ہے؟ 350 00:31:00,020 --> 00:31:04,350 ID 'F' کے ساتھ میری دستاویز میں کچھ عنصر ہے. 351 00:31:04,350 --> 00:31:09,850 ہم کو دیکھو گے - شاید فیس بک مثالیں کی کافی مقدار ہے جہاں میں عناصر آتے ہیں 352 00:31:09,850 --> 00:31:17,820 عناصر ٹیگ کے تحت یہاں کی تلاش میں یہاں پر روشنی ڈالی جا رہی ہے کہ یہ خاص طور پر DIV دیکھ - 353 00:31:17,820 --> 00:31:22,670 یا اس پورے صفحے ہے - جی ہاں، یہ ہے. اس ID pagelet_bluebar ہے. 354 00:31:22,670 --> 00:31:26,730 کنسول میں وہ jQuery استعمال کر رہے ہیں فرض. 355 00:31:26,730 --> 00:31:40,030 تو، کہ اس کا انتخاب تو میں pagelet_bluebar منتخب کر سکتے ہیں، اور میں نے کچھ غلط کیا. 356 00:31:46,470 --> 00:31:52,250 کی کوشش کرتے ہیں - یا شاید وہ jQuery اور ہے کہ کردار کی کچھ اور نقشے کا استعمال کرتے ہوئے نہیں کر رہے ہیں. 357 00:31:52,250 --> 00:32:04,970 میں جانتا ہوں کہ کچھ میں ایک بہتر مثال کے jQuery کا استعمال کرتے ہوئے کیا جاتا ہے - 358 00:32:04,970 --> 00:32:10,600 اب بھی ہمارے یہاں عناصر کو دیکھ کر - ہم یہاں کلاس navbar برابر. 359 00:32:10,600 --> 00:32:12,330 یہ کلاس navbar کے ساتھ کچھ ہے، 360 00:32:12,330 --> 00:32:19,180 تو ہمارے کنسول کے اندر ہم کلاس navbar کے ساتھ بات دیکھ سکتے ہیں. 361 00:32:19,180 --> 00:32:21,770 یہاں ہم اس میں سکرال اور یہ کہ یہ ہے کیا ہے دیکھ سکتے ہیں. 362 00:32:21,770 --> 00:32:29,850 مجھے کیا کرنا چاہتے تھے. کریں اس کو اس کا متن ہے، تو میں باہر لاگ ان مندرجہ بالا رپورٹ کے لئے ترتیبات کو دیکھنے کے 363 00:32:29,850 --> 00:32:35,760 یہاں کے تحت تمام ہیں، لیکن یہ اب بھی اس HTML ٹیگ کے اندر اندر متن ہے جس میں. 364 00:32:35,760 --> 00:32:52,230 میں، صرف کچھ لنک ایچ ٹی ایم ایل قائم کر سکتے ہیں 365 00:32:52,230 --> 00:32:56,550 تو میں نے اپنا بار سے چھٹکارا حاصل کریں گے. اب جب کہ یہ یوٹیوب سے منسلک ہے، مکمل طور پر صرف اتنا ہیڈر سے چھٹکارا مل گیا. 366 00:32:56,550 --> 00:32:59,630 >> اور کسی بھی شکل کی مثال ہے؟ 367 00:32:59,630 --> 00:33:01,940 یہاں ایک شکل ہے. 368 00:33:01,940 --> 00:33:05,830 میں دائیں کلک کریں اور یہیں پر آنے عنصر کا معائنہ کر سکتے ہیں. 369 00:33:05,830 --> 00:33:08,460 میں نے اس کی شناخت متن کی تلاش ہے کہ دیکھ، 370 00:33:08,460 --> 00:33:16,910 تو یہاں میں شناختی متن کی تلاش کرتے ہیں. 371 00:33:16,910 --> 00:33:23,190 میں نے اس پر لے کر آتا ہوں اور میں اس کے لئے میں تلاش کر رہا تھا درست بات یہ ہے کو دیکھنے کے. 372 00:33:23,190 --> 00:33:27,670 میں. ویل کرنا چاہتے ہیں تو اس میں وہاں ٹائپ کیا تھا مجھے دے گی. 373 00:33:27,670 --> 00:33:36,010 مجھے کیا کرنا چاہتے تھے خوش یہ خوش کرنے کے لئے یہاں اسے تبدیل کر دیں گے - jQuery کی. 374 00:33:36,010 --> 00:33:45,780 میں بالکل ID کی طرف سے document.get عنصر کی طرح مضحکہ خیز کر سکتا ہے - متن تلاش کریں - 375 00:33:45,780 --> 00:33:54,000 میں نے بھی اس نقطہ پر ہے پتہ نہیں کیا - ڈاٹ قیمت - نہیں، میں اس آدمی کو بھول گئے. 376 00:33:54,000 --> 00:33:59,110 تو، یہ ہے کہ خوش ہے. میں نے یہ کچھ کے برابر مقرر کیا تھا کس طرح نہیں جانتے. 377 00:33:59,110 --> 00:34:00,930 جی ہاں، تو یہ ہے تبدیل. 378 00:34:00,930 --> 00:34:07,510 لیکن اگر آپ اس نقطہ کے استعمال کے jQuery میں ان کے اور بہت سے ویب سائٹس کو استعمال کرنے کی ضرورت نہیں ہے. 379 00:34:07,510 --> 00:34:13,050 یہاں تک کہ ایک حتمی منصوبے پر طرح - پہلی بات یہ ہے - آپ کو ایک ویب کے منصوبے کر رہے ہیں 380 00:34:13,050 --> 00:34:20,030 میں آپ سب ان افعال کی سہولت حاصل کر سکتے ہیں تو صرف jQuery کی بھی شامل ہے کی سفارش. 381 00:34:22,580 --> 00:34:27,750 >> [Student کی] میں ڈوم استعمال کرتے ہوئے ایک عنصر حاصل کرنے کے لئے ایک مختلف راستہ دیکھا ہے. 382 00:34:27,750 --> 00:34:32,520 آپ ڈاٹ استعمال کرتے ہیں اور پھر نیچے جا رکھنے کے لئے ہے؟ 383 00:34:32,520 --> 00:34:36,630 [روب] آپ یہ کر سکتے ہیں. یہ بہت اچھی طرح کام کرے گا تو میں نہیں جانتا. 384 00:34:36,630 --> 00:34:38,900 یہ اس طرح تشریف لے کرنے کے لئے مشکل ہے. 385 00:34:38,900 --> 00:34:43,179 اس کی ایک مثال ہے - ہم کسی بھی فارم ہے تو مجھے بھی پتہ نہیں ہے - 386 00:34:43,179 --> 00:34:48,940 لیکن document.forms اس صفحے پر ہے کہ فارم کی فہرست واپس جا رہا ہے، 387 00:34:48,940 --> 00:34:55,070 تو میں 0 فارم ہونے جا رہا ہے document.forms کر سکتے ہیں. 388 00:34:55,070 --> 00:35:03,070 ڈاٹ - میں ہم نے اس کو کہا جاتا ہے پتہ نہیں کیا - تو یہ بھی ایک نام کی ضرورت نہیں ہے، 389 00:35:03,070 --> 00:35:08,050 تو ہو سکتا ہے آدانوں کام کریں گے. نمبر 390 00:35:08,050 --> 00:35:11,050 میں نے بھی اس کو حاصل کرنے کے لئے کس طرح پتہ نہیں ہے - عنصر میں ٹیگ کا نام ان پٹ حاصل. 391 00:35:11,050 --> 00:35:23,630 جی ہاں، کہ مجھے ان پٹ دی، اور اب میں 0 ان پٹ چاہتے ہیں 392 00:35:23,630 --> 00:35:31,320 اور میں اس کی قیمت منتخب کرنے کے لئے چاہتے ہیں، تو اس کے متن جا رہا ہے. 393 00:35:31,320 --> 00:35:33,890 میں ویسے بھی ٹیگ کا نام کی طرف سے حاصل عناصر کر ختم کرنے کے لئے تھا. 394 00:35:33,890 --> 00:35:36,210 براہ راست منتخب کرنے کے لئے کوئی راستہ نہیں ہو سکتا 395 00:35:36,210 --> 00:35:43,480 میں صرف ٹیگز ان پٹ سے ملاقات کرنے کے لئے تھا جیسے فارم 0، لیکن اس کے بارے میں اچھی بات کے ذریعے اب بھی ہے 396 00:35:43,480 --> 00:35:49,880 کہ اس فارم کے ایک بچے تھے، دوسری صورت میں صرف کرتے ہیں کہ براہ راست سامنے 397 00:35:49,880 --> 00:35:56,680 اس پورے دستاویز میں پورے صفحے پر موجود تمام عناصر، کو منتخب کریں گے 398 00:35:56,680 --> 00:36:00,580 اس کی بجائے صرف یہ ہے کہ فارم کی اور یہ شاید میں بھی کرنا چاہتے ہیں نہیں ہو گا. 399 00:36:00,580 --> 00:36:06,180 میں اس کے ہے جو نہیں جانتے. مجھے پتہ نہیں ہے. 400 00:36:06,180 --> 00:36:13,450 میں نے اپنے صفحہ پر پہلے ان پٹ عنصر یہ چھوٹا سا چیک باکس لگتا ہے. 401 00:36:13,450 --> 00:36:20,450 >> [Student کی] یہ بہت غیر متعلقہ ہے 402 00:36:20,450 --> 00:36:27,420 اور ممکنہ طور پر قسم کے پاگل، لیکن جواب کلید پر یہ ہے کہ پی ایچ پی کا کہنا ہے کہ - 403 00:36:27,420 --> 00:36:35,660 میں نے اسے جواب کلید یا نوٹ ہے کہ آیا پتہ نہیں ہے لیکن یہ پی ایچ پی سرور سائیڈ کا کہنا ہے کہ 404 00:36:35,660 --> 00:36:39,590 اور جاوا سکرپٹ کلائنٹ سائڈ ہے. 2 کے درمیان کیا فرق ہے؟ 405 00:36:39,590 --> 00:36:45,550 [روب] جاوا اسکرپٹ کلائنٹ سائڈ اور پی ایچ پی سرور سائیڈ کے درمیان فرق. 406 00:36:45,550 --> 00:36:51,890 آپ کو لگتا ہے کہ سے پہلے آپ سلیش / استعمال کیا جاتا نوڈ جے ایس کے بارے میں سنا ہے، تو یہ ہے کہ 407 00:36:51,890 --> 00:36:56,280 جاوا سکرپٹ کے صرف کلائنٹ سائڈ نہیں ہے لیکن CS50 کے مقاصد کے لئے ہے - 408 00:36:56,280 --> 00:36:59,340 یا کم از کم اس کوئز کے مقاصد کے لئے ہے. 409 00:36:59,340 --> 00:37:03,800 پی ایچ پی سرور سائیڈ ہونے کے. کوئی جاوا سکرپٹ. 410 00:37:03,800 --> 00:37:08,700 آپ کو آپ کے ویب کے صفحے لکھنے کے جب آپ کے سرور پر پی ایچ پی کے لکھ رکھا جائے گا. 411 00:37:08,700 --> 00:37:11,670 آپ سرور پر جاوا اسکرپٹ لکھ نہیں کیا جائے گا. 412 00:37:11,670 --> 00:37:17,190 جاوا اسکرپٹ جاوا سکرپٹ کے کوڈ executes ہے جہاں براؤزر کو بھیجا ہو رہی ہے ختم ہو جاتی ہے. 413 00:37:17,190 --> 00:37:22,250 اور جاوا سکرپٹ کے کوڈ میں کرنا چاہتے ہیں کیونکہ جب دوسری صورت میں براؤزر میں رہنے کے لئے کی ضرورت ہے 414 00:37:22,250 --> 00:37:25,830 صرف اس پر کلک کرنے کی طرح جاوا سکرپٹ Y چیز کے کسی بھی طرح، کرنا 415 00:37:25,830 --> 00:37:31,720 میں نے ایک صفحے کو دوبارہ لوڈ نہیں کر رہا ہوں. یہ میرے لئے صرف جاوا اسکرپٹ دوبارہ فارمیٹنگ چیزیں ہے. 416 00:37:31,720 --> 00:37:36,490 جاوا سکرپٹ کے سرور پر رہتے تھے، تو میں لامحالہ کچھ درخواست کرنے کے لئے کی ضرورت ہو گی 417 00:37:36,490 --> 00:37:39,490 سرور کی کیا جاننا. 418 00:37:39,490 --> 00:37:45,380 پی ایچ پی - براؤزر میں پی ایچ پی کے طور پر ایسی کوئی بات نہیں ہے. 419 00:37:45,380 --> 00:37:52,090 میں نے ایک صفحے کی درخواست - تو میں یہاں اس خاص صفحہ کی درخواست کی کہتے ہیں. 420 00:37:52,090 --> 00:37:57,270 یہ اس کی درخواست پر کی جا رہی ہے کہ اس کا مطلب - 421 00:37:57,270 --> 00:38:04,270 تازہ کاری - یہ اس صفحے کو ریفریش کرنے جا رہا ہے - 422 00:38:04,270 --> 00:38:07,210 تو اس کی درخواست کو ہمارے سرور پر جاتا ہے. 423 00:38:07,210 --> 00:38:13,190 یہ اس مخصوص ID کے ساتھ اس خاص موضوع کو واپس کرنے کی ضرورت ہے کہ دیکھتا ہے 424 00:38:13,190 --> 00:38:23,740 تو اب یہ ہے کہ پی ایچ پی کی ترجمان ہے کہ پیج کی تشریح کی جا رہی ہے کہ کچھ پی ایچ پی کی جا رہا ہے 425 00:38:23,740 --> 00:38:28,680 اور صرف ایچ ٹی ایم ایل، سی ایس ایس، جاوا اسکرپٹ شاید، جو کچھ بھی میں تبدیل. 426 00:38:28,680 --> 00:38:36,930 یہ اس کی درخواست کے عمل اور متن اور سامان کے تمام حاصل ہے کہ پی ایچ پی کی ہے 427 00:38:36,930 --> 00:38:39,170 میں اصل میں ڈیٹا بیس سے دیکھ رہا ہوں کہ. 428 00:38:39,170 --> 00:38:44,750 لیکن کیا سرور چھوڑ دیتا ہے صرف HTML / JS / سی ایس ایس ہے. 429 00:38:44,750 --> 00:38:48,630 سرور چھوڑ دیتا ہے جس میں کوئی پی ایچ پی کی ہے یہ اصل میں کیا ہے کیونکہ اگر 430 00:38:48,630 --> 00:38:53,890 پھر براؤزر کیا یہ پی ایچ پی کی ہے پتہ نہیں ہے کیونکہ اس کے ساتھ کیا کوئی اندازہ نہیں ہوگا. 431 00:38:53,890 --> 00:39:00,250 لیکن ایک ہی سوچ میں جاوا سکرپٹ کو، کلائنٹ سائڈ ہے کیونکہ 432 00:39:00,250 --> 00:39:02,250 آپ کو اس سے ایس کیو ایل تک رسائی حاصل نہیں کر سکتے. 433 00:39:02,250 --> 00:39:07,430 پی ایچ پی سرور سائیڈ ہے کیونکہ آپ اس سے ایس کیو ایل تک رسائی حاصل ہے. 434 00:39:07,430 --> 00:39:12,880 >> [طالب علم] HTTP میں کوکیز کے ساتھ سیکورٹی خدشات میں سے کچھ پر جا سکتے ہیں؟ 435 00:39:12,880 --> 00:39:18,390 [روب] وہ ہم جاننے کی ضرورت کے لئے جا رہے چیزیں نہیں ہیں. 436 00:39:18,390 --> 00:39:24,500 HTTP میں کوکیز کے ساتھ سیکورٹی خدشات میں سے کچھ. 437 00:39:24,500 --> 00:39:28,550 یہاں بڑا سوال ہم اپنے کوکی پی ایچ پی / ID ہے کہ یہاں دیکھ رہا ہے. 438 00:39:28,550 --> 00:39:33,560 کہ عالمی پی ایچ پی کی آپ کے سیشن کی طرح ہے. 439 00:39:33,560 --> 00:39:39,550 آپ کے سیشن پی ایچ پی کے اندر کی توثیق کرنے کی ضرورت کبھی نہیں ہو گا کہ کچھ ہے 440 00:39:39,550 --> 00:39:45,690 اس سیشن پر مکمل کنٹرول ہے کہ سرور کی وجہ سے. 441 00:39:45,690 --> 00:39:47,690 آپ کو یہ بالکل چھو نہیں سکتے. 442 00:39:47,690 --> 00:39:53,120 لیکن اس کوکی ہے - اس میں سے ایک - 443 00:39:53,120 --> 00:39:57,500 اور میں آپ کو اس کے استعمال کرنے کے لئے چاہتا تھا، تو آپ کو اب مجھے میں لاگ ان کر سکتے ہیں لگتا ہے - 444 00:39:57,500 --> 00:40:06,610 لامحالہ آپ کو سرور سے ایک درخواست کرنے کے - لیکن یہ ہے کہ کوکی ہے. 445 00:40:06,610 --> 00:40:09,890 سرور پیج واپسی. پروپوزل کی کیا جاتا ہے. 446 00:40:09,890 --> 00:40:12,580 اب یہ آپ ہیں جو کسی بھی خیال ہے. 447 00:40:12,580 --> 00:40:17,230 تو، آپ کو اگلے کی درخواست یہ جانتا ہے کہ تو یہ کوکی شامل کرنے کے لئے کی جا رہی ہے 448 00:40:17,230 --> 00:40:19,810 اس سے پہلے اس درخواست کی جو شخص ہے. 449 00:40:19,810 --> 00:40:23,830 اس صارف کے ساتھ منسلک کیا جاتا ہے کے سیشن کے اعداد و شمار ہے. 450 00:40:23,830 --> 00:40:28,210 اگر آپ استعمال کرتے ہیں ہر صفحے کے لئے لاگ ان کرنے کی ضرورت نہیں ہے یہی وجہ ہے کہ. 451 00:40:28,210 --> 00:40:33,380 یہاں سلامتی کا مسئلہ ہے کہ کوکی ویب پر باہر بھیجا جاتا ہے. 452 00:40:33,380 --> 00:40:41,490 ہم یہاں HTTPS استعمال کر رہے ہیں، تو اس صورت میں کہ ہم یہ چیزیں خفیہ کاری کر رہے ہیں کا مطلب ہے کہ. 453 00:40:41,490 --> 00:40:49,870 کسی میں آتے ہیں اور صرف اپنے کوکی چوری اور اب سرور وہ میرے ہو گا نہیں کر سکتے ہیں. 454 00:40:49,870 --> 00:40:52,060 لیکن براہ راست HTTP کے ساتھ وہ کر سکتے ہیں. 455 00:40:52,060 --> 00:40:57,650 بس آپ کو صرف ہوا میں وائی مالیاتی اداروں کے تمام سن سکتے ہیں کہ اس WireShark / FireSheep سامان کی طرح 456 00:40:57,650 --> 00:41:01,380 اور آپ چاہتے ہیں جو کچھ بھی تقطیع، تو جی ہاں. 457 00:41:01,380 --> 00:41:12,430 >> [Student کی] اسی طرح کی سلامتی خطرے کی ایک طرح کی پوسٹ میں صارف ID کی ذخیرہ کرنے کا ہے 458 00:41:12,430 --> 00:41:16,860 کہ آزادانہ طور پر کنسولز اور چیزوں کا استعمال کرتے ہوئے میں ترمیم کیا جا سکتا ہے. 459 00:41:16,860 --> 00:41:23,410 [روب] جی ہاں. جہاں صارف کی طرف سے آتا ہے کہ کچھ جیسے مسائل کی کافی مقدار ہے 460 00:41:23,410 --> 00:41:26,940 آپ کو درست کرنے کی ضرورت ہے. 461 00:41:26,940 --> 00:41:37,650 یہ میں نے ایک پوسٹ بنانے کے لئے کے بارے میں ہوں جیسے کے لئے مفید ہو گا جہاں مقدمات کی بہت ہیں. 462 00:41:37,650 --> 00:41:39,650 بلاہ، بلاہ، بلاہ، بلاہ، بلاہ. پھر میں نے جواب مارا. 463 00:41:39,650 --> 00:41:44,540 پوسٹ کی درخواست میری ID شامل تو یہ بہت مفید ہو گا کیونکہ 464 00:41:44,540 --> 00:41:48,610  میرے ساتھ اس پوسٹ کو منسلک کرنا چاہتے ہیں. 465 00:41:48,610 --> 00:41:54,820 لیکن میں ایسا نہیں کر سکتا کہ میں نے ایک پوسٹ کی درخواست کرنے کے لئے آزاد ہوں کیونکہ - صرف دستی طور پر کی طرح 466 00:41:54,820 --> 00:41:57,820 میری اپنی پوسٹ کی درخواست کے ساتھ آئے - 467 00:41:57,820 --> 00:42:00,960 کہ آپ صارف ID کا استعمال کرتا ہے اور اب یہ آپ کے طور پر پوسٹ کیا جائے گا. 468 00:42:00,960 --> 00:42:07,440 سرور سائیڈ میں درست صارف ID پر مشتمل درخواستوں کو پوسٹ پر انحصار نہیں کر سکتے ہیں یہی وجہ ہے کہ. 469 00:42:07,440 --> 00:42:09,720 یہ میرے سیشن میں تعلق ہے یہی وجہ ہے کہ. 470 00:42:09,720 --> 00:42:15,140 تو میں نے اپنے سیشن کی صف میں آپ صارف ID دیکھو اور میں اپنے ڈیٹا بیس میں داخل 471 00:42:15,140 --> 00:42:17,580 اصل میں یہ پوسٹ کرنے والے صارف کے طور پر. 472 00:42:17,580 --> 00:42:19,580 [] طالب علم اور ہے کہ آپ کوکی کی بنیاد پر ہے؟ 473 00:42:19,580 --> 00:42:24,690 [روب] جی ہاں. یہ درخواست کی ہے جو صارف کے طور پر آپ کو ملنے کے لئے کوکی کا استعمال کرتا ہے. 474 00:42:24,690 --> 00:42:30,570 یہ سیشن سے صارف ID ھیںچتی اور پھر ڈیٹا بیس میں اضافہ 475 00:42:30,570 --> 00:42:32,960 اس صارف کی شناخت کا استعمال کرتے ہوئے. 476 00:42:32,960 --> 00:42:40,330 اس طرح کے بٹن پر - کہ اصل میں کیا کر رہی ہے ہے - 477 00:42:40,330 --> 00:42:43,810 میں اسے یہاں تلاش کرنے کے لئے نہیں جا رہا ہوں. یہ ایک AJAX کی تقریب ہونے جا رہا ہے 478 00:42:43,810 --> 00:42:46,780 ایجیکس تقریب کیا ہے؟ 479 00:42:46,780 --> 00:42:55,500 میرے جاوا سکرپٹ کو معلوم ہیں. 480 00:42:55,500 --> 00:42:59,710 یہ تھوڑی دیر پہلے ایک CS50 منصوبہ تھا. 481 00:42:59,710 --> 00:43:02,880 میں نے یہ کیا ہے یاد نہیں کر سکتے. 482 00:43:02,880 --> 00:43:12,530 ایجیکس کی تقریب - تمام ایجیکس کی تقریب کر رہا ہے اس ID کے ساتھ ایک صفحے پر ایک AJAX کی درخواست کر رہا ہے - 483 00:43:12,530 --> 00:43:15,810 ID 22453 ساتھ. 484 00:43:15,810 --> 00:43:20,180 یہ بھی ایک پوسٹ کی درخواست نہیں ہے. یہ بھی آسان بنا دیتا ہے جس کی وجہ سے حاصل کی درخواست ہے. 485 00:43:20,180 --> 00:43:27,860 میں یو آر ایل کیا ہے جانتے تھے تو - یہ اس طرح / ID = 22453 کی طرح کچھ ہے - 486 00:43:27,860 --> 00:43:33,290 یا ID = 22453 - 487 00:43:33,290 --> 00:43:40,290 تو اس یو آر ایل کا دورہ ہے کہ پسند آئے گا. 488 00:43:40,290 --> 00:43:44,600 ایک مسئلہ کے طور پر زیادہ ہو سکتا ہے لیکن یہ ایک لوپ لکھنے کے لئے ناقابل یقین حد تک آسان ہے نہیں کرے گا جس میں 489 00:43:44,600 --> 00:43:48,500 صرف آپ کو نظر آئے جس کی وجہ سے، زیادہ بار بار اس یو آر ایل کا دورہ کرنے جا رہی ہے 490 00:43:48,500 --> 00:43:51,180 چیزوں کے ہزاروں کے ساتھ پوسٹ Isawyouharvard. 491 00:43:51,180 --> 00:43:56,960 اور وہ CS50 کی بنیاد Isawyouharvard پیغامات ہوتے ہیں. 492 00:43:56,960 --> 00:44:01,200 کس طرح میں سب سے زیادہ پسند تلاش کروں؟ 493 00:44:01,200 --> 00:44:03,720 وہ بھی، بہت تیزی سے خارج کر دیا حاصل کرنے کے لئے کرتے ہیں. 494 00:44:03,720 --> 00:44:06,490 یہ سب سے زیادہ پسند نہیں ہے. ہم وہاں چلتے ہیں. 495 00:44:06,490 --> 00:44:13,400 سب سے زیادہ پسند کے صفحے پر Cheaters - یہ ٹھیک ہے اب یہ بہت متعلقہ ہے. 496 00:44:13,400 --> 00:44:21,230 اوہ واہ. انہوں نے پہلے ہی کیا گیا ہے جو اس سال سے ہیں کے کسی بھی خارج کر دیا ہے 497 00:44:21,230 --> 00:44:25,590 پر دھوکہ دیا. ان سب کو خارج کر دیا گیا ہے. 498 00:44:25,590 --> 00:44:28,680 اس اعلی ہو جاتا ہے کہ ایک پوسٹ نہیں کیا جا سکتا. 499 00:44:28,680 --> 00:44:32,860 یہ ایک واضح طور پر سب سے زیادہ پسند پیج پر حاصل کرنے کے لئے پر دھوکہ دیا گیا تھا. 500 00:44:36,570 --> 00:44:39,310 >> مزید سوال؟ 501 00:44:39,310 --> 00:44:46,050 [Student کی] ہم XHTML کے بارے میں کیا پتہ ہونا چاہیئے؟ 502 00:44:46,050 --> 00:44:49,710 [روب] تقریبا کچھ بھی نہیں. یہ ہے کیا. 503 00:44:49,710 --> 00:44:59,220 یہ اور ہے کہ XML ہونے کے ایچ ٹی ایم ایل کے درمیان فرق ظہور میں بہت اسی طرح ہے 504 00:44:59,220 --> 00:45:09,080 HTML کرنے کے لئے HTML کے علاوہ ہم صرف ٹیگز کا ایک وضاحتی سیٹ کرنا ہوگا. 505 00:45:09,080 --> 00:45:15,380 لیکن XML کے ساتھ - XML ​​صرف آپ کو ایک XML دستاویز بنانے کے کر سکتے ہیں جہاں ایک عام شکل کی طرح ہے 506 00:45:15,380 --> 00:45:17,580 آپ چاہتے ہیں جو کچھ بھی مقاصد کے لئے. 507 00:45:17,580 --> 00:45:25,950 تو، مثال کے طور پر، میں چاہتا تھا تو میں کورس کے لئے ایک XML کی تعمیر کر سکتے ہیں - 508 00:45:25,950 --> 00:45:28,860 اور میں اصل CS50 اس کے لئے ایک API ہے کہ لگتا ہے. 509 00:45:28,860 --> 00:45:31,590 میرا XML دستاویز کی طرح کچھ نظر کر سکتے ہیں - 510 00:45:31,590 --> 00:45:39,330 کورس اور کورس کے میں کچھ آخر کورس کی ضرورت ہے. 511 00:45:39,330 --> 00:45:48,920 میں نے ایک کورس کر سکتے ہیں اور اس کے نام CS50 کے برابر ہو سکتا ہے. 512 00:45:48,920 --> 00:45:58,080 اور پھر میری آخر کورس اور میں، یہاں کے اندر طالب علموں کو ڈال سکتے ہیں 513 00:45:58,080 --> 00:46:07,010 اور اس کے بعد طالب علموں کے اندر میں نے جس کا نام جو کچھ بھی ہے ایک طالب علم کی ایک فہرست ہے. 514 00:46:07,010 --> 00:46:10,180 میں نے اس طالب علم کو ختم کرنے اور. 515 00:46:10,180 --> 00:46:16,070 میں صرف کچھ صوابدیدی XML دستاویز کی تعمیر کرنے کے لئے ہو، لیکن یہ درست XML ہے. 516 00:46:16,070 --> 00:46:23,700 XML - یہ تمام کی ساخت اس طرح کی اور اچھی بات ہے - ہم بھی XML یہ کہتے کہ اس کی وجہ 517 00:46:23,700 --> 00:46:26,820 اس طرح کی چیز کا تجزیہ کرنے کے لئے بہت آسان ہے. 518 00:46:26,820 --> 00:46:32,580 اس دستاویز لے اور اس سے باہر ایک صف بنانے کے لئے بہت آسان ہے. 519 00:46:32,580 --> 00:46:39,370 اور اس طرح کی XHTML ایچ ٹی ایم ایل درست XML کرنے کے لئے حاصل کرنے کی ایک کوشش ہے. 520 00:46:39,370 --> 00:46:42,580 پہلے ہی یہ ایچ ٹی ایم ایل کے لئے بہت طرح لگ رہا ہے. 521 00:46:42,580 --> 00:46:52,160 اختلافات میں سے کچھ آپ کو ان پٹ کی طرح چیزوں کو کرنے کے قابل ہیں HTML ہیں شاید قسم کے متن کے برابر ہے 522 00:46:52,160 --> 00:46:55,550 پہلے سے طے شدہ ہے جو تو میں نے کا کہنا ہے کہ ضرورت نہیں ہے. 523 00:46:55,550 --> 00:47:00,010 غیر فعال. 524 00:47:00,010 --> 00:47:05,160 >> اس غلط XHTML ہے کہ یہاں میں 2 چیزیں ہیں. 525 00:47:05,160 --> 00:47:08,750 پہلی چیز سب XML ٹیگز ایک اختتامی ٹیگ کی ضرورت ہے. 526 00:47:08,750 --> 00:47:13,040 یہ سلیش کی جس سمت ہے - تو ان پٹ کی صورت میں مجھے کیا کرنا کی ضرورت ہے؟ 527 00:47:13,040 --> 00:47:15,060 اس سمت؟ یہ غلط لگتا ہے. 528 00:47:15,060 --> 00:47:19,380 دوسری سمت. 529 00:47:19,380 --> 00:47:21,960 خود بند ٹیگ. 530 00:47:21,960 --> 00:47:29,560 دوسری بات یہ ہے XML کے ساتھ آپ جیسے کلیدی قدر جوڑوں کے ان قسم کے کی ضرورت ہے. 531 00:47:29,560 --> 00:47:32,130 یہ اس کے ساتھ منسلک ایک قیمت کی ضرورت ہے. 532 00:47:32,130 --> 00:47:35,050 تو، خود میں اور معذور جو میں چاہتا ہوں اظہار اگرچہ - 533 00:47:35,050 --> 00:47:37,110 اس ان پٹ کو غیر فعال کیا جانا چاہئے - 534 00:47:37,110 --> 00:47:39,110 کہ غلط XHTML ہے. 535 00:47:39,110 --> 00:47:47,110 کیا میں نے اصل میں لکھنے کی ضرورت کو غیر فعال کو غیر فعال کر کے برابر ہے. 536 00:47:47,110 --> 00:47:49,620 اب یہ کی XHTML ہے. 537 00:47:49,620 --> 00:47:54,850 اور ان کی بات کی ایک XML پر مبنی ترتیب کرنے کے لئے HTML تبدیل ہے کہ صرف ان معمولی اختلافات ہیں. 538 00:47:54,850 --> 00:48:04,880 >> [Student کی] XML مکمل طور پر کیوں (غیر واضح) ہے جیسے آپ کی اپنی ایکس کے ذریعے کی طرح پل کے بارے میں ہے 539 00:48:04,880 --> 00:48:19,450 [روب] ایک CSV طرح کی بات - ایک CSV آپ کو صرف کی طرف سے الگ اقدار ہیں - 540 00:48:19,450 --> 00:48:23,550 صرف ایک سپریڈ شیٹ کے بارے میں سوچنا. ایک CSV بنیادی طور پر ایک سپریڈ شیٹ ہے. 541 00:48:23,550 --> 00:48:26,720 آپ شاید کالم ہے اور آپ کو قطار کے ایک گروپ ہے 542 00:48:26,720 --> 00:48:29,600 ساتھی ان کے کالم کے ساتھ کے اعداد و شمار لیکن یہ بات ہے. 543 00:48:29,600 --> 00:48:38,310 XML بہت زیادہ ورسٹائل آپ کر سکتے ہیں کہ اس میں ہے - آپ کے ڈیٹا کی ایک صوابدیدی کے تنظیمی ڈھانچے ہے. 544 00:48:38,310 --> 00:48:43,200 میں نے اس کے اندر اندر ایک سے زیادہ طالب علموں کو ہے کہ ایک سے زیادہ کورس کر سکتے ہیں 545 00:48:43,200 --> 00:48:45,460 یہ ہے کہ ایک سپریڈ شیٹ کے بارے میں سوچنا مشکل ہو جائے گا - جہاں 546 00:48:45,460 --> 00:48:51,010 صرف یہ ہے کہ ایک سپریڈ شیٹ - CSV، خاص طور پر صرف ایک سپریڈ شیٹ کی طرح ہے - 547 00:48:51,010 --> 00:48:58,760 تمام CS50، 51، اور 61 اور ان کے اندر کے تمام ہونے کے کہ ایک سپریڈ شیٹ 548 00:48:58,760 --> 00:49:03,230 ان اوقات سے متعلق طالب علموں کو، ہو سکتا ہے کہ ملاقات کے اوقات اور بات اس طرح کے تمام. 549 00:49:03,230 --> 00:49:09,140 دوسری بات یہ ٹیگ کے ناموں کے تمام عناصر کے لئے ایک اچھا نام دینے ہے 550 00:49:09,140 --> 00:49:13,140 تو ایک CSV فائل کو پڑھنے کی کوشش کریں اور یہ اصل میں دیکھ رہا ہے کا تجزیہ کرنے کے لئے مشکل ہو سکتا ہے. 551 00:49:13,140 --> 00:49:20,130 نہیں کرتا جو کچھ انسان کے لئے آئے - کیوں کی طرح ہے تو XML بہت زیادہ انسانی پڑھنے کے قابل ہے 552 00:49:20,130 --> 00:49:26,380 کیا واقعی ایک CSV فائل ہے یا پسند ایک پروگرامر یا کچھ نہیں ہے - 553 00:49:26,380 --> 00:49:30,640 آپ کو ایک سانچے XML فائل کی طرح ان کو دے سکتے ہیں اور وہ لائنوں کی پیروی کر سکتے ہیں اور - 554 00:49:30,640 --> 00:49:33,590 اوہ، میں یہاں میرا نام داخل کرنے کی توقع کر رہا ہوں. 555 00:49:33,590 --> 00:49:37,440 یہ ایک بہت زیادہ استعمال کے قابل کی شکل میں ہے. 556 00:49:37,440 --> 00:49:42,440 CSV استعمال کی کافی مقدار ہے لیکن XML مختلف استعمال ہے. 557 00:49:46,050 --> 00:49:49,680 >> مزید سوال؟ 558 00:49:49,680 --> 00:49:51,900 دیگر سوال؟ 559 00:49:56,410 --> 00:50:00,520 عمودی پیمائی افقی پیمائی کے مقابلے میں - گزشتہ کوئز سے [Student کی]. 560 00:50:00,520 --> 00:50:04,660 [روب] آپ کو معلوم ہے کہ کرنے کی ضرورت نہیں کرے گا. میں ہم بھی تبادلہ خیال نہیں لگتا. 561 00:50:04,660 --> 00:50:07,340 میں یہ صرف ایک آف تبصرہ تھا اندازہ لگا رہا ہوں. 562 00:50:07,340 --> 00:50:12,660 اوہ. عمودی پیمائی کے مقابلے میں افقی آپ کو جاننے کی ضرورت ہو گی کچھ نہیں ہے. 563 00:50:12,660 --> 00:50:18,570 میں فرق کی طرح لگتا ہے - ویسے اوہ، جواب اہم فرق کہیں گے. 564 00:50:18,570 --> 00:50:26,030 عمودی پیمائی صرف اپنے کمپیوٹر کی غیر تسلی بخش کر، اوہ کی طرح ہے. میں ایک بہتر ملے گا. 565 00:50:26,030 --> 00:50:29,150 افقی پیمائی اوہ ہے جبکہ میرے کمپیوٹر کو غیر تسلی بخش کر رہا ہے - 566 00:50:29,150 --> 00:50:33,360 مجھے ایک ہی کام پر کام کرنے کے لئے ان میں سے 20 حاصل کرنے. 567 00:50:40,300 --> 00:50:45,520 >> [Student کی] ہم قطار بنانے کے منسلک فہرست طریقہ کے جا سکتے ہیں. >> [روب] جی ہاں. 568 00:50:45,520 --> 00:50:50,000 اس صف کا طریقہ زیادہ آسان ہے. 569 00:50:50,000 --> 00:50:53,140 قطار بنانے کے منسلک فہرست طریقہ. 570 00:50:53,140 --> 00:50:58,350 سب سے پہلے، کیا ایک لنک کی فہرست کے لئے ہماری struct کی طرح لگتی ہے؟ 571 00:50:58,350 --> 00:51:17,060 [Student کی] ہم نے کے لئے کر رہے ہیں - >> [روب] اس کی کرتے ہیں - جی ہاں. 572 00:51:17,060 --> 00:51:30,000 INT ویل، پھر struct نوڈ * اگلا، دوسرا؛ 573 00:51:30,000 --> 00:51:34,560 تو ہے کہ ہم یہاں مثال کے طور پر استعمال کریں گے کیا ہے. 574 00:51:34,560 --> 00:51:37,660 اصل میں یہ سب ٹائپ کریں. 575 00:51:40,030 --> 00:51:49,600 کی linked_list کرتے ہیں. 576 00:51:51,750 --> 00:51:53,750 ہمارے struct - 577 00:52:05,360 --> 00:52:13,060 ٹھیک ہے. اب ہمارے قطار میں دیکھ ہم ہے - 578 00:52:13,060 --> 00:52:16,090 صرف ایک عالمی قطار بنانے. 579 00:52:16,090 --> 00:52:23,130 یہ نوڈ * قطار ہو جائے گا، اور ہم ایک dequeue تقریب ہے. 580 00:52:23,130 --> 00:52:28,330 میں ان چیزوں کو بھی صحیح یا غلط الٹ سکتا ہے - چلو ایسا کرتے ہیں. 581 00:52:28,330 --> 00:52:38,690 bool کے dequeue - اوہ - اور ہم dequeueing رہے ہیں. ہمم. 582 00:52:38,690 --> 00:52:45,200 INT dequeue - ہم سے پہلے اس کے ساتھ کیا کیا؟ 583 00:52:45,200 --> 00:52:54,340 INT dequeue اور ہم bool enqueue ہے اور ہم سچ میں کچھ کا مطلب ہے enqueue کرنا کی ضرورت ہے. 584 00:52:54,340 --> 00:53:01,360 کی پہلی enqueue کرتے ہیں. 585 00:53:01,360 --> 00:53:06,520 ہم اپنی قطار ہے. ہم قطار میں کچھ داخل کرنا چاہتے ہیں. 586 00:53:06,520 --> 00:53:12,720 ایسا کرنے کا بہترین طریقہ کیا ہے؟ 587 00:53:12,720 --> 00:53:20,270 ہم شروع کرنے کے لئے کچھ عالمی پوائنٹر ہے کی طرح یہاں ہمارے قطار فی الحال لگتا ہے. 588 00:53:20,270 --> 00:53:24,910 ہمارے قطار ہے. 589 00:53:24,910 --> 00:53:30,350 ہم سب سے پہلے عنصر لینے کی طرف سے dequeue یہ سمجھتے ہوئے کہ، 590 00:53:30,350 --> 00:53:36,570 ہم کہاں وہ کرنا چاہئے طور قطار کام کرتے ہیں کہ تو ہماری نوڈ داخل کرنا چاہتے ہیں جا رہے ہیں؟ 591 00:53:36,570 --> 00:53:43,440 آخر میں [Student کی]. >> [روب] جی ہاں. قطار سے باہر سب سے پہلے، میں سب سے پہلے ہونا چاہیے تھا کر رہے ہیں. 592 00:53:43,440 --> 00:53:48,030 جو نئے عنصر یہاں داخل کیا جانا چاہئے مطلب یہ ہے کہ. ٹھیک ہے. 593 00:53:48,030 --> 00:53:53,220 >>، واپس کوڈ آ رہا ہے 594 00:53:53,220 --> 00:53:59,760 کہ ہم ہمارے قطار سے زائد لوپ کرنا چاہتے ہیں کا مطلب ہے کہ. 595 00:53:59,760 --> 00:54:10,210 کی نوڈ * موجودہ = قطار کرتے ہیں، موجودہ برابر نل نہیں ہے. 596 00:54:10,210 --> 00:54:16,960 میں کروں گا - ٹھیک ہے، کی علیحدہ علیحدہ کرتے ہیں. 597 00:54:16,960 --> 00:54:20,460 سب سے پہلے، موجودہ = قطار. 598 00:54:20,460 --> 00:54:24,660 موجودہ نل کے طور پر شروع ہوتا تو ہم کیا کرتے ہیں؟ 599 00:54:24,660 --> 00:54:28,410 ہم اس 2 طریقوں سے کروں گا. سب سے پہلے اس طرح. 600 00:54:28,410 --> 00:54:31,450 موجودہ نل ہے تو ہم کیا کرتے ہیں؟ 601 00:54:31,450 --> 00:54:34,850 اس قطار خالی ہے کے برابر ہے؟ 602 00:54:38,550 --> 00:54:43,960 [Student کی] یہ جھوٹے واپس جا رہا ہے. >> [روب] ہم جھوٹے واپس کرنا چاہئے؟ 603 00:54:43,960 --> 00:54:47,120 کیا ایک خالی فہرست میں کچھ داخل کے ساتھ غلط کیا ہے؟ 604 00:54:47,120 --> 00:54:49,080 [Student کی] کچھ بھی نہیں اس کے ساتھ غلط ہے. معذرت. 605 00:54:49,080 --> 00:54:55,980 [روب] جی ہاں. تو یہاں فرق صرف اپنے عالمی قطار اپنے نئے نوڈ کرنے کے لئے بھیجا جا رہا ہے ہے. 606 00:54:57,840 --> 00:55:02,880 اور پھر میں نے قطار خالی ہے کی میری چیک کرنا ہے. 607 00:55:02,880 --> 00:55:05,960 جھوٹے واپس. 608 00:55:05,960 --> 00:55:20,910 اور پھر ویل میں برابر قطار، قطار اگلا نل کے برابر ہے، حقیقی واپس. 609 00:55:20,910 --> 00:55:25,890 ٹھیک ہے. میں یہاں بندوق کود جا رہا ہوں. 610 00:55:25,890 --> 00:55:29,570 ہم نے کیا کیا یاد ہے کہ آخری بار 611 00:55:29,570 --> 00:55:35,660 جہاں ہم نے اسے اس طرح کی چیز کے ساتھ *** نوڈ کے ساتھ کام کرنے کے لئے بہت آسان تھا. 612 00:55:35,660 --> 00:55:43,880 تو اب موجودہ قطار ہو اور کرنے کے لئے جا، اور یہاں نیچے آ رہا ہے - 613 00:55:43,880 --> 00:55:53,010 جبکہ موجودہ - جبکہ * موجودہ برابر نہیں نل ہے - 614 00:55:53,010 --> 00:55:58,230 ایک دوسرے میں اس کے بارے میں we'll بات کریں - تو مجھے صرف موجودہ کرتے ہیں. 615 00:55:58,230 --> 00:56:00,860 موجودہ اگلا. ٹھیک ہے. 616 00:56:00,860 --> 00:56:12,910 مجھے شہوت انگیز null پوائنٹر تک اس طرح میں اس کی تلاش میں، یہ میرا اشارہ کے تمام پر iterating ہے. 617 00:56:12,910 --> 00:56:17,710 شہوت انگیز null پوائنٹر میں اپنے نئے نوڈ کے ساتھ تبدیل کرنا چاہتے ہیں پوائنٹر ہونے جا رہا ہے. 618 00:56:17,710 --> 00:56:21,910 رکن ورژن میں تلاش - 619 00:56:21,910 --> 00:56:27,800 اپنے اصل پوائنٹر اور منسلک فہرست خالی ہے تو موجودہ یہاں بات کی جا رہی ہے. 620 00:56:27,800 --> 00:56:29,630 یہ شہوت انگیز null کی طرف اشارہ کرنے جا رہا ہے، 621 00:56:29,630 --> 00:56:34,440 تو اس میں کچھ دیگر نئے نوڈ کی طرف اشارہ کرنے کے لئے آگے بڑھ رہے ہیں ختم پوائنٹر ہے. 622 00:56:34,440 --> 00:56:38,150 جبکہ مثال کے طور پر یہاں اگر یہ معاملہ ہے 623 00:56:38,150 --> 00:56:42,720 اس کے بعد موجودہ یہاں سے گزرنا ہو رہا ہے - میں تھوڑا گڑبڑ. 624 00:56:42,720 --> 00:56:50,700 موجودہ موجودہ اگلے کا پتہ کرنا ہے کہاں. 625 00:56:50,700 --> 00:57:00,200 کہ میں کیا چاہتا ہے؟ موجودہ تو * موجودہ مجھے ایک نوڈ دیتا ہے. 626 00:57:00,200 --> 00:57:04,440 اگلا اگلے ایک traverses. 627 00:57:04,440 --> 00:57:10,700 میں فی الحال یہاں کی طرف اشارہ کر رہا ہوں. 628 00:57:10,700 --> 00:57:13,720 ریڈ کرتے ہیں - تو میں فی الحال یہاں کی طرف اشارہ کر رہا ہوں. 629 00:57:13,720 --> 00:57:19,710 اس کے بعد * موجودہ اس نوڈ حوالہ کی جا رہی ہے. 630 00:57:19,710 --> 00:57:25,080 اور * موجودہ اگلا حوالہ جات اس نوڈ، لیکن ہے کہ جو میں چاہتا ہوں نہیں ہے. 631 00:57:25,080 --> 00:57:27,700 میں اس نوڈ اس پوائنٹر چاہتے ہیں. 632 00:57:27,700 --> 00:57:40,530 تو، اس نوڈ کہ پوائنٹر اگلے (موجودہ *) ایمپرسینڈ ہے. 633 00:57:47,660 --> 00:57:54,360 >> اس وقت کے وقت میں میں سرکاری میں تبدیل کرنا چاہتے ہیں کہ نوڈ تک پہنچ چکے ہیں. 634 00:57:54,360 --> 00:58:13,770 کی موجودہ ان قطار کے سب کو تبدیل کرتے ہیں - اور اب ہم کیا کر رہے ہیں. 635 00:58:13,770 --> 00:58:21,760 وہاں typos کے ہو، لیکن خیال ہے ہو سکتا ہے کہ جس طرح کی اس طرح میں داخل کے ساتھ 636 00:58:21,760 --> 00:58:28,130 یہ ہم کو تبدیل کرنا چاہتے ہیں کہ اشارہ کے ساتھ کام کرنے کے لئے آسان ہے 637 00:58:28,130 --> 00:58:32,780 بجائے اس کے ٹریک رکھنے کے لئے کی ضرورت کے - ٹھیک ہے، اپنے آغاز کے نل ہے؟ 638 00:58:32,780 --> 00:58:36,430 اوہ ہے؟ پھر میں نے کچھ مخصوص ہونا شروع نوڈ پیدا کرنے کی ضرورت 639 00:58:36,430 --> 00:58:40,310 میں کی طرف اشارہ اگلی بات نل ہے، جب تک دوسری صورت میں، iterate کرنا چاہتے ہیں کریں گے 640 00:58:40,310 --> 00:58:46,740 اور پھر میں نے اس کی جگہ لے لے گا - اگلی بات کیا ہے - میرا malloc کی نوڈ. 641 00:58:46,740 --> 00:58:50,740 اس کے بجائے ان معاملات کو الگ کرنے کی ضرورت ہے، یہاں میں صرف کے معاملے سے نمٹنے کے 642 00:58:50,740 --> 00:58:54,990 میں اب نل ہونا چاہتے ہیں نل ہے کہ پوائنٹر، کیا ہے 643 00:58:54,990 --> 00:59:01,820 اور اس کی وجہ سے ان کے علاوہ زندگی آسان سب اب موجودہ * ہونا چاہئے کرتا ہے - 644 00:59:01,820 --> 00:59:05,460 [Student کی] وہ اب بھی ایک نوڈ کے سائز کے ہیں؟ 645 00:59:05,460 --> 00:59:10,480 [روب] جی ہاں. میں اب بھی ایک نوڈ mallocing رہا ہوں. 646 00:59:10,480 --> 00:59:12,980 [طالب علم] یہ ایک نوڈ * کے سائز کی جا رہی ہے؟ 647 00:59:12,980 --> 00:59:20,990 یہ ہمارے منسلک فہرست ہے [روب] یہاں واپس آ رہا ہے، کیس کے بارے میں سوچنا. 648 00:59:28,330 --> 00:59:33,190 یہ آدمی نل کو بتاتے ہیں. 649 00:59:33,190 --> 00:59:36,950 یہاں اس کے بعد کیوں لوپ، موجودہ پوائنٹس 650 00:59:36,950 --> 00:59:41,510 یہ نل ہے کہ پوائنٹر ہے. 651 00:59:41,510 --> 00:59:50,380 اب میں ایک نیا نوڈ کی طرف اشارہ اس پوائنٹر تبدیل کرنا چاہتے ہیں. 652 00:59:50,380 --> 00:59:58,390 نوڈ کی تو malloc سائز - سب سے پہلے میں اس نئے نوڈ malloc کی. 653 00:59:58,390 --> 01:00:11,070 اور یہ کہ ایک نوڈ * واپس اور اب اس پوائنٹر کو تبدیل کرنے * موجودہ برابر کرنے کے لئے تعمیر کر رہا ہے 654 01:00:11,070 --> 01:00:15,780 مختص ہے کہ اس نئے نوڈ. 655 01:00:15,780 --> 01:00:26,490 موجودہ *** ایک نوڈ ہے اگر ایسا ہے تو،، اس کے بعد * موجودہ * ایک نوڈ کی جا رہی ہے، 656 01:00:26,490 --> 01:00:32,540 میں کچھ نوڈ کے سائز mallocing رہا ہوں تو یہ ایک نوڈ پوائنٹر واپس آ رہا ہے 657 01:00:32,540 --> 01:00:39,630 تو یہ ایک نوڈ * ہے - تو دونوں اطراف کو صحیح طریقے سے ایک ہی قسم ہے. 658 01:00:39,630 --> 01:00:46,610 کیا میں صرف مختص نل تھا اور اگر ایسا ہے تو، جھوٹے واپس؛ 659 01:00:46,610 --> 01:00:54,750 ان قوسین کی ضرورت کے علاوہ - اور میں ان ہونا چاہتے ہیں جو ان کی ترتیب ختم 660 01:00:54,750 --> 01:00:57,730 وہ چیزیں ہیں جو کے حکم کس طرح کام نہیں ہے. 661 01:00:57,730 --> 01:00:59,690 کے طور پر تشریح کی جا رہی ہے کہ قوسین کے بغیر 662 01:00:59,690 --> 01:01:03,010 کہ dereference موجودہ تیر ویل. 663 01:01:03,010 --> 01:01:07,010 اس کی بجائے میں موجودہ dereference ایک نوڈ مجھ سے لاتا ہے جس کے چاہتے ہیں. 664 01:01:07,010 --> 01:01:10,620 پھر میں نے اس نوڈ کے ساتھ منسلک قیمت حاصل کرنے کے لئے چاہتے ہیں. 665 01:01:10,620 --> 01:01:17,670 >> [Student کی] میں تیر آپ اس بائی پاس اور قیمت براہ راست جانے کی اجازت سوچا. 666 01:01:17,670 --> 01:01:22,640 [روب] وہ کرتے ہیں. میں نے تو یہ ہے کہ - کی قطار ایک مثال ہے کہتے ہیں. 667 01:01:22,640 --> 01:01:28,400 میں قطار * ایک نوڈ ہے کیونکہ قطار تیر ویل میں برابر کرنے کی اجازت کر رہا ہوں. 668 01:01:28,400 --> 01:01:39,160 کی طرح موجودہ طویل تیر ویل یا کچھ کچھ اچھا نحو تھے 669 01:01:39,160 --> 01:01:42,540 2 dereferences کی کیا تھا، جو اس کے بعد اس کے ساتھ ساتھ کام کریں گے. 670 01:01:42,540 --> 01:01:44,790 [Student کی] تو تیر کی صرف 1 dereference کے لئے ہے. >> [روب] جی ہاں. 671 01:01:44,790 --> 01:01:53,590 متبادل طور پر میں (*** current.val) کے طور پر یہ لکھ سکتے تھے. 672 01:01:53,590 --> 01:02:02,490 میں نے بھی (* قطار). ویل کے طور پر قطار میں لکھ سکتے تھے جیسا. 673 01:02:04,430 --> 01:02:09,250 تو داخل ہیں. ٹھیک ہے، یہ مجھے لگتا ہے قطار میں ہے. 674 01:02:09,250 --> 01:02:12,030 Dequeue نمایاں طور پر کم کی جا رہی ہے. 675 01:02:12,030 --> 01:02:18,280 کی صفائی کے لئے یہاں باطل ڈال دو. 676 01:02:18,280 --> 01:02:22,820 تو، dequeue. میں کیا عنصر dequeueing ہوں؟ 677 01:02:22,820 --> 01:02:24,820 [Student کی] سب سے پہلے؟ >> [روب] جی ہاں. 678 01:02:24,820 --> 01:02:32,880 میرا سب سے پہلے ایک خالی ہے - واپس - میں ہم واپس کرنا چاہتے ہیں پتہ نہیں کیا - INT_MAX؛ 679 01:02:32,880 --> 01:02:37,580 اور پھر آپ INT_MAX واپس کیا گیا تو دیکھنے کے لئے چیک کرنا چاہئے. 680 01:02:37,580 --> 01:02:44,090 یہ انکا ورنہ ہم چاہتا ہے ہو اس چیز کی طرح ہے - 681 01:02:44,090 --> 01:02:54,610 ہم صرف قطار ویل واپس آ سکتے ہیں؟ کہ ہم کیا کرنا چاہتے ہے؟ 682 01:02:54,610 --> 01:02:58,010 Dequeue بھی لپیٹ، قطار سے شے کو ہٹا دیتا ہے 683 01:02:58,010 --> 01:03:10,840 تو سب سے پہلے کہتے ہیں - چلو ہمارے قطار کے پہلے نوڈ کی طرف اشارہ کرنے کے لئے ایک TMP حاصل. 684 01:03:10,840 --> 01:03:15,510 اب ہم قطار میں اگلی بات کی طرف اشارہ ہمارے قطار آگے بڑھانے کے لئے چاہتے ہیں. 685 01:03:15,510 --> 01:03:21,450 اب ہم TMP چھوڑ دیا ہے. TMP ویل ہم واپس کرنا چاہتے ہیں بات ہے. 686 01:03:21,450 --> 01:03:24,180 تو، ویل = TMP> ویل؛ 687 01:03:24,180 --> 01:03:31,190 لیکن ہم نے اسے واپس سے پہلے ہم TMP آزاد اور ویل واپس آ جانا چاہئے. 688 01:03:31,190 --> 01:03:36,350 یہاں آپریشن کے حکم ہے کہ میں ہم ایک TMP پر قبضہ کرنے کی ضرورت اہم ہے 689 01:03:36,350 --> 01:03:40,520 ہم اگلے عنصر قطار منتقل ہونے سے پہلے. 690 01:03:40,520 --> 01:03:44,860 ہم TMP آزاد سے پہلے قیمت حاصل کرنے کے لئے کی ضرورت ہے 691 01:03:44,860 --> 01:03:48,710 اور پھر ہم ویل واپس آ سکتے ہیں. 692 01:03:48,710 --> 01:03:50,680 >> [Student کی] ہم اگلے قطار قطار قائم کرنا چاہئے؟ 693 01:03:50,680 --> 01:03:57,800 [روب] جی ہاں. یہ ایک برا لوپ پیدا کیا گیا تھا / یہ ویسے بھی آزاد ہونے کے بعد کام نہیں کرے گا. 694 01:03:57,800 --> 01:03:59,900 قطار = قطار اگلا>. 695 01:03:59,900 --> 01:04:03,230 ہم اگلے عنصر کو آگے بڑھانے کے اگلے عنصر میں قطار آگے بڑھانے کے لئے چاہتے ہیں، 696 01:04:03,230 --> 01:04:08,170 عنصر فی الحال کیا ہے. 697 01:04:08,170 --> 01:04:17,660 پوٹ نمایاں طور پر ہو جائے گا - کہ dequeue میں بھی آسان کی طرح بالکل ایک ہی ہے 698 01:04:17,660 --> 01:04:20,190 ہم نے اسٹیک کے سامنے ھیںچ رہے ہیں. 699 01:04:20,190 --> 01:04:24,030 ہم صرف ایک نوڈ مختص کرنا چاہتے ہیں جہاں اختتام قطار طرح ہو جائے گا 700 01:04:24,030 --> 01:04:27,670 اور اسٹیک کے سامنے میں داخل، تو ہم بھی کچھ زیادہ لوپ کی ضرورت نہیں ہے. 701 01:04:27,670 --> 01:04:31,420 ہم صرف سامنے میں براہ راست داخل. 702 01:04:42,500 --> 01:04:44,640 ہر کوئی اس پر اچھا ہے؟ 703 01:04:44,640 --> 01:04:49,760 ٹھیک ہے. >> مزید سوالات؟ 704 01:04:49,760 --> 01:04:56,570 [Student کی] بڑے کیا ہوا ہے کہ میں سب سے زیادہ حالیہ لیکچر سے ذہن میں رکھنا چاہئے؟ 705 01:04:56,570 --> 01:04:58,730 [روب] سب سے زیادہ حالیہ لیکچر. 706 01:04:58,730 --> 01:05:01,620 آپ کسی بھی کوڈ معلوم کرنے کی ضرورت نہیں ہے. 707 01:05:01,620 --> 01:05:07,590 آپ انتہائی اہم خیالات کو پتہ ہونا چاہئے. 708 01:05:07,590 --> 01:05:11,650 نیٹ نصف کسی بھی کوڈ کی ضرورت نہیں تھی اور اس طرح وہ سلائڈ آن لائن ہیں. 709 01:05:11,650 --> 01:05:15,220 وہ صرف ان کی طرف دیکھو کی طرح ہو اور وہ اہم خیالات ہیں. 710 01:05:15,220 --> 01:05:28,630 میرا نصف - سب سے پہلے آپ کو کچھ یقین نہیں کر سکتے کے مجموعی خیال جاننے کے. 711 01:05:28,630 --> 01:05:38,070 حقیقت یہ ہے کہ ہو سکتا ہے کہ سنکلک کرنے کے عمل کو برا ہو سکتا ہے کی طرح، 712 01:05:38,070 --> 01:05:40,870 لیکن یہ بھی ماخذ کوڈ ٹھیک لگ رہا ہے کہ کوئی فرق نہیں پڑتا. 713 01:05:40,870 --> 01:05:46,390 سنکلک خاص طور پر منبع کوڈ کو تبدیل کرنے کے تبدیل کیا جا سکتا ہے کیونکہ 714 01:05:46,390 --> 01:05:50,860  تالیف کے عمل میں. 715 01:05:50,860 --> 01:05:58,140 صرف کی طرح ایک ہی وقت میں - میں نے ان کو اس کے بڑے خیالات کو پسند ہیں. 716 01:05:59,560 --> 01:06:09,030 >> [طالب علم] ہم Firesheep سے متعلق کچھ جاننے کی ضرورت نہیں ہے کا ذکر کیا - 717 01:06:09,030 --> 01:06:13,110 یا ہم اس کو جاننے کی ضرورت ہے؟ 718 01:06:13,110 --> 01:06:18,360 چیزوں کے نیٹ نصف، نیٹ پر کو چھو لیا ہے کہ کچھ کے ساتھ [روب] - 719 01:06:18,360 --> 01:06:22,760 FireSheep، WireShark پسند - میں وہ بھی تفصیل سے Firesheep کیا نہیں لگتا. 720 01:06:22,760 --> 01:06:28,620 تم نے بھی اس کے ساتھ کچھ کیا - یہ Firesheep تھا - گزشتہ ہفتے؟ 721 01:06:28,620 --> 01:06:31,110 آپ اس پر چھو تھا؟ 722 01:06:31,110 --> 01:06:34,060 [Student کی] جی ہاں، میں ہم ہو سکتا ہے لگتا ہے کہ - >> [روب] جی ہاں. 723 01:06:34,060 --> 01:06:40,880 ہم آپ Firesheep پیداوار دینے کے لئے جا رہا ہے اور اس کی تشریح نہیں کہہ رہے ہیں. 724 01:06:40,880 --> 01:06:44,960 یہ صرف جا رہا ہے - یہ Firesheep کیا ہے کی طرح ایک سوال ہو گا؟ 725 01:06:44,960 --> 01:06:47,290 یہ کس کے لئے استعمال کیا جاتا ہے؟ 726 01:06:47,290 --> 01:06:52,120 [Student کی] میں نے یہ صرف فائر فاکس یا کچھ اور کے ورژن 4 پر کام کرتا ہے. 727 01:06:52,120 --> 01:06:55,320 [روب] یہ اب تک ٹوٹ جا سکتا ہے. 728 01:07:11,430 --> 01:07:14,070 مجھے کوئی اندازہ نہیں ہے. 729 01:07:14,070 --> 01:07:18,330 وہ، دستی طور پر غیر فعال کر دیا ہے لگ رہے ہو نہیں ہے 730 01:07:18,330 --> 01:07:21,210 لیکن شاید یہ سب سے زیادہ حال ہی میں فائر فاکس کے ساتھ کام نہیں کرتا. 731 01:07:21,210 --> 01:07:24,790 یہ ہم آہنگ ہو گی کیونکہ [Student کی] میں واقعی میں اس کو انسٹال کرنے کی کوشش کی. 732 01:07:24,790 --> 01:07:28,880 [روب] تو، میں نے اسے سب سے زیادہ حالیہ فائر فاکس کے ساتھ کام نہیں کرتا ہے. 733 01:07:28,880 --> 01:07:32,360 لیکن خیال اب بھی یہ ظاہر کرنے کے لئے کیا گیا تھا کی ہے. 734 01:07:32,360 --> 01:07:39,430 اس پر کتنی دنیا کے وقت HTTPS میں رہنے نہیں کیا گیا تھا مضحکہ خیز تھا. 735 01:07:39,430 --> 01:07:43,820 یہاں تک کہ گزشتہ 2 سالوں میں یا جو کچھ بھی، یہ اب بھی ہے - میں ڈرامائی بہتری ہے 736 01:07:43,820 --> 01:07:47,210 https استعمال جس میں ویب سائٹس کی تعداد. 737 01:07:49,920 --> 01:07:52,580 >> [Student کی] ہم HTTP پر جانے کے لئے کی ضرورت ہے؟ 738 01:07:52,580 --> 01:07:58,050 [روب] اس کے پروٹوکول؟ >> [Student کی] ہم جانتے ہیں کہ چیزوں میں سے کچھ. 739 01:07:58,050 --> 01:08:06,220 [روب] ٹھیک ہے. بنیادی چیزیں آپ کو آپ کے نیٹ ورک کے ٹیب میں دیکھ سکتے ہیں سب کچھ ہو. 740 01:08:06,220 --> 01:08:12,160 میں نے ایک صفحے کی درخواست - اہم چیزوں کے لئے سب سے اوپر تک واپس آ. 741 01:08:12,160 --> 01:08:16,090 آپ یہاں مجھے بنانے کی درخواست دیکھ سکتے ہیں. 742 01:08:16,090 --> 01:08:19,220 کروم ہمارے لئے اچھی طرح سے تمام فارمیٹ کرنے کے لئے ہوتا 743 01:08:19,220 --> 01:08:21,970 پروپوزل کی گذارش یو آر ایل یہ تھا جہاں، کی درخواست کے طریقہ کار، حاصل تھا 744 01:08:21,970 --> 01:08:24,800 اور حیثیت کوڈ 200 ٹھیک تھا. 745 01:08:24,800 --> 01:08:28,279 میں مآخذ مارا، میں زیادہ براہ راست دیکھا ہے کہ - 746 01:08:28,279 --> 01:08:35,680 ہم آپ کو ان میں سے کسی کو دکھانے کے کر سکتے ہیں، لیکن یہ ان کے درمیان کی تشریح بھی مشکل نہیں ہے - اور یہ ہے. 747 01:08:35,680 --> 01:08:41,729 یہاں میں نے براہ راست درخواست ہے، تو اس میں چلا گیا ہے کا مطلب ہے کہ 748 01:08:41,729 --> 01:08:48,160 apps.cs50.net/discuss/threads/inbox/all/HTTP/1.1. 749 01:08:48,160 --> 01:08:57,569 اور اس کا استعمال کیا پروٹوکول کو عملی طور پر ہے جو HTTP/1.1 تھا - یہ ہمیشہ سے ہو رہا ہے. 750 01:08:57,569 --> 01:09:01,490 یہاں پر ہم استعمال کیا جاتا ہے، تو اس کو پوسٹ ہو سکتا ہے. 751 01:09:01,490 --> 01:09:04,660 اور پھر نیچے آ رہا ہے - تمام طرح جواب ہیڈر کے نیچے - ہم اس کے ذریعہ دیکھنے کے تو، 752 01:09:04,660 --> 01:09:07,740 ہم 200 ٹھیک ہے جہاں یہ ہے. 753 01:09:07,740 --> 01:09:11,069 ان کے ممکنہ مختلف حیثیت کے کوڈ معلوم ہے. 754 01:09:11,069 --> 01:09:15,520 میں، کا جائزہ لینے میں ہم نے ان میں سے ایک جوڑے کا کہنا ہے کہ لگتا ہے 755 01:09:15,520 --> 01:09:20,640 تو 403، 404 - عام ہیں کے ان قسم. 756 01:09:20,640 --> 01:09:26,810 یہ اس کے اہم خیال ہے. 757 01:09:29,990 --> 01:09:35,120 صرف HTTP اور HTTPS کے درمیان فرق یہ خفیہ کاری ہے. 758 01:09:35,120 --> 01:09:42,319 آپ >> [Student کی] کیا کر رہے ہیں؟ >> [روب] مجھے ایسا لگتا. ٹھیک ہے، جی ہاں. 759 01:09:42,319 --> 01:09:46,470 [طالب علم] کس طرح خفیہ کاری کے کام کے بارے میں بہت عام طور پر بات کرے گا؟ 760 01:09:46,470 --> 01:09:49,920 ہم Huffman سکیڑنا فائلوں کی مثال کے طور پر بات کی تھی، کیونکہ 761 01:09:49,920 --> 01:09:54,890 آپ اصل فائل کے اندر اندر hashtable بھیجا کیونکہ ان پھیلائیں جانتے کہ کس طرح 762 01:09:54,890 --> 01:09:56,950 تو کس طرح خفیہ کاری کے کام کرتا ہے؟ 763 01:09:56,950 --> 01:10:00,830 کس طرح آپ کو آپ اصل میں کلائنٹ نہیں بھیجا ہے تو معلومات کو خفیہ کرنے کے لئے کس طرح جانتے ہیں 764 01:10:00,830 --> 01:10:05,740 کی کلید ہے - اور آپ کو اصل سے اہم قبضہ کر سکتے ہیں - 765 01:10:05,740 --> 01:10:07,740 جنرل عمل کیسے کام کرتا ہے؟ 766 01:10:07,740 --> 01:10:09,870 [روب] خفیہ کاری کے عام عمل - 767 01:10:09,870 --> 01:10:15,590 کہ میں جواب دے گا ایک ناقابل یقین حد تفصیلی سوال ہے. 768 01:10:15,590 --> 01:10:21,490 ایک مختصر ہے - ٹھیک ہے، ٹومی اور میں مختصر کر دیا. 769 01:10:21,490 --> 01:10:26,060 بدقسمتی سے یہ 26 منٹ کی طرح ہے، تو یہ ایک مختصر نہیں ہے. یہ ایک طویل ہے. 770 01:10:26,060 --> 01:10:31,530 لیکن ہماری مختصر، ان میں سے صرف ایک مثال ہے جس میں RSA پر تھا 771 01:10:31,530 --> 01:10:40,420 اور اس RSA مجموعی طور پر HTTPS پروٹوکول کا حصہ ہے. 772 01:10:40,420 --> 01:10:46,060 خیال - RSA عوامی اہم خفیہ نگاری کی ایک مثال ہے 773 01:10:46,060 --> 01:10:49,690 جس میں آپ کو 2 الگ الگ چابیاں کا مطلب ہے. 774 01:10:49,690 --> 01:10:51,690 آپ اصل میں چیزیں خفیہ کرنے کیلئے 1 بٹن کا استعمال، 775 01:10:51,690 --> 01:10:54,410 اور آپ چیزوں بےرمز کرنے کے لئے ایک اور اہم استعمال. 776 01:10:54,410 --> 01:10:58,360 آپ چیزوں کو خفیہ کرنے کے لئے استعمال ہے کہ اس اہم عوامی ہے کہ ایک ہے. 777 01:10:58,360 --> 01:11:03,500 ویب سائٹ اگر آپ اس خفیہ کاری کلید بھیج سکتے ہیں. 778 01:11:03,500 --> 01:11:08,280 وہ آپ ہے کہ خفیہ کاری کلید بھیجتے ہیں، اور آپ کو ان سے کچھ واپس بھیجنے کے لئے چاہتے ہیں جب 779 01:11:08,280 --> 01:11:13,550 آپ کو آپ کے اعداد و شمار کے تمام خفیہ اور ان کو بھیجنے کے لئے کہ مخفی کلید کا استعمال کرتے ہیں. 780 01:11:13,550 --> 01:11:16,110 تو، وہ ذاتی کلید کے ساتھ ہی ہیں. 781 01:11:16,110 --> 01:11:22,630 کہ نجی کلید نام سے جانا جاتا ہو گیا تو پھر کوئی بھی آپ کے ڈیٹا بےرمز کرنے کے لئے قابل ہو جائے گا. 782 01:11:22,630 --> 01:11:27,980 لیکن اس کے ذاتی کلید - عوامی کلید ریاضی متعلقہ ہے، لیکن آپ نہیں کر سکتے ہیں جو 783 01:11:27,980 --> 01:11:33,640 نجی کلید ڈیٹا بےرمز کے لئے استعمال کیا جا سکتا ہے تاکہ - دیگر سے باہر ایک اعداد و شمار. 784 01:11:33,640 --> 01:11:36,630 وہ نجی کلید کے ساتھ صرف وہی ہیں، 785 01:11:36,630 --> 01:11:38,920 وہ اعداد و شمار پڑھ سکتے ہیں جو صرف وہی ہیں. 786 01:11:38,920 --> 01:11:44,170 عوامی چابی، عوامی ہے تو اگرچہ 787 01:11:44,170 --> 01:11:47,660 میں ایک ہی کا استعمال کرتے ہیں - میں Google.com یا جو کچھ بھی کرنے کے لئے جب، 788 01:11:47,660 --> 01:11:50,010 وہ، میں ایک سے زیادہ نہیں جانتے ہو سکتا ہے - لیکن میں Google.com پر جاتے ہیں، 789 01:11:50,010 --> 01:11:54,770 وہ Google.com پر جاتا ہے، وہ جاتا ہے Google.com - 790 01:11:54,770 --> 01:11:59,250 ہم سب تاہم ہم چاہتے ہیں ہماری اپنی معلومات کے خفیہ کرنے کے لئے ایک ہی عوامی چابی استعمال کر سکتے ہیں. 791 01:11:59,250 --> 01:12:04,010 لیکن ہم میں سے کوئی بھی اعداد و شمار کرنے کے قابل ہو جائے کرنے کے لئے جا رہے ہیں - بےرمز کرنے کے قابل ہونے جا رہے ہیں 792 01:12:04,010 --> 01:12:09,940 عوامی چابی بےرمز کرنے کے قابل نہیں ہے، ان کی معلومات کی وجہ سے. 793 01:12:09,940 --> 01:12:13,050 یہ صرف خفیہ کر سکتے ہیں. 794 01:12:13,050 --> 01:12:23,250 اور اس کا مذاق / تفصیلی ریاضی ہے - ماڈیول آپریٹرز اور exponentials اور سامان کا ایک گروپ کی طرح، 795 01:12:23,250 --> 01:12:28,890 یہ صرف ذاتی کلید ہے کہ کر سکتے ہیں صرف ایک ہی چیز ہے کہ باہر کام کرتا ہے 796 01:12:28,890 --> 01:12:33,620 عوامی چابی کی خفیہ کاری کا سامان بےرمز. 797 01:12:33,620 --> 01:12:38,020 جی ہاں. مزید تفصیلات کے لئے RSA مختصر ملاحظہ کریں. 798 01:12:38,020 --> 01:12:41,880 [Student کی] اس ویب سائٹ پر ہے؟ 799 01:12:41,880 --> 01:12:46,210 [روب] جی ہاں، میں نے اسے اس مقام پر ہے. یا اس سے کم از کم ایک یو ٹیوب لنک پوسٹ کیا گیا تھا. 800 01:12:51,330 --> 01:12:57,190 چلو دیکھتے ہیں. شارٹس. میں اس ہفتہ 2 سے متعلق ہوتا ہے. جی ہاں. RSA. 801 01:12:57,190 --> 01:13:03,780 اور یہ ہے - 24 منٹ - اس کو کھیلنے کے لئے نہیں جا رہا we're. 802 01:13:03,780 --> 01:13:05,780 یہ ایک طویل سے ایک ہے. 803 01:13:07,740 --> 01:13:09,740 >> مزید سوال؟ 804 01:13:09,740 --> 01:13:14,770 [طالب علم] bitmasks کے بارے میں مختصر طور پر بات کر سکتے ہیں؟ >> [روب] جی ہاں. 805 01:13:14,770 --> 01:13:23,090 مختصر طور پر، خیال صرف اس طرح ہے - >> [طالب علم] یہ، روب کیا ہے؟ 806 01:13:23,090 --> 01:13:32,760 [روب] Bitmasks. خیال ہے - صرف ہم کچھ کہتے ہیں - کچھ عددی کا استعمال کرتے ہوئے we're - 807 01:13:32,760 --> 01:13:41,490 INT X - لہذا، ہم یہ 0 سے شروع. 808 01:13:41,490 --> 01:13:47,900 اب، اس عددی 32 بٹس ہے، لہذا ان بٹس کی کسی ایک 1 نمائندگی کرنے کے لئے استعمال کیا جا سکتا 809 01:13:47,900 --> 01:13:50,600 ایک مخصوص FLAC. 810 01:13:50,600 --> 01:13:56,210 آپ کے آپریٹنگ سسٹم کے کوڈ میں نظر آتے ہیں، وہ سب جگہ پر اس کا استعمال اس کا ہے جہاں 811 01:13:56,210 --> 01:14:03,900 شاید سب سے اوپر کہیں وہ ہیش کی وضاحت ہے - 812 01:14:03,900 --> 01:14:09,020 کی کچھ مثالیں دیکھتے ہیں. 813 01:14:09,020 --> 01:14:22,720 انسان-2-کھولیں - اوپن سسٹم کال ہم اس کے دلائل میں سے ایک INT پرچم ہے کہ یہاں دیکھ سکتے ہیں - 814 01:14:22,720 --> 01:14:29,120 دلیل ہے کہ ان کے جھنڈے میں سے کچھ ہیں کے طور پر اس کی امید کیا. 815 01:14:29,120 --> 01:14:33,030 ہم O_append، O_ASYNC، O_CLOEXEC، دیکھ 816 01:14:33,030 --> 01:14:37,130 O_CREAT، اور اسی طرح کی. 817 01:14:37,130 --> 01:14:45,260 O_DIRECT. پرچم کے ان قسم کے کہیں ہیش کی وضاحت کر رہے ہیں. 818 01:14:45,260 --> 01:14:47,260 اور ان سب بالکل 1 تھوڑا سا ہے. 819 01:14:47,260 --> 01:14:57,600 تو، O_CREAT ہیش کی وضاحت کے طور پر 1، بائیں شفٹ، 4 ہو سکتا ہے (1 << 4). 820 01:14:57,600 --> 01:15:02,280 یہ صرف جا رہا ہے O_CREAT میں استعمال کرتے ہیں جب بھی - وہ جا رہا ہے - 821 01:15:02,280 --> 01:15:09,350 بائنری 1، 0، 0، 0، اور 30 ​​ISH سے zeros میں اس سے پہلے. 822 01:15:09,350 --> 01:15:13,930 یہ صرف ایک تھوڑا سا ایک سیٹ ہے، اور یہ کہ تھوڑا سا اس پرچم کی نمائندگی کرتا ہے. 823 01:15:13,930 --> 01:15:18,160 اور اس کے علاوہ کوئی پرچم 4 کی طرف سے بائیں منتقل کر دیا جا رہا ہے. 824 01:15:18,160 --> 01:15:30,390 میں کر کے ایک واحد عددی میں 32 پرچم تک نمائندگی کرنے کے قابل ہوں - 825 01:15:30,390 --> 01:15:40,850 X = O_CREAT بٹ وار یا O_DIRECT. 826 01:15:40,850 --> 01:15:43,640 آپ کو صرف ان کے پرچم کے کسی بھی 2 اٹھا رہے ہیں. 827 01:15:43,640 --> 01:15:48,600 اب X 2 بٹس کے مطابق جس میں قائم 2 بٹس کی جا رہی ہے 828 01:15:48,600 --> 01:15:53,490 O_CREAT اور O_DIRECT کی. 829 01:15:53,490 --> 01:15:58,740 تو اس طرح - تو پھر ہم کھلی تقریب میں ایکس منظور، 830 01:15:58,740 --> 01:16:02,950 اور کھلے ضروریات اصل میں مقرر کیا گیا پرچم کو دیکھنے کے لئے. 831 01:16:02,950 --> 01:16:06,480 اس طرح چیزیں کرنے کے لئے کہاں جا رہا ہے تو، ہے 832 01:16:06,480 --> 01:16:19,340 (X اور O_CREAT) کچھ کرنا ہے تو، 833 01:16:19,340 --> 01:16:27,110 یا (X & O_DIRECT) کچھ کرنا ہے تو، 834 01:16:27,110 --> 01:16:30,300 اور پھر ہم نے مقرر نہیں کیا ہے کہ کچھ پرچم ہو سکتا ہے - 835 01:16:30,300 --> 01:16:35,730 اگر (X & O_ - میں دیگر کے پرچم تھے پتہ نہیں کیا - 836 01:16:35,730 --> 01:16:42,140 (X اور O_RDONLY) - اس مخصوص حالت قتل نہیں جا رہا ہے. 837 01:16:42,140 --> 01:16:44,030 یا کوڈ کی ہے کہ بلاک قتل نہیں جا رہا ہے، 838 01:16:44,030 --> 01:16:48,030 ان 2 پرچم قائم کی گئی تھی کیونکہ ان 2 ہیں. 839 01:16:48,030 --> 01:16:57,400 اور C میں، 0 نہیں ہے کہ کسی بھی قیمت سچ ہے کہ محسوس. 840 01:16:57,400 --> 01:17:05,020 تو، (X اور O_CREAT) 0 یا O_CREAT یا تو ہو جائے گا 841 01:17:05,020 --> 01:17:07,990 O_CREAT صرف ایک تھوڑا سا سیٹ ہے کیونکہ. 842 01:17:07,990 --> 01:17:12,800 کہ تھوڑا سا اگلا مقرر کیا گیا ہے، تو اس O_CREAT واپس جا رہا ہے - 843 01:17:12,800 --> 01:17:16,640 صرف یہ ہے کہ تھوڑا سا مقرر کیا گیا ہے، جہاں ثنائی. 844 01:17:16,640 --> 01:17:23,400 کہ تھوڑا سا اگلی سیٹ نہیں ہوتا ہے تو، پھر اس کے پرچم مقرر نہیں کیا گیا تھا پتہ ہے جس صورت میں، 0 واپس جا رہا ہے. 845 01:17:23,400 --> 01:17:25,400 یہ ہے کہ آپ bitmasks استعمال کا طریقہ یہ ہے. 846 01:17:25,400 --> 01:17:29,050 میں ایک گزشتہ امتحان یا شاید کلاس یا کچھ اور میں لگتا ہے کہ - 847 01:17:29,050 --> 01:17:35,150 آپ کو ایک متغیر کی ثنائی پرنٹ bitmasks استعمال کر سکتے ہیں. 848 01:17:35,150 --> 01:17:46,250 بائیں شفٹ، 0، 1 - - پر looping - تو میں استعمال کر سکتے ہیں اور پھر پرنٹ X & کہ اگر - 849 01:17:46,250 --> 01:17:52,570 X & 1، بائیں شفٹ، 0 - اور پھر پرنٹ 0 یا 1. یا 1 اور پرنٹ ایک 0 پرنٹ. 850 01:17:52,570 --> 01:18:00,620 اور پھر میں نے ایک بار پھر جانا - اگر X & 1، بائیں شفٹ، 2 - پھر اس کا مطلب ہے کہ دوسرے سا 851 01:18:00,620 --> 01:18:04,450 متغیر سیٹ ہے، تو میں نے ایک 0 پرنٹ 1 اور پرنٹ. 852 01:18:04,450 --> 01:18:06,860 اور میں ہم اصل معکوس ترتیب کی وجہ سے میں ایسا کرنے کے لئے چاہتے ہو سکتا ہے لگتا ہے 853 01:18:06,860 --> 01:18:10,120 عام طور پر آپ کے بائیں جانب سب سے زیادہ کے لئے بٹس ہونا چاہتے ہیں 854 01:18:10,120 --> 01:18:24,510 اور دائیں جانب سب سے کم آرڈر بٹس ہو، تو یہ کہ شاید لوپ 4 int میں = 31 میں 0 مارا جب تک، پر 855 01:18:24,510 --> 01:18:32,320 تو عین حالت ہے کہ - ایکس & 1، بائیں شفٹ، میں تو کسی 1 0 پرنٹ. 856 01:18:32,320 --> 01:18:34,320 [Student کی] آپ کا شکریہ. 857 01:18:36,280 --> 01:18:38,550 >> [روب] میں ہم وقت سے باہر ہو. 858 01:18:38,550 --> 01:18:42,840 باہر کے وقت سیکنڈ کے آخری جوڑے میں مزید کوئی سوال؟ 859 01:18:42,840 --> 01:18:47,710 ٹھیک ہے. کل قسمت اچھا. 860 01:18:47,710 --> 01:18:54,780 یہ اگلے ہفتے کے اختیاری ہونے جا رہا ہے جہاں گزشتہ سیکشن تھا. 861 01:18:54,780 --> 01:19:03,770 میں quizzes ہے واپس دے دیں گے اور ہم نے ان پر جاؤ اور ہو سکتا ہے کہ دوسری چیزوں پر جا سکتے ہیں 862 01:19:03,770 --> 01:19:09,230 آپ کو اس منصوبے کی چیزیں، یا مستقبل CS کلاس چیزوں میں دلچسپی، یا حتمی تھے - یا مجھے پتہ نہیں ہے. 863 01:19:09,230 --> 01:19:12,070 لیکن یہ آخری مواد سے بھرے سیکشن ہے. 864 01:19:12,070 --> 01:19:15,070 الوداع! 865 01:19:15,070 --> 01:19:20,970 (تالیاں). 866 01:19:22,250 --> 01:19:24,420 >> [CS50.TV]