>> [سیکشن 9] [زیادہ آرام دہ]
[روب Bowden] [ہارورڈ یونیورسٹی]
[یہ CS50 ہے.] [CS50.TV]
>> ٹھیک ہے. بنیادی طور پر آج یہ کچھ سوال پوچھنا تمام لوگ آپ پر منحصر ہے.
میں نے کچھ موضوعات کے ساتھ گھومنا کرنے کے قابل ہو سکتا ہے
کوئی بھی پوچھنا کا کوئی سوال ہے تو تھوڑا سا کے لئے.
امید ہے کہ آپ ایسا کرتے ہیں. کسی کا کوئی سوال ہے؟
شاید ماضی quizzes کی طرف سے، چیزوں کو آپ فی الحال کے ساتھ آرام دہ اور پرسکون نہیں ہو.
>> جی ہاں. >> [طالب علم] بفر اتپرواہ حملوں کے جا سکتا ہے؟ >> [روب] جی ہاں.
اہم مثال کے طور پر اصل میں یہاں ہو سکتا ہے.
بفر اتپرواہ حملوں کے پیچھے اہم معاہدے ہیں
ہم یہاں، کچھ بفر ہے.
چار C - صرف سائز 12 ہے -
لیکن اس وقت ہم نے اس کے بفر میں کچھ داخل کر رہے ہیں
لیکن ہم داخل کر رہے ہیں کتنا بالکل جانچ پڑتال نہیں.
یہاں ہم C میں strlen کی (بار) داخل کر رہے ہیں، لیکن جو طویل بار ہے کس طرح جانتا ہے.
یہ 12 حروف سے زیادہ طویل ہے تو یہ اس بفر اتپرواہ کی جا رہی ہے.
اس تصویر کو دیکھ کر -
آپ 61 لے تو آپ کو ترتیب کے اس طرح کے ساتھ بہت زیادہ واقف ہو جاؤ گے
اور محفوظ فریم پوائنٹر اور واپسی ایڈریس اور والدین کی معمول اسٹیک کے ساتھ نمٹنے
اور ان کی اصل چیزوں کے.
لیکن یہاں آپ کو صرف کہ ہم جاننے کی ضرورت ہے
ہمارے بفر کے لئے اس چھوٹی سی جگہ.
یہاں ہم C (0) ہے اور پھر ہم تو C، 1، 2، 3، 4، 5 اور ہے.
عام حالات کے تحت ہم معمول کے مطابق اس بفر بھرنے گا.
ہم ڈالا تو خوش 'ہم H-E-L-L-O / 0 پڑے گا،
اور اس کے بعد خالی جگہ کے صرف ایک گروپ.
ایک ہیکر کے لئے - اوہ، میں نے یہ مثال ہے لگتا ہے.
ایک ہیکر کے لئے ہم نے یہ کہاں کی طرح کچھ حاصل
کیا وہ خاص طور پر کرنے کی کوشش کر رہے ہیں
عام طور پر واپسی ایڈریس کی جگہ لے لے.
آپ کو ایک تقریب فون اور آپ کے اسٹیک فریم اسٹیک پر دھکیل دیا جاتا ہے جب بھی
کہ اسٹیک فریم کس طرح پتہ کرنے کی ضرورت ہے -
ٹھیک ہے، کہا گیا ہے کہ تقریب پر یہ کہا جاتا ہے کہ تقریب کے لئے واپس کرنے کے لئے کس طرح پتہ کرنے کی ضرورت ہے.
اہم کالز FOO تو،، FOO کو، اہم کرنے کے لئے واپس کرنے کی ضرورت ہے
اور تو ہے کہ اس کی واپسی کے ایڈریس کرتا ہے.
لیکن کیا ہیکر کیا جا رہا ہے ہے
ایک خصوصی واپسی ایڈریس کے ساتھ اس کی جگہ لے لے
پھر جہاں - لٹل بھارتی - یہ براہ راست نہیں ہے لیکن ہر بائٹ پیچھے کی طرف ہے.
یہ واپسی ایڈریس جہاں تک کمپیوٹر کے طور پر فکر مند ہے
اس پتے پر واپس لوٹنے FOO واپس لوٹنے کے برابر یا اہم ہے
یا جو کچھ بھی تقریب میں یہ کہا جاتا ہے.
تو یہ اس پتے پر واپس جا رہا ہے
تو اس پتے پر ہوتا ہے جس
جو یا تو کبھی کبھی کیا وہ یہاں واپسی ایڈریس کا استعمال
وہ جانتے ہیں کہ ایک مخصوص تقریب کے وہاں پہلے سے ہی ہے.
میں تقریب کہا جاتا ہے کیا یاد نہیں کر سکتے.
میں بعد میں اس کو دیکھتا ہوں.
>> یہاں وہ کیا کر رہے ہیں واپسی ایڈریس گزر رہا ہے
اسٹیک خود، اور یہ کسی حد تک عجیب ہے جہاں ہے
میموری جہاں کی مثالیں ہیں -
میموری صرف پڑھنے، پڑھنے لکھنے میں تقسیم، اور کارکردگی میموری کیا جا سکتا ہے
- ہم سے پہلے جہاں میموری صرف پڑھنے دیکھا ہے جہاں
میں نے چار * کا کہنا ہے کہ = خوش میں خوش تبدیل نہیں کر سکتے.
یہ صرف پڑھنے کی میموری.
کارکردگی میموری کے اس خیال بھی ہے
کارکردگی میموری آپ کے کوڈ کے متن کے ٹکڑے ہو جائے گا جہاں.
اپنے معمول کے پتے کی جگہ ترتیب میں تلاش -
مجھے لگتا ہے کہ ایک اچھی تصویر جا رہا ہے یقین ہے کہ -
یہ کام کرتا ہے - ہم یہاں ہمارے اسٹیک ہے جہاں. ہم ڈیٹا میموری ہے.
بنیادی طور پر اس پر توجہ نہ دیں. یہ ہماری ڈھیر ہے.
اور پھر ہم یہاں ہماری اہم پروگرام کوڈ ہے.
یہ ہم * = خوش چار کی طرح ہمارے ڈور ڈال جگہ ہے جہاں کی طرح ہے
اور یہ کہ صرف پڑھنے ہے.
لیکن آپ کو بھی کارکردگی کے طور پر اس اہم پروگرام کے کوڈ کو نشان زد کر سکتے ہیں.
اور تم نے کیا کر رہے ہیں یا آپ کے آپریٹنگ سسٹم کرتا ہے کہ اگر درست طریقے سے
پھر اس کی یاد میں صرف جگہ ہونا چاہئے
کوڈ ہے کہ اصل میں پھانسی کر سکتے ہیں
جس بفر اتپرواہ حملے کے اس طرح ہم یہاں پر ہے مطلب یہ ہے کہ
یہ یہاں ہمارے اسٹیک میں میموری پر عمل کرنے کی کوشش کر رہی ہے کیونکہ غیر موثر ہو جائے گا.
تصاویر سب سے پہلے ہیں نوٹس.
ہم اپنے اسٹیک بڑھتی ہوئی ہے.
یہاں اسٹیک نیچے بڑھ رہی ہے.
CS50 مقاصد کے لئے اسٹیک بڑھتا ہے.
>> یہ بفر اتپرواہ کے اس مخصوص قسم درکنار ممکن ہے
غیر کارکردگی علاقوں میں میموری کی یہ کارکردگی خطے کی طرف سے.
لیکن یہ صرف اس شاذ و نادر ہی کارکردگی میموری کارکردگی کے طور پر نشان لگا دیا گیا ہے کہ ایسا ہوتا ہے.
یہ صرف، صرف پڑھنے اور دوبارہ لکھنے جا استعمال کیا جاتا ہے کہ صرف چیزیں ہیں کے لئے جاتا ہے
تو یہ اب بھی بہت مؤثر ہے.
اور ہم یہاں ہم چاہتے ہیں جو کچھ بھی ڈال سکتے ہیں.
یہ اصل میں 61 اس سال میں ایک pset کے طور پر نہیں کیا گیا تھا،
لیکن آپ کو گزشتہ سال کی اس کی پیشکش یا کسی بھی گزشتہ سال پر نظر ڈالیں تو
ایک pset کے آپ خاص طور پر سمجھا جاتا ہے کہ یہاں کے کوڈ میں داخل کرنے کی توقع کر رہے ہیں
کچھ مخصوص قدر کو پرنٹ یا سے مختلف ہے کہ ایک قیمت واپس
پرنٹ کرنے کے لئے سمجھا جاتا ہے اس کی قیمت.
یا اس سے زیادہ چالاکی، یہ آپ کے فون یا لکھنے کے لئے چاہتا ہے -
، تو یہ یہاں تک واپس آ جائیں گے اور پھر آپ یہاں کچھ کوڈنگ پر عمل کریں گے
اور کناروں سے باہر آ کے cleverest تو اس ایڈریس کو واپس کرنے کے لئے استعمال کیا واپس آ جائیں گے.
ہم اس کی جگہ لے لے کرنے کی ضرورت ہے تو اگرچہ
یہاں آنے کے لئے، ہم اب بھی کہیں کہ واپسی ایڈریس یاد
ہم، اہم یا جو کچھ بھی کرنے کے لئے واپس کر سکتے ہیں تاکہ
ہم بھی چیزیں غلط ہو گیا کہ دیکھا کبھی نہیں کی طرح ہے اور یہ ہے.
لیکن چیزیں کہ شاید یہاں کے اندر ہم نے اپنے فون gelbroke جہاں معاملہ ہے ایسا ہی کیا.
حالات معمول کے طور پر جانے - ہم کچھ پروگرام کو چلانے اور چیزوں کو واپس لوٹنے کو ختم طرح
اس کے لئے واپس کرنے کے لئے کرنا ہے جو کچھ بھی، لیکن اس دوران میں
آپ کو پورے آپریٹنگ سسٹم کو تباہ کرنے کے لئے منظم.
کوڈ بفر کناروں سے باہر آ کے بارہ میں یا اصل میں اس کا فائدہ اٹھاتے ہوئے معلوم کرنے کے لئے کی ضرورت نہیں ہے.
آپ کو اس کے بنیادی نظریات جاننے کی ضرورت ہے پر overflowed کیا جا رہا ہے کہ بفر ہے،
اور یہ ہم جانچ پڑتال نہیں کر رہے ہیں کیونکہ اس پر overflowed کیا جا سکتا ہے کی وجہ سے ہے
ہم اس کی حد کے اندر اندر اصل میں ہیں.
>> [طالب علم] یہ صرف حد کی جانچ پڑتال کی ہے کی روک تھام کے لئے حل کیا ہے؟
[روب] جی ہاں. اس صورت میں حل ہو جائے گا
بار کے strlen کی 12-1 سے زیادہ ہے تو آپ کہہ سکتے ہیں یا تو -
آپ کو آخر میں / 0 کی ضرورت ہے -
یا آپ کو دستی طور پر لوپ کے لئے ایک ہے کہ صرف کاپیاں پہلے 11 حروف، کر سکتے ہیں
یا آپ اصل میں آپ اس بفر اتپرواہ نہیں ہے اس بات کا یقین کرنے کے لئے کی جانچ پڑتال کر رہے ہیں جہاں کچھ.
>> دیگر سوال؟ جی ہاں؟
[طالب علم] کی کوشش کرتا ہے اور شاید پروگرامنگ (اشراوی) کے بارے میں کچھ کے بارے میں بات کر سکتے ہیں.
[روب] جی ہاں.
اصل پروگرام -
ہم آپ کو امتحان پر ایک trie کا ایک عمل درآمد کرتے ہیں کبھی نہیں کرے گا
یہ ہیش میزیں کیا وہ لوگ جو غیر منصفانہ ہو گا کیونکہ.
اور اسی طرح ہم نے آپ کو امتحان پر ایک ہیش میز پر عمل درآمد کبھی نہیں کرے گا
اس کی کوشش کرتا ہے جو ان لوگوں کے لئے غیر منصفانہ ہو گا کیونکہ.
آپ بہر حال ایک trie یا ایک ہیش ٹیبل کے struct کی یا جو کچھ بھی کے struct کی پتہ ہونا چاہیئے.
یہ اصل میں ہم نے دیکھا ہے اعداد و شمار کے ڈھانچے کی کسی بھی قسم کی سچ ہے.
لنک کی فہرست، سجا دیئے skews، بائنری درخت -
آپ کو دل کی طرف سے ان لوگوں کو structs کی وضاحت کرنے کے قابل ہونا چاہئے.
ایک trie - آپ کیا کرنے کی ضرورت ہو گی صرف ایک ہی چیز کا مطلب ہے کہ ہم آپ کو دے دیں گے ہو سکتا ہے
کچھ لفظ یا کچھ اور ہم اس trie کے تعمیر کہیں گے -
ہم آپ کے الفاظ کی شاید ایک سیٹ دے دیں گے
ہم اس ڈکشنری کی نمائندگی کرتا ہے ایک trie کی تعمیر کی طرح ہو.
>> کی ہماری لغت بلی اور کتا بنا دو.
trie کے خیال ہے کہ ہم اس صف کے ساتھ باہر شروع ہے -
26 سلاٹس -
اور ہر ایک سلاٹ میں سلاٹ کی اصل انڈیکس ہم سے فکر مند ہیں خط کے مساوی ہے.
تو یہاں ہم ہمارے trie میں بلی داخل کرنے کی کوشش کر رہے ہیں
پہلے کردار کی جا رہی ہے جس میں 'سی' ہے ایک 0 ہے تو B 1 ہے، C 2 ہے. '
ہم دوسرے انڈیکس میں جانے کے لئے جا رہے ہیں،
اور ہم اس سے دور ایک trie پیدا کرنے کے لئے جا رہے ہیں.
ہم 26 سلاٹ لئے جا رہے ہیں.
اور پھر ہم انڈیکس بلی کے دوسرے کردار کے لئے جا رہے ہیں.
یہ 0 اسپاٹ جا رہا ہے جو 'ایک' ہے.
اور یہ کہ 26 مقامات کے کرنے کے لئے جا رہا ہے.
اس کے بعد ہم 'ٹی' پر جائیں اور ہم بھی نیچے آ اصل میں اس قسم کی ضروری ہے کہ جو ہو گا
کیونکہ - یہ یہاں آئے ہیں دو. یہاں 'T' کے لئے ہمارے trie ہے.
یہ 'T' 19 انڈیکس ہے کا کہنا ہے کہ دو.
کوشش کرتا ہے کے بارے میں یاد کے لئے اہم بات یہ ہے کہ آپ کو صرف یہ اشارہ کا ٹریک رکھنے کے نہیں کر سکتے ہیں.
تم نے بھی یہ اصل میں ایک لفظ کے آخر ہے کہ کے ٹریک رکھنے کے لئے ہے.
تو، یہاں کے اندر ہم کا کہنا ہے کہ پرچم کے کچھ قسم کی ضرورت ہے
ٹھیک ہے، یہ اصل میں ایک لفظ کے آخر ہے.
ہم بعد ہماری لغت میں تباہ کن داخل کرنے کی کوشش کریں تو وجہ
اسی سے شروع ہونے والے 3 حروف ہے جو
لیکن مزید پر جاتا ہے ہم اس ایک لفظ کے آخر ہے کہ تسلیم کرنے کی ضرورت ہے.
ہم 'اے' کو دیکھنے کے لئے کی کوشش کرتے ہیں یا متبادل کے طور پر ہو سکتا ہے ایک لفظ نہیں ہے
لیکن ہم یہاں پھر ہم کو حاصل -
یا اسے سی ہو جائے گا اور پھر ہم ایک میں نظر آئے گا -
ہم کو تسلیم کرنے کی ضرورت ہے کہ اس نوڈ سے باہر آنے والے ایک پوائنٹر ہے اگرچہ
اس لفظ کے آخر کی نمائندگی نہیں کرتا.
>> تو، اس کا کیا مطلب ہے - کیا تم کہتے جا رہے تھے؟
کہ ہماری struct کی طرح لگتا کیا مطلب ہے؟
[Student کی] یہ ایک bool تھے یا نہیں تھے تو 26 طویل اور ہے کہ اشارہ کے ایک صف ہے.
[روب] جی ہاں. لہذا، ہم ایک struct trie کے * اشارہ پڑے گا - یہاں ہم [26] پر کہیں گے
اور پھر یہاں پر نیم وقفہ.
لیکن pset پر، ہم بھی اپوسٹروفاس لئے اکاؤنٹ کی ضرورت،
جس سے آپ انڈیکس 27 یا کچھ اور کے ساتھ apostrophe کے کہ سخت کوڈ کی ضرورت ہے کا مطلب ہے.
لیکن یہاں ہم صرف کے بارے میں 26 کی دیکھ بھال.
اور پھر ہم شاید ایک میں چار یا bool کے کی ضرورت ہے - یہ لفظ ہے کہتے ہیں.
کہ میں تم نے کبھی کی کوشش کرتا ہے کے بارے میں جاننے کی ضرورت ہو گی لگتا ہے کہ 3 چیزوں کے 2 ہے -
ان کی تعمیر، ان میں سے struct کی، اور آخری بات یہ ہے کہ ان میں سے رن وقت ہے.
یا ایک trie میں تلاش - >> ایک trie کی رن ٹائم کیا ہے؟
ہم اس K ہم دیکھ ہو لفظ کی لمبائی ہے جہاں اے (K) کا کہنا ہے کہ جہاں یہ ہے،
لیکن ایک ہی وقت میں ہم کہتے ہیں - کم از کم 5 pset کے ہجے کنندہ کے لئے - ہم کا کہنا ہے کہ
لغت میں سب سے طویل لفظ 45 حروف ہے، تو یہ بنیادی طور پر ہے
مسلسل وقت ہے جس میں 45 اے.
تو، ایک پابند بالائی تو آپ سب سے طویل لفظ پر ہے -
یا اس سے بھی انگریزی لغت کی طرح - آپ کے سب سے طویل لفظ پر پابند بالائی ہے.
یا کسی بھی لغت - ایک سب سے طویل آپ کے اوپری لفظ پر پابند ہے.
کوئی بات نہیں آپ کیا کر رہے ہیں مسلسل وقت ہے،
اصل میں چل رہا کے درمیان ایک فرق کا کہنا ہے کہ کیونکہ کشمیر کے O اچھا ہے
صرف 3 حروف تک الفاظ ہیں جس میں ایک حروف تہجی کے مقابلے میں 45 کردار لفظ.
اس کے بارے میں ایک اور بات یہ ہے کہ -
اوہ، کیونکہ صرف 45 ہماری سب سے طویل لفظ پر ہوتا ہے یہ کہتے ہوئے کہ
ایک ہی وقت میں کی ایک الگورتھم این اے کا کہنا ہے کہ کیونکہ قسم کے پاگل ہے
ٹھیک ہے ٹھیک ہے، میموری صرف 2 ^ 32 بائٹس تک کی حمایت کرتا ہے کیونکہ،
تو (ن) سب سے زیادہ 4 ارب میں ہے اور یہی وجہ ہے کہ کچھ مواقع پر ہے، جو مسلسل وقت ہے
یہ ایک پابند بالائی ہے جہاں اس طرح کی چیز کا کہنا ہے کہ پاگل ہے
سب کچھ مسلسل وقت ہے کیونکہ ہم صرف مسلسل وقت کو کم کر سکتے ہیں
تم اس طرح میں اس کے لگتا ہے کہ جب.
لیکن ہم شاید ان میں سے دونوں قبول نہیں کرے گا.
کسی بھی صورت میں یا تو وضاحت ہے کہ اے (1) آپ کو لفظ کے اوپری جکڑے ہوئے لمبائی ہے کا مطلب ہے؛
اے (K) لفظ کے آپ کی حد کے کا مطلب ہے -
ٹھیک ہے، K لفظ کی لمبائی ہے.
>> جی ہاں. >> [Student کی] bool کے ہے - کیونکہ آپ اپنے trie جب
آپ کو بلی جائیں گے اور اس کے بعد آپ کو اگلے پوائنٹر جانا - یہ تھا کی طرح لگ رہا تھا
یہ سچ برابر تو آپ کو بتا - آپ کو اس ٹی کے ساتھ کی طرح میں سچ ڈال دیں گے؟
[روب] کی اس کیس ہے جہاں آپ کو صرف کرنے کی کوشش کریں اور اس کے ساتھ آ سکتے ہیں مثالوں کی ایک بہت
سادہ اور / یا انتہائی مثالیں اور کیا یہ ہو، تو لفظ 'ایک' کے بارے میں سوچنا چاہئے.
ہماری اصل trie میں -
ہم یہاں ایک 1 ڈال کرنا چاہتے ہیں، یا ہم یہاں ایک 1 ڈال چاہتے ہیں.
میں آخر میں یہ شاید یا تو ہو / یا کہ کہیں گے.
میں ایک وجہ کے بارے میں سوچنا نہیں کر سکتے ہیں - یا واقعی آپ wouldn't -
آپ کو بھی اتنی دور جانے کی ضرورت نہیں ہے کیونکہ میں وہاں نیچے ڈال نہیں کریں گے کی وجہ سے ہے.
ہم اس trie کے مختص کرنے کی ضرورت کبھی نہیں.
ہم صرف وہاں 1 ڈال دیا.
یہ اب بھی شہوت انگیز null اشارہ ہے.
ہم صرف ایک حروف لئے جا رہے ہیں
صرف استعمال کیا جاتا ہے کے طور پر اس خط کے موقع پر ایک دوسرے trie کے نیچے فراہم کرنے کے لئے کوئی وجہ نہیں ہے.
اسی طرح ہم 'A' وہاں ڈال دیا تھا تو
تو ضروری ان میں سے سب صرف تمام اوقات میں 0 ہو جائے گی.
>> [Student کی] لیکن ہم اس 'A' کی طرف اشارہ کرے گا کہ ایک شروع ہونے والے trie کے ضرورت نہیں ہے؟
[روب] ہم نے کچھ عالمی یا کچھ struct کی trie کے * T ہے
جس میں یہاں اشارہ ہے، لیکن یہ صرف ایک پوائنٹر ہے.
یہ اس کی طرف اشارہ ہے کہ ایک مکمل تیار trie کے نہیں ہے.
[Student کی] ٹھیک ہے. لفظ میں کے ساتھ - ہم کس طرح خط 'i'تفویض کرے گا؟
[روب] اس سوال کہ جواب دینے کے کیا جا سکتا ہے. رکو.
- یہ ایک مسئلہ ہے جہاں میں اور خود کی ایک trie ہے
میں pset کے یہ لکھا ہوتا ہے جس طرح سے معلوم نہیں ہے.
گزشتہ struct کی خراب تھا.
اور ایک پوائنٹر - لیکن ہم یہ بھی struct نوڈ ایک bool ہے کر سکتے ہیں -
آپ کو یہ لکھ سکتے ایک سے زیادہ طریقوں اصل میں نہیں ہے.
متبادل طور پر ایک trie ایک struct کرنے کی ضرورت نہیں ہے.
* typedef نوڈ - یہ بھی trie کے ہو سکتا ہے -
نوڈ [26] ایک trie ہے، اور اس struct نہیں ہے.
pset کے آپ کے لئے امید کی جاتی ہے کہ جس طرح کے بارے میں سوچ کی کوشش کر رہا ہوں - اب وہاں جا رہا ہے.
[Student کی] میں اس کا جائزہ لینے کے سیشن نکالا اور میں وہ صرف جانے لگتا ہے کہ -
جیسے آپ کو ایک ایک تو آپ کو اگلے جانا ہے تو - >> [روب] یہ وہ ایسا کس طرح ہے؟
[] طالب علم اور اس کے بعد ایک سچے وہاں اگر یہ کام نہیں کرتا -
[روب] جی ہاں. یہ کام کرتا ہے. یہ خلائی برباد کرتا ہے -
آپ کو ضروری آپ کو پہلی جگہ میں کی ضرورت نہیں کرے گا trie کے ایک پوری دوسرے سطح ہے.
یہاں یہ ہر ایک کے ساتھ بدسورت ہو رہی ہے -
بنیادی طور پر کیا میں یہاں کرنے کی کوشش کر رہا ہوں ساتھی ہے -
اس کی بجائے آپ کی کوشش کرتا ہے 26 اشارہ ہونے کے،
یہ تو 26 bool کے پوائنٹر، bool کے پوائنٹر، bool کے پوائنٹر، اور ہے.
>> [طالب علم] 2 arrays کے نہیں کر سکتے ہیں؟ bools اور اشارہ کی ایک صف کے ایک صف؟
[روب] آپ لیکن اس وقت آپ کی ضرورت چاہتے ہیں کر سکتے ہیں -
Booleans کے اور اشارہ کے 2 arrays کے.
اس کے بعد آپ booleans کے آپ کے صف کی تعمیر کرنے کی ضرورت ہو گی -
booleans کے اپنے صف trie کے جتنا بڑا کرنے کی ضرورت ہے
آپ کو صرف 26 Booleans کے نہیں کر سکتے ہیں کی وجہ سے.
یہ ہر ممکن ساتھ بڑھ ہے -
کی طرح اپنے trie سے زیادہ 26 صحیح یا غلط ممکن الفاظ ہیں.
اس وقت وہ اس کے ساتھ ساتھ صرف اپنے trie کے ساتھ اگنے والے ایک struct کی ہو سکتی ہے.
میں یہاں کیا کرنا چاہتے ہیں - کیونکہ یہ درست نہیں لگتا؟
تو، trie کے * T -
آپ typedef (نوڈ *) [26] trie کے کر سکتے ہیں،
کہ میں دیکھ رہا ہوں نحو ہو سکتا ہے.
اور یہ صرف ایک باقاعدہ trie کے ہونا چاہئے.
مجھے یقین نہیں ہے.
لیکن یہ ہم جائزے میں یہ کیا طریقہ ہے، تو اس کا بھی، بالکل ٹھیک کام کرتا ہے.
اگر یہ ہے جس صورت میں صرف bool کے لفظ ہے اور اس کے بعد 26 کے ایک صف
تو آپ کو اگلے سطح پر جانے کے لئے ہے.
میں نے ایسا کرے گا جس طرح کے بارے میں سوچتا ہوں.
>> دیگر سوال؟
[Student کی] میں کچھ کے بارے میں سوالات پوچھ سکتے ہیں؟ >> [روب] جی ہاں.
[طالب علم] کیا فرق ہے پر جا سکتے ہیں اور جب آپ ایجیکس بمقابلہ jQuery کے استعمال کروں؟
[روب] وہ مکمل طور پر مختلف اور خود کے ہیں.
jQuery ایجیکس کو فعال کرتا ہے. یہ ہمارے ایجیکس کے کچھ آسان استعمال دیتا ہے.
لیکن ایجیکس جاوا اسکرپٹ کے ساتھ بھیج دیا آتا ہے. جاوا اسکرپٹ ایجیکس صلاحیتوں ہے.
میں کرنا چاہتے ہیں جب میں نے ایک صفحہ پر پہلے سے ہی ہوں اور موازنہ کرنا ایجیکس کا مطلب ہے -
میں کچھ پر کلک کریں جب میں اس نئی معلومات ڈاؤن لوڈ کرنے کے صفحہ دوبارہ لوڈ کرنے کی ضرورت نہیں ہے.
میں صرف اس نئی معلومات کی درخواست.
آپ فیس بک یا کچھ میں اس میں دیکھ سکتے ہیں.
نیٹ ورک کا معائنہ.
اس سکیڑیں.
یہاں ہم نے ان تمام درخواستوں کو ہو رہے ہیں دیکھتے ہیں کہ.
اب میں پر کلک کریں - جب میں نے بھی کسی بھی چیز پر کلک کرنے سے پہلے ٹھیک ہے، یہ ایجیکس کر رہی ہے.
میں اس پر کلک کریں، تو اسے یہاں نیچے کی درخواستوں کا ایک گروپ بنانے کے لئے جا رہا ہے
صرف ان درخواستوں بنا ہے - اوہ، اب یہ یہاں ہے.
کی تازہ کاری کرتے ہیں.
یہ پھر سے کرتے.
ہم ان تمام درخواستوں کو حاصل ہے کہ دیکھ، لیکن یہ اب بھی صفحے کے لوڈ کے عمل میں ہو سکتا ہے.
فیس بک کا صفحہ بھری ہوئی ہے کے بعد بھی ان کی مسلسل درخواستوں کر رہا ہے نوٹس.
میں یہاں پر کلک کریں اور اگر اس میں کچھ اعداد و شمار کے لئے کچھ زیادہ درخواستوں پر بنا دیں گے
کہ میں صرف پر کلک کیا بات کے جواب میں ہے.
یہ ایجیکس ہے صرف کیا ہے. یہ آپ کو اصل صفحے کے ساتھ ڈاؤن لوڈ نہیں کیا گیا تھا کہ اعداد و شمار کے لئے ھیںچو.
>> jQuery کی الگ ہے. jQuery کے آسان چیزوں کی ایک بہت ہے کہ صرف ایک جاوا سکرپٹ لائبریری ہے.
jQuery کے ساتھ یہ فائدہ کی ایک بہت یہ صرف ہے -
ڈالر مدد - ڈالر علامت جاوا سکرپٹ میں ایک درست متغیر ہے.
تو، jQuery کی - یہ کر رہی ہے سب کی طرح کہہ رہا ہے متغیر $ = چیزیں کی ایک پوری چڑھانے -
اس میں یہ سب سامان کے ساتھ کچھ بڑے کی تقریب کی طرح -
اور پھر آپ کی طرح کے طریقوں میں ہے کہ ڈالر کا نشان استعمال
$ ("# فوٹر"). سٹائل ("متن سیدھ کریں"، "مرکز").
jQuery کے ہمیں جہاں ایک بڑا فائدہ نحو اس طرح دیتا ہے -
یہ دیگر خصوصیات ہیں لیکن ہم آپ کو سب سے زیادہ پر توجہ مرکوز کرنا چاہتے ہیں
صرف اس طرح کے عناصر کو منتخب کرنے کے قابل کیا جا رہا ہے.
باقاعدہ، سادہ پرانے جاوا اسکرپٹ میں آپ کی طرح باتیں کر سکتے ہیں
ID فٹر ڈاٹ طرف سے عنصر دستاویز ڈاٹ کو ملتا ہے - میں نے اسے اس وقت کیا ہے پتہ نہیں ہے -
سی ایس ایس یا سٹائل یا چیز کے بارے میں کچھ -
لیکن اس کے بعد متبادل طور پر، ہم طبقے کی طرف سے منتخب کرنے کے لئے کرنا چاہتا تھا کا کہنا ہے کہ.
اب ہم اس سٹائل کے ساتھ ایک کلاس فوٹر کے ساتھ سب کچھ اسٹائل رہے ہیں.
ہم کسی بھی پیراگراف سٹائل کے لئے چاہتا تھا یہاں تک کہ اگر.
تو، اس سلیکٹر - اس طرح ڈوم میں چیزوں کو منتخب کرنے کے قابل ہونے کے ناقابل یقین حد تک آسان ہے
سادہ پرانے جاوا سکرپٹ میں آپ کو کلاس کے نام سے دستاویز ڈاٹ حاصل عناصر کرنا ہوگا کے بعد
یا جو کچھ بھی ہے، یا میں نے ایک ٹیگ چاہتے تھے تو میں ٹیگ کے نام کی طرف سے عناصر کو حاصل کرنے کے لئے کہنے کی ضرورت تھا.
تو، میں نے ان تمام چیزوں تک رسائی حاصل ہے کہ مخصوص طریقوں سے جاننے کی ضرورت ہے.
کام کرتا ہے میں نے ایک کلاس یا ایک ID استعمال کر رہا ہوں چاہے کی بنیاد پر مختلف ہو جائے جا رہے ہیں
یا ایک ٹیگ یا کیا، jQuery کی صرف میرے لئے ہے کہ کرتا ہے جبکہ.
>> [Student کی] jQuery کی آپ کے صفحے کی ابتدائی اسٹائل کر رہے ہیں کا استعمال کیا جا رہا ہے؟
یا اسٹائل تبدیل کرنے کے لئے یہ پہلے سے ہی ہے کے بعد - >> [روب] اسے تبدیل کرنے کی.
[Student کی] یہ پہلے سے ہی بھری ہوئی ہے کے بعد. >> [روب] جی ہاں.
کسی بھی ابتدائی اسٹائل - ویسے، بھی -
عام طور پر آپ کی تبدیلی کے اس طرح استعمال کریں گے.
آپ کو تبدیل نہیں کریں گے - یہ بالکل ٹھیک کام کریں گے.
لیکن عام طور پر آپ کو اس طرح سٹائل کو تبدیل نہیں کرے گا.
اس کے بجائے، آپ کو اس کے ایک نئے طبقے یا کچھ دے گا
سی ایس ایس پہلے ہی ایک خاص طریقے میں اس طبقے کے لئے بیان کیا گیا ہے جبکہ.
ان اشیاء دے کر میں نے ایک نئی قسم کو منتخب کر رہا ہوں
میں نے پہلے ہی ڈاؤن لوڈ کیا گیا ہے کہ سٹائل کا اطلاق کر رہا ہوں.
[Student کی] تو آپ چیک باکسز کے ایک جوڑے کی ہے اور آپ کو منتخب کیا ہے کہ چیزوں کو منتخب کریں
ایک نئے سٹائل تبدیل کرنے اور مختلف تلاش شروع. >> [روب] جی ہاں.
کے بارے میں یاد دیگر چیزیں -
ٹھیک ہے، تم jQuery کے بارے میں یاد رکھنا چاہئے کئی افعال ہیں.
ہم ID پی کے ساتھ کچھ انتخاب کر رہے ہیں کا کہنا ہے کہ دو
>> [Student کی] آپ ہمیشہ پونڈ استعمال کرنے کے لئے ہے؟
[روب] اس ID کا مطلب ہے. یہ سی ایس ایس کے برابر ہے، تو سی ایس ایس سلیکٹرز - یہ اس کی طرف سے حوصلہ افزائی ہے.
کہاں میں ایک فوٹر سٹائل کرنا چاہتا تھا سی ایس ایس میں -
یا ID فٹر کے ساتھ کچھ -
یہ متن سیدھ طرح ہو جائے گا: مرکز؛
آپ کو امتحان پر سی ایس ایس لکھنے کے لئے کی ضرورت نہیں ہے، لیکن آپ کو سلیکٹرز جاننے کی ضرورت ہے.
آپ کو اس کے پڑھنے کے لئے کس طرح پتہ کرنے کی ضرورت ہے - آپ کو کیا جاننے کی ضرورت ہے.
لیکن ہم کبھی نہیں کریں گے -
آپ کو مختلف ممکن اسٹائل چیزوں کے حفظ کرنے کی ضرورت نہیں ہے. یا ان میں سے کوئی بھی.
>> jQuery کی چیزیں آپ کو یاد رکھنا چاہیے -
آپ ڈاٹ ایچ ٹی ایم ایل، اور jQuery میں ایک عام پیٹرن کو یاد رکھنا چاہیے - اس کے دوبارہ لکھنا.
ایک عام پیٹرن ہم ("# F") $ ہے ہے. HTML
میں صرف سادہ قوسین ڈال دیا ہے کہ ایچ ٹی ایم ایل کو حاصل کا مطلب ہے؛
جبکہ میں نے ایچ ٹی ایم ایل کا کہنا ہے کہ اور یہاں میں چاہتا ہوں جو کچھ بھی ڈال دیا - کچھ کرنے کے لئے کچھ لنک -
قوسین کے اندر کچھ ڈال اب ایچ ٹی ایم ایل کا تعین کرتا ہے.
اس کے افعال میں سے ایک گروپ کے درمیان بہت عام ہے.
متن کے ساتھ ایک ہی سودا ہے.
HTML اور متن کے درمیان فرق کریں اس کو شامل کرنے کے لئے جا رہا ہے
کے طور پر لفظی کم سے، زیادہ سے زیادہ کی بجائے ایک اینکر ٹیگ کے طور پر.
اور متن میں ایسا ہو تو ایک ہی جا رہا ہے.
نہیں دستاویز کی ایچ ٹی ایم ایل - یہ دستاویز کا متن حاصل کرنے کے لیے جا رہا ہے
لیکن اس عنصر کے اندر اندر صرف متن.
'F' ایک ان پٹ کے لئے ایک شناختی ہو تو ایک ہے،
تو-F-ڈاٹ ویل ہیش - میں کچھ اس طرح کرنے کے لئے ان پٹ قائم کرنے کے لئے چاہتے ہیں -
کی میں ایک چیک باکس کو مارا کہتے ہیں اور میں نے ایک طے شدہ قیمت مقرر کرنا چاہتے ہیں -
ڈاٹ ویل - 3 - ہے - میں بھی نہیں جانتے تو یہ خود کار طریقے سے متن باکس 3 میں داخل کرے گا،
میں 3 ڈاٹ ویل کا کہنا ہے کہ لیکن اگر، کہ میرے لئے متن باکس میں فی الحال جو کچھ بھی ہے کو دوبارہ حاصل کرے گا.
>> اس فارم کی توثیق کے لئے مفید ہے، جہاں
میں صرف وہ اصل میں تمام چیزوں کی بھر اس بات کو یقینی بنانا چاہتے ہیں.
میں عرض مارا کے بعد لامحالہ سرور پر کچھ صفحات پر بھیج دیا ہے تو یہ ہے کہ ایسا کا ایک طریقہ ہے -
جیسے ہمارے لئے پی ایچ پی کی ہو جائے گا - اور یہ کہ ڈیٹا پر عملدرآمد کرنے کی کوشش کریں گے اور یہ کہیں گے
اب کہتے ہیں کہ ایک صفحے پر ان ری ڈائریکٹس تاکہ وہ، کچھ باہر بھر نہیں تھا
آپ کو سب کچھ کو بھرنے نہیں کیا.
اس کی بجائے ایسا کرنے کے ویل خالی ہے، جاوا سکرپٹ / jQuery میں آپ کو صرف دیکھ سکتے ہیں.
خالی کی قیمت درج - یا ویل ہے.
اب ہم آپ کو اس میدان کو بھرنے نہیں تھا کہ ان کو مطلع کر سکتے ہیں - یہ صرف جا رہا ہے.
لامحالہ آپ پی ایچ پی سرور سائیڈ کی جانچ پڑتال کرنے کی ضرورت ہے کیونکہ
آپ کو صرف تمام براؤزرز میں جاوا سکرپٹ کو غیر فعال کر سکتے.
لیکن جاوا اسکرپٹ کا، اسے چالو ہے جو ان لوگوں کے لئے یہ آسان بنا دیتا ہے
اور براؤزر کے تقریبا نوے نو نکاتی کچھ فیصد آج کل اس پر ہے.
بہت کم لوگ جاوا اسکرپٹ کو بند کردیں.
یہ ایک صارف کی سہولت ہے. آپ پی ایچ پی کی توثیق کرنے کی ضرورت ہے.
آپ کو جاوا اسکرپٹ توثیق کرنا چاہئے.
>> [Student کی] # F یہاں کیا رجوع کرتا ہے؟
[روب] # F کیا رجوع کرتا ہے؟
ID 'F' کے ساتھ میری دستاویز میں کچھ عنصر ہے.
ہم کو دیکھو گے - شاید فیس بک مثالیں کی کافی مقدار ہے جہاں میں عناصر آتے ہیں
عناصر ٹیگ کے تحت یہاں کی تلاش میں یہاں پر روشنی ڈالی جا رہی ہے کہ یہ خاص طور پر DIV دیکھ -
یا اس پورے صفحے ہے - جی ہاں، یہ ہے. اس ID pagelet_bluebar ہے.
کنسول میں وہ jQuery استعمال کر رہے ہیں فرض.
تو، کہ اس کا انتخاب تو میں pagelet_bluebar منتخب کر سکتے ہیں، اور میں نے کچھ غلط کیا.
کی کوشش کرتے ہیں - یا شاید وہ jQuery اور ہے کہ کردار کی کچھ اور نقشے کا استعمال کرتے ہوئے نہیں کر رہے ہیں.
میں جانتا ہوں کہ کچھ میں ایک بہتر مثال کے jQuery کا استعمال کرتے ہوئے کیا جاتا ہے -
اب بھی ہمارے یہاں عناصر کو دیکھ کر - ہم یہاں کلاس navbar برابر.
یہ کلاس navbar کے ساتھ کچھ ہے،
تو ہمارے کنسول کے اندر ہم کلاس navbar کے ساتھ بات دیکھ سکتے ہیں.
یہاں ہم اس میں سکرال اور یہ کہ یہ ہے کیا ہے دیکھ سکتے ہیں.
مجھے کیا کرنا چاہتے تھے. کریں اس کو اس کا متن ہے، تو میں باہر لاگ ان مندرجہ بالا رپورٹ کے لئے ترتیبات کو دیکھنے کے
یہاں کے تحت تمام ہیں، لیکن یہ اب بھی اس HTML ٹیگ کے اندر اندر متن ہے جس میں.
میں، صرف کچھ لنک ایچ ٹی ایم ایل قائم کر سکتے ہیں
تو میں نے اپنا بار سے چھٹکارا حاصل کریں گے. اب جب کہ یہ یوٹیوب سے منسلک ہے، مکمل طور پر صرف اتنا ہیڈر سے چھٹکارا مل گیا.
>> اور کسی بھی شکل کی مثال ہے؟
یہاں ایک شکل ہے.
میں دائیں کلک کریں اور یہیں پر آنے عنصر کا معائنہ کر سکتے ہیں.
میں نے اس کی شناخت متن کی تلاش ہے کہ دیکھ،
تو یہاں میں شناختی متن کی تلاش کرتے ہیں.
میں نے اس پر لے کر آتا ہوں اور میں اس کے لئے میں تلاش کر رہا تھا درست بات یہ ہے کو دیکھنے کے.
میں. ویل کرنا چاہتے ہیں تو اس میں وہاں ٹائپ کیا تھا مجھے دے گی.
مجھے کیا کرنا چاہتے تھے خوش یہ خوش کرنے کے لئے یہاں اسے تبدیل کر دیں گے - jQuery کی.
میں بالکل ID کی طرف سے document.get عنصر کی طرح مضحکہ خیز کر سکتا ہے - متن تلاش کریں -
میں نے بھی اس نقطہ پر ہے پتہ نہیں کیا - ڈاٹ قیمت - نہیں، میں اس آدمی کو بھول گئے.
تو، یہ ہے کہ خوش ہے. میں نے یہ کچھ کے برابر مقرر کیا تھا کس طرح نہیں جانتے.
جی ہاں، تو یہ ہے تبدیل.
لیکن اگر آپ اس نقطہ کے استعمال کے jQuery میں ان کے اور بہت سے ویب سائٹس کو استعمال کرنے کی ضرورت نہیں ہے.
یہاں تک کہ ایک حتمی منصوبے پر طرح - پہلی بات یہ ہے - آپ کو ایک ویب کے منصوبے کر رہے ہیں
میں آپ سب ان افعال کی سہولت حاصل کر سکتے ہیں تو صرف jQuery کی بھی شامل ہے کی سفارش.
>> [Student کی] میں ڈوم استعمال کرتے ہوئے ایک عنصر حاصل کرنے کے لئے ایک مختلف راستہ دیکھا ہے.
آپ ڈاٹ استعمال کرتے ہیں اور پھر نیچے جا رکھنے کے لئے ہے؟
[روب] آپ یہ کر سکتے ہیں. یہ بہت اچھی طرح کام کرے گا تو میں نہیں جانتا.
یہ اس طرح تشریف لے کرنے کے لئے مشکل ہے.
اس کی ایک مثال ہے - ہم کسی بھی فارم ہے تو مجھے بھی پتہ نہیں ہے -
لیکن document.forms اس صفحے پر ہے کہ فارم کی فہرست واپس جا رہا ہے،
تو میں 0 فارم ہونے جا رہا ہے document.forms کر سکتے ہیں.
ڈاٹ - میں ہم نے اس کو کہا جاتا ہے پتہ نہیں کیا - تو یہ بھی ایک نام کی ضرورت نہیں ہے،
تو ہو سکتا ہے آدانوں کام کریں گے. نمبر
میں نے بھی اس کو حاصل کرنے کے لئے کس طرح پتہ نہیں ہے - عنصر میں ٹیگ کا نام ان پٹ حاصل.
جی ہاں، کہ مجھے ان پٹ دی، اور اب میں 0 ان پٹ چاہتے ہیں
اور میں اس کی قیمت منتخب کرنے کے لئے چاہتے ہیں، تو اس کے متن جا رہا ہے.
میں ویسے بھی ٹیگ کا نام کی طرف سے حاصل عناصر کر ختم کرنے کے لئے تھا.
براہ راست منتخب کرنے کے لئے کوئی راستہ نہیں ہو سکتا
میں صرف ٹیگز ان پٹ سے ملاقات کرنے کے لئے تھا جیسے فارم 0، لیکن اس کے بارے میں اچھی بات کے ذریعے اب بھی ہے
کہ اس فارم کے ایک بچے تھے، دوسری صورت میں صرف کرتے ہیں کہ براہ راست سامنے
اس پورے دستاویز میں پورے صفحے پر موجود تمام عناصر، کو منتخب کریں گے
اس کی بجائے صرف یہ ہے کہ فارم کی اور یہ شاید میں بھی کرنا چاہتے ہیں نہیں ہو گا.
میں اس کے ہے جو نہیں جانتے. مجھے پتہ نہیں ہے.
میں نے اپنے صفحہ پر پہلے ان پٹ عنصر یہ چھوٹا سا چیک باکس لگتا ہے.
>> [Student کی] یہ بہت غیر متعلقہ ہے
اور ممکنہ طور پر قسم کے پاگل، لیکن جواب کلید پر یہ ہے کہ پی ایچ پی کا کہنا ہے کہ -
میں نے اسے جواب کلید یا نوٹ ہے کہ آیا پتہ نہیں ہے لیکن یہ پی ایچ پی سرور سائیڈ کا کہنا ہے کہ
اور جاوا سکرپٹ کلائنٹ سائڈ ہے. 2 کے درمیان کیا فرق ہے؟
[روب] جاوا اسکرپٹ کلائنٹ سائڈ اور پی ایچ پی سرور سائیڈ کے درمیان فرق.
آپ کو لگتا ہے کہ سے پہلے آپ سلیش / استعمال کیا جاتا نوڈ جے ایس کے بارے میں سنا ہے، تو یہ ہے کہ
جاوا سکرپٹ کے صرف کلائنٹ سائڈ نہیں ہے لیکن CS50 کے مقاصد کے لئے ہے -
یا کم از کم اس کوئز کے مقاصد کے لئے ہے.
پی ایچ پی سرور سائیڈ ہونے کے. کوئی جاوا سکرپٹ.
آپ کو آپ کے ویب کے صفحے لکھنے کے جب آپ کے سرور پر پی ایچ پی کے لکھ رکھا جائے گا.
آپ سرور پر جاوا اسکرپٹ لکھ نہیں کیا جائے گا.
جاوا اسکرپٹ جاوا سکرپٹ کے کوڈ executes ہے جہاں براؤزر کو بھیجا ہو رہی ہے ختم ہو جاتی ہے.
اور جاوا سکرپٹ کے کوڈ میں کرنا چاہتے ہیں کیونکہ جب دوسری صورت میں براؤزر میں رہنے کے لئے کی ضرورت ہے
صرف اس پر کلک کرنے کی طرح جاوا سکرپٹ Y چیز کے کسی بھی طرح، کرنا
میں نے ایک صفحے کو دوبارہ لوڈ نہیں کر رہا ہوں. یہ میرے لئے صرف جاوا اسکرپٹ دوبارہ فارمیٹنگ چیزیں ہے.
جاوا سکرپٹ کے سرور پر رہتے تھے، تو میں لامحالہ کچھ درخواست کرنے کے لئے کی ضرورت ہو گی
سرور کی کیا جاننا.
پی ایچ پی - براؤزر میں پی ایچ پی کے طور پر ایسی کوئی بات نہیں ہے.
میں نے ایک صفحے کی درخواست - تو میں یہاں اس خاص صفحہ کی درخواست کی کہتے ہیں.
یہ اس کی درخواست پر کی جا رہی ہے کہ اس کا مطلب -
تازہ کاری - یہ اس صفحے کو ریفریش کرنے جا رہا ہے -
تو اس کی درخواست کو ہمارے سرور پر جاتا ہے.
یہ اس مخصوص ID کے ساتھ اس خاص موضوع کو واپس کرنے کی ضرورت ہے کہ دیکھتا ہے
تو اب یہ ہے کہ پی ایچ پی کی ترجمان ہے کہ پیج کی تشریح کی جا رہی ہے کہ کچھ پی ایچ پی کی جا رہا ہے
اور صرف ایچ ٹی ایم ایل، سی ایس ایس، جاوا اسکرپٹ شاید، جو کچھ بھی میں تبدیل.
یہ اس کی درخواست کے عمل اور متن اور سامان کے تمام حاصل ہے کہ پی ایچ پی کی ہے
میں اصل میں ڈیٹا بیس سے دیکھ رہا ہوں کہ.
لیکن کیا سرور چھوڑ دیتا ہے صرف HTML / JS / سی ایس ایس ہے.
سرور چھوڑ دیتا ہے جس میں کوئی پی ایچ پی کی ہے یہ اصل میں کیا ہے کیونکہ اگر
پھر براؤزر کیا یہ پی ایچ پی کی ہے پتہ نہیں ہے کیونکہ اس کے ساتھ کیا کوئی اندازہ نہیں ہوگا.
لیکن ایک ہی سوچ میں جاوا سکرپٹ کو، کلائنٹ سائڈ ہے کیونکہ
آپ کو اس سے ایس کیو ایل تک رسائی حاصل نہیں کر سکتے.
پی ایچ پی سرور سائیڈ ہے کیونکہ آپ اس سے ایس کیو ایل تک رسائی حاصل ہے.
>> [طالب علم] HTTP میں کوکیز کے ساتھ سیکورٹی خدشات میں سے کچھ پر جا سکتے ہیں؟
[روب] وہ ہم جاننے کی ضرورت کے لئے جا رہے چیزیں نہیں ہیں.
HTTP میں کوکیز کے ساتھ سیکورٹی خدشات میں سے کچھ.
یہاں بڑا سوال ہم اپنے کوکی پی ایچ پی / ID ہے کہ یہاں دیکھ رہا ہے.
کہ عالمی پی ایچ پی کی آپ کے سیشن کی طرح ہے.
آپ کے سیشن پی ایچ پی کے اندر کی توثیق کرنے کی ضرورت کبھی نہیں ہو گا کہ کچھ ہے
اس سیشن پر مکمل کنٹرول ہے کہ سرور کی وجہ سے.
آپ کو یہ بالکل چھو نہیں سکتے.
لیکن اس کوکی ہے - اس میں سے ایک -
اور میں آپ کو اس کے استعمال کرنے کے لئے چاہتا تھا، تو آپ کو اب مجھے میں لاگ ان کر سکتے ہیں لگتا ہے -
لامحالہ آپ کو سرور سے ایک درخواست کرنے کے - لیکن یہ ہے کہ کوکی ہے.
سرور پیج واپسی. پروپوزل کی کیا جاتا ہے.
اب یہ آپ ہیں جو کسی بھی خیال ہے.
تو، آپ کو اگلے کی درخواست یہ جانتا ہے کہ تو یہ کوکی شامل کرنے کے لئے کی جا رہی ہے
اس سے پہلے اس درخواست کی جو شخص ہے.
اس صارف کے ساتھ منسلک کیا جاتا ہے کے سیشن کے اعداد و شمار ہے.
اگر آپ استعمال کرتے ہیں ہر صفحے کے لئے لاگ ان کرنے کی ضرورت نہیں ہے یہی وجہ ہے کہ.
یہاں سلامتی کا مسئلہ ہے کہ کوکی ویب پر باہر بھیجا جاتا ہے.
ہم یہاں HTTPS استعمال کر رہے ہیں، تو اس صورت میں کہ ہم یہ چیزیں خفیہ کاری کر رہے ہیں کا مطلب ہے کہ.
کسی میں آتے ہیں اور صرف اپنے کوکی چوری اور اب سرور وہ میرے ہو گا نہیں کر سکتے ہیں.
لیکن براہ راست HTTP کے ساتھ وہ کر سکتے ہیں.
بس آپ کو صرف ہوا میں وائی مالیاتی اداروں کے تمام سن سکتے ہیں کہ اس WireShark / FireSheep سامان کی طرح
اور آپ چاہتے ہیں جو کچھ بھی تقطیع، تو جی ہاں.
>> [Student کی] اسی طرح کی سلامتی خطرے کی ایک طرح کی پوسٹ میں صارف ID کی ذخیرہ کرنے کا ہے
کہ آزادانہ طور پر کنسولز اور چیزوں کا استعمال کرتے ہوئے میں ترمیم کیا جا سکتا ہے.
[روب] جی ہاں. جہاں صارف کی طرف سے آتا ہے کہ کچھ جیسے مسائل کی کافی مقدار ہے
آپ کو درست کرنے کی ضرورت ہے.
یہ میں نے ایک پوسٹ بنانے کے لئے کے بارے میں ہوں جیسے کے لئے مفید ہو گا جہاں مقدمات کی بہت ہیں.
بلاہ، بلاہ، بلاہ، بلاہ، بلاہ. پھر میں نے جواب مارا.
پوسٹ کی درخواست میری ID شامل تو یہ بہت مفید ہو گا کیونکہ
میرے ساتھ اس پوسٹ کو منسلک کرنا چاہتے ہیں.
لیکن میں ایسا نہیں کر سکتا کہ میں نے ایک پوسٹ کی درخواست کرنے کے لئے آزاد ہوں کیونکہ - صرف دستی طور پر کی طرح
میری اپنی پوسٹ کی درخواست کے ساتھ آئے -
کہ آپ صارف ID کا استعمال کرتا ہے اور اب یہ آپ کے طور پر پوسٹ کیا جائے گا.
سرور سائیڈ میں درست صارف ID پر مشتمل درخواستوں کو پوسٹ پر انحصار نہیں کر سکتے ہیں یہی وجہ ہے کہ.
یہ میرے سیشن میں تعلق ہے یہی وجہ ہے کہ.
تو میں نے اپنے سیشن کی صف میں آپ صارف ID دیکھو اور میں اپنے ڈیٹا بیس میں داخل
اصل میں یہ پوسٹ کرنے والے صارف کے طور پر.
[] طالب علم اور ہے کہ آپ کوکی کی بنیاد پر ہے؟
[روب] جی ہاں. یہ درخواست کی ہے جو صارف کے طور پر آپ کو ملنے کے لئے کوکی کا استعمال کرتا ہے.
یہ سیشن سے صارف ID ھیںچتی اور پھر ڈیٹا بیس میں اضافہ
اس صارف کی شناخت کا استعمال کرتے ہوئے.
اس طرح کے بٹن پر - کہ اصل میں کیا کر رہی ہے ہے -
میں اسے یہاں تلاش کرنے کے لئے نہیں جا رہا ہوں. یہ ایک AJAX کی تقریب ہونے جا رہا ہے
ایجیکس تقریب کیا ہے؟
میرے جاوا سکرپٹ کو معلوم ہیں.
یہ تھوڑی دیر پہلے ایک CS50 منصوبہ تھا.
میں نے یہ کیا ہے یاد نہیں کر سکتے.
ایجیکس کی تقریب - تمام ایجیکس کی تقریب کر رہا ہے اس ID کے ساتھ ایک صفحے پر ایک AJAX کی درخواست کر رہا ہے -
ID 22453 ساتھ.
یہ بھی ایک پوسٹ کی درخواست نہیں ہے. یہ بھی آسان بنا دیتا ہے جس کی وجہ سے حاصل کی درخواست ہے.
میں یو آر ایل کیا ہے جانتے تھے تو - یہ اس طرح / ID = 22453 کی طرح کچھ ہے -
یا ID = 22453 -
تو اس یو آر ایل کا دورہ ہے کہ پسند آئے گا.
ایک مسئلہ کے طور پر زیادہ ہو سکتا ہے لیکن یہ ایک لوپ لکھنے کے لئے ناقابل یقین حد تک آسان ہے نہیں کرے گا جس میں
صرف آپ کو نظر آئے جس کی وجہ سے، زیادہ بار بار اس یو آر ایل کا دورہ کرنے جا رہی ہے
چیزوں کے ہزاروں کے ساتھ پوسٹ Isawyouharvard.
اور وہ CS50 کی بنیاد Isawyouharvard پیغامات ہوتے ہیں.
کس طرح میں سب سے زیادہ پسند تلاش کروں؟
وہ بھی، بہت تیزی سے خارج کر دیا حاصل کرنے کے لئے کرتے ہیں.
یہ سب سے زیادہ پسند نہیں ہے. ہم وہاں چلتے ہیں.
سب سے زیادہ پسند کے صفحے پر Cheaters - یہ ٹھیک ہے اب یہ بہت متعلقہ ہے.
اوہ واہ. انہوں نے پہلے ہی کیا گیا ہے جو اس سال سے ہیں کے کسی بھی خارج کر دیا ہے
پر دھوکہ دیا. ان سب کو خارج کر دیا گیا ہے.
اس اعلی ہو جاتا ہے کہ ایک پوسٹ نہیں کیا جا سکتا.
یہ ایک واضح طور پر سب سے زیادہ پسند پیج پر حاصل کرنے کے لئے پر دھوکہ دیا گیا تھا.
>> مزید سوال؟
[Student کی] ہم XHTML کے بارے میں کیا پتہ ہونا چاہیئے؟
[روب] تقریبا کچھ بھی نہیں. یہ ہے کیا.
یہ اور ہے کہ XML ہونے کے ایچ ٹی ایم ایل کے درمیان فرق ظہور میں بہت اسی طرح ہے
HTML کرنے کے لئے HTML کے علاوہ ہم صرف ٹیگز کا ایک وضاحتی سیٹ کرنا ہوگا.
لیکن XML کے ساتھ - XML ​​صرف آپ کو ایک XML دستاویز بنانے کے کر سکتے ہیں جہاں ایک عام شکل کی طرح ہے
آپ چاہتے ہیں جو کچھ بھی مقاصد کے لئے.
تو، مثال کے طور پر، میں چاہتا تھا تو میں کورس کے لئے ایک XML کی تعمیر کر سکتے ہیں -
اور میں اصل CS50 اس کے لئے ایک API ہے کہ لگتا ہے.
میرا XML دستاویز کی طرح کچھ نظر کر سکتے ہیں -
کورس اور کورس کے میں کچھ آخر کورس کی ضرورت ہے.
میں نے ایک کورس کر سکتے ہیں اور اس کے نام CS50 کے برابر ہو سکتا ہے.
اور پھر میری آخر کورس اور میں، یہاں کے اندر طالب علموں کو ڈال سکتے ہیں
اور اس کے بعد طالب علموں کے اندر میں نے جس کا نام جو کچھ بھی ہے ایک طالب علم کی ایک فہرست ہے.
میں نے اس طالب علم کو ختم کرنے اور.
میں صرف کچھ صوابدیدی XML دستاویز کی تعمیر کرنے کے لئے ہو، لیکن یہ درست XML ہے.
XML - یہ تمام کی ساخت اس طرح کی اور اچھی بات ہے - ہم بھی XML یہ کہتے کہ اس کی وجہ
اس طرح کی چیز کا تجزیہ کرنے کے لئے بہت آسان ہے.
اس دستاویز لے اور اس سے باہر ایک صف بنانے کے لئے بہت آسان ہے.
اور اس طرح کی XHTML ایچ ٹی ایم ایل درست XML کرنے کے لئے حاصل کرنے کی ایک کوشش ہے.
پہلے ہی یہ ایچ ٹی ایم ایل کے لئے بہت طرح لگ رہا ہے.
اختلافات میں سے کچھ آپ کو ان پٹ کی طرح چیزوں کو کرنے کے قابل ہیں HTML ہیں شاید قسم کے متن کے برابر ہے
پہلے سے طے شدہ ہے جو تو میں نے کا کہنا ہے کہ ضرورت نہیں ہے.
غیر فعال.
>> اس غلط XHTML ہے کہ یہاں میں 2 چیزیں ہیں.
پہلی چیز سب XML ٹیگز ایک اختتامی ٹیگ کی ضرورت ہے.
یہ سلیش کی جس سمت ہے - تو ان پٹ کی صورت میں مجھے کیا کرنا کی ضرورت ہے؟
اس سمت؟ یہ غلط لگتا ہے.
دوسری سمت.
خود بند ٹیگ.
دوسری بات یہ ہے XML کے ساتھ آپ جیسے کلیدی قدر جوڑوں کے ان قسم کے کی ضرورت ہے.
یہ اس کے ساتھ منسلک ایک قیمت کی ضرورت ہے.
تو، خود میں اور معذور جو میں چاہتا ہوں اظہار اگرچہ -
اس ان پٹ کو غیر فعال کیا جانا چاہئے -
کہ غلط XHTML ہے.
کیا میں نے اصل میں لکھنے کی ضرورت کو غیر فعال کو غیر فعال کر کے برابر ہے.
اب یہ کی XHTML ہے.
اور ان کی بات کی ایک XML پر مبنی ترتیب کرنے کے لئے HTML تبدیل ہے کہ صرف ان معمولی اختلافات ہیں.
>> [Student کی] XML مکمل طور پر کیوں (غیر واضح) ہے جیسے آپ کی اپنی ایکس کے ذریعے کی طرح پل کے بارے میں ہے
[روب] ایک CSV طرح کی بات - ایک CSV آپ کو صرف کی طرف سے الگ اقدار ہیں -
صرف ایک سپریڈ شیٹ کے بارے میں سوچنا. ایک CSV بنیادی طور پر ایک سپریڈ شیٹ ہے.
آپ شاید کالم ہے اور آپ کو قطار کے ایک گروپ ہے
ساتھی ان کے کالم کے ساتھ کے اعداد و شمار لیکن یہ بات ہے.
XML بہت زیادہ ورسٹائل آپ کر سکتے ہیں کہ اس میں ہے - آپ کے ڈیٹا کی ایک صوابدیدی کے تنظیمی ڈھانچے ہے.
میں نے اس کے اندر اندر ایک سے زیادہ طالب علموں کو ہے کہ ایک سے زیادہ کورس کر سکتے ہیں
یہ ہے کہ ایک سپریڈ شیٹ کے بارے میں سوچنا مشکل ہو جائے گا - جہاں
صرف یہ ہے کہ ایک سپریڈ شیٹ - CSV، خاص طور پر صرف ایک سپریڈ شیٹ کی طرح ہے -
تمام CS50، 51، اور 61 اور ان کے اندر کے تمام ہونے کے کہ ایک سپریڈ شیٹ
ان اوقات سے متعلق طالب علموں کو، ہو سکتا ہے کہ ملاقات کے اوقات اور بات اس طرح کے تمام.
دوسری بات یہ ٹیگ کے ناموں کے تمام عناصر کے لئے ایک اچھا نام دینے ہے
تو ایک CSV فائل کو پڑھنے کی کوشش کریں اور یہ اصل میں دیکھ رہا ہے کا تجزیہ کرنے کے لئے مشکل ہو سکتا ہے.
نہیں کرتا جو کچھ انسان کے لئے آئے - کیوں کی طرح ہے تو XML بہت زیادہ انسانی پڑھنے کے قابل ہے
کیا واقعی ایک CSV فائل ہے یا پسند ایک پروگرامر یا کچھ نہیں ہے -
آپ کو ایک سانچے XML فائل کی طرح ان کو دے سکتے ہیں اور وہ لائنوں کی پیروی کر سکتے ہیں اور -
اوہ، میں یہاں میرا نام داخل کرنے کی توقع کر رہا ہوں.
یہ ایک بہت زیادہ استعمال کے قابل کی شکل میں ہے.
CSV استعمال کی کافی مقدار ہے لیکن XML مختلف استعمال ہے.
>> مزید سوال؟
دیگر سوال؟
عمودی پیمائی افقی پیمائی کے مقابلے میں - گزشتہ کوئز سے [Student کی].
[روب] آپ کو معلوم ہے کہ کرنے کی ضرورت نہیں کرے گا. میں ہم بھی تبادلہ خیال نہیں لگتا.
میں یہ صرف ایک آف تبصرہ تھا اندازہ لگا رہا ہوں.
اوہ. عمودی پیمائی کے مقابلے میں افقی آپ کو جاننے کی ضرورت ہو گی کچھ نہیں ہے.
میں فرق کی طرح لگتا ہے - ویسے اوہ، جواب اہم فرق کہیں گے.
عمودی پیمائی صرف اپنے کمپیوٹر کی غیر تسلی بخش کر، اوہ کی طرح ہے. میں ایک بہتر ملے گا.
افقی پیمائی اوہ ہے جبکہ میرے کمپیوٹر کو غیر تسلی بخش کر رہا ہے -
مجھے ایک ہی کام پر کام کرنے کے لئے ان میں سے 20 حاصل کرنے.
>> [Student کی] ہم قطار بنانے کے منسلک فہرست طریقہ کے جا سکتے ہیں. >> [روب] جی ہاں.
اس صف کا طریقہ زیادہ آسان ہے.
قطار بنانے کے منسلک فہرست طریقہ.
سب سے پہلے، کیا ایک لنک کی فہرست کے لئے ہماری struct کی طرح لگتی ہے؟
[Student کی] ہم نے کے لئے کر رہے ہیں - >> [روب] اس کی کرتے ہیں - جی ہاں.
INT ویل، پھر struct نوڈ * اگلا، دوسرا؛
تو ہے کہ ہم یہاں مثال کے طور پر استعمال کریں گے کیا ہے.
اصل میں یہ سب ٹائپ کریں.
کی linked_list کرتے ہیں.
ہمارے struct -
ٹھیک ہے. اب ہمارے قطار میں دیکھ ہم ہے -
صرف ایک عالمی قطار بنانے.
یہ نوڈ * قطار ہو جائے گا، اور ہم ایک dequeue تقریب ہے.
میں ان چیزوں کو بھی صحیح یا غلط الٹ سکتا ہے - چلو ایسا کرتے ہیں.
bool کے dequeue - اوہ - اور ہم dequeueing رہے ہیں. ہمم.
INT dequeue - ہم سے پہلے اس کے ساتھ کیا کیا؟
INT dequeue اور ہم bool enqueue ہے اور ہم سچ میں کچھ کا مطلب ہے enqueue کرنا کی ضرورت ہے.
کی پہلی enqueue کرتے ہیں.
ہم اپنی قطار ہے. ہم قطار میں کچھ داخل کرنا چاہتے ہیں.
ایسا کرنے کا بہترین طریقہ کیا ہے؟
ہم شروع کرنے کے لئے کچھ عالمی پوائنٹر ہے کی طرح یہاں ہمارے قطار فی الحال لگتا ہے.
ہمارے قطار ہے.
ہم سب سے پہلے عنصر لینے کی طرف سے dequeue یہ سمجھتے ہوئے کہ،
ہم کہاں وہ کرنا چاہئے طور قطار کام کرتے ہیں کہ تو ہماری نوڈ داخل کرنا چاہتے ہیں جا رہے ہیں؟
آخر میں [Student کی]. >> [روب] جی ہاں. قطار سے باہر سب سے پہلے، میں سب سے پہلے ہونا چاہیے تھا کر رہے ہیں.
جو نئے عنصر یہاں داخل کیا جانا چاہئے مطلب یہ ہے کہ. ٹھیک ہے.
>>، واپس کوڈ آ رہا ہے
کہ ہم ہمارے قطار سے زائد لوپ کرنا چاہتے ہیں کا مطلب ہے کہ.
کی نوڈ * موجودہ = قطار کرتے ہیں، موجودہ برابر نل نہیں ہے.
میں کروں گا - ٹھیک ہے، کی علیحدہ علیحدہ کرتے ہیں.
سب سے پہلے، موجودہ = قطار.
موجودہ نل کے طور پر شروع ہوتا تو ہم کیا کرتے ہیں؟
ہم اس 2 طریقوں سے کروں گا. سب سے پہلے اس طرح.
موجودہ نل ہے تو ہم کیا کرتے ہیں؟
اس قطار خالی ہے کے برابر ہے؟
[Student کی] یہ جھوٹے واپس جا رہا ہے. >> [روب] ہم جھوٹے واپس کرنا چاہئے؟
کیا ایک خالی فہرست میں کچھ داخل کے ساتھ غلط کیا ہے؟
[Student کی] کچھ بھی نہیں اس کے ساتھ غلط ہے. معذرت.
[روب] جی ہاں. تو یہاں فرق صرف اپنے عالمی قطار اپنے نئے نوڈ کرنے کے لئے بھیجا جا رہا ہے ہے.
اور پھر میں نے قطار خالی ہے کی میری چیک کرنا ہے.
جھوٹے واپس.
اور پھر ویل میں برابر قطار، قطار اگلا نل کے برابر ہے، حقیقی واپس.
ٹھیک ہے. میں یہاں بندوق کود جا رہا ہوں.
ہم نے کیا کیا یاد ہے کہ آخری بار
جہاں ہم نے اسے اس طرح کی چیز کے ساتھ *** نوڈ کے ساتھ کام کرنے کے لئے بہت آسان تھا.
تو اب موجودہ قطار ہو اور کرنے کے لئے جا، اور یہاں نیچے آ رہا ہے -
جبکہ موجودہ - جبکہ * موجودہ برابر نہیں نل ہے -
ایک دوسرے میں اس کے بارے میں we'll بات کریں - تو مجھے صرف موجودہ کرتے ہیں.
موجودہ اگلا. ٹھیک ہے.
مجھے شہوت انگیز null پوائنٹر تک اس طرح میں اس کی تلاش میں، یہ میرا اشارہ کے تمام پر iterating ہے.
شہوت انگیز null پوائنٹر میں اپنے نئے نوڈ کے ساتھ تبدیل کرنا چاہتے ہیں پوائنٹر ہونے جا رہا ہے.
رکن ورژن میں تلاش -
اپنے اصل پوائنٹر اور منسلک فہرست خالی ہے تو موجودہ یہاں بات کی جا رہی ہے.
یہ شہوت انگیز null کی طرف اشارہ کرنے جا رہا ہے،
تو اس میں کچھ دیگر نئے نوڈ کی طرف اشارہ کرنے کے لئے آگے بڑھ رہے ہیں ختم پوائنٹر ہے.
جبکہ مثال کے طور پر یہاں اگر یہ معاملہ ہے
اس کے بعد موجودہ یہاں سے گزرنا ہو رہا ہے - میں تھوڑا گڑبڑ.
موجودہ موجودہ اگلے کا پتہ کرنا ہے کہاں.
کہ میں کیا چاہتا ہے؟ موجودہ تو * موجودہ مجھے ایک نوڈ دیتا ہے.
اگلا اگلے ایک traverses.
میں فی الحال یہاں کی طرف اشارہ کر رہا ہوں.
ریڈ کرتے ہیں - تو میں فی الحال یہاں کی طرف اشارہ کر رہا ہوں.
اس کے بعد * موجودہ اس نوڈ حوالہ کی جا رہی ہے.
اور * موجودہ اگلا حوالہ جات اس نوڈ، لیکن ہے کہ جو میں چاہتا ہوں نہیں ہے.
میں اس نوڈ اس پوائنٹر چاہتے ہیں.
تو، اس نوڈ کہ پوائنٹر اگلے (موجودہ *) ایمپرسینڈ ہے.
>> اس وقت کے وقت میں میں سرکاری میں تبدیل کرنا چاہتے ہیں کہ نوڈ تک پہنچ چکے ہیں.
کی موجودہ ان قطار کے سب کو تبدیل کرتے ہیں - اور اب ہم کیا کر رہے ہیں.
وہاں typos کے ہو، لیکن خیال ہے ہو سکتا ہے کہ جس طرح کی اس طرح میں داخل کے ساتھ
یہ ہم کو تبدیل کرنا چاہتے ہیں کہ اشارہ کے ساتھ کام کرنے کے لئے آسان ہے
بجائے اس کے ٹریک رکھنے کے لئے کی ضرورت کے - ٹھیک ہے، اپنے آغاز کے نل ہے؟
اوہ ہے؟ پھر میں نے کچھ مخصوص ہونا شروع نوڈ پیدا کرنے کی ضرورت
میں کی طرف اشارہ اگلی بات نل ہے، جب تک دوسری صورت میں، iterate کرنا چاہتے ہیں کریں گے
اور پھر میں نے اس کی جگہ لے لے گا - اگلی بات کیا ہے - میرا malloc کی نوڈ.
اس کے بجائے ان معاملات کو الگ کرنے کی ضرورت ہے، یہاں میں صرف کے معاملے سے نمٹنے کے
میں اب نل ہونا چاہتے ہیں نل ہے کہ پوائنٹر، کیا ہے
اور اس کی وجہ سے ان کے علاوہ زندگی آسان سب اب موجودہ * ہونا چاہئے کرتا ہے -
[Student کی] وہ اب بھی ایک نوڈ کے سائز کے ہیں؟
[روب] جی ہاں. میں اب بھی ایک نوڈ mallocing رہا ہوں.
[طالب علم] یہ ایک نوڈ * کے سائز کی جا رہی ہے؟
یہ ہمارے منسلک فہرست ہے [روب] یہاں واپس آ رہا ہے، کیس کے بارے میں سوچنا.
یہ آدمی نل کو بتاتے ہیں.
یہاں اس کے بعد کیوں لوپ، موجودہ پوائنٹس
یہ نل ہے کہ پوائنٹر ہے.
اب میں ایک نیا نوڈ کی طرف اشارہ اس پوائنٹر تبدیل کرنا چاہتے ہیں.
نوڈ کی تو malloc سائز - سب سے پہلے میں اس نئے نوڈ malloc کی.
اور یہ کہ ایک نوڈ * واپس اور اب اس پوائنٹر کو تبدیل کرنے * موجودہ برابر کرنے کے لئے تعمیر کر رہا ہے
مختص ہے کہ اس نئے نوڈ.
موجودہ *** ایک نوڈ ہے اگر ایسا ہے تو،، اس کے بعد * موجودہ * ایک نوڈ کی جا رہی ہے،
میں کچھ نوڈ کے سائز mallocing رہا ہوں تو یہ ایک نوڈ پوائنٹر واپس آ رہا ہے
تو یہ ایک نوڈ * ہے - تو دونوں اطراف کو صحیح طریقے سے ایک ہی قسم ہے.
کیا میں صرف مختص نل تھا اور اگر ایسا ہے تو، جھوٹے واپس؛
ان قوسین کی ضرورت کے علاوہ - اور میں ان ہونا چاہتے ہیں جو ان کی ترتیب ختم
وہ چیزیں ہیں جو کے حکم کس طرح کام نہیں ہے.
کے طور پر تشریح کی جا رہی ہے کہ قوسین کے بغیر
کہ dereference موجودہ تیر ویل.
اس کی بجائے میں موجودہ dereference ایک نوڈ مجھ سے لاتا ہے جس کے چاہتے ہیں.
پھر میں نے اس نوڈ کے ساتھ منسلک قیمت حاصل کرنے کے لئے چاہتے ہیں.
>> [Student کی] میں تیر آپ اس بائی پاس اور قیمت براہ راست جانے کی اجازت سوچا.
[روب] وہ کرتے ہیں. میں نے تو یہ ہے کہ - کی قطار ایک مثال ہے کہتے ہیں.
میں قطار * ایک نوڈ ہے کیونکہ قطار تیر ویل میں برابر کرنے کی اجازت کر رہا ہوں.
کی طرح موجودہ طویل تیر ویل یا کچھ کچھ اچھا نحو تھے
2 dereferences کی کیا تھا، جو اس کے بعد اس کے ساتھ ساتھ کام کریں گے.
[Student کی] تو تیر کی صرف 1 dereference کے لئے ہے. >> [روب] جی ہاں.
متبادل طور پر میں (*** current.val) کے طور پر یہ لکھ سکتے تھے.
میں نے بھی (* قطار). ویل کے طور پر قطار میں لکھ سکتے تھے جیسا.
تو داخل ہیں. ٹھیک ہے، یہ مجھے لگتا ہے قطار میں ہے.
Dequeue نمایاں طور پر کم کی جا رہی ہے.
کی صفائی کے لئے یہاں باطل ڈال دو.
تو، dequeue. میں کیا عنصر dequeueing ہوں؟
[Student کی] سب سے پہلے؟ >> [روب] جی ہاں.
میرا سب سے پہلے ایک خالی ہے - واپس - میں ہم واپس کرنا چاہتے ہیں پتہ نہیں کیا - INT_MAX؛
اور پھر آپ INT_MAX واپس کیا گیا تو دیکھنے کے لئے چیک کرنا چاہئے.
یہ انکا ورنہ ہم چاہتا ہے ہو اس چیز کی طرح ہے -
ہم صرف قطار ویل واپس آ سکتے ہیں؟ کہ ہم کیا کرنا چاہتے ہے؟
Dequeue بھی لپیٹ، قطار سے شے کو ہٹا دیتا ہے
تو سب سے پہلے کہتے ہیں - چلو ہمارے قطار کے پہلے نوڈ کی طرف اشارہ کرنے کے لئے ایک TMP حاصل.
اب ہم قطار میں اگلی بات کی طرف اشارہ ہمارے قطار آگے بڑھانے کے لئے چاہتے ہیں.
اب ہم TMP چھوڑ دیا ہے. TMP ویل ہم واپس کرنا چاہتے ہیں بات ہے.
تو، ویل = TMP> ویل؛
لیکن ہم نے اسے واپس سے پہلے ہم TMP آزاد اور ویل واپس آ جانا چاہئے.
یہاں آپریشن کے حکم ہے کہ میں ہم ایک TMP پر قبضہ کرنے کی ضرورت اہم ہے
ہم اگلے عنصر قطار منتقل ہونے سے پہلے.
ہم TMP آزاد سے پہلے قیمت حاصل کرنے کے لئے کی ضرورت ہے
اور پھر ہم ویل واپس آ سکتے ہیں.
>> [Student کی] ہم اگلے قطار قطار قائم کرنا چاہئے؟
[روب] جی ہاں. یہ ایک برا لوپ پیدا کیا گیا تھا / یہ ویسے بھی آزاد ہونے کے بعد کام نہیں کرے گا.
قطار = قطار اگلا>.
ہم اگلے عنصر کو آگے بڑھانے کے اگلے عنصر میں قطار آگے بڑھانے کے لئے چاہتے ہیں،
عنصر فی الحال کیا ہے.
پوٹ نمایاں طور پر ہو جائے گا - کہ dequeue میں بھی آسان کی طرح بالکل ایک ہی ہے
ہم نے اسٹیک کے سامنے ھیںچ رہے ہیں.
ہم صرف ایک نوڈ مختص کرنا چاہتے ہیں جہاں اختتام قطار طرح ہو جائے گا
اور اسٹیک کے سامنے میں داخل، تو ہم بھی کچھ زیادہ لوپ کی ضرورت نہیں ہے.
ہم صرف سامنے میں براہ راست داخل.
ہر کوئی اس پر اچھا ہے؟
ٹھیک ہے. >> مزید سوالات؟
[Student کی] بڑے کیا ہوا ہے کہ میں سب سے زیادہ حالیہ لیکچر سے ذہن میں رکھنا چاہئے؟
[روب] سب سے زیادہ حالیہ لیکچر.
آپ کسی بھی کوڈ معلوم کرنے کی ضرورت نہیں ہے.
آپ انتہائی اہم خیالات کو پتہ ہونا چاہئے.
نیٹ نصف کسی بھی کوڈ کی ضرورت نہیں تھی اور اس طرح وہ سلائڈ آن لائن ہیں.
وہ صرف ان کی طرف دیکھو کی طرح ہو اور وہ اہم خیالات ہیں.
میرا نصف - سب سے پہلے آپ کو کچھ یقین نہیں کر سکتے کے مجموعی خیال جاننے کے.
حقیقت یہ ہے کہ ہو سکتا ہے کہ سنکلک کرنے کے عمل کو برا ہو سکتا ہے کی طرح،
لیکن یہ بھی ماخذ کوڈ ٹھیک لگ رہا ہے کہ کوئی فرق نہیں پڑتا.
سنکلک خاص طور پر منبع کوڈ کو تبدیل کرنے کے تبدیل کیا جا سکتا ہے کیونکہ
تالیف کے عمل میں.
صرف کی طرح ایک ہی وقت میں - میں نے ان کو اس کے بڑے خیالات کو پسند ہیں.
>> [طالب علم] ہم Firesheep سے متعلق کچھ جاننے کی ضرورت نہیں ہے کا ذکر کیا -
یا ہم اس کو جاننے کی ضرورت ہے؟
چیزوں کے نیٹ نصف، نیٹ پر کو چھو لیا ہے کہ کچھ کے ساتھ [روب] -
FireSheep، WireShark پسند - میں وہ بھی تفصیل سے Firesheep کیا نہیں لگتا.
تم نے بھی اس کے ساتھ کچھ کیا - یہ Firesheep تھا - گزشتہ ہفتے؟
آپ اس پر چھو تھا؟
[Student کی] جی ہاں، میں ہم ہو سکتا ہے لگتا ہے کہ - >> [روب] جی ہاں.
ہم آپ Firesheep پیداوار دینے کے لئے جا رہا ہے اور اس کی تشریح نہیں کہہ رہے ہیں.
یہ صرف جا رہا ہے - یہ Firesheep کیا ہے کی طرح ایک سوال ہو گا؟
یہ کس کے لئے استعمال کیا جاتا ہے؟
[Student کی] میں نے یہ صرف فائر فاکس یا کچھ اور کے ورژن 4 پر کام کرتا ہے.
[روب] یہ اب تک ٹوٹ جا سکتا ہے.
مجھے کوئی اندازہ نہیں ہے.
وہ، دستی طور پر غیر فعال کر دیا ہے لگ رہے ہو نہیں ہے
لیکن شاید یہ سب سے زیادہ حال ہی میں فائر فاکس کے ساتھ کام نہیں کرتا.
یہ ہم آہنگ ہو گی کیونکہ [Student کی] میں واقعی میں اس کو انسٹال کرنے کی کوشش کی.
[روب] تو، میں نے اسے سب سے زیادہ حالیہ فائر فاکس کے ساتھ کام نہیں کرتا ہے.
لیکن خیال اب بھی یہ ظاہر کرنے کے لئے کیا گیا تھا کی ہے.
اس پر کتنی دنیا کے وقت HTTPS میں رہنے نہیں کیا گیا تھا مضحکہ خیز تھا.
یہاں تک کہ گزشتہ 2 سالوں میں یا جو کچھ بھی، یہ اب بھی ہے - میں ڈرامائی بہتری ہے
https استعمال جس میں ویب سائٹس کی تعداد.
>> [Student کی] ہم HTTP پر جانے کے لئے کی ضرورت ہے؟
[روب] اس کے پروٹوکول؟ >> [Student کی] ہم جانتے ہیں کہ چیزوں میں سے کچھ.
[روب] ٹھیک ہے. بنیادی چیزیں آپ کو آپ کے نیٹ ورک کے ٹیب میں دیکھ سکتے ہیں سب کچھ ہو.
میں نے ایک صفحے کی درخواست - اہم چیزوں کے لئے سب سے اوپر تک واپس آ.
آپ یہاں مجھے بنانے کی درخواست دیکھ سکتے ہیں.
کروم ہمارے لئے اچھی طرح سے تمام فارمیٹ کرنے کے لئے ہوتا
پروپوزل کی گذارش یو آر ایل یہ تھا جہاں، کی درخواست کے طریقہ کار، حاصل تھا
اور حیثیت کوڈ 200 ٹھیک تھا.
میں مآخذ مارا، میں زیادہ براہ راست دیکھا ہے کہ -
ہم آپ کو ان میں سے کسی کو دکھانے کے کر سکتے ہیں، لیکن یہ ان کے درمیان کی تشریح بھی مشکل نہیں ہے - اور یہ ہے.
یہاں میں نے براہ راست درخواست ہے، تو اس میں چلا گیا ہے کا مطلب ہے کہ
apps.cs50.net/discuss/threads/inbox/all/HTTP/1.1.
اور اس کا استعمال کیا پروٹوکول کو عملی طور پر ہے جو HTTP/1.1 تھا - یہ ہمیشہ سے ہو رہا ہے.
یہاں پر ہم استعمال کیا جاتا ہے، تو اس کو پوسٹ ہو سکتا ہے.
اور پھر نیچے آ رہا ہے - تمام طرح جواب ہیڈر کے نیچے - ہم اس کے ذریعہ دیکھنے کے تو،
ہم 200 ٹھیک ہے جہاں یہ ہے.
ان کے ممکنہ مختلف حیثیت کے کوڈ معلوم ہے.
میں، کا جائزہ لینے میں ہم نے ان میں سے ایک جوڑے کا کہنا ہے کہ لگتا ہے
تو 403، 404 - عام ہیں کے ان قسم.
یہ اس کے اہم خیال ہے.
صرف HTTP اور HTTPS کے درمیان فرق یہ خفیہ کاری ہے.
آپ >> [Student کی] کیا کر رہے ہیں؟ >> [روب] مجھے ایسا لگتا. ٹھیک ہے، جی ہاں.
[طالب علم] کس طرح خفیہ کاری کے کام کے بارے میں بہت عام طور پر بات کرے گا؟
ہم Huffman سکیڑنا فائلوں کی مثال کے طور پر بات کی تھی، کیونکہ
آپ اصل فائل کے اندر اندر hashtable بھیجا کیونکہ ان پھیلائیں جانتے کہ کس طرح
تو کس طرح خفیہ کاری کے کام کرتا ہے؟
کس طرح آپ کو آپ اصل میں کلائنٹ نہیں بھیجا ہے تو معلومات کو خفیہ کرنے کے لئے کس طرح جانتے ہیں
کی کلید ہے - اور آپ کو اصل سے اہم قبضہ کر سکتے ہیں -
جنرل عمل کیسے کام کرتا ہے؟
[روب] خفیہ کاری کے عام عمل -
کہ میں جواب دے گا ایک ناقابل یقین حد تفصیلی سوال ہے.
ایک مختصر ہے - ٹھیک ہے، ٹومی اور میں مختصر کر دیا.
بدقسمتی سے یہ 26 منٹ کی طرح ہے، تو یہ ایک مختصر نہیں ہے. یہ ایک طویل ہے.
لیکن ہماری مختصر، ان میں سے صرف ایک مثال ہے جس میں RSA پر تھا
اور اس RSA مجموعی طور پر HTTPS پروٹوکول کا حصہ ہے.
خیال - RSA عوامی اہم خفیہ نگاری کی ایک مثال ہے
جس میں آپ کو 2 الگ الگ چابیاں کا مطلب ہے.
آپ اصل میں چیزیں خفیہ کرنے کیلئے 1 بٹن کا استعمال،
اور آپ چیزوں بےرمز کرنے کے لئے ایک اور اہم استعمال.
آپ چیزوں کو خفیہ کرنے کے لئے استعمال ہے کہ اس اہم عوامی ہے کہ ایک ہے.
ویب سائٹ اگر آپ اس خفیہ کاری کلید بھیج سکتے ہیں.
وہ آپ ہے کہ خفیہ کاری کلید بھیجتے ہیں، اور آپ کو ان سے کچھ واپس بھیجنے کے لئے چاہتے ہیں جب
آپ کو آپ کے اعداد و شمار کے تمام خفیہ اور ان کو بھیجنے کے لئے کہ مخفی کلید کا استعمال کرتے ہیں.
تو، وہ ذاتی کلید کے ساتھ ہی ہیں.
کہ نجی کلید نام سے جانا جاتا ہو گیا تو پھر کوئی بھی آپ کے ڈیٹا بےرمز کرنے کے لئے قابل ہو جائے گا.
لیکن اس کے ذاتی کلید - عوامی کلید ریاضی متعلقہ ہے، لیکن آپ نہیں کر سکتے ہیں جو
نجی کلید ڈیٹا بےرمز کے لئے استعمال کیا جا سکتا ہے تاکہ - دیگر سے باہر ایک اعداد و شمار.
وہ نجی کلید کے ساتھ صرف وہی ہیں،
وہ اعداد و شمار پڑھ سکتے ہیں جو صرف وہی ہیں.
عوامی چابی، عوامی ہے تو اگرچہ
میں ایک ہی کا استعمال کرتے ہیں - میں Google.com یا جو کچھ بھی کرنے کے لئے جب،
وہ، میں ایک سے زیادہ نہیں جانتے ہو سکتا ہے - لیکن میں Google.com پر جاتے ہیں،
وہ Google.com پر جاتا ہے، وہ جاتا ہے Google.com -
ہم سب تاہم ہم چاہتے ہیں ہماری اپنی معلومات کے خفیہ کرنے کے لئے ایک ہی عوامی چابی استعمال کر سکتے ہیں.
لیکن ہم میں سے کوئی بھی اعداد و شمار کرنے کے قابل ہو جائے کرنے کے لئے جا رہے ہیں - بےرمز کرنے کے قابل ہونے جا رہے ہیں
عوامی چابی بےرمز کرنے کے قابل نہیں ہے، ان کی معلومات کی وجہ سے.
یہ صرف خفیہ کر سکتے ہیں.
اور اس کا مذاق / تفصیلی ریاضی ہے - ماڈیول آپریٹرز اور exponentials اور سامان کا ایک گروپ کی طرح،
یہ صرف ذاتی کلید ہے کہ کر سکتے ہیں صرف ایک ہی چیز ہے کہ باہر کام کرتا ہے
عوامی چابی کی خفیہ کاری کا سامان بےرمز.
جی ہاں. مزید تفصیلات کے لئے RSA مختصر ملاحظہ کریں.
[Student کی] اس ویب سائٹ پر ہے؟
[روب] جی ہاں، میں نے اسے اس مقام پر ہے. یا اس سے کم از کم ایک یو ٹیوب لنک پوسٹ کیا گیا تھا.
چلو دیکھتے ہیں. شارٹس. میں اس ہفتہ 2 سے متعلق ہوتا ہے. جی ہاں. RSA.
اور یہ ہے - 24 منٹ - اس کو کھیلنے کے لئے نہیں جا رہا we're.
یہ ایک طویل سے ایک ہے.
>> مزید سوال؟
[طالب علم] bitmasks کے بارے میں مختصر طور پر بات کر سکتے ہیں؟ >> [روب] جی ہاں.
مختصر طور پر، خیال صرف اس طرح ہے - >> [طالب علم] یہ، روب کیا ہے؟
[روب] Bitmasks. خیال ہے - صرف ہم کچھ کہتے ہیں - کچھ عددی کا استعمال کرتے ہوئے we're -
INT X - لہذا، ہم یہ 0 سے شروع.
اب، اس عددی 32 بٹس ہے، لہذا ان بٹس کی کسی ایک 1 نمائندگی کرنے کے لئے استعمال کیا جا سکتا
ایک مخصوص FLAC.
آپ کے آپریٹنگ سسٹم کے کوڈ میں نظر آتے ہیں، وہ سب جگہ پر اس کا استعمال اس کا ہے جہاں
شاید سب سے اوپر کہیں وہ ہیش کی وضاحت ہے -
کی کچھ مثالیں دیکھتے ہیں.
انسان-2-کھولیں - اوپن سسٹم کال ہم اس کے دلائل میں سے ایک INT پرچم ہے کہ یہاں دیکھ سکتے ہیں -
دلیل ہے کہ ان کے جھنڈے میں سے کچھ ہیں کے طور پر اس کی امید کیا.
ہم O_append، O_ASYNC، O_CLOEXEC، دیکھ
O_CREAT، اور اسی طرح کی.
O_DIRECT. پرچم کے ان قسم کے کہیں ہیش کی وضاحت کر رہے ہیں.
اور ان سب بالکل 1 تھوڑا سا ہے.
تو، O_CREAT ہیش کی وضاحت کے طور پر 1، بائیں شفٹ، 4 ہو سکتا ہے (1 << 4).
یہ صرف جا رہا ہے O_CREAT میں استعمال کرتے ہیں جب بھی - وہ جا رہا ہے -
بائنری 1، 0، 0، 0، اور 30 ​​ISH سے zeros میں اس سے پہلے.
یہ صرف ایک تھوڑا سا ایک سیٹ ہے، اور یہ کہ تھوڑا سا اس پرچم کی نمائندگی کرتا ہے.
اور اس کے علاوہ کوئی پرچم 4 کی طرف سے بائیں منتقل کر دیا جا رہا ہے.
میں کر کے ایک واحد عددی میں 32 پرچم تک نمائندگی کرنے کے قابل ہوں -
X = O_CREAT بٹ وار یا O_DIRECT.
آپ کو صرف ان کے پرچم کے کسی بھی 2 اٹھا رہے ہیں.
اب X 2 بٹس کے مطابق جس میں قائم 2 بٹس کی جا رہی ہے
O_CREAT اور O_DIRECT کی.
تو اس طرح - تو پھر ہم کھلی تقریب میں ایکس منظور،
اور کھلے ضروریات اصل میں مقرر کیا گیا پرچم کو دیکھنے کے لئے.
اس طرح چیزیں کرنے کے لئے کہاں جا رہا ہے تو، ہے
(X اور O_CREAT) کچھ کرنا ہے تو،
یا (X & O_DIRECT) کچھ کرنا ہے تو،
اور پھر ہم نے مقرر نہیں کیا ہے کہ کچھ پرچم ہو سکتا ہے -
اگر (X & O_ - میں دیگر کے پرچم تھے پتہ نہیں کیا -
(X اور O_RDONLY) - اس مخصوص حالت قتل نہیں جا رہا ہے.
یا کوڈ کی ہے کہ بلاک قتل نہیں جا رہا ہے،
ان 2 پرچم قائم کی گئی تھی کیونکہ ان 2 ہیں.
اور C میں، 0 نہیں ہے کہ کسی بھی قیمت سچ ہے کہ محسوس.
تو، (X اور O_CREAT) 0 یا O_CREAT یا تو ہو جائے گا
O_CREAT صرف ایک تھوڑا سا سیٹ ہے کیونکہ.
کہ تھوڑا سا اگلا مقرر کیا گیا ہے، تو اس O_CREAT واپس جا رہا ہے -
صرف یہ ہے کہ تھوڑا سا مقرر کیا گیا ہے، جہاں ثنائی.
کہ تھوڑا سا اگلی سیٹ نہیں ہوتا ہے تو، پھر اس کے پرچم مقرر نہیں کیا گیا تھا پتہ ہے جس صورت میں، 0 واپس جا رہا ہے.
یہ ہے کہ آپ bitmasks استعمال کا طریقہ یہ ہے.
میں ایک گزشتہ امتحان یا شاید کلاس یا کچھ اور میں لگتا ہے کہ -
آپ کو ایک متغیر کی ثنائی پرنٹ bitmasks استعمال کر سکتے ہیں.
بائیں شفٹ، 0، 1 - - پر looping - تو میں استعمال کر سکتے ہیں اور پھر پرنٹ X & کہ اگر -
X & 1، بائیں شفٹ، 0 - اور پھر پرنٹ 0 یا 1. یا 1 اور پرنٹ ایک 0 پرنٹ.
اور پھر میں نے ایک بار پھر جانا - اگر X & 1، بائیں شفٹ، 2 - پھر اس کا مطلب ہے کہ دوسرے سا
متغیر سیٹ ہے، تو میں نے ایک 0 پرنٹ 1 اور پرنٹ.
اور میں ہم اصل معکوس ترتیب کی وجہ سے میں ایسا کرنے کے لئے چاہتے ہو سکتا ہے لگتا ہے
عام طور پر آپ کے بائیں جانب سب سے زیادہ کے لئے بٹس ہونا چاہتے ہیں
اور دائیں جانب سب سے کم آرڈر بٹس ہو، تو یہ کہ شاید لوپ 4 int میں = 31 میں 0 مارا جب تک، پر
تو عین حالت ہے کہ - ایکس & 1، بائیں شفٹ، میں تو کسی 1 0 پرنٹ.
[Student کی] آپ کا شکریہ.
>> [روب] میں ہم وقت سے باہر ہو.
باہر کے وقت سیکنڈ کے آخری جوڑے میں مزید کوئی سوال؟
ٹھیک ہے. کل قسمت اچھا.
یہ اگلے ہفتے کے اختیاری ہونے جا رہا ہے جہاں گزشتہ سیکشن تھا.
میں quizzes ہے واپس دے دیں گے اور ہم نے ان پر جاؤ اور ہو سکتا ہے کہ دوسری چیزوں پر جا سکتے ہیں
آپ کو اس منصوبے کی چیزیں، یا مستقبل CS کلاس چیزوں میں دلچسپی، یا حتمی تھے - یا مجھے پتہ نہیں ہے.
لیکن یہ آخری مواد سے بھرے سیکشن ہے.
الوداع!
(تالیاں).
>> [CS50.TV]