1 00:00:00,000 --> 00:00:12,610 2 00:00:12,610 --> 00:00:12,900 >> DAVID J. MALAN: ٹھیک ہے. 3 00:00:12,900 --> 00:00:16,790 پہلی تو خوش آمدید ایک کوئز کے لئے CS50 پوسٹ مارٹم. 4 00:00:16,790 --> 00:00:18,340 ہم افتتاح سوچا اس روایت کو اس سال کے. 5 00:00:18,340 --> 00:00:20,960 اور اس کا موقع ہو جائے گا کے ذریعے چلنا 6 00:00:20,960 --> 00:00:22,220 کوئز حل. 7 00:00:22,220 --> 00:00:26,160 اور ہم کو تیز یا کی بنیاد پر سست گے یہاں ان کے مفاد پر. 8 00:00:26,160 --> 00:00:29,730 >> آپ ہیں کیونکہ تو آپ شاید یہاں ہیں آپ کر سکتے ہیں کس طرح میں دلچسپی یا 9 00:00:29,730 --> 00:00:31,170 کچھ جواب دیا جانا چاہئے ان مسائل میں سے. 10 00:00:31,170 --> 00:00:33,300 تو کیوں نہ ہم ایک نظر لے نہیں ہے سب سے پہلے اس سیکشن میں؟ 11 00:00:33,300 --> 00:00:34,450 تو ڈور ہو رہی ہے. 12 00:00:34,450 --> 00:00:37,600 یہ آپ کو تین مختلف ورژن دی تھا کہ ایک پروگرام کی، آخر میں، 13 00:00:37,600 --> 00:00:39,650 ایک صارف کی طرف سے ایک تار حاصل کرنے کے لئے کا مطلب ہے. 14 00:00:39,650 --> 00:00:42,530 تھا یہ ہے کہ کیا چاہے یا نہیں اس بات کا تعین کرنے کے لئے آپ کے لئے چھوڑ دیا. 15 00:00:42,530 --> 00:00:45,150 >> اور ہم، سوال 0 پوچھا 1 ورژن ہے کہ لگتا ہے 16 00:00:45,150 --> 00:00:46,400 مرتب کی اور پھانسی. 17 00:00:46,400 --> 00:00:48,860 کیوں پروگرام پر segfault سکتا ہے؟ 18 00:00:48,860 --> 00:00:51,150 پہلی نظر میں، کسی بھی تجاویز کیوں ہے؟ 19 00:00:51,150 --> 00:00:54,012 20 00:00:54,012 --> 00:00:54,489 جی ہاں. 21 00:00:54,489 --> 00:00:59,260 >> سامعین: تو میں اس کو دیکھ کر یاد طرف دیکھنے کا ایک سابقہ ​​مثال 22 00:00:59,260 --> 00:01:05,506 چار * S اور S کے اسکین دیکھ کر اور یہ ایک پوائنٹر، کس طرح ہے کیونکہ دیکھ کر 23 00:01:05,506 --> 00:01:07,971 آپ میں سکین کیا یہ متاثر کیا ہے؟ 24 00:01:07,971 --> 00:01:10,940 یہ S یا ے کی پتہ ہے؟ 25 00:01:10,940 --> 00:01:11,180 >> DAVID J. MALAN: ٹھیک ہے. 26 00:01:11,180 --> 00:01:11,480 اچھا. 27 00:01:11,480 --> 00:01:14,830 تو آخر میں، کسی بھی مسئلہ کا ذریعہ شاید کم کرنے کے لئے کی جا رہی ہے 28 00:01:14,830 --> 00:01:16,210 کہ متغیر ایس کرنے کے لئے. 29 00:01:16,210 --> 00:01:17,280 اور یہ واقعی ایک متغیر ہے. 30 00:01:17,280 --> 00:01:19,900 اس متغیر کے اعداد و شمار کی قسم ہے چار *، جس سے یہ جا رہا ہے کا مطلب 31 00:01:19,900 --> 00:01:22,570 ایک کردار کا پتہ مشتمل. 32 00:01:22,570 --> 00:01:23,850 اور اس کی بصیرت ہے. 33 00:01:23,850 --> 00:01:28,330 یہ پتہ موجود جا رہا ہے عام طور پر ایک کردار یا،، 34 00:01:28,330 --> 00:01:32,110 میں سب سے پہلے کردار کا پتہ حروف کی ایک پوری بلاک. 35 00:01:32,110 --> 00:01:36,680 >> لیکن پکڑنے ہے کہ اسکین کے، مقصد میں زندگی، ایک ایڈریس دیا ہے اور دی گئی ہے 36 00:01:36,680 --> 00:01:40,960 ایک شکل کوڈ،٪ s کو کی طرح، پڑھ کا حصہ میں ایک تار 37 00:01:40,960 --> 00:01:42,330 اس پتے پر میموری. 38 00:01:42,330 --> 00:01:46,040 لیکن کوئی برابر علامت سے پہلے کیونکہ وہاں سب سے پہلے اس نیم وقفہ 39 00:01:46,040 --> 00:01:49,310 کوڈ کے مطابق، ہم اصل میں نہیں ہے کے ساتھ کسی بھی میموری مختص 40 00:01:49,310 --> 00:01:53,020 malloc کی، یہ نہیں تھا اصل میں کچھ کے سائز کی ایک صف، تمام مختص 41 00:01:53,020 --> 00:01:57,620 آپ کیا کر رہے ہیں صارف کی پڑھ رہا ہے کچھ مکمل میں بورڈ ان پٹ 42 00:01:57,620 --> 00:02:00,490 ردی کی ٹوکری کی قیمت، جس ڈیفالٹ کی طرف سے کے میں ہے. 43 00:02:00,490 --> 00:02:04,480 تو مشکلات آپ segfault جا رہے ہیں رہے ہیں اس ایڈریس صرف اتنا نہیں ہوتا 44 00:02:04,480 --> 00:02:08,009 آپ کر سکتے ہیں ایک قیمت ہو، اصل میں، لکھیں. 45 00:02:08,009 --> 00:02:10,889 مختص نہیں تو برا وہاں آپ کی میموری. 46 00:02:10,889 --> 00:02:13,150 >> تو سوال یہ 1 میں، ہم سے پوچھا، 2 ورژن ہے کہ لگتا ہے 47 00:02:13,150 --> 00:02:14,230 مرتب کی اور پھانسی. 48 00:02:14,230 --> 00:02:15,900 کیوں اس پروگرام پر segfault سکتا ہے؟ 49 00:02:15,900 --> 00:02:17,990 تو یہ ایک کم چھوٹی گاڑی ہے. 50 00:02:17,990 --> 00:02:21,470 اور صرف ایک سچ ہے واضح طریقہ ہے جہاں آپ کر سکتے ہیں 51 00:02:21,470 --> 00:02:22,810 یہاں segfault ایک ٹرگر. 52 00:02:22,810 --> 00:02:23,730 اور یہ موضوع ہے. 53 00:02:23,730 --> 00:02:28,180 ہم یاد میں سی استعمال کر رہے ہیں کسی بھی وقت، کیا آپ segfault ایک دلانا کر سکتے ہیں 54 00:02:28,180 --> 00:02:30,718 2 ورژن کے ساتھ؟ 55 00:02:30,718 --> 00:02:35,560 >> سامعین: آپ میں اس ان پٹ کا استعمال کرتے ہیں 49 سے زیادہ ہے کہ ایک تار 56 00:02:35,560 --> 00:02:35,975 حروف. 57 00:02:35,975 --> 00:02:37,260 >> DAVID J. MALAN: بالکل. 58 00:02:37,260 --> 00:02:41,420 آپ کو کچھ مقررہ لمبائی دیکھنے کے کسی بھی وقت یہ ایک صف کے لئے آتا ہے، آپ 59 00:02:41,420 --> 00:02:44,650 ریڈار یہ ہو سکتا ہے کہ دور جانا چاہئے مشکلات آپ کی جانچ پڑتال نہیں کر رہے ہیں 60 00:02:44,650 --> 00:02:45,810 ایک صف کی حدود. 61 00:02:45,810 --> 00:02:46,650 اور یہ کہ یہاں مسئلہ ہے. 62 00:02:46,650 --> 00:02:47,910 ہم اب بھی scanf استعمال کر رہے ہیں. 63 00:02:47,910 --> 00:02:52,200 ہم اب بھی کوشش کریں جس کا مطلب ہے،٪ s کو استعمال کر رہے ہیں صارف سے ایک تار کو پڑھنے کے لئے. 64 00:02:52,200 --> 00:02:56,300 یہی وجہ ہے کہ، جس، S میں پڑھا جا رہا ہے اس وقت، مؤثر طریقے سے ہے 65 00:02:56,300 --> 00:02:58,570 میموری کا ایک حصہ کا پتہ یا اس کے برابر ہے. 66 00:02:58,570 --> 00:03:02,080 یہ ایک صف کا نام ہے میموری کے حروف کی. 67 00:03:02,080 --> 00:03:07,610 >> لیکن بالکل، کہ آپ کو ایک تار پڑھا ہے کہ 49 حروف، 49 سے زیادہ ہے 68 00:03:07,610 --> 00:03:10,440 اگر آپ الٹا سلیش کے لئے کمرے کی ضرورت ہے 0، آپ اتپرواہ کرنے کے لئے جا رہے ہیں 69 00:03:10,440 --> 00:03:11,390 کہ بفر. 70 00:03:11,390 --> 00:03:16,410 اور تم خوش ہو جاؤ اور کرنے کے قابل ہو سکتا ہے ایک 51st کردار، 52nd، 53rd لکھنا. 71 00:03:16,410 --> 00:03:18,560 لیکن کچھ نقطہ پر، OS کہنا جا رہا ہے، کوئی. 72 00:03:18,560 --> 00:03:21,270 یہ یقینی طور پر یاد نہیں ہے تمہیں چھو کرنے کی اجازت دی کر رہے ہیں. 73 00:03:21,270 --> 00:03:23,380 اور پروگرام segfault جا رہا ہے. 74 00:03:23,380 --> 00:03:26,650 >> تو وہاں، heuristics کسی بھی ہونا چاہئے آپ مقررہ لمبائی ہے وقت، آپ کے پاس 75 00:03:26,650 --> 00:03:30,150 یقین ہے کہ آپ لمبائی کی جانچ پڑتال کر رہے ہیں بنانے کے لئے یہ آپ کو کوشش کر رہے ہیں جو کچھ بھی ہے کے 76 00:03:30,150 --> 00:03:31,090 اس میں پڑھنے کے لئے. 77 00:03:31,090 --> 00:03:35,110 >> سامعین: تو یہ ہے کہ، اگر آپ کر سکتے ہیں کو حل کرنے کے اصل میں جانچ پڑتال کے ایک بیان تھا 78 00:03:35,110 --> 00:03:37,140 لمبائی زیادہ ہے زیادہ یا سے بھی کم؟ 79 00:03:37,140 --> 00:03:37,730 >> DAVID J. MALAN: بالکل. 80 00:03:37,730 --> 00:03:41,706 آپ کو صرف ایک شرط ہے کا کہنا ہے کہ، کہ اگر - 81 00:03:41,706 --> 00:03:46,080 یا بلکہ آپ کو ضروری نہیں جانتے پیشگی کتنے حروف 82 00:03:46,080 --> 00:03:49,060 صارف، ٹائپ کرنے کے لئے جا رہا ہے آپ چکن اور انڈے ہے. 83 00:03:49,060 --> 00:03:51,860 آپ کو scanf کے ساتھ اس میں پڑھا ہے نہیں ہے جب تک آپ کو اس کی ہے کتنی دیر تک کے اعداد و شمار کر سکتے ہیں. 84 00:03:51,860 --> 00:03:54,500 لیکن اس وقت، یہ، بہت دیر ہو چکی ہے آپ نے پہلے ہی اس میں پڑھا ہے کیونکہ 85 00:03:54,500 --> 00:03:55,710 میموری کے کچھ بلاک. 86 00:03:55,710 --> 00:03:59,590 ایک طرف، CS50 لائبریری سے اجتناب کیا جائے تو اس مسئلے کو مکمل طور پر، یاد 87 00:03:59,590 --> 00:04:01,060 fgetc کا استعمال کرتے ہوئے کی طرف سے. 88 00:04:01,060 --> 00:04:05,390 اور یہ، ایک وقت میں ایک کردار پڑھتا ہے ٹپ toeing جاننے کے، آپ کے ساتھ ہے 89 00:04:05,390 --> 00:04:08,060 ایک کردار اگر اتپرواہ نہیں کر سکتے ہیں آپ ایک وقت میں ایک کو پڑھنے کے. 90 00:04:08,060 --> 00:04:11,580 >> پکڑو GetString کے یاد ساتھ ہے ہم مسلسل دوبارہ سائز ہے 91 00:04:11,580 --> 00:04:13,590 میموری کے اس حصہ، جس صرف ایک درد ہے. 92 00:04:13,590 --> 00:04:15,310 اس کی لائنوں کی ایک بہت ہے ایسا کرنے کے لئے کوڈ. 93 00:04:15,310 --> 00:04:18,779 تو ایک اور نقطہ نظر کے لئے ہو گا اصل میں ایک کزن کا استعمال کرتے ہیں، تو 94 00:04:18,779 --> 00:04:19,790 scanf کا، بات کرنے کے لئے. 95 00:04:19,790 --> 00:04:22,820 ان میں سے ایک بہت کچھ کے متغیرات ہیں اصل میں چیک کرنے کے لیے کام کرتا ہے کہ 96 00:04:22,820 --> 00:04:25,870 کی لمبائی کتنے حروف آپ زیادہ سے زیادہ پڑھ سکتا ہے. 97 00:04:25,870 --> 00:04:29,430 اور آپ کو نہیں پڑھا ہے، کی وضاحت کر سکتے ہیں 50 سے زیادہ حروف. 98 00:04:29,430 --> 00:04:34,110 تو یہ ایک اور نقطہ نظر ہو سکتا ہے لیکن کرے گا بڑے آدانوں کی کم جگہ دینا. 99 00:04:34,110 --> 00:04:37,040 >> تو اس ورژن لگتا ہے، پوچھتا ہے 2 سوال 3 مرتب کی اور پھانسی دے دی ہے. 100 00:04:37,040 --> 00:04:39,960 کیوں کہ اس پروگرام پر segfault سکتا ہے؟ 101 00:04:39,960 --> 00:04:42,650 تو یہ اصل میں ایک ہی ہے ، جواب، اگرچہ یہ 102 00:04:42,650 --> 00:04:43,590 ایک چھوٹا سا اچھے لگ رہا ہے. 103 00:04:43,590 --> 00:04:46,440 ہم طرح محسوس ہوتا ہے، جس malloc کے، کا استعمال کرتے ہوئے کر رہے ہیں ہم نے خود کو زیادہ اختیارات دے رہے ہیں. 104 00:04:46,440 --> 00:04:48,030 اور پھر ہم اس کو آزاد کر رہے ہیں آخر میں میموری. 105 00:04:48,030 --> 00:04:49,580 یہ اب بھی میموری کے صرف 50 بائٹس ہے. 106 00:04:49,580 --> 00:04:53,620 تو ہم اب بھی پڑھنے کے لئے کوشش کر سکتے ہیں 51، 52، 1،000 بائٹس میں. 107 00:04:53,620 --> 00:04:55,830 اس کے لئے segfault جا رہا ہے بالکل اسی وجہ سے. 108 00:04:55,830 --> 00:04:57,530 >> لیکن ایک اور وجہ بھی ہے. 109 00:04:57,530 --> 00:05:03,890 اس کے علاوہ واپسی malloc سکتا ہے اور کیا میموری کا ایک حصہ کا پتہ؟ 110 00:05:03,890 --> 00:05:04,920 یہ نل واپس کر سکتے ہیں. 111 00:05:04,920 --> 00:05:07,560 اور ہم نے کے لئے جانچ پڑتال نہیں کر رہے ہیں کیونکہ کہ، ہم کچھ کر کیا جا سکتا ہے 112 00:05:07,560 --> 00:05:11,350 یہ ہے کہ جس کی ایک اور وجہ، کے لئے پاگل ہم scanf کہہ رہا ہو سکتا ہے، پڑھ 113 00:05:11,350 --> 00:05:16,050 کی بورڈ سے صارف کی ان پٹ 0 مقام میں، ارف، شہوت انگیز null. 114 00:05:16,050 --> 00:05:18,890 اور یہ کہ، بھی، ضرور کروں گا segfault ایک ٹرگر. 115 00:05:18,890 --> 00:05:21,590 تو کوئز ہے اس مقصد کے لئے، ہم کریں گے ایک کے طور پر ان میں سے کسی کو قبول کر لیا 116 00:05:21,590 --> 00:05:22,740 عذر. 117 00:05:22,740 --> 00:05:23,420 ایک جیسی ہے. 118 00:05:23,420 --> 00:05:25,720 ایک تھوڑا زیادہ nuanced ہے. 119 00:05:25,720 --> 00:05:28,975 >> آخر میں، پروگرام کے لئے احترام کے ساتھ میموری کے استعمال کی، کس طرح 2 ورژن کرتے ہیں اور 120 00:05:28,975 --> 00:05:30,350 ورژن 3 مختلف؟ 121 00:05:30,350 --> 00:05:35,070 تو اس کے قابل ہے، اس کے لئے، ہم نے دیکھا ایک ممکن کے بظاہر لامتناہی کی فراہمی 122 00:05:35,070 --> 00:05:35,770 اس کے جوابات. 123 00:05:35,770 --> 00:05:39,300 اور لوگوں کے جوابات کے علاوہ، ہم کیا تھے کے لئے امید، لیکن ہم دیگر قبول 124 00:05:39,300 --> 00:05:42,250 چیزوں، سے کچھ کا ذکر تھا 2 ورژن استعمال کر رہا ہے یہ حقیقت ہے کہ 125 00:05:42,250 --> 00:05:44,560 نام نہاد اسٹیک. 126 00:05:44,560 --> 00:05:46,710 ورژن 3 کے ڈھیر کا استعمال کرتے ہوئے کیا جاتا ہے. 127 00:05:46,710 --> 00:05:50,060 اور فعل، یہ واقعی نہیں ہے ایک فرق کے تمام اتنا بنانے کے. 128 00:05:50,060 --> 00:05:54,040 دن کے آخر میں، ہم اب بھی کر رہے ہیں صرف میموری کے 50 بائٹس ہو رہی ہے. 129 00:05:54,040 --> 00:05:56,640 >> لیکن یہ ممکن جوابات میں سے ایک تھا ہم دیکھ رہے تھے کہ. 130 00:05:56,640 --> 00:05:59,730 آپ کو آپ کے سوال جواب کے طور پر لیکن آپ، دیکھیں گے واپس کی TFs سے، ہم نے کیا ہے 131 00:05:59,730 --> 00:06:04,330 دوسری بات چیت قبول ان مختلف میموری کا استعمال کرتا ہے کے ساتھ ساتھ. 132 00:06:04,330 --> 00:06:08,600 لیکن اسٹیک، اور ڈھیر ہوتا ہے ساتھ جانے کے لئے ایک آسان جواب. 133 00:06:08,600 --> 00:06:11,150 کوئی سوال؟ 134 00:06:11,150 --> 00:06:12,400 میں تم سے روب دے. 135 00:06:12,400 --> 00:06:18,360 136 00:06:18,360 --> 00:06:20,210 >> روب Bowden: تو مسئلہ 4. 137 00:06:20,210 --> 00:06:21,985 اس سے آپ کو بھرنے کے لئے تھا جہاں سے ایک ہے سب سے باہر بائٹس کی تعداد میں 138 00:06:21,985 --> 00:06:23,460 استعمال کیا جاتا ہے ان کی مختلف اقسام. 139 00:06:23,460 --> 00:06:24,830 ہم دیکھتے ہیں تو سب سے پہلی چیز. 140 00:06:24,830 --> 00:06:27,930 ایک 32 بٹ کے فن تعمیر کے فرض، اس CS50 آلات کی طرح. 141 00:06:27,930 --> 00:06:33,530 کے بارے میں بنیادی چیزوں میں سے ایک تو 32 بٹ architectures کے، ہمیں بتاتا ہے کہ 142 00:06:33,530 --> 00:06:37,490 بالکل کتنا بڑا ایک پوائنٹر جا رہا ہے فن تعمیر میں ہو. 143 00:06:37,490 --> 00:06:43,020 >> تو فوری طور پر، ہم جانتے ہیں کہ کسی بھی پوائنٹر قسم 32 بٹیں یا 4 بائٹس ہے. 144 00:06:43,020 --> 00:06:46,010 تو اس میز پر دیکھ، ایک نوڈ * ایک پوائنٹر قسم ہے. 145 00:06:46,010 --> 00:06:47,250 4 بائٹس ہو رہا ہے. 146 00:06:47,250 --> 00:06:51,640 struct نوڈ *، یہ لفظی ہے نوڈ سٹار جیسی. 147 00:06:51,640 --> 00:06:53,590 اور تو ہے کہ 4 بائٹس ہو رہا ہے. 148 00:06:53,590 --> 00:06:58,270 سلک، تو یہ ایک جیسی نظر نہیں آتی ابھی پوائنٹر، لیکن typedef، ایک 149 00:06:58,270 --> 00:07:01,590 سٹرنگ صرف ایک چار *، ہے جو ایک پوائنٹر قسم ہے. 150 00:07:01,590 --> 00:07:03,550 تو اس 4 بائٹس ہو رہا ہے. 151 00:07:03,550 --> 00:07:06,150 >> تو ان تین تمام 4 بائٹس ہیں. 152 00:07:06,150 --> 00:07:09,350 اب، نوڈ اور طالب علم ہیں تھوڑا سا زیادہ پیچیدہ. 153 00:07:09,350 --> 00:07:15,160 تو نوڈ اور طالب علم کو دیکھ کر، ہم دیکھتے ہیں ایک عددی اور ایک پوائنٹر کے طور پر نوڈ. 154 00:07:15,160 --> 00:07:18,050 اور طالب علم کو دو اشارہ ہے اس کے اندر. 155 00:07:18,050 --> 00:07:23,340 تو کم از کم ہمارے یہاں کے کیس کے لئے، راستہ ہم کے سائز کے حساب ختم ہے 156 00:07:23,340 --> 00:07:27,020 اس struct سب کچھ شامل ہے کہ struct کے اندر ہے. 157 00:07:27,020 --> 00:07:30,690 >> تو نوڈ کے لئے، ہم ایک عددی ہے، جس میں 4 بائٹس ہے. 158 00:07:30,690 --> 00:07:32,830 ہم 4 بائٹس ہے جس میں ایک پوائنٹر، ہے. 159 00:07:32,830 --> 00:07:35,820 اور اس طرح ایک نوڈ کی جا رہی ہے 8 بائٹس لے. 160 00:07:35,820 --> 00:07:39,490 اور اسی طرح طالب علم کے لئے، ہم ایک ہیں 4 بائٹس اور ایک اور ہے کہ پوائنٹر 161 00:07:39,490 --> 00:07:40,770 4 بائٹس ہے کہ پوائنٹر. 162 00:07:40,770 --> 00:07:43,180 تو اس کو ختم کرنے جا رہا ہے 8 بائٹس ہے. 163 00:07:43,180 --> 00:07:45,480 تو نوڈ اور طالب علم 8 بائٹس ہیں. 164 00:07:45,480 --> 00:07:48,950 اور ان تینوں تمام 4 بائٹس ہیں. 165 00:07:48,950 --> 00:07:50,240 اس پر سوال؟ 166 00:07:50,240 --> 00:07:54,640 167 00:07:54,640 --> 00:07:54,990 جی ہاں. 168 00:07:54,990 --> 00:07:58,413 >> سامعین: یہ ایک 64 بٹ گیا ہے فن تعمیر، کہ 169 00:07:58,413 --> 00:07:59,880 ان میں سے سب کو دوگنا؟ 170 00:07:59,880 --> 00:08:01,790 >> روب Bowden: یہ نہیں کریں گے ان میں سے سب کو دوگنا. 171 00:08:01,790 --> 00:08:05,830 تو 64 بٹ کے فن تعمیر، یہ، پھر، تبدیلیاں جو کہ بنیادی بات یہ ہے کہ ایک 172 00:08:05,830 --> 00:08:08,910 پوائنٹر اب 64 بٹس ہے. 173 00:08:08,910 --> 00:08:09,290 جی ہاں. 174 00:08:09,290 --> 00:08:10,930 تو پوائنٹر 8 بائٹس ہے. 175 00:08:10,930 --> 00:08:15,420 تو ان 4 بائٹس تھے 8 بائٹس جا رہے ہیں. 176 00:08:15,420 --> 00:08:18,617 دو اشارہ تھا جس میں ایک طالب علم،، ٹھیک ہے، اب یہ جا رہا ہے 177 00:08:18,617 --> 00:08:19,800 8 بائٹس، 8 بائٹس ہو. 178 00:08:19,800 --> 00:08:21,980 یہ 16 بائٹس بنانے کے لئے جا رہا ہے. 179 00:08:21,980 --> 00:08:25,710 >> لیکن ایک نوڈ اب بھی 4 بائٹس ہے. 180 00:08:25,710 --> 00:08:27,800 تو اس پوائنٹر جا رہا ہے 8 بائٹس ہو. 181 00:08:27,800 --> 00:08:28,930 یہ 4 بائٹس ہے. 182 00:08:28,930 --> 00:08:30,870 تو ایک نوڈ صرف کی جا رہی ہے 12 بائٹس ہو. 183 00:08:30,870 --> 00:08:36,309 184 00:08:36,309 --> 00:08:39,280 اس پر کوئی سوال؟ 185 00:08:39,280 --> 00:08:44,500 تو اگلے ایک، یہ ہیں HTTP حیثیت کوڈ. 186 00:08:44,500 --> 00:08:48,000 اور آپ کے حالات کی وضاحت کرنے کے لئے تھا جس کے تحت ان کی طاقت 187 00:08:48,000 --> 00:08:49,810 آپ کو واپس کیا جائے. 188 00:08:49,810 --> 00:08:56,730 میں کچھ طالب علموں نے سنا ہے کہ ایک مسئلہ ہے وہ بنانے کی کوشش کی ہے 189 00:08:56,730 --> 00:08:58,950 غلطیوں کلائنٹ کے اختتام پر ہو. 190 00:08:58,950 --> 00:09:02,320 ہم درخواست کرنے کی کوشش کریں تو جب سرور، کچھ جاتا ہے 191 00:09:02,320 --> 00:09:03,820 اپنے اختتام پر غلط. 192 00:09:03,820 --> 00:09:07,660 لیکن عام طور پر، ان کے کوڈ ہیں سرور کی طرف سے واپس کیا جا رہا ہے. 193 00:09:07,660 --> 00:09:11,720 تو ہم کیا ہو رہا ہے پتہ کرنے کے لئے چاہتے ہیں، غلط یا صحیح سرور پر 194 00:09:11,720 --> 00:09:14,280 ان چیزوں کو واپس کرنے کا سبب بنتا ہے. 195 00:09:14,280 --> 00:09:18,670 تو کیوں ایک سرور کی واپسی ہو سکتا ہے حیثیت کوڈ 200؟ 196 00:09:18,670 --> 00:09:19,920 کوئی خیال؟ 197 00:09:19,920 --> 00:09:23,360 198 00:09:23,360 --> 00:09:23,730 >> جی ہاں. 199 00:09:23,730 --> 00:09:27,850 تو کچھ کے بارے میں کامیابی کے ساتھ پروپوزل کی گذارش ذریعے چلا گیا. 200 00:09:27,850 --> 00:09:30,260 اور وہ واپس کرنے کے قابل ہو آپ کے لئے کہا جو کچھ بھی. 201 00:09:30,260 --> 00:09:32,240 تو سب کچھ ٹھیک تھا. 202 00:09:32,240 --> 00:09:35,662 302 کے بارے میں کیا پایا؟ 203 00:09:35,662 --> 00:09:36,618 جی ہاں. 204 00:09:36,618 --> 00:09:39,008 >> سامعین: سرور دیکھ رہا تھا آپ کی درخواست کی ہے کے لئے. 205 00:09:39,008 --> 00:09:40,442 لیکن یہ نہیں مل سکا. 206 00:09:40,442 --> 00:09:42,850 تو میں ایک خامی ہے. 207 00:09:42,850 --> 00:09:47,720 >> روب Bowden: تو سرور تھا تم چاہتے تھے کیا کے لئے تلاش. 208 00:09:47,720 --> 00:09:51,682 تو صرف یہاں تلاش، 302 نہیں ملا، اسے تلاش کرنے کے قابل تھا. 209 00:09:51,682 --> 00:09:53,035 >> سامعین: میں معافی چاہتا ہوں. 210 00:09:53,035 --> 00:09:54,388 ملا وہ اسے تلاش کیا مطلب ہے کہ. 211 00:09:54,388 --> 00:09:55,638 معذرت. 212 00:09:55,638 --> 00:09:58,120 213 00:09:58,120 --> 00:10:00,160 >> روب Bowden: تو 302 نہیں ملا. 214 00:10:00,160 --> 00:10:02,350 سرور کو تلاش کرنے کے قابل ہے تم چاہتے کیا. 215 00:10:02,350 --> 00:10:04,640 >> سامعین: لیکن یہ اس کی نمائش نہیں ہے؟ 216 00:10:04,640 --> 00:10:08,180 >> روب Bowden: کے درمیان فرق یہ 302 اور 200 ہے کہ اس 217 00:10:08,180 --> 00:10:09,280 جو آپ چاہتے ہیں کو جانتا ہے. 218 00:10:09,280 --> 00:10:12,000 لیکن یہ کہاں نہیں ہے تم سے پوچھنا چاہتا تھا. 219 00:10:12,000 --> 00:10:14,580 تو 302 ایک عام لوٹایا ہے. 220 00:10:14,580 --> 00:10:16,510 تو آپ کو ایک صفحہ کی درخواست کی. 221 00:10:16,510 --> 00:10:19,590 یہ اوہ، میں چاہتا ہوں، جانتا ہے آپ اس واپس کرنے کے لئے. 222 00:10:19,590 --> 00:10:21,070 لیکن یہ ایک مختلف یو آر ایل پر ہے. 223 00:10:21,070 --> 00:10:23,534 تو ہے، آپ اصل میں یہ چاہتے ہیں. 224 00:10:23,534 --> 00:10:26,950 >> DAVID J. MALAN: اس نے کہا ہے کہ ایک ٹکڑا ہے ہم تم لوگوں کو لوٹایا دیا 225 00:10:26,950 --> 00:10:30,830 ہیڈر تقریب کا استعمال کیا اس تقریب اس کے نتیجے میں،، مقام طباعت 226 00:10:30,830 --> 00:10:34,110 بڑی آنت، اور اس کے بعد یو آر ایل جس سے آپ صارف کو مسترد کرنا چاہتے ہیں. 227 00:10:34,110 --> 00:10:37,480 آپ 302 کو نہیں دیکھا تھا اگرچہ واضح طور پر وہاں، کیا پی ایچ پی کی ہے 228 00:10:37,480 --> 00:10:41,550 جادوئی ہیڈر کے طور پر داخل کریں گے روب نے کہا کہ بالکل کیا کہہ - 229 00:10:41,550 --> 00:10:41,930 پایا. 230 00:10:41,930 --> 00:10:43,180 لیکن اس کے بجائے یہاں جانا. 231 00:10:43,180 --> 00:10:45,960 232 00:10:45,960 --> 00:10:46,160 >> روب Bowden: ٹھیک ہے. 233 00:10:46,160 --> 00:10:47,630 تو 403 کے بارے میں کیا حرام؟ 234 00:10:47,630 --> 00:10:52,240 235 00:10:52,240 --> 00:10:57,120 >> سامعین: میں یہ لگتا ہے کہ سرور بنیادی طور پر کہہ رہا ہے کہ کلائنٹ 236 00:10:57,120 --> 00:10:59,970 ہوم پیج تک رسائی حاصل نہیں کر سکتے. 237 00:10:59,970 --> 00:11:03,260 >> روب Bowden: تو جی ہاں. 238 00:11:03,260 --> 00:11:07,670 ٹھیک ہے، عام جواب ہم تھے توقع کچھ کی طرح، فائلوں ہے 239 00:11:07,670 --> 00:11:08,920 مناسب chmodded نہیں کر رہے ہیں. 240 00:11:08,920 --> 00:11:11,590 یہ شاید کے تحت کیا حالات آپ ان کو دیکھا. 241 00:11:11,590 --> 00:11:18,920 لیکن ایک وجہ ہے کہ کلائنٹ یہاں غلطی پر ہو سکتا ہے. 242 00:11:18,920 --> 00:11:20,440 ایک اور حیثیت کوڈ اصل ہے - 243 00:11:20,440 --> 00:11:21,210 401. 244 00:11:21,210 --> 00:11:22,820 تو یہ بہت ملتے جلتے ہیں. 245 00:11:22,820 --> 00:11:24,590 >> 401 غیر مجاز ہے. 246 00:11:24,590 --> 00:11:26,130 اور 403 حرام ہے. 247 00:11:26,130 --> 00:11:31,890 اور اس طرح غیر مجاز آپ خصوصی طور پر اپ لاگ ان نہیں کر رہے ہیں کو حاصل 248 00:11:31,890 --> 00:11:34,520 لیکن میں لاگ ان مطلب ہو سکتا ہے آپ کو اختیار کر رہے ہیں. 249 00:11:34,520 --> 00:11:37,930 لیکن آپ نے پہلے ہی میں ریکارڈ اور آپ کر رہے ہیں اب بھی اس کے بعد، کی اجازت نہیں ہے 250 00:11:37,930 --> 00:11:40,140 آپ کو بھی حرام ہے حاصل کر سکتے ہیں. 251 00:11:40,140 --> 00:11:45,320 تو اگر آپ لاگ ان کر رہے ہیں اور نہیں ہے تو اجازت، حرام بھی ہے 252 00:11:45,320 --> 00:11:47,164 آپ حاصل کر سکتے ہیں کچھ. 253 00:11:47,164 --> 00:11:48,900 >> DAVID J. MALAN: اور طریقہ کار کی طرف سے ان کے مسائل عام طور پر ہیں جو 254 00:11:48,900 --> 00:11:53,100 سرور پر ہے حل کیا کمانڈ کے ذریعے؟ 255 00:11:53,100 --> 00:11:57,700 CHMOD، یہ ہے، بے شک، ایک اجازت فائل یا ڈائریکٹری پر مسئلہ. 256 00:11:57,700 --> 00:11:59,220 >> روب Bowden: پھر 404 نہیں ملا. 257 00:11:59,220 --> 00:12:03,100 258 00:12:03,100 --> 00:12:03,470 جی ہاں. 259 00:12:03,470 --> 00:12:10,150 تو 302 کے برعکس جہاں یہ بالکل نہیں تھا تم سے پوچھ رہے ہیں جہاں یہ جانتا ہے 260 00:12:10,150 --> 00:12:12,710 آپ چاہتے ہیں، یہ، یہ صرف ہے آپ کیا چاہتے ہیں کوئی اندازہ نہیں ہے. 261 00:12:12,710 --> 00:12:15,648 اور آپ کی درخواست نہیں کر رہے ہیں درست کچھ. 262 00:12:15,648 --> 00:12:18,580 263 00:12:18,580 --> 00:12:22,310 418 میں تو ایک teapot کے ہوں اور 500 اندرونی سرور کی. 264 00:12:22,310 --> 00:12:24,870 تو آپ کیوں کہ ہو سکتا ہے؟ 265 00:12:24,870 --> 00:12:26,120 >> تو پر segfault - 266 00:12:26,120 --> 00:12:28,760 267 00:12:28,760 --> 00:12:30,640 میں اصل میں گریڈنگ نہیں جانتے اس کے لئے معیاری. 268 00:12:30,640 --> 00:12:34,850 لیکن آپ کی پی ایچ پی کوڈ کچھ تھا اس میں غلط، اصول میں، یہ کر سکتا تھا 269 00:12:34,850 --> 00:12:39,650 اصل میں، پر segfault جس صورت میں، اس 500 اندرونی سرور کی خرابی، کچھ 270 00:12:39,650 --> 00:12:41,400 آپ کے سرور کے ساتھ غلط ہے ترتیب. 271 00:12:41,400 --> 00:12:44,320 یا ایک نحوی خامی ہے آپ پی ایچ پی کوڈ میں. 272 00:12:44,320 --> 00:12:46,095 یا برا کچھ ہو رہا ہے. 273 00:12:46,095 --> 00:12:48,320 >> DAVID J. MALAN: ہم segfault ایک دیکھا چند لوگوں کے جوابات میں. 274 00:12:48,320 --> 00:12:49,490 اور تکنیکی، یہ ہو سکتا ہے. 275 00:12:49,490 --> 00:12:53,820 لیکن یہ ایک پی ایچ پی، پروگرام ہو گا اصل میں، دوسرے لوگوں کی طرف سے لکھا 276 00:12:53,820 --> 00:12:57,790 segfaulted، جس میں صرف اس صورت میں ان لوگوں کو مصیبت میں چھوٹی گاڑی کے کوڈ میں لکھا 277 00:12:57,790 --> 00:13:00,680 ان کے ترجمان گے پی ایچ پی کی خود پر segfault. 278 00:13:00,680 --> 00:13:06,460 500 segfault ایک طرح ہے تو اگرچہ روح میں، یہ تقریبا ہمیشہ 279 00:13:06,460 --> 00:13:10,490 ایک کنفیگریشن فائل مسئلہ کا نتیجہ اپنے ویب سرور کے ساتھ یا، روب نے کہا کہ، 280 00:13:10,490 --> 00:13:13,200 آپ کی طرح ایک نحوی خامی، ایک اقتباس بند نہیں کیا. 281 00:13:13,200 --> 00:13:16,180 یا آپ کہیں ایک نیم وقفہ کھو. 282 00:13:16,180 --> 00:13:23,677 >> سامعین: تو شٹل pset کے لئے، میں میں نے یہ کیا جب میں کلک ایک بار لگتا ہے 283 00:13:23,677 --> 00:13:26,300 براؤزر، لیکن کچھ بھی نہیں، آیا وہ وائٹ پیج نامی کیا. 284 00:13:26,300 --> 00:13:28,056 لیکن اس کی وجہ کوڈ کی تھی. 285 00:13:28,056 --> 00:13:29,440 مجھے لگتا ہے کہ جاوا اسکرپٹ تھا، ٹھیک ہے؟ 286 00:13:29,440 --> 00:13:29,770 >> روب Bowden: جی ہاں. 287 00:13:29,770 --> 00:13:31,180 >> سامعین: کہ غلطی اب بھی آئے ہو؟ 288 00:13:31,180 --> 00:13:34,290 >> روب Bowden: تو تم ہو نہیں ہوتا اس خرابی کی وجہ سے سب کچھ 289 00:13:34,290 --> 00:13:36,930 ویب سرور کے نقطہ نظر سے مکمل طور پر ٹھیک تھا. 290 00:13:36,930 --> 00:13:39,090 لیکن آپ index.html کی درخواست کی. 291 00:13:39,090 --> 00:13:42,000 آپ shuttle.js درخواست اور service.js. 292 00:13:42,000 --> 00:13:44,580 اور یہ کامیابی کے ساتھ واپس کرنے کے قابل تھا آپ ان چیزوں میں سے سب کے لئے - 293 00:13:44,580 --> 00:13:44,980 200. 294 00:13:44,980 --> 00:13:45,680 ٹھیک ہے. 295 00:13:45,680 --> 00:13:49,330 یہ آپ کے براؤزر کی کوشش کی صرف اس وقت جب ہے جاوا سکرپٹ کے کوڈ کی تشریح ہے 296 00:13:49,330 --> 00:13:51,370 اس طرح، انتظار کر رہا ہے، یہ نہیں ہے درست جاوا اسکرپٹ کی خرابی. 297 00:13:51,370 --> 00:13:55,720 298 00:13:55,720 --> 00:13:58,210 کوئی سوال؟ 299 00:13:58,210 --> 00:14:00,750 ٹھیک ہے. 300 00:14:00,750 --> 00:14:04,120 >> DAVID J. MALAN: تو اگلے اپ کی تعداد 11 تھی. 301 00:14:04,120 --> 00:14:07,610 اور 11 scariest تھا لوگوں کی ایک بہت کے لئے. 302 00:14:07,610 --> 00:14:14,620 303 00:14:14,620 --> 00:14:18,570 تو سب سے اہم بات یہاں یہ بات نوٹ کرنا اس، بے شک، کے بارے میں تھا 304 00:14:18,570 --> 00:14:19,840 دوگنا منسلک فہرست. 305 00:14:19,840 --> 00:14:23,160 لیکن یہ گزشتہ سال کے طور پر ایک ہی نہیں تھا دوگنا منسلک فہرست کا مسئلہ، 306 00:14:23,160 --> 00:14:27,170 جس سے آپ کو انتباہ نہیں دیا کہ فہرست، حقیقت میں، ناچھانٹا ہوا ہو سکتا ہے. 307 00:14:27,170 --> 00:14:29,640 >> فہرست ناچھانٹا ہوا تھا تاکہ حقیقت اور یہ کہ لفظ تھا حقیقت یہ ہے کہ 308 00:14:29,640 --> 00:14:32,930 تبلیغ کے لئے وہاں گیا تھا پر زور دیا یہ اصل میں ایک آسان بنانے ہے کہ 309 00:14:32,930 --> 00:14:35,430 دوسری صورت میں ہوتا ہے کیا ایک سے زیادہ چیلنج مسئلہ 310 00:14:35,430 --> 00:14:36,600 اور ایک ایک طویل. 311 00:14:36,600 --> 00:14:40,760 تو یہاں ایک عام غلطی ڈال دیا تھا آپ ایک پر گزشتہ سال کے حل 312 00:14:40,760 --> 00:14:45,580 پیجر اور پھر صرف آنکھ بند کر کہ کاپی حق ہے جس کا جواب، کے طور پر نیچے 313 00:14:45,580 --> 00:14:48,520 ایک مختلف سوال جواب روح میں اسی طرح کے. 314 00:14:48,520 --> 00:14:51,340 لیکن یہاں subtleties میں مندرجہ ذیل تھے. 315 00:14:51,340 --> 00:14:55,200 >> ایک تو ہم ایک نوڈ کا اعلان کر دیا ہے اور یہاں معمول کے راستے میں وضاحت کی گئی. 316 00:14:55,200 --> 00:14:59,230 پھر ہم نے کی فہرست میں ایک عالمی ہو کی وضاحت پوائنٹر نل initialized ہے. 317 00:14:59,230 --> 00:15:02,150 اس کے بعد ظاہر ہے، دو افعال ہے ہم یہاں کے لئے prototypes ہے، ڈالیں 318 00:15:02,150 --> 00:15:03,240 اور دور. 319 00:15:03,240 --> 00:15:06,600 اور پھر ہم یہاں کچھ نمونے کے کوڈ ہیں کے اضافے کے ایک گروپ کر رہا. 320 00:15:06,600 --> 00:15:09,930 اور پھر ہم مکمل کرنے کے لئے تم سے پوچھنا اس طرح میں نیچے داخل کے عمل 321 00:15:09,930 --> 00:15:14,380 اس فہرست میں ن اضافہ ایک طریقہ ہے کہ مسلسل وقت میں، بھی زور دیا، 322 00:15:14,380 --> 00:15:15,730 یہاں تک کہ پہلے سے ہی موجود ہو. 323 00:15:15,730 --> 00:15:20,600 >> تو داخل کرنے کے قابل ہونے کی خوبصورتی مسلسل وقت میں اس کا مطلب یہ ہے کہ 324 00:15:20,600 --> 00:15:23,060 آپ کو شامل کرنے کے لئے ہے کہ نیا نوڈ کہاں ہے؟ 325 00:15:23,060 --> 00:15:23,690 سامنے میں. 326 00:15:23,690 --> 00:15:27,760 تو یہ، شکر ہے، ختم کم از کم کی ضرورت ہوتی ہے کے لئے استعمال کیا ہے کہ مقدمات میں سے ایک 327 00:15:27,760 --> 00:15:30,520 اس طرح کے کوڈ کا اس سے بھی زیادہ کی لائنز، کیا گزشتہ سال اور اس سے بھی کلاس میں جب ہم 328 00:15:30,520 --> 00:15:34,040 اس طرح کی بات کے ذریعے بات کی تھی انسانوں کے ساتھ اور کچھ کے ساتھ 329 00:15:34,040 --> 00:15:35,250 زبانی چھدم کوڈ. 330 00:15:35,250 --> 00:15:39,190 تو یہاں کے حل میں، کی پر چھوڑ دو کہ صرف ایک بصری پر ہے 331 00:15:39,190 --> 00:15:40,480 سکرین. 332 00:15:40,480 --> 00:15:42,230 >> ہم مندرجہ ذیل کر کر رہے ہیں. 333 00:15:42,230 --> 00:15:45,140 اور بھی دوسرے آسان بنانے نوٹس تھا یہ بات ہے یہاں تک کہ اگر 334 00:15:45,140 --> 00:15:48,280 پہلے سے موجود، تو اس کا مطلب ہے یہاں تک کہ اگر تعداد آپ کر سکتے ہیں، وہاں پہلے سے ہی ہے 335 00:15:48,280 --> 00:15:50,280 صرف آنکھ بند کر کے ایک اور داخل اس کی کاپی. 336 00:15:50,280 --> 00:15:52,560 اور یہ کہ، بھی، ایک ہونا تھا آسان بنانے، آپ کر سکتے ہیں تا کہ 337 00:15:52,560 --> 00:15:54,940 ، اس سے زیادہ کی واقعی، کچھ پر توجہ مرکوز ذہنی دلچسپ حصہ ہے اور 338 00:15:54,940 --> 00:15:58,090 جانچ پڑتال کے کچھ اضافی غلطی نہ صرف محدود وقت دیا. 339 00:15:58,090 --> 00:16:02,880 >> تو اس نمونے کے حل میں، ہم مختص بائیں ہاتھ پر ایک پوائنٹر 340 00:16:02,880 --> 00:16:04,510 ایک نوڈ کرنے کے لئے یہاں طرف. 341 00:16:04,510 --> 00:16:07,190 اب، کے طور پر، اس پوائنٹر احساس روب نے کہا، صرف 32 بٹس ہے. 342 00:16:07,190 --> 00:16:09,060 اور یہ اصل پر مشتمل نہیں ہے آپ کو جب تک ایک ایڈریس 343 00:16:09,060 --> 00:16:09,970 اس ایڈریس تفویض. 344 00:16:09,970 --> 00:16:13,220 اور ہم نے دائیں ہاتھ پر ایسا malloc کے ذریعے طرف. 345 00:16:13,220 --> 00:16:16,550 ایک اچھے شہری کی طرح، ہم نے اس کی جانچ پڑتال malloc کا نہیں ہے، اصل میں، شہوت انگیز null، تاکہ 346 00:16:16,550 --> 00:16:18,690 ہم اتفاقی طور پر پیدا نہیں کرتے یہاں segfault ایک. 347 00:16:18,690 --> 00:16:22,840 اور کسی بھی وقت آپ کی زندگی میں آپ malloc استعمال ایسا نہ ہو کہ، شہوت انگیز null کے لئے جانچ پڑتال کی جانی چاہئے 348 00:16:22,840 --> 00:16:24,090 آپ ایک ٹھیک ٹھیک بگ ہے. 349 00:16:24,090 --> 00:16:28,460 >> پھر ہم نے کی طرف سے اس شہوت انگیز null ابتدا (ن) اور پچھلے اور اگلے بتائے. 350 00:16:28,460 --> 00:16:32,450 اور یہاں اس معاملے میں، میں سے initialized اس کی وجہ یہ نئے، شہوت انگیز null گزشتہ 351 00:16:32,450 --> 00:16:34,780 نوڈ نئے جا رہا ہے میری فہرست کے آغاز. 352 00:16:34,780 --> 00:16:37,050 تو ہو جا رہا ہے اس سے پہلے کچھ بھی نہیں. 353 00:16:37,050 --> 00:16:42,010 اور میں بنیادی طور پر شامل کرنے کے لئے چاہتے ہیں، کی طرف سے نئے نوڈ کی موجودہ فہرست 354 00:16:42,010 --> 00:16:44,700 خود کی فہرست اگلا برابر مقرر. 355 00:16:44,700 --> 00:16:47,120 لیکن میں نے ابھی تک نہیں کیا کر رہا ہوں. 356 00:16:47,120 --> 00:16:51,780 فہرست خود کو پہلے سے ہی موجود ہے، اگر ایسا ہے تو اور کم از کم ایک نوڈ تھا 357 00:16:51,780 --> 00:16:57,070 پہلے ہی جگہ میں، اس فہرست میں ہے یہاں اور میں نے یہاں ایک نیا نوڈ داخل 358 00:16:57,070 --> 00:17:01,840 اس بات کو یقینی بنانے کی ضرورت ہے اپنے سابق نوڈ میرا نیا نوڈ پیچھے کی طرف اشارہ ہے، 359 00:17:01,840 --> 00:17:04,260 یہ، پھر، ہے کیونکہ دوگنا منسلک فہرست. 360 00:17:04,260 --> 00:17:05,460 >> تو ہم نے ایک وویک چیک کرتے. 361 00:17:05,460 --> 00:17:10,109 پہلے سے ہی موجود ہے تو فہرست، شہوت انگیز null نہیں ہے، تو پھر وہاں ایک یا ایک سے زیادہ نوڈس، 362 00:17:10,109 --> 00:17:12,470 تو بات کرنے کے حوالہ ہے کہ واپس شامل. 363 00:17:12,470 --> 00:17:15,420 اور پھر ہمیں ضرورت ہے بہت آخری چیز ایسا کرنے کے لئے اصل میں عالمی اپ ڈیٹ ہے 364 00:17:15,420 --> 00:17:20,329 اشارہ کرنے کے لئے متغیر فہرست خود کہ نئے نوڈ. 365 00:17:20,329 --> 00:17:21,790 جی ہاں. 366 00:17:21,790 --> 00:17:26,579 >> سامعین: پوائنٹر تیر میں [اشراوی] کرتا ہے، شہوت انگیز null برابر ہے 367 00:17:26,579 --> 00:17:30,420 فہرست کے ساتھ نمٹنے کے لئے کی وجہ سے فہرست خالی ہے؟ 368 00:17:30,420 --> 00:17:30,596 >> DAVID J. MALAN: نہیں. 369 00:17:30,596 --> 00:17:34,500 یہ مسلسل ہونے کے صرف مجھ سے ہے یہ میری ہے تو کہ میں، ہوشیار 370 00:17:34,500 --> 00:17:38,730 شاید کچھ زیادہ نوڈس کے ساتھ اصل فہرست یہاں اور میں داخل کر رہا ہوں میرے 371 00:17:38,730 --> 00:17:42,380 یہاں نئے نوڈ، وہاں جا رہا ہے یہاں پر کچھ بھی نہیں. 372 00:17:42,380 --> 00:17:44,720 اور میں خیال ہے کہ قبضہ کرنا چاہتے ہیں گزشتہ ترتیب کی طرف سے 373 00:17:44,720 --> 00:17:47,740 نیا نوڈ پر نل. 374 00:17:47,740 --> 00:17:51,410 اور شاید، میرا کوڈ صحیح ہے اور شامل کرنے کے لئے کوئی راستہ نہیں ہے 375 00:17:51,410 --> 00:17:54,970 اس تقریب سے دیگر مراکز، شاید، یہاں تک کہ اگر فہرست پہلے ہی ہے 376 00:17:54,970 --> 00:18:00,090 اس میں ایک یا ایک سے زیادہ نوڈس، شاید فہرست، پہلے نوڈ، ہوگا ایک 377 00:18:00,090 --> 00:18:02,750 شہوت انگیز null خود کے پچھلے پوائنٹر. 378 00:18:02,750 --> 00:18:03,550 >> سامعین: اور صرف ایک تخورتی. 379 00:18:03,550 --> 00:18:08,139 آپ کو اگلے برابر پوائنٹر ڈال وجہ فہرست آپ پوائنٹر کر رہے ہیں ہے 380 00:18:08,139 --> 00:18:13,579 اس کی طرف اشارہ ہے اس فہرست میں پہلے اگلے پر، مجھے لگتا ہے - 381 00:18:13,579 --> 00:18:14,980 میں مت پہنچاو - 382 00:18:14,980 --> 00:18:15,450 صرف فہرست؟ 383 00:18:15,450 --> 00:18:16,400 >> DAVID J. MALAN: بالکل. 384 00:18:16,400 --> 00:18:19,400 اور تو اصل میں دو مقدمات پر غور یہاں واقعی، اگرچہ 385 00:18:19,400 --> 00:18:22,070 ہم ان کے بارے میں غور کریں گے کے لئے نہیں ہے کوڈ کے طور پر بہت ہی. 386 00:18:22,070 --> 00:18:26,250 لیکن ایک اعلی سطح پر، تو اس کی نمائندگی کرتا ہے فہرست اور یہ ایک 32 بٹ ہے 387 00:18:26,250 --> 00:18:29,560 پوائنٹر، سادہ منظر نامے ہے اس ڈیفالٹ کی طرف سے، شہوت انگیز null ہے. 388 00:18:29,560 --> 00:18:33,010 اور میں داخل کرنا چاہتے ہیں لگتا ہے 50 نمبر سب سے پہلے نمبر تھا. 389 00:18:33,010 --> 00:18:37,640 تو میں نے آگے جانا ہے اور مختص کرنے جا رہا ہوں پر مشتمل ہے کے لئے جا رہا ہے جس میں ایک نوڈ، 390 00:18:37,640 --> 00:18:38,770 تین شعبوں - 391 00:18:38,770 --> 00:18:42,070 (ن)، گزشتہ، اور اگلے. 392 00:18:42,070 --> 00:18:44,580 >> میں 50 نمبر ڈال کرنے جا رہا ہوں یہاں، اس ن ہو جائے گا کیونکہ. 393 00:18:44,580 --> 00:18:46,130 یہ اگلے ہو جائے گا. 394 00:18:46,130 --> 00:18:48,530 اور یہ گزشتہ ہو جائے گا. 395 00:18:48,530 --> 00:18:50,910 اور اس میں اس صورت میں کیا کروں؟ 396 00:18:50,910 --> 00:18:53,900 ٹھیک ہے، میں یہاں صرف لائن 1 کیا ہے. 397 00:18:53,900 --> 00:18:55,400 اشارہ ن ن ہو جاتا ہے. 398 00:18:55,400 --> 00:18:57,740 میں تو پچھلے، کہہ رہا ہوں شہوت انگیز null ہو جانا چاہئے. 399 00:18:57,740 --> 00:18:59,470 تو اس شہوت انگیز null ہونے جا رہا ہے. 400 00:18:59,470 --> 00:19:01,365 پھر میں نے اگلے کہنے جا رہا ہوں فہرست حاصل کرنے کے لئے کی جا رہی ہے. 401 00:19:01,365 --> 00:19:05,150 >> اور یہ صرف اچھی طرح سے کام کرتا ہے. 402 00:19:05,150 --> 00:19:06,500 یہ خالی ہے. 403 00:19:06,500 --> 00:19:10,620 اور اس میں نئے نوڈ کے اگلے، کہہ رہا ہوں میدان ہے جو کچھ بھی حاصل کرنا چاہئے. 404 00:19:10,620 --> 00:19:12,570 تو ہے کہ وہاں ایک اور شہوت انگیز null رکھتا ہے. 405 00:19:12,570 --> 00:19:14,510 اور پھر آخری بات میں یہاں چیک کرنے کے لیے کیا ہے. 406 00:19:14,510 --> 00:19:17,870 فہرست یہ نل کے برابر نہیں ہے، لیکن اگر شہوت انگیز null برابر ہے، تو ہم کو چھوڑ کہ 407 00:19:17,870 --> 00:19:18,470 مکمل طور پر. 408 00:19:18,470 --> 00:19:23,520 اور اس میں سب اگلے فہرست ملتا ہے pictorially کا جس کے نتیجے میں پوائنٹر، 409 00:19:23,520 --> 00:19:25,570 اس طرح ایک تصویر. 410 00:19:25,570 --> 00:19:26,620 تو یہ ایک منظر نامے ہے. 411 00:19:26,620 --> 00:19:30,490 >> اور آپ کے بارے میں پوچھ رہے تھے کہ ایک خاص طور پر اس طرح کی صورت حال ہے، 412 00:19:30,490 --> 00:19:33,190 ہم نے پہلے ہی ایک نوڈ فہرست ہے جہاں. 413 00:19:33,190 --> 00:19:36,240 اور میں اصل میں واپس جانا تو مسئلہ بیان، ہم کریں گے اگلا 414 00:19:36,240 --> 00:19:39,320 صرف کے لئے، کا کہنا ہے کہ 34 ہے داخل بحث کی خاطر. 415 00:19:39,320 --> 00:19:46,210 تو میں صرف سہولت کے لئے جا رہا ہوں یہاں پر ہے کہ اپنی طرف متوجہ. 416 00:19:46,210 --> 00:19:47,540 میں صرف malloced ہے. 417 00:19:47,540 --> 00:19:49,310 کی میں نے، شہوت انگیز null کے لئے جانچ پڑتال کر رہا ہوں فرض ہیں. 418 00:19:49,310 --> 00:19:51,870 >> اب، میں ابتدا کرنے جا رہا ہوں (ن) 34 ہو. 419 00:19:51,870 --> 00:19:53,040 اور اس ن ہو جائے گا. 420 00:19:53,040 --> 00:19:54,670 یہ اگلے ہو جائے گا. 421 00:19:54,670 --> 00:19:57,100 اور یہ گزشتہ ہو جائے گا. 422 00:19:57,100 --> 00:19:59,370 اس بات کا یقین میں نے نہیں کیا بنا دو پیچھے کی طرف اس کے حاصل. 423 00:19:59,370 --> 00:20:01,110 پہلا آتا ہے تعریف میں. 424 00:20:01,110 --> 00:20:03,070 مجھے اس کو ٹھیک کرتے ہیں. 425 00:20:03,070 --> 00:20:04,410 یہ پچھلے ہے. 426 00:20:04,410 --> 00:20:05,780 یہ اگلے ہے. 427 00:20:05,780 --> 00:20:08,620 ان جیسی ہیں، اگرچہ کی مسلسل رکھنے ہیں. 428 00:20:08,620 --> 00:20:09,450 >> پچھلا. 429 00:20:09,450 --> 00:20:11,030 یہ اگلے ہے. 430 00:20:11,030 --> 00:20:16,310 تو میں صرف کی جانچ پڑتال کی، میری نوٹ malloced ہے شہوت انگیز null لئے، نوڈ میں 34 تفویض. 431 00:20:16,310 --> 00:20:17,570 پچھلا شہوت انگیز null ہو جاتا ہے. 432 00:20:17,570 --> 00:20:19,480 تو یہ مجھے دیتا ہے. 433 00:20:19,480 --> 00:20:21,010 اگلا فہرست ہو جاتا ہے. 434 00:20:21,010 --> 00:20:22,370 تو فہرست یہ ہے. 435 00:20:22,370 --> 00:20:26,520 تو یہ اب ایک ہی ہے اس ڈرائنگ کے طور پر وہ ایک کی طرف اشارہ ہے، تا کہ، تیر 436 00:20:26,520 --> 00:20:27,940 اسی میں. 437 00:20:27,940 --> 00:20:30,400 اور پھر میں نے کی جانچ پڑتال کر رہا ہوں اگر فہرست شہوت انگیز null برابر نہیں ہے. 438 00:20:30,400 --> 00:20:31,740 اور یہ اس وقت نہیں ہے. 439 00:20:31,740 --> 00:20:35,580 پھر میں نے فہرست میں کرنے جا رہا ہوں گزشتہ پوائنٹر ہو جاتا ہے. 440 00:20:35,580 --> 00:20:39,700 >> تو پچھلے کی فہرست PTR ہو جاتا ہے. 441 00:20:39,700 --> 00:20:44,300 تو اس لگانے کا اثر ہے یہاں ایک گرافیکل تیر. 442 00:20:44,300 --> 00:20:46,930 اور یہ کہ ایک بہت کم ہو رہا ہے لہراتی، لائنوں. 443 00:20:46,930 --> 00:20:50,780 اور پھر، آخر میں، میں نے اپ ڈیٹ پوائنٹر کی طرف اشارہ کرنے کی فہرست. 444 00:20:50,780 --> 00:20:55,560 تو اب اس نے اس آدمی کی طرف اشارہ. 445 00:20:55,560 --> 00:20:57,170 اور اب، ایک فوری کرتے ہیں وویک چیک. 446 00:20:57,170 --> 00:20:59,470 >> یہاں فہرست ہے جس میں، ہے عالمی متغیر. 447 00:20:59,470 --> 00:21:02,850 پہلے نوڈ،، بے شک، 34 ہے، کیونکہ میں نے اس کے تیر پیروی کر رہا ہوں. 448 00:21:02,850 --> 00:21:05,210 میں کرنا چاہتے ہیں اور اس وجہ سے ہے کہ صحیح ہے فہرست کے آغاز میں داخل 449 00:21:05,210 --> 00:21:06,070 تمام نئے مراکز. 450 00:21:06,070 --> 00:21:08,860 ان کی اگلی میدان اس آدمی کی طرف جاتا ہے. 451 00:21:08,860 --> 00:21:10,710 میں جا رہیں گے تو، میں اگلے شہوت انگیز null ہے مارا. 452 00:21:10,710 --> 00:21:11,760 تو نہیں فہرست ہے. 453 00:21:11,760 --> 00:21:14,460 میں نے پچھلے مارا، میں حاصل مجھے توقع جہاں کی حمایت. 454 00:21:14,460 --> 00:21:16,435 >> تو چند اشارہ موجود ہیں، ظاہر ہے، جوڑتوڑ. 455 00:21:16,435 --> 00:21:19,870 لیکن اگر آپ ایسا کرنے کے لئے کہا گیا تھا حقیقت یہ ہے کہ یہ مسلسل وقت میں آپ صرف کا مطلب 456 00:21:19,870 --> 00:21:22,910 چیزوں کی ایک محدود تعداد ہے آپ کو ایسا کرنے کی اجازت دی کر رہے ہیں. 457 00:21:22,910 --> 00:21:24,290 اور یہ تعداد کیا ہے؟ 458 00:21:24,290 --> 00:21:25,185 یہ ایک قدم ہو سکتا ہے. 459 00:21:25,185 --> 00:21:25,700 یہ دو ہو سکتا ہے. 460 00:21:25,700 --> 00:21:26,820 یہ 1،000 اقدامات ہو سکتا ہے. 461 00:21:26,820 --> 00:21:30,500 لیکن یہ آپ کو نہیں کر سکتے ہیں جس کا مطلب ہے، محدود ہے looping کی کسی بھی قسم کی پر جا رہا ہے 462 00:21:30,500 --> 00:21:32,010 یہاں، کوئی تکرار، کوئی loops کے. 463 00:21:32,010 --> 00:21:37,390 یہ صرف مشکل کوڈت لائنوں ہوگا ہم اس نمونے میں ہے کے کوڈ کے طور پر. 464 00:21:37,390 --> 00:21:42,330 >> تو اگلے مسئلہ 12 ہم سے پوچھا ہٹانے کے عمل کو مکمل 465 00:21:42,330 --> 00:21:46,740 اس کو ہٹا دیتا ہے اس طرح ہے کہ میں ذیل میں N لکیری وقت میں فہرست میں سے. 466 00:21:46,740 --> 00:21:48,740 تو آپ ایک چھوٹا سا زیادہ ہے wiggle کمرے کی اب. 467 00:21:48,740 --> 00:21:52,380 تم، کہ ن فرض کر سکتے ہیں تو موجودہ فہرست میں، موجود رہیں گے 468 00:21:52,380 --> 00:21:53,340 کوئی ایک سے زیادہ بار. 469 00:21:53,340 --> 00:21:56,770 اور وہ بھی ایک کوئز کی بنیاد پر ہونا مراد ہے آسان مفروضہ، تو 470 00:21:56,770 --> 00:21:59,780 کہ آپ کو 50 نمبر کہیں تو فہرست میں، آپ بھی نہیں کرتے 471 00:21:59,780 --> 00:22:02,890 کرنے کے لئے جاری رکھنے کے بارے میں فکر کرنے کی ہے ہر ممکن کے لئے تلاش، iterate کے 472 00:22:02,890 --> 00:22:06,990 صرف منتقل کرے گا جس میں 50 کی نقل، محدود وقت میں کچھ minutia میں. 473 00:22:06,990 --> 00:22:10,460 >> تو ہٹانے کے ساتھ، یہ ایک یقینی طور پر تھا زیادہ مشکل اور زیادہ 474 00:22:10,460 --> 00:22:11,640 لکھنے کے لئے کوڈ. 475 00:22:11,640 --> 00:22:14,990 لیکن پہلی نظر میں، واضح طور سے، ہو سکتا ہے غالب اور طرح کچھ نظر 476 00:22:14,990 --> 00:22:17,060 آپ کر سکتے ہیں کوئی راستہ نہیں ہے ایک گئے تمام سوالات پر کے ساتھ آئے. 477 00:22:17,060 --> 00:22:22,450 لیکن ہم انفرادی اقدامات پر توجہ مرکوز ہے، امید ہے کہ، یہ اچانک ہو جائے گا 478 00:22:22,450 --> 00:22:26,060 آپ کو ہڑتال کہ یہ فرد کی ہر اقدامات واضح سمجھ میں آتا ہے 479 00:22:26,060 --> 00:22:27,080 ماضی میں. 480 00:22:27,080 --> 00:22:28,200 تو ایک نظر ڈالیں. 481 00:22:28,200 --> 00:22:32,570 >> تو سب سے پہلے، ہم پوائنٹر ابتدا ہو خود کی فہرست. 482 00:22:32,570 --> 00:22:36,040 میں لکیری وقت چاہتے ہیں، اس کا مطلب میں نے کچھ لوپ کے لئے جا رہا ہوں. 483 00:22:36,040 --> 00:22:39,730 اور ایک عام طریقہ پر iterate ایک فہرست کی ساخت یا کسی بھی قسم میں نوڈس 484 00:22:39,730 --> 00:22:43,860 ساخت کے iteratively لینے کے لئے ہے کے اعداد و شمار کے سامنے ایک پوائنٹر 485 00:22:43,860 --> 00:22:46,990 ساخت اور پھر صرف اپ ڈیٹ کرنے شروع یہ اور آپ کے راستے پر چلنا 486 00:22:46,990 --> 00:22:48,650 آنکڑا ڈھانچہ کے ذریعے. 487 00:22:48,650 --> 00:22:50,040 تو میں بالکل ایسا کرنے جا رہا ہوں. 488 00:22:50,040 --> 00:22:54,260 >> پوائنٹر جبکہ، میرا عارضی متغیر، چلو، شہوت انگیز null برابر نہیں ہے 489 00:22:54,260 --> 00:22:55,660 آگے بڑھو اور چیک. 490 00:22:55,660 --> 00:22:56,910 میں خوش قسمت حاصل کیا؟ 491 00:22:56,910 --> 00:23:01,740 میں فی الحال ہوں نوڈ میں (ن) کے میدان میں ہے برابر میں تلاش 492 00:23:01,740 --> 00:23:03,380 تعداد میں دیکھ رہا ہوں؟ 493 00:23:03,380 --> 00:23:05,410 اور اگر ایسا ہے تو، کچھ کرتے ہیں. 494 00:23:05,410 --> 00:23:10,020 اب، یہ محسوس کریں تو حالت پورے چاروں طرف 495 00:23:10,020 --> 00:23:11,520 کوڈ کے مندرجہ ذیل لائنوں. 496 00:23:11,520 --> 00:23:14,610 یہ میں نے پرواہ صرف ایک ہی چیز ہے - سوال میں ایک بڑی تعداد کو تلاش کرنے کی. 497 00:23:14,610 --> 00:23:18,010 تو کوئی اور، آسان، جس میں ہے تصوراتی چیزوں کو تھوڑا سا. 498 00:23:18,010 --> 00:23:22,040 >> لیکن اب، میں نے محسوس کیا، اور آپ کو ہو سکتا ہے صرف سوچنے کے بعد اس کا احساس ہوا 499 00:23:22,040 --> 00:23:24,720 یہ تھوڑا سا کے ذریعے، وہاں ہے اصل میں دو مقدمات یہاں. 500 00:23:24,720 --> 00:23:28,060 نوڈ میں ہے جہاں ایک ہے ایک ہے جو فہرست کے آغاز 501 00:23:28,060 --> 00:23:31,040 کہ ہے کیونکہ، تھوڑا پریشان کن ایک خصوصی کیس، آپ کو نمٹنے کے لئے ہے، کیونکہ 502 00:23:31,040 --> 00:23:33,340 اس بات کے ساتھ، جس میں صرف اسنگتی ہے. 503 00:23:33,340 --> 00:23:35,720 ہر جگہ اور فہرست میں، ایک ہی بات ہے. 504 00:23:35,720 --> 00:23:38,050 گزشتہ نوڈ اور اگلے ہے نوڈ، گزشتہ نوڈ، اگلے نوڈ. 505 00:23:38,050 --> 00:23:40,940 لیکن اس آدمی کو ایک چھوٹی سی خاص ہے انہوں نے شروع میں ہے. 506 00:23:40,940 --> 00:23:48,710 >> تو پوائنٹر فہرست برابر ہے خود کو، تو میں کے شروع میں ہوں تو 507 00:23:48,710 --> 00:23:53,960 کی فہرست اور میں (ن) کو مل گیا ہے، مجھے اس کی ضرورت چیزوں کی ایک جوڑے کو ایسا کرنے کی. 508 00:23:53,960 --> 00:23:59,230 ایک، میں فہرست میں تبدیل کرنے کی ضرورت ہے اگلے میدان، 50 کی طرف اشارہ. 509 00:23:59,230 --> 00:24:01,270 تو میں کوشش کر رہا ہوں لگتا ہے کہ 34 دور کرنے کے لئے. 510 00:24:01,270 --> 00:24:03,560 تو اس آدمی کو جانا ہے دور صرف ایک لمحے میں. 511 00:24:03,560 --> 00:24:07,210 >> تو میں کہنے جا رہا ہوں، فہرست اگلا اشارہ ہو جاتا ہے. 512 00:24:07,210 --> 00:24:08,570 ٹھیک ہے، یہ پوائنٹر ہے. 513 00:24:08,570 --> 00:24:10,360 اگلا یہاں اشارہ کر رہا ہے. 514 00:24:10,360 --> 00:24:17,470 تو اس یہ تیر حق تبدیل کر رہا ہے اب یہاں اس آدمی کی طرف اشارہ. 515 00:24:17,470 --> 00:24:19,580 اب، ہمارے پاس ہے، یاد ایک عارضی متغیر. 516 00:24:19,580 --> 00:24:23,520 تو ہم کسی بھی نوڈس یتیم نہیں ہے، میں نے بھی میں اس آدمی کو ہے کیونکہ میری 517 00:24:23,520 --> 00:24:25,010 ہٹانے کے عمل. 518 00:24:25,010 --> 00:24:29,600 تو اب، اگر فہرست خود، شہوت انگیز null نہیں ہے میں نے کچھ ٹھیک کرنے کے لئے کی ضرورت ہے. 519 00:24:29,600 --> 00:24:32,690 >> اب مجھے یقین ہے کہ یہ تیر بنانے کی ضرورت ہے، پہلے کی طرف اشارہ ہے جس میں 520 00:24:32,690 --> 00:24:36,830 34 سے 50 سے، اس، دور جانا ہے کیونکہ میں سے چھٹکارا حاصل کرنے کی کوشش کر رہا ہوں 521 00:24:36,830 --> 00:24:41,910 34، 50 بہتر کوئی بھی برقرار رکھنے کے نہیں تھا کے طور پر اس قسم کے واپس حوالہ 522 00:24:41,910 --> 00:24:42,820 تیر کی تجویز پیش کی. 523 00:24:42,820 --> 00:24:44,820 تو میں صرف اس لائن کیا. 524 00:24:44,820 --> 00:24:46,520 تو پھر میں کیا کر رہا ہوں. 525 00:24:46,520 --> 00:24:48,040 اس صورت واقعی بہت آسان ہے. 526 00:24:48,040 --> 00:24:51,010 فہرست کے سر کاٹ نسبتا براہ راست ہے. 527 00:24:51,010 --> 00:24:52,980 >> بدقسمتی سے، یہ ہے اور پریشان کن بلاک. 528 00:24:52,980 --> 00:24:56,170 تو اب، میں کیس پر غور کرنے کے لئے ہے درمیان میں کچھ ہے جہاں. 529 00:24:56,170 --> 00:24:59,880 لیکن اس کے علاوہ، بہت خوفناک نہیں ہے اس طرح نحو کے لئے. 530 00:24:59,880 --> 00:25:03,080 تو میں کے آغاز میں نہ ہوں تو فہرست، میں کہیں مشرق میں ہوں. 531 00:25:03,080 --> 00:25:08,160 اور یہاں یہ لائن، کہہ رہا ہے شروع آپ میں ہیں جو بھی نوڈ میں. 532 00:25:08,160 --> 00:25:11,210 533 00:25:11,210 --> 00:25:18,550 گزشتہ نوڈ کے اگلے میدان کو دیکھیے اور پوئینٹر میں اس نقطہ. 534 00:25:18,550 --> 00:25:20,390 >> کی pictorially کا یہ کرتے ہیں. 535 00:25:20,390 --> 00:25:21,640 کہ پیچیدہ ہو رہی تھی. 536 00:25:21,640 --> 00:25:30,480 537 00:25:30,480 --> 00:25:37,990 تو میں یہاں پچھلے شعبوں پڑے - ایسا کرنے دو - یہاں اگلا شعبوں. 538 00:25:37,990 --> 00:25:41,200 میں بلکہ میرا اشارہ آسان کرنے کے لئے جا رہا ہوں ایک پوری چڑھانے کی اپنی طرف متوجہ سے 539 00:25:41,200 --> 00:25:45,710 آگے اور پیچھے چیزوں crisscrossing ایک دوسرے کے. 540 00:25:45,710 --> 00:25:50,870 اور اب،، صرف یہ 1، 2 کا کہنا ہے کہ دو بحث کی خاطر کے لئے 3، یہاں تک کہ 541 00:25:50,870 --> 00:25:53,410 اس کے ساتھ قطار نہیں کرتا سوال میں مسئلہ. 542 00:25:53,410 --> 00:25:55,900 >> تو یہاں میری منسلک فہرست ہے. 543 00:25:55,900 --> 00:25:59,300 میں نے اس میں دو دور کرنے کے لئے کوشش کر رہا ہوں کہانی کے مخصوص ورژن. 544 00:25:59,300 --> 00:26:01,960 تو میں نے پوائنٹر اپ ڈیٹ کیا ہے اس لڑکے کی طرف اشارہ کیا جائے. 545 00:26:01,960 --> 00:26:03,315 تو اس PTR ہے. 546 00:26:03,315 --> 00:26:04,530 انہوں نے کہا کہ یہاں کی طرف اشارہ ہے. 547 00:26:04,530 --> 00:26:07,170 یہ موجود ہے، فہرست ہے عالمی سطح پر پہلے. 548 00:26:07,170 --> 00:26:09,200 اور وہ کوئی بات نہیں جو یہاں کی طرف اشارہ ہے. 549 00:26:09,200 --> 00:26:10,800 اور اب، میں نے دو دور کرنے کے لئے کوشش کر رہا ہوں. 550 00:26:10,800 --> 00:26:13,850 >> پوائنٹر اشارہ کر رہا ہے اگر ایسا ہے تو، میں ہوں ، بظاہر، کی پیروی کرنے کے لئے جا 551 00:26:13,850 --> 00:26:17,110 1 میں میرے رکھتا ہے جس میں گزشتہ پوائنٹر،. 552 00:26:17,110 --> 00:26:22,290 پھر میں کہنے جا رہا ہوں کہ اگلے اس سے مجھ پر لاتا ہے جس کے میدان، 553 00:26:22,290 --> 00:26:25,410 یہاں باکس، جا رہا ہے برابر پوائنٹر اگلا. 554 00:26:25,410 --> 00:26:28,400 تو اس پوائنٹر تو اس اگلے ہے. 555 00:26:28,400 --> 00:26:31,840 اسکا مطلب ہے کہ یہ تیر کی ضروریات اس آدمی کی طرف اشارہ. 556 00:26:31,840 --> 00:26:35,140 >> تو کوڈ کے اس لائن صرف کیا ہے اس کا ایک تھوڑا سا ہے کیا. 557 00:26:35,140 --> 00:26:37,500 اور اب، یہ ایک طرح لگ رہا ہے صحیح سمت میں قدم. 558 00:26:37,500 --> 00:26:41,390 ہم بنیادی طور پر 2 سے کترن کرنا چاہتے ہیں 1 اور 3 کے وسط کی. 559 00:26:41,390 --> 00:26:44,400 تو یہ ہے کہ ہم چاہتے ہیں کہ سمجھ میں آتا ہے اس کے ارد گرد کے راستے اس پوائنٹر. 560 00:26:44,400 --> 00:26:50,400 تو یہ اگلی لائن کی جانچ پڑتال کی ہے تو پوائنٹر اگلا، شہوت انگیز null نہیں ہے، وہاں ہے 561 00:26:50,400 --> 00:26:54,200 2 کے حق میں یقینا کسی، کہ ہم بھی ایسا کرنے کا مطلب ہے کہ 562 00:26:54,200 --> 00:26:55,850 ایک چھوٹا سا یہاں کترن. 563 00:26:55,850 --> 00:27:00,590 >> تو اب میں اس پوائنٹر عمل کرنے کی ضرورت اور گزشتہ پوائنٹر پر اپ ڈیٹ 564 00:27:00,590 --> 00:27:05,410 ایک کا ایک تھوڑا سا کرنے کے لئے اس آدمی یہاں نقطہ workaround ہے. 565 00:27:05,410 --> 00:27:07,100 اور اب، ضعف یہ اچھا ہے. 566 00:27:07,100 --> 00:27:11,930 ہے کہ میں یہ ایک تھوڑا گندا ہے اب 2 کی طرف اشارہ کوئی ایک. 567 00:27:11,930 --> 00:27:13,600 2 بائیں طرف اشارہ کر رہا ہے. 568 00:27:13,600 --> 00:27:14,980 اور 2 صحیح اشارہ کر رہا ہے. 569 00:27:14,980 --> 00:27:17,480 لیکن وہ، وہ جو چاہے کر سکتے ہیں کیونکہ وہ آزاد کرنے کے لئے کے بارے میں ہے. 570 00:27:17,480 --> 00:27:19,480 اور یہ کوئی فرق نہیں کیا ان اقدار اب ہیں. 571 00:27:19,480 --> 00:27:23,040 >> کیا ضروری ہے باقی ہے لوگ اوپر روٹنگ ہیں 572 00:27:23,040 --> 00:27:24,280 اور اب اس کے ذیل میں. 573 00:27:24,280 --> 00:27:25,810 اور یقینا، یہ ہے کہ ہم اگلے کیا ہے. 574 00:27:25,810 --> 00:27:29,360 ہم بتا جس کا مطلب ہے ہم مفت پوائنٹر، آپریٹنگ سسٹم، آپ کا استقبال ہے 575 00:27:29,360 --> 00:27:30,906 اس کو دوبارہ حاصل کرنے کے لئے. 576 00:27:30,906 --> 00:27:34,900 اور پھر آخر میں، ہم واپسی. 577 00:27:34,900 --> 00:27:37,220 ورنہ لپیٹ، تو ہم ابھی تک واپس نہیں کیا ہے، 578 00:27:37,220 --> 00:27:38,290 ہم تلاش کر رکھنے کے لئے ہے. 579 00:27:38,290 --> 00:27:41,485 تو پوائنٹر صرف اگلے پوائنٹر برابر اس آدمی کو یہاں منتقل کا مطلب ہے. 580 00:27:41,485 --> 00:27:42,600 یہاں اس آدمی کو منتقل. 581 00:27:42,600 --> 00:27:45,400 یہاں اس آدمی کو منتقل، حقیقت میں، ہم نمبر نہیں مل سکا 582 00:27:45,400 --> 00:27:46,960 ہم نے ابھی تک تلاش کر رہے ہیں. 583 00:27:46,960 --> 00:27:49,630 >> تو واضح طور سے، یہ مکمل طور پر لگتا ہے زبردست، میں نے سب سے پہلے میں، لگتا ہے کہ 584 00:27:49,630 --> 00:27:52,180 نظر، خاص طور پر آپ کی جدوجہد میں مصروف ہے تو اس کے ساتھ گئے تمام سوالات کے دوران اس وقت کے دیکھ 585 00:27:52,180 --> 00:27:52,850 کچھ اس طرح. 586 00:27:52,850 --> 00:27:55,050 اور آپ کی پیٹھ پر اپنے آپ کو عوامی تحریک. 587 00:27:55,050 --> 00:27:57,080 ٹھیک ہے، میں کر سکتے ہیں کوئی راستہ نہیں ہے کوئز پر اس کے ساتھ آئے. 588 00:27:57,080 --> 00:28:00,470 لیکن میں آپ کر سکتے ہیں، بحث کریں گے آپ کو توڑ تو ان انفرادی میں نیچے 589 00:28:00,470 --> 00:28:04,400 صرف مقدمات اور اس کے ذریعے چل احتیاط سے، اقرار، کے تحت ہی سہی 590 00:28:04,400 --> 00:28:06,300 دباؤ حالات. 591 00:28:06,300 --> 00:28:09,470 >> شکر ہے، تصویر بنا خوش سب کچھ. 592 00:28:09,470 --> 00:28:11,050 تم میں اس کی اپنی طرف متوجہ کر سکتے ہیں طریقوں میں سے کسی بھی تعداد. 593 00:28:11,050 --> 00:28:12,760 آپ crisscrossing ایسا کرنے کی ضرورت نہیں ہے یہاں بات. 594 00:28:12,760 --> 00:28:14,520 آپ کو براہ راست کے ساتھ کیا کر سکتے ہیں اس طرح لائنوں. 595 00:28:14,520 --> 00:28:18,790 لیکن میں اس مسئلہ کا خلاصہ، جنرل، احساس تھا کہ 596 00:28:18,790 --> 00:28:22,060 آخر میں تصویر ایک چھوٹی سی نظر آنا چاہئے کچھ اس طرح، کیونکہ 597 00:28:22,060 --> 00:28:25,030 مسلسل وقت ہے کہ آپ رکھنے تقاضا جام اور جام اور جام 598 00:28:25,030 --> 00:28:29,900 شروع میں نئے مراکز فہرست کے. 599 00:28:29,900 --> 00:28:31,960 کوئی سوال؟ 600 00:28:31,960 --> 00:28:34,565 شاید سب سے مشکل مرحلہ یقینی طور پر کوڈنگ سوالات. 601 00:28:34,565 --> 00:28:37,690 >> سامعین: تو اسی طرح کی فہرست ہے گزشتہ مثالوں میں سر. 602 00:28:37,690 --> 00:28:39,640 >> DAVID J. MALAN: بالکل، بالکل. 603 00:28:39,640 --> 00:28:43,130 کے لئے صرف ایک مختلف نام ایک عالمی متغیر. 604 00:28:43,130 --> 00:28:44,380 ورلڈ وائڈ کیا ہے؟ 605 00:28:44,380 --> 00:28:48,880 606 00:28:48,880 --> 00:28:49,730 >> روب Bowden: ٹھیک ہے. 607 00:28:49,730 --> 00:28:52,020 تو یہ آپ کہاں سے ایک ہے پیراگراف لکھنا تھا. 608 00:28:52,020 --> 00:28:56,060 کچھ لوگوں مضامین لکھا اس سوال کے لئے. 609 00:28:56,060 --> 00:29:00,230 لیکن آپ کو صرف ان چھ شرائط استعمال کرنے کی ضرورت کیا ہوتا ہے جب کی وضاحت کرنے 610 00:29:00,230 --> 00:29:02,440 آپ facebook.com رابطہ کرنے کی کوشش. 611 00:29:02,440 --> 00:29:07,930 تو میں صرف عمل کے ذریعے بات کریں گے ان تمام شرائط کا استعمال کرتے ہوئے. 612 00:29:07,930 --> 00:29:11,290 تو ہمارے براؤزر میں، ہم facebook.com ٹائپ اور درج کریں مارا. 613 00:29:11,290 --> 00:29:17,280 تو ہمارے براؤزر ایک تعمیر کرنے کے لئے جا رہا ہے HTTP کے بھیجنے کے لئے جا رہا ہے کہ درخواست 614 00:29:17,280 --> 00:29:22,220 کے لئے فیس بک کرنے کے لئے کچھ کے عمل کے ذریعے فیس بک کے ساتھ ہم پر جواب دینے کے لئے 615 00:29:22,220 --> 00:29:24,450 اس صفحے کے HTML. 616 00:29:24,450 --> 00:29:28,800 >> تو عمل کی طرف سے کیا ہے جس HTTP درخواست 617 00:29:28,800 --> 00:29:30,730 اصل میں فیس بک کے لئے ہو جاتا ہے؟ 618 00:29:30,730 --> 00:29:32,790 تو سب سے پہلے، ہم نے ترجمہ کرنے کی ضرورت Facebook.com. 619 00:29:32,790 --> 00:29:38,780 تو، نام Facebook.com دیا اصل میں HTTP درخواست کرتا ہے جہاں 620 00:29:38,780 --> 00:29:39,940 جانے کے لئے کی ضرورت ہے؟ 621 00:29:39,940 --> 00:29:44,120 تو ہم Facebook.com ترجمہ کرنے کی ضرورت ایک IP ایڈریس پر، جس میں منفرد 622 00:29:44,120 --> 00:29:47,620 کیا مشین ہم اصل شناخت کرنے کے لئے اس کی درخواست کے لئے چاہتے ہیں. 623 00:29:47,620 --> 00:29:49,310 آپ اپنے لیپ ٹاپ ایک آئی پی ایڈریس ہے. 624 00:29:49,310 --> 00:29:52,240 انٹرنیٹ سے منسلک کچھ ایک آئی پی ایڈریس ہے. 625 00:29:52,240 --> 00:29:59,030 >> تو DNS، ڈومین نام کا نظام، یہ ہے کہ کیا ترجمہ ہینڈل کرنے جا رہا ہے 626 00:29:59,030 --> 00:30:03,750 facebook.com سے ایک آئی پی ایڈریس ہے کہ آپ اصل میں رابطہ کرنا چاہتے ہیں. 627 00:30:03,750 --> 00:30:08,075 تو ہم DNS سرورز سے رابطہ کریں اور کا کہنا ہے کہ، facebook.com کیا ہے؟ 628 00:30:08,075 --> 00:30:16,560 یہ اوہ، یہ IP ایڈریس 190،212 ہے، کا کہنا ہے کہ کچھ، کچھ، کچھ. 629 00:30:16,560 --> 00:30:16,900 ٹھیک ہے. 630 00:30:16,900 --> 00:30:18,850 اب، میں جانتا ہوں کہ کیا مشین مجھے سے رابطہ کرنا چاہتے ہیں. 631 00:30:18,850 --> 00:30:22,360 >> تو پھر آپ کو آپ HTTP درخواست بھیجیں اس مشین پر. 632 00:30:22,360 --> 00:30:24,140 تو یہ کس طرح ہے کہ مشین پر حاصل کرتا ہے؟ 633 00:30:24,140 --> 00:30:27,200 ٹھیک ہے، کی درخواست سے چلا جاتا ہے روٹر ؤرجاوان روٹر. 634 00:30:27,200 --> 00:30:32,630 کلاس میں مثال کے طور پر یاد رکھیں، جہاں ہم اصل راستہ دیکھا ہے 635 00:30:32,630 --> 00:30:35,340 ہم نے کوشش کی ہے جب پیکٹ لیا بات چیت کے لئے. 636 00:30:35,340 --> 00:30:38,460 ہم اس بحر اوقیانوس پر سے کود دیکھا ایک نقطہ یا جو کچھ بھی میں اوقیانوس. 637 00:30:38,460 --> 00:30:42,820 >> تو آخری مدت پورٹ. 638 00:30:42,820 --> 00:30:46,520 تو یہ آپ کے کمپیوٹر پر ہے. 639 00:30:46,520 --> 00:30:49,970 آپ فی الحال ایک سے زیادہ چیزیں کر سکتے ہیں انٹرنیٹ کے ساتھ بات چیت. 640 00:30:49,970 --> 00:30:53,730 تو میں کہتا ہوں،، اسکائپ چل رہا کیا جا سکتا ہے. 641 00:30:53,730 --> 00:30:55,670 میں کھلی ایک ویب براؤزر کو ہو سکتا ہے. 642 00:30:55,670 --> 00:30:59,010 میں کچھ ہو سکتا ہے کہ فائلوں torrenting. 643 00:30:59,010 --> 00:31:00,880 لہذا ان تمام چیزوں کے ہیں کے ساتھ بات چیت 644 00:31:00,880 --> 00:31:02,600 کسی طرح میں انٹرنیٹ. 645 00:31:02,600 --> 00:31:08,070 >> تو آپ کے کمپیوٹر سے کچھ ڈیٹا موصول جب انٹرنیٹ سے، کس طرح یہ کرتا ہے 646 00:31:08,070 --> 00:31:10,130 جانتے درخواست اصل میں ڈیٹا چاہتا ہے؟ 647 00:31:10,130 --> 00:31:12,610 یہ خاص طور پر ہے کہ آیا یہ کس طرح معلوم ہوتا ہے اعداد و شمار کے لئے کیا مراد ہے 648 00:31:12,610 --> 00:31:16,070 مخالفت کے طور پر درخواست torrenting ویب براؤزر کے لئے ہے؟ 649 00:31:16,070 --> 00:31:20,980 تو یہ ہے کہ میں بندرگاہوں کا مقصد ہے ان درخواستوں میں سے سب 650 00:31:20,980 --> 00:31:22,720 آپ کے کمپیوٹر پر ایک بندرگاہ کا دعوی کیا ہے. 651 00:31:22,720 --> 00:31:27,580 تو آپ کے ویب براؤزر، ہے، کا کہنا ہے کہ میں پورٹ 1000 پر سن رہا ہوں. 652 00:31:27,580 --> 00:31:32,240 اور آپ torrenting پروگرام کہہ رہا ہے، میں پورٹ 3000 پر سن رہا ہوں. 653 00:31:32,240 --> 00:31:34,770 اور اسکائپ میں پورٹ 4000 استعمال کر رہا ہوں، کا کہنا ہے کہ. 654 00:31:34,770 --> 00:31:41,950 >> آپ کو کچھ معلومات حاصل تو تعلق رکھتا ہے ان ایپلی کیشنز میں سے ایک ہے، کے اعداد و شمار 655 00:31:41,950 --> 00:31:45,510 جس میں بندرگاہ کے ساتھ نشان لگا دیا گیا ہے یہ اصل میں کے ساتھ بھیجا جانا چاہیے. 656 00:31:45,510 --> 00:31:47,950 تو اس اوہ، میں سے تعلق رکھتے ہیں، کا کہنا ہے کہ پورٹ 1000. 657 00:31:47,950 --> 00:31:50,950 تو میں اس کو آگے بڑھانے کی ضرورت ہے اپنے ویب براؤزر کے ساتھ. 658 00:31:50,950 --> 00:31:56,440 تو وجہ یہ ہے کہ یہاں متعلقہ ہے ویب سرورز کے لئے کرتے ہیں یہ ہے کہ 659 00:31:56,440 --> 00:31:58,240 پورٹ 80 پر سننے. 660 00:31:58,240 --> 00:32:02,420 میں Facebook.com سے رابطہ کریں تو، میں ہوں کچھ مشین کے ساتھ بات چیت. 661 00:32:02,420 --> 00:32:06,390 لیکن میں نے اس میں سے جو بندرگاہ کہنے کی ضرورت میں کے ساتھ بات چیت کرنا چاہتے ہیں مشین. 662 00:32:06,390 --> 00:32:09,160 اور ویب سرورز ہوتے ہیں پورٹ 80 پر سننے. 663 00:32:09,160 --> 00:32:14,010 >> وہ چاہتے تھے تو وہ اس قائم کر سکتے ہیں اپ تو یہ پورٹ 7000 پر کے طور پر فہرست. 664 00:32:14,010 --> 00:32:19,090 اور پھر ایک ویب براؤزر میں، میں کر سکتا ہوں پر 7000: دستی طور پر Facebook.com ٹائپ 665 00:32:19,090 --> 00:32:24,600 بندرگاہ کی 7000 کی درخواست ارسال کریں فیس بک کی ویب سرور کی. 666 00:32:24,600 --> 00:32:26,820 >> DAVID J. MALAN: اور اس معاملے میں، یہاں تک کہ ہم نے کی ضرورت نہیں تھی، اگرچہ کہ لوگوں کو 667 00:32:26,820 --> 00:32:30,000 اس کا ذکر، اس معاملے میں، کیا پورٹ پروپوزل کی گذارش اصل میں جائیں گے؟ 668 00:32:30,000 --> 00:32:36,630 669 00:32:36,630 --> 00:32:37,880 دوبارہ کوشش کریں. 670 00:32:37,880 --> 00:32:42,810 671 00:32:42,810 --> 00:32:44,300 بالکل ٹھیک. 672 00:32:44,300 --> 00:32:47,960 ایک سوکشمتا کہ کے لئے تلاش، لیکن نہیں کہ وہاں کوئی آخری ہے. 673 00:32:47,960 --> 00:32:51,770 >> روب Bowden: تو HTTPS، یہ ہے کے بعد سے کے لئے خاص طور سن 674 00:32:51,770 --> 00:32:55,180 مرموز، یہ پورٹ 4430 پر ہے. 675 00:32:55,180 --> 00:32:57,680 >> سامعین: اور ای میلز کے 25 ہیں، ٹھیک ہے؟ 676 00:32:57,680 --> 00:33:00,670 >> DAVID J. MALAN: آؤٹ باؤنڈ ای میلز، 25، جی ہاں. 677 00:33:00,670 --> 00:33:03,760 >> روب Bowden: میں بھی اکثر نہیں جانتے - کم لوگوں کے تمام ہوتے ہیں 678 00:33:03,760 --> 00:33:06,310 چیزوں کے لئے محفوظ. 679 00:33:06,310 --> 00:33:09,260 میں نے سب کچھ کے تحت لگتا ہے 1024 محفوظ ہے. 680 00:33:09,260 --> 00:33:13,450 >> شائقین کو کیوں کہا تھا 3 غلط نمبر تھا؟ 681 00:33:13,450 --> 00:33:18,820 >> روب Bowden: کی وجہ سے ایک آئی پی ایڈریس میں، ہندسے کے چار گروہوں ہے. 682 00:33:18,820 --> 00:33:21,090 اور وہ 0 سے 255 کرنے کے لئے کر رہے ہیں. 683 00:33:21,090 --> 00:33:28,060 تو 192.168.2.1 ایک عام سی بات ہے مقامی نیٹ ورک IP ایڈریس. 684 00:33:28,060 --> 00:33:30,840 ان میں سے سب 255 سے بھی کم ہیں نوٹس. 685 00:33:30,840 --> 00:33:33,570 تو میں نے 300 کے ساتھ شروع کرتے ہیں، کہ ممکنہ طور پر نہیں کر سکتے تھے 686 00:33:33,570 --> 00:33:35,210 تعداد میں سے ایک رہا. 687 00:33:35,210 --> 00:33:38,170 >> DAVID J. MALAN: لیکن یہ پاگل کلپ سے - وہ ایک تھا جہاں CSI، تھا 688 00:33:38,170 --> 00:33:39,970 تعداد وہ بھی بڑا تھا آئی پی ایڈریس کے لئے. 689 00:33:39,970 --> 00:33:42,940 690 00:33:42,940 --> 00:33:46,110 >> روب Bowden: اس پر کوئی سوال؟ 691 00:33:46,110 --> 00:33:51,710 اگلے ایک، میں تو مکمل تبدیلی موضوع، لیکن ہم نے کے لئے اس پی ایچ پی کی صف ہے 692 00:33:51,710 --> 00:33:53,270 کواڈ میں گھروں. 693 00:33:53,270 --> 00:33:56,360 اور ہم ایک بے ترتیب فہرست ہے. 694 00:33:56,360 --> 00:33:59,550 اور ہم میں سے ہر ایک کی فہرست میں آئٹم پرنٹ کرنا چاہتے صرف گھر کے نام پر مشتمل. 695 00:33:59,550 --> 00:34:09,090 696 00:34:09,090 --> 00:34:11,870 تو ہم نے ایک جعلی foreach لوپ ہے. 697 00:34:11,870 --> 00:34:17,540 تو نحو جعلی foreach ہے، یاد صف میں شے کے طور پر صف. 698 00:34:17,540 --> 00:34:22,360 تو لوپ کے ہر iteration کے ذریعے، گھر میں سے ایک پر لے جا رہا ہے 699 00:34:22,360 --> 00:34:24,060 صف کے اندر اقدار. 700 00:34:24,060 --> 00:34:26,530 >> پہلے iteration، گھر پر Cabot گھر ہوگا. 701 00:34:26,530 --> 00:34:30,370 ایک دوسرے iteration، گھر پر جائے گا تو کورئیر گھر اور. 702 00:34:30,370 --> 00:34:34,370 تو گھر کے طور پر ہر ایک کواڈ کے لئے، ہم صرف پرنٹ کرنے کے لئے جا رہا - 703 00:34:34,370 --> 00:34:37,250 آپ کو بھی مائدونت کیا جا سکتا ہے - 704 00:34:37,250 --> 00:34:42,199 اس کے بعد لسٹ آئٹم اور گھر کا نام اور اس کے بعد لسٹ آئٹم بند. 705 00:34:42,199 --> 00:34:45,210 گھوبگھرالی منحنی خطوط وحدانی یہاں اختیاری ہیں. 706 00:34:45,210 --> 00:34:49,480 >> اور پھر ہم بھی سوال میں کہا ہے کہ خود، بند کرنے کے لئے یاد ہے 707 00:34:49,480 --> 00:34:50,770 بے ترتیب فہرست ٹیگ. 708 00:34:50,770 --> 00:34:53,949 تو ہم پی ایچ پی موڈ سے باہر نکلنے کی ضرورت ہے ایسا کرنے کے لئے. 709 00:34:53,949 --> 00:35:00,280 یا ہم مائدونت کیا جا سکتا ہے بے ترتیب فہرست ٹیگ بند. 710 00:35:00,280 --> 00:35:02,380 >> DAVID J. MALAN: یہاں بھی ٹھیک کریں گے کے لئے ایک پرانے اسکول استعمال کرنے کے لئے کیا گیا ہے 711 00:35:02,380 --> 00:35:07,340 0 = 0 $ کے ساتھ میں لوپ اور شمار کرنے کے لئے استعمال کرتے ہوئے رے کی لمبائی پر اعداد و شمار. 712 00:35:07,340 --> 00:35:09,240 مکمل طور پر ٹھیک بھی، صرف ایک چھوٹا سا wordier. 713 00:35:09,240 --> 00:35:12,170 714 00:35:12,170 --> 00:35:14,742 >> سامعین: تو آپ کے لئے جا رہے تھے [اشراوی]، آپ کیا کریں گے - 715 00:35:14,742 --> 00:35:16,734 میں لوپ [اشراوی] ہے اسے بھول جاؤ. 716 00:35:16,734 --> 00:35:21,380 آپ کواڈ بریکٹ میں $ گے؟ 717 00:35:21,380 --> 00:35:21,850 >> DAVID J. MALAN: بالکل. 718 00:35:21,850 --> 00:35:23,100 جی ہاں، بالکل. 719 00:35:23,100 --> 00:35:26,650 720 00:35:26,650 --> 00:35:27,900 >> روب Bowden: اور کچھ؟ 721 00:35:27,900 --> 00:35:31,350 722 00:35:31,350 --> 00:35:32,010 >> DAVID J. MALAN: ٹھیک ہے. 723 00:35:32,010 --> 00:35:32,300 تجارت آف. 724 00:35:32,300 --> 00:35:38,290 تو جوابات کے bunches تھے ان میں سے ہر ایک کے لئے ممکن ہے. 725 00:35:38,290 --> 00:35:40,510 ہم واقعی صرف کے لئے تلاش کر رہے تھے ایک الٹا اور مجبور کچھ 726 00:35:40,510 --> 00:35:41,100 ایک کمی. 727 00:35:41,100 --> 00:35:44,830 اور نمبر 16 صارفین کی توثیق، پوچھا ان پٹ کلائنٹ سائڈ، جاوا سکرپٹ کے ساتھ کے طور پر، 728 00:35:44,830 --> 00:35:47,280 بجائے سرور سائیڈ کے، پی ایچ پی کے ساتھ. 729 00:35:47,280 --> 00:35:49,450 تو کیا ایک الٹا ہے کر کلائنٹ سائڈ؟ 730 00:35:49,450 --> 00:35:53,780 >> ٹھیک ہے، ہم تجویز پیش کی چیزوں میں سے ایک ہے آپ تاخیر کو کم ہے کہ، آپ کی وجہ سے 731 00:35:53,780 --> 00:35:56,750 رابطہ فکر کرنے کی ضرورت نہیں ہے چند لے سکتے سرور، جس 732 00:35:56,750 --> 00:36:00,390 milliseconds کے یا سیکنڈ کے بھی جوڑے کہ گریز کی طرف سے اور صرف 733 00:36:00,390 --> 00:36:04,670 صارفین کی ان پٹ کلائنٹ سائڈ کی طرف سے کی توثیق ایک پر جمع ہینڈلر ٹرگر اور 734 00:36:04,670 --> 00:36:06,650 وہ ٹائپ کریں، کیا جانچ پڑتال نام کے لئے میں کچھ؟ 735 00:36:06,650 --> 00:36:08,080 وہ کچھ ٹائپ کیا ای میل ایڈریس کے لئے؟ 736 00:36:08,080 --> 00:36:10,950 وہ کی طرف سے ایک چھاترالی منتخب کیا ڈراپ ڈاؤن مینو میں؟ 737 00:36:10,950 --> 00:36:14,360 >> تم نے انہیں فوری رائے دے سکتے ہیں gigahertz کمپیوٹر کا استعمال کرتے ہوئے 738 00:36:14,360 --> 00:36:16,770 یا وہ کہ جو بھی اصل میں ان کی میز پر. 739 00:36:16,770 --> 00:36:19,310 تو یہ صرف ایک بہتر صارف ہے عام طور پر تجربہ. 740 00:36:19,310 --> 00:36:24,460 لیکن کلائنٹ سائڈ کرنے کے ایک کمی کی توثیق، تم نے بھی کے بغیر کرتے ہیں 741 00:36:24,460 --> 00:36:29,860 سرور سائیڈ کی توثیق کر رہا ہے CS50 سے باہر آنے سے سب سے زیادہ کسی کو بھی جانتا ہے 742 00:36:29,860 --> 00:36:33,980 آپ کو صرف آپ چاہتے ہیں کسی بھی اعداد و شمار کو بھیج سکتے ہیں ایک سرور کے طریقوں میں سے کسی بھی تعداد. 743 00:36:33,980 --> 00:36:37,030 سچ کہوں تو، سب سے زیادہ کسی بھی براؤزر میں، آپ کر سکتے ہیں ترتیبات میں اور صرف کے ارد گرد کلک کریں 744 00:36:37,030 --> 00:36:40,110 جاوا سکرپٹ کو بند کر دیں، جس سے کرے گا، لہذا، کسی بھی شکل کے غیر فعال 745 00:36:40,110 --> 00:36:41,080 توثیق. 746 00:36:41,080 --> 00:36:44,460 >> لیکن آپ کو یاد کر سکتے ہیں کہ میں بھی کا استعمال کرتے ہوئے کلاس میں کچھ جادو چیزیں کیا 747 00:36:44,460 --> 00:36:47,790 ٹیل نیت اور اصل ڈرامہ حاصل بھیجنے کی طرف سے ایک براؤزر ہونا 748 00:36:47,790 --> 00:36:49,240 ایک سرور کی درخواستوں. 749 00:36:49,240 --> 00:36:51,030 اور یہ یقینی طور پر نہیں ہے کسی بھی جاوا اسکرپٹ کا استعمال کرتے ہوئے. 750 00:36:51,030 --> 00:36:53,290 یہ صرف میرے حکم دیتا ہے ٹائپ ہے ایک کی بورڈ میں. 751 00:36:53,290 --> 00:36:57,410 تو واقعی، کافی اندر اندر کسی بھی پروگرامر ویب اور HTTP کے ساتھ سکون 752 00:36:57,410 --> 00:37:01,690 وہ جو چاہے ڈیٹا بھیج سکتے ہیں توثیق کے بغیر ایک سرور پر. 753 00:37:01,690 --> 00:37:05,470 اور آپ کے سرور بھی جانچ پڑتال نہیں ہے تو، انہوں نے مجھے ایک نام دیا ہے، 754 00:37:05,470 --> 00:37:08,930 یہ اصل میں ایک درست ای میل ایڈریس، کیا وہ ایک چھاترالی منتخب کریں، آپ کو آخر سکتا ہے 755 00:37:08,930 --> 00:37:12,800 اپ داخل جعلی یا صرف خالی ڈیٹا آپ کے ڈیٹا بیس میں، جس میں شاید 756 00:37:12,800 --> 00:37:15,450 ایک اچھی بات نہیں جا رہا ہے تو آپ کو یہ بھی نہیں تھا سنبھالنے کر رہے تھے. 757 00:37:15,450 --> 00:37:16,770 >> تو یہ ایک پریشان کن حقیقت ہے. 758 00:37:16,770 --> 00:37:19,890 لیکن عام طور پر، کلائنٹ سائڈ میں توثیق کے بہت اچھا ہے. 759 00:37:19,890 --> 00:37:21,810 لیکن یہ دو مرتبہ کے طور پر زیادہ سے زیادہ کام کا مطلب ہے. 760 00:37:21,810 --> 00:37:25,970 مختلف وجود وہاں اگرچہ کے لئے لائبریریوں، جاوا سکرپٹ لائبریریاں 761 00:37:25,970 --> 00:37:28,830 مثال کے طور پر،، یہ بہت ہے کہ سر میں درد کی بہت کم. 762 00:37:28,830 --> 00:37:31,940 اور آپ کوڈ کے کچھ دوبارہ استعمال کر سکتے ہیں سرور سائیڈ، کلائنٹ سائڈ. 763 00:37:31,940 --> 00:37:35,980 لیکن یہ عام طور پر ہے کہ احساس ہے اضافی کام. 764 00:37:35,980 --> 00:37:36,415 جی ہاں. 765 00:37:36,415 --> 00:37:37,792 >> سامعین: تو اگر ہم صرف کم محفوظ ہے - 766 00:37:37,792 --> 00:37:39,205 >> DAVID J. MALAN: [ہنستا ہے] 767 00:37:39,205 --> 00:37:39,680 اہ. 768 00:37:39,680 --> 00:37:43,105 لوگ ہمیشہ مشکل ہیں فیصلہ کرنے والوں کے. 769 00:37:43,105 --> 00:37:44,480 >> روب Bowden: یہ کریں گے قبول کیا گیا ہے. 770 00:37:44,480 --> 00:37:44,810 >> DAVID J. MALAN: کیا ہے؟ 771 00:37:44,810 --> 00:37:45,810 >> روب Bowden: میں اس مسئلہ پیدا. 772 00:37:45,810 --> 00:37:46,735 قبول کیا گیا ہے. 773 00:37:46,735 --> 00:37:47,220 >> DAVID J. MALAN: جی ہاں. 774 00:37:47,220 --> 00:37:47,830 >> سامعین: ڈاؤن لوڈ، اتارنا. 775 00:37:47,830 --> 00:37:51,770 >> روب Bowden: لیکن ہم نے قبول نہیں کیا سب سے پہلے ایک کے لئے - 776 00:37:51,770 --> 00:37:53,630 ٹھیک ہے، ہم کے لئے تلاش کیا گیا ہے آپ کی طرح کچھ کرنے کی ضرورت نہیں 777 00:37:53,630 --> 00:37:55,270 سرور کے ساتھ بات چیت. 778 00:37:55,270 --> 00:37:58,355 ہم صرف تیزی سے قبول نہیں کیا. 779 00:37:58,355 --> 00:38:00,080 >> سامعین: کیا کے بارے میں صفحہ دوبارہ لوڈ نہیں کرتے؟ 780 00:38:00,080 --> 00:38:00,430 >> روب Bowden: جی ہاں. 781 00:38:00,430 --> 00:38:03,000 یہ ایک قبول جواب تھا. 782 00:38:03,000 --> 00:38:06,300 >> DAVID J. MALAN: ہم نے محسوس کیا ہے جہاں کچھ بھی اس بات کا امکان نہیں کے مقابلے میں زیادہ امکان تھا 783 00:38:06,300 --> 00:38:09,780 اگر آپ کی کیا پتہ تھا کہ ایک مشکل ہے، کہہ رہے ہیں 784 00:38:09,780 --> 00:38:13,500 کبھی کبھی اپنی طرف متوجہ کرنے کے لئے لائن. 785 00:38:13,500 --> 00:38:16,000 اس کی بجائے ایک لنک کی فہرست کا استعمال کرتے ہوئے برقرار رکھنے کے لئے ایک صف کی 786 00:38:16,000 --> 00:38:17,590 integers کے فہرست کے مطابق. 787 00:38:17,590 --> 00:38:21,000 سے منسلک کے ساتھ تو ایک الٹا ہم اکثر حوالہ دیتے ہیں ان کی پوری حوصلہ افزائی کی ہے کہ فہرستوں 788 00:38:21,000 --> 00:38:22,370 تعارف آپ تحرک حاصل تھا. 789 00:38:22,370 --> 00:38:23,030 انہوں نے بڑھ کر سکتے ہیں. 790 00:38:23,030 --> 00:38:23,950 وہ سکڑ کر سکتے ہیں. 791 00:38:23,950 --> 00:38:27,370 تو آپ کو hoops کے ذریعے کود کرنے کی ضرورت نہیں اصل میں زیادہ میموری کو بنانے کے لئے 792 00:38:27,370 --> 00:38:28,140 ایک صف کے ساتھ. 793 00:38:28,140 --> 00:38:30,310 یا آپ کو نہیں ہے صرف کا کہنا ہے کہ، معذرت، صارف. 794 00:38:30,310 --> 00:38:31,410 صف بھرا ہوا ہے. 795 00:38:31,410 --> 00:38:35,850 فہرست میں تو متحرک ترقی. 796 00:38:35,850 --> 00:38:37,210 لنک کی فہرست کے اگرچہ ایک کمی؟ 797 00:38:37,210 --> 00:38:40,916 798 00:38:40,916 --> 00:38:43,356 >> سامعین: یہ لکیری ہے. 799 00:38:43,356 --> 00:38:45,800 منسلک فہرست پر تلاش لکیری ہے اس کی بجائے آپ لاگ ان کیا 800 00:38:45,800 --> 00:38:46,360 >> DAVID J. MALAN: بالکل. 801 00:38:46,360 --> 00:38:50,160 ایک لنک کی فہرست پر تلاش لکیری ہے، اس کے مطابق ہے، چاہے، آپ کر سکتے ہیں کی وجہ سے 802 00:38:50,160 --> 00:38:53,170 صرف ان روٹی crumbs کی پیروی، ان اشارہ، فہرست کے آغاز سے 803 00:38:53,170 --> 00:38:53,570 ختم کرنے کے لئے. 804 00:38:53,570 --> 00:38:57,970 آپ کو بے ترتیب تک رسائی اور بیعانہ نہیں کر سکتے ہیں، اس طرح، بائنری تلاش، یہ ہے یہاں تک کہ اگر 805 00:38:57,970 --> 00:39:00,740 کے مطابق، آپ کر سکتے ہیں کہ ایک صف کے ساتھ کیا. 806 00:39:00,740 --> 00:39:02,390 اور ایک قیمت بھی ہے. 807 00:39:02,390 --> 00:39:02,966 جی ہاں. 808 00:39:02,966 --> 00:39:03,800 >> سامعین: یاد داشت غیر فعال؟ 809 00:39:03,800 --> 00:39:04,130 >> DAVID J. MALAN: جی ہاں. 810 00:39:04,130 --> 00:39:06,940 ٹھیک ہے، میں ضروری نہیں کرے گا غیر فعال ہیں. 811 00:39:06,940 --> 00:39:10,110 لیکن یہ آپ کو زیادہ میموری لاگت آتی ہے، آپ کو ہر کے لئے 32 بٹیں کی ضرورت ہے 812 00:39:10,110 --> 00:39:13,400 اضافی پوائنٹر کے لئے نوڈ، میں ایک اکیلے منسلک فہرست کے لئے کم از کم. 813 00:39:13,400 --> 00:39:16,660 اب، آپ کو صرف integers کے ذخیرہ کرنے رہے ہیں آپ پوائنٹر اضافہ کر رہے ہیں، ہے 814 00:39:16,660 --> 00:39:17,830 اصل میں قسم کی غیر معمولی. 815 00:39:17,830 --> 00:39:19,340 یہ میموری کی رقم کو دگنا ہے. 816 00:39:19,340 --> 00:39:22,330 لیکن حقیقت میں، تو آپ کو ذخیرہ کرنے کر رہے ایک ہو سکتا ہے کہ structs کے لنک کی فہرست 817 00:39:22,330 --> 00:39:25,540 8 بائٹس، 16 بائٹس، اس سے بھی زیادہ اس سے، شاید یہ کم ہے 818 00:39:25,540 --> 00:39:26,500 ایک معمولی قیمت کے. 819 00:39:26,500 --> 00:39:28,320 لیکن اس کے باوجود ایک قیمت ہے. 820 00:39:28,320 --> 00:39:31,880 لہذا ان میں سے کسی ہوگا downsides میں کے طور پر ٹھیک رہا. 821 00:39:31,880 --> 00:39:32,110 >> 18. 822 00:39:32,110 --> 00:39:36,100 لکھنے کے لئے پی ایچ پی کی بجائے سی کا استعمال کرتے ہوئے ایک کمانڈ لائن پروگرام. 823 00:39:36,100 --> 00:39:41,890 تو یہاں، استعمال کرنے کے لئے اکثر تیزی سے ایک پی ایچ پی یا روبی یا ازگر کی طرح زبان بدلیں. 824 00:39:41,890 --> 00:39:43,700 آپ کو صرف فوری طور پر کھلی ایک ٹیکسٹ ایڈیٹر کے اوپر. 825 00:39:43,700 --> 00:39:45,900 آپ کو بہت زیادہ کام کرتا ہے آپ کے لئے دستیاب. 826 00:39:45,900 --> 00:39:49,325 پی ایچ پی کے افعال میں باورچی خانے کے سنک ہے، C میں، آپ کی جبکہ 827 00:39:49,325 --> 00:39:50,420 بہت، بہت کم ہے. 828 00:39:50,420 --> 00:39:53,820 اصل میں، لوگوں کو مشکل راستہ معلوم آپ ہیش میزیں نہیں ہے. 829 00:39:53,820 --> 00:39:55,000 آپ فہرست منسلک ہے نہیں ہے. 830 00:39:55,000 --> 00:39:57,470 آپ ان کرنا چاہتے ہیں تو، آپ کے لئے ہے انہیں خود پر عملدرآمد. 831 00:39:57,470 --> 00:40:00,950 >> پی ایچ پی کی تو ایک الٹا یا واقعی کسی بھی تشریح زبان تیزی ہے 832 00:40:00,950 --> 00:40:02,920 جس کے ساتھ آپ کوڈ لکھ سکتے ہیں. 833 00:40:02,920 --> 00:40:06,660 لیکن ایک کمی، ہم اس کو دیکھا جب میں فوری طور پر ایک misspeller لئے whipped 834 00:40:06,660 --> 00:40:11,780 پی ایچ پی کا استعمال کرتے ہوئے درس میں عمل درآمد کے، ہے کہ ایک تشریح زبان کا استعمال کرتے ہوئے 835 00:40:11,780 --> 00:40:13,570 عام طور پر سست ہے. 836 00:40:13,570 --> 00:40:18,420 اور ہم ایک ساتھ دکھا کر دیکھا کہ 3 0.3 سیکنڈ کے وقت میں اضافہ 837 00:40:18,420 --> 00:40:24,440 کیونکہ فرمان کے سیکنڈ، کہ اصل میں کیا ہوتا ہے. 838 00:40:24,440 --> 00:40:27,060 >> ایک الٹا تھا آپ کو اس مرتب کرنے کی ضرورت نہیں ہے. 839 00:40:27,060 --> 00:40:30,130 تو یہ بھی ترقی کی رفتار اتفاق سے، آپ کی ضرورت نہیں ہے کیونکہ 840 00:40:30,130 --> 00:40:31,360 ایک پروگرام چلا رہا کرنے کے لئے دو اقدامات. 841 00:40:31,360 --> 00:40:32,140 آپ کو صرف ایک ہے. 842 00:40:32,140 --> 00:40:35,260 اور تو ہے کہ خوبصورت ہے مجبور کے ساتھ ساتھ. 843 00:40:35,260 --> 00:40:38,450 ایک SQL ڈیٹا بیس کا استعمال کرتے ہوئے کی بجائے ڈیٹا ذخیرہ کرنے کے لئے ایک CSV فائل. 844 00:40:38,450 --> 00:40:40,230 تو SQL ڈیٹا بیس pset7 کے لئے استعمال کیا جاتا ہے. 845 00:40:40,230 --> 00:40:42,060 CSV فائلوں آپ کو زیادہ استعمال نہیں کیا. 846 00:40:42,060 --> 00:40:45,960 لیکن آپ کے pset7 میں بالواسطہ طور پر اس کا استعمال کیا اچھی طرح یاہو خزانہ سے بات چیت کی طرف سے. 847 00:40:45,960 --> 00:40:49,330 >> لیکن CSV صرف ایک ایکسل فائل کی طرح ہے، لیکن سپر آسان، کالم کہاں ہیں 848 00:40:49,330 --> 00:40:54,010 صرف اندر کوما سے demarked ایک دوسری صورت میں ٹیکسٹ فائل کے. 849 00:40:54,010 --> 00:40:56,740 اور ایک SQL ڈیٹا بیس کا استعمال کرتے ہوئے ہے ایک چھوٹا سا زیادہ مجبور. 850 00:40:56,740 --> 00:41:00,060 تم چیزوں کو حاصل ہے کیونکہ یہ ایک الٹا ہے کی طرح منتخب کریں اور داخل کریں اور حذف. 851 00:41:00,060 --> 00:41:03,790 اور تم، شاید، کے اشاریہ جات حاصل ہے کہ ایس کیو ایل اور اس طرح کے دیگر ڈیٹا بیس، 852 00:41:03,790 --> 00:41:07,510 اوریکل، میموری میں آپ کے لئے تعمیر، جس میں آپ کو منتخب کریں شاید نہیں ہے کا مطلب 853 00:41:07,510 --> 00:41:09,000 نیچے لکیری سب سے اوپر جا رہا. 854 00:41:09,000 --> 00:41:11,300 یہ اصل میں کچھ ہونے جا رہا ہے بائنری تلاش یا کچھ اور طرح 855 00:41:11,300 --> 00:41:12,520 روح میں اسی طرح کے. 856 00:41:12,520 --> 00:41:13,930 تو وہ عام طور پر تیزی سے ہو. 857 00:41:13,930 --> 00:41:16,040 >> لیکن ایک کمی ہے یہ صرف زیادہ سے زیادہ کام ہے. 858 00:41:16,040 --> 00:41:16,730 یہ زیادہ کوشش کی ہے. 859 00:41:16,730 --> 00:41:18,140 آپ کے ڈیٹا بیس کو سمجھنے کی ہے. 860 00:41:18,140 --> 00:41:18,940 تم نے اسے قائم کرنے کے لئے ہے. 861 00:41:18,940 --> 00:41:20,840 آپ کو چلانے کے لئے ایک سرور کی ضرورت ہے اس ڈیٹا بیس. 862 00:41:20,840 --> 00:41:22,750 آپ کو سمجھنے کی ضرورت اس کی تشکیل کرنے کے لئے کس طرح. 863 00:41:22,750 --> 00:41:24,930 تو یہ صرف ان تجارت آف کی قسم. 864 00:41:24,930 --> 00:41:27,860 CSV فائل، آپ کر سکتے ہیں جبکہ gedit کے ساتھ اس کی تخلیق. 865 00:41:27,860 --> 00:41:28,770 اور تم جانا اچھا ہو. 866 00:41:28,770 --> 00:41:31,550 اس کے بعد کوئی پیچیدگی نہیں ہے. 867 00:41:31,550 --> 00:41:34,870 >> اس کی بجائے ایک ہیش ٹیبل کے ایک trie استعمال کرتے ہوئے ذخیرہ کرنے کے لئے الگ الگ جکڑا جانا؟ کے ساتھ ایک 868 00:41:34,870 --> 00:41:37,490 یاد تازہ الفاظ کی لغت pset5 کی. 869 00:41:37,490 --> 00:41:42,480 تو ایک اصول میں، الٹا کی کوشش کرتا ہے کم از کم، کیا ہے؟ 870 00:41:42,480 --> 00:41:46,380 مسلسل وقت، کم از کم آپ ہیں فرد کی ہر ایک پر hashing 871 00:41:46,380 --> 00:41:48,990 آپ کی طرح ایک لفظ میں حروف، pset5 کے لئے ہو سکتا ہے. 872 00:41:48,990 --> 00:41:52,720 پانچ hashes، چھ ہو سکتا ہے پانچ یا چھ ہو تو hashes 873 00:41:52,720 --> 00:41:53,900 لفظ میں حروف. 874 00:41:53,900 --> 00:41:54,580 اور یہ بہت اچھا ہے. 875 00:41:54,580 --> 00:41:56,910 اور پر پابند بالائی ہے تو کس طرح جب تک آپ الفاظ ہو سکتا ہے، ہے 876 00:41:56,910 --> 00:41:59,320 یقینا asymptotically مسلسل وقت. 877 00:41:59,320 --> 00:42:05,180 >> جبکہ علیحدہ ساتھ ایک ہیش میز اس کے ساتھ وہاں، مسئلہ جکڑا جانا؟ 878 00:42:05,180 --> 00:42:09,070 آنکڑا ڈھانچہ کی طرح ہے کہ آپ یلگوردمز کی کارکردگی عام طور پر 879 00:42:09,070 --> 00:42:12,700 چیزوں کی تعداد پر منحصر ہے پہلے ہی اعداد و شمار کے ڈھانچے میں. 880 00:42:12,700 --> 00:42:15,660 اور یہ یقینی طور پر کے ساتھ معاملہ ہے زنجیروں، جس کے تحت آپ کو ڈال زیادہ چیزیں 881 00:42:15,660 --> 00:42:18,800 ایک ہیش ٹیبل میں، اب ان زنجیروں بدترین میں جس کا مطلب ہے، جانا 882 00:42:18,800 --> 00:42:21,960 کیس، آپ کے لئے تلاش کیا جا سکتا ہے بات تمام طرح ایک کے آخر میں ہے 883 00:42:21,960 --> 00:42:26,000 ان زنجیروں کے، جس میں مؤثر طریقے سے لکیری کچھ میں devolves. 884 00:42:26,000 --> 00:42:29,450 >> اب، عملی طور پر، یہ بالکل کر سکتے ہیں کہ ایک ہیش میز کے ساتھ معاملہ 885 00:42:29,450 --> 00:42:32,820 زنجیروں اسی سے تیز ہے trie کے عمل. 886 00:42:32,820 --> 00:42:35,570 لیکن اس کے علاوہ، مختلف وجوہات کے لئے ہے کوشش کی ایک پوری بہت استعمال کر رہے ہیں جس 887 00:42:35,570 --> 00:42:39,240 یاد ہے کہ کر سکتے ہیں، حقیقت میں، سست چیزیں نیچے، آپ کو اچھا حاصل نہیں ہے کیونکہ 888 00:42:39,240 --> 00:42:42,410 کیشنگ کہا جاتا کچھ کے فوائد، جہاں ایک دوسرے کے ساتھ قریب ہیں وہ چیزیں 889 00:42:42,410 --> 00:42:45,420 یاد میں حاصل کیا جا سکتا اکثر زیادہ تیزی سے. 890 00:42:45,420 --> 00:42:48,180 اور کبھی کبھی آپ کے ساتھ آ سکتا ایک بہت اچھا ہیش تقریب. 891 00:42:48,180 --> 00:42:51,060 آپ کا تھوڑا سا برباد کرنے کے لئے یہاں تک کہ اگر میموری، آپ کو، بے شک، کرنے کے قابل ہو سکتا ہے 892 00:42:51,060 --> 00:42:54,430 تیز رفتار اور نہیں چیزیں تلاش کے طور پر برا کے طور پر linearly. 893 00:42:54,430 --> 00:42:58,410 >> تو مختصر میں، یہ ضروری نہیں تھا ان میں سے ایک یا اس سے بھی دو میں سے کسی کے ساتھ 894 00:42:58,410 --> 00:43:00,050 ہم کے لئے تلاش کر رہے تھے مخصوص چیزیں. 895 00:43:00,050 --> 00:43:03,080 قائل واقعی کچھ ایک الٹا اور منفی پہلو کے طور پر 896 00:43:03,080 --> 00:43:04,800 عام طور پر ہماری آنکھ کو پکڑ لیا. 897 00:43:04,800 --> 00:43:11,840 >> روب Bowden: تو الٹا کے لئے، ہم نے کیا اپنے طور پر قبول نہیں "تیزی سے." آپ 898 00:43:11,840 --> 00:43:14,540 اس کے بارے میں کچھ کہنا تھا. 899 00:43:14,540 --> 00:43:17,910 آپ کو نظریاتی طور پر تیزی سے انہوں نے کہا کہ یہاں تک کہ اگر، ہم آپ کو اس قسم کی سمجھ جانتا تھا کہ 900 00:43:17,910 --> 00:43:19,470 اسے 1 0 ہے. 901 00:43:19,470 --> 00:43:22,820 اور ہیش کی میز، اصول میں، 1 0 نہیں ہے. 902 00:43:22,820 --> 00:43:26,550 رن ٹائم کے بارے میں کچھ کا ذکر عام طور پر پوائنٹس آپ کو مل گیا ہے. 903 00:43:26,550 --> 00:43:32,640 لیکن "تیزی سے،" کے حل کے سب سے زیادہ پر کوشش کرتا تھے کہ بگ بورڈ 904 00:43:32,640 --> 00:43:34,990 حل سے معروضی سست کہ ہیش میزیں تھے. 905 00:43:34,990 --> 00:43:37,250 تو تیزی سے اور خود واقعی سچ نہیں ہے. 906 00:43:37,250 --> 00:43:41,550 907 00:43:41,550 --> 00:43:44,380 >> DAVID J. MALAN: ڈوم ڈی ڈوم ڈوم. 908 00:43:44,380 --> 00:43:46,686 میں شاید احساس ہے کہ صرف ایک ہوں کہ کرنا ہے کس طرح ہے 909 00:43:46,686 --> 00:43:47,500 حق، کا اعلان کیا جائے؟ 910 00:43:47,500 --> 00:43:50,400 >> روب Bowden: میں اصل میں کوئی اندازہ نہیں تھا. 911 00:43:50,400 --> 00:43:51,650 >> DAVID J. MALAN: اسے بنایا میرے سر میں احساس. 912 00:43:51,650 --> 00:43:53,830 913 00:43:53,830 --> 00:43:57,580 >> روب Bowden: میں اس سے کر رہا ہوں. 914 00:43:57,580 --> 00:43:58,020 ٹھیک ہے. 915 00:43:58,020 --> 00:44:04,243 تو اس سے آپ کو اپنی طرف متوجہ کرنے کے لئے تھا، جہاں سے ایک ہے آپ کے لئے اسی طرح کی تصویر شاید 916 00:44:04,243 --> 00:44:06,040 ماضی امتحان پر دیکھا ہے. 917 00:44:06,040 --> 00:44:12,200 تو صرف اس کو دیکھو. 918 00:44:12,200 --> 00:44:18,170 تو HTML نوڈ سے، ہم نے دو بچوں، سر اور جسم. 919 00:44:18,170 --> 00:44:20,570 تو ہم برانچ - سر اور جسم. 920 00:44:20,570 --> 00:44:22,280 سر ایک عنوان ٹیگ ہے. 921 00:44:22,280 --> 00:44:23,710 تو ہم ایک عنوان ہے. 922 00:44:23,710 --> 00:44:28,450 >> اب، ایک بات بہت سے لوگوں کو بھول گیا ان ٹیکسٹ کے مراکز ہیں 923 00:44:28,450 --> 00:44:30,430 اس درخت کے اندر اندر عناصر. 924 00:44:30,430 --> 00:44:36,260 تو یہاں ہم ovals کے طور پر ان کو اپنی طرف متوجہ کرنے کے لئے ہو ان سے ان کے فرق 925 00:44:36,260 --> 00:44:37,380 مراکز کی اقسام. 926 00:44:37,380 --> 00:44:41,450 لیکن نوٹس بھی یہاں ہم سب سے اوپر ہے، مشرق، اور نیچے ہونے کی وجہ سے ختم ہو جائے گی 927 00:44:41,450 --> 00:44:42,560 ٹیکسٹ نوڈس. 928 00:44:42,560 --> 00:44:46,250 لہذا ان بھول کسی حد تک تھا ایک عام غلطی کی. 929 00:44:46,250 --> 00:44:48,770 >> جسم کے تین بچے ہیں - ان تین divs. 930 00:44:48,770 --> 00:44:53,340 تو DIV، DIV، DIV اور پھر متن ان divs کی نوڈ کے بچوں. 931 00:44:53,340 --> 00:44:55,900 کہ بہت زیادہ ہے کہ سوالات کے لئے. 932 00:44:55,900 --> 00:44:57,860 >> DAVID J. MALAN: اور یہ نوٹنگ کے قابل ہے، ہم نے ان پر رہنے نہیں ہے اگرچہ 933 00:44:57,860 --> 00:45:01,040 ہم پر خرچ وقت میں تفصیلات حکم کرتا ہے جاوا سکرپٹ،، میں 934 00:45:01,040 --> 00:45:02,290 حقیقت یہ ہے، معاملہ تکنیکی. 935 00:45:02,290 --> 00:45:06,330 تو سر میں جسم سے پہلے آتا ہے ایچ ٹی ایم ایل، تو اس پر ظاہر ہو جانی چاہئے 936 00:45:06,330 --> 00:45:08,860 اصل ڈوم میں جسم کے چھوڑ دیا. 937 00:45:08,860 --> 00:45:12,265 ان، صرف FYI کریں، عام طور پر، یہ ہے کہ دستاویز کے لئے کہا جاتا ہے کچھ، جہاں 938 00:45:12,265 --> 00:45:13,260 یہ کوئی بات ہے. 939 00:45:13,260 --> 00:45:17,470 اور تم ایک تجزیہ کار پر عمل درآمد کیا گیا تو، عمارت میں ایچ ٹی ایم ایل پڑھتا ہے کہ ایک پروگرام 940 00:45:17,470 --> 00:45:20,960 یاد میں درخت، ایماندار ہو، یہ شاید intuitively کیا آپ 941 00:45:20,960 --> 00:45:24,720 ویسے بھی - اوپر نیچے، بائیں سے دائیں. 942 00:45:24,720 --> 00:45:26,116 >> روب Bowden: اس پر سوال؟ 943 00:45:26,116 --> 00:45:29,080 944 00:45:29,080 --> 00:45:30,000 میں اگلے ایک کرنا چاہیے؟ 945 00:45:30,000 --> 00:45:32,380 >> DAVID J. MALAN: اس بات کا یقین. 946 00:45:32,380 --> 00:45:33,810 >> روب Bowden: ٹھیک ہے. 947 00:45:33,810 --> 00:45:39,320 تو اس پر قبضہ بفر ہے حملے کے سوال. 948 00:45:39,320 --> 00:45:43,740 یہاں کو تسلیم کرنے کے لئے اہم بات یہ ہے، ٹھیک ہے، کس طرح ہو سکتا ہے ایک مخالف چال 949 00:45:43,740 --> 00:45:46,170 عمل میں اس پروگرام صوابدیدی کوڈ؟ 950 00:45:46,170 --> 00:45:51,860 تو argv1، پہلی کمانڈ لائن اس پروگرام دلیل، ہو سکتا ہے 951 00:45:51,860 --> 00:45:53,920 منمانے طویل. 952 00:45:53,920 --> 00:45:59,160 لیکن یہاں ہم کاپی کرنے memcpy استعمال کر رہے ہیں argv1، جو یہاں بار ہے. 953 00:45:59,160 --> 00:46:00,165 ہم دلیل کے طور پر یہ گزر رہے ہیں. 954 00:46:00,165 --> 00:46:02,050 اور تو اس کا نام بار پر لے جا رہا ہے. 955 00:46:02,050 --> 00:46:08,040 >> تو ہم بار memcpying رہے ہیں اس بفر C میں. 956 00:46:08,040 --> 00:46:09,400 ہم کتنے بائٹس کاپی کر رہے ہیں؟ 957 00:46:09,400 --> 00:46:14,040 ٹھیک ہے تاہم بہت سے بائٹس بار ہوتا ، اس دلیل کی لمبائی کا استعمال کرتے ہوئے. 958 00:46:14,040 --> 00:46:17,930 لیکن C صرف 12 بائٹس وسیع ہے. 959 00:46:17,930 --> 00:46:22,280 تو ہم نے ایک کمانڈ لائن کی دلیل ٹائپ 12 بائٹس سے زیادہ ہے، ہم 960 00:46:22,280 --> 00:46:25,470 اس اتپرواہ کرنے کے لئے جا خاص طور پر بفر. 961 00:46:25,470 --> 00:46:31,000 اب، کس طرح ایک مخالف دھوکہ ہو سکتا ہے صوابدیدی کوڈ پر عمل میں پروگرام 962 00:46:31,000 --> 00:46:34,910 >> تو وہ یہاں یاد اہم FOO کو بلا رہا ہے. 963 00:46:34,910 --> 00:46:37,340 اور تو اہم کالز FOO. 964 00:46:37,340 --> 00:46:40,408 اس کو اپنی طرف متوجہ کرتے ہیں. 965 00:46:40,408 --> 00:46:44,720 966 00:46:44,720 --> 00:46:46,990 تو ہم اپنے اسٹیک ہے. 967 00:46:46,990 --> 00:46:49,090 اور اہم اسٹیک فریم ہے کے نیچے دیے گئے. 968 00:46:49,090 --> 00:46:51,860 969 00:46:51,860 --> 00:46:53,250 کچھ وقت، اہم کالز FOO. 970 00:46:53,250 --> 00:46:55,390 ٹھیک ہے، فوری طور پر، اہم کالز FOO. 971 00:46:55,390 --> 00:46:57,130 اور تو FOO کو اس کے اپنے اسٹیک فریم ملتا ہے. 972 00:46:57,130 --> 00:46:59,650 973 00:46:59,650 --> 00:47:02,220 >> اب، کسی وقت، FOO کو واپس جا رہا ہے. 974 00:47:02,220 --> 00:47:06,810 اور FOO کی واپسی گئے، ہم جاننے کی ضرورت ہے اہم ہم کے اندر جو کوڈ کے مطابق 975 00:47:06,810 --> 00:47:10,610 جانتے کرنے کے لئے کہاں تھے ہم نے اہم میں دوبارہ شروع کرنا چاہئے. 976 00:47:10,610 --> 00:47:13,100 ہم نے ایک پورے سے FOO کو فون کر سکتے ہیں مختلف مقامات کے گروپ. 977 00:47:13,100 --> 00:47:14,620 ہم کس طرح جہاں واپس کرنے کے لئے جانتے ہیں؟ 978 00:47:14,620 --> 00:47:16,460 ٹھیک ہے، ہم اس کا کہیں ذخیرہ کرنے کے لئے کی ضرورت ہے. 979 00:47:16,460 --> 00:47:23,010 >> تو کہیں حق یہاں، ہم اسٹور ہم ایک بار کرنے کے لئے واپس آ جانا چاہئے جہاں 980 00:47:23,010 --> 00:47:24,070 FOO کو واپسی. 981 00:47:24,070 --> 00:47:26,350 اور اس کی واپسی کا پتہ ہے. 982 00:47:26,350 --> 00:47:30,490 تو کس طرح ایک مخالف فائدہ اٹھا سکتا ہے اس کی حقیقت یہ ہے کہ 983 00:47:30,490 --> 00:47:37,550 اس بفر C محفوظ کیا جاتا ہے، چلو یہاں سی ہے، کا کہنا ہے کہ. 984 00:47:37,550 --> 00:47:39,690 تو ہم سی کے لئے 12 بائٹس ہے. 985 00:47:39,690 --> 00:47:40,540 یہ سی ہے. 986 00:47:40,540 --> 00:47:43,030 اور یہ ہے FOO اسٹیک انگوٹی ہے. 987 00:47:43,030 --> 00:47:49,970 بدنیتی پر مبنی صارف داخل تو اگر 12 سے زیادہ بائٹس یا وہ ایک حکم میں داخل 988 00:47:49,970 --> 00:47:54,570 12 سے زیادہ ہے کہ لائن کی دلیل حروف، پھر ہم جا رہے ہیں 989 00:47:54,570 --> 00:47:57,540 اس بفر اتپرواہ. 990 00:47:57,540 --> 00:47:59,910 >> ہم جا رکھنے کے کر سکتے ہیں. 991 00:47:59,910 --> 00:48:02,220 اور کچھ نقطہ پر، ہم دور جانا ہم شروع یہ کافی 992 00:48:02,220 --> 00:48:05,120 اس واپسی ایڈریس overwriting کی. 993 00:48:05,120 --> 00:48:08,310 تو ایک بار ہم، واپسی ایڈریس ادلیکھت اس کا مطلب یہ ہے کہ جب FOO کو 994 00:48:08,310 --> 00:48:14,220 واپسی، ہم جہاں کہیں بھی کرنے کے لئے آرہے ہیں بدنیتی پر مبنی صارف کی طرف سے اس کے لئے کہہ رہی ہے 995 00:48:14,220 --> 00:48:19,490 یہ جو کچھ بھی کی طرف سے، میں داخل ہوئے جو کچھ بھی قیمت حروف صارف میں داخل. 996 00:48:19,490 --> 00:48:24,320 اور اس بدنیتی پر مبنی صارف جا رہا ہے تو خاص طور پر ہوشیار، وہ اس کر سکتے ہیں 997 00:48:24,320 --> 00:48:29,255 printDef میں کہیں پر واپس تقریب یا malloc میں کہیں 998 00:48:29,255 --> 00:48:31,830 تقریب، بس کہیں بھی صوابدیدی. 999 00:48:31,830 --> 00:48:38,420 >> وہ ہے کیا لیکن اگر اس سے بھی زیادہ ہوشیار ہے صارف یہیں پر واپس. 1000 00:48:38,420 --> 00:48:41,920 اور پھر آپ پر عمل شروع ان کے کوڈ کا لائنز کے طور پر. 1001 00:48:41,920 --> 00:48:46,610 تو اس وقت، صارف داخل کر سکتے ہیں وہ اس خطے میں جو چاہے. 1002 00:48:46,610 --> 00:48:52,210 اور وہ مکمل کنٹرول ہے آپ کے پروگرام پر. 1003 00:48:52,210 --> 00:48:53,460 اس پر سوال؟ 1004 00:48:53,460 --> 00:48:56,380 1005 00:48:56,380 --> 00:49:00,970 تو اگلا سوال مکمل ہو گیا ہے اس طرح میں FOO کی reimplementation 1006 00:49:00,970 --> 00:49:02,620 یہ اب کوئی کمزور ہے. 1007 00:49:02,620 --> 00:49:03,870 >> تو طریقوں کے ایک جوڑے کی ہے آپ نے یہ کیا کیا جا سکتا ہے. 1008 00:49:03,870 --> 00:49:10,900 1009 00:49:10,900 --> 00:49:13,330 ہم اب بھی صرف C ہے لمبائی 12 کیا جا رہا ہے. 1010 00:49:13,330 --> 00:49:16,480 آپ اس کو تبدیل کیا جا سکتا ہے آپ کے حل کے حصے کے طور پر. 1011 00:49:16,480 --> 00:49:18,930 ہم نے بھی بنانے کے لئے ایک چیک شامل اس بات کا یقین بار، شہوت انگیز null نہیں تھا. 1012 00:49:18,930 --> 00:49:24,460 آپ کی ضرورت نہیں تھی اگرچہ مکمل کریڈٹ کے لئے. 1013 00:49:24,460 --> 00:49:27,690 تو ہم نے سب سے پہلے جانچ پڑتال کر رہے ہیں بار کے تار کی لمبائی. 1014 00:49:27,690 --> 00:49:31,650 اس وقت، 12 سے زیادہ ہے تو اصل کاپی نہیں ہے. 1015 00:49:31,650 --> 00:49:33,010 تو وہ اسے ٹھیک کرنے کا ایک طریقہ ہے. 1016 00:49:33,010 --> 00:49:36,750 >> یہ فکسنگ کا ایک اور طریقہ ہے بجائے اس کے C ہونے کے صرف لمبائی 12 کا ہو، یہ ہے 1017 00:49:36,750 --> 00:49:39,310 لمبائی strlen کی (بار) کا ہو. 1018 00:49:39,310 --> 00:49:43,370 یہ فکسنگ کا ایک اور طریقہ ہے اصل میں صرف واپس کرنے کے لئے. 1019 00:49:43,370 --> 00:49:46,690 تو کیا تم بس کی سب سے چھٹکارا مل گیا تھا تو اس، آپ کو صرف تمام خارج کر دیا تھا تو 1020 00:49:46,690 --> 00:49:51,830 کوڈ کی لائنیں، تم ہو گیا ہوتا مکمل کریڈٹ، اس تقریب کے بعد 1021 00:49:51,830 --> 00:49:54,150 اصل میں کچھ بھی پورا نہیں کرتا. 1022 00:49:54,150 --> 00:49:57,650 یہ کمانڈ لائن کاپی ہے میں کچھ صف میں دلیل 1023 00:49:57,650 --> 00:49:59,960 اس کے مقامی اسٹیک فریم. 1024 00:49:59,960 --> 00:50:01,310 اور پھر بات یہ ہے کہ واپس آ رہا ہے. 1025 00:50:01,310 --> 00:50:04,020 اور جو کچھ بھی اس میں کامیاب ہو گیا ہے. 1026 00:50:04,020 --> 00:50:09,740 تو واپس بھی کافی تھا مکمل کریڈٹ حاصل کرنے کی راہ. 1027 00:50:09,740 --> 00:50:13,425 >> DAVID J. MALAN: کافی نہیں روح کی سوال لیکن فی قابل قبول 1028 00:50:13,425 --> 00:50:15,580 بہر حال رپورٹ. 1029 00:50:15,580 --> 00:50:18,260 >> روب Bowden: اس میں سے کسی پر سوال؟ 1030 00:50:18,260 --> 00:50:22,270 ایک بات ہے کہ آپ کم از کم کوڈ کو مرتب کرنے کے لئے کی ضرورت ہے. 1031 00:50:22,270 --> 00:50:24,810 تکنیکی آپ نہیں ہیں تو اگرچہ کمزور اپنے کوڈ کو نہیں کرتا تو 1032 00:50:24,810 --> 00:50:29,130 مرتب، ہم اس کو قبول نہیں کیا. 1033 00:50:29,130 --> 00:50:31,350 کوئی سوال؟ 1034 00:50:31,350 --> 00:50:33,320 ٹھیک ہے. 1035 00:50:33,320 --> 00:50:34,580 >> DAVID J. MALAN: آپ چاہتے ہیں اس عنوان کا کہنا ہے کہ؟ 1036 00:50:34,580 --> 00:50:37,230 >> روب Bowden: نمبر 1037 00:50:37,230 --> 00:50:40,470 >> DAVID J. MALAN: تو اس میں سے ایک میں، اس اچھی خبر ہے یا بری خبر یا تو تھا. 1038 00:50:40,470 --> 00:50:43,870 یہ لفظی ایک ہی مسئلہ ہے پہلے کوئز کے طور پر. 1039 00:50:43,870 --> 00:50:46,140 اور یہ تقریبا ایک ہی ہے پر pset1 مسئلہ. 1040 00:50:46,140 --> 00:50:49,980 لیکن یہ جان بوجھ کر ہونا آسان کر دیا گیا تھا ایک آسان پرامڈ، ہو سکتا ہے کہ ایک 1041 00:50:49,980 --> 00:50:52,330 ایک تھوڑا سا کے ساتھ حل آسان iteration کے. 1042 00:50:52,330 --> 00:50:55,680 اور واقعی، کیا ہم حاصل کر رہے ہیں یہاں، اتنا منطق نہیں تھا 1043 00:50:55,680 --> 00:50:58,100 شاید، اس نقطہ کی طرف سے، آپ ہیں کیونکہ تم تھے کے مقابلے میں زیادہ آرام دہ اور پرسکون 1044 00:50:58,100 --> 00:51:01,850 loops کے یا کیوں loops کے لئے کے ساتھ ایک ہفتے میں، لیکن واقعی میں اس کے علاوہ چڑھاو 1045 00:51:01,850 --> 00:51:04,790 آپ کے ساتھ ایک چھوٹا سا آرام دہ اور پرسکون رہے ہیں پی ایچ پی کی صرف اس کے بارے میں نہیں ہے کہ اس تصور 1046 00:51:04,790 --> 00:51:05,290 پروگرامنگ. 1047 00:51:05,290 --> 00:51:07,820 یہ اصل میں ایک زبان کے طور پر استعمال کیا جا سکتا کمانڈ لائن پروگرام لکھنے کے لئے. 1048 00:51:07,820 --> 00:51:10,060 >> اور یقینا، کہ ہم کوشش کر رہے تھے کیا ہے آپ کی توجہ اپنی طرف متوجہ کرنے. 1049 00:51:10,060 --> 00:51:12,060 یہ ایک کمانڈ لائن پی ایچ پی پروگرام ہے. 1050 00:51:12,060 --> 00:51:16,690 تو یہاں C کوڈ، جبکہ صحیح C میں، پی ایچ پی کے لئے درست نہیں. 1051 00:51:16,690 --> 00:51:17,940 لیکن کوڈ کو واقعی ایک ہی ہے. 1052 00:51:17,940 --> 00:51:21,720 آپ کوئز کے لئے حل موازنہ کریں تو 1 کوئز کے خلاف 0، آپ اس کو تلاش کریں گے 1053 00:51:21,720 --> 00:51:25,630 اس کے علاوہ، تقریبا ایک جیسی ہے کچھ ڈالر کی نشانیاں اور 1054 00:51:25,630 --> 00:51:27,250 ایک ڈیٹا کی قسم کی غیر موجودگی. 1055 00:51:27,250 --> 00:51:31,720 خاص طور پر، ہم یہاں ایک نظر ڈالیں تو، آپ کو اس میں، ہم iterate دیکھیں گے کہ 1056 00:51:31,720 --> 00:51:33,730 کیس، 1 سے 7 کے ذریعے. 1057 00:51:33,730 --> 00:51:34,910 >> ہم اس 0 انڈیکس کر سکتا تھا. 1058 00:51:34,910 --> 00:51:37,320 لیکن کبھی کبھی، میں یہ صرف لگتا ہے چیزوں کے بارے میں سوچنے کے لئے ذہنی طور پر آسان 1059 00:51:37,320 --> 00:51:38,200 1 سے 7. 1060 00:51:38,200 --> 00:51:40,300 آپ کو ایک بلاک کرنا چاہتے ہیں تو، پھر دو بلاکس، پھر تین، پھر 1061 00:51:40,300 --> 00:51:41,770 ڈاٹ، ڈاٹ، سات ڈاٹ. 1062 00:51:41,770 --> 00:51:45,960 ہم 1 J initialized ہے کیا جا رہا ہے اور پھر میں نے کرنے کے لئے پر اعتماد. 1063 00:51:45,960 --> 00:51:48,150 اور یہاں سب کچھ ہے دوسری صورت میں ایک جیسی. 1064 00:51:48,150 --> 00:51:49,790 لیکن نوٹ کے قابل ہیں چیزوں کی ایک جوڑے. 1065 00:51:49,790 --> 00:51:53,230 ہم آپ کو یہ دو لائنوں، یہ پہلی دے goofily ایک shebang کے طور پر نام سے ایک، 1066 00:51:53,230 --> 00:51:54,560 تیز بینگ کے لئے. 1067 00:51:54,560 --> 00:51:58,770 اور یہ صرف راستے کی وضاحت، ایک پروگرام ہو سکتا ہے جس میں فولڈر، 1068 00:51:58,770 --> 00:52:02,160 آپ استعمال کرنا چاہتے پتہ چلا ہے کہ اس فائل کی تشریح. 1069 00:52:02,160 --> 00:52:04,710 >> اور اس کے بعد پھر لائن، کورس کے، پی ایچ پی موڈ میں داخل ہے. 1070 00:52:04,710 --> 00:52:07,740 اور بہت سب سے نیچے دیئے لائن سے باہر نکلنے کے پی ایچ پی موڈ کا مطلب. 1071 00:52:07,740 --> 00:52:09,740 اور اس کے ساتھ، عام طور پر، کام کرتا ہے زبانوں کی تشریح. 1072 00:52:09,740 --> 00:52:14,370 آپ لکھتے ہیں تو یہ قسم کی پریشان کن ہے ایک foo.php نامی ایک فائل میں پروگرام. 1073 00:52:14,370 --> 00:52:17,320 اور پھر آپ کے صارفین کو ہے صرف ، اس پروگرام کو چلانے کے لئے، ٹھیک ہے، یاد میں 1074 00:52:17,320 --> 00:52:22,320 ٹائپ کرنے کے لئے ہے "پی ایچ پی خلائی foo.php." قسم اور کچھ نہیں تو پریشان کی. 1075 00:52:22,320 --> 00:52:25,270 اور یہ بھی پتہ چلتا ہے کہ آپ کے پروگرام سب نہیں ہے جو پی ایچ پی، میں لکھا ہے 1076 00:52:25,270 --> 00:52:27,060 اس صارف کے لئے روشن. 1077 00:52:27,060 --> 00:52:30,100 >> تو آپ کو مکمل طور پر. پی ایچ پی ختم کر سکتے ہیں لیکچر سے یاد. 1078 00:52:30,100 --> 00:52:35,690 اور آپ اصل میں. / FOO کرتے ہیں کر سکتے ہیں آپ کو اس کے بنانے کی طرف سے اس chmodded ہے 1079 00:52:35,690 --> 00:52:36,500 کارکردگی. 1080 00:52:36,500 --> 00:52:39,630 تو CHMOD A + X FOO کو کہ کیا ہوتا. 1081 00:52:39,630 --> 00:52:41,460 اور تم بھی shebang یہاں شامل کریں. 1082 00:52:41,460 --> 00:52:45,320 لیکن واقعی، مسئلہ میں ہو رہی تھی کچھ اس طرح باہر پرنٹ. 1083 00:52:45,320 --> 00:52:51,100 کوئی HTML، یقینی طور پر کوئی سی کوڈ، کچھ پی ایچ پی. 1084 00:52:51,100 --> 00:52:54,100 تو ملو تو مسئلہ 25 میں واپس آئے. 1085 00:52:54,100 --> 00:52:58,050 اور 25 میں، آپ درج ذیل دی گئی ایک تھا جس میں کنکال کوڈ، 1086 00:52:58,050 --> 00:52:59,730 بہت آسان ویب کے صفحے. 1087 00:52:59,730 --> 00:53:04,230 اور رسیلی حصہ HTML وار نیچے تھا یہاں، ہم جسم کے اندر ہے جہاں 1088 00:53:04,230 --> 00:53:09,160 آدانوں کی منفرد ID ہے کہ ایک فارم جس کے اندر دو آدانوں، ایک تھا 1089 00:53:09,160 --> 00:53:11,950 نام، ایک کے ایک خیال کے ساتھ بٹن کی ایک خیال کے ساتھ. 1090 00:53:11,950 --> 00:53:14,240 >> سب سے پہلے، قسم متن یہ تھا قسم کی دوسری پیش. 1091 00:53:14,240 --> 00:53:16,930 اور اس طرح ہم، اصل میں، زیادہ آپ کو دی آپ کو صرف تو، ضرورت سے زیادہ اجزاء 1092 00:53:16,930 --> 00:53:19,230 تم لوگ جس کے ساتھ اختیارات میں تھا اس مسئلہ کو حل کرنے کے لئے. 1093 00:53:19,230 --> 00:53:21,130 آپ سختی کی ضرورت نہیں ہے ان آئی ڈی کے تمام. 1094 00:53:21,130 --> 00:53:23,580 لیکن یہ آپ کو حل کرنے کے لئے کی اجازت دیتا ہے یہ مختلف طریقوں سے. 1095 00:53:23,580 --> 00:53:27,050 اور سب سے اوپر، نوٹس مقصد کو متحرک کرنے کے لئے تھا 1096 00:53:27,050 --> 00:53:27,960 اس طرح ایک کھڑکی - 1097 00:53:27,960 --> 00:53:28,780 خوش، ملو - 1098 00:53:28,780 --> 00:53:31,270 کا استعمال کرتے ہوئے براؤزر میں پاپ تو، سپر آسان 1099 00:53:31,270 --> 00:53:33,190 بدسورت نہیں، الرٹ تقریب. 1100 00:53:33,190 --> 00:53:37,480 اور اس طرح، آخر میں، یہ فوڑے تصوراتی کسی نہ کسی طرح کے لئے سننے کے لئے 1101 00:53:37,480 --> 00:53:41,290 فارم کلائنٹ سائڈ کی گذارشات ، کسی نہ کسی طرح سرور سائیڈ، 1102 00:53:41,290 --> 00:53:45,640 کی طرف سے جمع کرانے پر رد عمل صارف ٹائپ اس قدر پکڑ 1103 00:53:45,640 --> 00:53:50,120 نام کے خانے میں، اور اس کے بعد ایک انتباہ کے جسم میں اس کی نمائش. 1104 00:53:50,120 --> 00:53:53,460 >> تو آپ ایسا کر سکتے ہیں کا ایک طریقہ کے ساتھ ہے ایک چھوٹا سا لگتا ہے جس jQuery کی، 1105 00:53:53,460 --> 00:53:56,880 سب سے پہلے میں syntactically perplexing. 1106 00:53:56,880 --> 00:54:00,760 آپ کو خالص ڈوم کوڈ کے ساتھ یہ کر سکتے ہیں - ID کی طرف سے document.getelement. 1107 00:54:00,760 --> 00:54:02,530 لیکن اس ورژن پر ایک نظر ڈالیں. 1108 00:54:02,530 --> 00:54:05,110 میں اہم کے ایک جوڑے کی ہے لائنز پہلے. 1109 00:54:05,110 --> 00:54:09,460 ایک تو ہم ہے جو، اس لائن ہے تم نے دیکھا ہے ہو سکتا ہے کے لئے ایک جیسی 1110 00:54:09,460 --> 00:54:13,830 مجھے یقین ہے کہ، میں، form2.html ہفتے میں 9 کلاس سے. 1111 00:54:13,830 --> 00:54:16,960 اور یہ صرف پھانسی، کہہ رہا ہے مندرجہ ذیل کوڈ جب 1112 00:54:16,960 --> 00:54:18,430 دستاویز کے لئے تیار ہے. 1113 00:54:18,430 --> 00:54:21,770 یہ اہم ہونے کی وجہ سے صرف اس وجہ سے HTML صفحات اوپر پڑھ رہے ہیں 1114 00:54:21,770 --> 00:54:23,280 بائیں سے دائیں نیچے،. 1115 00:54:23,280 --> 00:54:27,910 >> اور اس وجہ سے، آپ کیا کرنے کی کوشش کریں تو کچھ ڈوم کے لئے یہاں کے کوڈ میں کچھ 1116 00:54:27,910 --> 00:54:31,560 عنصر، کچھ HTML ٹیگ، کہ نیچے ہے یہاں، آپ بھی جلد ہی کر رہے ہیں، 1117 00:54:31,560 --> 00:54:34,220 یہ بھی نہیں ہے کیونکہ میموری میں پڑھا گیا. 1118 00:54:34,220 --> 00:54:37,740 تو اس document.ready کہہ کر لائن، ہم کہہ رہے ہیں، 1119 00:54:37,740 --> 00:54:39,040 یہاں کچھ کوڈ، براؤزر کی. 1120 00:54:39,040 --> 00:54:42,440 لیکن پوری جب تک اس پر عمل نہیں کرتے دستاویز کے لئے تیار ہے، کہ ڈوم ہے 1121 00:54:42,440 --> 00:54:44,320 درخت کی یاد میں موجود ہے. 1122 00:54:44,320 --> 00:54:47,110 یہ ایک چھوٹا سا زیادہ ہے syntactically ایک تو، براہ راست 1123 00:54:47,110 --> 00:54:51,890 تھوڑا سا مختلف، میں کہہ رہا ہوں، جہاں، پکڑو جن کی منفرد HTML عنصر 1124 00:54:51,890 --> 00:54:53,560 شناخت آدانوں ہے. 1125 00:54:53,560 --> 00:54:56,220 اس کا کیا ہیش ٹیگ ہے ، منفرد ID کرنا. 1126 00:54:56,220 --> 00:54:58,070 اور پھر میں بلا رہا ہوں. جمع. 1127 00:54:58,070 --> 00:55:01,660 >> تو یہاں جمع ایک تقریب دوسری صورت میں، ہے ایک طریقہ کے طور پر جانا جاتا ہے، ہے 1128 00:55:01,660 --> 00:55:05,850 بائیں ہاتھ پر اعتراض کے اندر میں نے اجاگر نہیں کیا تھا کہ وہاں کی طرف. 1129 00:55:05,850 --> 00:55:08,990 آپ کو ایک اعتراض کے طور پر آدانوں کے بارے میں سوچنا تو اگر یاد میں - اور یقینا یہ ہے. 1130 00:55:08,990 --> 00:55:10,440 یہ ایک درخت میں ایک نوڈ ہے - 1131 00:55:10,440 --> 00:55:16,580 . کا مطلب جمع کرتے وقت اس فارم کے ساتھ اس ID پیش کیا جاتا ہے، پھانسی 1132 00:55:16,580 --> 00:55:17,700 مندرجہ ذیل کوڈ. 1133 00:55:17,700 --> 00:55:20,290 مجھے کوئی پرواہ نہیں کیا نام تقریب میں عمل کر رہا ہوں ہے. 1134 00:55:20,290 --> 00:55:23,760 تو یہاں میں نے کیا ہے، کے طور پر اس سے پہلے، استعمال کر رہا ہوں لامڈا تقریب یا ایک سے ملاقات کی 1135 00:55:23,760 --> 00:55:24,720 گمنام تقریب. 1136 00:55:24,720 --> 00:55:27,640 یہ بالکل ذہنی نہیں ہے اس کا کوئی نام ہے دلچسپ دوسرے سے، 1137 00:55:27,640 --> 00:55:30,220 آپ کو صرف ہو تو ٹھیک ہے جو کبھی ایک بار اسے فون کرنے جا رہا. 1138 00:55:30,220 --> 00:55:34,490 اور اندر میں نے اصل میں سنبھال فارم جمع کراتے. 1139 00:55:34,490 --> 00:55:36,810 میں سب سے پہلے ایک متغیر کا اعلان قیمت کہا جاتا ہے. 1140 00:55:36,810 --> 00:55:40,610 اور پھر اس کے اثرات کیا ہے یہاں حصہ اب روشنی ڈالی؟ 1141 00:55:40,610 --> 00:55:44,755 کہ میں کیا کرتا ہے میرے لئے اعلی سطح کے؟ 1142 00:55:44,755 --> 00:55:48,539 >> سامعین: اس کی قیمت ہو جاتا ہے صارف ذیل HTML میں نے نہیں کیا. 1143 00:55:48,539 --> 00:55:50,920 یہ تو اس کی شناخت ہو جاتا ہے اور اس کی قیمت مل جاتا ہے. 1144 00:55:50,920 --> 00:55:51,590 >> DAVID J. MALAN: بالکل. 1145 00:55:51,590 --> 00:55:54,300 یہ جن کی منفرد، نوڈ گرپس شناخت کنندہ کا نام ہے. 1146 00:55:54,300 --> 00:55:56,900 یہ اس قدر ہو جاتا ہے ہے، شاید، کیا صارف 1147 00:55:56,900 --> 00:55:58,190 اس کے یا خود ٹائپ. 1148 00:55:58,190 --> 00:56:01,020 اور پھر یہ ذخیرہ ہے کہ میں متغیر کی قدر کہا جاتا ہے. 1149 00:56:01,020 --> 00:56:03,720 ایک طرف ایک، آپ یہ بھی کر سکتے ہیں ایک چھوٹی سی مختلف اس نے کیا. 1150 00:56:03,720 --> 00:56:09,250 کچھ کرنے کی طرف سے مکمل طور پر قابل قبول جھوٹ متغیر کی قدر ہو جاتا ہے 1151 00:56:09,250 --> 00:56:10,500 document.getElementById. 1152 00:56:10,500 --> 00:56:12,860 1153 00:56:12,860 --> 00:56:15,460 یہ ایک چھوٹا سا ہے اور یہی وجہ ہے یہ ہے jQuery کے استعمال نہیں تکاؤ. 1154 00:56:15,460 --> 00:56:16,710 "NAME". قیمت. 1155 00:56:16,710 --> 00:56:18,330 1156 00:56:18,330 --> 00:56:19,620 تو مکمل طور پر قابل قبول. 1157 00:56:19,620 --> 00:56:22,770 ایسا کرنے کے مختلف طریقے. jQuery کے صرف ایک چھوٹا سا زیادہ succinct اور ہو جاتا ہے 1158 00:56:22,770 --> 00:56:25,230 یقینی طور پر زیادہ مقبول پروگرامرز کے درمیان. 1159 00:56:25,230 --> 00:56:27,590 >> اب، میں وویک کا تھوڑا سا کر رہا ہوں کیونکہ مسئلہ میں، چیک 1160 00:56:27,590 --> 00:56:30,820 بیان میں ہم واضح طور پر، انہوں نے کہا کہ اگر صارف نے ابھی تک ٹائپ نہیں ہے اس کا یا اس 1161 00:56:30,820 --> 00:56:32,580 ایک الرٹس ظاہر نہیں کرتے، نام. 1162 00:56:32,580 --> 00:56:35,390 لیکن آپ کو صرف کی طرف سے، اس کے لئے چیک کر سکتے ہیں ایک کے لئے خالی سٹرنگ کے لئے جانچ پڑتال 1163 00:56:35,390 --> 00:56:37,850 اگر وہاں اقتباس-unquote جو اصل میں وہاں کچھ بھی نہیں ہے. 1164 00:56:37,850 --> 00:56:40,880 لیکن یہ اقتباس-unquote جو کے برابر نہیں ہے، میں الرٹس فون کرنا چاہتے ہیں. 1165 00:56:40,880 --> 00:56:45,610 اور یہاں دلچسپ حصہ یہ ہے کہ ہم، کے علاوہ آپریٹر استعمال کر رہے ہیں جس میں 1166 00:56:45,610 --> 00:56:48,130 جاوا اسکرپٹ میں کیا کرتا ہے؟ 1167 00:56:48,130 --> 00:56:48,740 سلسلہ بندی کرنا. 1168 00:56:48,740 --> 00:56:50,690 تو یہ PHPs ڈاٹ آپریٹر کی طرح ہے. 1169 00:56:50,690 --> 00:56:52,820 اسی خیال، تھوڑا سا مختلف نحو. 1170 00:56:52,820 --> 00:56:55,280 اور میں صرف سٹرنگ پیدا کر رہا ہوں آپ کی سکرین شاٹ پر دیکھا - 1171 00:56:55,280 --> 00:56:57,750 خوش، اور تو. 1172 00:56:57,750 --> 00:56:59,200 >> اور پھر آخری تفصیل یہ ہے. 1173 00:56:59,200 --> 00:57:04,970 میں کیوں جھوٹے اندر واپس کرتے ہیں اس گمنام تقریب کی؟ 1174 00:57:04,970 --> 00:57:07,420 >> سامعین: کوئی قیمت نہیں ہے. 1175 00:57:07,420 --> 00:57:09,380 اگر آپ فارم میں اسے ڈال دیا. 1176 00:57:09,380 --> 00:57:12,320 1177 00:57:12,320 --> 00:57:16,730 قیمت نہیں ہے تو یہ صرف، کا کہنا ہے کہ خالی برابر، تو یہ کرتے ہیں. 1178 00:57:16,730 --> 00:57:20,040 1179 00:57:20,040 --> 00:57:20,940 کہ جمع کرانے میں ایک خالی نہیں تھا. 1180 00:57:20,940 --> 00:57:21,170 >> DAVID J. MALAN: ٹھیک ہے. 1181 00:57:21,170 --> 00:57:21,640 تاہم ہوشیار رہو. 1182 00:57:21,640 --> 00:57:22,830 یہاں کوئی نہیں ہے. 1183 00:57:22,830 --> 00:57:25,510 اور اس کی واپسی کے جھوٹے سے باہر ہے حالات تو. 1184 00:57:25,510 --> 00:57:29,470 تو یہ، جھوٹے واپس، لائن پر روشنی ڈالی کوئی بات نہیں کیا جب executes ہے 1185 00:57:29,470 --> 00:57:32,310 فارم پیش کیا جاتا ہے. 1186 00:57:32,310 --> 00:57:36,810 کیا اس کے جھوٹے اندر واپس لوٹنے ہے یہ کہا جاتا ہے کے طور پر ایونٹ ہینڈلر،، 1187 00:57:36,810 --> 00:57:38,450 سوال میں تقریب جمع کرانے جا رہے ہیں؟ 1188 00:57:38,450 --> 00:57:42,350 1189 00:57:42,350 --> 00:57:44,470 >> سامعین: کیونکہ یہ صرف ایک بار ہوتا ہے. 1190 00:57:44,470 --> 00:57:45,320 >> DAVID J. MALAN: صرف ایک بار ہوتا ہے. 1191 00:57:45,320 --> 00:57:46,821 کافی نہیں. 1192 00:57:46,821 --> 00:57:47,292 جی ہاں؟ 1193 00:57:47,292 --> 00:57:50,589 >> سامعین: اس سے فارم کو روکتا ہے ، پہلے سے طے شدہ رویے پر جمع 1194 00:57:50,589 --> 00:57:52,480 صفحہ دوبارہ لوڈ کریں گے جس میں. 1195 00:57:52,480 --> 00:57:53,110 >> DAVID J. MALAN: بالکل. 1196 00:57:53,110 --> 00:57:56,490 تو میں، اصطلاح یہاں پیش اوور لوڈنگ کر رہا ہوں میں کہہ رہا ہوں، کیونکہ شکل ہے 1197 00:57:56,490 --> 00:57:57,670 پیش کیا جا رہا ہے. 1198 00:57:57,670 --> 00:58:02,240 آپ کو مشورہ ہے کہ کے طور پر، یہ اصل میں نہیں ہے سچ HTTP کے انداز میں پیش کر دیا گیا. 1199 00:58:02,240 --> 00:58:06,870 آپ کی وجہ سے، جمع کریں پر کلک جب ہماری onSubmit ہینڈلر، ہم intercepting رہے ہیں 1200 00:58:06,870 --> 00:58:09,040 اس فارم جمع کرانے کی تو بات کرنے کی. 1201 00:58:09,040 --> 00:58:11,290 ہم پھر ہماری بات کر رہے ہیں جاوا سکرپٹ کے کوڈ کے ساتھ. 1202 00:58:11,290 --> 00:58:14,070 لیکن میں نے جان بوجھ کر، جھوٹے واپس آ رہا ہوں میں نے ایسا نہیں کرنا چاہتے ہیں کیا کیونکہ 1203 00:58:14,070 --> 00:58:18,430 دوسری تقسیم کے بعد پورے فارم کے لئے ہے خود کو ویب پر پیش کرنے کے لئے 1204 00:58:18,430 --> 00:58:22,800 کو تبدیل کرنے کے کی طرف سے کلیدی قدر جوڑوں کے ساتھ سرور کچھ اس طرح ہو یو آر ایل 1205 00:58:22,800 --> 00:58:26,180 Q = بلیوں یا جو کچھ ہم نے کیا، مثال کے طور پر، کلاس میں. 1206 00:58:26,180 --> 00:58:29,640 میں، ایسا نہیں کرنا چاہتے ہیں کیونکہ اس کے لئے کوئی سرور سن ہے 1207 00:58:29,640 --> 00:58:30,690 جمع کرانے کے فارم. 1208 00:58:30,690 --> 00:58:32,320 یہ مکمل طور پر جاوا سکرپٹ کے کوڈ میں کیا ہے. 1209 00:58:32,320 --> 00:58:35,760 میں بھی نہیں تھا اور اس وجہ سے ایک کارروائی، اپنے فارم پر منسوب کیونکہ میں 1210 00:58:35,760 --> 00:58:38,870 اس کے لئے ارادہ نہیں ہے کبھی سرور پر جانا. 1211 00:58:38,870 --> 00:58:40,780 >> تو یہ پیش کیا جا رہا ہے. 1212 00:58:40,780 --> 00:58:44,340 لیکن ہم اس فارم intercepting رہے ہیں جمع کرانے اور پہلے سے طے شدہ کی روک تھام 1213 00:58:44,340 --> 00:58:47,477 اصل میں ہے جس کے رویے، تمام طریقہ سرور پر جانا. 1214 00:58:47,477 --> 00:58:48,730 >> سامعین: تو یہ کلائنٹ سائڈ کو مدنظر رکھتے ہوئے. 1215 00:58:48,730 --> 00:58:49,780 >> DAVID J. MALAN: رکھتے ہوئے یہ کلائنٹ سائڈ. 1216 00:58:49,780 --> 00:58:51,030 بالکل صحیح. 1217 00:58:51,030 --> 00:58:53,240 1218 00:58:53,240 --> 00:58:55,757 اگلا، دوسرا اپ ایس کیو ایل اوہ میرے تھا. 1219 00:58:55,757 --> 00:59:00,000 1220 00:59:00,000 --> 00:59:00,430 >> روب Bowden: ٹھیک ہے. 1221 00:59:00,430 --> 00:59:04,990 تو یہ پہلا سوال عام طور پر تھا لوگوں کے لئے کسی نہ کسی طرح. 1222 00:59:04,990 --> 00:59:07,270 بعد میں لوگوں کے بہتر گئے تھے اگرچہ. 1223 00:59:07,270 --> 00:59:12,260 تو آپ درست اعداد و شمار کو منتخب کرنے کے لئے تھا یہ کالم دونوں کے لئے اقسام. 1224 00:59:12,260 --> 00:59:17,750 اور ان میں سے دونوں کچھ ہے ان کے بارے میں چیزیں ہے کہ 1225 00:59:17,750 --> 00:59:20,620 انتخاب مشکل بنا. 1226 00:59:20,620 --> 00:59:24,430 تو int ایک درست نہیں تھا تعداد کے لئے ٹائپ کریں. 1227 00:59:24,430 --> 00:59:29,410 ایک 12 عددی اکاؤنٹ وجہ تعداد، ایک int کے لئے کافی بڑا نہیں ہے 1228 00:59:29,410 --> 00:59:31,070 کل ہندسے کو محفوظ. 1229 00:59:31,070 --> 00:59:36,570 تو ایک درست انتخاب ایک بڑا ہوتا ہے آپ کو پتہ ہے کہ ہو تو جمع Int. 1230 00:59:36,570 --> 00:59:42,090 ایک کا انتخاب ہو سکتا ہے لمبائی 12 ایک چار میدان. 1231 00:59:42,090 --> 00:59:44,560 لہذا ان میں سے کسی کام کیا جائے گا. 1232 00:59:44,560 --> 00:59:46,100 int نہیں کرے گا. 1233 00:59:46,100 --> 00:59:50,170 >> اب، توازن، واپس pset7 لگتا. 1234 00:59:50,170 --> 00:59:59,540 تو ہم نے خاص طور پر دشملو استعمال کیا جاتا ہے حصص یا کی قیمت کی دکان - 1235 00:59:59,540 --> 01:00:00,550 >> DAVID J. MALAN: کیش. 1236 01:00:00,550 --> 01:00:01,060 >> روب Bowden: کیش. 1237 01:00:01,060 --> 01:00:05,710 ہم رقم کا ذخیرہ کرنے کے لئے دشملو استعمال کیا جاتا ہے صارف فی الحال ہے کہ نقد رقم کی. 1238 01:00:05,710 --> 01:00:10,950 تو ہم ایسا سبب ہے یاد ہے، کیونکہ، floats کے. 1239 01:00:10,950 --> 01:00:12,480 صحت سے متعلق میں تیرتا فائدہ نہیں ہے. 1240 01:00:12,480 --> 01:00:18,200 یہ خاص طور پر کیش اسٹور نہیں کر سکتے ہیں ہم جیسے اقدار یہاں کرنا چاہتے ہیں. 1241 01:00:18,200 --> 01:00:23,630 تو اشارہ واضح طور پر سٹور کرنے کے قابل ہے ، کچھ کہنا، دو اعشاری مقامات. 1242 01:00:23,630 --> 01:00:27,630 توازن، ہم یہ چاہتے ہیں یہی وجہ ہے کہ فلوٹ دشملو اور نہ ہو. 1243 01:00:27,630 --> 01:00:30,230 >> DAVID J. MALAN: اور بھی، بھی، اگرچہ یہ دوسرے میں ہوشیار ہو سکتا 1244 01:00:30,230 --> 01:00:32,760 سوچنے کے لئے سیاق و سباق، شاید یہ ایک int کے لئے ایک موقع ہے. 1245 01:00:32,760 --> 01:00:34,420 میں صرف کا ٹریک رکھنے کے گا پیسے میں چیزیں. 1246 01:00:34,420 --> 01:00:38,670 ہم واضح طور پر پہلے سے طے شدہ سے ظاہر ہوتا ہے کیونکہ ، 100.00 ہونے کی قدر ہے کہ 1247 01:00:38,670 --> 01:00:40,380 یہ صرف ایک int ہو سکتا ہے کا مطلب ہے. 1248 01:00:40,380 --> 01:00:45,310 اور بہت بڑی تعداد کے ساتھ ایک اور سوکشمتا اس کا مطلب نہیں تھا 1249 01:00:45,310 --> 01:00:46,180 ایک چال کا سوال ہو. 1250 01:00:46,180 --> 01:00:49,860 لیکن یاد ہے کہ مائی ایس کیو ایل میں ایک int، جیسے C میں، کم از کم میں 1251 01:00:49,860 --> 01:00:51,440 آلات، 32 بٹ ہے. 1252 01:00:51,440 --> 01:00:53,960 اور ہم آپ کی توقع نہیں ہے، اگرچہ معلوم ہے کس طرح بہت سے ہندسے ہے 1253 01:00:53,960 --> 01:00:56,910 کا مطلب ہے، یاد ہے کہ سب سے بڑی تعداد آپ ممکنہ طور پر نمائندگی کر سکتے ہیں 1254 01:00:56,910 --> 01:01:00,710 ایک 32 بٹ کی تعداد کے ساتھ تقریبا کیا ہے؟ 1255 01:01:00,710 --> 01:01:02,760 >> ہم نے ہمیشہ کیا نمبر کہتے ہیں؟ 1256 01:01:02,760 --> 01:01:04,530 2 کیا تقریبا ہے جو، 32 کرنے کے لئے؟ 1257 01:01:04,530 --> 01:01:07,492 1258 01:01:07,492 --> 01:01:08,780 آپ کو خاص طور جانتے ہیں کی ضرورت نہیں ہے. 1259 01:01:08,780 --> 01:01:10,580 لیکن تقریبا زندگی میں مددگار ہے. 1260 01:01:10,580 --> 01:01:12,200 یہ تقریبا 4 ارب ہے. 1261 01:01:12,200 --> 01:01:14,430 تو ہم نے چند بار کہا ہے کہ. 1262 01:01:14,430 --> 01:01:16,360 میں جانتا ہوں کہ میں نے اس کو چند بار کہا ہے. 1263 01:01:16,360 --> 01:01:17,670 اور یہ تقریبا 4 ارب ہے. 1264 01:01:17,670 --> 01:01:19,710 اور یہ کہ ایک اچھی حکمرانی ہے انگوٹھے کے بارے میں پتہ. 1265 01:01:19,710 --> 01:01:21,880 آپ 8 بٹس، 256 ہے تو جادو نمبر ہے. 1266 01:01:21,880 --> 01:01:24,160 آپ 32 بٹس، 4 ہے تو ارب دے یا لے. 1267 01:01:24,160 --> 01:01:27,140 تو آپ کو صرف نیچے 4 ارب لکھنا تو، آپ کو اس سے کم ہندسے ہے نظر آئے گا 1268 01:01:27,140 --> 01:01:30,970 جو واضح طور پر نہیں ہے جس کا مطلب ہے 12، قبضہ کرنے کے لئے کافی expressiveness ایک 1269 01:01:30,970 --> 01:01:34,220 12 ہندسوں اکاؤنٹ نمبر. 1270 01:01:34,220 --> 01:01:34,940 >> روب Bowden: ٹھیک ہے. 1271 01:01:34,940 --> 01:01:38,520 تو دوسرے لوگوں کے بہتر گئے. 1272 01:01:38,520 --> 01:01:40,900 تو لگتا ہے کہ بینک ایک $ 20 ماہانہ عائد 1273 01:01:40,900 --> 01:01:42,400 تمام اکاؤنٹس پر دیکھ بھال کی فیس. 1274 01:01:42,400 --> 01:01:45,506 کیا SQL سوال کر سکتے ہیں کے بینک کے ساتھ یہاں تک کہ اگر، ہر شمار سے 20 ڈالر کی کٹوتی 1275 01:01:45,506 --> 01:01:47,520 یہ کچھ منفی توازن کے نتیجے میں؟ 1276 01:01:47,520 --> 01:01:50,380 تو بنیادی طور پر، چار ہیں سوالات کی اہم اقسام - 1277 01:01:50,380 --> 01:01:52,840 ، داخل منتخب کریں، اپ ڈیٹ، اور ختم. 1278 01:01:52,840 --> 01:01:56,080 تو ہم ہم کیا سوچتے ہیں یہاں استعمال کرنے کے لئے جا رہے ہیں؟ 1279 01:01:56,080 --> 01:01:57,000 اپ ڈیٹ کریں. 1280 01:01:57,000 --> 01:01:58,260 >> تو ایک نظر ڈالیں. 1281 01:01:58,260 --> 01:02:04,290 1282 01:02:04,290 --> 01:02:05,870 لہذا ہم یہاں اپ ڈیٹ کر رہے ہیں. 1283 01:02:05,870 --> 01:02:09,900 کیا ٹیبل ہم اکاؤنٹس کو اپ ڈیٹ کر رہے ہیں؟ 1284 01:02:09,900 --> 01:02:11,670 تو اکاؤنٹس کو اپ ڈیٹ. 1285 01:02:11,670 --> 01:02:15,390 اور پھر نحو، کیا کہتا ہے اکاؤنٹس میں ہم کو اپ ڈیٹ کر رہے ہیں؟ 1286 01:02:15,390 --> 01:02:19,520 ٹھیک ہے، ہم برابر توازن قائم کرنے کر رہے ہیں توازن مائنس 20 کی موجودہ قیمت. 1287 01:02:19,520 --> 01:02:22,860 تو یہ تمام قطار اپ ڈیٹ کرے گا اکاؤنٹس کی، تفریق 1288 01:02:22,860 --> 01:02:26,250 توازن سے 20 ڈالر. 1289 01:02:26,250 --> 01:02:29,260 >> DAVID J. MALAN: ایک عام غلطی، ہم کبھی کبھی یہ معاف کر دیا، اگرچہ، 1290 01:02:29,260 --> 01:02:32,990 اصل میں یہاں پی ایچ پی کوڈ کرنا تھا استفسار تقریب بلا یا ڈال 1291 01:02:32,990 --> 01:02:35,460 سب کچھ کے ارد گرد کی قیمت درج ہے کہ وہاں کی ضرورت نہیں تھی. 1292 01:02:35,460 --> 01:02:39,780 >> روب Bowden: ایس کیو ایل ہے یاد رکھیں کہ پی ایچ پی کی طرف سے ایک علیحدہ زبان بدلیں. 1293 01:02:39,780 --> 01:02:42,410 ہم پی ایچ پی ایس کیو ایل لکھ ہونا ہو. 1294 01:02:42,410 --> 01:02:46,180 اور پی ایچ پی تو یہ بھیج رہا ہے ایس کیو ایل سرور پر. 1295 01:02:46,180 --> 01:02:51,120 کرنے کے لئے لیکن آپ کو پی ایچ پی کی ضرورت نہیں ہے ایک ایس کیو ایل سرور کے ساتھ بات چیت. 1296 01:02:51,120 --> 01:02:51,730 >> DAVID J. MALAN: بالکل. 1297 01:02:51,730 --> 01:02:54,240 ڈالر علامات کے ساتھ تو کوئی متغیر اس تناظر میں ہونا چاہئے. 1298 01:02:54,240 --> 01:02:59,550 یہ صرف ریاضی کے سب کر سکتے ہیں ڈیٹا بیس کے اندر اندر. 1299 01:02:59,550 --> 01:03:00,080 >> روب Bowden: ٹھیک ہے. 1300 01:03:00,080 --> 01:03:01,300 تو اگلے ایک. 1301 01:03:01,300 --> 01:03:02,731 یہ اگلے ایک ہے؟ 1302 01:03:02,731 --> 01:03:03,210 جی ہاں. 1303 01:03:03,210 --> 01:03:06,570 کیا SQL سوال کر سکتے ہیں کے بینک کے ساتھ تو اس کے اکاؤنٹ نمبر بازیافت 1304 01:03:06,570 --> 01:03:09,300 امیر گاہکوں کے ساتھ ان 1،000 سے زیادہ بیلنس؟ 1305 01:03:09,300 --> 01:03:13,280 تو چار اہم اقسام میں سے جو ہم یہاں کرنا چاہتے ہیں جا رہے ہیں؟ 1306 01:03:13,280 --> 01:03:14,430 منتخب کریں. 1307 01:03:14,430 --> 01:03:16,650 تو ہم منتخب کرنے کے لئے چاہتے ہیں. 1308 01:03:16,650 --> 01:03:17,610 کیا ہم منتخب کرنے کے لئے چاہتے ہیں؟ 1309 01:03:17,610 --> 01:03:19,380 ہم منتخب کرنے کے لئے کیا کالم چاہتے ہیں؟ 1310 01:03:19,380 --> 01:03:20,970 ہم خاص طور پر چاہتے ہیں کریں گے تعداد کو منتخب کریں. 1311 01:03:20,970 --> 01:03:23,910 لیکن آپ کو سٹار، ہم نے کہا کہ اگر بھی اس کو قبول کر لیا. 1312 01:03:23,910 --> 01:03:25,820 >> تو کیا میز سے تعداد کو منتخب کریں؟ 1313 01:03:25,820 --> 01:03:26,640 اکاؤنٹس. 1314 01:03:26,640 --> 01:03:28,370 اور پھر ہم حالت چاہتے ہیں؟ 1315 01:03:28,370 --> 01:03:30,140 کہاں 1،000 سے زیادہ توازن. 1316 01:03:30,140 --> 01:03:31,720 ہم نے بھی زیادہ سے زیادہ قبول سے یا اس کے برابر. 1317 01:03:31,720 --> 01:03:35,230 1318 01:03:35,230 --> 01:03:36,190 گزشتہ ایک. 1319 01:03:36,190 --> 01:03:42,940 کیا SQL سوال کر سکتے ہیں کے بینک کے ساتھ بند، یعنی، ہر اکاؤنٹ خارج ہے 1320 01:03:42,940 --> 01:03:44,480 $ 0 کے توازن ہے؟ 1321 01:03:44,480 --> 01:03:47,620 تو چار میں سے جو ہم ہیں استعمال کرنے کے لئے چاہتے ہیں کے لئے جا رہے ہیں؟ 1322 01:03:47,620 --> 01:03:48,320 حذف کریں. 1323 01:03:48,320 --> 01:03:50,180 تو اس کے لئے نحو؟ 1324 01:03:50,180 --> 01:03:51,890 کیا ٹیبل سے حذف کریں؟ 1325 01:03:51,890 --> 01:03:53,550 اکاؤنٹس. 1326 01:03:53,550 --> 01:03:55,790 اور پھر حالت ہے جس پر ہم کو حذف کرنا چاہتے ہیں - 1327 01:03:55,790 --> 01:03:57,280 بیلنس صفر کے برابر ہے. 1328 01:03:57,280 --> 01:04:03,050 تو اکاؤنٹس سے تمام صفیں حذف کریں میزان صفر ہے، جہاں. 1329 01:04:03,050 --> 01:04:04,300 ان میں سے کسی پر سوال؟ 1330 01:04:04,300 --> 01:04:08,840 1331 01:04:08,840 --> 01:04:10,260 قطار کرنا چاہتے ہیں؟ 1332 01:04:10,260 --> 01:04:11,200 >> DAVID J. MALAN: قطار گائیڈ. 1333 01:04:11,200 --> 01:04:17,110 تو اس میں سے ایک میں، ہم آپ کو ایک حد تک دی ہم ایک کی کہ واقف ساخت 1334 01:04:17,110 --> 01:04:20,450 structs کے ساتھ ساتھ کلاس میں تھوڑا سا، ایک ڈیٹا تھا جو 1335 01:04:20,450 --> 01:04:21,910 روح سے متعلق ساخت. 1336 01:04:21,910 --> 01:04:24,670 ایک قطار کے ساتھ اگرچہ فرق ہے ہم کسی نہ کسی طرح یاد تھا کہ جو 1337 01:04:24,670 --> 01:04:27,900 بڑی، قطار کے سامنے میں تھا ہم زیادہ سے زیادہ کر سکتے ہیں کا حصہ ہے تاکہ 1338 01:04:27,900 --> 01:04:30,530 میموری کے موثر استعمال، کم از کم ہم ایک صف کا استعمال کرتے ہوئے کر رہے تھے تو. 1339 01:04:30,530 --> 01:04:35,460 >> کیونکہ یاد، ہم ایک صف ہے تو، تو، مثال کے طور پر، اس کے سامنے ہے 1340 01:04:35,460 --> 01:04:38,470 قطار، میں یہاں قطار میں حاصل کرنے کے ہیں، اور اس کے بعد کسی کو لائن میں ہو جاتا ہے 1341 01:04:38,470 --> 01:04:42,710 میرے پیچھے میرے پیچھے میرے،،، اور پیچھے ایک شخص لائن کے باہر قدم، آپ 1342 01:04:42,710 --> 01:04:45,930 کر سکتے ہیں، ہم اپنے انسانی کے کچھ دیکھا کلاس میں رضاکاروں کی، سب کو ہے 1343 01:04:45,930 --> 01:04:47,100 اس طرح منتقل. 1344 01:04:47,100 --> 01:04:50,880 لیکن عام طور پر، سب کرنا ہے کچھ وقت کا بہترین استعمال نہیں ہے 1345 01:04:50,880 --> 01:04:54,600 ایک پروگرام میں، کیونکہ اس کا مطلب ہے کہ آپ الگورتھم میں چل رہا ہے 1346 01:04:54,600 --> 01:04:56,520 asymptotic رننگ ٹائم؟ 1347 01:04:56,520 --> 01:04:57,420 یہ لکیری ہے. 1348 01:04:57,420 --> 01:04:59,600 >> اس قسم کے بیوکوف ہے پسند ہے اور میں محسوس کرتا ہوں. 1349 01:04:59,600 --> 01:05:02,890 لائن میں اگلے شخص اگلا ہے تو میں جانے کے لئے کرنا ہے جو شخص 1350 01:05:02,890 --> 01:05:04,660 سٹور، وہ سب کے سب نہیں ہے ایک دوسرے کے ساتھ منتقل کرنے کے لئے. 1351 01:05:04,660 --> 01:05:08,200 صرف وہ شخص کر گرفتار کیا جائے وقت مثال کے طور پر، آتا ہے. 1352 01:05:08,200 --> 01:05:09,870 لہذا ہم وہاں تھوڑا سا وقت بچا سکتے ہیں. 1353 01:05:09,870 --> 01:05:14,840 اور ایسا کرنے کے لئے، اگرچہ، اس کا مطلب کہ قطار کے سربراہ یا 1354 01:05:14,840 --> 01:05:18,060 قطار کے سامنے جا رہا ہے آہستہ آہستہ گہری اور گہری منتقل 1355 01:05:18,060 --> 01:05:23,340 صف میں اور آخر میں شاید ہم ایک کا استعمال کرتے ہوئے کر رہے ہیں تو اصل میں ارد گرد لپیٹ 1356 01:05:23,340 --> 01:05:25,790 لوگوں کو محفوظ صف اس قطار میں. 1357 01:05:25,790 --> 01:05:28,390 تو آپ کو تقریبا سوچ سکتے ہیں ایک سرکلر کے اعداد و شمار کے طور پر صف 1358 01:05:28,390 --> 01:05:29,880 اس معنی میں ساخت. 1359 01:05:29,880 --> 01:05:33,970 >> تو آپ کو کسی نہ کسی طرح کا ٹریک رکھنے کے لئے ہے اس کے سائز کے یا اس کے واقعی آخر 1360 01:05:33,970 --> 01:05:36,250 اور پھر اس کے آغاز کہاں ہے. 1361 01:05:36,250 --> 01:05:39,490 تو ہم آپ کے اعلان کی تجویز ایسی ہی ایک قطار، کالنگ 1362 01:05:39,490 --> 01:05:41,330 یہ سوال، صرف ایک خط. 1363 01:05:41,330 --> 01:05:44,570 پھر ہم سامنے ہو کہ تجویز صفر اور اس initialized ہے سائز 1364 01:05:44,570 --> 01:05:45,470 صفر ہے initialized جائے. 1365 01:05:45,470 --> 01:05:47,770 >> تو اب، کچھ بھی نہیں ہے کہ قطار کے اندر. 1366 01:05:47,770 --> 01:05:50,910 اور ہم مکمل کرنے کے لئے تم سے پوچھنا میں ذیل میں enqueue کے عمل 1367 01:05:50,910 --> 01:05:55,250 تقریب ن اضافہ کر دیتی ہے اس طرح کہ اس کے بعد (ق) کے اختتام اور صحیح واپس. 1368 01:05:55,250 --> 01:05:58,690 لیکن ق مکمل یا منفی ہے تو، تقریب کی بجائے جھوٹے واپس آ جانا چاہئے. 1369 01:05:58,690 --> 01:06:01,060 اور ہم آپ کو ایک جوڑے دی مفروضات کے. 1370 01:06:01,060 --> 01:06:04,320 لیکن وہ واقعی فعل نہیں ہو متعلقہ، صرف یہ ہے کہ bool کے، موجود ہے 1371 01:06:04,320 --> 01:06:06,690 تکنیکی، bool کے نہیں کرتا، کیونکہ آپ شامل جب تک سی میں موجود ایک 1372 01:06:06,690 --> 01:06:07,310 بعض ہیڈر فائل. 1373 01:06:07,310 --> 01:06:09,350 تو یہ صرف اس بات کا یقین کرنے کے کیا گیا تھا کوئی یہ ایک چال ہے کیا گیا 1374 01:06:09,350 --> 01:06:10,940 بات کا سوال قسم کے. 1375 01:06:10,940 --> 01:06:16,280 >> تو enqueue، ہم نمونہ میں تجویز مندرجہ ذیل حل لاگو کرنے کے لئے. 1376 01:06:16,280 --> 01:06:20,420 ایک، ہم سب سے پہلے آسانی چیک کرنے کے لیے، کم پھانسی پھل. 1377 01:06:20,420 --> 01:06:23,820 قطار مکمل یا بڑی تعداد ہے کہ آپ کو داخل کرنے کی کوشش کر رہے ہیں کم ہے 1378 01:06:23,820 --> 01:06:26,380 ہم نے کہا کہ صفر، کے مقابلے میں مسئلہ کی تفصیلات چاہئے 1379 01:06:26,380 --> 01:06:30,320 ہم صرف چاہتے ہیں، کی اجازت نہیں غیر منفی اقدار، تو آپ کو کرنا چاہئے 1380 01:06:30,320 --> 01:06:31,640 صرف فوری طور پر جھوٹے واپس. 1381 01:06:31,640 --> 01:06:33,820 تو کچھ نسبتا آسان جانچ پڑتال کی خرابی. 1382 01:06:33,820 --> 01:06:38,720 آپ کو اس کی اصل شامل کرنا چاہتے ہیں تاہم اگر تعداد، آپ کا تھوڑا سا کرنا پڑا 1383 01:06:38,720 --> 01:06:39,440 یہاں سوچ. 1384 01:06:39,440 --> 01:06:41,330 یہ تھوڑا پریشان کن ہے اور جہاں یہ ہے ذہنی طور پر، آپ کی ضرورت کی وجہ سے 1385 01:06:41,330 --> 01:06:43,000 wraparound کو ہینڈل کرنے میں کس طرح پتہ. 1386 01:06:43,000 --> 01:06:46,870 >> لیکن خیال کا جراثیم یہاں اس کا ہے ہم سے دلچسپی ہے کہ wraparound ہے 1387 01:06:46,870 --> 01:06:51,480 اکثر ماڈیولر ریاضی کا مطلب ہے اور جدید آپریٹر، فیصد کی طرف سے، 1388 01:06:51,480 --> 01:06:55,140 اگر آپ ایک بڑی قیمت سے جا سکتے ہیں جہاں واپس صفر اور پھر ایک اور دو اور 1389 01:06:55,140 --> 01:06:58,650 تین اور پھر واپس کے ارد گرد صفر، ایک اور دو اور تو آگے تین اور 1390 01:06:58,650 --> 01:06:59,380 بار بار. 1391 01:06:59,380 --> 01:07:02,880 تو ہم ایسا کرنے کی تجویز طریقہ ہے ہم میں انڈیکس چاہتے ہیں کہ 1392 01:07:02,880 --> 01:07:05,850 تعداد جہاں کہا جاتا سرنی ہمارے integers کے جھوٹ. 1393 01:07:05,850 --> 01:07:10,740 لیکن وہاں حاصل کرنے کے لئے، ہم سب سے پہلے کرنا چاہتے ہیں قطار کا سائز لیکن جو کچھ بھی ہے 1394 01:07:10,740 --> 01:07:14,080 پھر اس پر شامل کرنے کے جو بھی فہرست کے سامنے ہے. 1395 01:07:14,080 --> 01:07:17,880 اور اس کے اثرات پر ہم سے ڈال دیا ہے حق قطار میں پوزیشن اور 1396 01:07:17,880 --> 01:07:20,970 فرض نہیں ہے کہ لائن میں پہلے شخص شروع میں ہے، جس میں انہوں نے یا 1397 01:07:20,970 --> 01:07:24,130 وہ بالکل ہو سکتا ہے تو ہم یہ بھی سب کو منتقل کر رہے تھے. 1398 01:07:24,130 --> 01:07:26,710 لیکن ہم صرف کام پیدا کر رہے ہیں خود اپنے لئے ہم نے تو 1399 01:07:26,710 --> 01:07:27,800 اس مخصوص راستہ. 1400 01:07:27,800 --> 01:07:29,330 >> تو ہم نے نسبتا آسان رکھ سکتے ہیں. 1401 01:07:29,330 --> 01:07:32,180 ہم یاد کرتے ہیں کہ ہم صرف قطار میں ایک int شامل. 1402 01:07:32,180 --> 01:07:35,850 اور پھر ہم صرف سچ واپس. 1403 01:07:35,850 --> 01:07:38,560 دریں اثنا، dequeue میں، ہم سے پوچھا آپ درج ذیل کے لئے. 1404 01:07:38,560 --> 01:07:42,260 اس طرح میں اس پر عملدرآمد ہے کہ یہ dequeues، کہ، ہٹا دیتا ہے اور واپسی ہے 1405 01:07:42,260 --> 01:07:44,190 قطار کے سامنے میں INT. 1406 01:07:44,190 --> 01:07:46,410 INT کو ہٹانے کے لئے، یہ کافی ہے اسے بھولنا. 1407 01:07:46,410 --> 01:07:47,650 آپ کو اس سا کی جگہ لے لے کرنے کی ضرورت نہیں. 1408 01:07:47,650 --> 01:07:48,820 تو یہ اصل میں اب بھی وہاں ہے. 1409 01:07:48,820 --> 01:07:51,930 بس ایک کی ہارڈ ڈرائیو پر ڈیٹا کی طرح، ہم صرف حقیقت کو نظر انداز کر رہے ہیں 1410 01:07:51,930 --> 01:07:52,970 یہ وہاں اب ہے. 1411 01:07:52,970 --> 01:07:55,520 ق خالی ہے اور اگر ہمیں چاہئے اس کی بجائے منفی 1 واپس. 1412 01:07:55,520 --> 01:07:56,750 تو اس صوابدیدی محسوس ہوتا ہے. 1413 01:07:56,750 --> 01:08:01,640 کیوں منفی 1 واپس اس کی بجائے باطل کی؟ 1414 01:08:01,640 --> 01:08:02,620 جی ہاں. 1415 01:08:02,620 --> 01:08:05,070 >> سامعین: Q ذخیرہ کرنے کا ہے مثبت اقدار. 1416 01:08:05,070 --> 01:08:10,950 آپ کو صرف مثبت اقدار کی دکان سے (ق) میں، منفی ایک غلطی ہے. 1417 01:08:10,950 --> 01:08:11,510 >> DAVID J. MALAN: ٹھیک ہے، سچ ہے. 1418 01:08:11,510 --> 01:08:14,850 ہم صرف مثبت ذخیرہ کرنے کر رہے وجہ اقدار یا صفر، تو یہ ٹھیک ہے 1419 01:08:14,850 --> 01:08:18,050 ایک پرہری کے طور پر ایک منفی قدر واپس قیمت، ایک خاص علامت. 1420 01:08:18,050 --> 01:08:21,630 لیکن آپ کو، وہاں کی تاریخ پھر سے لکھنا کر رہے ہیں کیونکہ ہم صرف کر رہے ہیں کی وجہ سے 1421 01:08:21,630 --> 01:08:25,890 غیر منفی اقدار کو واپس لوٹنے ہم چاہتے ہیں کیونکہ ہے 1422 01:08:25,890 --> 01:08:27,670 ایک پرہری قیمت ہے. 1423 01:08:27,670 --> 01:08:32,617 تو زیادہ خاص طور پر، کیوں نہیں صرف غلطیوں کے معاملات میں جھوٹے واپس؟ 1424 01:08:32,617 --> 01:08:33,099 جی ہاں. 1425 01:08:33,099 --> 01:08:35,510 >> سامعین: آپ ناکام رہے ہیں ایک عددی واپس. 1426 01:08:35,510 --> 01:08:36,630 >> DAVID J. MALAN: بالکل. 1427 01:08:36,630 --> 01:08:38,569 سی ہو جاتا ہے جہاں یہ ہے خوبصورت کامحدود. 1428 01:08:38,569 --> 01:08:40,590 اگر آپ جا رہے ہیں کہہ رہے ہیں ایک int واپس، آپ کو مل گیا ہے 1429 01:08:40,590 --> 01:08:41,279 ایک int واپس. 1430 01:08:41,279 --> 01:08:43,689 آپ کو پسند ہیں حاصل کرنے اور واپس لوٹنے شروع نہیں کر سکتے ایک bool یا فلوٹ یا 1431 01:08:43,689 --> 01:08:45,040 سٹرنگ یا اس طرح کچھ. 1432 01:08:45,040 --> 01:08:49,370 اب، دریں اثنا، جاوا اسکرپٹ اور پی ایچ پی اور کچھ دیگر زبانوں میں کر سکتے ہیں، حقیقت میں، 1433 01:08:49,370 --> 01:08:51,310 آپ کو مختلف واپس لوٹنے ہے اقدار کی اقسام. 1434 01:08:51,310 --> 01:08:54,819 اور اصل میں، مفید ہو سکتا ہے جہاں آپ کو مثبت ints کے، سے zeros واپس کر سکتے ہیں، 1435 01:08:54,819 --> 01:08:59,439 منفی ints کے، یا جھوٹے یا شہوت انگیز null بھی غلطی کی نشاندہی کرنے کے لئے. 1436 01:08:59,439 --> 01:09:01,890 لیکن ہم نہیں ہے سی میں استرتا 1437 01:09:01,890 --> 01:09:04,569 >> تو dequeue کے ساتھ، جو ہم ہے ایسا کرنے کی تجویز - 1438 01:09:04,569 --> 01:09:07,350 1439 01:09:07,350 --> 01:09:09,830 >> روب Bowden: آپ جھوٹے واپس آ سکتے ہیں. 1440 01:09:09,830 --> 01:09:13,189 یہ ہیش صرف یہ ہے کہ جھوٹی ہے صفر جھوٹے کی وضاحت. 1441 01:09:13,189 --> 01:09:16,000 تو آپ جھوٹے واپس اگر، آپ کو صفر پر آرہے ہیں. 1442 01:09:16,000 --> 01:09:25,470 اور صفر، ہمارے قطار میں ایک درست بات ہے منفی 1 نہیں ہے جبکہ اگر 1443 01:09:25,470 --> 01:09:27,000 جھوٹے منفی 1 ہوا. 1444 01:09:27,000 --> 01:09:29,972 لیکن آپ کو بھی نہیں ہونا چاہئے معلوم ہے کہ کرنے کی ضرورت ہے. 1445 01:09:29,972 --> 01:09:32,399 >> DAVID J. MALAN: ہے کیوں میں نے یہ نہیں کہا. 1446 01:09:32,399 --> 01:09:36,450 >> روب Bowden: لیکن یہ سچ نہیں تھا تم جھوٹے واپس نہیں کر سکتے ہیں. 1447 01:09:36,450 --> 01:09:37,700 >> DAVID J. MALAN: اس بات کا یقین. 1448 01:09:37,700 --> 01:09:40,920 1449 01:09:40,920 --> 01:09:44,240 تو dequeue، ہم قبول نوٹس اس کی دلیل کے طور پر خالی. 1450 01:09:44,240 --> 01:09:45,479 ہم نہیں ہیں اور اس وجہ سے ہے کہ اندر کچھ بھی گزر 1451 01:09:45,479 --> 01:09:48,359 ہم صرف عنصر کو خارج کرنا چاہتے قطار کے سامنے میں. 1452 01:09:48,359 --> 01:09:49,819 تو ہم کس طرح ایسا کرنے کے بارے میں جانا ہے؟ 1453 01:09:49,819 --> 01:09:51,290 ٹھیک ہے، سب سے پہلے، ایسا کرنے دو فوری وویک چیک. 1454 01:09:51,290 --> 01:09:53,350 قطار سائز 0 ہے، تو ہے کیا جائے گا کوئی کام نہیں. 1455 01:09:53,350 --> 01:09:54,210 1 منفی واپس. 1456 01:09:54,210 --> 01:09:54,800 کیا. 1457 01:09:54,800 --> 01:09:56,340 تو وہ اپنے پروگرام کے ایک چند لائنوں کے ہے. 1458 01:09:56,340 --> 01:09:58,180 تو صرف چار لائنوں رہے. 1459 01:09:58,180 --> 01:10:01,310 >> تو یہاں میں تدریج کرنے کا فیصلہ سائز. 1460 01:10:01,310 --> 01:10:04,620 اور مؤثر طریقے سے سائز decrementing میں بھول رہا ہوں مطلب یہ ہے کہ 1461 01:10:04,620 --> 01:10:06,010 وہاں کچھ ہے. 1462 01:10:06,010 --> 01:10:09,910 لیکن میں نے بھی اپ ڈیٹ کرنے کی ضرورت ہے جہاں کی تعداد کے سامنے ہیں. 1463 01:10:09,910 --> 01:10:11,620 تو ایسا کرنے کے لئے، میں نے کی ضرورت ہے دو چیزیں کرنے کے لئے. 1464 01:10:11,620 --> 01:10:16,390 میں سب سے پہلے کیا نمبر یاد کرنے کی ضرورت ہے قطار کے سامنے پر ہے، 1465 01:10:16,390 --> 01:10:17,860 میں اس چیز کو واپس کرنے کی ضرورت ہے. 1466 01:10:17,860 --> 01:10:20,910 تو میں نے غلطی سے بھول نہیں کرنا چاہتا اس کے بارے میں اور پھر اس کے اوپر لکھیں. 1467 01:10:20,910 --> 01:10:22,840 میں نے صرف ایک int میں یاد کرنے کے لئے جا رہا ہوں. 1468 01:10:22,840 --> 01:10:27,310 >> اور اب، میں اپ ڈیٹ کرنا چاہتے q.front +1 q.front کیا جائے گا. 1469 01:10:27,310 --> 01:10:30,070 اس میں پہلے شخص تھے تو اگر لائن، اب، میں 1 پلس کرنا چاہتے ہیں 1470 01:10:30,070 --> 01:10:31,930 لائن میں اگلے شخص کی طرف اشارہ. 1471 01:10:31,930 --> 01:10:33,420 لیکن میں نے اس wraparound کو ہینڈل کرنے میں ہے. 1472 01:10:33,420 --> 01:10:37,270 اور صلاحیت ایک عالمی مسلسل ہے، کہ مجھے اس بات کا یقین کرنے کے لئے اجازت دینے کے لئے جا رہا ہے 1473 01:10:37,270 --> 01:10:41,140 میں آخری شخص کو نقطہ کے طور پر لائن، modulo ہے آپریشن کو لے آئے گا 1474 01:10:41,140 --> 01:10:43,840 پر صفر کرنے کے لئے مجھے واپس قطار کے سامنے. 1475 01:10:43,840 --> 01:10:46,050 اور یہ کہ یہاں wraparound ہینڈل. 1476 01:10:46,050 --> 01:10:48,950 اور پھر میں (ن) واپس کرنے کے لئے آگے بڑھنے. 1477 01:10:48,950 --> 01:10:51,530 >> اب، سختی سے بات، میں نے نہیں کیا (ن) کا اعلان کرنا ہوگا. 1478 01:10:51,530 --> 01:10:53,880 میں نے اس پر قبضہ اور اس کو ذخیرہ کرنے کی ضرورت نہیں تھی عارضی طور پر، قیمت ہے کیونکہ 1479 01:10:53,880 --> 01:10:54,740 وہاں اب بھی. 1480 01:10:54,740 --> 01:10:57,490 تو میں نے صرف صحیح ریاضی کر سکتے ہیں سابق سربراہ کو واپس کرنے کی 1481 01:10:57,490 --> 01:10:58,450 قطار کے. 1482 01:10:58,450 --> 01:11:01,850 لیکن میں صرف یہ زیادہ واضح تھا محسوس کیا کہ اصل INT قبضہ کرنے کے لئے، اسے ڈال دیا 1483 01:11:01,850 --> 01:11:04,320 (ن) میں، اور پھر اس کو واپس وضاحت کے لئے، لیکن 1484 01:11:04,320 --> 01:11:05,735 سختی ضروری نہیں. 1485 01:11:05,735 --> 01:11:09,313 1486 01:11:09,313 --> 01:11:12,130 پسسٹ. 1487 01:11:12,130 --> 01:11:13,410 وہ سب کے سب میرے سر میں pronounceable ہیں. 1488 01:11:13,410 --> 01:11:15,940 1489 01:11:15,940 --> 01:11:19,110 >> روب Bowden: تو پہلا سوال بائنری درخت مسئلہ ہے. 1490 01:11:19,110 --> 01:11:22,140 تو پہلا سوال ہم، ہے ان کی تعداد دی. 1491 01:11:22,140 --> 01:11:27,160 اور ہم کسی نہ کسی طرح میں ان کو داخل کرنا چاہتے ہیں ان مراکز یہ ہے کہ اس طرح کی ایک 1492 01:11:27,160 --> 01:11:30,110 درست بائنری تلاش درخت. 1493 01:11:30,110 --> 01:11:36,260 تو ایک بات کے بارے میں یاد بائنری تلاش درخت یہ نہیں ہے یہ ہے کہ 1494 01:11:36,260 --> 01:11:39,800 صرف یہ ہے کہ بائیں بات کم اور بات ہے 1495 01:11:39,800 --> 01:11:41,120 حق زیادہ ہے. 1496 01:11:41,120 --> 01:11:44,580 یہ کرنے کی ضرورت ہے پورے درخت بائیں کم ہے، اور پورے درخت 1497 01:11:44,580 --> 01:11:45,740 درست کرنے کے لئے زیادہ ہے. 1498 01:11:45,740 --> 01:11:55,260 >> میں تو سب سے اوپر یہاں 34 ڈال دیا، اور اگر ایسا ہے تو میں یہاں 20 ڈال دیا، تو یہ تو درست ہے 1499 01:11:55,260 --> 01:11:56,970 اب تک، کیونکہ 34 یہاں. 1500 01:11:56,970 --> 01:11:57,920 20 بائیں طرف کی جا رہی ہے. 1501 01:11:57,920 --> 01:11:58,950 تو وہ کم ہے. 1502 01:11:58,950 --> 01:12:03,640 لیکن میں نے اس کے بعد، یہاں 59 نہیں ڈال سکتا کیونکہ 59 20 کے حق پر ہے، اگرچہ 1503 01:12:03,640 --> 01:12:06,140 یہ 34 کے بائیں طرف اب بھی ہے. 1504 01:12:06,140 --> 01:12:10,760 ذہن میں اس رکاوٹ کے ساتھ تو، شاید اس کو حل کرنے کا سب سے آسان طریقہ 1505 01:12:10,760 --> 01:12:14,330 مسئلہ ہے صرف ترتیب ان کی تعداد - 1506 01:12:14,330 --> 01:12:18,720 تو 20، 34، 36، 52، 59، 106. 1507 01:12:18,720 --> 01:12:21,640 اور پھر ان داخل بائیں سے دائیں. 1508 01:12:21,640 --> 01:12:23,390 >> تو 20 یہاں جاتا ہے. 1509 01:12:23,390 --> 01:12:24,630 34 یہاں جاتا ہے. 1510 01:12:24,630 --> 01:12:25,830 36 یہاں جاتا ہے. 1511 01:12:25,830 --> 01:12:29,360 52، 59، 106. 1512 01:12:29,360 --> 01:12:34,730 اور آپ کو بھی ساتھ سوچا ہو سکتا ہے کچھ میں plugging اور احساس، 1513 01:12:34,730 --> 01:12:38,830 اوہ، میں نے کافی تعداد میں نہیں ہے، انتظار کریں یہاں اس میں کو بھرنے کے لئے. 1514 01:12:38,830 --> 01:12:42,170 تو میں reshift کرنے کی ضرورت ہے میری راستے نوٹ کی جا رہی ہے. 1515 01:12:42,170 --> 01:12:47,490 لیکن اگر، آخری تین میں نوٹس بائیں سے دائیں جانب آپ پڑھ، اس میں ہے 1516 01:12:47,490 --> 01:12:48,740 بڑھتی ہوئی کے لئے. 1517 01:12:48,740 --> 01:12:52,150 1518 01:12:52,150 --> 01:12:56,540 >> تو اب، ہم اعلان کرنا چاہتے ہیں struct کے لئے جا رہا ہے 1519 01:12:56,540 --> 01:12:58,300 اس درخت میں نوڈس. 1520 01:12:58,300 --> 01:13:02,720 ایک بائنری درخت میں تو ہم کیا ضرورت ہے؟ 1521 01:13:02,720 --> 01:13:05,830 تو ہم قسم کی ایک قیمت ہے INT، تو کچھ INT قیمت. 1522 01:13:05,830 --> 01:13:07,220 میرے خیال میں ہمیں کہا جاتا ہے پتہ نہیں کیا حل میں یہ - 1523 01:13:07,220 --> 01:13:08,500 ن سیریز: Int. 1524 01:13:08,500 --> 01:13:13,570 ہم بائیں بچے پوائنٹر کی ضرورت اور دائیں بچے پوائنٹر. 1525 01:13:13,570 --> 01:13:17,540 تو یہ اس طرح نظر آئے جا رہا ہے. 1526 01:13:17,540 --> 01:13:20,510 اور یہ اصل میں اس سے پہلے دیکھتا ہوں دوگنا سے منسلک کب 1527 01:13:20,510 --> 01:13:25,090 فہرست چیزیں، تو کا نوٹس - 1528 01:13:25,090 --> 01:13:27,860 میں سکرال کرنے کے لئے جا رہا ہوں راستہ واپس نیچے مسئلہ 11. 1529 01:13:27,860 --> 01:13:30,980 1530 01:13:30,980 --> 01:13:36,390 >> تو، یہ اس کے لئے ایک جیسی دکھائی دیتی ہے نوٹس ہم صرف ان کو فون کرنے کی ہو سوائے 1531 01:13:36,390 --> 01:13:38,590 مختلف ناموں کے. 1532 01:13:38,590 --> 01:13:41,440 ہم اب بھی ایک عدد صحیح ہے قیمت اور دو اشارہ. 1533 01:13:41,440 --> 01:13:44,850 اس کی بجائے علاج کی صرف یہ ہے کہ اگلی بات کی طرف اشارہ کے طور پر اشارہ 1534 01:13:44,850 --> 01:13:47,955 اور گزشتہ بات، ہم علاج کر رہے ہیں اشارہ ایک بائیں بچے کی طرف اشارہ 1535 01:13:47,955 --> 01:13:49,205 اور دائیں بچے. 1536 01:13:49,205 --> 01:13:57,372 1537 01:13:57,372 --> 01:13:57,860 ٹھیک ہے. 1538 01:13:57,860 --> 01:13:59,650 تو یہ ہمارا struct نوڈ ہے. 1539 01:13:59,650 --> 01:14:03,920 اور اب، صرف تقریب ہم کرنے کی ضرورت ہے اس گزرنا ہے، عمل درآمد جس 1540 01:14:03,920 --> 01:14:08,320 ہم درخت، پرنٹنگ پر جانے کے لئے چاہتے ہیں، حکم میں درخت کی اقدار. 1541 01:14:08,320 --> 01:14:15,241 >> تو یہاں دیکھ، ہم پرنٹ کرنے کے لئے چاہتے ہیں 20، 34، 36، 52، 59، اور 106. 1542 01:14:15,241 --> 01:14:17,970 کس طرح ہم نے اس کو پورا کرتے ہیں؟ 1543 01:14:17,970 --> 01:14:18,890 تو یہ خوبصورت اسی طرح کی ہے. 1544 01:14:18,890 --> 01:14:22,910 آپ ماضی کے امتحان میں دیکھا تو مسئلہ آپ کو پرنٹ کرنے کے لئے کرنا چاہتا تھا 1545 01:14:22,910 --> 01:14:25,940 درمیان میں کوما کے ساتھ پورے درخت سب کچھ، یہ بھی اصل میں تھا 1546 01:14:25,940 --> 01:14:27,320 اس سے آسان. 1547 01:14:27,320 --> 01:14:30,950 تو یہاں حل ہے. 1548 01:14:30,950 --> 01:14:33,110 یہ نمایاں طور پر آسان تھا آپ تکراری طور پر کیا تو. 1549 01:14:33,110 --> 01:14:36,650 کسی کو بھی کرنے کی کوشش کی تو مجھے پتہ نہیں iteratively ایسا کرنے کے لئے. 1550 01:14:36,650 --> 01:14:38,340 >> لیکن سب سے پہلے، ہم ہماری بنیاد کیس ہے. 1551 01:14:38,340 --> 01:14:39,660 کیا جڑ خالی ہے؟ 1552 01:14:39,660 --> 01:14:40,610 اس وقت ہم صرف واپس جا رہے ہیں. 1553 01:14:40,610 --> 01:14:42,300 ہم کچھ بھی پرنٹ کرنے کے لئے نہیں کرنا چاہتا. 1554 01:14:42,300 --> 01:14:45,940 تو ہم گزرنا جا رہے ہیں تکراری طور پر نیچے. 1555 01:14:45,940 --> 01:14:48,140 پورے بائیں subtree پرنٹ. 1556 01:14:48,140 --> 01:14:51,440 تو کم سب کچھ پرنٹ اپنے موجودہ قیمت سے. 1557 01:14:51,440 --> 01:14:53,930 اور پھر میں نے اپنے آپ کو پرنٹ کرنے کے لئے جا رہا ہوں. 1558 01:14:53,930 --> 01:14:57,310 اور پھر میں نیچے recurse جا رہا ہوں میری پورے حق subtree، تو سب کچھ 1559 01:14:57,310 --> 01:14:58,810 میری قیمت سے زیادہ. 1560 01:14:58,810 --> 01:15:03,870 اور یہ پرنٹ کرنے کے لئے کی جا رہی ہے کے لئے میں سب کچھ. 1561 01:15:03,870 --> 01:15:05,860 کس طرح یہ اصل سوال کہ کو accomplishes؟ 1562 01:15:05,860 --> 01:15:09,892 1563 01:15:09,892 --> 01:15:12,545 >> سامعین: میں ایک سوال ہے [اشراوی] پر. 1564 01:15:12,545 --> 01:15:15,090 1565 01:15:15,090 --> 01:15:23,550 >> روب Bowden: قریب تو ایک ہی راستہ کسی بھی پنراورتی مسئلہ صرف سوچنا ہے 1566 01:15:23,550 --> 01:15:26,275 یہ پسند ہے کے بارے میں سوچنا ہے کے بارے میں تمام کونے کے مقدمات. 1567 01:15:26,275 --> 01:15:32,150 1568 01:15:32,150 --> 01:15:38,110 تو ہم چاہتے ہیں کہ غور اس پورے درخت کو پرنٹ. 1569 01:15:38,110 --> 01:15:42,030 تو ہم پر توجہ مرکوز کرنے جا رہے ہیں یہ خاص طور پر نوڈ ہے - 1570 01:15:42,030 --> 01:15:43,740 36. 1571 01:15:43,740 --> 01:15:47,420 پنراورتی کالوں، ہم دکھاوا لوگ صرف کام. 1572 01:15:47,420 --> 01:15:54,000 تو یہاں، پر اس پنراورتی کال گزرنا، ہم بھی سوچ کے بغیر 1573 01:15:54,000 --> 01:15:58,640 اس کے بارے میں، صرف بائیں پار کرنیوالوں تین، پہلے ہی 20 پرنٹ یہ تصور 1574 01:15:58,640 --> 01:16:00,730 اور ہمارے لئے 34. 1575 01:16:00,730 --> 01:16:03,350 اور پھر جب ہم آخر میں تکراری پر گزرنا فون 1576 01:16:03,350 --> 01:16:07,890 ٹھیک ہے، یہ درست طریقے سے پرنٹ گا 52، 59، اور ہمارے لئے 106. 1577 01:16:07,890 --> 01:16:13,620 >> تو یہ 20، 34 پرنٹ کر سکتے ہیں کہ دیا، اور دیگر، 52، 59، 108 پرنٹ کر سکتے ہیں 1578 01:16:13,620 --> 01:16:17,180 ہم کیا کرنے کے قابل ہو جائے کرنے کی ضرورت ہے پرنٹ ہے اس کے وسط میں ourself کی. 1579 01:16:17,180 --> 01:16:21,250 تو ہم سے پہلے سب کچھ باہر پرنٹ. 1580 01:16:21,250 --> 01:16:27,710 ourself کی پرنٹ، تو موجودہ نوڈ پرنٹ 36، باقاعدہ printf کا، اور اس کے بعد 1581 01:16:27,710 --> 01:16:31,170 ہمارے بعد سب کچھ پرنٹ. 1582 01:16:31,170 --> 01:16:32,730 >> DAVID J. MALAN: یہ کہاں تکرار ہے بہت خوبصورت ہو جاتا ہے. 1583 01:16:32,730 --> 01:16:36,270 یہ ایمان کی یہ حیرت انگیز چھلانگ جہاں آپ کے کام کی tiniest سا کرتے. 1584 01:16:36,270 --> 01:16:38,460 اور پھر آپ ہیں کسی اور باقی. 1585 01:16:38,460 --> 01:16:40,180 اور یہ کہ کسی اور آپ کو، ستم ظریفی یہ ہے، ہے. 1586 01:16:40,180 --> 01:16:44,260 1587 01:16:44,260 --> 01:16:48,360 سنگین براانی پوائنٹس کے لئے، اگر ایسا ہے تو اگر آپ کے سوالات پر سکرال - 1588 01:16:48,360 --> 01:16:50,530 >> روب Bowden: سوال؟ 1589 01:16:50,530 --> 01:16:53,490 >> DAVID J. MALAN: اور نیچے تھوڑا جہاں کی تعداد، کسی کو بھی جانتا ہے 1590 01:16:53,490 --> 01:16:55,190 ان کی تعداد سے آئے؟ 1591 01:16:55,190 --> 01:16:56,610 >> روب Bowden: میں لفظی کوئی اندازہ نہیں ہے. 1592 01:16:56,610 --> 01:16:59,794 >> DAVID J. MALAN: وہ ظاہر کوئز میں. 1593 01:16:59,794 --> 01:17:01,150 >> سامعین: وہ ایک سے نمبر ہیں؟ 1594 01:17:01,150 --> 01:17:01,910 >> DAVID J. MALAN: وہ تعداد. 1595 01:17:01,910 --> 01:17:03,260 ایک چھوٹی سی ایسٹر انڈے. 1596 01:17:03,260 --> 01:17:08,100 تو میں آن لائن دیکھ کر آپ کو ان لوگوں کے لئے گھر، آپ کو ای میل کے ذریعے ہم سے بتا سکتے ہیں اگر 1597 01:17:08,100 --> 01:17:12,680 heads@CS50.net کیا اہمیت ان بار بار چلنے والی چھ تعداد ہیں 1598 01:17:12,680 --> 01:17:18,560 1 کوئز کے دوران، ہم آپ کے شاور گا فائنل میں حیرت انگیز توجہ کے ساتھ 1599 01:17:18,560 --> 01:17:21,610 لیکچر اور کشیدگی کی گیند. 1600 01:17:21,610 --> 01:17:25,460 1601 01:17:25,460 --> 01:17:27,790 ٹھیک ٹھیک، اچھا. 1602 01:17:27,790 --> 01:17:29,570 >> روب Bowden: کوئی آخری سوال کوئز پر کچھ کے بارے میں؟ 1603 01:17:29,570 --> 01:17:32,608