[کا جائزہ لیں: کوئز 1] [علی Nahm، Oreoluwa Barbarinsa، لوکاس Freitas میں، روب Bowden] [ہارورڈ یونیورسٹی] [یہ CS50 ہے.] [CS50.TV] [لوکاس Freitas میں] سب خوش آمدید. اس کوئز 1 کے لئے جائزہ لینے کے ہے. بس ایک تردید کے طور پر، یہ ہے - میرا مطلب ہے، ہم پورا کرنے کے لئے کوشش کرنے کے لئے جا رہے ہیں ممکن ہے، لیکن کے طور پر زیادہ سے زیادہ مواد اس کا مطلب یہ نہیں ہے کہ ہم کوئز 1 میں ہو سکتا ہے کہ سب کا احاطہ کرنے کے لئے جا رہے ہیں. تو تم بھی ایک لیکچر دیکھو، حصوں، آپ کر سکتے ہیں کہ سب کچھ لے اس بات کا یقین. 1 کوئز بدھ، اگلے بدھ کو ہونے جا رہا ہے. تو مطالعہ کرنے کے لئے اس بات کا یقین. یہ پہلی کوئز کی طرح، بہت، جا رہا ہے اس کی شکل کے بارے میں، لیکن یہ شاید بہت مشکل ہو رہا ہے. میں 50 لیا جب کم از کم، گزشتہ سال، میں نے اسے بہت مشکل تھا. تو ایک بہت مطالعہ. میں ڈیٹا ڈھانچے احاطہ کرنے کے لئے جا رہا ہوں اور Huffman کوڈنگ. یہ لوگوں کی ایک بہت پیچیدہ ہے لگتا ہے کہ کچھ ہے لیکن میں یہ ممکن طور پر آسان بنانے کے لئے کوشش کرنے کے لئے جا رہا ہوں. سب سے پہلے، کیا ہم لوگ آپ کے کوئز 1 کے لئے جاننا چاہتے ہیں کے لئے ہے میں پیش کرنے کے لئے جا رہا ہوں کہ اعداد و شمار کے ڈھانچے میں سے ہر ایک کی تصوراتی وضاحت کو سمجھنے. یہ ہے کہ آپ کی ضرورت نہیں ہے کا مطلب ہے کہ اصل میں آپ 1 کوئز میں ہیش کی میز پر عمل درآمد. ہم آپ کو ایک پورے ہیش میز پر عملدرآمد چاہتے ہیں نہیں ہے، شاید ہم کوشش کریں گے آپ کو کچھ کام کرتا ہے کو لاگو کرنے کے لئے، سب سے زیادہ عام آپریشن، لیکن ہم آپ کو سب کچھ پر عمل درآمد کرنے کے لئے نہیں کر رہے ہیں. تو یہ آپ کو ہر ایک کے اعداد و شمار کے ڈھانچے کے پیچھے تصور سمجھتے ہیں کہ ضروری ہے اور بھی آپ سی میں کوڈ کرنے کے قابل ہیں، وہ ایک آنکڑا ڈھانچہ کے لئے ہے صرف سب سے زیادہ عام کی کارروائیوں. اور بھی، اشارہ اور structs جائزہ لینے کے لئے کے قابل ہو جائے ان اعداد و شمار کے ڈھانچے میں بہت ظاہر ہے کیونکہ. سب سے پہلے، فہرست منسلک. لنک کی فہرست اصل arrays کے بہت ملتے جلتے ہیں، لیکن ایک لنک کی فہرست اور ایک صف کے درمیان فرق، سب سے پہلے،، ایک لنک کی فہرست ایک بہت لچکدار سائز ہے کہ arrays میں آپ صف کے لئے ایک بہت بڑے سائز منتخب کرنے کے لئے، یا تو ہے، جبکہ، تو آپ کو، آپ کو اس صف میں اپنے تمام ڈیٹا ذخیرہ کرنے کے قابل ہو جائے جا رہے ہیں جانتے ہیں کہ یا آپ کو صف کے ایک لچکدار لمبائی ہے پر malloc کا استعمال کرنے کی ضرورت. منسلک کی فہرست میں یہ صرف زیادہ عناصر حاصل کرنے کے لئے بہت آسان ہے، منسلک فہرست میں زیادہ سے زیادہ عناصر کو یا عناصر کو ہٹانے کے. اور اصل میں، آپ کو لنک کی فہرست کے مطابق رکھا جائے نہیں کرنا چاہتے ہیں تو، آپ کو تلاش اور مسلسل وقت میں عناصر ختم کر سکتے ہیں، تو اے (1) وقت، تو یہ بہت آسان ہے. آپ کو صرف، نوڈس ہمیشہ MALLOC کرنے کے لئے یاد کرنے کے لئے ہوشیار اور مفت ہونا ہے آپ ایسا نہیں کرتے ہیں تو، آپ میموری لیک پڑے گا صرف اس وجہ سے. تو منسلک کی فہرست - ایک نوڈ کی تعریف صرف ہم نے وہاں کیا ہے کی طرح ہے. میں int ن ڈال دیا، لیکن اگر آپ چاہتے ہیں کسی بھی اعداد و شمار کے محفوظ کر سکتے ہیں. آپ کو ایک تار محفوظ کرنا چاہتے ہیں تو، یہ ٹھیک ہے. آپ ایک struct محفوظ کرنا چاہتے ہیں، تو یہ آپ چاہتے ہیں جو کچھ بھی،، ایک ڈبل ٹھیک ہے. میں یہاں صرف مثالیں کے لئے int ن ڈال دیا. اور آپ کو اگلے نوڈ پوائنٹر ہے. تو، بنیادی طور پر، ایک لنک کی فہرست کچھ ڈیٹا ہے، اور پھر یہ اگلے نوڈ کی طرف اشارہ. اس سے منسلک فہرست میں آخری عنصر ہے تو، یہ نل کی طرف اشارہ کرنے جا رہا ہے. تو یہ ایک لنک کی فہرست کی ایک مثال ہے. ٹھیک ہے، تو اب میں ایک لنک کی فہرست میں ایک عنصر داخل کرنا چاہتے ہیں، اگر ہمیں کیا کرنا چاہئے دیکھتے ہیں. سب سے پہلے، ایک تقریب ڈالیں قسم باطل ہو جائے گا میں کچھ بھی واپس نہیں کرنا چاہتے کیونکہ. اور میں ایک دلیل کے طور ایک int لے جا رہا ہوں، میں داخل کرنا چاہتے ہیں معلوم ہے کہ کیا کرنا چاہتے ہیں. تو مجھے کیا کرنا چاہئے سب سے پہلی چیز کیا ہے؟ ٹھیک ہے، میں newnode پر MALLOC چاہئے، تو ہے کہ پہلی سطر ہے. میں نے صرف ایک لنک کی فہرست میں ڈال ایک نیا نوڈ پیدا کر رہا ہوں. تو میں کیا کر سکتے ہیں؟ ٹھیک ہے، ہم جانتے ہیں کہ لنک کی فہرست کے ہمارے نفاذ میں کلاس میں، ہم نے ہمیشہ ایک عالمی متغیر کے طور پر سر ڈال. تو کیا ہم کر سکتے ہیں سر تبدیلی ہے. میں اس نئے نوڈ نئے سربراہ ہو کر سکتے ہیں، اور اس کے پچھلے سربراہ کی طرف اشارہ کرنے جا رہا ہے. ہم اس کو کس طرح کر سکتے ہیں؟ مجھے کیا کرنا ہے سب سے پہلی چیز ، قیمت پر نیا نوڈ میں 'ن' تبدیلی ہے تقریب منظور کیا گیا تھا جس میں. پھر newnode اگلا سر کی جا رہی ہے. سر newnode جا رہا ہے. تو یہ بہت آسان ہے. ایک نوڈ خارج کرنے کے لئے، ہم جیسے یہ کر سکتے ہیں - ہم ایسا کر سکتے ہیں کا ایک طریقہ کا کہنا ہے، ٹھیک ہے، میں نے کو خارج کرنا چاہتے ہیں، مثال کے طور پر، 3، میں کیا کر سکتے ہیں صرف گزشتہ نوڈ نقطہ ہے 3 اگلا نوڈ. تو میں صرف اس طرح کچھ کرنا ہوگا. لیکن اس کے کرنے میں کیا مسئلہ ہے؟ میں ایک میموری لیک ہے، تو میں اب نمبر 3 کے لئے رسائی حاصل نہیں ہے. اس کے ساتھ مسئلہ میں اس نوڈ آزاد کرنے کے قابل ہو جائے کرنے نہیں جا رہا ہوں یہ ہے کہ. میں نے میموری لیک اور (unintelligible) مجھ سے نفرت کی جا رہی ہے کے لئے جا رہا ہوں. تو بجائے اس کے کہ ایسا کرنے کی، میں شاید ایک عارضی پوائنٹر ہونا چاہئے. تو میں نے TEMP ڈال دیا. یہ میں نے حذف کرنا چاہتے ہیں نوڈ کی طرف اشارہ کرنے جا رہا ہے. اور پھر میں نے اگلے نوڈ کی طرف اشارہ کرنے کے لئے گزشتہ نوڈس منتقل کر سکتے ہیں میں نے حذف کرنا چاہتے ہیں نوڈ کی. اور آخر میں، میں نے پوائنٹر آزاد کر سکتے ہیں. میں وہیں پیدا پوائنٹر آزاد کرنے کے لئے ہے؟ میں، صرف اس وجہ سے نہیں ہے - فرق یہ نوڈ malloc کا استعمال کرتے ہوئے تخلیق کیا گیا ہے، یہ صرف ایک اسٹیک میں ایک نل سوئچ کے طور پر قرار دیا گیا ہے جبکہ تو یہ، ڈھیر میں ہے. تو میں نے اسے آزاد کرنے کی ضرورت نہیں ہے. ٹھیک ہے. تو اب stacks کے بارے میں بات کرتے ہیں. پوٹ خوبصورت براہ راست ہیں. ہم صرف arrays کے استعمال کرتے ہوئے کلاس میں پوٹ اور قطار کیا، لیکن آپ کو واقف ہونا چاہئے - صرف آگاہ ہونا تم نے بھی اس کے ساتھ ساتھ منسلک کی فہرست کا استعمال کرتے ہوئے قطار میں پوٹ کر سکتے ہیں. آپ کو ایک صف ہے اگر ایسا ہے تو، کیا ایک اسٹیک ہو گا؟ ایک اسٹیک، سب سے پہلے، ایک سائز کرنا پڑے گا. آپ اب ہے کہ اسٹیک کا سائز کیا ہے ذخیرہ کرنے کے لئے ہے. اور بھی آپ، تعداد کے اس معاملے میں، ایک صف پڑے گا اگر آپ چاہتے ہیں، لیکن یہ ایک صف ہو سکتا ہے ڈور، struct کے ایک صف، آپ کو محفوظ کرنا چاہتے ہیں کہ کچھ بھی. اسٹیک کے بارے میں: ایک اسٹیک اور ایک لنک کی فہرست کے درمیان فرق اسٹیک میں آپ کو صرف اسٹیک میں ڈال دیا گیا تھا کہ آخری عنصر تک رسائی حاصل ہے. یہ سب سے پہلے باہر، آخری میں کہا جاتا ہے. آپ ٹرے کے اسٹیک کی ہے، جیسا آپ اسٹیک کے سب سے اوپر پر ایک ٹرے میں ڈال دیا تو، آپ کو دوسرے ٹرے تک رسائی حاصل کرنے سے پہلے کہ ٹرے کو دور کرنے کے لئے ہے. یہ پوٹ کے ساتھ ایک ہی بات ہے. میں، مثال کے طور پر، ایک اسٹیک پر ایک عنصر شامل کرنا چاہتے ہیں تو، مجھے کیا کرنا چاہیے؟ دھکا کہا جاتا ہے، اور یہ بہت سیدھا ہے ہے. تمہیں کیا کرنا ہے سب سے پہلی چیز چیک ہے اگر اسٹیک کا سائز زیادہ یا اسٹیک کی صلاحیت کے برابر نہیں ہے. آپ نے پہلے ہی مکمل صلاحیت پر ہیں تو، آپ کو کسی اور چیز کا اضافہ نہیں کر سکتے ہیں. نہیں تو، آپ کو صرف اسٹیک کرنے کے لئے عنصر شامل کرنے کے لئے ہے. اور آخر میں، سائز اضافہ. تو یہ بہت سیدھا ہے. تو میں صرف نمبر 2 میں شامل کریں. میں پاپ کرنا چاہتے ہیں اور اگر، جس میں دور کرنے کے لئے چاہتے ہیں کا مطلب ہے کہ شامل کیا ہے اور عنصر کی قیمت واپس کیا گیا تھا کہ آخری عنصر، میں چیک کرنے کے لیے سب سے پہلی چیز اسٹیک خالی نہیں ہے. اگر یہ خالی ہے، میں نے کچھ واپس نہیں کر سکتے ہیں. اس صورت میں، میں -1 واپس آ رہا ہوں. دوسری صورت میں، میں نے رپورٹ کا سائز تدریج کرنے جا رہا ہوں، اور تعداد (اگر s.size) واپس. میں کیوں سائز تدریج کریں اور پھر اگر s.size واپس کیا؟ اس صورت میں، رپورٹ 4 سائز ہے، کیونکہ یہ ہے اور میں چوتھا عنصر واپس کرنا چاہتے ہیں، ٹھیک ہے؟ لیکن چوتھے عنصر کا انڈیکس کیا ہے؟ تین. میں سائز کرتے - 3 ہونے جا رہا ہے، میں نے صرف (اگر s.size) s.numbers واپس آ سکتے ہیں یہ 3 ہے کیونکہ. تو یہ صرف انڈیکس ہے. اب قطار. قطار بہت ایک ہی چیز ہیں. فرق صرف اتنا ہے، کہ بجائے اس کے آخری میں ہونے کے، سب سے پہلے باہر ہے آپ سب سے پہلے باہر، میں سب سے پہلے ہے. آپ کو ایک کنسرٹ کرنے کے لئے جانے کے لئے انتظار کر رہے ہیں شاید تو، آپ اس کے بجائے ایک قطار کی ایک اسٹیک اگر آپ خوش نہیں ہو گا. آنے کے لئے آخری شخص ہونے کی وجہ سے کنسرٹ داخل کرنے کے لئے سب سے پہلے ہو جائے گا. تم شاید خوش نہیں ہو گا. قطار میں، حاصل کرنے کے لئے سب سے پہلے شخص بھی باہر حاصل کرنے کے لئے سب سے پہلے شخص ہیں. تو ایک قطار کی تعریف میں، صف کے سائز کے علاوہ، آپ کو بھی اسٹیک کے سر پر انڈیکس ہے جس کا سر، ہوگا. اب پہلے عنصر تو. Enqueue پوٹ کے لئے دھکا کے طور پر ایک ہی بات ہے. آپ کو بہت بولی تھے، آپ صرف کا کہنا ہے کہ، مجھے دھکا کے لئے کیا اس کے ساتھ ساتھ، میں صرف بالکل ایک ہی بات کر سکتے ہیں. یہ صلاحیت سے باہر نہیں ہے اگر میں صرف چیک کر سکتے ہیں. اگر ایسا ہے تو، میں دوسری صورت میں صرف نئی قیمت برآمد کر سکتے ہیں، جھوٹے واپس اور پھر سائز اضافہ. لیکن کیوں یہ غلط ہے؟ یہ مثال کے طور پر دیکھتے ہیں. میں سامان کا ایک گروپ enqueue کرنا کوشش کر رہا ہوں، اور پھر میں dequeue اور enqueue کرنا جا رہا ہوں. نہیں حکم دیتا ہے کی ایک بہت ہے، لیکن یہ بہت آسان ہے. میں 5 enqueue، تو 5 شامل کرنے کے لئے جا رہا ہے، اور اس کے بعد 7، رہا ہوں 1، 4، 6، اور پھر میں نے کچھ dequeue کرنا چاہتے ہیں، جس میں پہلا عنصر دور کرنے کے لئے جا رہا ہوں، مطلب یہ ہے کہ. تو میں، نمبر 3 دور کرنے کے لئے جا رہا ہوں؟ پہلا عنصر. ٹھیک ہے. مجھے اور کچھ enqueue کرنے کی کوشش کریں تو اب، کیا ہونے جا رہا ہے؟ میرا عمل درآمد کے مطابق، میں انڈیکس q.size میں اگلے نمبر ڈال کرنے کے لئے جا رہا تھا. اس صورت میں، سائز 8 ہے، تو انڈیکس 8 آخری پوزیشن میں یہاں ہو جائے گا. میں یہاں 1 enqueue کرنا کی کوشش کریں، تو میں آخری پوزیشن overwriting کی جائے گی مکمل طور پر غلط ہے جو نمبر 1، کرنے کے لئے. مجھے کیا کرنا چاہتے ہیں کے ارد گرد لپیٹ دیں اور پہلی پوزیشن پر جانا ہے. ہو سکتا ہے کہ آپ کو صرف اچھی طرح سے، میں نے صرف چیک کرنے کے لیے، کہیں گے میں اصل میں وہاں کچھ ڈال کر سکتے ہیں. اگر نہیں تو، میں صرف اوہ، نیا مکمل صلاحیت، کا کہنا ہے کہ اصل میں صلاحیت ہے - 1، اور آپ کو وہاں ایک عنصر نہیں ڈال سکتا. لیکن مسئلہ کیا ہے؟ مسئلہ یہ ہے کہ میں نے صرف یہاں سب کچھ dequeue تو اور اس کے بعد میں کچھ اور شامل کرنے کی کوشش ہے، یہ صرف کا کہنا ہے کہ، ٹھیک ہے، تم 0 ہے جو مکمل صلاحیت، میں تھے. تو آپ کی قطار گیا ہے. آپ کے ارد گرد لپیٹ کرنے کے لئے ہے، اور ارد گرد ریپنگ کا ایک طریقہ آپ کو بصیرت اور دیگر psets میں میں سیکھا لوگ MOD کا استعمال کرتے ہوئے کیا گیا ہے کہ. آپ q.size + q.head کروں گا کیوں سمجھنے کے لئے گھر میں کوشش کر سکتے ہیں MOD صلاحیت، لیکن آپ کو یہاں چیک کریں، تو، ہم نے یہ کام کرتا ہے دیکھ سکتے ہیں. تو گزشتہ مثال میں، 8 q.size تھا یہاں صف کی اس پوزیشن ہونے کی وجہ سے اور سر، 1 تھا. تو یہ 1 + 8، 9 ہو جائے گا. MOD صلاحیت 9 0 ہو جائے گی. یہ انڈیکس 0 جائیں گے. ہم صحیح پوزیشن میں ہو جائے گا. اور پھر گھر میں قطار کی کوشش کریں. کچھ اہم چیزوں: ایک اسٹیک اور ایک قطار کے درمیان فرق کو سمجھنے کی کوشش. گھر میں، enqueue، dequeue، دھکا اور پاپ کو لاگو کرنے کے ساتھ بہت واقف حاصل کرنے کی کوشش. آپ کو ان میں سے ہر ایک کا استعمال کریں گے اور جب بھی سمجھ. تو Pokemons کے ایک گروپ کے ساتھ 10 سیکنڈ کے لئے آرام. اور اب واپس ڈیٹا ڈھانچے جانے. میزیں ہیش. لوگوں کی ایک بہت ہیش میزیں سے خوفزدہ تھے. مسئلہ 6 سیٹ میں، ہجے پڑتال کار. ہیش میزیں اور کوشش کرتا ہے، بہت سے لوگوں کو ان میں سے ڈرو. وہ سمجھنے کے لئے بہت مشکل ہو. جی ہاں؟ [روب Bowden] مسئلہ سیٹ 5. مسئلہ جی ہاں، 5 مقرر. شکریہ روب. جی ہاں. چھ Huff کے این 'پف، جی ہاں تھا. مسئلہ ہجے پڑتال کار کیا گیا تھا 5 مقرر کریں، اور آپ کو ایک ہیش میز یا ایک کوشش کو استعمال کرنے کے لئے تھا. لوگوں کی ایک بہت وہ سمجھنے کے لئے سپر مشکل تھے نے سوچا کہ، لیکن وہ واقعی بہت آسان ہیں. ایک ہیش میز بنیادی طور پر، کیا ہے؟ ایک ہیش میز لنک کی فہرست کے ایک صف ہے. ایک صف اور ایک ہیش ٹیبل کے درمیان فرق صرف ہیش ٹیبل میں آپ کو ایک ہیش تقریب کہا جاتا کچھ ہے. ایک ہیش فنکشن کیا ہے؟ تم لوگ یہاں پڑھ سکتے ہیں تو مجھے پتہ نہیں ہے. یہ ایک ہیش کی میز کی ایک مثال ہے. تو اگر آپ کو 31 عناصر کے ساتھ ایک صف ہے دیکھ سکتے ہیں. اور کیا ہم ایک ہیش ٹیبل میں کیا ایک ہیش تقریب ہے ہے کہ ایک اہم ترجمہ کرنے کے لئے کی جا رہی ہے، ہر ایک انڈیکس پر int. اگر، مثال کے طور پر، میں نے بی ہیریسن کے لئے منتخب کرنے کے لئے چاہتے ہیں، میں اپنے ہیش افعال میں بی ہیریسن ڈال دیں گے، اور ہیش تقریب 24 واپس کریں گے. تو میں نے 24 میں بی ہیریسن محفوظ کرنا چاہتے ہیں جانتے ہیں کہ. تو یہ صرف ایک صف ہے اور ایک ہیش ٹیبل کے درمیان فرق ہے. ہیش ٹیبل میں آپ کو بتانے کے لئے کی جا رہی ہے کہ ایک تقریب پڑے گا جہاں آپ کو محفوظ کرنا چاہتے ہیں کہ ڈیٹا ذخیرہ کرنے کے لئے. ہیش تقریب کے لئے، آپ کو ایک ہیش تقریب کے لئے نظر کرنا چاہتے ہیں کہ نیتاتمک اور اچھی طرح سے تقسیم کیا ہے. آپ یہاں دیکھ سکتے ہیں، آپ کو میں نے دکان پر چاہتے تھے کہ اعداد و شمار کے ایک بہت ہیں اصل 19 تھا دیکھتے ہیں کہ اس کی بجائے تمام مفت تھے جو 31 اور 30 ​​اور 29، کا استعمال کرتے ہوئے. تو میں نے استعمال کیا ہے کہ ہیش تقریب بہت اچھی طرح تقسیم نہیں تھا. ہم اچھی طرح تقسیم، کا کہنا ہے کہ، یہ، ہم چاہتے ہیں کہ اس کا مطلب تقریبا، کم از کم 1 یا ہر ایک کے لئے 2 - کی طرح، arrays میں سوچکانکوں میں سے ہر ایک کے لئے 1 یا 2 کا فرق. آپ، تقریبا، صف میں ہر منسلک فہرست میں عناصر کی ایک ہی تعداد ہے کرنا چاہتے ہیں. اور یہ، ہیش ٹیبل میں درست ہے ہیش ٹیبل کے طور پر دیکھنے کے تو چیک کرنے کے لئے آسان ہے. پھر درخت. یہ ایک درخت ہے. کمپیوٹر سائنس میں درخت کسی وجہ کے لئے نیچے الٹا ہیں. تو یہاں آپ کو درخت کی جڑ اور اس کے بعد پتے. آپ کو صرف والدین اور بچے کے لئے نام پتہ ہونا چاہیئے. ہر نوڈ کے والدین ذیل ہیں مراکز ہیں جو اس کے بچوں، ہے. تو، مثال کے طور پر، 2، وہیں 3 کے لئے اور دوسرے بچے کے لئے والدین کی جا رہی ہے 3 1 کے لئے والدین اور ہیں کہ دوسرے بچوں جا رہا ہے جبکہ. اور 1 تو 3 کے بچے ہونے جا رہا ہے، اور. ہم، بہت زیادہ دلچسپ کچھ، ایک بائنری تلاش درخت کہا جاتا ہے جس میں ایک نوڈ کے حق پر تمام اقدار یہاں، حق پر ہونے کے لئے جا رہے ہیں - دائیں، جڑ میں عنصر سے زیادہ ہونے جا رہے ہیں. حق پر تو میں یہیں نمبر 5 ہے تو، تمام عناصر 5 سے زیادہ ہو جا، اور بائیں طرف ہیں تمام عناصر 5 سے کم جا رہے ہیں. یہ کیوں مفید ہے؟ ٹھیک ہے، میں نمبر 7 یہاں ہے تو چیک کرنا چاہتے ہیں تو، مثال کے طور پر، میں نے صرف پہلے 5 جاؤ اور میں دیکھ رہا ہوں، 5 سے 7 زیادہ سے زیادہ یا اس سے کم ہے؟ یہ بڑا ہے، تو میں اس درخت کے حق پر ہونے کی ضرورت کرنے جا رہا ہے پتہ ہے. تو میں نے کو دیکھنے کے لئے بہت کم چیزیں ہیں. ایک بائنری تلاش درخت، نوڈ کے عمل میں، میں نے صرف، اعداد و شمار کرنے کے لئے جا رہا ہوں تو int ن؛ تم بھی ایک تار کر سکتے ہیں یا تم چاہتے تھے کچھ. آپ کو صرف زیادہ ہے کیا وضاحت پر ہوشیار رہنا ہوگا، کم ہے. تو آپ ڈور تھا، مثال کے طور پر، آپ کی وضاحت کر سکتے ہیں حق پر ان تمام چیزوں کو بڑی لمبائی کے لئے جا رہے ہیں، بائیں کم حد تک کرنے جا رہے ہیں، تو یہ آپ پر منحصر واقعی ہے. میں کس طرح BST کے لئے تلاش کو لاگو کر سکتے ہیں؟ ہم کرنا پڑے گا پہلی بات جڑ خالی ہے چیک کرنے کے لیے ہے. اگر یہ نل ہے، یہ بات نہیں ہے کا مطلب ہے کہ آپ کو بھی ایک درخت، حق نہیں ہے ہے؟ تو میں نے جھوٹے واپس. دوسری صورت میں، میں تعداد زیادہ ہے تو جانچ پڑتال کرنے کے لئے جا رہا ہوں جڑ میں قیمت سے. میں نے دائیں عنصر کو تلاش کرنے کی کوشش کرنے کے لئے جا رہا ہوں درخت کی. تمہیں پتہ ہے میں یہاں تکرار استعمال کر رہا ہوں کہ کو دیکھنے کے. یہ کم ہے تو، میں بائیں کو دیکھنے کے لئے جا رہا ہوں. اور آخر میں، دوسری صورت میں، یہ زیادہ سے زیادہ یا اس سے کم نہیں ہے، یہ اس قیمت پر خود کو ہے کا مطلب ہے کہ. تو میں صرف حقیقی واپس. تم نے تو، تو، تو استعمال کیا جاتا ہے یہاں دیکھ سکتے ہیں. اور یاد رکھو، کوئز 0 میں، ہم،، اگر، تو تھا کہ ایک مسئلہ تھا اور آپ اکشمتا کو تلاش کرنے والے تھے، اور اکشمتا تو آپ کو استعمال کیا جاتا تھا. اگر آپ کسی اور، ورنہ اگر، اگر استعمال کیا جاتا ہے، اور کچھ کیا جانا چاہئے. اور اگر کسی اگر اور کچھ یہاں تو، میں کسی اور استعمال کرنا چاہئے؟ کیا کسی - جی ہاں؟ [Student کی خطابت، اشراوی] یہ بہترین ہے. تو وہ، اس سے کوئی فرق نہیں ہے کہ کہہ رہا ہے صرف اس وجہ سے ہم سے پہلے تھا کہ اکشمتا تھا کہ، بعض کی حالت مطمئن کیا گیا تھا ہو سکتا ہے، تو اس کی وجہ تو آپ کو ایک کارروائی کارکردگی کا مظاہرہ کیا، لیکن پھر آپ دیگر حالات کی تمام چیک کرنے کے لیے جا رہے تھے. لیکن اس معاملے میں، اسے فورا واپس آئے، تو یہ کوئی فرق نہیں پڑتا. تو اگر آپ کسی کو استعمال کرنے کی ضرورت نہیں ہے. اور آخر میں، کی کوشش کرتا ہے کے بارے میں بات، جس میں سب کی پسندیدہ ہے. ایک کوشش arrays کے ایک درخت ہے. یہ اقدار تلاش کرنے کے لئے بہت تیزی سے ہے، لیکن یہ میموری کا ایک بہت استعمال کرتا ہے. اور یہ الفاظ فلٹر کرنے کے لئے عام طور پر ہے، تو جب آپ آپ کے فون میں فون کتاب کی طرح، مثال کے طور پر، مجھے پتہ نہیں ہے، لاگو کرنے کے لئے چاہتے ہیں، اور آپ کو بی ٹائپ کرنے کے قابل بننا چاہتا ہوں اور صرف بی ہے جو لوگوں کے نام ہیں یہ مثال کے طور پر، ایک کوشش کا استعمال کرتے ہوئے اس پر عملدرآمد کرنے کے لئے بہت آسان ہے. تم کس طرح ایک کوشش میں ایک نوڈ کی وضاحت کر سکتا ہوں؟ آپ کو صرف is_word جا رہا ہے کہ ایک bool ہوگا. یہی وجہ ہے کہ، اس نوڈ سے پہلے تمام حروف کا استعمال کرتے ہوئے ہے کہ کی نمائندگی کرتا ہے آپ کو ایک لفظ بنانے کے لئے کے قابل تھے، اور پھر آپ کو نوڈ اشارہ کی ایک صف پڑے گا. آپ ہم ایک والدین کے مراکز کی صف، تو نوڈ * صف ہے کہ دیکھ سکتے ہیں؟ جی ہاں؟ تو یہ کام کرے گا کس طرح دیکھتے ہیں. جادو چیک کے لئے، ہم 27 عناصر کے ایک صف ہے، ہم تمام خطوط کے علاوہ apostrophe کے کیونکہ. میں نے بورڈ پر لکھنے کے قابل ہونا چاہتے ہیں کیونکہ یہاں سے پہلے میں نے صرف 2 استعمال کرنے کے لئے جا رہا ہوں. ٹھیک ہے. تو یہ ایک کوشش کی ایک مثال ہے. میں نے صرف پہلے نوڈ کی وضاحت، تو میں 2 عناصر کے ایک صف پڑے گا نل 2 اشارہ ہیں، تو میں صرف 'A' اور 'B' ڈال دیا. اور میں is_word کا کہنا ہے کہ ایک bool کرنے جا رہا ہوں. یہ سب سے پہلے ایک کے لئے جھوٹے ہونے جا رہا ہے، صرف، کیونکہ اس سے پہلے آپ کو کسی بھی حروف کی ضرورت نہیں ہے. تو ایک خالی لفظ ایک لفظ نہیں ہے. تو یہ غلط ہے. میں نے اس ڈکشنری 'A' شامل کرنے کے لئے چاہتے ہیں، تو، مجھے کیا کرنا پڑے گا؟ میں نے صرف 'A' کے لئے ایک نیا نوڈ malloc پر پڑے گا، اور اس کے بعد حقیقی کے لئے اس لفظ کا اضافہ. تو یہ صرف 'A' سچ ہونے جا رہا ہے ہے کہ کی نمائندگی کرتا ہے. احساس ہے؟ میں 'بی اے' میں شامل کرنا چاہتے ہیں تو، میں نے 'بی' کے لئے malloc 1 پڑے گا، اور پھر میں نے، جھوٹے پر بولین قائم کرنے کے لئے جا رہا ہوں خود کی طرف سے 'B' ایک لفظ نہیں ہے. پھر میں نے ایک اور 'A' کے لئے ایک، تو بی اے 'MALLOC کرنے جا رہا ہوں، اور پھر میں نے یہ سچ کے لئے ایک لفظ ہے قائم کرنے کے لئے جا رہا ہوں. 'بی اے' ایک لفظ ہے. میں دیکھنا چاہتے ہیں تو 'B'، اس لغت میں ہے میں صرف سب سے پہلے، 'B' پر جا سکتے ہیں. میں نیچے جاؤ، اور میں نے لفظ ہے کو دیکھنے کے، اور یہ باطل ہے. تو یہ ایک لفظ نہیں ہے. میں 'بی اے' کی جانچ کرنا چاہتے ہیں تو، میں نے سب سے پہلے ایک، "بی" کرنے کے لئے جانا، اور پھر 'ایک' پر جائیں، اور میں نے سچ کو دیکھنے کے، تو یہ ایک لفظ ہے. احساس ہے؟ لوگوں کی ایک بہت کی کوشش کرتا ہے کی طرف سے الجھن میں ہو. کوئی؟ آخر میں، Huffman کوڈنگ. Huffman کوڈنگ بہت مفید ہے میموری بچانے کے لئے اور متن فائلوں سکیڑیں کرنے کے لئے، صرف اس وجہ سے آپ کو مثال کے طور پر، 'A' اور 'ای' کا استعمال وقت کی ایک بہت، تم لوگوں کو زیادہ سے زیادہ 'ق' یا 'Z' استعمال کرتے ہیں تو آپ کے دستاویزات میں، لیکن مجھے پتہ نہیں ہے. ہر ایک کردار کے لئے صرف 1 بائٹ ہو رہی ہے، ہر ایک - ہم ASCII ٹیبل میں ہے کہ 256 حروف بہت زیادہ سے زیادہ نہیں ہے، آپ کو بہت زیادہ استعمال کرتے ہیں کہ کچھ حروف ہیں صرف اس وجہ سے، تو آپ شاید ان لوگوں کے لئے کم میموری استعمال کرنا چاہئے. میں کس طرح Huffman کوڈنگ استعمال کرتے ہیں؟ ہم نے ایک Huffman درخت کرنا ہے.  ایک Huffman درخت نوڈس ہے خط، 'سی'، 'B'، 'A'، کی طرح کی جا رہی ہے کہ ایک علامت ہے کہ، آپ کے پاس جو کچھ بھی خط، لفظ متن میں ظاہر ہوتا ہے کہ تعدد ہے کہ ایک تعدد، آپ کے لئے Huffman درخت پیدا کیا گیا ہے اور پھر Huffman درخت کے بائیں کی طرف اشارہ کرنے جا رہا ہے کہ ایک نوڈ اور حق کی طرف اشارہ کرنے جا رہا ہے کہ دوسرے نوڈ. تو صرف ایک درخت کی طرح. کس طرح آپ کو ایک Huffman درخت کی تعمیر کرتے ہیں؟ آپ سب سے کم تعدد ہے کہ 2 نوڈس لینے کے لئے جا رہے ہیں. آپ کو ایک ٹائی ہے تو آپ 2 نوڈس لینے کے لئے جا رہے ہیں اس کے ساتھ ساتھ سب سے کم ASCII اقدار ہے. تو پھر آپ کو ان 2 نوڈس کے باہر ایک نیا درخت بنانے کے لئے جا رہے ہیں کہ والدین کی نوڈ میں مشترکہ تعدد کی جا رہی ہے. اور پھر آپ کو جنگل سے 2 بچوں کو دور کرنے کے لئے جا رہے ہیں اور والدین کے ساتھ ان کی جگہ لے لے. اور تم صرف جنگل میں 1 درخت ہے کہ جب تک دوبارہ کرنے جا رہے ہیں. تو آپ ZAMYLA کے لئے ایک Huffman درخت کرے گا کس طرح دیکھتے ہیں. آپ تمام خطوط کا 'اے' کے علاوہ تعدد 1 ہے کہ یہاں دیکھ سکتے ہیں، تعدد 2 ہے. تو میں نے ASCII قیمت اور تعدد کے حکم میں ڈال دیا تمام خطوط کے لئے نوڈس پیدا. میں سب سے پہلے درخت کو پیدا کرنا چاہتے ہیں اگر ایسا ہے تو، یہ 'ایل' اور 'ایم' کے ساتھ ہو جائے گا. تو یہ یہاں ہے. جوڑی کی فریکوئنسی 2 ہو جائے گا یہ + 1 1 ہے، کیونکہ اس کے بعد سب سے کم تعدد کے ساتھ اگلے 2 'Y' اور 'Z' ہیں. 2 کی فریکوئنسی ہے - اور اس کے بعد میں کیا جا رہا ہے ان میں سے سب ہے. تو اگلے ایک کے لئے سب سے کم ASCII قیمت ہے کہ لوگ جو ہیں؟ 'A' اور 'ایل'. تو میں نیا نوڈ بنانے کے، اور آخر میں، یہ 4 اور 2 ہے، تو 2 بائیں طرف کی جا رہی ہے. اور یہ Huffman درخت ہے. میں کچھ متن لکھنے کے لئے چاہتے ہیں پھر اگر، جیسے Huffman درخت کا استعمال کرتے ہوئے، متن تبدیل کرنے کے لئے بائنری میں بہت آسان ہے. میں نے بائیں منتقل 0 اور دائیں منتقل کرنے کا کہنا ہے کہ اگر مثال کے طور،، 1 ہے کیا کی نمائندگی کرنے جا رہا ہے؟ اتنی پسند 1، 1، ٹھیک ہے، تو ٹھیک ہے، اور اس کے بعد تو بائیں 0، L ہو گی، اور پھر 1، 0، 0. تو 1، 0، تو 1، 0، 'A'. اور پھر 0، 1، تو 'Z'. اور پھر 1، 0، 0 - کوئی. 0، 0 'Y' ہو، اتنا سست گا. تو یہ سب میرے لئے ہے، روب پر لے جا رہا. [روب Bowden] تو، ہفتہ 7 چیزیں. ہم بہت تیزی پر جانے کے لئے ایک بہت مل گیا ہے. bitwise آپریٹرز، بفر اتپرواہ، CS50 لائبریری، تو ایچ ٹی ایم ایل، ایچ ٹی ٹی پی، سی ایس ایس. 15 سے 20 منٹ کی طرح تمام میں. bitwise آپریٹرز. آپ کو جاننے کی ضرورت ہے کہ ان میں سے 6 ہیں. اور bitwise اور، اور bitwise یا، XOR، بائیں شفٹ، RIGHT SHIFT، اور نہیں. صحیح تبدیلی اور آپ بمشکل بالکل درس میں نے دیکھا نہیں. ہم فوری طور پر یہاں اس پر چلے جائیں گے، لیکن یہ ان موجود 6 جانتے ہیں کہ اچھی بات ہے. bitwise آپریٹرز تم + 4 3 جب کی طرح ہیں یاد رکھیں کہ. آپ 3 اور 4 کی بائنری کے ساتھ نمٹنے نہیں کر رہے ہیں. bitwise آپریٹرز کے ساتھ آپ کو اصل میں نمبر 3 اور 4 کے انفرادی بٹس کے ساتھ نمٹنے کر رہے ہیں. تو ہم کہیں گے کہ سب سے پہلے ایک اور bitwise، نہیں ہے اور یہ کرتا ہے تمام بٹس پلٹائیں ہے. آپ C میں یہ لکھ رہے ہیں اگر ایسا ہے تو، یہاں، آپ کو یہ نہیں لکھا ~ 11011 یا جو کچھ بھی کے طور پر، آپ کو اس ~ 4 طرح لکھنے گی اور پھر اس کے 4 بائنری نمائندگی پلٹائیں گے. تو یہاں، 1 کی ~ کچھ بائنری تعداد کے 1101101 بالکل 0 تمام 1 پلٹائیں کرنے کی جا رہی ہے اور تمام 0 ہے. میں وہاں کا کہنا ہے کہ کے طور پر، اس کے بار بار استعمال، ہم کچھ تعداد کے ساتھ آنے کی چاہتے ہیں اور ہم تھوڑا سا میں نظر آئے گا، ہے بٹس کی تمام ان میں سے ایک کے علاوہ، 1 کہاں ہیں. تو یہ تعداد اظہار کرنے کے لئے عام طور پر آسان ہے صرف یہ ہے کہ ایک سا مقرر کیا گیا ہے، جہاں، اور پھر اس کے ~، تو ہر دوسرے سا ہے کہ ایک کے علاوہ مقرر کیا گیا ہے لے. تو ہے کہ ہم تھوڑا سا میں زیادہ استعمال کرنے کے لئے جا رہے ہیں. اور bitwise یا. یہاں 2 بائنری نمبر، اور ان 2 نمبر ہیں وہ ہر ممکن کی نمائندگی کرتے ہیں، کے بعد سے بہت نمائندے ہیں بٹس کے مجموعہ آپ پر کام کرنے کی ضرورت ہے کر سکتے ہیں. میں ہر سا or'd جب یہاں،، ہم صرف براہ راست نیچے کا موازنہ کرنے جا رہے ہیں. تو بائیں جانب ہم ایک 1 اور 1 ہے. میں اور bitwise جب | ان لوگوں کو، جو میں حاصل کرنے کے لئے جا رہا ہوں؟ ایک. 0 اور 1 کے مجھے دینے جا رہا ہے | پھر اور bitwise؟ ایک. اور bitwise 1 اور 0 ایک ہی بات، ایک جا رہا ہے. اور bitwise 0 | 0 مجھ 0 دینے جا رہا ہے. 0 کیس | تو میں 0 جہاں صرف کیس 0 میں ہے. اور اگر تم صرف اپنے منطقی رینکوں کی طرح اس کے بارے میں سوچ کر سکتے ہیں. آپ کو سچ کے طور پر 1 اور کے طور پر باطل 0 کے بارے میں سوچتے ہیں تو، ایک ہی بات یہاں لاگو ہوتا ہے. تو سچ ہے یا سچ سچ ہے، سچ ہے یا جھوٹ سچ ہے. جھوٹ یا سچ سچ ہے، جھوٹی یا غلط اصل میں غلط ہے کہ صرف ایک ہی چیز ہے. یہاں آپ کو یہ پتہ ہونا چاہئے مثال ہے bitwise آپریٹرز استعمال کیا جاتا ہے جب ایک بہت اچھی مثال کے طور پر. یہاں تو ہم یا Ox20 کے ساتھ دارالحکومت 'A'، اور ہم کچھ حاصل، ایک دوسرے میں ان کو دیکھو گے. اور ہم یا چھوٹے 'A' Ox20 کے ساتھ، ہم کچھ ملتا ہے. تو ASCII ٹیبل ھیںچو. ٹھیک ہے. یہاں ہم 'A' ہے دیکھ - یہاں ہم 'A' 65 دشملو ہے. لیکن میں Ox41 ہے جو شش اعشاری، کے ساتھ جائیں گے. خوبصورت یقین ہے کہ ہم کلاس میں نے اسے دیکھا. میں ہم نے کلاس میں یہ دیکھا ہے یہ شش اعشاری سے بائنری میں تبدیل کرنے کے لئے بہت آسان ہے. تو یہاں، میں بائنری میں 4 ڈال کرنا چاہتے ہیں تو، کہ صرف 0100 پر جا رہا ہے. یہ 1 کی جگہ، 2 کی جگہ، 4 کی جگہ ہے، تو اس 4 ہے. اس کے بعد میں 0001 کی جا رہی ہے جو بائنری، میں 1 تقسیم کر سکتے ہیں. اور اس طرح یہ بائنری میں 'A' کی نمائندگی کی جا رہی ہے. چھوٹے 'A'، اب یہ Ox61 جا رہا ہے لے، اس بائنری میں یہ تقسیم کہاں،، تو ایک 6 - اصل میں کرتے ہیں - کوئی صافی ہے؟ صافی. Ox61. تو بائنری میں 6 تیز + 4 + 2 + 0 0 ہونے جا رہا ہے. اور تیز 1 0001 کی جا رہی ہے. ، ان 2 کے درمیان فرق کو دیکھ ہم ایک چھوٹے اور ایک دارالحکومت 'A' کے درمیان فرق صرف اس ایک سا ہے کہ کو دیکھنے کے. ٹھیک ہے - تو یہاں واپس آنے کے. ہم سا Ox20 جاتا ہے کہ دیکھو، تو یہاں واپس آ رہا اس بائنری میں اتنی تیز Ox20، 0010، 0000 ہے. Ox20، مقرر کیا گیا ہے کہ صرف تھوڑا سا، ہم ساتھ میں فکر مند ہیں کہ اس سا ہے بڑے اور چھوٹے 'A' کے درمیان سوئچنگ کے ساتھ. تو اس میں سے ایک، 'A' ہے جس میں یا 'A'،، اگر میں یا Ox20 کے ساتھ 'A'، کیا میں حاصل کرنے کے لئے جا رہا ہوں؟ [Student کی، اشراوی] چھوٹے حروف 'A'، یہ ایک 1 کے لئے اس تھوڑا پلٹائیں جا رہا ہے کیونکہ. اور اگر میں یا 'A' Ox20 کے ساتھ، کیا میں حاصل کرنے کے لئے جا رہا ہوں؟ ایک چھوٹے، کیونکہ oring 'A' Ox20 کے ساتھ، میں صرف ایک 1 کے لئے اس ایک سا oring جا رہا ہوں، اس سے کوئی فرق نہیں ہے، تو یہ پہلے سے ہی ایک 1 ہے. تو ہم 'A' اور 'A' حاصل. اور bitwise اور. ایک بار پھر، کہ ہم اپنے منطقی اور ہم منصب کے طور پر اس کے بارے میں سوچ کر سکتے ہیں. بائیں جانب ہم سچ اور سچ ہے. یہ سچ ہونے جا رہا ہے، اور کے تمام معاملات کے لئے ہے ، جھوٹے اور سچ ہے یا سچ اور باطل، یا غلط اور جھوٹے ان چیزوں میں سے کوئی بھی درست ہیں. تو جو ہم کو حاصل کرنے کے ختم 1000 ہے. تو اب، یہاں، یہاں میں قابل اعتماد اور bitwise نہیں استعمال کیا ہے جہاں ہے، ہم Ox20 تھا جہاں. تو اس Ox20 ہے. اب میں کیا کرنا چاہتے ہیں، اور bitwise Ox20 کے ~. یہ سب بٹس پلٹائیں کرنے کی جا رہی ہے. تو میں نے 1101، 1111 ہے. اور اس 'A' ~ Ox20 مجھے کیا دینے جا رہا ہے کے ساتھ anded؟ ہم واقعی کے بارے میں سوچنے کی ضرورت ہے صرف تھوڑا سا، اس میں سے ایک ہے کے بعد، ان بٹس کی سب 1 کے لئے مقرر کیا جاتا ہے تو، تو پھر ہم بالکل وہی جو 'ایک' تھا حاصل کرنے کے لئے جا رہے ہیں، کے علاوہ، ممکنہ طور پر، کیا یہ تھوڑا سا ہے. یہ ایک 1 تھا، اب یہ، ایک 0 کرنے کے لئے مقرر کیا جا رہا ہے کیونکہ یہ جو کچھ بھی ہے، اس 0 ہونے جا رہا ہے کے ساتھ anded کیونکہ. تو 'A' ~ Ox20 مجھے دینے جا رہا اور کیا ہے؟ [طلباء جواب، اشراوی] اور 'A' اور کیا ہے - یہ 'ایک' ہے. اور 'A' اور ~ Ox20 مجھے دینے جا رہا ہے؟ 'اے' یہ اس وقت ایک 1 ہے. اس 0 Anding، یہ ایک 0 کرنے کے لئے کی جا رہی ہے اور اب ہم ایک 'A' حاصل کرنے کے لئے جا رہے ہیں. دونوں، ایک 'کر رہے ہیں اور اس قسم کے آخری لیکن نہیں کم از کم، ہم XOR ہے. یہ بہت پسند ہے یا، یہ خصوصی طور پر مطلب ہے کہ یا کے علاوہ. یہ عام طور پر آپ کے طور پر یا حقیقی دنیا میں کے بارے میں سوچ کیا طرح ہے. تو آپ یا تو 'ایکس' یا 'Y'، لیکن دونوں نہیں کرتے. یہاں ^ 1 1 0 ہونے جا رہا ہے. سچ ہے، یہ ہے - یہ منطقی سچ اور جھوٹ کے ساتھ کے طور پر اچھی طرح سے کام نہیں کرتا ، اور bitwise اور اور یا کے طور پر لیکن سچ ^ سچ باطل ہے. صرف ان میں سے ایک سچ ہے تو ہم صرف سچ واپس کرنے کے لئے چاہتے ہیں. تو ^ 1 1 0 ہے. کیا ^ 1 0 کے بارے میں؟ 1 ہے. ^ 0 1 ^ 0 0 0 ہے، 1 ہے. تو تمام حالات کے تحت، 0 اور bitwise کچھ 0 0 ہونے جا رہا ہے. 1 اور bitwise کچھ 0 یا 0 اور bitwise 1، یہ تو | یا ^، یہ ایک 1 ہو جائے گا، اور اس کے اور اگر یہ 0 ہو جائے گا. اور 1 اور bitwise 1 1 نہیں ہے جہاں صرف کیس خصوصی یا کے ساتھ ہے. یہ 0110 ہے. تو یہاں اب، XOR کا استعمال کرتے ہوئے - تو ہم واپس 20 پر ہیں. 'A' ^ Ox20 ہم موازنہ کر رہے ان 2 بٹس ہے. تو 1 ^ 0 مجھے ایک کیا دے رہا ہے؟ ایک ایک. 'A' ^ Ox20 مجھے دینے جا رہا ہے؟ ایک چھوٹے. 'A' ^ Ox20 مجھے دینے جا رہا ہے؟ دارالحکومت A. اس کی وجہ سے کر رہا ہے جو کچھ بھی، Ox20 کے ساتھ اس XORing مؤثر طریقے سے یہ تھوڑی سی جو کچھ بھی ہے flipping کی ہے. یہ ایک 0 ہے، تو اب یہ ایک 1 بننے جا رہی ہے. یہ ایک 1 ہے، ^ 1 1 0 ہے. تو ہمارے 'A' 'A' بن گیا ہے، اور ہمارے 'A' 'A' بن گیا ہے. تو XOR صرف صورت flipping کی کی ایک بہت آسان طریقہ ہے. آپ کو صرف حروف کی ایک تار پر iterate کرنا چاہتے ہیں اور ہر ایک کردار کی صورت متبادل، Ox20 ساتھ آپ کو صرف XOR سب کچھ. اب ہم تبدیلی کے چھوڑ دیا ہے. بائیں شفٹ صرف، بنیادی طور پر، جا رہا ہے میں، یا بائیں نمبروں کی سب دھکا، اور ان کے پیچھے 0 داخل. لہذا ہم یہاں 00001101 ہے. ہم، دائیں سے 3 0 میں آگے بڑھانے کے لئے جا رہے ہیں اور ہم 01101000 حاصل. nonbinary شرائط میں، ہم کہ واقعی 13 بائیں منتقل کر دیا گیا 3 کے ساتھ، ہم 104 ہے جس نمٹنے ہے کہ دیکھتے ہیں. تو بائیں منتقل، ہم کو یہاں دیکھ کر، ایکس << Y بنیادی طور پر ایکس * 2 ^ Y ہے. 3 ^ 13 * 2، 3 ^ 2 تو * 8 13 104 ہے، 8. آپ کو صرف جنرل میں بائنری، کس طرح ہر ایک عددی، کے بارے میں کیا سوچتے ہیں ہم سے شروع، تو یہ پھر 1 کی جگہ، پھر 2 کی جگہ، 4 کی جگہ ہے. تو دائیں 0 میں دھکا کی طرف سے، ہم صرف، 8 کی جگہ پر 4 کی جگہ میں تھے، وہ چیزیں ہیں جو آگے بڑھانے رہے ہیں اور 16 کی جگہ 8 کی جگہ میں تھے وہ چیزیں. ہر شفٹ صرف 2 کی طرف سے سے multiplies. جی ہاں؟ آپ 5 کی طرف سے منتقل کر دیا گیا ہے تو [Student کی] کیا ہوتا ہے؟ [Bowden] آپ کی طرف سے 5 منتقل کر دیا گیا ہے تو آپ کو صرف ہندسے کھو دیں گے. لامحالہ، یہ ایک ہی بات ہے. کی طرح، integers کے صرف 32 بٹس ہیں، آپ کو 2 بہت بڑا integers کے شامل تو، یہ صرف ایک عدد صحیح میں فٹ نہیں ہوتا. تو یہ یہاں ایک ہی بات ہے. آپ 5 کی طرف سے منتقل کر دیا گیا ہے تو، ہم صرف یہ ہے کہ ایک کھو دیں گے. اور یہ کہ "تقریبا" میں کی طرف سے کیا مطلب ہے کی طرح ہے تم بہت دور منتقل، تو آپ بٹس کھو جہاں. RIGHT SHIFT کے برعکس جا رہا ہے، ہم آخر میں بند کر 0 دھکا کہاں جا رہے ہیں اور ہمارے مقاصد کے لئے، بائیں سے 0 میں بھرنے. تو یہ کر رہے، ہم بنیادی طور پر ہم نے پہلے ہی کیا تھا کو تبدیل کر رہے ہیں. اور ہم، حق پر تین 0 صرف گر گئی ہے دیکھتے ہیں کہ اور ہم حق پر 1101 تمام طرح دھکیل دیا ہے. یہ مؤثر طریقے سے، X / 2 ^ Y، ہے، جو، 104 3 کر رہا ہے. تو اب، یہاں، یہ اسی طرح کی ایک خیال ہے. کیوں کہ یہ صرف تقریبا X / 2 ^ Y ہے، اور اصل میں نہیں X / 2 ^ Y؟ میں نے 4 کی طرف سے منتقل کر دیا گیا تھا، تو میں ایک 1 کھو دیا ہے کیونکہ. بنیادی طور پر، صرف عام طور پر عددی ڈویژن کے کیا آپ کے بارے میں سوچنا، لگتا ہے. تو، 5/2 کی طرح ہے 2. یہ 2.5 نہیں ہے. یہ یہاں ایک ہی خیال ہے. ہم 2 کی طرف سے تقسیم، جب ہم راستے میں عجیب بٹس کھو کر سکتے ہیں. تو اب - ہے کہ اور bitwise کے لئے ہے. یہ ہے کہ آپ کو جاننے کی ضرورت ہے. ہم کلاس میں دیکھا استعمال کے مقدمات یاد رکھیں، کی طرح تھوڑا سا ماسک، bitwise آپریٹرز کے لئے مفید ہے یا اگر آپ تھوڑا سا ماسک کے لئے ان کا استعمال. بڑے حروف اور چھوٹے حروف، تبادلوں ایک بہت prototypical مثال ہے. ٹھیک ہے، تو اتپرواہ حملوں بفر. کوئی بھی اس تقریب کے ساتھ کیا غلط تھا یاد ہے؟ ہم نے 12 بائٹس کی ایک صف، 12 حروف، اعلان نوٹس اور پھر ہم 12 حروف پورے سٹرنگ بار کے ہمارے بفر میں کاپی. تو مسئلہ کیا یہاں ہے؟ کیوں 12 - جادو کی تعداد 12 بہت فوری طور پر کے طور پر باہر پاپ چاہئے؟ بار سے زیادہ 12 حروف پر ہوتا ہے تو کیا ہوگا؟ کیا بار حروف لاکھوں ہے؟ یہاں مسئلہ memcpy ہے. بار کافی، ہے تو یہ صرف مکمل طور پر جائے گا - 'سی'، 'سی' یہ صرف 12 حروف تھا کہ پرواہ نہیں کرتا؛ 'سی' یہ ہے کہ بہت سے بائٹس کے قابل نہیں کر سکتے ہیں کہ پرواہ نہیں کرتا. یہ صرف مکمل طور پر چار ادلیکھت ہو جائے گا، ہم اس کے لئے مختص ہے 12 بائٹس، اور میموری میں اس کے ماضی کے سب کچھ اصل میں ہے کہ بفر سے تعلق نہیں ہے جو کچھ بھی سٹرنگ بار ہے کے ساتھ. تو یہ ہم کلاس میں دیکھا تصویر تھی ہم اپنے اسٹیک بڑھتی ہوئی ہے جہاں. آپ ان تصاویر کے لئے استعمال کیا یا پھر ان کے ساتھ واقف ہو جاؤ جانا چاہئے. ہم اپنے اسٹیک بڑھتی ہوئی ہے، میموری پتوں سب سے اوپر 0 میں شروع اور نچلے حصے میں 4 ارب پسند کرنے کے لئے نیچے ہو جاتے ہیں. ہم، کہیں یاد میں ہمارے صف 'سی' ہے پھر ہم اس کے نیچے بار کرنے کے لئے ہمارے پوائنٹر ہے، اور پھر ہم اس کو بچا لیا فریم ہماری واپسی ایڈریس میں پوائنٹر اور ہمارے والدین معمول اسٹیک ہے. واپسی ایڈریس کیا ہے یاد رکھیں؟ اہم ایک تقریب بار بلاتا ہے، ایک تقریب FOO بلاتا ہے جب یہ، ہے لامحالہ، واپسی بار. تو جب بار کی واپسی، وہ اس پر یہ کہا جاتا ہے کہ FOO پر واپس جا رہا ہے کہ جاننے کی ضرورت ہے. تو واپسی ایڈریس جب تقریب کی واپسی کے لئے واپس کرنے کے لئے یہ ہے کہ تقریب کا پتہ ہے. ، آسانی سے، کیونکہ بفر اتپرواہ حملوں کے لئے ضروری ہے کہ وجہ یہ ہے ہیکروں کہ واپسی ایڈریس تبدیل کرنا چاہتے. اس کے بجائے واپس FOO کو جانے کی، میں واپس ہیکر مجھے واپس کرنے کے لئے جانا چاہتا ہے جہاں کہیں بھی جانے کے لئے جا رہا ہوں. اور، آسانی سے، ہیکر اکثر واپس جانا چاہتا ہے جہاں ہم اصل میں تھا کہ بفر کا آغاز ہے. تو، ایک بار پھر، لٹل بھارتی نوٹس. آلات ایک چھوٹی ہندوستانی نظام کی ایک مثال ہے، تو ایک عددی یا ایک پوائنٹر الٹ بائٹس کے ساتھ محفوظ کیا جاتا ہے. تو یہاں ہم دیکھتے ہیں - یہ کیا ہے؟ جی ہاں. ہم Ox80، OxC0، Ox35، OxO8 دیکھ. شش اعشاری ہندسے یاد رکھیں؟ ہم، لٹل بھارتی میں شش اعشاری ہندسے ریورس نہیں ہے 2 شش اعشاری ہندسے ایک بائٹ قضاء، اور ہم بائٹس ریورس کیونکہ. ہم کیوں، طرح، 80530CO8 محفوظ نہیں ہے. ہم سے شروع ہونے والے،، کی بجائے، 2 ہندسوں سے ہر ایک جوڑے کی دکان. اس ایڈریس کے آغاز کا پتہ مراد ہم اصل میں پہلی جگہ میں میں کاپی کرنے کے لئے کرنا چاہتا تھا کہ ہمارے بفر کی. مفید ہے اس کی وجہ کیا ہے تو، کیونکہ حملہ آور بجائے صرف یہ تھا کہ ایک تار ہونے کے، ہوا طرح کا نقصان سٹرنگ، ان کے نام یا کچھ اور، کیا تو، اس کے بجائے، اس سٹرنگ صرف کچھ صوابدیدی کوڈ تھے کہ وہ ایسا کرنا چاہتے تھے جو کچھ بھی کیا ہے؟ تو وہ کر سکتے ہیں - میں کسی بھی ڈاؤن لوڈ، اتارنا کے کوڈ کا سوچ بھی نہیں سکتے. یہ اگرچہ، کچھ بھی ہو سکتا. کوئی تباہ کن کوڈ. وہ چاہتے تھے، وہ صرف SEG گناہ میں کچھ کر سکتے ہیں، لیکن یہ بیکار ہو جائے گا. وہ عام طور پر آپ کے سسٹم کو ہیک کرنے کے لئے یہ کرتے ہیں. ٹھیک ہے. CS50 لائبریری. یہ، بنیادی طور پر، میں GetInt، GetString کے، ان تمام افعال ہم آپ کے لئے فراہم کی جاتی ہے. تو ہم چار * سٹرنگ، اور یہ کہ ہم دور دھماکے سے اڑا دیا ہے کہ تجرید ہے سمسٹر کے دوران کچھ نقطہ پر. ایک تار حروف کی صرف ایک صف ہے یاد رکھیں کہ. تو یہاں ہم GetString کے ایک مشترکہ ورژن دیکھ. آپ یہ اصل میں لاگو ہے کس طرح یاد کرنے کے لئے اس میں واپس نظر آنا چاہئے. کلیدی تفصیلات ہیں، ہم ایک وقت میں ایک کردار میں حاصل نوٹس صرف ہم کی بورڈ میں ٹائپ کی طرح ہے، جس میں معیار سے. تو ایک وقت میں ایک کردار، اور ہم بھی بہت سے حروف ملتا ہے، تو (ن) 1 + کی صلاحیت سے بڑا ہے، پھر ہم اپنے بفر کی صلاحیت میں اضافہ کرنے کی ضرورت ہے. تو یہاں ہم اپنے بفر کے سائز کو دگنا کر رہے ہیں. اور یہ جا رکھتا ہے، ہم اپنے بفر میں کردار داخل ہم ایک نئی سطر یا فائل یا جو کچھ بھی کے آخر حاصل ہے جب تک، جس صورت میں، ہم سٹرنگ اور پھر اصلی GetString کے ساتھ کیا کر رہے ہیں ہم بہت زیادہ میموری مختص، تو یہ واپس جاؤ اور تھوڑا سا چھوٹا کریں گے کی طرح، میموری کم ہے. تو ہم ظاہر ہے کہ نہیں ہے، لیکن اہم خیال ہے یہ ایک وقت میں ایک کردار میں پڑھنے کے لئے ہے. یہ صرف ایک بار میں ایک پوری بات میں نہیں پڑھ سکتا، ان کے بفر صرف ایک خاص سائز کی ہے. یہ بفر میں داخل کرنے کی کوشش کرتا ہے کہ سٹرنگ بہت بڑی ہے اگر ایسا ہے تو، تو یہ اتپرواہ گے. لہذا ہم یہاں کو روکنے کے کہ صرف ایک کردار میں پڑھنے کی طرف سے ایک وقت میں اور ہم کرنے کی ضرورت ہے جب بھی بڑھتی ہوئی. تو GetInt اور دیگر CS50 لائبریری افعال GetString کا استعمال کرتے ہیں ان کے نفاذ میں. تو میں یہاں اہم چیزوں پر روشنی ڈالی. یہ ایک تار حاصل کرنے کے لئے GetString کے بلاتا ہے. GetString کے میموری کو واپس کرنے میں ناکام رہے ہیں تو، GetString کے کچھ mallocs یاد رکھیں کہ، تو آپ GetString فون جب بھی آپ (unintelligible) تمہارے پاس ہے کہ string مفت نہیں ہونا چاہئے. یہ کچھ MALLOC کرنے میں ناکام رہے تو یہاں،، ہم صرف ایک پرچم کے طور پر INT_MAX واپس ہے، ارے، ہم اصل میں ایک عددی حاصل کرنے کے قابل نہیں تھے. میں تم پر واپس جو کچھ بھی نظر انداز، یا چاہئے آپ کو ایک درست ان پٹ کے طور پر اس کا علاج نہیں کیا جانا چاہئے. آخر میں، ہے کہ کامیاب ہو گئے سنبھالنے کے، ہم، اس خاص پرچم کے ساتھ sscanf کی استعمال جس کا مطلب ہے، سب سے پہلے ایک عدد صحیح میچ، تو اس عددی کے بعد کسی بھی حروف سے ملنے. تو ہم نے اسے 1 کے برابر کرنا چاہتے ہیں محسوس. تو sscanf کی واپسی کامیابی کے ساتھ کس طرح بہت سے میچ کر دیا تو کیا ہوگا؟ اس کامیابی کے ساتھ ایک عددی کے مماثل ہے تو اسے 1 واپس آ جائے گا، یہ ایک عددی سے مماثل نہیں ہے تو یہ 0 واپس آ جائیں گے، اور یہ 2 واپس آ جائیں گے یہ مماثلت اگر ایک عددی کچھ کردار کے بعد. تو ہم 1 کچھ بھی لیکن میچ تو ہم دوبارہ کوشش نوٹس. تو ہم داخل ہوئے تو 1، 2، 3، C، یا 1، 2، 3، ایکس، پھر 1، 2، 3 عدد صحیح میں محفوظ ہو جائیں گے، ایکس، کردار میں محفوظ ہو جائیں گے ہم صرف ایک عددی چاہتے ہیں کیونکہ، sscanf کی 2 واپس کریں گے، اور ہم دوبارہ کوشش کریں گے. جلدی سے ایچ ٹی ایم ایل، ایچ ٹی ٹی پی، سی ایس ایس کے ذریعے اڑانے. ہایپر ٹیکسٹ مارکاپ زبان میں ویب کی ساخت اور semantics ہے. ہم یہاں HTML ٹیگ ہے جہاں لیکچر سے مثال ہے. ہم سر ٹیگز، جسم ٹیگز، ہے ہم اصل میں ایک آغاز اور بند ٹیگ نہیں ہے جہاں خالی ٹیگز کی مثالیں ہیں ہم صرف لنک اور تصویر ہے. کوئی اختتامی تصویر ٹیگ ہے، ٹیگ کرنے کی ضرورت ہے سب کچھ کو accomplishes ہے کہ صرف ایک ٹیگ ہے. لنک ایک مثال ہے، ہم آپ کو سی ایس ایس سے منسلک کس طرح نظر آئے گا، سکرپٹ آپ کو ایک بیرونی جاوا اسکرپٹ کا ربط کس طرح کی ایک مثال ہے. یہ ایچ ٹی ایم ایل ایک پروگرامنگ زبان نہیں ہے، بہت سیدھا ہے، اور یاد رکھیں. یہاں، آپ کو یہ کیا کریں گے ایک شکل کی وضاحت یا کم از کم کس طرح یاد ہے؟ اس طرح کی ایک شکل ہے جو ایک عمل اور ایک طریقہ ہے. آپ کو صرف نے کبھی دیکھیں گے طریقوں حاصل کریں اور پیغام ہے. تو حاصل بات یو آر ایل میں ڈال دیا جاتا ہے جہاں ورژن ہے. یہ یو آر ایل میں ڈال نہیں ہے جہاں مراسلہ ہے. اس کے بجائے، فارم سے کسی بھی ڈیٹا HTTP درخواست میں زیادہ پوشیدہ ڈالا جاتا ہے. HTTP درخواست کہاں جاتا ہے تو یہاں، کارروائی کی وضاحت کرتا ہے. یہ کہاں جا رہا ہے google.com / تلاش ہے. طریقہ. حاصل کرنے اور پوسٹ کے درمیان اختلافات یاد رکھیں، آپ کو بک مارک میں کچھ کرنا چاہتے ہیں تو، صرف، ایک مثال کے طور کا کہنا ہے کہ. آپ کو ایک پوسٹ کا یو آر ایل کو بک مارک کرنے کے قابل نہیں ہو گا اعداد و شمار کے یو آر ایل میں شامل نہیں ہے کیونکہ. HTTP، اب، ہایپر ٹیکسٹ ٹرانسفر پروٹوکول ہے. ہایپر ٹیکسٹ ٹرانسفر پروٹوکول، اگر آپ اسے منتقل کرنے کے لئے توقع کریں گے ہایپر ٹیکسٹ مارکاپ زبان، اور یہ کرتا ہے. لیکن یہ بھی آپ کو ویب پر تلاش کسی بھی تصاویر کی منتقلی، آپ کو کسی بھی ڈاؤن لوڈ کے لئے ایک HTTP درخواست کے طور پر شروع. تو HTTP صرف ورلڈ وائڈ ویب کی زبان ہے. اور یہاں آپ کو ایک HTTP درخواست کی اس قسم کو تسلیم کرنے کی ضرورت ہے. کی طرف یہاں پر HTTP/1.1 صرف اس ورژن ہے کا کہنا ہے کہ پروٹوکول میں استعمال کر رہا ہوں. اگر آپ اسے دیکھ لیں گے کے طور پر یہ بہت ہمیشہ، HTTP/1.1 جا رہا ہے. پھر ہم نے اس سے آپ دیکھ سکتے ہیں کہ، متبادل پوسٹ کیا جا رہا ہے، حاصل تھا کہ کو دیکھنے کے. اور میں کا دورہ کرنے کی کوشش کر رہا تھا کہ یو آر ایل www.google.com/search؟q = بلاہ، بلاہ، بلاہ تھا. تو یاد ہے کہ یہ سوالیہ نشان ق = بلاہ بلاہ بلاہ، ایک فارم کی طرف سے پیش کیا جاتا ہے کہ سامان کی طرح ہے. یہ میرے لئے واپس کر سکتے ہیں جواب کچھ اس طرح نظر آئے گا. ایک بار پھر، کہ ہونے جا رہا ہے جس میں پروٹوکول، کے ساتھ شروع، درجہ کوڈ کی طرف سے کے بعد. یہاں یہ 200 ٹھیک ہے. اور آخر میں، میں نے اصل میں کے لئے کہا ہے کہ ویب پیج کے بعد کیا جائے گا. ممکن حیثیت کوڈ آپ دیکھ سکتے ہیں، اور آپ کو ان میں سے کئی کو پتہ ہونا چاہئے. 200 ٹھیک ہے آپ کو شاید پہلے دیکھا ہے. 403 حرام، 404 نہیں ملا، 500 اندرونی سرور کی خرابی آپ کو ایک ویب سائٹ پر جاؤ اور کچھ ٹوٹا ہوا ہے یا ان کے پی ایچ پی کوڈ گر کر تباہ، تو عام طور پر ہے آلات میں ہم جبکہ بڑے اورنج باکس کہ آتا ہے اور اس طرح، کچھ غلط ہے، کا کہنا ہے کہ، اس کوڈ کام نہیں کرتا یا اس تقریب کے برے. عام طور پر ویب سائٹ، آپ کے افعال اصل میں برا معلوم نہیں کرنا چاہتے تو بجائے اس کے کہ وہ صرف آپ کو 500 اندرونی سرور کی غلطیاں دے دونگا. TCP / IP HTTP کے تحت 1 پرت ہے. انٹرنیٹ ورلڈ وائڈ ویب سے باہر ہے یاد رکھیں کہ. کی طرح آپ HTTP کے ذریعے جانا نہیں ہے کہ ایک کھیل کھیلنے آن لائن ہیں، یہ ایک مختلف کے ذریعے جا رہا ہے - یہ اب بھی انٹرنیٹ کا استعمال کرتے ہوئے ہے، لیکن یہ HTTP کا استعمال نہیں کرتا. HTTP TCP / IP پر تعمیر پروٹوکول کی صرف ایک مثال ہے. آئی پی لفظی انٹرنیٹ پروٹوکول کا مطلب ہے. ہر کمپیوٹر ایک IP ایڈریس ہے، وہ ان 4 عددی چیزیں ہیں 192.168.2.1، یا جو کچھ بھی طرح، کہ ایک مقامی ایک ہو جاتا ہے. لیکن ایک IP ایڈریس کی پیٹرن ہے. تو DNS، ڈومین نام سروس، کہ ایک حقیقی IP ایڈریس google.com طرح چیزوں کا ترجمہ کیا ہے. تو آپ کو ایک یو آر ایل میں ہے کہ IP ایڈریس ٹائپ کریں تو، کہ گوگل پر آپ کو آئے گا، لیکن آپ کو ان چیزوں کو یاد کرنے کے لئے نہیں ہیں. آپ اس کے بجائے google.com کو یاد کرنے کی کوشش کرتے ہیں. ہم آخری چیز اس IP کے ٹی سی پی کا حصہ ہے جہاں بندرگاہوں، ہے. ٹی سی پی کے زیادہ کرتا ہے. آپ کو آپ کے ویب براؤزر میں چل رہا ہے، کی طرح، کے بارے میں سوچو. ہو سکتا ہے کہ آپ کو کچھ ای میل درخواست چل رہا ہے؛ شاید آپ کو انٹرنیٹ چلانے کا استعمال کرتا ہے کسی دوسرے پروگرام ہے. وہ تمام انٹرنیٹ تک رسائی کی ضرورت ہے، لیکن آپ کے کمپیوٹر صرف 1 وائی فائی کارڈ یا جو کچھ بھی ہے. تو بندرگاہوں ہم نے تقسیم کرنے کے لئے کے قابل ہو اس طرح ہیں ان ایپلی کیشنز کے انٹرنیٹ استعمال کرنے کے قابل ہیں کہ کس طرح. ہر درخواست، اس پر سن سکتے ہیں کہ 1 مخصوص بندرگاہ ہو جاتا ہے اور ڈیفالٹ کی طرف سے، HTTP پورٹ 80 کا استعمال کرتا ہے. کچھ ای میل کی خدمات 25 کا استعمال کرتے ہیں. کم نمبر والوں کو محفوظ کرتے ہیں. آپ عام طور پر خود کے لئے زیادہ گنا ہیں حاصل کرنے کے قابل ہیں. سی ایس ایس، جھرن کاری سٹائل شیٹس. سی ایس ایس کے ساتھ ہم انداز ویب صفحات، نہیں HTML کے ساتھ. آپ کو آپ کی سی ایس ایس ڈال کر سکتے ہیں 3 مقامات ہیں. یہ سٹائل کے ٹیگز کے درمیان، یا ایک مکمل طور پر علیحدہ فائل میں اور پھر اندر سے منسلک، ان لائن ہو سکتا ہے اور یہاں سی ایس ایس کی صرف ایک مثال ہے. آپ اس پیٹرن کو تسلیم کرنا چاہئے، پہلی مثال ہم جسم کے ٹیگ کے ملاپ کے، کر رہے ہیں ہے جہاں اور یہاں ہم جسم کے ٹیگ بمرکز کر رہے ہیں. دوسری مثال، ہم بات ملاپ کر رہے ہیں ID فٹر کے ساتھ، اور ہم اس کے لئے کچھ سٹائل کا اطلاق کر رہے ہیں. بائیں کہ ID فٹر کے متن سیدھ میں لاتا نوٹس جسم متن سیدھ میں لاتا ہے مرکز ہے جبکہ. فوٹر جسم کے اندر ہے. یہ، اس کے بجائے، متن سیدھ جسم متن سیدھ مرکز کا کہنا ہے کہ اگرچہ، چھوڑ دیا جائے گا. اس کے پورے جھرن کاری کا حصہ ہے. آپ کر سکتے ہیں - آپ کے جسم کے لئے سٹائل وضاحت کر سکتے ہیں، اور پھر جسم میں چیزیں آپ کو زیادہ مخصوص سٹائل کی وضاحت کر سکتے، اور چیزوں کی آپ توقع کے طور پر کام. مزید مخصوص سی ایس ایس specifiers مقدم. مجھے لگتا ہے کہ یہ ہے. [علی Nahm] ہیلو سب. میں نے صرف آپ کی توجہ حاصل کر سکتے ہیں. میں نے علی ہوں اور میں بہت تیزی سے پی ایچ پی اور ایس کیو ایل کے ذریعے جانے کے لئے جا رہا ہوں. تو ہم شروع کر سکتے ہیں. پی ایچ پی پی ایچ پی کے لئے مختصر ہے: ہایپر ٹیکسٹ پریپروسیسر. آپ سب کو پتہ ہونا چاہئے کے طور پر، یہ ایک سرور سائیڈ سکرپٹ کی زبان ہے، اور ہم نے ویب سائٹ کے پیچھے آخر کے لئے استعمال، اور یہ سنگننا، پیچھے مناظر حصہ کی ایک بہت کرتا ہے کس طرح. نحو. یہ سی، حیرت، حیرت کی بات نہیں ہے. میں آگے منتقل نہیں کر سکتے ہیں - یہ ہمیشہ آپ دیکھ سکتے ہیں اگر،، کے ساتھ شروع کرنے کے لئے ہے. آپ منحنی خطوط وحدانی کی نئی قسم کی ضرورت ہے دیکھ سکتے ہیں اور پھر آپ بھی؟ پی ایچ پی کی ضرورت ہے. یہی وجہ ہے کہ آپ کو آپ کے پی ایچ پی متن، آپ پی ایچ پی کوڈ بنانے کے لئے ہے کس طرح ہمیشہ ہے. تو یہ صرف آپ کی قسم کے پہلے اس پر ڈال دیا جہاں سی، کی طرح نہیں ہو سکتا. تم ہمیشہ اس کے چاروں طرف کرنے کی ضرورت ہے. اور اب، بڑے نحو تمام متغیر $ کردار کے ساتھ شروع کرنے کے لئے کی ضرورت ہے. آپ ان کی وضاحت کر رہے ہیں جب ایسا کرنے کی ضرورت ہے، آپ کو یہ کرنے کی ضرورت ہے آپ کو بعد میں ان کے حوالہ دے رہے ہیں جب. آپ ہمیشہ ڈالر کی ضرورت ہے. یہ بہت زیادہ، آپ کے نئے سب سے اچھی دوست ہے. آپ ایسا نہیں کرتے - C کے برعکس، آپ کو اس کی ہے متغیر کی قسم کیا قسم کے ڈال کرنے کی ضرورت نہیں ہے. آپ کو $ کی ضرورت ہے جبکہ تو، آپ کو، کی طرح، ڈال کرنے کی ضرورت نہیں ہے INT ایکس یا سٹرنگ Y، وغیرہ، وغیرہ. تو تھوڑا سا فرق. اس کے نتیجے کے طور پر، یہ پی ایچ پی کی ایک کمزور قسم کا مطلب ہے کہ. پی ایچ پی کی ایک کمزور قسم Language ہے، اور یہ کمزور متغیر ٹائپ ہے. دوسرے الفاظ میں، کہ آپ متغیر کی اقسام میں سے مختلف قسم کے درمیان سوئچ کر سکتے ہیں کا مطلب ہے کہ. آپ ایک int کے طور پر آپ کی نمبر 1 جمع کر سکتے ہیں، آپ کو ایک تار کے طور پر محفوظ کر سکتے ہیں، اور آپ کو ایک فلوٹ کے طور پر محفوظ کر سکتے ہیں، اور یہ سب اس کے نمبر 1 ہو جائے گا. آپ کو مختلف اقسام میں ذخیرہ کرنے ہیں چاہے، یہ اب بھی ہے - متغیر اقسام اب بھی آخر میں منعقد کر رہے ہیں. تو آپ یہاں نظر آتے ہیں، آپ pset 7 سے یاد ہے، تم میں سے بہت سے لوگ شاید اس کے ساتھ مسائل تھے. دو برابر نشانیاں، 3 برابر نشانیاں، 4 برابر نشانیاں. ٹھیک ہے، کوئی 4 برابر نشانیاں ہیں، لیکن اس کی 2 اور 3 میں موجود ہیں. تم اقدار کو چیک کرنے کے 2 برابر نشانیاں استعمال کرتے ہیں. یہ اقسام بھر میں چیک کر سکتے ہیں. تو آپ سب سے پہلے مثال کے طور پر دیکھ سکتے ہیں، میں num_int == num_string ہے. تو آپ int اور آپ سٹرنگ دونوں ہیں، تکنیکی، 1، لیکن وہ مختلف اقسام ہیں. لیکن ڈبل برابر کے لئے، یہ اب بھی گزر جائیں گے. تاہم، ٹرپل برابر کے لئے، یہ قیمت کے طور پر ساتھ ساتھ مختلف اقسام کی جانچ پڑتال. یہی وجہ ہے کہ، یہ یہاں ہے کہ دوسری صورت میں منتقل کرنے کے لئے نہیں جا رہا ہے کا مطلب ہے کہ آپ اس کے بجائے 3 کے برابر علامات کا استعمال کرتے ہوئے کر رہے ہیں جہاں. تو وہ تم سب کو اب دکھایا گیا ہے کہ ایک بہت بڑا فرق ہے. سلک concatenation آپ پی ایچ پی میں استعمال کر سکتے ہیں ایک اور طاقتور چیز ہے. یہ بنیادی طور پر صرف اس کام ڈاٹ سنکیتن ہے اور یہ کہ آپ کے ساتھ مل کر ڈور پابند کر سکتے ہیں کس طرح ہے. تو آپ کو بلی ہے اور آپ کو کتا ہے، اور آپ کو ایک دوسرے کے ساتھ 2 ڈور ڈال کرنا چاہتے ہیں تو، آپ کی مدت استعمال کر سکتے ہیں، اور یہ کہ یہ کس طرح کام کرتا کی طرح ہے. آپ یہ بھی صرف ایک دوسرے کے ساتھ ان کی جگہ کر سکتے ہیں، آپ نیچے مثال میں یہاں دیکھ سکتے ہیں کے طور پر، میں سٹرنگ 1، خلائی سٹرنگ 2 بازگشت کہاں ہے. پی ایچ پی کی طرح کے طور پر ان کو تبدیل کرنے کے لئے پتہ چل جائے گا. arrays کے. اب، پی ایچ پی میں، arrays کے 2 مختلف قسم کے ہوتے ہیں. آپ کو باقاعدگی سے arrays کے کر سکتے ہیں، اور آپ کو بھی ساہچری arrays کر سکتے ہیں، اور ہم اب ان کے ذریعے جانے کے لئے جا رہے ہیں. باقاعدہ arrays کے، صرف اس سی میں ہیں اور تو آپ کو گنا کر رہے ہیں کہ سوچکانکوں ہے. اب ہم صرف ایک تخلیق کرنے کے لئے جا رہے ہیں اور ڈال رہے ہیں - تو اس سے ہم ایک خالی صف تشکیل کس طرح ہے، تو پھر ہم جا رہے ہیں انڈیکس 0 نمبر میں ڈال دیا. ہم نمبر 6، 6 قیمت ڈال کرنے جا رہے ہیں. آپ یہاں نچلے حصے میں دیکھ سکتے ہیں. Where's - انڈیکس نمبر 1 میں ہم، قیمت نمبر 4 ڈال کرنے جا رہے ہیں اور تو آپ کو 6 ہے دیکھ سکتے ہیں، ایک 4، ہے اور پھر ہم چیزیں چھپائی رہے ہیں کے طور پر، ہم کوشش کرتے ہیں اور انڈیکس 0 نمبر پر محفوظ قدر کو پرنٹ جب، پھر ہم باہر طباعت کیا جا رہا ہے 6 ویلیو نظر آئے گا. ڈاؤن لوڈ، اتارنا؟ تو یہ آپ کے لئے باقاعدہ arrays کے ہے. تم نے بھی اب باقاعدہ arrays کے چیزیں شامل کر سکتے ہیں ایک اور طریقہ آپ کو صرف ان سے آخر میں شامل کر سکتے ہیں. یہی وجہ ہے کہ آپ کو مخصوص انڈیکس کی وضاحت کرنے کی ضرورت نہیں ہے کا مطلب ہے کہ. آپ کا نمبر دیکھ سکتے ہیں، اور پھر مربع بریکٹ میں وضاحت نہیں انڈیکس ہے. اور یہ پتہ چل جائے گا - پی ایچ پی صرف فہرست، اگلے مفت اسپاٹ کے آخر میں شامل کرنے کے لئے پتہ چل جائے گا. تو آپ کو، کہ 0 موقع پر وہیں 1 دیکھ سکتے ہیں 2 سب سے پہلے موقع پر وہاں گئے تھے. 3 جاتا ہے - بھی شامل ہے. تو اس قسم کی سمجھ میں آتا ہے. آپ کو صرف مسلسل اس اضافہ کر رہے ہیں، اور پھر ہم، نمبر 1 کے انڈیکس گونج رہے ہیں جب یہ قیمت 2 پرنٹ. پھر ہم ساہچری arrays ہیں arrays کے ہے. بجائے عددی سوچکانکوں ہونے کے ساہچری arrays،، کیا وہ کرتے ہیں وہ سٹرنگ کی طرف سے ہیں سوچکانکوں ہے، ہے. آپ کی بجائے، میں دیکھ سکتے ہیں - میں ان تمام لوگوں کی تعداد سوچکانکوں سے چھٹکارا مل گیا، اور اب یہ key1، key2، key3 ہے، اور وہ تمام ڈور ہیں کہ نشاندہی کرنے کے لئے ڈبل قیمت درج کرنے میں ہیں. تو ہم اس کی ایک مثال ہو سکتا ہے. اس کی مثال کے طور پر ہم TF ہے، اور یہ کہ انڈیکس کا نام ہے. ہم، کیلوری کھا، انڈیکس میں، نام کے طور پر "علی" رکھ دیا جا رہے ہیں ہم بجائے ایک تار کے ایک int اس وقت ڈال کر سکتے ہیں، اور اس کے بعد انڈیکس پسند کرتا ہے، ہم اس کے اندر ایک پوری صف ڈال کر سکتے ہیں. تو اس قسم کی ہے - یہ ہم نے کس طرح کرنے کے لئے اسی طرح کی ایک تصور ہے تعداد کے ساتھ سوچکانکوں، لیکن اب ہم کے ارد گرد سوچکانکوں تبدیل کر سکتے ہیں بجائے ڈور کے طور پر ان کی ضرورت کے لئے. تم نے بھی، صرف انفرادی طور پر یہ کام کر رہے اس کے علاوہ، یہ کر سکتے ہیں آپ ایک حصہ میں یہ سب کر سکتے ہیں. تو آپ کو، اس صف کی ہے کہ TF دیکھ سکتے ہیں اور اس کے بعد ہم ایک وشال مربع بریکٹ سیٹ میں ان سب کو مقرر کیا. تو ہے کہ چیزوں کو تیز کر سکتے ہیں. یہ نہیں کے مقابلے میں ایک ساہتیک سٹائل کی پسند کا زیادہ ہے. ہم نے بھی loops کے ہے. C میں ہم اس طرح کام loops کہ ہے. ہم ہمارے صف تھا، اور ہم نے فہرست کے اختتام پر انڈیکس 0 سے چلا گیا، اور ہم، یہ سب کو پرنٹ؟ ، مسئلہ ساہچری arrays کے لئے، ہے، سوائے ہم ضروری ان عددی سوچکانکوں نہیں جانتے اب ہم سٹرنگ سوچکانک کیونکہ. اب ہم ایک بار پھر، آپ کو امید ہے کہ 7 pset میں استعمال کیا جاتا ہے، جس میں جعلی foreach loops کے، کا استعمال کرتے ہیں. جعلی foreach loops کے صرف فہرست کے ہر ایک حصہ معلوم ہو جائے گا. اور یہ ہے کہ آپ بالکل عددی انڈیکس جاننا نہیں ہے. تو آپ صف ڈال، آپ کو جعلی foreach نحو ہے، تو یہ جعلی foreach ہے. ، تو اپنے صف pset کے کہا جاتا ہے، اور اس کے بعد کے طور پر لفظ، کے طور پر اور اس کے بعد آپ کو آپ کا استعمال کرنے جا رہے ہیں اس مقامی عارضی متغیر ڈال صرف مخصوص منعقد کرنے جا رہا ہے کہ مخصوص بات کے لئے - ایک مثال کے طور پر یا صف کے ایک حصے. ، pset کے NUM 1 گے، اور پھر شاید یہ تعداد 6 گے اور پھر اس نمبر 2 گے. لیکن اس صف میں ہے کہ ہر ایک کی قیمت کے ذریعے جانے کے لئے بات کی ضمانت ہے. آپ پی ایچ پی میں پتہ ہونا چاہئے کہ مفید افعال کی ضرورت ہوتی ہے، سے باہر نکلنے کے، خالی، بازگشت تو ہے کہ، آپ کو کچھ فائلوں سمیت کر رہے ہیں اس بات کو یقینی بناتا ہے. میں انتہائی آپ pset 7 پر نظر ڈالیں اور ان کے افعال پر نظر کی سفارش. تم ان کو جانتے ہو سکتا ہے، تو میں یقینی طور پر بالکل، ان تمام کیا کر رہے ہیں، پتہ چلے گا. اور اب ہم واقعی بہت تیزی سے دائرہ کار کے ذریعے جانے کے لئے جا رہے ہیں. دائرہ کار میں، پی ایچ پی، سی کے برعکس، ایک funky بات کی قسم ہے اور ہم صرف فوری طور پر اس کے ذریعے جانے کے لئے جا رہے ہیں. تو ہم وہاں ہیں کہ تیر پر شروع کا کہنا ہے کہ. اور ہم نے $ کے ساتھ میں شروع کرنے کے لئے جا رہے ہیں. تو رکن کی 'میں'، 0 ہونے جا رہا ہے اور ہم صرف وہاں کہ بڑے سفید باکس میں اس پرنٹنگ کے رکھنے کے لئے جا رہے ہیں. ہم i0 کے ساتھ شروع کرنے کے لئے جا رہے ہیں، اور پھر ہم اس کی بازگشت کے لئے جا رہے. تو 0 نہیں ہے. اور پھر ہم، کے لئے لوپ کی طرف سے یہ اضافہ کرنے جا رہے ہیں اور پھر اسے 1 کی قدر ہونے جا رہا ہے. ، ایک کم 3 ہے، تو یہ لوپ کے لئے اس کے ذریعے منتقل کرنے کے لئے جا رہا ہے اور پھر ہم اسے دوبارہ پرنٹ کو دیکھنے کے لئے جا رہے ہیں. ہم، 2 اسے دوبارہ اضافہ کرنے جا رہے ہیں اور 2 سے کم 3 ہے، تو یہ لوپ کے لئے منتقل کریں گے، اور یہ 2 پرنٹ کریں گے. تو پھر تم نے 3 کے 3 سے کم نہیں ہے کہ نوٹ کریں گے، تو ہم لوپ کے لئے کے باہر توڑ دونگا. تو اب ہم باہر ہے، اور پھر ہم aFunction میں جانے کے لئے جا رہے ہیں. ٹھیک ہے. تو آپ کو، اس متغیر ہم نے پیدا کیا ہے کہ یاد رکھیں کہ کرنے کے لئے ہے 'میں' متغیر، مقامی طور پر scoped نہیں ہے. یہ لوپ کے لئے مقامی نہیں ہے کا مطلب ہے کہ، اور یہ کہ متغیر ہم اب بھی تک رسائی حاصل اور اس کے بعد تبدیل، اور یہ اب بھی موثر ہو جائے گا کر سکتے ہیں. اب آپ کو تقریب میں جانا ہے تو، آپ کو، ہم بھی 'میں' متغیر کا استعمال کرتے نظر آئیں گے اور ہم 'میں' + + اضافہ کرنے جا رہے ہیں. آپ اس 'میں' متغیر کی ایک کاپی ہے، سی کی بنیاد پر، سب سے پہلے، لگتا ہے کہ. یہ درست ہے، جس میں ایک بالکل مختلف چیز ہے. ہم اسے پرنٹ تو جب ہم باہر پرنٹ کرنے کے لئے کی جا رہی ہے، 'میں' + + پرنٹ کرنے کے لئے جا رہے ہیں 4، معذرت - اور پھر ہم جا رہے ہیں. اس کے بعد ہم اس تقریب کے باہر ختم کرنے کے لئے جا رہے ہیں، اور ہم اس کے تیر کے نشان اب ہے جہاں جا رہے ہیں. اس وقت، تاہم، تقریب 'میں' کی قدر تبدیل اگرچہ مطلب یہ ہے کہ، اس کے باہر تقریب کے تبدیل نہیں کیا، تقریب ایک علیحدہ گنجائش ہے کیونکہ. یہ، ہم 'میں' کی بازگشت ہے، تو یہ تقریب کے دائرہ کار میں تبدیل نہیں ہے کا مطلب ہے کہ اور تو ہم پھر 3 پرنٹ کرنے کے لئے جا رہے ہیں. سی کے مقابلے میں پی ایچ پی میں گنجائش کے بارے میں مختلف چیزیں اب پی ایچ پی اور ایچ ٹی ایم ایل میں. پی ایچ پی کی ویب صفحات متحرک بنانے کے لئے استعمال کیا جاتا ہے. یہ اس قسم کی چیزیں مختلف ہوتا ہے. ہم ایچ ٹی ایم ایل سے مختلف ہے. HTML کے ساتھ، ہم نے ہمیشہ صرف، روب سے ظاہر ہوتا ہے کہ کس طرح کی طرح ایک ہی جامد چیز ہے، پی ایچ پی کی جبکہ، آپ کو صارف کی ہے جو کی بنیاد پر چیزوں کو تبدیل کر سکتے ہیں. میں نے یہ اگر ایسا ہے تو، میں، "آپ کے طور پر کرنا ہے -" اور اس کے بعد نام، اور میں نے نام تبدیل کر سکتے ہیں. تو ابھی نام، یوسف ہے اور یہ "، میرے بارے میں" ہے لیکن اس وقت میں نے بھی ٹومی کرنے کے لئے نام تبدیل کر سکتے ہیں. اور یہ ایک مختلف بات ہو گی. تو پھر ہم بھی اس کے بارے میں مختلف چیزیں تبدیل کر سکتے ہیں، اور اس کے نام کی بنیاد پر مختلف مواد دکھایا جائے گا. تو پی ایچ پی کی قسم کی اپنی ویب سائٹ میں کیا ہو رہا ہے تبدیل کر سکتے ہیں. یہاں ایک ہی. پھر بھی، وہ مختلف مواد ہے یاد رکھیں کہ، آپ کو تکنیکی طور پر اب بھی سطح پر ہے کہ ایک ہی ویب کے صفحے تک رسائی حاصل کر رہے ہیں، اگرچہ. HTML پیدا. آپ یہ کر سکتے ہیں کہ 2 مختلف طریقے ہیں. تو اب ہم اس حق کے ذریعے جائیں گے. پہلا طریقہ آپ کے پاس، ہے - جی ہاں، معذرت. تو کیا تم صرف، پی ایچ پی میں لوپ کے لئے آپ کے باقاعدہ ہے اور پھر آپ پی ایچ پی میں بازگشت اور آپ کو HTML باہر بازگشت. روب ایچ ٹی ایم ایل سکرپٹ کا آپ سے ظاہر ہوتا ہے کیا کا استعمال کرتے ہوئے اور پھر صرف ویب کے صفحے پر اسے باہر پرنٹ کرنے کے لئے پی ایچ پی کا استعمال کرتے ہوئے پرنٹ. متبادل طریقہ آپ کو پی ایچ پی اور ایچ ٹی ایم ایل کو علیحدہ طور پر اگر یہ کرنا ہے. تو آپ کو، لوپ کے لئے شروع ہوتا ہے پی ایچ پی کی ایک لائن ہے کر سکتے ہیں تو آپ کو ایک الگ بات میں ایچ ٹی ایم ایل کی لائن ہے کر سکتے ہیں، اور پھر آپ کو ایک پی ایچ پی کے ساتھ، ایک بار پھر، لوپ ختم. تو اس قسم کی کو الگ ہے. بائیں جانب، آپ کر سکتے ہیں ہے - یہ پی ایچ پی کی صرف 1 حصہ ہے. حق پر آپ کو، آپ کو پی ایچ پی کی ایک لائن ہے کہ دیکھ سکتے ہیں آپ کو HTML کی ایک سطر ہے، اور آپ کو دوبارہ پی ایچ پی کی ایک سطر ہے. تو وہ کیا کر رہے ہیں میں الگ. اور تم نے کسی بھی طرح سے، ان میں سے کسی کے لئے، نوٹ کریں گے وہ اب بھی تصویر پرنٹ، تصویر، تصویر، تو ہے کہ ایچ ٹی ایم ایل اب بھی اسی طرح چھپا ہوا ہے. اور پھر اگر آپ اب بھی 3 تصاویر اپنی ویب سائٹ پر ظاہر نظر آئے گا. تو یہ ایک ہی بات کر کے 2 مختلف طریقوں سے ہے. اب ہم فارم اور درخواستوں ہے. روب، آپ سے ظاہر ہوتا ہے کے طور پر وہاں ایچ ٹی ایم ایل کے فارم ہیں، اور ہم صرف اس کے ذریعے ہوا کرے گا. آپ کو ایک کارروائی ہے اور آپ کو ایک طریقہ ہے، اور آپ کی کارروائی قسم کی آپ کو بھیجنے کے لئے جا رہے ہیں جہاں آپ کو ظاہر کرتا ہے، اور طریقہ کار ہے کہ یہ ایک یا ایک پوسٹ کی جا رہا ہے. اور ایک حاصل کریں درخواست، روب نے کہا، آپ کو ایک کی شکل میں ڈال کرنے کے لئے جا رہے ہیں کا مطلب ہے کہ ایک پوسٹ کی درخواست آپ کو ایک یو آر ایل میں نہیں دیکھ سکیں گے جبکہ اور آپ، ایک یو آر ایل کے طور پر نظر آئے گا. تو تھوڑا سا فرق. تاہم، ایک اسی طرح کی بات ہے کہ ایک بات پوسٹ اور حاصل یکساں طور پر غیر محفوظ ہیں. تو آپ کو، صرف اس وجہ سے آپ کے یو آر ایل میں نے اسے دیکھا نہیں ہے لگتا ہے کہ ہو سکتا ہے کہ، پوسٹ زیادہ محفوظ ہے کا مطلب لیکن آپ کو اب بھی آپ بھیج رہے ہیں اس کی معلومات میں آپ کی کوکیز میں دیکھ سکتے ہیں. تو نہیں لگتا ہے کہ کے بارے میں ایک یا ایک سے دوسرے. نوٹ کرنے کے لئے ایک اور بات آپ کو بھی سیکشن متغیر ہے. تم لوگوں کو آپ کے صارف کی شناخت کے بارے میں معلومات حاصل کرنے کے لئے 7 pset میں اس کا استعمال کیا. کیا ہوا آپ کو اس ساہچری سرنی استعمال کر سکتے ہیں یہ تھا کہ، $ _SESSION، اور اس کے بعد آپ کو مختلف چیزوں تک رسائی حاصل کرنے کے قابل ہو اور صفحات بھر میں مختلف چیزوں کی دکان. آخری بات، ہم SQL، تشکیل طلب زبان ہے اور اس ڈیٹا بیس کو منظم کرنے کے لئے ایک پروگرامنگ زبان ہے. ، بالکل، ڈیٹا بیس کیا ہے؟ وہ ٹیبل کے مجموعے ہیں، اور ہر میز اشیاء کی اسی طرح کی قسم کے کر سکتے ہیں. تو ہم آپ کے خزانہ pset میں صارفین کی ایک میز تھا. اور کیوں وہ مفید ہیں؟ اسے مستقل طور پر معلومات محفوظ کرنے کا ایک طریقہ ہے کیونکہ. یہ چیزوں سے باخبر رہنے کے اور چیزوں کو منظم کرنے کا ایک طریقہ ہے اور اصل میں مختلف صفحات اور ٹریک رکھتے ہوئے پر دیکھ کر. جبکہ آپ کو صرف ایک ہے کہ فوری طور پر اس وقت اس کی دکان ہے تو اور پھر بعد میں اس کا استعمال، آپ کو محفوظ کر لیا ہے کہ کسی بھی چیز تک رسائی حاصل کرنے کے قابل نہیں ہو گا. ہم SQL حکم دیتا ہے کے لئے استعمال کرتے ہیں 4 اہم چیزیں ہیں. ہم منتخب کریں، ڈالیں، خارج کر دیں، اور اپ ڈیٹ ہے. وہ لوگ آپ کو آپ کے کوئز کے لئے پتہ کرنے کے لئے بہت اہم ہیں. ہم فوری طور پر اب سے زیادہ منتخب کریں گے. بنیادی طور پر، آپ کو ایک ڈیٹا بیس سے قطار کو منتخب کر رہے ہیں. تو آپ یہاں، ہے - ہم ان 2 مختلف چیزیں ہیں، اور ہم کلاس میز سے منتخب کرنے کے لئے چاہتے ہیں، جہاں بہت اچھے - خوفناک کالم میں قدر 1 ہے جہاں. آپ یہاں دیکھ سکتے ہیں تو، ہم، کلاس کے نام کے ان 2 چیزیں ہیں CS50 اور Stat110، اور ہم کلاس شناخت اور نعرہ ہے. تو ہم نے اس کی تمام معلومات کو منتخب کرنا چاہتے ہیں. تو پھر تم نے، اس قسم کی ہے کہ خوفناک کالم کے اٹھا ہے کہ یہاں دیکھ سکتے ہیں تمام چیزیں ہیں 1، اور پھر اس کے کلاس ID، کلاس کے نام اور اس کے باہر منتخب کر سکتے ہیں کہ نعرہ ہے جہاں. آپ اس کوڈ میں کس طرح کرتے ہیں؟ آپ پی ایچ پی کا استعمال کرنا پڑے. تو اس قسم کے پی ایچ پی اور ایس کیو ایل کو ایک دوسرے سے متعلق ہیں کس طرح ہے. اب ہم اپنے کوڈ ہے، اور ہم نے اپنے استفسار تقریب کو استعمال کرنے کے لئے جا رہے ہیں ہم 7 pset میں کیا، اور ہم SQL سوال کو چلانے کے لئے جا رہے ہیں کے طور پر. پھر ہم جا رہے ہیں - ہم نے ہمیشہ جھوٹے اگر صف کی ٹرپل برابر چیک کرنے کے لئے ہے. تو پھر، آپ کی قسم اور قیمت کی جانچ کرنا چاہتے، یہ کام نہیں کرتا تو، اس کے بعد آپ ہم 7 pset میں کیا کے طور پر، ہمیشہ کی طرح، معذرت خواہ ہیں کرنا چاہتے ہیں. دوسری صورت میں، آپ کو ان کے ہاتھ کے ساتھ سب کچھ کے ذریعے لوپ کے لئے چاہتے ہیں جعلی foreach ہم صرف گئے loops کہ. ، ہم کے ذریعے looping کر رہے ہیں اور ہم نے ماضی اسے بنایا ہے اب وہ ہمارے استفسار منظور فرض ہے کہ دو، اب ہم اپنے جعلی foreach لوپ ہے. اور پہلی صف یہ ہے، تو یہاں صف یہاں، ہے، یہ پیک ہے. یہ ہو گیا ہے کہ تمام معلومات کو پرنٹ کرنے کے لئے جا رہا ہے. تو یہ نچلے حصے میں باہر پرنٹ کرنے کے لئے جا رہا ہے "چاہتے ایچ ٹی ایم ایل معلومات حاصل کریں؟" یہ لوپ کے لئے سب سے پہلے مکمل ہے کیونکہ اس کے بعد،، اگلی صف میں جانے کے لئے جا رہا ہے اور تو، اس کی دوسری لائن پرنٹ کی جا رہی ہے STAT110 ہونے جا رہا ہے، جس میں تمام لمحات تلاش. ایک آخری بات SQL خطرات پر ہے. میں ڈیوڈ اس پر لیکچر میں تھوڑا سا چھو جانتے. آپ بعد میں اس کو پڑھ سکتے ہیں. یہ واقعی مضحکہ خیز ہے. SQL انجکشن مشکل بات یہ ہے کی ایک قسم ہے. آپ صرف صحیح آپ کے سوال میں ان متغیرات میں رہنا کہتے ہیں کہ، آپ کو اس کی پہلی لائن میں دیکھ سکتے ہیں. تو یہ ٹھیک ہے؟ آپ کو صرف صارف کا نام میں ڈال رہے ہیں اور آپ کے SQL سوال کے لئے پاس، اور آپ کو اس سے دور جہاز اور آپ کے ڈیٹا ٹیبل میں جو کچھ بھی حاصل کرنا چاہتے ہیں. یہ بہت آسان لگتا ہے. تو، کسی میں رکھتا ہے کا کہنا ہے کہ اجازت دیتا ہے پاس ورڈ کے لئے، یہ یا متن یہیں - اصل میں سرخ باکس میں ہونا چاہئے. تو وہ میں اس پاس ورڈ ڈال کا کہنا ہے کہ دو - وہ میں داخل کیا ہے. تو وہ ڈال یا "1" = 1 کر رہے ہیں. کرنے کے لئے ایک پاگل پاس کی طرح. اب صرف اس میں جگہ لے لے، اور اب آپ کہ SQL سوال میں اس بات کو نوٹ کیجیئے گا، آپ نوٹ کریں گے، کیونکہ یہ ہمیشہ سچ کی تشخیص کرتا آپ کے SQL سوال کے اس کی تمام معلومات منتخب کر سکتے ہیں یا آپ کو صرف = 1 1 ہو سکتا ہے. تو یہ ہمیشہ صحیح اندازہ کرنے جا رہا ہے. کہ ہیکر آپ کے سسٹم میں کو توڑنے کر سکتے ہیں کیونکہ اس کا مطلب یہ ہے کہ، واقعی کام کرنے کے لئے نہیں جا رہا ہے. اس کا حل آپ PDO کے نظام کو استعمال کرنے کے لئے ہے، جس میں، آپ کے سوال کے نشانات استعمال کرنے کی ضرورت کا مطلب ہے کہ کیا آپ کو 7 pset میں استعمال کیا جاتا ہے لوگوں کو، ہے جو آپ کو آپ کے کچھ ڈال کرنا چاہتے ہیں جہاں کی جگہ میں ایک سوالیہ نشان کے استعمال کرنے کے لئے کہاں جا رہے ہیں، اور، تو پھر آپ ایک کوما لئے جا رہے ہیں، اور پھر آپ کے بعد ہو گا آپ اسٹرنگ کے بعد، آپ چاہتے ہیں کہ مختلف متغیر آپ سوالیہ نشان میں تبدیل کرنے کے لئے. تو اب تم مجھے ان ریڈ سوال نمبر ہے کہ یہاں نوٹ کریں گے. میں نے اس کے بعد کہ ان کے حکم میں تبدیل کرنے کے لئے جانتے ہیں تو پھر میں اپنے ڈور کے بعد متغیر ڈال دیا. کسی کو اس طرح یہ کرتا ہے کہ اگر، اس بات کو یقینی بنا دیں گے اور وہ، اس بات کا یقین کرے گا کہ، یا 1 = 1 صورتحال ہے واپس آخر میں، یہ اصل میں SQL سوال نہیں ٹوٹ جائے گا اس بات کو یقینی بنانے کے. ٹھیک ہے، پی ایچ پی اور ایس کیو ایل کے ایک بونڈر، کہ بہت زیادہ ہے تو. آپ سب کو مبارک، اور اب ایسک پر [Oreoluwatomiwa Babarinsa] ٹھیک ہے سب. کچھ جاوا اسکرپٹ پر جانے کے لئے وقت اور کچھ دوسری چیزوں کو بہت تیزی سے تو ہم آپ کو آج رات کو نہیں رکھتے. جاوا اسکرپٹ کا. جی ہاں. جاوا اسکرپٹ کا منشا، ایک ٹھنڈی چیز کی طرح ہے. تم واقعی میں جاوا اسکرپٹ کے بارے میں جاننے کی ضرورت ہے چیزیں، اس طرح کی طرح ہے آپ ویب اپلی کیشن کر جا رہا ہے کے کلائنٹ سائڈ آخر. آپ کو صرف سرور سائیڈ پر تمام وقت کی دیکھ بھال کے لئے نہیں کرنا چاہتے کچھ چیزیں ہے. تمام چھوٹی بات چیت،، ایک بات کو اجاگر کچھ غائب بنانے. تم نے واقعی میں آپ کے سرور پر اس کے لئے ہر وقت بات کرنے کے لئے کرنا چاہتے ہیں نہیں ہے. اور اس میں سے کچھ سرور سائیڈ پر کرنے کے لئے بھی ممکن نہیں ہے. ہم جاوا سکرپٹ کی طرح کچھ کی ضرورت ہے یہی وجہ ہے. جاوا سکرپٹ کے بارے میں ٹھنڈی چیزیں: یہ متحرک طور پر ٹائپ کیا جاتا ہے. کیا اس کا مطلب ہے کہ آپ کے پروگرام کو جاننے کی ضرورت نہیں ہے آپ کو یہ لکھنے تو کیا، بالکل، متغیر ہیں. یہ چل رہا ہے کے طور پر یہ صرف کی طرح یہ معلوم کریں گے. اس کے بارے میں اچھے ہیں کہ دوسری چیزوں کے: یہ ایک گھوبگھرالی منحنی خطوط وحدانی زبان ہے، جس نحو سی اور پی ایچ پی کی طرح ہے کا مطلب ہے. آپ کو جاوا اسکرپٹ سیکھنے کے کر رہے ہیں جب بہت rework کی کیا کرنے کی ضرورت نہیں ہے. یہاں ہم جاوا اسکرپٹ کا ایک تھوڑا سا ہے. یہاں دلچسپ بات یہ ہے کہ، اگر آپ اس پر دیکھتے ہیں، ہے ہم سر ٹیگ میں وہیں جاوا اسکرپٹ کا تھوڑا سا ہے. کیا ہے بنیادی طور پر صرف ایک جاوا اسکرپٹ فائل میں شامل ہے ہے. یہ آپ کو آپ کے پروگرام میں جاوا سکرپٹ کو شامل کر سکتے ہیں کا ایک طریقہ ہے. پھر دوسرا تھوڑا سا، اصل میں کچھ ان لائن جاوا اسکرپٹ کا ہے بہت سی ایس ایس کے ساتھ ایک ان لائن سٹائل کی طرح، اور آپ کو صرف بہت جلد وہاں کچھ کوڈ لکھ رہے ہیں. جاوا اسکرپٹ arrays کے ہے. بہت مفید، کے ارد گرد کے اعداد و شمار کو رکھنے کے لئے ایک اور طریقہ. بہت اچھا اور آسان نحو. تم نے سب کچھ تک رسائی اور ایک دوسرے کے ساتھ سب کچھ رکھنے کے لئے مربع بریکٹ کا استعمال. بہت پیچیدہ کچھ بھی نہیں. عام طور پر جاوا سکرپٹ اور سکرپٹ کی زبانوں کے بارے میں ٹھنڈی چیز آپ صف کے سائز کے بارے میں فکر کرنے کی ضرورت نہیں ہے. آپ کو صرف array.length استعمال کرتے ہیں اور اس کے ٹریک رکھ سکتے ہیں، اور بھی صف میں اضافہ یا آپ کو اس کی ضرورت کے طور پر سکڑ کر سکتے ہیں. تو کیا تم بھی، کسی بھی قسم کے بارے میں فکر کرنے کی ضرورت نہیں ارے نہیں، میں زیادہ چیزوں کو، یا اس طرح کچھ بھی مختص کرنے کی ضرورت. یہاں ٹھنڈی چیز جاوا اسکرپٹ اشیاء کہا جاتا کچھ ہے ہے. یہ ایک اعتراض پر مبنی زبان ہے، تو یہ ہے کیا، بنیادی طور پر، گروپ کے اعداد و شمار آپ کے لئے ایک راستہ ہے جس سے ایک دوسرے کے ساتھ، ایک struct کسی حد تک اسی طرح، لیکن اگر آپ ایک struct کی طرح یا ایک ساہچری سرنی نحو میں اس تک رسائی حاصل کر سکتے ہیں. یہ بہت آسان ہے اور جو تم اس کے ساتھ کیا کر سکتے ہیں کے ساتھ مل کر گروپ کے اعداد و شمار ہے آپ سے متعلق ہے کہ اعداد و شمار کے ایک گروپ ہے تو. یہ آپ کو ایک کار کی وضاحت کرنے کی ضرورت ہے ہر چیز ہے، کیونکہ اگر آپ مختلف مقامات میں سے ایک گروپ میں ہے کی ضرورت نہیں ہے. آپ صرف جاوا سکرپٹ میں 1 اعتراض میں رہنا کر سکتے ہیں. آپ شاید جانتے ہیں، iterating کر ان تکاؤ کاموں میں سے ایک ہے. آپ کو صرف ایک بار پھر ایک سے زیادہ سے زیادہ یہ کر. آپ کی گاڑی میں ہر چیز سے بات کرنے کی ضرورت ہے یا آپ کو ایک فہرست یا کچھ اس طرح میں ہر آئٹم کے ذریعے جانا کرنے کی ضرورت ہے. تو جاوا سکرپٹ، پی ایچ پی، ایک جعلی foreach نحو کی طرح ہے. اس صورت میں، اس کے لوپ میں کے لئے ایک ہے. آپ صرف اشیاء پر اس کا استعمال کرنا چاہتے ہیں. آپ arrays کے اس استعمال کرتے ہیں تو پائے جاتے ہیں کہ کچھ مسائل ہیں. یہ عام طور پر، اگرچہ، کہ بہت مفید ہے، ان چیزوں میں سے ایک ہے آپ ہیڈ کی ایک بہت کو ختم کرنے کی وجہ تم اپنے آپ کی طرف سے آپ کے اعتراض میں سب کچھ ھیںچو کرنے کی ضرورت نہیں ہے کیونکہ. آپ تمام اہم ناموں کو یاد کرنے کی ضرورت نہیں ہے. آپ کو صرف کی طرح اس نحو میں ان کے واپس حاصل. اس میں، کے لئے کے ساتھ، آپ کو صرف یاد کرنا چاہتے ہیں آپ کو میز ہیش ایک بہت ہی اسی طرح میں، تمام چابیاں واپس ہو رہی ہے. آپ کو اس سے یاد ہے آپ کو ایک تار میں ڈال دیں گے، تو آپ کو کچھ حاصل کر سکتے ہیں جو اس کے ساتھ منسلک کی قیمت ہو گی. کیا تم اس کے ساتھ کیا کر سکتے ہیں، آپ کو، ٹھیک ہے کا کہنا ہے کہ کر سکتے ہیں مجھے ایک گاڑی میں ڈال دیا، اور میں نے ایک فیراری یہ کہا جاتا. تو آپ کچھ دیر بعد دوبارہ تار فیراری میں ڈال کر سکتے ہیں، اور آپ کو اس سے باہر حاصل کر سکتے ہیں. اور آپ کو لوپ کے لئے کے ساتھ، ایک لوپ میں ایسا کر سکتے ہیں. تو صرف اشیاء کے بارے میں مزید. آپ کو یاد کرنے کی ضرورت ہے اس سے اہم بات یہ ہے ، آپ کو ان کے ساتھ چاہتے ہیں جب بھی آپ نحو کی طرح اعتراض struct کے استعمال کر سکتے ہیں کیا آپ کو ایک تار کے طور پر استعمال کرنے کے لئے جا ایک درست متغیر نام نہیں ہے سوائے اس کے. آپ کو کہ وہاں پر نظر ڈالیں تو تو، ہم خالی جگہوں کے ساتھ چابی ہے. ٹھیک ہے، تم object.key دیا گیا، خلائی، کے ساتھ، خلائی، خالی جگہوں کو، کہ صرف syntactically احساس نہیں کریں گے. تو آپ کو صرف بریکٹ نحو اس طرح کے ساتھ یہ کر سکتے ہیں. اس کے علاوہ، جاوا اسکرپٹ کا بہت گنجائش کے اعتبار سے پی ایچ پی کی ہے. آپ کے دائرہ کار سے خطاب کے 2 طریقے ہیں. آپ کو ایک متغیر کے سامنے میں متغیر نہیں کر سکتے ہیں، اور یہ کہ صرف اس عالمی ہے کا مطلب ہے. آپ کہیں سے بھی اسے دیکھ سکتے ہیں. آپ کو ایک بیان اگر میں یہ ڈال رہے تھے یہاں تک کہ اگر، کہیں اور آپ کے کوڈ میں اس نقطہ کے بعد آپ کو اس متغیر دیکھ سکتا ہے. ایک اور بات، اگرچہ، یہ آپ کے اندر ہیں جو کچھ بھی تقریب تک محدود ہے، متغیر کے ساتھ ہے آپ کو ایک تقریب میں نہیں ہیں تو، ٹھیک ہے، یہ عالمی ہے. آپ کو ایک تقریب میں ہیں لیکن اگر یہ ہے کہ تقریب کے اندر اندر ہی دستیاب ہے. میں نے جی ہاں، ایک مثال ہے، لیکن نہیں ہے. یہ ان چیزوں میں سے ایک ہے جہاں آپ، آپ گلوبل ہونا چاہتے ہیں کیا متغیر انتظام کر سکتے ہیں کیا متغیر آپ کو مقامی ہونا چاہتے ہیں، لیکن آپ کو اس کے بارے میں ہوشیار رہنے کی ضرورت ہے، آپ C میں ایسا ٹھیک اناج کنٹرول کی قسم کی ضرورت نہیں ہے، کچھ لوپ کے لئے ایک میں اعلان کیا جاتا ہے تو، اس کے لوپ کے لئے کہ میں رہنے کے لئے کہاں جا رہا ہے. ہم اصل میں کے لئے جاوا اسکرپٹ کا استعمال کرتے ہوئے کے بارے میں پرواہ بات صحیح، ویب صفحات توڑ ہے؟ میرا مطلب ہے، یہی وجہ ہے کہ ہم یہ کر رہے ہے. ہم ڈوم نامی کسی چیز کا استعمال کرتے ہیں، کہ ایسا کرنے کے لیے. دستاویز آبجیکٹ ماڈل. بنیادی طور پر، یہ کیا کرتا ہے یہ سب آپ کی ایچ ٹی ایم ایل لیتا ہے اور ایک دوسرے کے اندر اندر در اندر کر رہے ہیں کہ اشیاء کی ایک گروپ میں ماڈل اسے باہر. آپ کو اس طرح کچھ کے ساتھ شروع. تم وہاں سے باہر کے کوڈ کا ایک گروپ اس طرح کی ہے، میرے لئے دائیں، ہے - آپ اس جوڑتوڑ کرنا بہت مشکل ہو جائے گا لگتا ہے کہ، آپ کو متن کے ایک گروپ کے ذریعے کی تصریف جائے گا کیونکہ اور بھان ٹکڑا کرنے کے لئے. اور یہ درست طریقے سے کیا فارمیٹ نہیں کیا گیا ہے؟ بری چیزیں ہو گا. تو، جاوا سکرپٹ آپ کے لئے اس کا خیال رکھتا ہے، اور آپ کو ایک اچھا آنکڑا ڈھانچہ حاصل آپ کو صرف ایک دستاویز ہے جہاں میری، بائیں جانب ایک طرح، اور اس کے اندر آپ کو، ایچ ٹی ایم ایل ملاقات کی کچھ ہے اور اس کے اندر آپ کو، ایک سر اور ایک جسم ہے اور اس کے سر کے اندر آپ کو، وغیرہ،، وغیرہ وغیرہ ایک عنوان ہے. یہ، یہ صرف ہے تاکہ ایک ویب کے صفحے توڑ آسان بنا دیتا ہے اوہ، میں صرف اس اعتراض پر بات کرنا چاہتے ہیں. آپ اپنے آپ کو بنائی گئی ایک اور اعتراض سے بات کریں گے ایک بہت ہی اسی طرح کی ترتیب دیں. جیسے میں نے کہا، تمام ڈوم دستاویز اعتراض ہے. یا، یہ صرف ایک جگہ ہے اور پھر آپ سے چیزیں تلاش کرنے کے لئے اس کے اندر جا سکتے ہیں اور آپ یہ کر سکتے ہیں - یہ وہاں، یہ کام کر رہے کے پرانے سٹائل ہے، آپ document.getElementById کرتے ہیں، اور جہاں اس کے بعد نام، شاید آپ بتا سکتے ہیں کے طور پر اور، اس میں کچھ وقت کے بعد بہت unwieldy ہو جاتا ہے. تو آپ شاید ایسا نہیں کرنا چاہتے ہیں. ہم یہی وجہ ہے کہ ہم اس کے بعد کے بارے میں بات کرنے جا رہے ہیں اگلی بات. یہاں اہم بات یہ ہے، کہ ٹھیک ہے، تم صحیح، ان تمام عناصر ہے؟ تو شاید میں جب پیج بوجھ کچھ کے رنگ تبدیل کر سکتے ہیں. تو کیا ہوا؟ کیا اپنے صارف کچھ کلکس ہیں؟ مجھے وہ کچھ پر کلک کریں جب یہ دلچسپ کچھ کرنا چاہتے ہیں. ہم واقعات منسلک یہی وجہ ہے کہ. آپ، بنیادی طور پر، آپ ڈوم میں کسی بھی عنصر تلاش کر سکتے ہیں، اور اس کے بعد ہے، کا کہنا ہے کہ. ، اس بوجھ یا کسی کو اس پر کلک کرتا ہے تو یا وہ ماؤس اس پر، اس کے ساتھ کچھ کرنا ہے. اور کیا آپ کے پاس آپ کے لئے اس سے نمٹنے کے ہے کہ کام کرتا ہے، ہے. یہ کام کرتا ہے ایونٹ handlers کے ہیں. کیا they're - یہ کہنے کی صرف ایک پسند ہیں راستہ ہے، اس ایونٹ ہوتا ہے جب اس تقریب صرف پھانسی دے دی ہے. تو یہ اس وقت ہوتا ہے کہ اس صورت ہینڈل. یہ آپ کو ایک ایونٹ ہینڈلر باہر پوشیدہ ہے کہ کس طرح ہے. میں کچھ بٹن ہے، اور آپ اس پر کلک کریں، تو یہ فٹ. تو بٹن پر کلک کریں نہیں. یہ درست، اس کے قریب کا ایک طریقہ ہے؟ ، آپ کو ایک بٹن ٹیگ ہے، اور پر کلک کریں پر آپ کا کہنا ہے کہ ایک تار ہے اوہ، ویسے، میں نے میرے لئے یہ پھٹنے بات کرتے ہیں. دوسری صورت میں، یہ صرف آپ کو صرف کر دیا ایک باقاعدہ بٹن کی طرح ہے. آپ بھی اس کا ایک اور طریقہ کیا کر سکتے ہیں، ہم jQuery کے بارے میں بات کرنے کے بعد ڈوم عنصر پکڑ، لیکن ہم اس کو بچانے کے کریں گے. jQuery کی: یہ کراس براؤزر ہے کہ ایک لائبریری ہے. آپ کو بہت زیادہ کسی بھی چیز میں استعمال کر سکتے ہیں. اور یہ صرف آپ کے ساتھ کام کرنے کے لئے آلات کی ایک بہت فراہم کرتا ہے. جاوا سکرپٹ، طاقتور ہے، آپ سب کی ضرورت کے اوزار کی ضرورت نہیں ہے واقعی ایک ویب اپلی کیشن سے نمٹنے کے لئے باکس کے باہر آپ کرنا چاہتے ہیں کر سکتے ہیں. تو یہ، چیزوں کی ایک بہت آسان بنا دیتا ہے آپ کے افعال میں سے ایک بہت فراہم کرتا ہے آپ عام طور سے زیادہ بار بار اور اس سے زیادہ، اپنے آپ کو لکھنے کے لئے ہے کہ باہر کے باکس کے. اور صرف چیزوں کو بہت آسان بنا دیتا ہے. تم نے بھی آپ کو ان تمام عناصر کو باہر لے جس میں سلیکٹرز، ہے آپ ڈوم بہت زیادہ سے بس، بجائے ان بہت طویل تقریب کالز کا استعمال کرنے کی. ان سلیکٹرز پر مزید. آپ، کا کہنا ہے کہ ہے وہاں، ہے میں نے ID کے ساتھ ایک عنصر حاصل کرنا چاہتے ہیں "راک." ٹھیک ہے، jQuery میں، یہ صرف $ اور پھر ایک پونڈ ہے کہ ایک سٹرنگ، اور پھر "راک." یہ بہت سادہ اور اس مسئلے سے نمٹنے کے روایتی جاوا اسکرپٹ کا طریقہ کے مقابلے میں بہت تیز ہے. اور آپ کلاس اور عنصر اقسام کے لئے اسی طرح کی چیزیں ہیں. jQuery کی ہے - ڈاؤن لوڈ، اتارنا خصوصیات میں سے ایک آپ کی طرح سکیڑیں کر سکتے ہیں ہے آپ ڈوم پر آپ کے سوالات کے نیچے بہت، بہت تیزی سے. اب ہم واپس ایونٹ ہینڈلنگ ہیں، اور یہ آپ کے jQuery میں ایک واقعہ سے نمٹنے کے گا کہ کس طرح ہے. تو کیا ہم یہاں جا رہے ہیں ہم ٹھیک ہے، کہہ رہے ہیں ہے. میں نے ایک سکرپٹ ٹیگ، ٹھیک ہے؟ تو میں نے اس ان لائن جاوا اسکرپٹ ہے. ہم کیا کرنے جا رہے ہیں ہم ٹھیک ہے، کا کہنا ہے کہ جا رہے ہیں. دستاویز، دستاویز لوڈ کیا گیا ہے جس کا مطلب ہے، کے لئے تیار ہے جب ، ہم اس تقریب میں جانے کے لئے جا رہے ہیں، اور ہم، ٹھیک ہے کا کہنا ہے کہ جا رہے ہیں اس تقریب اصل میں کچھ اور کر رہی ہے. یہ بنیادی طور پر ٹھیک ہے، مجھے ID کے ساتھ عنصر ملتا ہے، کہہ رہا ہے "myid." اور اس کے بعد یہ آپ کو اس پر کلک کریں جب executes ہے کہ ایک تقریب ہینڈلر دیتے ہیں. بنیادی طور پر اس کا کیا ہے، اس کا کہنا ہے، ٹھیک ہے. ، صفحہ بھری ہوئی ہے، تو میں، اس عنصر کو تلاش کرنے کے لئے جا رہا ہوں اس ایونٹ ہینڈلر دیتے ہیں، اور یہ بنیادی طور پر آپ کے لئے آپ کے صفحے کا تعین کرتا ہے. اور یہ آپ کو ایونٹ کی ہینڈلنگ کے بارے میں سوچنے کے لئے چاہتے ہیں ہے. آپ کو صرف، کے بارے میں سوچنا ٹھیک ہے، کچھ وقت ہوتی ہے جب، میں نے ایسا کیا کرنا چاہتے ہیں کرنا چاہتے ہیں؟ آپ، ٹھیک ہے، میں اس بات پر یقین ہے کہ اس بات کو بات چیت کرنے کی ضرورت ہے، کے بارے میں سوچنا نہیں چاہتے اس بات کو بلاہ بلاہ بلاہ، آپ کو صرف واقعات کے لحاظ سے بات سے بات کرنا چاہتے ہیں. جب ایسا ہوتا ہے، ایسا ہوتا ہے. جب ایسا ہوتا ہے، ایسا ہوتا ہے. چیزوں کو دوسری چیزوں کو متحرک اور اگر، یہ بہت اچھا ہے. لیکن آپ کو پیچیدہ کوڈ کرنے کی کوشش اور کیا نہیں کرنا چاہتا جہاں آپ کو ایک ہی وقت میں ایک سے زیادہ چیزوں کو ٹرگر کر رہے ہیں آپ کو صرف اپنے آپ کو ایک سر میں درد دینے کے لئے جا رہے ہیں. ٹھیک ہے. اب ہم اپنے پیج کے واقعات کو ہینڈل کرنے میں حاصل کر سکتے ہیں، لیکن میرے صارف ایک بٹن کلکس کہتے ہیں. کیا، میں واپس سرور پر اس کی درخواست کو بھیجنے کے لئے چاہتے ہیں تو ایک نیا صفحہ دوبارہ لوڈ کرنے کے لئے کی وجہ سے ہے لیکن میں، صفحہ دوبارہ لوڈ کرنا نہیں چاہتے ہر ایک وقت قسم کے تکاؤ ہو جاتا ہے، اور کیوں میں کی ضرورت ہے پھر ہیڈر ھیںچو، اور پھر فٹر کے لئے، اور تمام پیج کے عناصر کو ایک بار پھر صرف سلام یا وقت کی تازہ کاری کرنے کے لئے؟ ہم ایجیکس کی طرح کچھ ہے یہی وجہ ہے کہ. کیا ہم ایجیکس کے ساتھ یہاں کیا کر سکتے ہیں، ہم، ٹھیک ہے کا کہنا ہے کہ کر سکتے ہیں میں میں سرور کی کچھ ڈیٹا بھیجنے کے لئے چاہتے ہیں، اور میں تو میں اپنے صفحے کو اپ ڈیٹ کر سکتے ہیں، واپس ایک جواب حاصل کرنے کے لئے چاہتے ہیں، یا شاید صرف ضروری صارف کو کچھ بھی ظاہر نہیں کرتا ہے کہ کچھ پر algorithmic حساب کرتے ہیں. کیا آپ کو ایسا کرنے کی ضرورت ہے؟ ٹھیک ہے، اگر آپ کو بات کرنے کی ضرورت ایک یو آر ایل کی ضرورت ہے. آپ کے سرور کو صرف جادوئی کہیں سے میں بات نہیں کر سکتے. آپ کے لئے اس کے اعداد و شمار بھیج رہے ہیں ایک مخصوص جگہ کی ضرورت ہے. اور تم بھی بھیجنے کے لئے کچھ ڈیٹا کی ضرورت ہے، یا شاید یہ ایک dataless استفسار ہے. تم بس ہے، میں زندہ، یا اس طرح کچھ ہوں، واپس سرور پر پنگ اور کہنا چاہتا ہوں. اور پھر آپ کو بنیادی طور پر کامیابی کے ساتھ ہینڈل ایک تقریب ہے کہ چاہتے ہیں. آپ اپنے سرور سے کچھ معلومات واپس حاصل کرنے کے کا کہنا ہے کہ، اور آپ کو ان کے صفحے پر صارف کے عنوان تبدیل کرنا چاہتے ہیں. تو آپ کی معلومات کو واپس مل جائے گا، اور آپ کی سکرین پر ہے کہ دھکا گے. صفحہ کے لئے تیار ہے تو کیا ہوتا ہے،، ہے آپ greeter نامی اس بٹن کے لئے کلک کریں تقریب پر پیدا. اس بٹن دھکیل دیا جاتا ہے تو کیا یہ تو کرتا ہے، ہے، آپ greetings.php بات، تم، ایک پوسٹ کی درخواست بنانے اور آپ کو ہے، مجھے آپ کے صفحے سے کچھ حاصل، کا کہنا ہے کہ. ہم واقعی، ہے کی وضاحت کرنے کی ضرورت ہے، لیکن greetings.php نہیں ہے صرف کا کہنا ہے کہ، "ہیلو دنیا." واپس دیتا ہے تو ہم، "، ہیلو دنیا" یہ واپس ہو جاؤ اور اس کی کامیابی پر کچھ بھی غلط ہو جاتا ہے سنبھالنے، تو ہم صرف اس ہدف کی جگہ پر جانے کے لئے ہم مخصوص اور ہم صرف وہاں میں جواب رہنا ہے. اور یہ ایک AJAX استفسار قائم کرنے کی ایک بہت آسان طریقہ ہے. بہت جلد، روب کی طرح، پہلے سے ہی اس کا ذکر چیزیں غلط جا سکتے ہیں، بری چیزیں ہو سکتا ہے، تو آپ ان HTTP جواب کوڈ کے ساتھ اپنے آپ کو واقف کرنے کے لئے چاہتے ہیں. کیا یہ ہیں سب کچھ ٹھیک چلا گیا، 200، کی طرح، صرف ہیں. کچھ اور، بری چیزوں ہوا. یہ عام طور پر آپ کو یاد کرنا چاہتے ہیں، بات ہے. لیکن یہ ان میں سے سب بہت اچھا ہے پتہ. اور آخر میں، ایک بار ہم نے اس کے تمام کے ذریعے چلا گیا ہے، ہم، ڈیزائن کے بارے میں بہت تیزی سے بات کرنے کی ضرورت اور پھر ہم سب کو دے سکتے ہیں. ڈیزائن. آپ کو یاد کرنا چاہتے ہیں چیزیں. ان سوالات اپنے آپ سے پوچھو: کون اس کا استعمال کریں گے؟ کیا انہوں نے کے لئے اس کا استعمال کیا جائے گا؟ اپنے صارفین کے بارے میں کیا خیال کرتے ہیں؟ وہ کیا پرواہ نہیں ہے؟ آپ کو صرف ایک اپلی کیشن ہے اور یہ صرف اضافہ نہیں کرنا چاہتا اور اس وشال، آپ بھی ختم نہیں کر سکتے ہیں کہ سب ہڑپ چیز بن. آپ کو حل کرنا چاہتے مجرد کے مقاصد اور منصوبہ بندی اور چیزیں ہیں کرنا چاہتے ہیں. یہ آسان بنائیں. یہ سب، بنیادی طور پر، کا کہنا ہے کہ یہ آسان صارف اس کا استعمال کرنے کے لئے بنانے، اصل میں، یہ سلائڈ کی طرح متن کے ایک بڑے بلاب ہے نہیں ہے. آپ کو صرف یہ کسی میں جانے کے لئے یہ بہت آسان ہے جہاں کچھ کرنا چاہتے ہیں اور وہ کیا کرنا چاہتے ہیں کر. آپ کو ان میں 5 صفحات تشریف لے کرنے کے لئے نہیں کرنا چاہتا آپ کی ویب سائٹ کے آپ کے وزیر کی تقریب حاصل کرنے کے لئے. گوگل سے پہلے 5 صفحات تھا تو آپ کچھ بھی تلاش کر سکتے ہیں، کوئی بھی اسے استعمال کریں گے. اور آخر میں، کاغذ پروٹوٹائپ، فوکس گروپ. اچھے ڈیزائن اور جانچ کے طریقوں ہے. آپ یہ آپ کے لئے کام کرتا ہے صرف اس وجہ سے، کسی اور یہ کام کرتا ہے سوچتا ہے کہ مطلب یہ نہیں ہے. لیکن ہاں، یہ کہ یہ ہے. [CS50.TV]