1 00:00:00,000 --> 00:00:02,270 >> [کا جائزہ لیں: کوئز 1] 2 00:00:02,270 --> 00:00:04,620 [علی Nahm، Oreoluwa Barbarinsa، لوکاس Freitas میں، روب Bowden] [ہارورڈ یونیورسٹی] 3 00:00:04,620 --> 00:00:07,660 [یہ CS50 ہے.] [CS50.TV] 4 00:00:07,660 --> 00:00:11,610 [لوکاس Freitas میں] سب خوش آمدید. اس کوئز 1 کے لئے جائزہ لینے کے ہے. 5 00:00:11,610 --> 00:00:15,040 بس ایک تردید کے طور پر، یہ ہے - میرا مطلب ہے، ہم پورا کرنے کے لئے کوشش کرنے کے لئے جا رہے ہیں 6 00:00:15,040 --> 00:00:17,770 ممکن ہے، لیکن کے طور پر زیادہ سے زیادہ مواد اس کا مطلب یہ نہیں ہے کہ 7 00:00:17,770 --> 00:00:20,780 ہم کوئز 1 میں ہو سکتا ہے کہ سب کا احاطہ کرنے کے لئے جا رہے ہیں. 8 00:00:20,780 --> 00:00:25,270 تو تم بھی ایک لیکچر دیکھو، حصوں، آپ کر سکتے ہیں کہ سب کچھ لے اس بات کا یقین. 9 00:00:25,270 --> 00:00:28,240 1 کوئز بدھ، اگلے بدھ کو ہونے جا رہا ہے. 10 00:00:28,240 --> 00:00:33,800 تو مطالعہ کرنے کے لئے اس بات کا یقین. یہ پہلی کوئز کی طرح، بہت، جا رہا ہے 11 00:00:33,800 --> 00:00:36,390 اس کی شکل کے بارے میں، لیکن یہ شاید بہت مشکل ہو رہا ہے. 12 00:00:36,390 --> 00:00:39,600 میں 50 لیا جب کم از کم، گزشتہ سال، میں نے اسے بہت مشکل تھا. 13 00:00:39,600 --> 00:00:42,410 تو ایک بہت مطالعہ. 14 00:00:42,410 --> 00:00:45,190 >> میں ڈیٹا ڈھانچے احاطہ کرنے کے لئے جا رہا ہوں اور Huffman کوڈنگ. 15 00:00:45,190 --> 00:00:47,910 یہ لوگوں کی ایک بہت پیچیدہ ہے لگتا ہے کہ کچھ ہے 16 00:00:47,910 --> 00:00:51,930 لیکن میں یہ ممکن طور پر آسان بنانے کے لئے کوشش کرنے کے لئے جا رہا ہوں. 17 00:00:51,930 --> 00:00:56,330 سب سے پہلے، کیا ہم لوگ آپ کے کوئز 1 کے لئے جاننا چاہتے ہیں کے لئے ہے 18 00:00:56,330 --> 00:01:00,970 میں پیش کرنے کے لئے جا رہا ہوں کہ اعداد و شمار کے ڈھانچے میں سے ہر ایک کی تصوراتی وضاحت کو سمجھنے. 19 00:01:00,970 --> 00:01:03,960 یہ ہے کہ آپ کی ضرورت نہیں ہے کا مطلب ہے کہ اصل میں 20 00:01:03,960 --> 00:01:07,020 آپ 1 کوئز میں ہیش کی میز پر عمل درآمد. 21 00:01:07,020 --> 00:01:10,250 ہم آپ کو ایک پورے ہیش میز پر عملدرآمد چاہتے ہیں نہیں ہے، شاید ہم کوشش کریں گے 22 00:01:10,250 --> 00:01:13,090 آپ کو کچھ کام کرتا ہے کو لاگو کرنے کے لئے، 23 00:01:13,090 --> 00:01:16,940 سب سے زیادہ عام آپریشن، لیکن ہم آپ کو سب کچھ پر عمل درآمد کرنے کے لئے نہیں کر رہے ہیں. 24 00:01:16,940 --> 00:01:21,010 تو یہ آپ کو ہر ایک کے اعداد و شمار کے ڈھانچے کے پیچھے تصور سمجھتے ہیں کہ ضروری ہے 25 00:01:21,010 --> 00:01:23,510 اور بھی آپ سی میں کوڈ کرنے کے قابل ہیں، 26 00:01:23,510 --> 00:01:27,880 وہ ایک آنکڑا ڈھانچہ کے لئے ہے صرف سب سے زیادہ عام کی کارروائیوں. 27 00:01:27,880 --> 00:01:30,090 اور بھی، اشارہ اور structs جائزہ لینے کے لئے کے قابل ہو جائے 28 00:01:30,090 --> 00:01:33,470 ان اعداد و شمار کے ڈھانچے میں بہت ظاہر ہے کیونکہ. 29 00:01:33,470 --> 00:01:37,380 >> سب سے پہلے، فہرست منسلک. لنک کی فہرست اصل arrays کے بہت ملتے جلتے ہیں، 30 00:01:37,380 --> 00:01:39,930 لیکن ایک لنک کی فہرست اور ایک صف کے درمیان فرق، 31 00:01:39,930 --> 00:01:45,160 سب سے پہلے،، ایک لنک کی فہرست ایک بہت لچکدار سائز ہے کہ 32 00:01:45,160 --> 00:01:50,060 arrays میں آپ صف کے لئے ایک بہت بڑے سائز منتخب کرنے کے لئے، یا تو ہے، جبکہ، 33 00:01:50,060 --> 00:01:53,710 تو آپ کو، آپ کو اس صف میں اپنے تمام ڈیٹا ذخیرہ کرنے کے قابل ہو جائے جا رہے ہیں جانتے ہیں کہ 34 00:01:53,710 --> 00:01:59,370 یا آپ کو صف کے ایک لچکدار لمبائی ہے پر malloc کا استعمال کرنے کی ضرورت. 35 00:01:59,370 --> 00:02:03,680 منسلک کی فہرست میں یہ صرف زیادہ عناصر حاصل کرنے کے لئے بہت آسان ہے، 36 00:02:03,680 --> 00:02:07,210 منسلک فہرست میں زیادہ سے زیادہ عناصر کو یا عناصر کو ہٹانے کے. 37 00:02:07,210 --> 00:02:09,370 اور اصل میں، آپ کو لنک کی فہرست کے مطابق رکھا جائے نہیں کرنا چاہتے ہیں تو، 38 00:02:09,370 --> 00:02:13,950 آپ کو تلاش اور مسلسل وقت میں عناصر ختم کر سکتے ہیں، 39 00:02:13,950 --> 00:02:16,800 تو اے (1) وقت، تو یہ بہت آسان ہے. 40 00:02:16,800 --> 00:02:20,660 آپ کو صرف، نوڈس ہمیشہ MALLOC کرنے کے لئے یاد کرنے کے لئے ہوشیار اور مفت ہونا ہے 41 00:02:20,660 --> 00:02:25,510 آپ ایسا نہیں کرتے ہیں تو، آپ میموری لیک پڑے گا صرف اس وجہ سے. 42 00:02:25,510 --> 00:02:31,480 تو منسلک کی فہرست - ایک نوڈ کی تعریف صرف ہم نے وہاں کیا ہے کی طرح ہے. 43 00:02:31,480 --> 00:02:35,110 میں int ن ڈال دیا، لیکن اگر آپ چاہتے ہیں کسی بھی اعداد و شمار کے محفوظ کر سکتے ہیں. 44 00:02:35,110 --> 00:02:37,280 آپ کو ایک تار محفوظ کرنا چاہتے ہیں تو، یہ ٹھیک ہے. 45 00:02:37,280 --> 00:02:41,690 آپ ایک struct محفوظ کرنا چاہتے ہیں، تو یہ آپ چاہتے ہیں جو کچھ بھی،، ایک ڈبل ٹھیک ہے. 46 00:02:41,690 --> 00:02:44,630 میں یہاں صرف مثالیں کے لئے int ن ڈال دیا. 47 00:02:44,630 --> 00:02:46,800 اور آپ کو اگلے نوڈ پوائنٹر ہے. 48 00:02:46,800 --> 00:02:51,940 تو، بنیادی طور پر، ایک لنک کی فہرست کچھ ڈیٹا ہے، اور پھر یہ اگلے نوڈ کی طرف اشارہ. 49 00:02:51,940 --> 00:02:56,710 اس سے منسلک فہرست میں آخری عنصر ہے تو، یہ نل کی طرف اشارہ کرنے جا رہا ہے. 50 00:02:56,710 --> 00:02:59,060 تو یہ ایک لنک کی فہرست کی ایک مثال ہے. 51 00:02:59,250 --> 00:03:05,960 >> ٹھیک ہے، تو اب میں ایک لنک کی فہرست میں ایک عنصر داخل کرنا چاہتے ہیں، اگر ہمیں کیا کرنا چاہئے دیکھتے ہیں. 52 00:03:05,960 --> 00:03:08,810 سب سے پہلے، ایک تقریب ڈالیں قسم باطل ہو جائے گا 53 00:03:08,810 --> 00:03:11,350 میں کچھ بھی واپس نہیں کرنا چاہتے کیونکہ. 54 00:03:11,350 --> 00:03:14,200 اور میں ایک دلیل کے طور ایک int لے جا رہا ہوں، 55 00:03:14,200 --> 00:03:17,090 میں داخل کرنا چاہتے ہیں معلوم ہے کہ کیا کرنا چاہتے ہیں. 56 00:03:17,090 --> 00:03:21,840 تو مجھے کیا کرنا چاہئے سب سے پہلی چیز کیا ہے؟ ٹھیک ہے، میں newnode پر MALLOC چاہئے، 57 00:03:21,840 --> 00:03:24,240 تو ہے کہ پہلی سطر ہے. 58 00:03:24,240 --> 00:03:27,580 میں نے صرف ایک لنک کی فہرست میں ڈال ایک نیا نوڈ پیدا کر رہا ہوں. 59 00:03:27,580 --> 00:03:32,360 تو میں کیا کر سکتے ہیں؟ ٹھیک ہے، ہم جانتے ہیں کہ لنک کی فہرست کے ہمارے نفاذ میں 60 00:03:32,360 --> 00:03:38,180 کلاس میں، ہم نے ہمیشہ ایک عالمی متغیر کے طور پر سر ڈال. 61 00:03:38,180 --> 00:03:41,800 تو کیا ہم کر سکتے ہیں سر تبدیلی ہے. 62 00:03:41,800 --> 00:03:44,300 میں اس نئے نوڈ نئے سربراہ ہو کر سکتے ہیں، 63 00:03:44,300 --> 00:03:46,670 اور اس کے پچھلے سربراہ کی طرف اشارہ کرنے جا رہا ہے. 64 00:03:46,670 --> 00:03:50,390 ہم اس کو کس طرح کر سکتے ہیں؟ مجھے کیا کرنا ہے سب سے پہلی چیز 65 00:03:50,390 --> 00:03:54,770 ، قیمت پر نیا نوڈ میں 'ن' تبدیلی ہے 66 00:03:54,770 --> 00:03:57,530 تقریب منظور کیا گیا تھا جس میں. 67 00:03:57,530 --> 00:04:01,050 پھر newnode اگلا سر کی جا رہی ہے. 68 00:04:01,050 --> 00:04:05,800 سر newnode جا رہا ہے. تو یہ بہت آسان ہے. 69 00:04:05,800 --> 00:04:10,090 ایک نوڈ خارج کرنے کے لئے، ہم جیسے یہ کر سکتے ہیں - 70 00:04:10,090 --> 00:04:14,790 ہم ایسا کر سکتے ہیں کا ایک طریقہ کا کہنا ہے، 71 00:04:14,790 --> 00:04:18,160 ٹھیک ہے، میں نے کو خارج کرنا چاہتے ہیں، مثال کے طور پر، 3، 72 00:04:18,160 --> 00:04:24,850 میں کیا کر سکتے ہیں صرف گزشتہ نوڈ نقطہ ہے 73 00:04:24,850 --> 00:04:27,580 3 اگلا نوڈ. 74 00:04:27,580 --> 00:04:29,400 تو میں صرف اس طرح کچھ کرنا ہوگا. 75 00:04:29,400 --> 00:04:33,400 لیکن اس کے کرنے میں کیا مسئلہ ہے؟ 76 00:04:33,400 --> 00:04:37,400 میں ایک میموری لیک ہے، تو میں اب نمبر 3 کے لئے رسائی حاصل نہیں ہے. 77 00:04:37,400 --> 00:04:42,480 اس کے ساتھ مسئلہ میں اس نوڈ آزاد کرنے کے قابل ہو جائے کرنے نہیں جا رہا ہوں یہ ہے کہ. 78 00:04:42,480 --> 00:04:45,360 میں نے میموری لیک اور (unintelligible) مجھ سے نفرت کی جا رہی ہے کے لئے جا رہا ہوں. 79 00:04:45,360 --> 00:04:49,370 تو بجائے اس کے کہ ایسا کرنے کی، میں شاید ایک عارضی پوائنٹر ہونا چاہئے. 80 00:04:49,370 --> 00:04:53,210 تو میں نے TEMP ڈال دیا. یہ میں نے حذف کرنا چاہتے ہیں نوڈ کی طرف اشارہ کرنے جا رہا ہے. 81 00:04:53,210 --> 00:04:58,170 اور پھر میں نے اگلے نوڈ کی طرف اشارہ کرنے کے لئے گزشتہ نوڈس منتقل کر سکتے ہیں 82 00:04:58,170 --> 00:05:00,390 میں نے حذف کرنا چاہتے ہیں نوڈ کی. 83 00:05:00,390 --> 00:05:02,730 اور آخر میں، میں نے پوائنٹر آزاد کر سکتے ہیں. 84 00:05:02,730 --> 00:05:07,480 میں وہیں پیدا پوائنٹر آزاد کرنے کے لئے ہے؟ 85 00:05:07,480 --> 00:05:09,560 میں، صرف اس وجہ سے نہیں ہے - 86 00:05:09,560 --> 00:05:13,430 فرق یہ نوڈ malloc کا استعمال کرتے ہوئے تخلیق کیا گیا ہے، 87 00:05:13,430 --> 00:05:17,280 یہ صرف ایک اسٹیک میں ایک نل سوئچ کے طور پر قرار دیا گیا ہے جبکہ تو یہ، ڈھیر میں ہے. 88 00:05:17,280 --> 00:05:20,000 تو میں نے اسے آزاد کرنے کی ضرورت نہیں ہے. 89 00:05:20,000 --> 00:05:22,030 ٹھیک ہے. >> تو اب stacks کے بارے میں بات کرتے ہیں. 90 00:05:22,030 --> 00:05:24,680 پوٹ خوبصورت براہ راست ہیں. 91 00:05:24,680 --> 00:05:29,540 ہم صرف arrays کے استعمال کرتے ہوئے کلاس میں پوٹ اور قطار کیا، 92 00:05:29,540 --> 00:05:32,820 لیکن آپ کو واقف ہونا چاہئے - صرف آگاہ ہونا 93 00:05:32,820 --> 00:05:40,740 تم نے بھی اس کے ساتھ ساتھ منسلک کی فہرست کا استعمال کرتے ہوئے قطار میں پوٹ کر سکتے ہیں. 94 00:05:40,740 --> 00:05:44,460 آپ کو ایک صف ہے اگر ایسا ہے تو، کیا ایک اسٹیک ہو گا؟ 95 00:05:44,460 --> 00:05:46,810 ایک اسٹیک، سب سے پہلے، ایک سائز کرنا پڑے گا. 96 00:05:46,810 --> 00:05:49,950 آپ اب ہے کہ اسٹیک کا سائز کیا ہے ذخیرہ کرنے کے لئے ہے. 97 00:05:49,950 --> 00:05:52,980 اور بھی آپ، تعداد کے اس معاملے میں، ایک صف پڑے گا 98 00:05:52,980 --> 00:05:55,120 اگر آپ چاہتے ہیں، لیکن یہ ایک صف ہو سکتا ہے 99 00:05:55,120 --> 00:06:00,380 ڈور، struct کے ایک صف، آپ کو محفوظ کرنا چاہتے ہیں کہ کچھ بھی. 100 00:06:00,380 --> 00:06:03,240 اسٹیک کے بارے میں: ایک اسٹیک اور ایک لنک کی فہرست کے درمیان فرق 101 00:06:03,240 --> 00:06:08,590 اسٹیک میں آپ کو صرف اسٹیک میں ڈال دیا گیا تھا کہ آخری عنصر تک رسائی حاصل ہے. 102 00:06:08,590 --> 00:06:11,770 یہ سب سے پہلے باہر، آخری میں کہا جاتا ہے. 103 00:06:11,770 --> 00:06:15,090 آپ ٹرے کے اسٹیک کی ہے، جیسا 104 00:06:15,090 --> 00:06:17,670 آپ اسٹیک کے سب سے اوپر پر ایک ٹرے میں ڈال دیا تو، 105 00:06:17,670 --> 00:06:22,670 آپ کو دوسرے ٹرے تک رسائی حاصل کرنے سے پہلے کہ ٹرے کو دور کرنے کے لئے ہے. 106 00:06:22,670 --> 00:06:26,310 یہ پوٹ کے ساتھ ایک ہی بات ہے. 107 00:06:26,310 --> 00:06:31,220 میں، مثال کے طور پر، ایک اسٹیک پر ایک عنصر شامل کرنا چاہتے ہیں تو، مجھے کیا کرنا چاہیے؟ 108 00:06:31,220 --> 00:06:34,070 دھکا کہا جاتا ہے، اور یہ بہت سیدھا ہے ہے. 109 00:06:34,070 --> 00:06:37,130 تمہیں کیا کرنا ہے سب سے پہلی چیز چیک ہے اگر اسٹیک کا سائز 110 00:06:37,130 --> 00:06:40,150 زیادہ یا اسٹیک کی صلاحیت کے برابر نہیں ہے. 111 00:06:40,150 --> 00:06:45,810 آپ نے پہلے ہی مکمل صلاحیت پر ہیں تو، آپ کو کسی اور چیز کا اضافہ نہیں کر سکتے ہیں. 112 00:06:45,810 --> 00:06:51,140 نہیں تو، آپ کو صرف اسٹیک کرنے کے لئے عنصر شامل کرنے کے لئے ہے. 113 00:06:51,140 --> 00:06:54,530 اور آخر میں، سائز اضافہ. تو یہ بہت سیدھا ہے. 114 00:06:54,530 --> 00:06:57,140 تو میں صرف نمبر 2 میں شامل کریں. 115 00:06:57,140 --> 00:07:00,350 میں پاپ کرنا چاہتے ہیں اور اگر، جس میں دور کرنے کے لئے چاہتے ہیں کا مطلب ہے کہ 116 00:07:00,350 --> 00:07:03,870 شامل کیا ہے اور عنصر کی قیمت واپس کیا گیا تھا کہ آخری عنصر، 117 00:07:03,870 --> 00:07:09,180 میں چیک کرنے کے لیے سب سے پہلی چیز اسٹیک خالی نہیں ہے. 118 00:07:09,180 --> 00:07:11,510 اگر یہ خالی ہے، میں نے کچھ واپس نہیں کر سکتے ہیں. 119 00:07:11,510 --> 00:07:14,820 اس صورت میں، میں -1 واپس آ رہا ہوں. 120 00:07:14,820 --> 00:07:18,960 دوسری صورت میں، میں نے رپورٹ کا سائز تدریج کرنے جا رہا ہوں، 121 00:07:18,960 --> 00:07:22,510 اور تعداد (اگر s.size) واپس. 122 00:07:22,510 --> 00:07:27,230 میں کیوں سائز تدریج کریں اور پھر اگر s.size واپس کیا؟ 123 00:07:27,230 --> 00:07:30,930 اس صورت میں، رپورٹ 4 سائز ہے، کیونکہ یہ ہے 124 00:07:30,930 --> 00:07:33,810 اور میں چوتھا عنصر واپس کرنا چاہتے ہیں، ٹھیک ہے؟ 125 00:07:33,810 --> 00:07:36,030 لیکن چوتھے عنصر کا انڈیکس کیا ہے؟ تین. 126 00:07:36,030 --> 00:07:44,510 میں سائز کرتے - 3 ہونے جا رہا ہے، میں نے صرف (اگر s.size) s.numbers واپس آ سکتے ہیں 127 00:07:44,510 --> 00:07:48,410 یہ 3 ہے کیونکہ. تو یہ صرف انڈیکس ہے. 128 00:07:48,410 --> 00:07:50,380 >> اب قطار. قطار بہت ایک ہی چیز ہیں. 129 00:07:50,380 --> 00:07:54,950 فرق صرف اتنا ہے، کہ بجائے اس کے آخری میں ہونے کے، سب سے پہلے باہر ہے 130 00:07:54,950 --> 00:07:57,480 آپ سب سے پہلے باہر، میں سب سے پہلے ہے. 131 00:07:57,480 --> 00:07:59,460 آپ کو ایک کنسرٹ کرنے کے لئے جانے کے لئے انتظار کر رہے ہیں شاید تو، 132 00:07:59,460 --> 00:08:04,260 آپ اس کے بجائے ایک قطار کی ایک اسٹیک اگر آپ خوش نہیں ہو گا. 133 00:08:04,260 --> 00:08:07,730 آنے کے لئے آخری شخص ہونے کی وجہ سے کنسرٹ داخل کرنے کے لئے سب سے پہلے ہو جائے گا. 134 00:08:07,730 --> 00:08:09,760 تم شاید خوش نہیں ہو گا. 135 00:08:09,760 --> 00:08:15,020 قطار میں، حاصل کرنے کے لئے سب سے پہلے شخص بھی باہر حاصل کرنے کے لئے سب سے پہلے شخص ہیں. 136 00:08:15,020 --> 00:08:18,720 تو ایک قطار کی تعریف میں، صف کے سائز کے علاوہ، 137 00:08:18,720 --> 00:08:23,360 آپ کو بھی اسٹیک کے سر پر انڈیکس ہے جس کا سر، ہوگا. 138 00:08:23,360 --> 00:08:29,000 اب پہلے عنصر تو. 139 00:08:29,000 --> 00:08:32,710 Enqueue پوٹ کے لئے دھکا کے طور پر ایک ہی بات ہے. 140 00:08:32,710 --> 00:08:34,980 آپ کو بہت بولی تھے، آپ صرف کا کہنا ہے کہ، 141 00:08:34,980 --> 00:08:39,289 مجھے دھکا کے لئے کیا اس کے ساتھ ساتھ، میں صرف بالکل ایک ہی بات کر سکتے ہیں. 142 00:08:39,289 --> 00:08:44,030 یہ صلاحیت سے باہر نہیں ہے اگر میں صرف چیک کر سکتے ہیں. 143 00:08:44,030 --> 00:08:48,760 اگر ایسا ہے تو، میں دوسری صورت میں صرف نئی قیمت برآمد کر سکتے ہیں، جھوٹے واپس 144 00:08:48,760 --> 00:08:50,630 اور پھر سائز اضافہ. 145 00:08:50,630 --> 00:08:52,750 لیکن کیوں یہ غلط ہے؟ 146 00:08:52,750 --> 00:08:55,010 یہ مثال کے طور پر دیکھتے ہیں. 147 00:08:55,010 --> 00:08:57,020 میں سامان کا ایک گروپ enqueue کرنا کوشش کر رہا ہوں، 148 00:08:57,020 --> 00:08:58,390 اور پھر میں dequeue اور enqueue کرنا جا رہا ہوں. 149 00:08:58,390 --> 00:09:00,550 نہیں حکم دیتا ہے کی ایک بہت ہے، لیکن یہ بہت آسان ہے. 150 00:09:00,550 --> 00:09:04,790 میں 5 enqueue، تو 5 شامل کرنے کے لئے جا رہا ہے، اور اس کے بعد 7، رہا ہوں 151 00:09:04,790 --> 00:09:09,310 1، 4، 6، اور پھر میں نے کچھ dequeue کرنا چاہتے ہیں، 152 00:09:09,310 --> 00:09:12,000 جس میں پہلا عنصر دور کرنے کے لئے جا رہا ہوں، مطلب یہ ہے کہ. 153 00:09:12,000 --> 00:09:14,640 تو میں، نمبر 3 دور کرنے کے لئے جا رہا ہوں؟ 154 00:09:14,640 --> 00:09:17,320 پہلا عنصر. ٹھیک ہے. 155 00:09:17,320 --> 00:09:21,450 مجھے اور کچھ enqueue کرنے کی کوشش کریں تو اب، کیا ہونے جا رہا ہے؟ 156 00:09:21,450 --> 00:09:24,290 میرا عمل درآمد کے مطابق، 157 00:09:24,290 --> 00:09:31,040 میں انڈیکس q.size میں اگلے نمبر ڈال کرنے کے لئے جا رہا تھا. 158 00:09:31,040 --> 00:09:35,140 اس صورت میں، سائز 8 ہے، 159 00:09:35,140 --> 00:09:38,640 تو انڈیکس 8 آخری پوزیشن میں یہاں ہو جائے گا. 160 00:09:38,640 --> 00:09:43,900 میں یہاں 1 enqueue کرنا کی کوشش کریں، تو میں آخری پوزیشن overwriting کی جائے گی 161 00:09:43,900 --> 00:09:45,870 مکمل طور پر غلط ہے جو نمبر 1، کرنے کے لئے. 162 00:09:45,870 --> 00:09:49,870 مجھے کیا کرنا چاہتے ہیں کے ارد گرد لپیٹ دیں اور پہلی پوزیشن پر جانا ہے. 163 00:09:49,870 --> 00:09:52,870 ہو سکتا ہے کہ آپ کو صرف اچھی طرح سے، میں نے صرف چیک کرنے کے لیے، کہیں گے 164 00:09:52,870 --> 00:09:55,600 میں اصل میں وہاں کچھ ڈال کر سکتے ہیں. 165 00:09:55,600 --> 00:09:58,560 اگر نہیں تو، میں صرف اوہ، نیا مکمل صلاحیت، کا کہنا ہے کہ 166 00:09:58,560 --> 00:10:02,010 اصل میں صلاحیت ہے - 1، اور آپ کو وہاں ایک عنصر نہیں ڈال سکتا. 167 00:10:02,010 --> 00:10:06,150 لیکن مسئلہ کیا ہے؟ مسئلہ یہ ہے کہ میں نے صرف یہاں سب کچھ dequeue تو 168 00:10:06,150 --> 00:10:08,240 اور اس کے بعد میں کچھ اور شامل کرنے کی کوشش ہے، یہ صرف کا کہنا ہے کہ، 169 00:10:08,240 --> 00:10:11,210 ٹھیک ہے، تم 0 ہے جو مکمل صلاحیت، میں تھے. 170 00:10:11,210 --> 00:10:13,620 تو آپ کی قطار گیا ہے. 171 00:10:13,620 --> 00:10:16,990 آپ کے ارد گرد لپیٹ کرنے کے لئے ہے، اور ارد گرد ریپنگ کا ایک طریقہ 172 00:10:16,990 --> 00:10:22,040 آپ کو بصیرت اور دیگر psets میں میں سیکھا لوگ MOD کا استعمال کرتے ہوئے کیا گیا ہے کہ. 173 00:10:22,040 --> 00:10:29,090 آپ q.size + q.head کروں گا کیوں سمجھنے کے لئے گھر میں کوشش کر سکتے ہیں 174 00:10:29,090 --> 00:10:31,080 MOD صلاحیت، لیکن آپ کو یہاں چیک کریں، تو، 175 00:10:31,080 --> 00:10:34,760 ہم نے یہ کام کرتا ہے دیکھ سکتے ہیں. 176 00:10:34,760 --> 00:10:37,760 تو گزشتہ مثال میں، 8 q.size تھا 177 00:10:37,760 --> 00:10:47,590 یہاں صف کی اس پوزیشن ہونے کی وجہ سے اور سر، 1 تھا. 178 00:10:47,590 --> 00:10:51,970 تو یہ 1 + 8، 9 ہو جائے گا. MOD صلاحیت 9 0 ہو جائے گی. 179 00:10:51,970 --> 00:10:56,640 یہ انڈیکس 0 جائیں گے. ہم صحیح پوزیشن میں ہو جائے گا. 180 00:10:56,640 --> 00:10:59,750 اور پھر گھر میں قطار کی کوشش کریں. 181 00:10:59,750 --> 00:11:04,950 کچھ اہم چیزوں: ایک اسٹیک اور ایک قطار کے درمیان فرق کو سمجھنے کی کوشش. 182 00:11:04,950 --> 00:11:11,620 گھر میں، enqueue، dequeue، دھکا اور پاپ کو لاگو کرنے کے ساتھ بہت واقف حاصل کرنے کی کوشش. 183 00:11:11,620 --> 00:11:16,560 آپ کو ان میں سے ہر ایک کا استعمال کریں گے اور جب بھی سمجھ. 184 00:11:16,560 --> 00:11:22,830 >> تو Pokemons کے ایک گروپ کے ساتھ 10 سیکنڈ کے لئے آرام. 185 00:11:22,830 --> 00:11:26,080 اور اب واپس ڈیٹا ڈھانچے جانے. 186 00:11:26,080 --> 00:11:29,770 میزیں ہیش. لوگوں کی ایک بہت ہیش میزیں سے خوفزدہ تھے. 187 00:11:29,770 --> 00:11:33,650 مسئلہ 6 سیٹ میں، ہجے پڑتال کار. 188 00:11:33,650 --> 00:11:35,980 ہیش میزیں اور کوشش کرتا ہے، بہت سے لوگوں کو ان میں سے ڈرو. 189 00:11:35,980 --> 00:11:38,540 وہ سمجھنے کے لئے بہت مشکل ہو. جی ہاں؟ 190 00:11:38,540 --> 00:11:41,490 [روب Bowden] مسئلہ سیٹ 5. >> مسئلہ جی ہاں، 5 مقرر. شکریہ روب. 191 00:11:41,490 --> 00:11:43,370 جی ہاں. چھ Huff کے این 'پف، جی ہاں تھا. 192 00:11:43,370 --> 00:11:49,340 مسئلہ ہجے پڑتال کار کیا گیا تھا 5 مقرر کریں، اور آپ کو ایک ہیش میز یا ایک کوشش کو استعمال کرنے کے لئے تھا. 193 00:11:49,340 --> 00:11:55,360 لوگوں کی ایک بہت وہ سمجھنے کے لئے سپر مشکل تھے نے سوچا کہ، لیکن وہ واقعی بہت آسان ہیں. 194 00:11:55,360 --> 00:12:01,290 ایک ہیش میز بنیادی طور پر، کیا ہے؟ ایک ہیش میز لنک کی فہرست کے ایک صف ہے. 195 00:12:01,290 --> 00:12:06,730 ایک صف اور ایک ہیش ٹیبل کے درمیان فرق صرف 196 00:12:06,730 --> 00:12:09,730 ہیش ٹیبل میں آپ کو ایک ہیش تقریب کہا جاتا کچھ ہے. 197 00:12:09,730 --> 00:12:12,080 ایک ہیش فنکشن کیا ہے؟ 198 00:12:12,080 --> 00:12:13,970 تم لوگ یہاں پڑھ سکتے ہیں تو مجھے پتہ نہیں ہے. 199 00:12:13,970 --> 00:12:16,090 یہ ایک ہیش کی میز کی ایک مثال ہے. 200 00:12:16,090 --> 00:12:19,220 تو اگر آپ کو 31 عناصر کے ساتھ ایک صف ہے دیکھ سکتے ہیں. 201 00:12:19,220 --> 00:12:22,440 اور کیا ہم ایک ہیش ٹیبل میں کیا ایک ہیش تقریب ہے ہے 202 00:12:22,440 --> 00:12:26,660 کہ ایک اہم ترجمہ کرنے کے لئے کی جا رہی ہے، ہر ایک انڈیکس پر int. 203 00:12:26,660 --> 00:12:31,740 اگر، مثال کے طور پر، میں نے بی ہیریسن کے لئے منتخب کرنے کے لئے چاہتے ہیں، 204 00:12:31,740 --> 00:12:34,190 میں اپنے ہیش افعال میں بی ہیریسن ڈال دیں گے، 205 00:12:34,190 --> 00:12:36,960 اور ہیش تقریب 24 واپس کریں گے. 206 00:12:36,960 --> 00:12:40,930 تو میں نے 24 میں بی ہیریسن محفوظ کرنا چاہتے ہیں جانتے ہیں کہ. 207 00:12:40,930 --> 00:12:46,580 تو یہ صرف ایک صف ہے اور ایک ہیش ٹیبل کے درمیان فرق ہے. 208 00:12:46,580 --> 00:12:48,740 ہیش ٹیبل میں آپ کو بتانے کے لئے کی جا رہی ہے کہ ایک تقریب پڑے گا 209 00:12:48,740 --> 00:12:54,740 جہاں آپ کو محفوظ کرنا چاہتے ہیں کہ ڈیٹا ذخیرہ کرنے کے لئے. 210 00:12:54,740 --> 00:12:57,040 ہیش تقریب کے لئے، آپ کو ایک ہیش تقریب کے لئے نظر کرنا چاہتے ہیں 211 00:12:57,040 --> 00:13:00,600 کہ نیتاتمک اور اچھی طرح سے تقسیم کیا ہے. 212 00:13:00,600 --> 00:13:07,810 آپ یہاں دیکھ سکتے ہیں، آپ کو میں نے دکان پر چاہتے تھے کہ اعداد و شمار کے ایک بہت ہیں اصل 19 تھا دیکھتے ہیں کہ 213 00:13:07,810 --> 00:13:12,470 اس کی بجائے تمام مفت تھے جو 31 اور 30 ​​اور 29، کا استعمال کرتے ہوئے. 214 00:13:12,470 --> 00:13:16,920 تو میں نے استعمال کیا ہے کہ ہیش تقریب بہت اچھی طرح تقسیم نہیں تھا. 215 00:13:16,920 --> 00:13:20,710 ہم اچھی طرح تقسیم، کا کہنا ہے کہ، یہ، ہم چاہتے ہیں کہ اس کا مطلب 216 00:13:20,710 --> 00:13:26,520 تقریبا، کم از کم 1 یا ہر ایک کے لئے 2 - 217 00:13:26,520 --> 00:13:32,190 کی طرح، arrays میں سوچکانکوں میں سے ہر ایک کے لئے 1 یا 2 کا فرق. 218 00:13:32,190 --> 00:13:43,950 آپ، تقریبا، صف میں ہر منسلک فہرست میں عناصر کی ایک ہی تعداد ہے کرنا چاہتے ہیں. 219 00:13:43,950 --> 00:13:48,600 اور یہ، ہیش ٹیبل میں درست ہے ہیش ٹیبل کے طور پر دیکھنے کے تو چیک کرنے کے لئے آسان ہے. 220 00:13:48,600 --> 00:13:51,770 >> پھر درخت. یہ ایک درخت ہے. 221 00:13:51,770 --> 00:13:56,400 کمپیوٹر سائنس میں درخت کسی وجہ کے لئے نیچے الٹا ہیں. 222 00:13:56,400 --> 00:14:00,150 تو یہاں آپ کو درخت کی جڑ اور اس کے بعد پتے. 223 00:14:00,150 --> 00:14:05,630 آپ کو صرف والدین اور بچے کے لئے نام پتہ ہونا چاہیئے. 224 00:14:05,630 --> 00:14:12,880 ہر نوڈ کے والدین ذیل ہیں مراکز ہیں جو اس کے بچوں، ہے. 225 00:14:12,880 --> 00:14:19,660 تو، مثال کے طور پر، 2، وہیں 3 کے لئے اور دوسرے بچے کے لئے والدین کی جا رہی ہے 226 00:14:19,660 --> 00:14:25,290 3 1 کے لئے والدین اور ہیں کہ دوسرے بچوں جا رہا ہے جبکہ. 227 00:14:25,290 --> 00:14:29,990 اور 1 تو 3 کے بچے ہونے جا رہا ہے، اور. 228 00:14:29,990 --> 00:14:34,610 ہم، بہت زیادہ دلچسپ کچھ، ایک بائنری تلاش درخت کہا جاتا ہے 229 00:14:34,610 --> 00:14:39,040 جس میں ایک نوڈ کے حق پر تمام اقدار 230 00:14:39,040 --> 00:14:41,660 یہاں، حق پر ہونے کے لئے جا رہے ہیں - دائیں، 231 00:14:41,660 --> 00:14:46,780 جڑ میں عنصر سے زیادہ ہونے جا رہے ہیں. 232 00:14:46,780 --> 00:14:49,780 حق پر تو میں یہیں نمبر 5 ہے تو، تمام عناصر 233 00:14:49,780 --> 00:14:51,940 5 سے زیادہ ہو جا، اور بائیں طرف ہیں 234 00:14:51,940 --> 00:14:56,770 تمام عناصر 5 سے کم جا رہے ہیں. 235 00:14:56,770 --> 00:14:58,780 یہ کیوں مفید ہے؟ 236 00:14:58,780 --> 00:15:01,660 ٹھیک ہے، میں نمبر 7 یہاں ہے تو چیک کرنا چاہتے ہیں تو، مثال کے طور پر، 237 00:15:01,660 --> 00:15:05,960 میں نے صرف پہلے 5 جاؤ اور میں دیکھ رہا ہوں، 5 سے 7 زیادہ سے زیادہ یا اس سے کم ہے؟ 238 00:15:05,960 --> 00:15:09,540 یہ بڑا ہے، تو میں اس درخت کے حق پر ہونے کی ضرورت کرنے جا رہا ہے پتہ ہے. 239 00:15:09,540 --> 00:15:13,980 تو میں نے کو دیکھنے کے لئے بہت کم چیزیں ہیں. 240 00:15:13,980 --> 00:15:19,520 ایک بائنری تلاش درخت، نوڈ کے عمل میں، میں نے صرف، اعداد و شمار کرنے کے لئے جا رہا ہوں 241 00:15:19,520 --> 00:15:21,750 تو int ن؛ تم بھی ایک تار کر سکتے ہیں 242 00:15:21,750 --> 00:15:23,630 یا تم چاہتے تھے کچھ. 243 00:15:23,630 --> 00:15:28,100 آپ کو صرف زیادہ ہے کیا وضاحت پر ہوشیار رہنا ہوگا، کم ہے. 244 00:15:28,100 --> 00:15:30,390 تو آپ ڈور تھا، مثال کے طور پر، آپ کی وضاحت کر سکتے ہیں 245 00:15:30,390 --> 00:15:34,690 حق پر ان تمام چیزوں کو بڑی لمبائی کے لئے جا رہے ہیں، 246 00:15:34,690 --> 00:15:40,940 بائیں کم حد تک کرنے جا رہے ہیں، تو یہ آپ پر منحصر واقعی ہے. 247 00:15:40,940 --> 00:15:44,930 >> میں کس طرح BST کے لئے تلاش کو لاگو کر سکتے ہیں؟ 248 00:15:44,930 --> 00:15:47,840 ہم کرنا پڑے گا پہلی بات جڑ خالی ہے چیک کرنے کے لیے ہے. 249 00:15:47,840 --> 00:15:50,920 اگر یہ نل ہے، یہ بات نہیں ہے کا مطلب ہے کہ 250 00:15:50,920 --> 00:15:53,330 آپ کو بھی ایک درخت، حق نہیں ہے ہے؟ 251 00:15:53,330 --> 00:15:55,790 تو میں نے جھوٹے واپس. 252 00:15:55,790 --> 00:15:58,740 دوسری صورت میں، میں تعداد زیادہ ہے تو جانچ پڑتال کرنے کے لئے جا رہا ہوں 253 00:15:58,740 --> 00:16:01,720 جڑ میں قیمت سے. 254 00:16:01,720 --> 00:16:04,250 میں نے دائیں عنصر کو تلاش کرنے کی کوشش کرنے کے لئے جا رہا ہوں 255 00:16:04,250 --> 00:16:08,590 درخت کی. 256 00:16:08,590 --> 00:16:11,310 تمہیں پتہ ہے میں یہاں تکرار استعمال کر رہا ہوں کہ کو دیکھنے کے. 257 00:16:11,310 --> 00:16:14,150 یہ کم ہے تو، میں بائیں کو دیکھنے کے لئے جا رہا ہوں. 258 00:16:14,150 --> 00:16:18,330 اور آخر میں، دوسری صورت میں، یہ زیادہ سے زیادہ یا اس سے کم نہیں ہے، 259 00:16:18,330 --> 00:16:20,660 یہ اس قیمت پر خود کو ہے کا مطلب ہے کہ. 260 00:16:20,660 --> 00:16:23,010 تو میں صرف حقیقی واپس. 261 00:16:23,010 --> 00:16:26,360 تم نے تو، تو، تو استعمال کیا جاتا ہے یہاں دیکھ سکتے ہیں. 262 00:16:26,360 --> 00:16:30,820 اور یاد رکھو، کوئز 0 میں، ہم،، اگر، تو تھا کہ ایک مسئلہ تھا 263 00:16:30,820 --> 00:16:32,780 اور آپ اکشمتا کو تلاش کرنے والے تھے، 264 00:16:32,780 --> 00:16:35,180 اور اکشمتا تو آپ کو استعمال کیا جاتا تھا. 265 00:16:35,180 --> 00:16:39,060 اگر آپ کسی اور، ورنہ اگر، اگر استعمال کیا جاتا ہے، اور کچھ کیا جانا چاہئے. 266 00:16:39,060 --> 00:16:44,240 اور اگر کسی اگر اور کچھ یہاں تو، میں کسی اور استعمال کرنا چاہئے؟ 267 00:16:44,240 --> 00:16:46,200 کیا کسی - جی ہاں؟ 268 00:16:46,200 --> 00:16:51,140 [Student کی خطابت، اشراوی] 269 00:16:51,140 --> 00:16:53,480 یہ بہترین ہے. تو وہ، اس سے کوئی فرق نہیں ہے کہ کہہ رہا ہے 270 00:16:53,480 --> 00:16:55,930 صرف اس وجہ سے ہم سے پہلے تھا کہ اکشمتا 271 00:16:55,930 --> 00:16:59,550 تھا کہ، بعض کی حالت مطمئن کیا گیا تھا ہو سکتا ہے، تو اس کی وجہ 272 00:16:59,550 --> 00:17:03,570 تو آپ کو ایک کارروائی کارکردگی کا مظاہرہ کیا، لیکن پھر آپ دیگر حالات کی تمام چیک کرنے کے لیے جا رہے تھے. 273 00:17:03,570 --> 00:17:06,319 لیکن اس معاملے میں، اسے فورا واپس آئے، تو یہ کوئی فرق نہیں پڑتا. 274 00:17:06,319 --> 00:17:09,220 تو اگر آپ کسی کو استعمال کرنے کی ضرورت نہیں ہے. 275 00:17:09,220 --> 00:17:11,740 >> اور آخر میں، کی کوشش کرتا ہے کے بارے میں بات، 276 00:17:11,740 --> 00:17:13,800 جس میں سب کی پسندیدہ ہے. 277 00:17:13,800 --> 00:17:15,980 ایک کوشش arrays کے ایک درخت ہے. 278 00:17:15,980 --> 00:17:20,369 یہ اقدار تلاش کرنے کے لئے بہت تیزی سے ہے، لیکن یہ میموری کا ایک بہت استعمال کرتا ہے. 279 00:17:20,369 --> 00:17:22,530 اور یہ الفاظ فلٹر کرنے کے لئے عام طور پر ہے، تو جب آپ 280 00:17:22,530 --> 00:17:27,920 آپ کے فون میں فون کتاب کی طرح، مثال کے طور پر، مجھے پتہ نہیں ہے، لاگو کرنے کے لئے چاہتے ہیں، 281 00:17:27,920 --> 00:17:30,440 اور آپ کو بی ٹائپ کرنے کے قابل بننا چاہتا ہوں 282 00:17:30,440 --> 00:17:32,510 اور صرف بی ہے جو لوگوں کے نام ہیں 283 00:17:32,510 --> 00:17:37,960 یہ مثال کے طور پر، ایک کوشش کا استعمال کرتے ہوئے اس پر عملدرآمد کرنے کے لئے بہت آسان ہے. 284 00:17:37,960 --> 00:17:39,820 تم کس طرح ایک کوشش میں ایک نوڈ کی وضاحت کر سکتا ہوں؟ 285 00:17:39,820 --> 00:17:43,910 آپ کو صرف is_word جا رہا ہے کہ ایک bool ہوگا. 286 00:17:43,910 --> 00:17:48,660 یہی وجہ ہے کہ، اس نوڈ سے پہلے تمام حروف کا استعمال کرتے ہوئے ہے کہ کی نمائندگی کرتا ہے 287 00:17:48,660 --> 00:17:51,920 آپ کو ایک لفظ بنانے کے لئے کے قابل تھے، 288 00:17:51,920 --> 00:17:57,230 اور پھر آپ کو نوڈ اشارہ کی ایک صف پڑے گا. 289 00:17:57,230 --> 00:18:03,120 آپ ہم ایک والدین کے مراکز کی صف، تو نوڈ * صف ہے کہ دیکھ سکتے ہیں؟ جی ہاں؟ 290 00:18:03,120 --> 00:18:06,050 تو یہ کام کرے گا کس طرح دیکھتے ہیں. جادو چیک کے لئے، 291 00:18:06,050 --> 00:18:08,230 ہم 27 عناصر کے ایک صف ہے، 292 00:18:08,230 --> 00:18:12,150 ہم تمام خطوط کے علاوہ apostrophe کے کیونکہ. 293 00:18:12,150 --> 00:18:17,800 میں نے بورڈ پر لکھنے کے قابل ہونا چاہتے ہیں کیونکہ یہاں سے پہلے میں نے صرف 2 استعمال کرنے کے لئے جا رہا ہوں. 294 00:18:17,800 --> 00:18:20,230 ٹھیک ہے. تو یہ ایک کوشش کی ایک مثال ہے. 295 00:18:20,230 --> 00:18:25,600 میں نے صرف پہلے نوڈ کی وضاحت، تو میں 2 عناصر کے ایک صف پڑے گا 296 00:18:25,600 --> 00:18:29,290 نل 2 اشارہ ہیں، تو میں صرف 'A' اور 'B' ڈال دیا. 297 00:18:29,290 --> 00:18:32,430 اور میں is_word کا کہنا ہے کہ ایک bool کرنے جا رہا ہوں. 298 00:18:32,430 --> 00:18:34,420 یہ سب سے پہلے ایک کے لئے جھوٹے ہونے جا رہا ہے، 299 00:18:34,420 --> 00:18:37,370 صرف، کیونکہ اس سے پہلے آپ کو کسی بھی حروف کی ضرورت نہیں ہے. 300 00:18:37,370 --> 00:18:40,900 تو ایک خالی لفظ ایک لفظ نہیں ہے. تو یہ غلط ہے. 301 00:18:40,900 --> 00:18:46,320 میں نے اس ڈکشنری 'A' شامل کرنے کے لئے چاہتے ہیں، تو، مجھے کیا کرنا پڑے گا؟ 302 00:18:46,320 --> 00:18:49,760 میں نے صرف 'A' کے لئے ایک نیا نوڈ malloc پر پڑے گا، 303 00:18:49,760 --> 00:18:54,630 اور اس کے بعد حقیقی کے لئے اس لفظ کا اضافہ. 304 00:18:54,630 --> 00:19:00,180 تو یہ صرف 'A' سچ ہونے جا رہا ہے ہے کہ کی نمائندگی کرتا ہے. احساس ہے؟ 305 00:19:00,180 --> 00:19:04,120 میں 'بی اے' میں شامل کرنا چاہتے ہیں تو، میں نے 'بی' کے لئے malloc 1 پڑے گا، 306 00:19:04,120 --> 00:19:07,550 اور پھر میں نے، جھوٹے پر بولین قائم کرنے کے لئے جا رہا ہوں 307 00:19:07,550 --> 00:19:10,160 خود کی طرف سے 'B' ایک لفظ نہیں ہے. 308 00:19:10,160 --> 00:19:13,010 پھر میں نے ایک اور 'A' کے لئے ایک، تو بی اے 'MALLOC کرنے جا رہا ہوں، 309 00:19:13,010 --> 00:19:16,290 اور پھر میں نے یہ سچ کے لئے ایک لفظ ہے قائم کرنے کے لئے جا رہا ہوں. 310 00:19:16,290 --> 00:19:18,950 'بی اے' ایک لفظ ہے. 311 00:19:18,950 --> 00:19:21,910 میں دیکھنا چاہتے ہیں تو 'B'، اس لغت میں ہے 312 00:19:21,910 --> 00:19:26,730 میں صرف سب سے پہلے، 'B' پر جا سکتے ہیں. میں نیچے جاؤ، اور میں نے لفظ ہے کو دیکھنے کے، اور یہ باطل ہے. 313 00:19:26,730 --> 00:19:30,110 تو یہ ایک لفظ نہیں ہے. میں 'بی اے' کی جانچ کرنا چاہتے ہیں تو، 314 00:19:30,110 --> 00:19:38,010 میں نے سب سے پہلے ایک، "بی" کرنے کے لئے جانا، اور پھر 'ایک' پر جائیں، اور میں نے سچ کو دیکھنے کے، تو یہ ایک لفظ ہے. احساس ہے؟ 315 00:19:38,010 --> 00:19:41,950 لوگوں کی ایک بہت کی کوشش کرتا ہے کی طرف سے الجھن میں ہو. کوئی؟ 316 00:19:41,950 --> 00:19:44,740 >> آخر میں، Huffman کوڈنگ. Huffman کوڈنگ بہت مفید ہے 317 00:19:44,740 --> 00:19:47,550 میموری بچانے کے لئے اور متن فائلوں سکیڑیں کرنے کے لئے، 318 00:19:47,550 --> 00:19:52,270 صرف اس وجہ سے آپ کو مثال کے طور پر، 'A' اور 'ای' کا استعمال وقت کی ایک بہت، 319 00:19:52,270 --> 00:19:57,710 تم لوگوں کو زیادہ سے زیادہ 'ق' یا 'Z' استعمال کرتے ہیں تو آپ کے دستاویزات میں، لیکن مجھے پتہ نہیں ہے. 320 00:19:57,710 --> 00:20:02,040 ہر ایک کردار کے لئے صرف 1 بائٹ ہو رہی ہے، 321 00:20:02,040 --> 00:20:08,520 ہر ایک - ہم ASCII ٹیبل میں ہے کہ 256 حروف بہت زیادہ سے زیادہ نہیں ہے، 322 00:20:08,520 --> 00:20:11,410 آپ کو بہت زیادہ استعمال کرتے ہیں کہ کچھ حروف ہیں صرف اس وجہ سے، 323 00:20:11,410 --> 00:20:15,180 تو آپ شاید ان لوگوں کے لئے کم میموری استعمال کرنا چاہئے. 324 00:20:15,180 --> 00:20:17,560 میں کس طرح Huffman کوڈنگ استعمال کرتے ہیں؟ 325 00:20:17,560 --> 00:20:20,010 ہم نے ایک Huffman درخت کرنا ہے. 326 00:20:20,010 --> 00:20:23,370  ایک Huffman درخت نوڈس ہے 327 00:20:23,370 --> 00:20:27,760 خط، 'سی'، 'B'، 'A'، کی طرح کی جا رہی ہے کہ ایک علامت ہے کہ، 328 00:20:27,760 --> 00:20:32,990 آپ کے پاس جو کچھ بھی خط، لفظ متن میں ظاہر ہوتا ہے کہ تعدد ہے کہ ایک تعدد، 329 00:20:32,990 --> 00:20:36,280 آپ کے لئے Huffman درخت پیدا کیا گیا ہے 330 00:20:36,280 --> 00:20:41,800 اور پھر Huffman درخت کے بائیں کی طرف اشارہ کرنے جا رہا ہے کہ ایک نوڈ 331 00:20:41,800 --> 00:20:47,210 اور حق کی طرف اشارہ کرنے جا رہا ہے کہ دوسرے نوڈ. تو صرف ایک درخت کی طرح. 332 00:20:47,210 --> 00:20:49,440 کس طرح آپ کو ایک Huffman درخت کی تعمیر کرتے ہیں؟ 333 00:20:49,440 --> 00:20:54,020 آپ سب سے کم تعدد ہے کہ 2 نوڈس لینے کے لئے جا رہے ہیں. 334 00:20:54,020 --> 00:20:56,490 آپ کو ایک ٹائی ہے تو آپ 2 نوڈس لینے کے لئے جا رہے ہیں 335 00:20:56,490 --> 00:20:59,870 اس کے ساتھ ساتھ سب سے کم ASCII اقدار ہے. 336 00:20:59,870 --> 00:21:02,420 تو پھر آپ کو ان 2 نوڈس کے باہر ایک نیا درخت بنانے کے لئے جا رہے ہیں 337 00:21:02,420 --> 00:21:08,030 کہ والدین کی نوڈ میں مشترکہ تعدد کی جا رہی ہے. 338 00:21:08,030 --> 00:21:13,240 اور پھر آپ کو جنگل سے 2 بچوں کو دور کرنے کے لئے جا رہے ہیں 339 00:21:13,240 --> 00:21:15,570 اور والدین کے ساتھ ان کی جگہ لے لے. 340 00:21:15,570 --> 00:21:18,930 اور تم صرف جنگل میں 1 درخت ہے کہ جب تک دوبارہ کرنے جا رہے ہیں. 341 00:21:18,930 --> 00:21:23,840 تو آپ ZAMYLA کے لئے ایک Huffman درخت کرے گا کس طرح دیکھتے ہیں. 342 00:21:23,840 --> 00:21:29,220 آپ تمام خطوط کا 'اے' کے علاوہ تعدد 1 ہے کہ یہاں دیکھ سکتے ہیں، تعدد 2 ہے. 343 00:21:29,220 --> 00:21:34,090 تو میں نے ASCII قیمت اور تعدد کے حکم میں ڈال دیا تمام خطوط کے لئے نوڈس پیدا. 344 00:21:34,090 --> 00:21:40,090 میں سب سے پہلے درخت کو پیدا کرنا چاہتے ہیں اگر ایسا ہے تو، یہ 'ایل' اور 'ایم' کے ساتھ ہو جائے گا. 345 00:21:40,090 --> 00:21:43,100 تو یہ یہاں ہے. جوڑی کی فریکوئنسی 2 ہو جائے گا 346 00:21:43,100 --> 00:21:49,470 یہ + 1 1 ہے، کیونکہ اس کے بعد سب سے کم تعدد کے ساتھ اگلے 2 'Y' اور 'Z' ہیں. 347 00:21:49,470 --> 00:21:53,180 2 کی فریکوئنسی ہے - اور اس کے بعد میں کیا جا رہا ہے ان میں سے سب ہے. 348 00:21:53,180 --> 00:22:00,470 تو اگلے ایک کے لئے سب سے کم ASCII قیمت ہے کہ لوگ جو ہیں؟ 349 00:22:00,470 --> 00:22:04,830 'A' اور 'ایل'. تو میں نیا نوڈ بنانے کے، 350 00:22:04,830 --> 00:22:09,930 اور آخر میں، یہ 4 اور 2 ہے، تو 2 بائیں طرف کی جا رہی ہے. 351 00:22:09,930 --> 00:22:12,430 اور یہ Huffman درخت ہے. 352 00:22:12,430 --> 00:22:16,060 میں کچھ متن لکھنے کے لئے چاہتے ہیں پھر اگر، 353 00:22:16,060 --> 00:22:24,440 جیسے Huffman درخت کا استعمال کرتے ہوئے، متن تبدیل کرنے کے لئے بائنری میں بہت آسان ہے. 354 00:22:24,440 --> 00:22:30,220 میں نے بائیں منتقل 0 اور دائیں منتقل کرنے کا کہنا ہے کہ اگر مثال کے طور،، 1 ہے 355 00:22:30,220 --> 00:22:32,410 کیا کی نمائندگی کرنے جا رہا ہے؟ 356 00:22:32,410 --> 00:22:35,530 اتنی پسند 1، 1، ٹھیک ہے، تو ٹھیک ہے، 357 00:22:35,530 --> 00:22:40,370 اور اس کے بعد تو بائیں 0، L ہو گی، اور پھر 1، 0، 0. 358 00:22:40,370 --> 00:22:43,950 تو 1، 0، تو 1، 0، 'A'. 359 00:22:43,950 --> 00:22:47,540 اور پھر 0، 1، تو 'Z'. 360 00:22:47,540 --> 00:22:52,170 اور پھر 1، 0، 0 - کوئی. 361 00:22:52,170 --> 00:22:56,780 0، 0 'Y' ہو، اتنا سست گا. 362 00:22:56,780 --> 00:23:06,060 تو یہ سب میرے لئے ہے، روب پر لے جا رہا. 363 00:23:06,060 --> 00:23:08,400 >> [روب Bowden] تو، ہفتہ 7 چیزیں. 364 00:23:08,400 --> 00:23:11,390 ہم بہت تیزی پر جانے کے لئے ایک بہت مل گیا ہے. 365 00:23:11,390 --> 00:23:13,430 bitwise آپریٹرز، بفر اتپرواہ، 366 00:23:13,430 --> 00:23:16,760 CS50 لائبریری، تو ایچ ٹی ایم ایل، ایچ ٹی ٹی پی، سی ایس ایس. 367 00:23:16,760 --> 00:23:20,990 15 سے 20 منٹ کی طرح تمام میں. 368 00:23:20,990 --> 00:23:24,330 bitwise آپریٹرز. آپ کو جاننے کی ضرورت ہے کہ ان میں سے 6 ہیں. 369 00:23:24,330 --> 00:23:31,200 اور bitwise اور، اور bitwise یا، XOR، بائیں شفٹ، RIGHT SHIFT، اور نہیں. 370 00:23:31,200 --> 00:23:35,420 صحیح تبدیلی اور آپ بمشکل بالکل درس میں نے دیکھا نہیں. 371 00:23:35,420 --> 00:23:40,480 ہم فوری طور پر یہاں اس پر چلے جائیں گے، لیکن یہ ان موجود 6 جانتے ہیں کہ اچھی بات ہے. 372 00:23:40,480 --> 00:23:45,070 bitwise آپریٹرز تم + 4 3 جب کی طرح ہیں یاد رکھیں کہ. 373 00:23:45,070 --> 00:23:49,420 آپ 3 اور 4 کی بائنری کے ساتھ نمٹنے نہیں کر رہے ہیں. 374 00:23:49,420 --> 00:23:56,550 bitwise آپریٹرز کے ساتھ آپ کو اصل میں نمبر 3 اور 4 کے انفرادی بٹس کے ساتھ نمٹنے کر رہے ہیں. 375 00:23:56,550 --> 00:23:59,120 >> تو ہم کہیں گے کہ سب سے پہلے ایک اور bitwise، نہیں ہے 376 00:23:59,120 --> 00:24:02,340 اور یہ کرتا ہے تمام بٹس پلٹائیں ہے. 377 00:24:02,340 --> 00:24:05,500 آپ C میں یہ لکھ رہے ہیں اگر ایسا ہے تو، یہاں، آپ کو یہ نہیں لکھا 378 00:24:05,500 --> 00:24:09,380 ~ 11011 یا جو کچھ بھی کے طور پر، آپ کو اس ~ 4 طرح لکھنے گی 379 00:24:09,380 --> 00:24:12,970 اور پھر اس کے 4 بائنری نمائندگی پلٹائیں گے. 380 00:24:12,970 --> 00:24:24,800 تو یہاں، 1 کی ~ کچھ بائنری تعداد کے 1101101 بالکل 0 تمام 1 پلٹائیں کرنے کی جا رہی ہے اور تمام 0 ہے. 381 00:24:24,800 --> 00:24:27,600 میں وہاں کا کہنا ہے کہ کے طور پر، اس کے بار بار استعمال، 382 00:24:27,600 --> 00:24:30,830 ہم کچھ تعداد کے ساتھ آنے کی چاہتے ہیں اور ہم تھوڑا سا میں نظر آئے گا، ہے 383 00:24:30,830 --> 00:24:35,460 بٹس کی تمام ان میں سے ایک کے علاوہ، 1 کہاں ہیں. 384 00:24:35,460 --> 00:24:38,560 تو یہ تعداد اظہار کرنے کے لئے عام طور پر آسان ہے 385 00:24:38,560 --> 00:24:40,630 صرف یہ ہے کہ ایک سا مقرر کیا گیا ہے، جہاں، 386 00:24:40,630 --> 00:24:44,650 اور پھر اس کے ~، تو ہر دوسرے سا ہے کہ ایک کے علاوہ مقرر کیا گیا ہے لے. 387 00:24:44,650 --> 00:24:50,300 تو ہے کہ ہم تھوڑا سا میں زیادہ استعمال کرنے کے لئے جا رہے ہیں. 388 00:24:50,300 --> 00:24:58,220 >> اور bitwise یا. یہاں 2 بائنری نمبر، اور ان 2 نمبر ہیں 389 00:24:58,220 --> 00:25:00,780 وہ ہر ممکن کی نمائندگی کرتے ہیں، کے بعد سے بہت نمائندے ہیں 390 00:25:00,780 --> 00:25:07,290 بٹس کے مجموعہ آپ پر کام کرنے کی ضرورت ہے کر سکتے ہیں. 391 00:25:07,290 --> 00:25:13,540 میں ہر سا or'd جب یہاں،، ہم صرف براہ راست نیچے کا موازنہ کرنے جا رہے ہیں. 392 00:25:13,540 --> 00:25:15,410 تو بائیں جانب ہم ایک 1 اور 1 ہے. 393 00:25:15,410 --> 00:25:20,510 میں اور bitwise جب | ان لوگوں کو، جو میں حاصل کرنے کے لئے جا رہا ہوں؟ ایک. 394 00:25:20,510 --> 00:25:25,320 0 اور 1 کے مجھے دینے جا رہا ہے | پھر اور bitwise؟ ایک. 395 00:25:25,320 --> 00:25:27,840 اور bitwise 1 اور 0 ایک ہی بات، ایک جا رہا ہے. 396 00:25:27,840 --> 00:25:31,880 اور bitwise 0 | 0 مجھ 0 دینے جا رہا ہے. 397 00:25:31,880 --> 00:25:37,300 0 کیس | تو میں 0 جہاں صرف کیس 0 میں ہے. 398 00:25:37,300 --> 00:25:40,020 اور اگر تم صرف اپنے منطقی رینکوں کی طرح اس کے بارے میں سوچ کر سکتے ہیں. 399 00:25:40,020 --> 00:25:44,830 آپ کو سچ کے طور پر 1 اور کے طور پر باطل 0 کے بارے میں سوچتے ہیں تو، ایک ہی بات یہاں لاگو ہوتا ہے. 400 00:25:44,830 --> 00:25:50,040 تو سچ ہے یا سچ سچ ہے، سچ ہے یا جھوٹ سچ ہے. 401 00:25:50,040 --> 00:25:57,150 جھوٹ یا سچ سچ ہے، جھوٹی یا غلط اصل میں غلط ہے کہ صرف ایک ہی چیز ہے. 402 00:25:57,150 --> 00:26:00,100 یہاں آپ کو یہ پتہ ہونا چاہئے مثال ہے 403 00:26:00,100 --> 00:26:05,160 bitwise آپریٹرز استعمال کیا جاتا ہے جب ایک بہت اچھی مثال کے طور پر. 404 00:26:05,160 --> 00:26:08,660 یہاں تو ہم یا Ox20 کے ساتھ دارالحکومت 'A'، 405 00:26:08,660 --> 00:26:11,830 اور ہم کچھ حاصل، ایک دوسرے میں ان کو دیکھو گے. 406 00:26:11,830 --> 00:26:16,020 اور ہم یا چھوٹے 'A' Ox20 کے ساتھ، ہم کچھ ملتا ہے. 407 00:26:16,020 --> 00:26:26,750 تو ASCII ٹیبل ھیںچو. 408 00:26:26,750 --> 00:26:34,000 ٹھیک ہے. یہاں ہم 'A' ہے دیکھ - 409 00:26:34,000 --> 00:26:36,920 یہاں ہم 'A' 65 دشملو ہے. 410 00:26:36,920 --> 00:26:45,120 لیکن میں Ox41 ہے جو شش اعشاری، کے ساتھ جائیں گے. 411 00:26:45,120 --> 00:26:48,280 خوبصورت یقین ہے کہ ہم کلاس میں نے اسے دیکھا. میں ہم نے کلاس میں یہ دیکھا ہے 412 00:26:48,280 --> 00:26:52,730 یہ شش اعشاری سے بائنری میں تبدیل کرنے کے لئے بہت آسان ہے. 413 00:26:52,730 --> 00:26:55,280 تو یہاں، میں بائنری میں 4 ڈال کرنا چاہتے ہیں تو، 414 00:26:55,280 --> 00:26:59,550 کہ صرف 0100 پر جا رہا ہے. 415 00:26:59,550 --> 00:27:03,620 یہ 1 کی جگہ، 2 کی جگہ، 4 کی جگہ ہے، تو اس 4 ہے. 416 00:27:03,620 --> 00:27:08,550 اس کے بعد میں 0001 کی جا رہی ہے جو بائنری، میں 1 تقسیم کر سکتے ہیں. 417 00:27:08,550 --> 00:27:14,280 اور اس طرح یہ بائنری میں 'A' کی نمائندگی کی جا رہی ہے. 418 00:27:14,280 --> 00:27:22,720 چھوٹے 'A'، اب یہ Ox61 جا رہا ہے لے، 419 00:27:22,720 --> 00:27:27,050 اس بائنری میں یہ تقسیم کہاں،، تو ایک 6 - 420 00:27:27,050 --> 00:27:37,830 اصل میں کرتے ہیں - کوئی صافی ہے؟ صافی. 421 00:27:37,830 --> 00:27:48,220 Ox61. تو بائنری میں 6 تیز + 4 + 2 + 0 0 ہونے جا رہا ہے. 422 00:27:48,220 --> 00:27:54,610 اور تیز 1 0001 کی جا رہی ہے. 423 00:27:54,610 --> 00:27:56,520 ، ان 2 کے درمیان فرق کو دیکھ 424 00:27:56,520 --> 00:28:04,250 ہم ایک چھوٹے اور ایک دارالحکومت 'A' کے درمیان فرق صرف اس ایک سا ہے کہ کو دیکھنے کے. 425 00:28:04,250 --> 00:28:11,810 ٹھیک ہے - تو یہاں واپس آنے کے. 426 00:28:11,810 --> 00:28:15,920 ہم سا Ox20 جاتا ہے کہ دیکھو، تو یہاں واپس آ رہا 427 00:28:15,920 --> 00:28:22,210 اس بائنری میں اتنی تیز Ox20، 428 00:28:22,210 --> 00:28:27,310 0010، 0000 ہے. 429 00:28:27,310 --> 00:28:33,470 Ox20، مقرر کیا گیا ہے کہ صرف تھوڑا سا، ہم ساتھ میں فکر مند ہیں کہ اس سا ہے 430 00:28:33,470 --> 00:28:38,210 بڑے اور چھوٹے 'A' کے درمیان سوئچنگ کے ساتھ. 431 00:28:38,210 --> 00:28:47,610 تو اس میں سے ایک، 'A' ہے جس میں یا 'A'،، 432 00:28:47,610 --> 00:28:50,580 اگر میں یا Ox20 کے ساتھ 'A'، 433 00:28:50,580 --> 00:28:53,490 کیا میں حاصل کرنے کے لئے جا رہا ہوں؟ 434 00:28:53,490 --> 00:28:58,960 [Student کی، اشراوی] >> چھوٹے حروف 'A'، یہ ایک 1 کے لئے اس تھوڑا پلٹائیں جا رہا ہے کیونکہ. 435 00:28:58,960 --> 00:29:04,170 اور اگر میں یا 'A' Ox20 کے ساتھ، کیا میں حاصل کرنے کے لئے جا رہا ہوں؟ 436 00:29:04,170 --> 00:29:08,780 ایک چھوٹے، کیونکہ oring 'A' Ox20 کے ساتھ، 437 00:29:08,780 --> 00:29:14,580 میں صرف ایک 1 کے لئے اس ایک سا oring جا رہا ہوں، اس سے کوئی فرق نہیں ہے، تو یہ پہلے سے ہی ایک 1 ہے. 438 00:29:14,580 --> 00:29:17,960 تو ہم 'A' اور 'A' حاصل. 439 00:29:17,960 --> 00:29:24,820 >> اور bitwise اور. ایک بار پھر، کہ ہم اپنے منطقی اور ہم منصب کے طور پر اس کے بارے میں سوچ کر سکتے ہیں. 440 00:29:24,820 --> 00:29:28,180 بائیں جانب ہم سچ اور سچ ہے. 441 00:29:28,180 --> 00:29:31,160 یہ سچ ہونے جا رہا ہے، اور کے تمام معاملات کے لئے ہے 442 00:29:31,160 --> 00:29:36,270 ، جھوٹے اور سچ ہے یا سچ اور باطل، یا غلط اور جھوٹے 443 00:29:36,270 --> 00:29:38,550 ان چیزوں میں سے کوئی بھی درست ہیں. 444 00:29:38,550 --> 00:29:44,170 تو جو ہم کو حاصل کرنے کے ختم 1000 ہے. 445 00:29:44,170 --> 00:29:48,830 تو اب، یہاں، یہاں میں قابل اعتماد اور bitwise نہیں استعمال کیا ہے جہاں ہے، 446 00:29:48,830 --> 00:29:52,230 ہم Ox20 تھا جہاں. 447 00:29:52,230 --> 00:29:54,350 تو اس Ox20 ہے. 448 00:29:54,350 --> 00:29:59,570 اب میں کیا کرنا چاہتے ہیں، اور bitwise Ox20 کے ~. 449 00:29:59,570 --> 00:30:03,600 یہ سب بٹس پلٹائیں کرنے کی جا رہی ہے. 450 00:30:03,600 --> 00:30:09,330 تو میں نے 1101، 1111 ہے. 451 00:30:09,330 --> 00:30:18,940 اور اس 'A' ~ Ox20 مجھے کیا دینے جا رہا ہے کے ساتھ anded؟ 452 00:30:18,940 --> 00:30:22,430 ہم واقعی کے بارے میں سوچنے کی ضرورت ہے صرف تھوڑا سا، اس میں سے ایک ہے 453 00:30:22,430 --> 00:30:26,020 کے بعد، ان بٹس کی سب 1 کے لئے مقرر کیا جاتا ہے تو، 454 00:30:26,020 --> 00:30:29,000 تو پھر ہم بالکل وہی جو 'ایک' تھا حاصل کرنے کے لئے جا رہے ہیں، 455 00:30:29,000 --> 00:30:31,260 کے علاوہ، ممکنہ طور پر، کیا یہ تھوڑا سا ہے. 456 00:30:31,260 --> 00:30:34,460 یہ ایک 1 تھا، اب یہ، ایک 0 کرنے کے لئے مقرر کیا جا رہا ہے کیونکہ 457 00:30:34,460 --> 00:30:39,810 یہ جو کچھ بھی ہے، اس 0 ہونے جا رہا ہے کے ساتھ anded کیونکہ. 458 00:30:39,810 --> 00:30:43,280 تو 'A' ~ Ox20 مجھے دینے جا رہا اور کیا ہے؟ 459 00:30:43,280 --> 00:30:48,200 [طلباء جواب، اشراوی] >> اور 'A' اور کیا ہے - یہ 'ایک' ہے. 460 00:30:48,200 --> 00:30:52,170 اور 'A' اور ~ Ox20 مجھے دینے جا رہا ہے؟ 461 00:30:52,170 --> 00:30:56,720 'اے' یہ اس وقت ایک 1 ہے. 462 00:30:56,720 --> 00:30:59,570 اس 0 Anding، یہ ایک 0 کرنے کے لئے کی جا رہی ہے 463 00:30:59,570 --> 00:31:02,530 اور اب ہم ایک 'A' حاصل کرنے کے لئے جا رہے ہیں. 464 00:31:02,530 --> 00:31:06,600 >> دونوں، ایک 'کر رہے ہیں اور اس قسم کے آخری لیکن نہیں کم از کم، 465 00:31:06,600 --> 00:31:10,830 ہم XOR ہے. یہ بہت پسند ہے یا، 466 00:31:10,830 --> 00:31:14,400 یہ خصوصی طور پر مطلب ہے کہ یا کے علاوہ. 467 00:31:14,400 --> 00:31:18,420 یہ عام طور پر آپ کے طور پر یا حقیقی دنیا میں کے بارے میں سوچ کیا طرح ہے. 468 00:31:18,420 --> 00:31:23,190 تو آپ یا تو 'ایکس' یا 'Y'، لیکن دونوں نہیں کرتے. 469 00:31:23,190 --> 00:31:28,700 یہاں ^ 1 1 0 ہونے جا رہا ہے. 470 00:31:28,700 --> 00:31:33,650 سچ ہے، یہ ہے - یہ منطقی سچ اور جھوٹ کے ساتھ کے طور پر اچھی طرح سے کام نہیں کرتا 471 00:31:33,650 --> 00:31:37,150 ، اور bitwise اور اور یا کے طور پر 472 00:31:37,150 --> 00:31:40,100 لیکن سچ ^ سچ باطل ہے. 473 00:31:40,100 --> 00:31:44,810 صرف ان میں سے ایک سچ ہے تو ہم صرف سچ واپس کرنے کے لئے چاہتے ہیں. 474 00:31:44,810 --> 00:31:50,950 تو ^ 1 1 0 ہے. کیا ^ 1 0 کے بارے میں؟ 475 00:31:50,950 --> 00:31:56,010 1 ہے. ^ 0 1 ^ 0 0 0 ہے، 1 ہے. 476 00:31:56,010 --> 00:32:03,890 تو تمام حالات کے تحت، 0 اور bitwise کچھ 0 0 ہونے جا رہا ہے. 477 00:32:03,890 --> 00:32:10,270 1 اور bitwise کچھ 0 یا 0 اور bitwise 1، 478 00:32:10,270 --> 00:32:14,660 یہ تو | یا ^، یہ ایک 1 ہو جائے گا، اور اس کے اور اگر یہ 0 ہو جائے گا. 479 00:32:14,660 --> 00:32:20,850 اور 1 اور bitwise 1 1 نہیں ہے جہاں صرف کیس خصوصی یا کے ساتھ ہے. 480 00:32:20,850 --> 00:32:24,580 یہ 0110 ہے. 481 00:32:24,580 --> 00:32:36,520 تو یہاں اب، XOR کا استعمال کرتے ہوئے - تو ہم واپس 20 پر ہیں. 482 00:32:36,520 --> 00:32:43,480 'A' ^ Ox20 ہم موازنہ کر رہے ان 2 بٹس ہے. 483 00:32:43,480 --> 00:32:50,020 تو 1 ^ 0 مجھے ایک کیا دے رہا ہے؟ ایک ایک. 484 00:32:50,020 --> 00:32:58,430 'A' ^ Ox20 مجھے دینے جا رہا ہے؟ ایک چھوٹے. 485 00:32:58,430 --> 00:33:04,010 'A' ^ Ox20 مجھے دینے جا رہا ہے؟ دارالحکومت A. 486 00:33:04,010 --> 00:33:09,310 اس کی وجہ سے کر رہا ہے جو کچھ بھی، Ox20 کے ساتھ اس XORing 487 00:33:09,310 --> 00:33:15,380 مؤثر طریقے سے یہ تھوڑی سی جو کچھ بھی ہے flipping کی ہے. 488 00:33:15,380 --> 00:33:21,240 یہ ایک 0 ہے، تو اب یہ ایک 1 بننے جا رہی ہے. 489 00:33:21,240 --> 00:33:26,160 یہ ایک 1 ہے، ^ 1 1 0 ہے. 490 00:33:26,160 --> 00:33:33,280 تو ہمارے 'A' 'A' بن گیا ہے، اور ہمارے 'A' 'A' بن گیا ہے. 491 00:33:33,280 --> 00:33:36,910 تو XOR صرف صورت flipping کی کی ایک بہت آسان طریقہ ہے. 492 00:33:36,910 --> 00:33:39,960 آپ کو صرف حروف کی ایک تار پر iterate کرنا چاہتے ہیں 493 00:33:39,960 --> 00:33:44,330 اور ہر ایک کردار کی صورت متبادل، 494 00:33:44,330 --> 00:33:50,680 Ox20 ساتھ آپ کو صرف XOR سب کچھ. 495 00:33:50,680 --> 00:33:55,220 >> اب ہم تبدیلی کے چھوڑ دیا ہے. بائیں شفٹ صرف، بنیادی طور پر، جا رہا ہے 496 00:33:55,220 --> 00:34:01,250 میں، یا بائیں نمبروں کی سب دھکا، اور ان کے پیچھے 0 داخل. 497 00:34:01,250 --> 00:34:05,550 لہذا ہم یہاں 00001101 ہے. 498 00:34:05,550 --> 00:34:08,560 ہم، دائیں سے 3 0 میں آگے بڑھانے کے لئے جا رہے ہیں 499 00:34:08,560 --> 00:34:13,580 اور ہم 01101000 حاصل. 500 00:34:13,580 --> 00:34:16,380 nonbinary شرائط میں، 501 00:34:16,380 --> 00:34:24,699 ہم کہ واقعی 13 بائیں منتقل کر دیا گیا 3 کے ساتھ، ہم 104 ہے جس نمٹنے ہے کہ دیکھتے ہیں. 502 00:34:24,699 --> 00:34:32,530 تو بائیں منتقل، ہم کو یہاں دیکھ کر، ایکس << Y بنیادی طور پر ایکس * 2 ^ Y ہے. 503 00:34:32,530 --> 00:34:40,139 3 ^ 13 * 2، 3 ^ 2 تو * 8 13 104 ہے، 8. 504 00:34:40,139 --> 00:34:45,679 آپ کو صرف جنرل میں بائنری، کس طرح ہر ایک عددی، کے بارے میں کیا سوچتے ہیں 505 00:34:45,679 --> 00:34:49,530 ہم سے شروع، تو یہ پھر 1 کی جگہ، پھر 2 کی جگہ، 4 کی جگہ ہے. 506 00:34:49,530 --> 00:34:51,330 تو دائیں 0 میں دھکا کی طرف سے، 507 00:34:51,330 --> 00:34:55,080 ہم صرف، 8 کی جگہ پر 4 کی جگہ میں تھے، وہ چیزیں ہیں جو آگے بڑھانے رہے ہیں 508 00:34:55,080 --> 00:34:57,920 اور 16 کی جگہ 8 کی جگہ میں تھے وہ چیزیں. 509 00:34:57,920 --> 00:35:01,280 ہر شفٹ صرف 2 کی طرف سے سے multiplies. جی ہاں؟ 510 00:35:01,280 --> 00:35:05,210 آپ 5 کی طرف سے منتقل کر دیا گیا ہے تو [Student کی] کیا ہوتا ہے؟ 511 00:35:05,210 --> 00:35:10,790 [Bowden] آپ کی طرف سے 5 منتقل کر دیا گیا ہے تو آپ کو صرف ہندسے کھو دیں گے. 512 00:35:10,790 --> 00:35:15,410 لامحالہ، یہ ایک ہی بات ہے. کی طرح، integers کے صرف 32 بٹس ہیں، 513 00:35:15,410 --> 00:35:20,750 آپ کو 2 بہت بڑا integers کے شامل تو، یہ صرف ایک عدد صحیح میں فٹ نہیں ہوتا. 514 00:35:20,750 --> 00:35:23,660 تو یہ یہاں ایک ہی بات ہے. آپ 5 کی طرف سے منتقل کر دیا گیا ہے تو، 515 00:35:23,660 --> 00:35:25,650 ہم صرف یہ ہے کہ ایک کھو دیں گے. 516 00:35:25,650 --> 00:35:28,820 اور یہ کہ "تقریبا" میں کی طرف سے کیا مطلب ہے کی طرح ہے 517 00:35:28,820 --> 00:35:37,470 تم بہت دور منتقل، تو آپ بٹس کھو جہاں. 518 00:35:37,470 --> 00:35:39,830 >> RIGHT SHIFT کے برعکس جا رہا ہے، 519 00:35:39,830 --> 00:35:43,090 ہم آخر میں بند کر 0 دھکا کہاں جا رہے ہیں 520 00:35:43,090 --> 00:35:48,400 اور ہمارے مقاصد کے لئے، بائیں سے 0 میں بھرنے. 521 00:35:48,400 --> 00:35:52,910 تو یہ کر رہے، ہم بنیادی طور پر ہم نے پہلے ہی کیا تھا کو تبدیل کر رہے ہیں. 522 00:35:52,910 --> 00:35:57,780 اور ہم، حق پر تین 0 صرف گر گئی ہے دیکھتے ہیں کہ 523 00:35:57,780 --> 00:36:02,020 اور ہم حق پر 1101 تمام طرح دھکیل دیا ہے. 524 00:36:02,020 --> 00:36:08,380 یہ مؤثر طریقے سے، X / 2 ^ Y، ہے، جو، 104 >> 3 کر رہا ہے. 525 00:36:08,380 --> 00:36:11,200 تو اب، یہاں، یہ اسی طرح کی ایک خیال ہے. 526 00:36:11,200 --> 00:36:18,720 کیوں کہ یہ صرف تقریبا X / 2 ^ Y ہے، اور اصل میں نہیں X / 2 ^ Y؟ 527 00:36:18,720 --> 00:36:22,240 میں نے 4 کی طرف سے منتقل کر دیا گیا تھا، تو میں ایک 1 کھو دیا ہے کیونکہ. 528 00:36:22,240 --> 00:36:25,950 بنیادی طور پر، صرف عام طور پر عددی ڈویژن کے کیا آپ کے بارے میں سوچنا، لگتا ہے. 529 00:36:25,950 --> 00:36:31,070 تو، 5/2 کی طرح ہے 2. یہ 2.5 نہیں ہے. 530 00:36:31,070 --> 00:36:35,000 یہ یہاں ایک ہی خیال ہے. ہم 2 کی طرف سے تقسیم، جب 531 00:36:35,000 --> 00:36:39,910 ہم راستے میں عجیب بٹس کھو کر سکتے ہیں. 532 00:36:39,910 --> 00:36:43,870 تو اب - ہے کہ اور bitwise کے لئے ہے. یہ ہے کہ آپ کو جاننے کی ضرورت ہے. 533 00:36:43,870 --> 00:36:46,340 ہم کلاس میں دیکھا استعمال کے مقدمات یاد رکھیں، 534 00:36:46,340 --> 00:36:49,340 کی طرح تھوڑا سا ماسک، bitwise آپریٹرز کے لئے مفید ہے 535 00:36:49,340 --> 00:36:53,220 یا اگر آپ تھوڑا سا ماسک کے لئے ان کا استعمال. 536 00:36:53,220 --> 00:36:58,620 بڑے حروف اور چھوٹے حروف، تبادلوں ایک بہت prototypical مثال ہے. 537 00:36:58,620 --> 00:37:01,640 >> ٹھیک ہے، تو اتپرواہ حملوں بفر. 538 00:37:01,640 --> 00:37:05,110 کوئی بھی اس تقریب کے ساتھ کیا غلط تھا یاد ہے؟ 539 00:37:05,110 --> 00:37:10,140 ہم نے 12 بائٹس کی ایک صف، 12 حروف، اعلان نوٹس 540 00:37:10,140 --> 00:37:18,510 اور پھر ہم 12 حروف پورے سٹرنگ بار کے ہمارے بفر میں کاپی. 541 00:37:18,510 --> 00:37:25,080 تو مسئلہ کیا یہاں ہے؟ 542 00:37:25,080 --> 00:37:32,270 کیوں 12 - جادو کی تعداد 12 بہت فوری طور پر کے طور پر باہر پاپ چاہئے؟ 543 00:37:32,270 --> 00:37:35,050 بار سے زیادہ 12 حروف پر ہوتا ہے تو کیا ہوگا؟ 544 00:37:35,050 --> 00:37:41,200 کیا بار حروف لاکھوں ہے؟ 545 00:37:41,200 --> 00:37:46,010 یہاں مسئلہ memcpy ہے. بار کافی، ہے تو 546 00:37:46,010 --> 00:37:50,330 یہ صرف مکمل طور پر جائے گا - 'سی'، 'سی' یہ صرف 12 حروف تھا کہ پرواہ نہیں کرتا؛ 547 00:37:50,330 --> 00:37:53,280 'سی' یہ ہے کہ بہت سے بائٹس کے قابل نہیں کر سکتے ہیں کہ پرواہ نہیں کرتا. 548 00:37:53,280 --> 00:37:58,250 یہ صرف مکمل طور پر چار ادلیکھت ہو جائے گا، ہم اس کے لئے مختص ہے 12 بائٹس، 549 00:37:58,250 --> 00:38:01,830 اور میموری میں اس کے ماضی کے سب کچھ اصل میں ہے کہ بفر سے تعلق نہیں ہے 550 00:38:01,830 --> 00:38:06,520 جو کچھ بھی سٹرنگ بار ہے کے ساتھ. 551 00:38:06,520 --> 00:38:09,780 تو یہ ہم کلاس میں دیکھا تصویر تھی 552 00:38:09,780 --> 00:38:12,220 ہم اپنے اسٹیک بڑھتی ہوئی ہے جہاں. 553 00:38:12,220 --> 00:38:16,040 آپ ان تصاویر کے لئے استعمال کیا یا پھر ان کے ساتھ واقف ہو جاؤ جانا چاہئے. 554 00:38:16,040 --> 00:38:21,260 ہم اپنے اسٹیک بڑھتی ہوئی ہے، میموری پتوں سب سے اوپر 0 میں شروع 555 00:38:21,260 --> 00:38:26,270 اور نچلے حصے میں 4 ارب پسند کرنے کے لئے نیچے ہو جاتے ہیں. 556 00:38:26,270 --> 00:38:28,820 ہم، کہیں یاد میں ہمارے صف 'سی' ہے 557 00:38:28,820 --> 00:38:32,260 پھر ہم اس کے نیچے بار کرنے کے لئے ہمارے پوائنٹر ہے، 558 00:38:32,260 --> 00:38:38,720 اور پھر ہم اس کو بچا لیا فریم ہماری واپسی ایڈریس میں پوائنٹر اور ہمارے والدین معمول اسٹیک ہے. 559 00:38:38,720 --> 00:38:40,800 واپسی ایڈریس کیا ہے یاد رکھیں؟ 560 00:38:40,800 --> 00:38:45,360 اہم ایک تقریب بار بلاتا ہے، ایک تقریب FOO بلاتا ہے جب یہ، ہے 561 00:38:45,360 --> 00:38:48,100 لامحالہ، واپسی بار. 562 00:38:48,100 --> 00:38:52,610 تو جب بار کی واپسی، وہ اس پر یہ کہا جاتا ہے کہ FOO پر واپس جا رہا ہے کہ جاننے کی ضرورت ہے. 563 00:38:52,610 --> 00:39:01,360 تو واپسی ایڈریس جب تقریب کی واپسی کے لئے واپس کرنے کے لئے یہ ہے کہ تقریب کا پتہ ہے. 564 00:39:01,360 --> 00:39:05,830 ، آسانی سے، کیونکہ بفر اتپرواہ حملوں کے لئے ضروری ہے کہ وجہ یہ ہے 565 00:39:05,830 --> 00:39:09,580 ہیکروں کہ واپسی ایڈریس تبدیل کرنا چاہتے. 566 00:39:09,580 --> 00:39:14,950 اس کے بجائے واپس FOO کو جانے کی، میں واپس ہیکر مجھے واپس کرنے کے لئے جانا چاہتا ہے جہاں کہیں بھی جانے کے لئے جا رہا ہوں. 567 00:39:14,950 --> 00:39:17,760 اور، آسانی سے، ہیکر اکثر واپس جانا چاہتا ہے جہاں 568 00:39:17,760 --> 00:39:22,400 ہم اصل میں تھا کہ بفر کا آغاز ہے. 569 00:39:22,400 --> 00:39:26,170 تو، ایک بار پھر، لٹل بھارتی نوٹس. 570 00:39:26,170 --> 00:39:28,490 آلات ایک چھوٹی ہندوستانی نظام کی ایک مثال ہے، 571 00:39:28,490 --> 00:39:34,140 تو ایک عددی یا ایک پوائنٹر الٹ بائٹس کے ساتھ محفوظ کیا جاتا ہے. 572 00:39:34,140 --> 00:39:38,980 تو یہاں ہم دیکھتے ہیں - یہ کیا ہے؟ جی ہاں. 573 00:39:38,980 --> 00:39:45,660 ہم Ox80، OxC0، Ox35، OxO8 دیکھ. 574 00:39:45,660 --> 00:39:48,250 شش اعشاری ہندسے یاد رکھیں؟ 575 00:39:48,250 --> 00:39:50,640 ہم، لٹل بھارتی میں شش اعشاری ہندسے ریورس نہیں ہے 576 00:39:50,640 --> 00:39:56,110 2 شش اعشاری ہندسے ایک بائٹ قضاء، اور ہم بائٹس ریورس کیونکہ. 577 00:39:56,110 --> 00:40:00,300 ہم کیوں، طرح، 80530CO8 محفوظ نہیں ہے. 578 00:40:00,300 --> 00:40:07,520 ہم سے شروع ہونے والے،، کی بجائے، 2 ہندسوں سے ہر ایک جوڑے کی دکان. 579 00:40:07,520 --> 00:40:10,880 اس ایڈریس کے آغاز کا پتہ مراد 580 00:40:10,880 --> 00:40:15,190 ہم اصل میں پہلی جگہ میں میں کاپی کرنے کے لئے کرنا چاہتا تھا کہ ہمارے بفر کی. 581 00:40:15,190 --> 00:40:19,230 مفید ہے اس کی وجہ کیا ہے تو، کیونکہ حملہ آور 582 00:40:19,230 --> 00:40:24,100 بجائے صرف یہ تھا کہ ایک تار ہونے کے، ہوا 583 00:40:24,100 --> 00:40:27,060 طرح کا نقصان سٹرنگ، ان کے نام یا کچھ اور، 584 00:40:27,060 --> 00:40:33,900 کیا تو، اس کے بجائے، اس سٹرنگ صرف کچھ صوابدیدی کوڈ تھے 585 00:40:33,900 --> 00:40:38,610 کہ وہ ایسا کرنا چاہتے تھے جو کچھ بھی کیا ہے؟ 586 00:40:38,610 --> 00:40:45,630 تو وہ کر سکتے ہیں - میں کسی بھی ڈاؤن لوڈ، اتارنا کے کوڈ کا سوچ بھی نہیں سکتے. 587 00:40:45,630 --> 00:40:47,780 یہ اگرچہ، کچھ بھی ہو سکتا. کوئی تباہ کن کوڈ. 588 00:40:47,780 --> 00:40:51,440 وہ چاہتے تھے، وہ صرف SEG گناہ میں کچھ کر سکتے ہیں، لیکن یہ بیکار ہو جائے گا. 589 00:40:51,440 --> 00:40:54,950 وہ عام طور پر آپ کے سسٹم کو ہیک کرنے کے لئے یہ کرتے ہیں. 590 00:40:54,950 --> 00:40:59,930 ٹھیک ہے. >> CS50 لائبریری. 591 00:40:59,930 --> 00:41:04,800 یہ، بنیادی طور پر، میں GetInt، GetString کے، ان تمام افعال ہم آپ کے لئے فراہم کی جاتی ہے. 592 00:41:04,800 --> 00:41:10,630 تو ہم چار * سٹرنگ، اور یہ کہ ہم دور دھماکے سے اڑا دیا ہے کہ تجرید ہے 593 00:41:10,630 --> 00:41:12,450 سمسٹر کے دوران کچھ نقطہ پر. 594 00:41:12,450 --> 00:41:18,220 ایک تار حروف کی صرف ایک صف ہے یاد رکھیں کہ. 595 00:41:18,220 --> 00:41:23,240 تو یہاں ہم GetString کے ایک مشترکہ ورژن دیکھ. 596 00:41:23,240 --> 00:41:25,920 آپ یہ اصل میں لاگو ہے کس طرح یاد کرنے کے لئے اس میں واپس نظر آنا چاہئے. 597 00:41:25,920 --> 00:41:30,950 کلیدی تفصیلات ہیں، ہم ایک وقت میں ایک کردار میں حاصل نوٹس 598 00:41:30,950 --> 00:41:34,570 صرف ہم کی بورڈ میں ٹائپ کی طرح ہے، جس میں معیار سے. 599 00:41:34,570 --> 00:41:37,890 تو ایک وقت میں ایک کردار، اور ہم بھی بہت سے حروف ملتا ہے، 600 00:41:37,890 --> 00:41:40,580 تو (ن) 1 + کی صلاحیت سے بڑا ہے، 601 00:41:40,580 --> 00:41:44,140 پھر ہم اپنے بفر کی صلاحیت میں اضافہ کرنے کی ضرورت ہے. 602 00:41:44,140 --> 00:41:47,780 تو یہاں ہم اپنے بفر کے سائز کو دگنا کر رہے ہیں. 603 00:41:47,780 --> 00:41:51,840 اور یہ جا رکھتا ہے، ہم اپنے بفر میں کردار داخل 604 00:41:51,840 --> 00:41:56,220 ہم ایک نئی سطر یا فائل یا جو کچھ بھی کے آخر حاصل ہے جب تک، 605 00:41:56,220 --> 00:41:59,380 جس صورت میں، ہم سٹرنگ اور پھر اصلی GetString کے ساتھ کیا کر رہے ہیں 606 00:41:59,380 --> 00:42:05,120 ہم بہت زیادہ میموری مختص، تو یہ واپس جاؤ اور تھوڑا سا چھوٹا کریں گے کی طرح، میموری کم ہے. 607 00:42:05,120 --> 00:42:08,830 تو ہم ظاہر ہے کہ نہیں ہے، لیکن اہم خیال ہے 608 00:42:08,830 --> 00:42:11,960 یہ ایک وقت میں ایک کردار میں پڑھنے کے لئے ہے. 609 00:42:11,960 --> 00:42:17,140 یہ صرف ایک بار میں ایک پوری بات میں نہیں پڑھ سکتا، 610 00:42:17,140 --> 00:42:19,550 ان کے بفر صرف ایک خاص سائز کی ہے. 611 00:42:19,550 --> 00:42:26,590 یہ بفر میں داخل کرنے کی کوشش کرتا ہے کہ سٹرنگ بہت بڑی ہے اگر ایسا ہے تو، تو یہ اتپرواہ گے. 612 00:42:26,590 --> 00:42:28,940 لہذا ہم یہاں کو روکنے کے کہ صرف ایک کردار میں پڑھنے کی طرف سے 613 00:42:28,940 --> 00:42:33,750 ایک وقت میں اور ہم کرنے کی ضرورت ہے جب بھی بڑھتی ہوئی. 614 00:42:33,750 --> 00:42:40,270 تو GetInt اور دیگر CS50 لائبریری افعال GetString کا استعمال کرتے ہیں 615 00:42:40,270 --> 00:42:42,310 ان کے نفاذ میں. 616 00:42:42,310 --> 00:42:45,370 تو میں یہاں اہم چیزوں پر روشنی ڈالی. 617 00:42:45,370 --> 00:42:49,460 یہ ایک تار حاصل کرنے کے لئے GetString کے بلاتا ہے. 618 00:42:49,460 --> 00:42:51,710 GetString کے میموری کو واپس کرنے میں ناکام رہے ہیں تو، 619 00:42:51,710 --> 00:42:54,270 GetString کے کچھ mallocs یاد رکھیں کہ، تو آپ GetString فون جب بھی 620 00:42:54,270 --> 00:42:57,820 آپ (unintelligible) تمہارے پاس ہے کہ string مفت نہیں ہونا چاہئے. 621 00:42:57,820 --> 00:43:02,870 یہ کچھ MALLOC کرنے میں ناکام رہے تو یہاں،، ہم صرف ایک پرچم کے طور پر INT_MAX واپس ہے، 622 00:43:02,870 --> 00:43:05,650 ارے، ہم اصل میں ایک عددی حاصل کرنے کے قابل نہیں تھے. 623 00:43:05,650 --> 00:43:10,830 میں تم پر واپس جو کچھ بھی نظر انداز، یا چاہئے 624 00:43:10,830 --> 00:43:15,540 آپ کو ایک درست ان پٹ کے طور پر اس کا علاج نہیں کیا جانا چاہئے. 625 00:43:15,540 --> 00:43:21,360 آخر میں، ہے کہ کامیاب ہو گئے سنبھالنے کے، ہم، اس خاص پرچم کے ساتھ sscanf کی استعمال 626 00:43:21,360 --> 00:43:23,820 جس کا مطلب ہے، سب سے پہلے ایک عدد صحیح میچ، 627 00:43:23,820 --> 00:43:26,770 تو اس عددی کے بعد کسی بھی حروف سے ملنے. 628 00:43:26,770 --> 00:43:29,070 تو ہم نے اسے 1 کے برابر کرنا چاہتے ہیں محسوس. 629 00:43:29,070 --> 00:43:32,940 تو sscanf کی واپسی کامیابی کے ساتھ کس طرح بہت سے میچ کر دیا تو کیا ہوگا؟ 630 00:43:32,940 --> 00:43:37,010 اس کامیابی کے ساتھ ایک عددی کے مماثل ہے تو اسے 1 واپس آ جائے گا، 631 00:43:37,010 --> 00:43:40,890 یہ ایک عددی سے مماثل نہیں ہے تو یہ 0 واپس آ جائیں گے، اور یہ 2 واپس آ جائیں گے 632 00:43:40,890 --> 00:43:45,920 یہ مماثلت اگر ایک عددی کچھ کردار کے بعد. 633 00:43:45,920 --> 00:43:49,780 تو ہم 1 کچھ بھی لیکن میچ تو ہم دوبارہ کوشش نوٹس. 634 00:43:49,780 --> 00:43:55,230 تو ہم داخل ہوئے تو 1، 2، 3، C، یا 1، 2، 3، ایکس، 635 00:43:55,230 --> 00:43:57,400 پھر 1، 2، 3 عدد صحیح میں محفوظ ہو جائیں گے، 636 00:43:57,400 --> 00:43:59,620 ایکس، کردار میں محفوظ ہو جائیں گے 637 00:43:59,620 --> 00:44:06,410 ہم صرف ایک عددی چاہتے ہیں کیونکہ، sscanf کی 2 واپس کریں گے، اور ہم دوبارہ کوشش کریں گے. 638 00:44:06,410 --> 00:44:09,810 >> جلدی سے ایچ ٹی ایم ایل، ایچ ٹی ٹی پی، سی ایس ایس کے ذریعے اڑانے. 639 00:44:09,810 --> 00:44:15,340 ہایپر ٹیکسٹ مارکاپ زبان میں ویب کی ساخت اور semantics ہے. 640 00:44:15,340 --> 00:44:19,960 ہم یہاں HTML ٹیگ ہے جہاں لیکچر سے مثال ہے. 641 00:44:19,960 --> 00:44:22,110 ہم سر ٹیگز، جسم ٹیگز، ہے 642 00:44:22,110 --> 00:44:27,770 ہم اصل میں ایک آغاز اور بند ٹیگ نہیں ہے جہاں خالی ٹیگز کی مثالیں ہیں 643 00:44:27,770 --> 00:44:30,820 ہم صرف لنک اور تصویر ہے. 644 00:44:30,820 --> 00:44:38,480 کوئی اختتامی تصویر ٹیگ ہے، ٹیگ کرنے کی ضرورت ہے سب کچھ کو accomplishes ہے کہ صرف ایک ٹیگ ہے. 645 00:44:38,480 --> 00:44:41,950 لنک ایک مثال ہے، ہم آپ کو سی ایس ایس سے منسلک کس طرح نظر آئے گا، 646 00:44:41,950 --> 00:44:45,910 سکرپٹ آپ کو ایک بیرونی جاوا اسکرپٹ کا ربط کس طرح کی ایک مثال ہے. 647 00:44:45,910 --> 00:44:53,100 یہ ایچ ٹی ایم ایل ایک پروگرامنگ زبان نہیں ہے، بہت سیدھا ہے، اور یاد رکھیں. 648 00:44:53,100 --> 00:44:58,250 یہاں، آپ کو یہ کیا کریں گے ایک شکل کی وضاحت یا کم از کم کس طرح یاد ہے؟ 649 00:44:58,250 --> 00:45:01,740 اس طرح کی ایک شکل ہے جو ایک عمل اور ایک طریقہ ہے. 650 00:45:01,740 --> 00:45:06,210 آپ کو صرف نے کبھی دیکھیں گے طریقوں حاصل کریں اور پیغام ہے. 651 00:45:06,210 --> 00:45:09,040 تو حاصل بات یو آر ایل میں ڈال دیا جاتا ہے جہاں ورژن ہے. 652 00:45:09,040 --> 00:45:11,680 یہ یو آر ایل میں ڈال نہیں ہے جہاں مراسلہ ہے. 653 00:45:11,680 --> 00:45:18,520 اس کے بجائے، فارم سے کسی بھی ڈیٹا HTTP درخواست میں زیادہ پوشیدہ ڈالا جاتا ہے. 654 00:45:18,520 --> 00:45:22,390 HTTP درخواست کہاں جاتا ہے تو یہاں، کارروائی کی وضاحت کرتا ہے. 655 00:45:22,390 --> 00:45:27,490 یہ کہاں جا رہا ہے google.com / تلاش ہے. 656 00:45:27,490 --> 00:45:32,890 طریقہ. حاصل کرنے اور پوسٹ کے درمیان اختلافات یاد رکھیں، 657 00:45:32,890 --> 00:45:37,200 آپ کو بک مارک میں کچھ کرنا چاہتے ہیں تو، صرف، ایک مثال کے طور کا کہنا ہے کہ. 658 00:45:37,200 --> 00:45:40,660 آپ کو ایک پوسٹ کا یو آر ایل کو بک مارک کرنے کے قابل نہیں ہو گا 659 00:45:40,660 --> 00:45:44,970 اعداد و شمار کے یو آر ایل میں شامل نہیں ہے کیونکہ. 660 00:45:44,970 --> 00:45:49,790 >> HTTP، اب، ہایپر ٹیکسٹ ٹرانسفر پروٹوکول ہے. 661 00:45:49,790 --> 00:45:54,080 ہایپر ٹیکسٹ ٹرانسفر پروٹوکول، اگر آپ اسے منتقل کرنے کے لئے توقع کریں گے 662 00:45:54,080 --> 00:45:57,710 ہایپر ٹیکسٹ مارکاپ زبان، اور یہ کرتا ہے. 663 00:45:57,710 --> 00:46:00,170 لیکن یہ بھی آپ کو ویب پر تلاش کسی بھی تصاویر کی منتقلی، 664 00:46:00,170 --> 00:46:05,400 آپ کو کسی بھی ڈاؤن لوڈ کے لئے ایک HTTP درخواست کے طور پر شروع. 665 00:46:05,400 --> 00:46:10,350 تو HTTP صرف ورلڈ وائڈ ویب کی زبان ہے. 666 00:46:10,350 --> 00:46:15,610 اور یہاں آپ کو ایک HTTP درخواست کی اس قسم کو تسلیم کرنے کی ضرورت ہے. 667 00:46:15,610 --> 00:46:19,300 کی طرف یہاں پر HTTP/1.1 صرف اس ورژن ہے کا کہنا ہے کہ 668 00:46:19,300 --> 00:46:21,570 پروٹوکول میں استعمال کر رہا ہوں. 669 00:46:21,570 --> 00:46:25,770 اگر آپ اسے دیکھ لیں گے کے طور پر یہ بہت ہمیشہ، HTTP/1.1 جا رہا ہے. 670 00:46:25,770 --> 00:46:30,110 پھر ہم نے اس سے آپ دیکھ سکتے ہیں کہ، متبادل پوسٹ کیا جا رہا ہے، حاصل تھا کہ کو دیکھنے کے. 671 00:46:30,110 --> 00:46:40,790 اور میں کا دورہ کرنے کی کوشش کر رہا تھا کہ یو آر ایل www.google.com/search؟q = بلاہ، بلاہ، بلاہ تھا. 672 00:46:40,790 --> 00:46:44,240 تو یاد ہے کہ یہ سوالیہ نشان ق = بلاہ بلاہ بلاہ، 673 00:46:44,240 --> 00:46:49,040 ایک فارم کی طرف سے پیش کیا جاتا ہے کہ سامان کی طرح ہے. 674 00:46:49,040 --> 00:46:51,830 یہ میرے لئے واپس کر سکتے ہیں جواب کچھ اس طرح نظر آئے گا. 675 00:46:51,830 --> 00:46:54,050 ایک بار پھر، کہ ہونے جا رہا ہے جس میں پروٹوکول، کے ساتھ شروع، 676 00:46:54,050 --> 00:46:59,190 درجہ کوڈ کی طرف سے کے بعد. یہاں یہ 200 ٹھیک ہے. 677 00:46:59,190 --> 00:47:05,060 اور آخر میں، میں نے اصل میں کے لئے کہا ہے کہ ویب پیج کے بعد کیا جائے گا. 678 00:47:05,060 --> 00:47:08,210 ممکن حیثیت کوڈ آپ دیکھ سکتے ہیں، اور آپ کو ان میں سے کئی کو پتہ ہونا چاہئے. 679 00:47:08,210 --> 00:47:12,770 200 ٹھیک ہے آپ کو شاید پہلے دیکھا ہے. 680 00:47:12,770 --> 00:47:17,830 403 حرام، 404 نہیں ملا، 500 اندرونی سرور کی خرابی 681 00:47:17,830 --> 00:47:22,140 آپ کو ایک ویب سائٹ پر جاؤ اور کچھ ٹوٹا ہوا ہے یا ان کے پی ایچ پی کوڈ گر کر تباہ، تو عام طور پر ہے 682 00:47:22,140 --> 00:47:24,930 آلات میں ہم جبکہ بڑے اورنج باکس 683 00:47:24,930 --> 00:47:27,830 کہ آتا ہے اور اس طرح، کچھ غلط ہے، کا کہنا ہے کہ، اس کوڈ کام نہیں کرتا 684 00:47:27,830 --> 00:47:30,380 یا اس تقریب کے برے. 685 00:47:30,380 --> 00:47:33,230 عام طور پر ویب سائٹ، آپ کے افعال اصل میں برا معلوم نہیں کرنا چاہتے 686 00:47:33,230 --> 00:47:37,880 تو بجائے اس کے کہ وہ صرف آپ کو 500 اندرونی سرور کی غلطیاں دے دونگا. 687 00:47:37,880 --> 00:47:43,050 >> TCP / IP HTTP کے تحت 1 پرت ہے. 688 00:47:43,050 --> 00:47:47,550 انٹرنیٹ ورلڈ وائڈ ویب سے باہر ہے یاد رکھیں کہ. 689 00:47:47,550 --> 00:47:52,270 کی طرح آپ HTTP کے ذریعے جانا نہیں ہے کہ ایک کھیل کھیلنے آن لائن ہیں، 690 00:47:52,270 --> 00:47:55,740 یہ ایک مختلف کے ذریعے جا رہا ہے - یہ اب بھی انٹرنیٹ کا استعمال کرتے ہوئے ہے، 691 00:47:55,740 --> 00:47:58,900 لیکن یہ HTTP کا استعمال نہیں کرتا. 692 00:47:58,900 --> 00:48:02,470 HTTP TCP / IP پر تعمیر پروٹوکول کی صرف ایک مثال ہے. 693 00:48:02,470 --> 00:48:07,820 آئی پی لفظی انٹرنیٹ پروٹوکول کا مطلب ہے. 694 00:48:07,820 --> 00:48:11,500 ہر کمپیوٹر ایک IP ایڈریس ہے، وہ ان 4 عددی چیزیں ہیں 695 00:48:11,500 --> 00:48:16,510 192.168.2.1، یا جو کچھ بھی طرح، کہ ایک مقامی ایک ہو جاتا ہے. 696 00:48:16,510 --> 00:48:23,390 لیکن ایک IP ایڈریس کی پیٹرن ہے. 697 00:48:23,390 --> 00:48:29,060 تو DNS، ڈومین نام سروس، 698 00:48:29,060 --> 00:48:33,410 کہ ایک حقیقی IP ایڈریس google.com طرح چیزوں کا ترجمہ کیا ہے. 699 00:48:33,410 --> 00:48:37,700 تو آپ کو ایک یو آر ایل میں ہے کہ IP ایڈریس ٹائپ کریں تو، 700 00:48:37,700 --> 00:48:40,850 کہ گوگل پر آپ کو آئے گا، لیکن آپ کو ان چیزوں کو یاد کرنے کے لئے نہیں ہیں. 701 00:48:40,850 --> 00:48:45,470 آپ اس کے بجائے google.com کو یاد کرنے کی کوشش کرتے ہیں. 702 00:48:45,470 --> 00:48:51,560 ہم آخری چیز اس IP کے ٹی سی پی کا حصہ ہے جہاں بندرگاہوں، ہے. 703 00:48:51,560 --> 00:48:54,880 ٹی سی پی کے زیادہ کرتا ہے. آپ کو آپ کے ویب براؤزر میں چل رہا ہے، کی طرح، کے بارے میں سوچو. 704 00:48:54,880 --> 00:48:58,670 ہو سکتا ہے کہ آپ کو کچھ ای میل درخواست چل رہا ہے؛ 705 00:48:58,670 --> 00:49:02,150 شاید آپ کو انٹرنیٹ چلانے کا استعمال کرتا ہے کسی دوسرے پروگرام ہے. 706 00:49:02,150 --> 00:49:05,090 وہ تمام انٹرنیٹ تک رسائی کی ضرورت ہے، 707 00:49:05,090 --> 00:49:08,100 لیکن آپ کے کمپیوٹر صرف 1 وائی فائی کارڈ یا جو کچھ بھی ہے. 708 00:49:08,100 --> 00:49:10,780 تو بندرگاہوں ہم نے تقسیم کرنے کے لئے کے قابل ہو اس طرح ہیں 709 00:49:10,780 --> 00:49:13,550 ان ایپلی کیشنز کے انٹرنیٹ استعمال کرنے کے قابل ہیں کہ کس طرح. 710 00:49:13,550 --> 00:49:17,230 ہر درخواست، اس پر سن سکتے ہیں کہ 1 مخصوص بندرگاہ ہو جاتا ہے 711 00:49:17,230 --> 00:49:19,670 اور ڈیفالٹ کی طرف سے، HTTP پورٹ 80 کا استعمال کرتا ہے. 712 00:49:19,670 --> 00:49:22,410 کچھ ای میل کی خدمات 25 کا استعمال کرتے ہیں. 713 00:49:22,410 --> 00:49:24,490 کم نمبر والوں کو محفوظ کرتے ہیں. 714 00:49:24,490 --> 00:49:29,270 آپ عام طور پر خود کے لئے زیادہ گنا ہیں حاصل کرنے کے قابل ہیں. 715 00:49:29,270 --> 00:49:32,010 >> سی ایس ایس، جھرن کاری سٹائل شیٹس. 716 00:49:32,010 --> 00:49:36,030 سی ایس ایس کے ساتھ ہم انداز ویب صفحات، نہیں HTML کے ساتھ. 717 00:49:36,030 --> 00:49:38,440 آپ کو آپ کی سی ایس ایس ڈال کر سکتے ہیں 3 مقامات ہیں. 718 00:49:38,440 --> 00:49:46,300 یہ سٹائل کے ٹیگز کے درمیان، یا ایک مکمل طور پر علیحدہ فائل میں اور پھر اندر سے منسلک، ان لائن ہو سکتا ہے 719 00:49:46,300 --> 00:49:48,470 اور یہاں سی ایس ایس کی صرف ایک مثال ہے. 720 00:49:48,470 --> 00:49:50,450 آپ اس پیٹرن کو تسلیم کرنا چاہئے، 721 00:49:50,450 --> 00:49:54,310 پہلی مثال ہم جسم کے ٹیگ کے ملاپ کے، کر رہے ہیں ہے جہاں 722 00:49:54,310 --> 00:49:56,680 اور یہاں ہم جسم کے ٹیگ بمرکز کر رہے ہیں. 723 00:49:56,680 --> 00:50:00,420 دوسری مثال، ہم بات ملاپ کر رہے ہیں 724 00:50:00,420 --> 00:50:04,740 ID فٹر کے ساتھ، اور ہم اس کے لئے کچھ سٹائل کا اطلاق کر رہے ہیں. 725 00:50:04,740 --> 00:50:07,310 بائیں کہ ID فٹر کے متن سیدھ میں لاتا نوٹس 726 00:50:07,310 --> 00:50:09,840 جسم متن سیدھ میں لاتا ہے مرکز ہے جبکہ. 727 00:50:09,840 --> 00:50:13,180 فوٹر جسم کے اندر ہے. 728 00:50:13,180 --> 00:50:16,470 یہ، اس کے بجائے، متن سیدھ جسم متن سیدھ مرکز کا کہنا ہے کہ اگرچہ، چھوڑ دیا جائے گا. 729 00:50:16,470 --> 00:50:18,880 اس کے پورے جھرن کاری کا حصہ ہے. 730 00:50:18,880 --> 00:50:22,110 آپ کر سکتے ہیں - آپ کے جسم کے لئے سٹائل وضاحت کر سکتے ہیں، 731 00:50:22,110 --> 00:50:25,320 اور پھر جسم میں چیزیں آپ کو زیادہ مخصوص سٹائل کی وضاحت کر سکتے، 732 00:50:25,320 --> 00:50:28,160 اور چیزوں کی آپ توقع کے طور پر کام. 733 00:50:28,160 --> 00:50:34,420 مزید مخصوص سی ایس ایس specifiers مقدم. 734 00:50:34,420 --> 00:50:46,140 مجھے لگتا ہے کہ یہ ہے. 735 00:50:46,140 --> 00:50:49,260 >> [علی Nahm] ہیلو سب. میں نے صرف آپ کی توجہ حاصل کر سکتے ہیں. 736 00:50:49,260 --> 00:50:53,990 میں نے علی ہوں اور میں بہت تیزی سے پی ایچ پی اور ایس کیو ایل کے ذریعے جانے کے لئے جا رہا ہوں. 737 00:50:53,990 --> 00:51:00,310 تو ہم شروع کر سکتے ہیں. پی ایچ پی پی ایچ پی کے لئے مختصر ہے: ہایپر ٹیکسٹ پریپروسیسر. 738 00:51:00,310 --> 00:51:03,730 آپ سب کو پتہ ہونا چاہئے کے طور پر، یہ ایک سرور سائیڈ سکرپٹ کی زبان ہے، 739 00:51:03,730 --> 00:51:06,800 اور ہم نے ویب سائٹ کے پیچھے آخر کے لئے استعمال، 740 00:51:06,800 --> 00:51:12,540 اور یہ سنگننا، پیچھے مناظر حصہ کی ایک بہت کرتا ہے کس طرح. 741 00:51:12,540 --> 00:51:17,510 نحو. یہ سی، حیرت، حیرت کی بات نہیں ہے. 742 00:51:17,510 --> 00:51:22,060 میں آگے منتقل نہیں کر سکتے ہیں - یہ ہمیشہ آپ دیکھ سکتے ہیں اگر،، کے ساتھ شروع کرنے کے لئے ہے. 743 00:51:22,060 --> 00:51:31,340 آپ منحنی خطوط وحدانی کی نئی قسم کی ضرورت ہے دیکھ سکتے ہیں اور پھر آپ بھی؟ پی ایچ پی کی ضرورت ہے. 744 00:51:31,340 --> 00:51:35,780 یہی وجہ ہے کہ آپ کو آپ کے پی ایچ پی متن، آپ پی ایچ پی کوڈ بنانے کے لئے ہے کس طرح ہمیشہ ہے. 745 00:51:35,780 --> 00:51:39,180 تو یہ صرف آپ کی قسم کے پہلے اس پر ڈال دیا جہاں سی، کی طرح نہیں ہو سکتا. 746 00:51:39,180 --> 00:51:42,290 تم ہمیشہ اس کے چاروں طرف کرنے کی ضرورت ہے. 747 00:51:42,290 --> 00:51:47,610 اور اب، بڑے نحو تمام متغیر $ کردار کے ساتھ شروع کرنے کے لئے کی ضرورت ہے. 748 00:51:47,610 --> 00:51:49,490 آپ ان کی وضاحت کر رہے ہیں جب ایسا کرنے کی ضرورت ہے، آپ کو یہ کرنے کی ضرورت ہے 749 00:51:49,490 --> 00:51:51,860 آپ کو بعد میں ان کے حوالہ دے رہے ہیں جب. 750 00:51:51,860 --> 00:51:56,510 آپ ہمیشہ ڈالر کی ضرورت ہے. یہ بہت زیادہ، آپ کے نئے سب سے اچھی دوست ہے. 751 00:51:56,510 --> 00:52:01,690 آپ ایسا نہیں کرتے - C کے برعکس، آپ کو اس کی ہے متغیر کی قسم کیا قسم کے ڈال کرنے کی ضرورت نہیں ہے. 752 00:52:01,690 --> 00:52:04,940 آپ کو $ کی ضرورت ہے جبکہ تو، آپ کو، کی طرح، ڈال کرنے کی ضرورت نہیں ہے 753 00:52:04,940 --> 00:52:09,470 INT ایکس یا سٹرنگ Y، وغیرہ، وغیرہ. 754 00:52:09,470 --> 00:52:11,490 تو تھوڑا سا فرق. 755 00:52:11,490 --> 00:52:15,590 اس کے نتیجے کے طور پر، یہ پی ایچ پی کی ایک کمزور قسم کا مطلب ہے کہ. 756 00:52:15,590 --> 00:52:19,310 پی ایچ پی کی ایک کمزور قسم Language ہے، اور یہ کمزور متغیر ٹائپ ہے. 757 00:52:19,310 --> 00:52:24,020 دوسرے الفاظ میں، کہ آپ متغیر کی اقسام میں سے مختلف قسم کے درمیان سوئچ کر سکتے ہیں کا مطلب ہے کہ. 758 00:52:24,020 --> 00:52:27,230 آپ ایک int کے طور پر آپ کی نمبر 1 جمع کر سکتے ہیں، 759 00:52:27,230 --> 00:52:29,650 آپ کو ایک تار کے طور پر محفوظ کر سکتے ہیں، اور آپ کو ایک فلوٹ کے طور پر محفوظ کر سکتے ہیں، 760 00:52:29,650 --> 00:52:33,550 اور یہ سب اس کے نمبر 1 ہو جائے گا. 761 00:52:33,550 --> 00:52:36,080 آپ کو مختلف اقسام میں ذخیرہ کرنے ہیں چاہے، 762 00:52:36,080 --> 00:52:39,120 یہ اب بھی ہے - متغیر اقسام اب بھی آخر میں منعقد کر رہے ہیں. 763 00:52:39,120 --> 00:52:41,540 تو آپ یہاں نظر آتے ہیں، آپ pset 7 سے یاد ہے، 764 00:52:41,540 --> 00:52:43,500 تم میں سے بہت سے لوگ شاید اس کے ساتھ مسائل تھے. 765 00:52:43,500 --> 00:52:47,280 دو برابر نشانیاں، 3 برابر نشانیاں، 4 برابر نشانیاں. 766 00:52:47,280 --> 00:52:49,990 ٹھیک ہے، کوئی 4 برابر نشانیاں ہیں، لیکن اس کی 2 اور 3 میں موجود ہیں. 767 00:52:49,990 --> 00:52:53,320 تم اقدار کو چیک کرنے کے 2 برابر نشانیاں استعمال کرتے ہیں. 768 00:52:53,320 --> 00:52:55,830 یہ اقسام بھر میں چیک کر سکتے ہیں. 769 00:52:55,830 --> 00:52:58,770 تو آپ سب سے پہلے مثال کے طور پر دیکھ سکتے ہیں، 770 00:52:58,770 --> 00:53:02,210 میں num_int == num_string ہے. 771 00:53:02,210 --> 00:53:06,710 تو آپ int اور آپ سٹرنگ دونوں ہیں، تکنیکی، 1، 772 00:53:06,710 --> 00:53:10,790 لیکن وہ مختلف اقسام ہیں. لیکن ڈبل برابر کے لئے، یہ اب بھی گزر جائیں گے. 773 00:53:10,790 --> 00:53:15,510 تاہم، ٹرپل برابر کے لئے، یہ قیمت کے طور پر ساتھ ساتھ مختلف اقسام کی جانچ پڑتال. 774 00:53:15,510 --> 00:53:18,760 یہی وجہ ہے کہ، یہ یہاں ہے کہ دوسری صورت میں منتقل کرنے کے لئے نہیں جا رہا ہے کا مطلب ہے کہ 775 00:53:18,760 --> 00:53:22,350 آپ اس کے بجائے 3 کے برابر علامات کا استعمال کرتے ہوئے کر رہے ہیں جہاں. 776 00:53:22,350 --> 00:53:26,590 تو وہ تم سب کو اب دکھایا گیا ہے کہ ایک بہت بڑا فرق ہے. 777 00:53:26,590 --> 00:53:31,570 >> سلک concatenation آپ پی ایچ پی میں استعمال کر سکتے ہیں ایک اور طاقتور چیز ہے. 778 00:53:31,570 --> 00:53:34,080 یہ بنیادی طور پر صرف اس کام ڈاٹ سنکیتن ہے 779 00:53:34,080 --> 00:53:36,230 اور یہ کہ آپ کے ساتھ مل کر ڈور پابند کر سکتے ہیں کس طرح ہے. 780 00:53:36,230 --> 00:53:40,800 تو آپ کو بلی ہے اور آپ کو کتا ہے، اور آپ کو ایک دوسرے کے ساتھ 2 ڈور ڈال کرنا چاہتے ہیں تو، 781 00:53:40,800 --> 00:53:44,080 آپ کی مدت استعمال کر سکتے ہیں، اور یہ کہ یہ کس طرح کام کرتا کی طرح ہے. 782 00:53:44,080 --> 00:53:46,660 آپ یہ بھی صرف ایک دوسرے کے ساتھ ان کی جگہ کر سکتے ہیں، 783 00:53:46,660 --> 00:53:49,030 آپ نیچے مثال میں یہاں دیکھ سکتے ہیں کے طور پر، 784 00:53:49,030 --> 00:53:51,610 میں سٹرنگ 1، خلائی سٹرنگ 2 بازگشت کہاں ہے. 785 00:53:51,610 --> 00:53:56,930 پی ایچ پی کی طرح کے طور پر ان کو تبدیل کرنے کے لئے پتہ چل جائے گا. 786 00:53:56,930 --> 00:53:59,780 arrays کے. اب، پی ایچ پی میں، arrays کے 2 مختلف قسم کے ہوتے ہیں. 787 00:53:59,780 --> 00:54:03,180 آپ کو باقاعدگی سے arrays کے کر سکتے ہیں، اور آپ کو بھی ساہچری arrays کر سکتے ہیں، 788 00:54:03,180 --> 00:54:06,040 اور ہم اب ان کے ذریعے جانے کے لئے جا رہے ہیں. 789 00:54:06,040 --> 00:54:08,280 باقاعدہ arrays کے، صرف اس سی میں ہیں 790 00:54:08,280 --> 00:54:11,240 اور تو آپ کو گنا کر رہے ہیں کہ سوچکانکوں ہے. 791 00:54:11,240 --> 00:54:13,160 اب ہم صرف ایک تخلیق کرنے کے لئے جا رہے ہیں اور ڈال رہے ہیں - 792 00:54:13,160 --> 00:54:15,500 تو اس سے ہم ایک خالی صف تشکیل کس طرح ہے، تو پھر ہم جا رہے ہیں 793 00:54:15,500 --> 00:54:17,310 انڈیکس 0 نمبر میں ڈال دیا. 794 00:54:17,310 --> 00:54:19,200 ہم نمبر 6، 6 قیمت ڈال کرنے جا رہے ہیں. 795 00:54:19,200 --> 00:54:21,500 آپ یہاں نچلے حصے میں دیکھ سکتے ہیں. 796 00:54:21,500 --> 00:54:24,240 Where's - انڈیکس نمبر 1 میں ہم، قیمت نمبر 4 ڈال کرنے جا رہے ہیں 797 00:54:24,240 --> 00:54:26,720 اور تو آپ کو 6 ہے دیکھ سکتے ہیں، ایک 4، ہے 798 00:54:26,720 --> 00:54:29,160 اور پھر ہم چیزیں چھپائی رہے ہیں کے طور پر، 799 00:54:29,160 --> 00:54:33,550 ہم کوشش کرتے ہیں اور انڈیکس 0 نمبر پر محفوظ قدر کو پرنٹ جب، 800 00:54:33,550 --> 00:54:36,900 پھر ہم باہر طباعت کیا جا رہا ہے 6 ویلیو نظر آئے گا. ڈاؤن لوڈ، اتارنا؟ 801 00:54:36,900 --> 00:54:40,160 تو یہ آپ کے لئے باقاعدہ arrays کے ہے. 802 00:54:40,160 --> 00:54:42,750 تم نے بھی اب باقاعدہ arrays کے چیزیں شامل کر سکتے ہیں ایک اور طریقہ 803 00:54:42,750 --> 00:54:44,780 آپ کو صرف ان سے آخر میں شامل کر سکتے ہیں. 804 00:54:44,780 --> 00:54:47,240 یہی وجہ ہے کہ آپ کو مخصوص انڈیکس کی وضاحت کرنے کی ضرورت نہیں ہے کا مطلب ہے کہ. 805 00:54:47,240 --> 00:54:51,000 آپ کا نمبر دیکھ سکتے ہیں، اور پھر مربع بریکٹ میں وضاحت نہیں انڈیکس ہے. 806 00:54:51,000 --> 00:54:56,270 اور یہ پتہ چل جائے گا - پی ایچ پی صرف فہرست، اگلے مفت اسپاٹ کے آخر میں شامل کرنے کے لئے پتہ چل جائے گا. 807 00:54:56,270 --> 00:54:59,190 تو آپ کو، کہ 0 موقع پر وہیں 1 دیکھ سکتے ہیں 808 00:54:59,190 --> 00:55:02,690 2 سب سے پہلے موقع پر وہاں گئے تھے. 809 00:55:02,690 --> 00:55:04,690 3 جاتا ہے - بھی شامل ہے. 810 00:55:04,690 --> 00:55:06,720 تو اس قسم کی سمجھ میں آتا ہے. آپ کو صرف مسلسل اس اضافہ کر رہے ہیں، 811 00:55:06,720 --> 00:55:09,360 اور پھر ہم، نمبر 1 کے انڈیکس گونج رہے ہیں جب 812 00:55:09,360 --> 00:55:13,080 یہ قیمت 2 پرنٹ. 813 00:55:13,080 --> 00:55:16,800 >> پھر ہم ساہچری arrays ہیں arrays کے ہے. 814 00:55:16,800 --> 00:55:19,370 بجائے عددی سوچکانکوں ہونے کے ساہچری arrays،، 815 00:55:19,370 --> 00:55:23,630 کیا وہ کرتے ہیں وہ سٹرنگ کی طرف سے ہیں سوچکانکوں ہے، ہے. 816 00:55:23,630 --> 00:55:25,670 آپ کی بجائے، میں دیکھ سکتے ہیں - میں ان تمام لوگوں کی تعداد سوچکانکوں سے چھٹکارا مل گیا، 817 00:55:25,670 --> 00:55:32,140 اور اب یہ key1، key2، key3 ہے، اور وہ تمام ڈور ہیں کہ نشاندہی کرنے کے لئے ڈبل قیمت درج کرنے میں ہیں. 818 00:55:32,140 --> 00:55:34,470 تو ہم اس کی ایک مثال ہو سکتا ہے. 819 00:55:34,470 --> 00:55:38,790 اس کی مثال کے طور پر ہم TF ہے، اور یہ کہ انڈیکس کا نام ہے. 820 00:55:38,790 --> 00:55:42,030 ہم، کیلوری کھا، انڈیکس میں، نام کے طور پر "علی" رکھ دیا جا رہے ہیں 821 00:55:42,030 --> 00:55:47,640 ہم بجائے ایک تار کے ایک int اس وقت ڈال کر سکتے ہیں، 822 00:55:47,640 --> 00:55:52,240 اور اس کے بعد انڈیکس پسند کرتا ہے، ہم اس کے اندر ایک پوری صف ڈال کر سکتے ہیں. 823 00:55:52,240 --> 00:55:55,490 تو اس قسم کی ہے - یہ ہم نے کس طرح کرنے کے لئے اسی طرح کی ایک تصور ہے 824 00:55:55,490 --> 00:55:58,930 تعداد کے ساتھ سوچکانکوں، لیکن اب ہم کے ارد گرد سوچکانکوں تبدیل کر سکتے ہیں 825 00:55:58,930 --> 00:56:03,890 بجائے ڈور کے طور پر ان کی ضرورت کے لئے. 826 00:56:03,890 --> 00:56:06,070 تم نے بھی، صرف انفرادی طور پر یہ کام کر رہے اس کے علاوہ، یہ کر سکتے ہیں 827 00:56:06,070 --> 00:56:09,400 آپ ایک حصہ میں یہ سب کر سکتے ہیں. تو آپ کو، اس صف کی ہے کہ TF دیکھ سکتے ہیں 828 00:56:09,400 --> 00:56:13,350 اور اس کے بعد ہم ایک وشال مربع بریکٹ سیٹ میں ان سب کو مقرر کیا. 829 00:56:13,350 --> 00:56:15,220 تو ہے کہ چیزوں کو تیز کر سکتے ہیں. 830 00:56:15,220 --> 00:56:19,730 یہ نہیں کے مقابلے میں ایک ساہتیک سٹائل کی پسند کا زیادہ ہے. 831 00:56:19,730 --> 00:56:21,550 ہم نے بھی loops کے ہے. 832 00:56:21,550 --> 00:56:26,020 C میں ہم اس طرح کام loops کہ ہے. 833 00:56:26,020 --> 00:56:29,690 ہم ہمارے صف تھا، اور ہم نے فہرست کے اختتام پر انڈیکس 0 سے چلا گیا، 834 00:56:29,690 --> 00:56:31,740 اور ہم، یہ سب کو پرنٹ؟ 835 00:56:31,740 --> 00:56:33,880 ، مسئلہ ساہچری arrays کے لئے، ہے، سوائے 836 00:56:33,880 --> 00:56:36,610 ہم ضروری ان عددی سوچکانکوں نہیں جانتے 837 00:56:36,610 --> 00:56:39,610 اب ہم سٹرنگ سوچکانک کیونکہ. 838 00:56:39,610 --> 00:56:44,800 اب ہم ایک بار پھر، آپ کو امید ہے کہ 7 pset میں استعمال کیا جاتا ہے، جس میں جعلی foreach loops کے، کا استعمال کرتے ہیں. 839 00:56:44,800 --> 00:56:48,930 جعلی foreach loops کے صرف فہرست کے ہر ایک حصہ معلوم ہو جائے گا. 840 00:56:48,930 --> 00:56:52,450 اور یہ ہے کہ آپ بالکل عددی انڈیکس جاننا نہیں ہے. 841 00:56:52,450 --> 00:56:56,490 تو آپ صف ڈال، آپ کو جعلی foreach نحو ہے، تو یہ جعلی foreach ہے. 842 00:56:56,490 --> 00:57:00,430 ، تو اپنے صف pset کے کہا جاتا ہے، اور اس کے بعد کے طور پر لفظ، کے طور پر 843 00:57:00,430 --> 00:57:04,530 اور اس کے بعد آپ کو آپ کا استعمال کرنے جا رہے ہیں اس مقامی عارضی متغیر ڈال 844 00:57:04,530 --> 00:57:10,690 صرف مخصوص منعقد کرنے جا رہا ہے کہ مخصوص بات کے لئے - 845 00:57:10,690 --> 00:57:14,770 ایک مثال کے طور پر یا صف کے ایک حصے. 846 00:57:14,770 --> 00:57:18,350 ، pset کے NUM 1 گے، اور پھر شاید یہ تعداد 6 گے 847 00:57:18,350 --> 00:57:20,410 اور پھر اس نمبر 2 گے. 848 00:57:20,410 --> 00:57:26,630 لیکن اس صف میں ہے کہ ہر ایک کی قیمت کے ذریعے جانے کے لئے بات کی ضمانت ہے. 849 00:57:26,630 --> 00:57:30,530 آپ پی ایچ پی میں پتہ ہونا چاہئے کہ مفید افعال کی ضرورت ہوتی ہے، 850 00:57:30,530 --> 00:57:35,880 سے باہر نکلنے کے، خالی، بازگشت تو ہے کہ، آپ کو کچھ فائلوں سمیت کر رہے ہیں اس بات کو یقینی بناتا ہے. 851 00:57:35,880 --> 00:57:40,490 میں انتہائی آپ pset 7 پر نظر ڈالیں اور ان کے افعال پر نظر کی سفارش. 852 00:57:40,490 --> 00:57:42,810 تم ان کو جانتے ہو سکتا ہے، 853 00:57:42,810 --> 00:57:47,060 تو میں یقینی طور پر بالکل، ان تمام کیا کر رہے ہیں، پتہ چلے گا. 854 00:57:47,060 --> 00:57:50,080 >> اور اب ہم واقعی بہت تیزی سے دائرہ کار کے ذریعے جانے کے لئے جا رہے ہیں. 855 00:57:50,080 --> 00:57:53,490 دائرہ کار میں، پی ایچ پی، سی کے برعکس، ایک funky بات کی قسم ہے 856 00:57:53,490 --> 00:57:56,170 اور ہم صرف فوری طور پر اس کے ذریعے جانے کے لئے جا رہے ہیں. 857 00:57:56,170 --> 00:57:58,930 تو ہم وہاں ہیں کہ تیر پر شروع کا کہنا ہے کہ. 858 00:57:58,930 --> 00:58:02,900 اور ہم نے $ کے ساتھ میں شروع کرنے کے لئے جا رہے ہیں. تو رکن کی 'میں'، 0 ہونے جا رہا ہے 859 00:58:02,900 --> 00:58:06,730 اور ہم صرف وہاں کہ بڑے سفید باکس میں اس پرنٹنگ کے رکھنے کے لئے جا رہے ہیں. 860 00:58:06,730 --> 00:58:09,220 ہم i0 کے ساتھ شروع کرنے کے لئے جا رہے ہیں، اور پھر ہم اس کی بازگشت کے لئے جا رہے. 861 00:58:09,220 --> 00:58:12,670 تو 0 نہیں ہے. 862 00:58:12,670 --> 00:58:15,210 اور پھر ہم، کے لئے لوپ کی طرف سے یہ اضافہ کرنے جا رہے ہیں 863 00:58:15,210 --> 00:58:17,810 اور پھر اسے 1 کی قدر ہونے جا رہا ہے. 864 00:58:17,810 --> 00:58:20,070 ، ایک کم 3 ہے، تو یہ لوپ کے لئے اس کے ذریعے منتقل کرنے کے لئے جا رہا ہے 865 00:58:20,070 --> 00:58:23,230 اور پھر ہم اسے دوبارہ پرنٹ کو دیکھنے کے لئے جا رہے ہیں. 866 00:58:23,230 --> 00:58:25,520 ہم، 2 اسے دوبارہ اضافہ کرنے جا رہے ہیں 867 00:58:25,520 --> 00:58:29,860 اور 2 سے کم 3 ہے، تو یہ لوپ کے لئے منتقل کریں گے، اور یہ 2 پرنٹ کریں گے. 868 00:58:29,860 --> 00:58:35,100 تو پھر تم نے 3 کے 3 سے کم نہیں ہے کہ نوٹ کریں گے، تو ہم لوپ کے لئے کے باہر توڑ دونگا. 869 00:58:35,100 --> 00:58:40,050 تو اب ہم باہر ہے، اور پھر ہم aFunction میں جانے کے لئے جا رہے ہیں. 870 00:58:40,050 --> 00:58:45,010 ٹھیک ہے. تو آپ کو، اس متغیر ہم نے پیدا کیا ہے کہ یاد رکھیں کہ کرنے کے لئے ہے 871 00:58:45,010 --> 00:58:48,270 'میں' متغیر، مقامی طور پر scoped نہیں ہے. 872 00:58:48,270 --> 00:58:50,280 یہ لوپ کے لئے مقامی نہیں ہے کا مطلب ہے کہ، 873 00:58:50,280 --> 00:58:58,060 اور یہ کہ متغیر ہم اب بھی تک رسائی حاصل اور اس کے بعد تبدیل، اور یہ اب بھی موثر ہو جائے گا کر سکتے ہیں. 874 00:58:58,060 --> 00:59:02,160 اب آپ کو تقریب میں جانا ہے تو، آپ کو، ہم بھی 'میں' متغیر کا استعمال کرتے نظر آئیں گے 875 00:59:02,160 --> 00:59:05,320 اور ہم 'میں' + + اضافہ کرنے جا رہے ہیں. 876 00:59:05,320 --> 00:59:09,410 آپ اس 'میں' متغیر کی ایک کاپی ہے، سی کی بنیاد پر، سب سے پہلے، لگتا ہے کہ. 877 00:59:09,410 --> 00:59:12,830 یہ درست ہے، جس میں ایک بالکل مختلف چیز ہے. 878 00:59:12,830 --> 00:59:16,560 ہم اسے پرنٹ تو جب ہم باہر پرنٹ کرنے کے لئے کی جا رہی ہے، 'میں' + + پرنٹ کرنے کے لئے جا رہے ہیں 4، 879 00:59:16,560 --> 00:59:19,640 معذرت - اور پھر ہم جا رہے ہیں. 880 00:59:19,640 --> 00:59:22,030 اس کے بعد ہم اس تقریب کے باہر ختم کرنے کے لئے جا رہے ہیں، 881 00:59:22,030 --> 00:59:24,820 اور ہم اس کے تیر کے نشان اب ہے جہاں جا رہے ہیں. 882 00:59:24,820 --> 00:59:29,190 اس وقت، تاہم، تقریب 'میں' کی قدر تبدیل اگرچہ مطلب یہ ہے کہ، 883 00:59:29,190 --> 00:59:32,620 اس کے باہر تقریب کے تبدیل نہیں کیا، 884 00:59:32,620 --> 00:59:35,060 تقریب ایک علیحدہ گنجائش ہے کیونکہ. 885 00:59:35,060 --> 00:59:38,960 یہ، ہم 'میں' کی بازگشت ہے، تو یہ تقریب کے دائرہ کار میں تبدیل نہیں ہے کا مطلب ہے کہ 886 00:59:38,960 --> 00:59:43,660 اور تو ہم پھر 3 پرنٹ کرنے کے لئے جا رہے ہیں. 887 00:59:43,660 --> 00:59:47,520 سی کے مقابلے میں پی ایچ پی میں گنجائش کے بارے میں مختلف چیزیں 888 00:59:47,520 --> 00:59:51,130 >> اب پی ایچ پی اور ایچ ٹی ایم ایل میں. 889 00:59:51,130 --> 00:59:53,510 پی ایچ پی کی ویب صفحات متحرک بنانے کے لئے استعمال کیا جاتا ہے. 890 00:59:53,510 --> 00:59:58,660 یہ اس قسم کی چیزیں مختلف ہوتا ہے. 891 00:59:58,660 --> 01:00:02,090 ہم ایچ ٹی ایم ایل سے مختلف ہے. 892 01:00:02,090 --> 01:00:05,230 HTML کے ساتھ، ہم نے ہمیشہ صرف، روب سے ظاہر ہوتا ہے کہ کس طرح کی طرح ایک ہی جامد چیز ہے، 893 01:00:05,230 --> 01:00:09,370 پی ایچ پی کی جبکہ، آپ کو صارف کی ہے جو کی بنیاد پر چیزوں کو تبدیل کر سکتے ہیں. 894 01:00:09,370 --> 01:00:11,830 میں نے یہ اگر ایسا ہے تو، میں، "آپ کے طور پر کرنا ہے -" اور اس کے بعد نام، 895 01:00:11,830 --> 01:00:14,420 اور میں نے نام تبدیل کر سکتے ہیں. تو ابھی نام، یوسف ہے 896 01:00:14,420 --> 01:00:18,880 اور یہ "، میرے بارے میں" ہے لیکن اس وقت میں نے بھی ٹومی کرنے کے لئے نام تبدیل کر سکتے ہیں. 897 01:00:18,880 --> 01:00:21,700 اور یہ ایک مختلف بات ہو گی. 898 01:00:21,700 --> 01:00:23,840 تو پھر ہم بھی اس کے بارے میں مختلف چیزیں تبدیل کر سکتے ہیں، 899 01:00:23,840 --> 01:00:27,070 اور اس کے نام کی بنیاد پر مختلف مواد دکھایا جائے گا. 900 01:00:27,070 --> 01:00:31,430 تو پی ایچ پی کی قسم کی اپنی ویب سائٹ میں کیا ہو رہا ہے تبدیل کر سکتے ہیں. 901 01:00:31,430 --> 01:00:33,540 یہاں ایک ہی. پھر بھی، وہ مختلف مواد ہے یاد رکھیں کہ، 902 01:00:33,540 --> 01:00:38,870 آپ کو تکنیکی طور پر اب بھی سطح پر ہے کہ ایک ہی ویب کے صفحے تک رسائی حاصل کر رہے ہیں، اگرچہ. 903 01:00:38,870 --> 01:00:43,450 HTML پیدا. آپ یہ کر سکتے ہیں کہ 2 مختلف طریقے ہیں. 904 01:00:43,450 --> 01:00:48,980 تو اب ہم اس حق کے ذریعے جائیں گے. پہلا طریقہ آپ کے پاس، ہے - جی ہاں، معذرت. 905 01:00:48,980 --> 01:00:51,150 تو کیا تم صرف، پی ایچ پی میں لوپ کے لئے آپ کے باقاعدہ ہے 906 01:00:51,150 --> 01:00:56,270 اور پھر آپ پی ایچ پی میں بازگشت اور آپ کو HTML باہر بازگشت. 907 01:00:56,270 --> 01:00:58,720 روب ایچ ٹی ایم ایل سکرپٹ کا آپ سے ظاہر ہوتا ہے کیا کا استعمال کرتے ہوئے 908 01:00:58,720 --> 01:01:04,030 اور پھر صرف ویب کے صفحے پر اسے باہر پرنٹ کرنے کے لئے پی ایچ پی کا استعمال کرتے ہوئے پرنٹ. 909 01:01:04,030 --> 01:01:09,520 متبادل طریقہ آپ کو پی ایچ پی اور ایچ ٹی ایم ایل کو علیحدہ طور پر اگر یہ کرنا ہے. 910 01:01:09,520 --> 01:01:11,940 تو آپ کو، لوپ کے لئے شروع ہوتا ہے پی ایچ پی کی ایک لائن ہے کر سکتے ہیں 911 01:01:11,940 --> 01:01:16,020 تو آپ کو ایک الگ بات میں ایچ ٹی ایم ایل کی لائن ہے کر سکتے ہیں، 912 01:01:16,020 --> 01:01:19,700 اور پھر آپ کو ایک پی ایچ پی کے ساتھ، ایک بار پھر، لوپ ختم. 913 01:01:19,700 --> 01:01:21,800 تو اس قسم کی کو الگ ہے. 914 01:01:21,800 --> 01:01:24,020 بائیں جانب، آپ کر سکتے ہیں ہے - 915 01:01:24,020 --> 01:01:26,360 یہ پی ایچ پی کی صرف 1 حصہ ہے. 916 01:01:26,360 --> 01:01:28,510 حق پر آپ کو، آپ کو پی ایچ پی کی ایک لائن ہے کہ دیکھ سکتے ہیں 917 01:01:28,510 --> 01:01:32,540 آپ کو HTML کی ایک سطر ہے، اور آپ کو دوبارہ پی ایچ پی کی ایک سطر ہے. 918 01:01:32,540 --> 01:01:36,870 تو وہ کیا کر رہے ہیں میں الگ. 919 01:01:36,870 --> 01:01:39,330 اور تم نے کسی بھی طرح سے، ان میں سے کسی کے لئے، نوٹ کریں گے 920 01:01:39,330 --> 01:01:41,980 وہ اب بھی تصویر پرنٹ، تصویر، تصویر، 921 01:01:41,980 --> 01:01:44,540 تو ہے کہ ایچ ٹی ایم ایل اب بھی اسی طرح چھپا ہوا ہے. 922 01:01:44,540 --> 01:01:49,870 اور پھر اگر آپ اب بھی 3 تصاویر اپنی ویب سائٹ پر ظاہر نظر آئے گا. 923 01:01:49,870 --> 01:01:52,820 تو یہ ایک ہی بات کر کے 2 مختلف طریقوں سے ہے. 924 01:01:52,820 --> 01:01:55,060 >> اب ہم فارم اور درخواستوں ہے. روب، آپ سے ظاہر ہوتا ہے کے طور پر 925 01:01:55,060 --> 01:01:59,400 وہاں ایچ ٹی ایم ایل کے فارم ہیں، اور ہم صرف اس کے ذریعے ہوا کرے گا. 926 01:01:59,400 --> 01:02:02,040 آپ کو ایک کارروائی ہے اور آپ کو ایک طریقہ ہے، اور آپ کی کارروائی 927 01:02:02,040 --> 01:02:04,350 قسم کی آپ کو بھیجنے کے لئے جا رہے ہیں جہاں آپ کو ظاہر کرتا ہے، اور طریقہ کار ہے کہ 928 01:02:04,350 --> 01:02:06,960 یہ ایک یا ایک پوسٹ کی جا رہا ہے. 929 01:02:06,960 --> 01:02:11,220 اور ایک حاصل کریں درخواست، روب نے کہا، آپ کو ایک کی شکل میں ڈال کرنے کے لئے جا رہے ہیں کا مطلب ہے کہ 930 01:02:11,220 --> 01:02:15,760 ایک پوسٹ کی درخواست آپ کو ایک یو آر ایل میں نہیں دیکھ سکیں گے جبکہ اور آپ، ایک یو آر ایل کے طور پر نظر آئے گا. 931 01:02:15,760 --> 01:02:17,840 تو تھوڑا سا فرق. 932 01:02:17,840 --> 01:02:19,950 تاہم، ایک اسی طرح کی بات ہے کہ ایک بات 933 01:02:19,950 --> 01:02:22,560 پوسٹ اور حاصل یکساں طور پر غیر محفوظ ہیں. 934 01:02:22,560 --> 01:02:26,430 تو آپ کو، صرف اس وجہ سے آپ کے یو آر ایل میں نے اسے دیکھا نہیں ہے لگتا ہے کہ ہو سکتا ہے 935 01:02:26,430 --> 01:02:28,790 کہ، پوسٹ زیادہ محفوظ ہے کا مطلب 936 01:02:28,790 --> 01:02:34,420 لیکن آپ کو اب بھی آپ بھیج رہے ہیں اس کی معلومات میں آپ کی کوکیز میں دیکھ سکتے ہیں. 937 01:02:34,420 --> 01:02:38,260 تو نہیں لگتا ہے کہ کے بارے میں ایک یا ایک سے دوسرے. 938 01:02:38,260 --> 01:02:42,160 نوٹ کرنے کے لئے ایک اور بات آپ کو بھی سیکشن متغیر ہے. 939 01:02:42,160 --> 01:02:45,850 تم لوگوں کو آپ کے صارف کی شناخت کے بارے میں معلومات حاصل کرنے کے لئے 7 pset میں اس کا استعمال کیا. 940 01:02:45,850 --> 01:02:48,550 کیا ہوا آپ کو اس ساہچری سرنی استعمال کر سکتے ہیں یہ تھا کہ، 941 01:02:48,550 --> 01:02:53,310 $ _SESSION، اور اس کے بعد آپ کو مختلف چیزوں تک رسائی حاصل کرنے کے قابل ہو 942 01:02:53,310 --> 01:02:57,720 اور صفحات بھر میں مختلف چیزوں کی دکان. 943 01:02:57,720 --> 01:03:00,750 >> آخری بات، ہم SQL، تشکیل طلب زبان ہے 944 01:03:00,750 --> 01:03:04,360 اور اس ڈیٹا بیس کو منظم کرنے کے لئے ایک پروگرامنگ زبان ہے. 945 01:03:04,360 --> 01:03:08,220 ، بالکل، ڈیٹا بیس کیا ہے؟ وہ ٹیبل کے مجموعے ہیں، 946 01:03:08,220 --> 01:03:10,630 اور ہر میز اشیاء کی اسی طرح کی قسم کے کر سکتے ہیں. 947 01:03:10,630 --> 01:03:14,990 تو ہم آپ کے خزانہ pset میں صارفین کی ایک میز تھا. 948 01:03:14,990 --> 01:03:20,610 اور کیوں وہ مفید ہیں؟ اسے مستقل طور پر معلومات محفوظ کرنے کا ایک طریقہ ہے کیونکہ. 949 01:03:20,610 --> 01:03:22,840 یہ چیزوں سے باخبر رہنے کے اور چیزوں کو منظم کرنے کا ایک طریقہ ہے 950 01:03:22,840 --> 01:03:25,890 اور اصل میں مختلف صفحات اور ٹریک رکھتے ہوئے پر دیکھ کر. 951 01:03:25,890 --> 01:03:29,930 جبکہ آپ کو صرف ایک ہے کہ فوری طور پر اس وقت اس کی دکان ہے تو 952 01:03:29,930 --> 01:03:33,720 اور پھر بعد میں اس کا استعمال، آپ کو محفوظ کر لیا ہے کہ کسی بھی چیز تک رسائی حاصل کرنے کے قابل نہیں ہو گا. 953 01:03:33,720 --> 01:03:37,660 ہم SQL حکم دیتا ہے کے لئے استعمال کرتے ہیں 4 اہم چیزیں ہیں. 954 01:03:37,660 --> 01:03:40,190 ہم منتخب کریں، ڈالیں، خارج کر دیں، اور اپ ڈیٹ ہے. 955 01:03:40,190 --> 01:03:42,880 وہ لوگ آپ کو آپ کے کوئز کے لئے پتہ کرنے کے لئے بہت اہم ہیں. 956 01:03:42,880 --> 01:03:45,990 >> ہم فوری طور پر اب سے زیادہ منتخب کریں گے. 957 01:03:45,990 --> 01:03:48,540 بنیادی طور پر، آپ کو ایک ڈیٹا بیس سے قطار کو منتخب کر رہے ہیں. 958 01:03:48,540 --> 01:03:52,400 تو آپ یہاں، ہے - 959 01:03:52,400 --> 01:03:56,740 ہم ان 2 مختلف چیزیں ہیں، اور ہم کلاس میز سے منتخب کرنے کے لئے چاہتے ہیں، 960 01:03:56,740 --> 01:04:01,480 جہاں بہت اچھے - خوفناک کالم میں قدر 1 ہے جہاں. 961 01:04:01,480 --> 01:04:04,460 آپ یہاں دیکھ سکتے ہیں تو، ہم، کلاس کے نام کے ان 2 چیزیں ہیں 962 01:04:04,460 --> 01:04:08,490 CS50 اور Stat110، اور ہم کلاس شناخت اور نعرہ ہے. 963 01:04:08,490 --> 01:04:13,150 تو ہم نے اس کی تمام معلومات کو منتخب کرنا چاہتے ہیں. 964 01:04:13,150 --> 01:04:17,480 تو پھر تم نے، اس قسم کی ہے کہ خوفناک کالم کے اٹھا ہے کہ یہاں دیکھ سکتے ہیں 965 01:04:17,480 --> 01:04:25,170 تمام چیزیں ہیں 1، اور پھر اس کے کلاس ID، کلاس کے نام اور اس کے باہر منتخب کر سکتے ہیں کہ نعرہ ہے جہاں. 966 01:04:25,170 --> 01:04:28,100 آپ اس کوڈ میں کس طرح کرتے ہیں؟ آپ پی ایچ پی کا استعمال کرنا پڑے. 967 01:04:28,100 --> 01:04:33,830 تو اس قسم کے پی ایچ پی اور ایس کیو ایل کو ایک دوسرے سے متعلق ہیں کس طرح ہے. 968 01:04:33,830 --> 01:04:38,130 اب ہم اپنے کوڈ ہے، اور ہم نے اپنے استفسار تقریب کو استعمال کرنے کے لئے جا رہے ہیں 969 01:04:38,130 --> 01:04:41,370 ہم 7 pset میں کیا، اور ہم SQL سوال کو چلانے کے لئے جا رہے ہیں کے طور پر. 970 01:04:41,370 --> 01:04:43,870 پھر ہم جا رہے ہیں - 971 01:04:43,870 --> 01:04:46,280 ہم نے ہمیشہ جھوٹے اگر صف کی ٹرپل برابر چیک کرنے کے لئے ہے. 972 01:04:46,280 --> 01:04:49,010 تو پھر، آپ کی قسم اور قیمت کی جانچ کرنا چاہتے، 973 01:04:49,010 --> 01:04:53,880 یہ کام نہیں کرتا تو، اس کے بعد آپ ہم 7 pset میں کیا کے طور پر، ہمیشہ کی طرح، معذرت خواہ ہیں کرنا چاہتے ہیں. 974 01:04:53,880 --> 01:04:55,870 دوسری صورت میں، آپ کو ان کے ہاتھ کے ساتھ سب کچھ کے ذریعے لوپ کے لئے چاہتے ہیں 975 01:04:55,870 --> 01:04:59,410 جعلی foreach ہم صرف گئے loops کہ. 976 01:04:59,410 --> 01:05:01,280 ، ہم کے ذریعے looping کر رہے ہیں اور ہم نے ماضی اسے بنایا ہے اب وہ 977 01:05:01,280 --> 01:05:05,080 ہمارے استفسار منظور فرض ہے کہ دو، اب ہم اپنے جعلی foreach لوپ ہے. 978 01:05:05,080 --> 01:05:11,050 اور پہلی صف یہ ہے، تو یہاں صف یہاں، ہے، یہ پیک ہے. 979 01:05:11,050 --> 01:05:14,010 یہ ہو گیا ہے کہ تمام معلومات کو پرنٹ کرنے کے لئے جا رہا ہے. 980 01:05:14,010 --> 01:05:18,070 تو یہ نچلے حصے میں باہر پرنٹ کرنے کے لئے جا رہا ہے "چاہتے ایچ ٹی ایم ایل معلومات حاصل کریں؟" 981 01:05:18,070 --> 01:05:23,370 یہ لوپ کے لئے سب سے پہلے مکمل ہے کیونکہ اس کے بعد،، اگلی صف میں جانے کے لئے جا رہا ہے 982 01:05:23,370 --> 01:05:26,510 اور تو، اس کی دوسری لائن پرنٹ کی جا رہی ہے 983 01:05:26,510 --> 01:05:32,120 STAT110 ہونے جا رہا ہے، جس میں تمام لمحات تلاش. 984 01:05:32,120 --> 01:05:34,290 >> ایک آخری بات SQL خطرات پر ہے. 985 01:05:34,290 --> 01:05:37,300 میں ڈیوڈ اس پر لیکچر میں تھوڑا سا چھو جانتے. 986 01:05:37,300 --> 01:05:40,730 آپ بعد میں اس کو پڑھ سکتے ہیں. یہ واقعی مضحکہ خیز ہے. 987 01:05:40,730 --> 01:05:45,320 SQL انجکشن مشکل بات یہ ہے کی ایک قسم ہے. 988 01:05:45,320 --> 01:05:49,890 آپ صرف صحیح آپ کے سوال میں ان متغیرات میں رہنا کہتے ہیں کہ، 989 01:05:49,890 --> 01:05:52,290 آپ کو اس کی پہلی لائن میں دیکھ سکتے ہیں. 990 01:05:52,290 --> 01:05:54,520 تو یہ ٹھیک ہے؟ آپ کو صرف صارف کا نام میں ڈال رہے ہیں 991 01:05:54,520 --> 01:05:58,820 اور آپ کے SQL سوال کے لئے پاس، اور آپ کو اس سے دور جہاز اور آپ کے ڈیٹا ٹیبل میں جو کچھ بھی حاصل کرنا چاہتے ہیں. 992 01:05:58,820 --> 01:06:01,450 یہ بہت آسان لگتا ہے. تو، کسی میں رکھتا ہے کا کہنا ہے کہ اجازت دیتا ہے 993 01:06:01,450 --> 01:06:04,910 پاس ورڈ کے لئے، یہ یا متن یہیں - 994 01:06:04,910 --> 01:06:06,780 اصل میں سرخ باکس میں ہونا چاہئے. 995 01:06:06,780 --> 01:06:11,920 تو وہ میں اس پاس ورڈ ڈال کا کہنا ہے کہ دو - وہ میں داخل کیا ہے. 996 01:06:11,920 --> 01:06:16,520 تو وہ ڈال یا "1" = 1 کر رہے ہیں. 997 01:06:16,520 --> 01:06:20,880 کرنے کے لئے ایک پاگل پاس کی طرح. 998 01:06:20,880 --> 01:06:25,070 اب صرف اس میں جگہ لے لے، اور اب آپ کہ SQL سوال میں اس بات کو نوٹ کیجیئے گا، 999 01:06:25,070 --> 01:06:29,090 آپ نوٹ کریں گے، کیونکہ یہ ہمیشہ سچ کی تشخیص کرتا 1000 01:06:29,090 --> 01:06:32,240 آپ کے SQL سوال کے اس کی تمام معلومات منتخب کر سکتے ہیں 1001 01:06:32,240 --> 01:06:35,420 یا آپ کو صرف = 1 1 ہو سکتا ہے. 1002 01:06:35,420 --> 01:06:41,030 تو یہ ہمیشہ صحیح اندازہ کرنے جا رہا ہے. 1003 01:06:41,030 --> 01:06:46,610 کہ ہیکر آپ کے سسٹم میں کو توڑنے کر سکتے ہیں کیونکہ اس کا مطلب یہ ہے کہ، واقعی کام کرنے کے لئے نہیں جا رہا ہے. 1004 01:06:46,610 --> 01:06:49,300 اس کا حل آپ PDO کے نظام کو استعمال کرنے کے لئے ہے، 1005 01:06:49,300 --> 01:06:51,360 جس میں، آپ کے سوال کے نشانات استعمال کرنے کی ضرورت کا مطلب ہے کہ 1006 01:06:51,360 --> 01:06:53,350 کیا آپ کو 7 pset میں استعمال کیا جاتا ہے لوگوں کو، ہے جو 1007 01:06:53,350 --> 01:06:57,620 آپ کو آپ کے کچھ ڈال کرنا چاہتے ہیں جہاں کی جگہ میں ایک سوالیہ نشان کے استعمال کرنے کے لئے کہاں جا رہے ہیں، 1008 01:06:57,620 --> 01:07:01,430 اور، تو پھر آپ ایک کوما لئے جا رہے ہیں، اور پھر آپ کے بعد ہو گا 1009 01:07:01,430 --> 01:07:07,610 آپ اسٹرنگ کے بعد، آپ چاہتے ہیں کہ مختلف متغیر آپ سوالیہ نشان میں تبدیل کرنے کے لئے. 1010 01:07:07,610 --> 01:07:10,330 تو اب تم مجھے ان ریڈ سوال نمبر ہے کہ یہاں نوٹ کریں گے. 1011 01:07:10,330 --> 01:07:15,420 میں نے اس کے بعد کہ ان کے حکم میں تبدیل کرنے کے لئے جانتے ہیں تو پھر میں اپنے ڈور کے بعد متغیر ڈال دیا. 1012 01:07:15,420 --> 01:07:18,470 کسی کو اس طرح یہ کرتا ہے کہ اگر، اس بات کو یقینی بنا دیں گے 1013 01:07:18,470 --> 01:07:24,050 اور وہ، اس بات کا یقین کرے گا کہ، یا 1 = 1 صورتحال ہے 1014 01:07:24,050 --> 01:07:30,490 واپس آخر میں، یہ اصل میں SQL سوال نہیں ٹوٹ جائے گا اس بات کو یقینی بنانے کے. 1015 01:07:30,490 --> 01:07:33,660 ٹھیک ہے، پی ایچ پی اور ایس کیو ایل کے ایک بونڈر، کہ بہت زیادہ ہے تو. 1016 01:07:33,660 --> 01:07:41,520 آپ سب کو مبارک، اور اب ایسک پر 1017 01:07:41,520 --> 01:07:44,270 >> [Oreoluwatomiwa Babarinsa] ٹھیک ہے سب. کچھ جاوا اسکرپٹ پر جانے کے لئے وقت 1018 01:07:44,270 --> 01:07:48,840 اور کچھ دوسری چیزوں کو بہت تیزی سے تو ہم آپ کو آج رات کو نہیں رکھتے. 1019 01:07:48,840 --> 01:07:56,930 جاوا اسکرپٹ کا. جی ہاں. جاوا اسکرپٹ کا منشا، ایک ٹھنڈی چیز کی طرح ہے. 1020 01:07:56,930 --> 01:07:59,090 تم واقعی میں جاوا اسکرپٹ کے بارے میں جاننے کی ضرورت ہے چیزیں، اس طرح کی طرح ہے 1021 01:07:59,090 --> 01:08:03,810 آپ ویب اپلی کیشن کر جا رہا ہے کے کلائنٹ سائڈ آخر. 1022 01:08:03,810 --> 01:08:08,280 آپ کو صرف سرور سائیڈ پر تمام وقت کی دیکھ بھال کے لئے نہیں کرنا چاہتے کچھ چیزیں ہے. 1023 01:08:08,280 --> 01:08:12,880 تمام چھوٹی بات چیت،، ایک بات کو اجاگر کچھ غائب بنانے. 1024 01:08:12,880 --> 01:08:15,340 تم نے واقعی میں آپ کے سرور پر اس کے لئے ہر وقت بات کرنے کے لئے کرنا چاہتے ہیں نہیں ہے. 1025 01:08:15,340 --> 01:08:18,069 اور اس میں سے کچھ سرور سائیڈ پر کرنے کے لئے بھی ممکن نہیں ہے. 1026 01:08:18,069 --> 01:08:21,899 ہم جاوا سکرپٹ کی طرح کچھ کی ضرورت ہے یہی وجہ ہے. 1027 01:08:21,899 --> 01:08:24,359 جاوا سکرپٹ کے بارے میں ٹھنڈی چیزیں: یہ متحرک طور پر ٹائپ کیا جاتا ہے. 1028 01:08:24,359 --> 01:08:27,149 کیا اس کا مطلب ہے کہ آپ کے پروگرام کو جاننے کی ضرورت نہیں ہے 1029 01:08:27,149 --> 01:08:30,970 آپ کو یہ لکھنے تو کیا، بالکل، متغیر ہیں. 1030 01:08:30,970 --> 01:08:34,510 یہ چل رہا ہے کے طور پر یہ صرف کی طرح یہ معلوم کریں گے. 1031 01:08:34,510 --> 01:08:37,520 اس کے بارے میں اچھے ہیں کہ دوسری چیزوں کے: یہ ایک گھوبگھرالی منحنی خطوط وحدانی زبان ہے، 1032 01:08:37,520 --> 01:08:41,359 جس نحو سی اور پی ایچ پی کی طرح ہے کا مطلب ہے. 1033 01:08:41,359 --> 01:08:47,050 آپ کو جاوا اسکرپٹ سیکھنے کے کر رہے ہیں جب بہت rework کی کیا کرنے کی ضرورت نہیں ہے. 1034 01:08:47,050 --> 01:08:49,180 یہاں ہم جاوا اسکرپٹ کا ایک تھوڑا سا ہے. 1035 01:08:49,180 --> 01:08:52,560 یہاں دلچسپ بات یہ ہے کہ، اگر آپ اس پر دیکھتے ہیں، ہے 1036 01:08:52,560 --> 01:08:56,330 ہم سر ٹیگ میں وہیں جاوا اسکرپٹ کا تھوڑا سا ہے. 1037 01:08:56,330 --> 01:08:59,479 کیا ہے بنیادی طور پر صرف ایک جاوا اسکرپٹ فائل میں شامل ہے ہے. 1038 01:08:59,479 --> 01:09:02,260 یہ آپ کو آپ کے پروگرام میں جاوا سکرپٹ کو شامل کر سکتے ہیں کا ایک طریقہ ہے. 1039 01:09:02,260 --> 01:09:06,910 پھر دوسرا تھوڑا سا، اصل میں کچھ ان لائن جاوا اسکرپٹ کا ہے 1040 01:09:06,910 --> 01:09:10,790 بہت سی ایس ایس کے ساتھ ایک ان لائن سٹائل کی طرح، 1041 01:09:10,790 --> 01:09:16,180 اور آپ کو صرف بہت جلد وہاں کچھ کوڈ لکھ رہے ہیں. 1042 01:09:16,180 --> 01:09:18,120 جاوا اسکرپٹ arrays کے ہے. 1043 01:09:18,120 --> 01:09:20,850 بہت مفید، کے ارد گرد کے اعداد و شمار کو رکھنے کے لئے ایک اور طریقہ. 1044 01:09:20,850 --> 01:09:25,180 بہت اچھا اور آسان نحو. 1045 01:09:25,180 --> 01:09:29,870 تم نے سب کچھ تک رسائی اور ایک دوسرے کے ساتھ سب کچھ رکھنے کے لئے مربع بریکٹ کا استعمال. 1046 01:09:29,870 --> 01:09:35,020 بہت پیچیدہ کچھ بھی نہیں. 1047 01:09:35,020 --> 01:09:38,630 عام طور پر جاوا سکرپٹ اور سکرپٹ کی زبانوں کے بارے میں ٹھنڈی چیز 1048 01:09:38,630 --> 01:09:40,920 آپ صف کے سائز کے بارے میں فکر کرنے کی ضرورت نہیں ہے. 1049 01:09:40,920 --> 01:09:43,880 آپ کو صرف array.length استعمال کرتے ہیں اور اس کے ٹریک رکھ سکتے ہیں، 1050 01:09:43,880 --> 01:09:46,960 اور بھی صف میں اضافہ یا آپ کو اس کی ضرورت کے طور پر سکڑ کر سکتے ہیں. 1051 01:09:46,960 --> 01:09:49,279 تو کیا تم بھی، کسی بھی قسم کے بارے میں فکر کرنے کی ضرورت نہیں 1052 01:09:49,279 --> 01:09:57,050 ارے نہیں، میں زیادہ چیزوں کو، یا اس طرح کچھ بھی مختص کرنے کی ضرورت. 1053 01:09:57,050 --> 01:10:00,090 >> یہاں ٹھنڈی چیز جاوا اسکرپٹ اشیاء کہا جاتا کچھ ہے ہے. 1054 01:10:00,090 --> 01:10:04,800 یہ ایک اعتراض پر مبنی زبان ہے، تو یہ ہے کیا، بنیادی طور پر، 1055 01:10:04,800 --> 01:10:10,100 گروپ کے اعداد و شمار آپ کے لئے ایک راستہ ہے جس سے ایک دوسرے کے ساتھ، ایک struct کسی حد تک اسی طرح، 1056 01:10:10,100 --> 01:10:17,280 لیکن اگر آپ ایک struct کی طرح یا ایک ساہچری سرنی نحو میں اس تک رسائی حاصل کر سکتے ہیں. 1057 01:10:17,280 --> 01:10:22,520 یہ بہت آسان ہے اور جو تم اس کے ساتھ کیا کر سکتے ہیں کے ساتھ مل کر گروپ کے اعداد و شمار ہے 1058 01:10:22,520 --> 01:10:24,810 آپ سے متعلق ہے کہ اعداد و شمار کے ایک گروپ ہے تو. 1059 01:10:24,810 --> 01:10:26,850 یہ آپ کو ایک کار کی وضاحت کرنے کی ضرورت ہے ہر چیز ہے، کیونکہ 1060 01:10:26,850 --> 01:10:29,050 اگر آپ مختلف مقامات میں سے ایک گروپ میں ہے کی ضرورت نہیں ہے. 1061 01:10:29,050 --> 01:10:35,300 آپ صرف جاوا سکرپٹ میں 1 اعتراض میں رہنا کر سکتے ہیں. 1062 01:10:35,300 --> 01:10:39,090 آپ شاید جانتے ہیں، iterating کر ان تکاؤ کاموں میں سے ایک ہے. 1063 01:10:39,090 --> 01:10:43,810 آپ کو صرف ایک بار پھر ایک سے زیادہ سے زیادہ یہ کر. آپ کی گاڑی میں ہر چیز سے بات کرنے کی ضرورت ہے 1064 01:10:43,810 --> 01:10:47,340 یا آپ کو ایک فہرست یا کچھ اس طرح میں ہر آئٹم کے ذریعے جانا کرنے کی ضرورت ہے. 1065 01:10:47,340 --> 01:10:51,770 تو جاوا سکرپٹ، پی ایچ پی، ایک جعلی foreach نحو کی طرح ہے. 1066 01:10:51,770 --> 01:10:54,590 اس صورت میں، اس کے لوپ میں کے لئے ایک ہے. 1067 01:10:54,590 --> 01:10:57,300 آپ صرف اشیاء پر اس کا استعمال کرنا چاہتے ہیں. 1068 01:10:57,300 --> 01:11:01,030 آپ arrays کے اس استعمال کرتے ہیں تو پائے جاتے ہیں کہ کچھ مسائل ہیں. 1069 01:11:01,030 --> 01:11:03,750 یہ عام طور پر، اگرچہ، کہ بہت مفید ہے، ان چیزوں میں سے ایک ہے 1070 01:11:03,750 --> 01:11:06,590 آپ ہیڈ کی ایک بہت کو ختم کرنے کی وجہ 1071 01:11:06,590 --> 01:11:10,270 تم اپنے آپ کی طرف سے آپ کے اعتراض میں سب کچھ ھیںچو کرنے کی ضرورت نہیں ہے کیونکہ. 1072 01:11:10,270 --> 01:11:12,300 آپ تمام اہم ناموں کو یاد کرنے کی ضرورت نہیں ہے. 1073 01:11:12,300 --> 01:11:18,270 آپ کو صرف کی طرح اس نحو میں ان کے واپس حاصل. 1074 01:11:18,270 --> 01:11:21,500 اس میں، کے لئے کے ساتھ، آپ کو صرف یاد کرنا چاہتے ہیں 1075 01:11:21,500 --> 01:11:27,180 آپ کو میز ہیش ایک بہت ہی اسی طرح میں، تمام چابیاں واپس ہو رہی ہے. 1076 01:11:27,180 --> 01:11:30,880 آپ کو اس سے یاد ہے آپ کو ایک تار میں ڈال دیں گے، تو آپ کو کچھ حاصل کر سکتے ہیں 1077 01:11:30,880 --> 01:11:33,840 جو اس کے ساتھ منسلک کی قیمت ہو گی. 1078 01:11:33,840 --> 01:11:36,360 کیا تم اس کے ساتھ کیا کر سکتے ہیں، آپ کو، ٹھیک ہے کا کہنا ہے کہ کر سکتے ہیں 1079 01:11:36,360 --> 01:11:42,120 مجھے ایک گاڑی میں ڈال دیا، اور میں نے ایک فیراری یہ کہا جاتا. 1080 01:11:42,120 --> 01:11:45,290 تو آپ کچھ دیر بعد دوبارہ تار فیراری میں ڈال کر سکتے ہیں، اور آپ کو اس سے باہر حاصل کر سکتے ہیں. 1081 01:11:45,290 --> 01:11:50,000 اور آپ کو لوپ کے لئے کے ساتھ، ایک لوپ میں ایسا کر سکتے ہیں. 1082 01:11:50,000 --> 01:11:53,320 تو صرف اشیاء کے بارے میں مزید. آپ کو یاد کرنے کی ضرورت ہے اس سے اہم بات یہ ہے 1083 01:11:53,320 --> 01:12:00,340 ، آپ کو ان کے ساتھ چاہتے ہیں جب بھی آپ نحو کی طرح اعتراض struct کے استعمال کر سکتے ہیں 1084 01:12:00,340 --> 01:12:04,590 کیا آپ کو ایک تار کے طور پر استعمال کرنے کے لئے جا ایک درست متغیر نام نہیں ہے سوائے اس کے. 1085 01:12:04,590 --> 01:12:07,650 آپ کو کہ وہاں پر نظر ڈالیں تو تو، ہم خالی جگہوں کے ساتھ چابی ہے. 1086 01:12:07,650 --> 01:12:12,500 ٹھیک ہے، تم object.key دیا گیا، خلائی، کے ساتھ، خلائی، خالی جگہوں کو، 1087 01:12:12,500 --> 01:12:15,320 کہ صرف syntactically احساس نہیں کریں گے. 1088 01:12:15,320 --> 01:12:22,730 تو آپ کو صرف بریکٹ نحو اس طرح کے ساتھ یہ کر سکتے ہیں. 1089 01:12:22,730 --> 01:12:26,520 >> اس کے علاوہ، جاوا اسکرپٹ کا بہت گنجائش کے اعتبار سے پی ایچ پی کی ہے. 1090 01:12:26,520 --> 01:12:29,050 آپ کے دائرہ کار سے خطاب کے 2 طریقے ہیں. 1091 01:12:29,050 --> 01:12:31,960 آپ کو ایک متغیر کے سامنے میں متغیر نہیں کر سکتے ہیں، 1092 01:12:31,960 --> 01:12:34,060 اور یہ کہ صرف اس عالمی ہے کا مطلب ہے. 1093 01:12:34,060 --> 01:12:37,050 آپ کہیں سے بھی اسے دیکھ سکتے ہیں. آپ کو ایک بیان اگر میں یہ ڈال رہے تھے یہاں تک کہ اگر، 1094 01:12:37,050 --> 01:12:42,430 کہیں اور آپ کے کوڈ میں اس نقطہ کے بعد آپ کو اس متغیر دیکھ سکتا ہے. 1095 01:12:42,430 --> 01:12:46,730 ایک اور بات، اگرچہ، یہ آپ کے اندر ہیں جو کچھ بھی تقریب تک محدود ہے، متغیر کے ساتھ ہے 1096 01:12:46,730 --> 01:12:48,870 آپ کو ایک تقریب میں نہیں ہیں تو، ٹھیک ہے، یہ عالمی ہے. 1097 01:12:48,870 --> 01:12:53,900 آپ کو ایک تقریب میں ہیں لیکن اگر یہ ہے کہ تقریب کے اندر اندر ہی دستیاب ہے. 1098 01:12:53,900 --> 01:12:56,420 میں نے جی ہاں، ایک مثال ہے، لیکن نہیں ہے. یہ ان چیزوں میں سے ایک ہے جہاں 1099 01:12:56,420 --> 01:12:59,900 آپ، آپ گلوبل ہونا چاہتے ہیں کیا متغیر انتظام کر سکتے ہیں 1100 01:12:59,900 --> 01:13:03,810 کیا متغیر آپ کو مقامی ہونا چاہتے ہیں، لیکن آپ کو اس کے بارے میں ہوشیار رہنے کی ضرورت ہے، 1101 01:13:03,810 --> 01:13:06,890 آپ C میں ایسا ٹھیک اناج کنٹرول کی قسم کی ضرورت نہیں ہے، 1102 01:13:06,890 --> 01:13:15,820 کچھ لوپ کے لئے ایک میں اعلان کیا جاتا ہے تو، اس کے لوپ کے لئے کہ میں رہنے کے لئے کہاں جا رہا ہے. 1103 01:13:15,820 --> 01:13:18,790 ہم اصل میں کے لئے جاوا اسکرپٹ کا استعمال کرتے ہوئے کے بارے میں پرواہ بات صحیح، ویب صفحات توڑ ہے؟ 1104 01:13:18,790 --> 01:13:21,800 میرا مطلب ہے، یہی وجہ ہے کہ ہم یہ کر رہے ہے. 1105 01:13:21,800 --> 01:13:23,840 >> ہم ڈوم نامی کسی چیز کا استعمال کرتے ہیں، کہ ایسا کرنے کے لیے. 1106 01:13:23,840 --> 01:13:25,850 دستاویز آبجیکٹ ماڈل. 1107 01:13:25,850 --> 01:13:29,430 بنیادی طور پر، یہ کیا کرتا ہے یہ سب آپ کی ایچ ٹی ایم ایل لیتا ہے 1108 01:13:29,430 --> 01:13:34,110 اور ایک دوسرے کے اندر اندر در اندر کر رہے ہیں کہ اشیاء کی ایک گروپ میں ماڈل اسے باہر. 1109 01:13:34,110 --> 01:13:37,080 آپ کو اس طرح کچھ کے ساتھ شروع. 1110 01:13:37,080 --> 01:13:44,770 تم وہاں سے باہر کے کوڈ کا ایک گروپ اس طرح کی ہے، میرے لئے دائیں، ہے - 1111 01:13:44,770 --> 01:13:46,640 آپ اس جوڑتوڑ کرنا بہت مشکل ہو جائے گا لگتا ہے کہ، 1112 01:13:46,640 --> 01:13:48,700 آپ کو متن کے ایک گروپ کے ذریعے کی تصریف جائے گا کیونکہ 1113 01:13:48,700 --> 01:13:52,080 اور بھان ٹکڑا کرنے کے لئے. اور یہ درست طریقے سے کیا فارمیٹ نہیں کیا گیا ہے؟ 1114 01:13:52,080 --> 01:13:54,880 بری چیزیں ہو گا. 1115 01:13:54,880 --> 01:13:58,140 تو، جاوا سکرپٹ آپ کے لئے اس کا خیال رکھتا ہے، اور آپ کو ایک اچھا آنکڑا ڈھانچہ حاصل 1116 01:13:58,140 --> 01:14:01,390 آپ کو صرف ایک دستاویز ہے جہاں میری، بائیں جانب ایک طرح، 1117 01:14:01,390 --> 01:14:03,530 اور اس کے اندر آپ کو، ایچ ٹی ایم ایل ملاقات کی کچھ ہے 1118 01:14:03,530 --> 01:14:05,600 اور اس کے اندر آپ کو، ایک سر اور ایک جسم ہے 1119 01:14:05,600 --> 01:14:08,420 اور اس کے سر کے اندر آپ کو، وغیرہ،، وغیرہ وغیرہ ایک عنوان ہے. 1120 01:14:08,420 --> 01:14:11,810 یہ، یہ صرف ہے تاکہ ایک ویب کے صفحے توڑ آسان بنا دیتا ہے 1121 01:14:11,810 --> 01:14:14,190 اوہ، میں صرف اس اعتراض پر بات کرنا چاہتے ہیں. 1122 01:14:14,190 --> 01:14:21,340 آپ اپنے آپ کو بنائی گئی ایک اور اعتراض سے بات کریں گے ایک بہت ہی اسی طرح کی ترتیب دیں. 1123 01:14:21,340 --> 01:14:25,980 جیسے میں نے کہا، تمام ڈوم دستاویز اعتراض ہے. 1124 01:14:25,980 --> 01:14:29,290 یا، یہ صرف ایک جگہ ہے اور پھر آپ سے چیزیں تلاش کرنے کے لئے اس کے اندر جا سکتے ہیں 1125 01:14:29,290 --> 01:14:33,880 اور آپ یہ کر سکتے ہیں - یہ وہاں، یہ کام کر رہے کے پرانے سٹائل ہے، 1126 01:14:33,880 --> 01:14:38,130 آپ document.getElementById کرتے ہیں، اور جہاں اس کے بعد نام، 1127 01:14:38,130 --> 01:14:42,420 شاید آپ بتا سکتے ہیں کے طور پر اور، اس میں کچھ وقت کے بعد بہت unwieldy ہو جاتا ہے. 1128 01:14:42,420 --> 01:14:44,480 تو آپ شاید ایسا نہیں کرنا چاہتے ہیں. ہم یہی وجہ ہے کہ 1129 01:14:44,480 --> 01:14:48,760 ہم اس کے بعد کے بارے میں بات کرنے جا رہے ہیں اگلی بات. 1130 01:14:48,760 --> 01:14:52,510 یہاں اہم بات یہ ہے، کہ ٹھیک ہے، تم صحیح، ان تمام عناصر ہے؟ 1131 01:14:52,510 --> 01:14:56,400 تو شاید میں جب پیج بوجھ کچھ کے رنگ تبدیل کر سکتے ہیں. 1132 01:14:56,400 --> 01:14:58,380 تو کیا ہوا؟ کیا اپنے صارف کچھ کلکس ہیں؟ 1133 01:14:58,380 --> 01:15:00,540 مجھے وہ کچھ پر کلک کریں جب یہ دلچسپ کچھ کرنا چاہتے ہیں. 1134 01:15:00,540 --> 01:15:02,600 ہم واقعات منسلک یہی وجہ ہے کہ. 1135 01:15:02,600 --> 01:15:05,330 آپ، بنیادی طور پر، آپ ڈوم میں کسی بھی عنصر تلاش کر سکتے ہیں، 1136 01:15:05,330 --> 01:15:08,560 اور اس کے بعد ہے، کا کہنا ہے کہ. ، اس بوجھ یا کسی کو اس پر کلک کرتا ہے تو 1137 01:15:08,560 --> 01:15:11,410 یا وہ ماؤس اس پر، اس کے ساتھ کچھ کرنا ہے. 1138 01:15:11,410 --> 01:15:15,330 اور کیا آپ کے پاس آپ کے لئے اس سے نمٹنے کے ہے کہ کام کرتا ہے، ہے. 1139 01:15:15,330 --> 01:15:17,980 یہ کام کرتا ہے ایونٹ handlers کے ہیں. 1140 01:15:17,980 --> 01:15:20,440 کیا they're - یہ کہنے کی صرف ایک پسند ہیں راستہ ہے، 1141 01:15:20,440 --> 01:15:23,500 اس ایونٹ ہوتا ہے جب اس تقریب صرف پھانسی دے دی ہے. 1142 01:15:23,500 --> 01:15:28,070 تو یہ اس وقت ہوتا ہے کہ اس صورت ہینڈل. 1143 01:15:28,070 --> 01:15:30,810 یہ آپ کو ایک ایونٹ ہینڈلر باہر پوشیدہ ہے کہ کس طرح ہے. 1144 01:15:30,810 --> 01:15:34,750 میں کچھ بٹن ہے، اور آپ اس پر کلک کریں، تو یہ فٹ. 1145 01:15:34,750 --> 01:15:40,560 تو بٹن پر کلک کریں نہیں. 1146 01:15:40,560 --> 01:15:42,910 یہ درست، اس کے قریب کا ایک طریقہ ہے؟ 1147 01:15:42,910 --> 01:15:46,430 ، آپ کو ایک بٹن ٹیگ ہے، اور پر کلک کریں پر آپ کا کہنا ہے کہ ایک تار ہے 1148 01:15:46,430 --> 01:15:50,460 اوہ، ویسے، میں نے میرے لئے یہ پھٹنے بات کرتے ہیں. 1149 01:15:50,460 --> 01:15:53,990 دوسری صورت میں، یہ صرف آپ کو صرف کر دیا ایک باقاعدہ بٹن کی طرح ہے. 1150 01:15:53,990 --> 01:15:56,550 آپ بھی اس کا ایک اور طریقہ کیا کر سکتے ہیں، 1151 01:15:56,550 --> 01:16:02,770 ہم jQuery کے بارے میں بات کرنے کے بعد ڈوم عنصر پکڑ، لیکن ہم اس کو بچانے کے کریں گے. 1152 01:16:02,770 --> 01:16:07,580 >> jQuery کی: یہ کراس براؤزر ہے کہ ایک لائبریری ہے. 1153 01:16:07,580 --> 01:16:09,580 آپ کو بہت زیادہ کسی بھی چیز میں استعمال کر سکتے ہیں. 1154 01:16:09,580 --> 01:16:12,090 اور یہ صرف آپ کے ساتھ کام کرنے کے لئے آلات کی ایک بہت فراہم کرتا ہے. 1155 01:16:12,090 --> 01:16:15,850 جاوا سکرپٹ، طاقتور ہے، آپ سب کی ضرورت کے اوزار کی ضرورت نہیں ہے 1156 01:16:15,850 --> 01:16:20,550 واقعی ایک ویب اپلی کیشن سے نمٹنے کے لئے باکس کے باہر آپ کرنا چاہتے ہیں کر سکتے ہیں. 1157 01:16:20,550 --> 01:16:24,650 تو یہ، چیزوں کی ایک بہت آسان بنا دیتا ہے آپ کے افعال میں سے ایک بہت فراہم کرتا ہے 1158 01:16:24,650 --> 01:16:28,760 آپ عام طور سے زیادہ بار بار اور اس سے زیادہ، اپنے آپ کو لکھنے کے لئے ہے کہ باہر کے باکس کے. 1159 01:16:28,760 --> 01:16:31,600 اور صرف چیزوں کو بہت آسان بنا دیتا ہے. 1160 01:16:31,600 --> 01:16:35,780 تم نے بھی آپ کو ان تمام عناصر کو باہر لے جس میں سلیکٹرز، ہے 1161 01:16:35,780 --> 01:16:42,800 آپ ڈوم بہت زیادہ سے بس، بجائے ان بہت طویل تقریب کالز کا استعمال کرنے کی. 1162 01:16:42,800 --> 01:16:46,630 ان سلیکٹرز پر مزید. آپ، کا کہنا ہے کہ ہے وہاں، ہے 1163 01:16:46,630 --> 01:16:49,800 میں نے ID کے ساتھ ایک عنصر حاصل کرنا چاہتے ہیں "راک." 1164 01:16:49,800 --> 01:16:56,450 ٹھیک ہے، jQuery میں، یہ صرف $ اور پھر ایک پونڈ ہے کہ ایک سٹرنگ، اور پھر "راک." 1165 01:16:56,450 --> 01:17:01,960 یہ بہت سادہ اور اس مسئلے سے نمٹنے کے روایتی جاوا اسکرپٹ کا طریقہ کے مقابلے میں بہت تیز ہے. 1166 01:17:01,960 --> 01:17:06,120 اور آپ کلاس اور عنصر اقسام کے لئے اسی طرح کی چیزیں ہیں. 1167 01:17:06,120 --> 01:17:08,140 jQuery کی ہے - ڈاؤن لوڈ، اتارنا خصوصیات میں سے ایک آپ کی طرح سکیڑیں کر سکتے ہیں ہے 1168 01:17:08,140 --> 01:17:14,350 آپ ڈوم پر آپ کے سوالات کے نیچے بہت، بہت تیزی سے. 1169 01:17:14,350 --> 01:17:18,980 اب ہم واپس ایونٹ ہینڈلنگ ہیں، اور یہ آپ کے jQuery میں ایک واقعہ سے نمٹنے کے گا کہ کس طرح ہے. 1170 01:17:18,980 --> 01:17:23,090 تو کیا ہم یہاں جا رہے ہیں ہم ٹھیک ہے، کہہ رہے ہیں ہے. میں نے ایک سکرپٹ ٹیگ، ٹھیک ہے؟ 1171 01:17:23,090 --> 01:17:25,400 تو میں نے اس ان لائن جاوا اسکرپٹ ہے. 1172 01:17:25,400 --> 01:17:27,750 ہم کیا کرنے جا رہے ہیں ہم ٹھیک ہے، کا کہنا ہے کہ جا رہے ہیں. 1173 01:17:27,750 --> 01:17:30,860 دستاویز، دستاویز لوڈ کیا گیا ہے جس کا مطلب ہے، کے لئے تیار ہے جب 1174 01:17:30,860 --> 01:17:34,660 ، ہم اس تقریب میں جانے کے لئے جا رہے ہیں، اور ہم، ٹھیک ہے کا کہنا ہے کہ جا رہے ہیں 1175 01:17:34,660 --> 01:17:37,060 اس تقریب اصل میں کچھ اور کر رہی ہے. 1176 01:17:37,060 --> 01:17:42,320 یہ بنیادی طور پر ٹھیک ہے، مجھے ID کے ساتھ عنصر ملتا ہے، کہہ رہا ہے "myid." 1177 01:17:42,320 --> 01:17:47,960 اور اس کے بعد یہ آپ کو اس پر کلک کریں جب executes ہے کہ ایک تقریب ہینڈلر دیتے ہیں. 1178 01:17:47,960 --> 01:17:49,820 بنیادی طور پر اس کا کیا ہے، اس کا کہنا ہے، ٹھیک ہے. 1179 01:17:49,820 --> 01:17:52,630 ، صفحہ بھری ہوئی ہے، تو میں، اس عنصر کو تلاش کرنے کے لئے جا رہا ہوں 1180 01:17:52,630 --> 01:17:56,420 اس ایونٹ ہینڈلر دیتے ہیں، اور یہ بنیادی طور پر آپ کے لئے آپ کے صفحے کا تعین کرتا ہے. 1181 01:17:56,420 --> 01:18:00,520 اور یہ آپ کو ایونٹ کی ہینڈلنگ کے بارے میں سوچنے کے لئے چاہتے ہیں ہے. 1182 01:18:00,520 --> 01:18:06,310 آپ کو صرف، کے بارے میں سوچنا ٹھیک ہے، کچھ وقت ہوتی ہے جب، میں نے ایسا کیا کرنا چاہتے ہیں کرنا چاہتے ہیں؟ 1183 01:18:06,310 --> 01:18:10,520 آپ، ٹھیک ہے، میں اس بات پر یقین ہے کہ اس بات کو بات چیت کرنے کی ضرورت ہے، کے بارے میں سوچنا نہیں چاہتے 1184 01:18:10,520 --> 01:18:14,660 اس بات کو بلاہ بلاہ بلاہ، آپ کو صرف واقعات کے لحاظ سے بات سے بات کرنا چاہتے ہیں. 1185 01:18:14,660 --> 01:18:17,650 جب ایسا ہوتا ہے، ایسا ہوتا ہے. جب ایسا ہوتا ہے، ایسا ہوتا ہے. 1186 01:18:17,650 --> 01:18:20,240 چیزوں کو دوسری چیزوں کو متحرک اور اگر، یہ بہت اچھا ہے. 1187 01:18:20,240 --> 01:18:22,150 لیکن آپ کو پیچیدہ کوڈ کرنے کی کوشش اور کیا نہیں کرنا چاہتا 1188 01:18:22,150 --> 01:18:24,130 جہاں آپ کو ایک ہی وقت میں ایک سے زیادہ چیزوں کو ٹرگر کر رہے ہیں 1189 01:18:24,130 --> 01:18:28,860 آپ کو صرف اپنے آپ کو ایک سر میں درد دینے کے لئے جا رہے ہیں. 1190 01:18:28,860 --> 01:18:32,340 >> ٹھیک ہے. اب ہم اپنے پیج کے واقعات کو ہینڈل کرنے میں حاصل کر سکتے ہیں، 1191 01:18:32,340 --> 01:18:35,640 لیکن میرے صارف ایک بٹن کلکس کہتے ہیں. 1192 01:18:35,640 --> 01:18:38,040 کیا، میں واپس سرور پر اس کی درخواست کو بھیجنے کے لئے چاہتے ہیں تو 1193 01:18:38,040 --> 01:18:41,100 ایک نیا صفحہ دوبارہ لوڈ کرنے کے لئے کی وجہ سے ہے لیکن میں، صفحہ دوبارہ لوڈ کرنا نہیں چاہتے 1194 01:18:41,100 --> 01:18:44,390 ہر ایک وقت قسم کے تکاؤ ہو جاتا ہے، اور کیوں میں کی ضرورت ہے 1195 01:18:44,390 --> 01:18:47,430 پھر ہیڈر ھیںچو، اور پھر فٹر کے لئے، 1196 01:18:47,430 --> 01:18:49,670 اور تمام پیج کے عناصر کو ایک بار پھر 1197 01:18:49,670 --> 01:18:53,180 صرف سلام یا وقت کی تازہ کاری کرنے کے لئے؟ 1198 01:18:53,180 --> 01:18:55,290 ہم ایجیکس کی طرح کچھ ہے یہی وجہ ہے کہ. 1199 01:18:55,290 --> 01:18:59,150 کیا ہم ایجیکس کے ساتھ یہاں کیا کر سکتے ہیں، ہم، ٹھیک ہے کا کہنا ہے کہ کر سکتے ہیں 1200 01:18:59,150 --> 01:19:01,290 میں میں سرور کی کچھ ڈیٹا بھیجنے کے لئے چاہتے ہیں، 1201 01:19:01,290 --> 01:19:04,010 اور میں تو میں اپنے صفحے کو اپ ڈیٹ کر سکتے ہیں، واپس ایک جواب حاصل کرنے کے لئے چاہتے ہیں، 1202 01:19:04,010 --> 01:19:12,120 یا شاید صرف ضروری صارف کو کچھ بھی ظاہر نہیں کرتا ہے کہ کچھ پر algorithmic حساب کرتے ہیں. 1203 01:19:12,120 --> 01:19:15,500 کیا آپ کو ایسا کرنے کی ضرورت ہے؟ ٹھیک ہے، اگر آپ کو بات کرنے کی ضرورت ایک یو آر ایل کی ضرورت ہے. 1204 01:19:15,500 --> 01:19:18,650 آپ کے سرور کو صرف جادوئی کہیں سے میں بات نہیں کر سکتے. 1205 01:19:18,650 --> 01:19:21,960 آپ کے لئے اس کے اعداد و شمار بھیج رہے ہیں ایک مخصوص جگہ کی ضرورت ہے. 1206 01:19:21,960 --> 01:19:26,240 اور تم بھی بھیجنے کے لئے کچھ ڈیٹا کی ضرورت ہے، یا شاید یہ ایک dataless استفسار ہے. 1207 01:19:26,240 --> 01:19:31,380 تم بس ہے، میں زندہ، یا اس طرح کچھ ہوں، واپس سرور پر پنگ اور کہنا چاہتا ہوں. 1208 01:19:31,380 --> 01:19:35,150 اور پھر آپ کو بنیادی طور پر کامیابی کے ساتھ ہینڈل ایک تقریب ہے کہ چاہتے ہیں. 1209 01:19:35,150 --> 01:19:38,250 آپ اپنے سرور سے کچھ معلومات واپس حاصل کرنے کے کا کہنا ہے کہ، 1210 01:19:38,250 --> 01:19:42,960 اور آپ کو ان کے صفحے پر صارف کے عنوان تبدیل کرنا چاہتے ہیں. 1211 01:19:42,960 --> 01:19:44,930 تو آپ کی معلومات کو واپس مل جائے گا، 1212 01:19:44,930 --> 01:19:48,860 اور آپ کی سکرین پر ہے کہ دھکا گے. 1213 01:19:48,860 --> 01:19:51,170 صفحہ کے لئے تیار ہے تو کیا ہوتا ہے،، ہے 1214 01:19:51,170 --> 01:19:56,500 آپ greeter نامی اس بٹن کے لئے کلک کریں تقریب پر پیدا. 1215 01:19:56,500 --> 01:19:58,810 اس بٹن دھکیل دیا جاتا ہے تو کیا یہ تو کرتا ہے، ہے، 1216 01:19:58,810 --> 01:20:03,700 آپ greetings.php بات، تم، ایک پوسٹ کی درخواست بنانے 1217 01:20:03,700 --> 01:20:07,290 اور آپ کو ہے، مجھے آپ کے صفحے سے کچھ حاصل، کا کہنا ہے کہ. 1218 01:20:07,290 --> 01:20:09,890 ہم واقعی، ہے کی وضاحت کرنے کی ضرورت ہے، لیکن greetings.php نہیں ہے 1219 01:20:09,890 --> 01:20:12,480 صرف کا کہنا ہے کہ، "ہیلو دنیا." واپس دیتا ہے 1220 01:20:12,480 --> 01:20:15,650 تو ہم، "، ہیلو دنیا" یہ واپس ہو جاؤ اور اس کی کامیابی پر 1221 01:20:15,650 --> 01:20:20,730 کچھ بھی غلط ہو جاتا ہے سنبھالنے، تو ہم صرف اس ہدف کی جگہ پر جانے کے لئے 1222 01:20:20,730 --> 01:20:25,720 ہم مخصوص اور ہم صرف وہاں میں جواب رہنا ہے. 1223 01:20:25,720 --> 01:20:31,560 اور یہ ایک AJAX استفسار قائم کرنے کی ایک بہت آسان طریقہ ہے. 1224 01:20:31,560 --> 01:20:34,340 >> بہت جلد، روب کی طرح، پہلے سے ہی اس کا ذکر 1225 01:20:34,340 --> 01:20:37,170 چیزیں غلط جا سکتے ہیں، بری چیزیں ہو سکتا ہے، 1226 01:20:37,170 --> 01:20:42,660 تو آپ ان HTTP جواب کوڈ کے ساتھ اپنے آپ کو واقف کرنے کے لئے چاہتے ہیں. 1227 01:20:42,660 --> 01:20:46,030 کیا یہ ہیں سب کچھ ٹھیک چلا گیا، 200، کی طرح، صرف ہیں. 1228 01:20:46,030 --> 01:20:48,670 کچھ اور، بری چیزوں ہوا. 1229 01:20:48,670 --> 01:20:50,790 یہ عام طور پر آپ کو یاد کرنا چاہتے ہیں، بات ہے. 1230 01:20:50,790 --> 01:20:53,440 لیکن یہ ان میں سے سب بہت اچھا ہے پتہ. 1231 01:20:53,440 --> 01:20:55,970 اور آخر میں، ایک بار ہم نے اس کے تمام کے ذریعے چلا گیا ہے، 1232 01:20:55,970 --> 01:20:58,680 ہم، ڈیزائن کے بارے میں بہت تیزی سے بات کرنے کی ضرورت 1233 01:20:58,680 --> 01:21:00,620 اور پھر ہم سب کو دے سکتے ہیں. 1234 01:21:00,620 --> 01:21:03,410 ڈیزائن. آپ کو یاد کرنا چاہتے ہیں چیزیں. 1235 01:21:03,410 --> 01:21:06,950 ان سوالات اپنے آپ سے پوچھو: کون اس کا استعمال کریں گے؟ 1236 01:21:06,950 --> 01:21:09,580 کیا انہوں نے کے لئے اس کا استعمال کیا جائے گا؟ اپنے صارفین کے بارے میں کیا خیال کرتے ہیں؟ 1237 01:21:09,580 --> 01:21:11,750 وہ کیا پرواہ نہیں ہے؟ 1238 01:21:11,750 --> 01:21:14,500 آپ کو صرف ایک اپلی کیشن ہے اور یہ صرف اضافہ نہیں کرنا چاہتا 1239 01:21:14,500 --> 01:21:18,270 اور اس وشال، آپ بھی ختم نہیں کر سکتے ہیں کہ سب ہڑپ چیز بن. 1240 01:21:18,270 --> 01:21:23,900 آپ کو حل کرنا چاہتے مجرد کے مقاصد اور منصوبہ بندی اور چیزیں ہیں کرنا چاہتے ہیں. 1241 01:21:23,900 --> 01:21:29,000 یہ آسان بنائیں. یہ سب، بنیادی طور پر، کا کہنا ہے کہ 1242 01:21:29,000 --> 01:21:34,950 یہ آسان صارف اس کا استعمال کرنے کے لئے بنانے، اصل میں، یہ سلائڈ کی طرح متن کے ایک بڑے بلاب ہے نہیں ہے. 1243 01:21:34,950 --> 01:21:38,020 آپ کو صرف یہ کسی میں جانے کے لئے یہ بہت آسان ہے جہاں کچھ کرنا چاہتے ہیں 1244 01:21:38,020 --> 01:21:40,800 اور وہ کیا کرنا چاہتے ہیں کر. 1245 01:21:40,800 --> 01:21:42,920 آپ کو ان میں 5 صفحات تشریف لے کرنے کے لئے نہیں کرنا چاہتا 1246 01:21:42,920 --> 01:21:45,460 آپ کی ویب سائٹ کے آپ کے وزیر کی تقریب حاصل کرنے کے لئے. 1247 01:21:45,460 --> 01:21:49,290 گوگل سے پہلے 5 صفحات تھا تو آپ کچھ بھی تلاش کر سکتے ہیں، 1248 01:21:49,290 --> 01:21:53,080 کوئی بھی اسے استعمال کریں گے. 1249 01:21:53,080 --> 01:21:55,890 اور آخر میں، کاغذ پروٹوٹائپ، فوکس گروپ. 1250 01:21:55,890 --> 01:21:59,220 اچھے ڈیزائن اور جانچ کے طریقوں ہے. 1251 01:21:59,220 --> 01:22:00,730 آپ یہ آپ کے لئے کام کرتا ہے صرف اس وجہ سے، 1252 01:22:00,730 --> 01:22:04,860 کسی اور یہ کام کرتا ہے سوچتا ہے کہ مطلب یہ نہیں ہے. 1253 01:22:04,860 --> 01:22:14,490 لیکن ہاں، یہ کہ یہ ہے. 1254 01:22:14,490 --> 01:22:17,490 [CS50.TV]