1 00:00:00,000 --> 00:00:10,550 2 00:00:10,550 --> 00:00:14,050 >> DAVID J. MALAN: یہ CS50 ہے اور اس ہفتے چار کا آغاز ہے. 3 00:00:14,050 --> 00:00:18,630 اور، لڑکے، ووکس ویگن میں ہے تمام کیونکہ سافٹ ویئر کی مصیبت. 4 00:00:18,630 --> 00:00:20,264 ہمیں ایک نظر ڈالیں. 5 00:00:20,264 --> 00:00:20,930 [ویڈیو پلے بیک] 6 00:00:20,930 --> 00:00:25,560 -Cars، ہوشیار حروف تیز رفتار اور غصے فلموں میں. 7 00:00:25,560 --> 00:00:29,100 اس ہفتے جرمن کارساز ادارے ووکس ویگن خود کو پایا 8 00:00:29,100 --> 00:00:32,490 کا ایک اسکینڈل کے وسط میں ممکنہ طور پر مجرمانہ تناسب. 9 00:00:32,490 --> 00:00:36,060 >> -Volkswagen اربوں کے لئے bracing ہے جرمانے میں، ممکنہ فوجداری الزامات 10 00:00:36,060 --> 00:00:38,560 اس کے ایگزیکٹوز کے لئے، کے طور پر کمپنی معافی 11 00:00:38,560 --> 00:00:41,840 11 ملین کاروں دھاندلی کے لئے یہ اخراج ٹیسٹ کو شکست میں مدد. 12 00:00:41,840 --> 00:00:44,950 >> -Certain ڈیزل ماڈل تھے جدید ترین سافٹ ویئر کے ساتھ ڈیزائن کیا گیا 13 00:00:44,950 --> 00:00:48,440 سمیت استعمال شدہ معلومات اسٹیئرنگ اور گاڑی کی پوزیشن 14 00:00:48,440 --> 00:00:51,870 گاڑی تھی تعین کرنے کے لئے تیز اخراج ٹیسٹنگ سے گزر. 15 00:00:51,870 --> 00:00:55,650 کہ حالات کے تحت، کے انجن زہریلے اخراج کو کم کریں گے. 16 00:00:55,650 --> 00:00:59,070 لیکن گاڑی بائی پاس پر دھاندلی کی گئی تھی کہ حوصلہ افزائی کی جا رہی تھی جب. 17 00:00:59,070 --> 00:01:03,320 اخراج 40 کرنے کے لئے 10 میں اضافہ قابل قبول EPA سطح سے اوپر بار. 18 00:01:03,320 --> 00:01:04,280 >> [END پلے بیک] 19 00:01:04,280 --> 00:01:05,220 >> DAVID J. MALAN: تو چلو اس پر ایک نظر ڈالیں 20 00:01:05,220 --> 00:01:07,250 اور کس طرح اس کو دیکھنے کے لاگو کیا جا سکتا ہے 21 00:01:07,250 --> 00:01:09,680 اور اس پر اثر انداز ہو سکتا ہے کہ کس طرح اس طرح اتنے بہت سے کاروں. 22 00:01:09,680 --> 00:01:12,840 تو میرے ہاتھ میں یہاں دبائیں ہیں کہ EPA-- کی طرف سے جاری کیا گیا تھا کی رہائی 23 00:01:12,840 --> 00:01:14,620 ماحولیاتی تحفظ ایجنسی جو 24 00:01:14,620 --> 00:01:18,032 امریکی ریگولیٹری ایجنسی ہے ماحولیاتی خدشات ہینڈل، 25 00:01:18,032 --> 00:01:19,740 اور پھر اصل تھا کہ قانونی نوٹس 26 00:01:19,740 --> 00:01:22,420 صرف چند روز قبل ووکس ویگن کو بھیجنے. 27 00:01:22,420 --> 00:01:26,530 >> تو EPA لکھتے ہیں، اور اب انکشاف عوامی سطح پر، ایک جدید ترین سافٹ ویئر 28 00:01:26,530 --> 00:01:29,390 بعض پر الگورتھم ووکس ویگن گاڑیوں کا پتہ لگاتا ہے 29 00:01:29,390 --> 00:01:32,630 جب گاڑی سے گزر رہا ہے سرکاری اخراج کی ٹیسٹنگ 30 00:01:32,630 --> 00:01:36,505 اور مکمل اخراج دیتا ہے صرف ٹیسٹ کے دوران پر کنٹرول. 31 00:01:36,505 --> 00:01:38,380 کی تاثیر ان گاڑیوں کی آلودگی 32 00:01:38,380 --> 00:01:43,260 اخراج کنٹرول آلات بہت ہے تمام عام ڈرائیونگ کے دوران کم 33 00:01:43,260 --> 00:01:44,320 حالات. 34 00:01:44,320 --> 00:01:48,190 یہ پورا ہے کہ گاڑیوں میں نتائج لیبارٹری یا ٹیسٹنگ میں معیار 35 00:01:48,190 --> 00:01:52,790 اسٹیشن، لیکن معمول کے آپریشن کے دوران نائٹروجن oxides-- یا NOx-- اخراج 36 00:01:52,790 --> 00:01:54,950 میں 40 بار معیاری. 37 00:01:54,950 --> 00:01:58,220 ووکس ویگن کی طرف سے تیار سافٹ ویئر ایک اقتباس unquote، شکست آلہ ہے 38 00:01:58,220 --> 00:02:00,650 کلین کی طرف سے وضاحت کے طور پر امریکہ میں ایئر ایکٹ. 39 00:02:00,650 --> 00:02:03,410 >> انہوں نے کا کہنا ہے کہ پر جائیں EPA اور کسی اور ایجنسی 40 00:02:03,410 --> 00:02:07,020 شکست آلہ بے نقاب آزاد تجزیہ کے بعد سافٹ ویئر 41 00:02:07,020 --> 00:02:09,660 مغرب میں محققین کی طرف سے ورجینیا یونیورسٹی. 42 00:02:09,660 --> 00:02:14,160 NOX آلودگی کے لئے حصہ نائٹروجن ڈائی آکسائیڈ، زمین کی سطح وجون، 43 00:02:14,160 --> 00:02:15,700 اور ٹھیک particulate معاملہ. 44 00:02:15,700 --> 00:02:18,090 ان کے لئے کی نمائش آلودگی سے منسلک کیا گیا ہے 45 00:02:18,090 --> 00:02:20,870 کی ایک وسیع رینج کے ساتھ سنگین صحت کے اثرات، 46 00:02:20,870 --> 00:02:23,637 اضافہ دمہ سمیت حملوں اور دیگر سانس 47 00:02:23,637 --> 00:02:26,470 کافی سنگین ہو سکتا ہے کہ بیماریوں ہسپتال لوگوں کو بھیجنے کے لئے. 48 00:02:26,470 --> 00:02:28,660 وجون نمائش اور particulate معاملہ بھی 49 00:02:28,660 --> 00:02:31,960 قبل از وقت کے ساتھ منسلک کر دیا گیا متعلقہ سانس کی وجہ سے موت 50 00:02:31,960 --> 00:02:35,690 یا قلبی اثرات سے متعلق. 51 00:02:35,690 --> 00:02:38,940 بچوں، بوڑھوں، کے ساتھ لوگوں پہلے سے موجود سانس کی بیماری 52 00:02:38,940 --> 00:02:42,840 خاص طور پر خطرے میں ہیں ان آلودگی کی صحت اثرات. 53 00:02:42,840 --> 00:02:45,056 >> کافی یہ بہت سنگین ہے، کا کہنا ہے کہ. 54 00:02:45,056 --> 00:02:46,930 اور کے پڑھنے کے لئے پر جانے صرف ایک اقتباس 55 00:02:46,930 --> 00:02:49,370 اور پھر ہم پر ایک نظر لے لیں گے بنیادی مضمرات 56 00:02:49,370 --> 00:02:50,920 ایک گاڑی کے سیاق و سباق میں اس کی. 57 00:02:50,920 --> 00:02:53,730 خاص طور پر، ووکس ویگن تیار اور نصب 58 00:02:53,730 --> 00:02:56,210 نام نہاد میں سافٹ ویئر الیکٹرانک کنٹرول 59 00:02:56,210 --> 00:02:59,320 module-- یا ECM-- کے محسوس کہ ان گاڑیوں 60 00:02:59,320 --> 00:03:03,580 گاڑی کے لئے تجربہ کیا جا رہا تھا جب EPA اخراج کے معیار کے ساتھ عمل. 61 00:03:03,580 --> 00:03:07,510 سمیت مختلف آدانوں کی بنیاد پر سٹیئرنگ وہیل کی پوزیشن، گاڑی 62 00:03:07,510 --> 00:03:11,280 رفتار، انجن کی مدت آپریشن اور barometric دباؤ، 63 00:03:11,280 --> 00:03:13,720 ان آدانوں مختصرا پیرامیٹرز ٹریک 64 00:03:13,720 --> 00:03:17,600 کے لئے استعمال کیا وفاقی ٹیسٹ کے طریقہ کار کے EPA تصدیق کے لئے اخراج کی جانچ 65 00:03:17,600 --> 00:03:18,400 مقاصد. 66 00:03:18,400 --> 00:03:21,850 >> EPA کی اخراج کی جانچ کے دوران، گاڑیاں ECM سافٹ ویئر 67 00:03:21,850 --> 00:03:25,060 پیداوار ہے جس میں سافٹ ویئر بھاگ گیا مطابق اخراج نتائج. 68 00:03:25,060 --> 00:03:28,340 تمام دوسرے اوقات میں، گاڑی ECM سافٹ ویئر 69 00:03:28,340 --> 00:03:31,090 ایک علیحدہ سڑک بھاگ گیا کم جس انشانکن 70 00:03:31,090 --> 00:03:34,360 کی تاثیر مجموعی طور پر اخراج کنٹرول سسٹم، 71 00:03:34,360 --> 00:03:37,864 خاص طور پر منتخب اتپریرک دبلی NOX میں کمی trap-- 72 00:03:37,864 --> 00:03:39,280 جو ہم ایک لمحے میں نظر آئے گا. 73 00:03:39,280 --> 00:03:43,040 NOX کے نتیجے میں، اخراج 10 سے 40 اوقات کے ایک پہلو کی طرف سے اضافہ ہوا ہے 74 00:03:43,040 --> 00:03:47,450 EPA کے مطابق سطح سے اوپر ڈرائیو سائیکل کی قسم پر منحصر. 75 00:03:47,450 --> 00:03:50,800 >> یہ واقعی مطلب ہے، اور تو کیا سافٹ ویئر چلانے کے لئے ماخذ کوڈ 76 00:03:50,800 --> 00:03:53,190 ووکس ویگن کی نہیں ہے ابھی تک عوامی طور، انکشاف کیا گیا 77 00:03:53,190 --> 00:03:56,460 کہ، مؤثر طریقے سے، یہ ہے برابر کہیں اندر ہے 78 00:03:56,460 --> 00:03:57,830 ووکس ویگن کے کوڈ کا. 79 00:03:57,830 --> 00:04:02,200 تو آپ کو ٹیسٹ، اور کیا جا رہا ہے تو کار بعض ماحولیاتی عوامل کا پتہ لگاتا ہے 80 00:04:02,200 --> 00:04:04,330 سٹیئرنگ وہیل کی طرح پوزیشن یا تحریک 81 00:04:04,330 --> 00:04:06,710 یا اس کی کمی کار کی یا اس دوسرے عوامل کی کسی بھی تعداد 82 00:04:06,710 --> 00:04:09,940 اس وقت hypothesized ہے ہیں اس فارمولے کا حصہ بننا، 83 00:04:09,940 --> 00:04:12,370 وہ صرف پر تبدیل مکمل اخراج کنٹرول. 84 00:04:12,370 --> 00:04:15,670 دوسرے الفاظ میں، وہ شروع آلودگی کی کم اتسرجک. 85 00:04:15,670 --> 00:04:18,769 >> ورنہ، ہر دوسرے کی صورت حال میں یہ کیا جا رہا ہے کے طور پر پتہ نہیں ہے جب 86 00:04:18,769 --> 00:04:20,790 تجربہ گاہیں میں، وہ صرف نہیں ہے. 87 00:04:20,790 --> 00:04:24,320 اور اس لئے تم سے زیادہ میں اس کو آسان بنانے کر سکتے ہیں کچھ کے ساتھ ٹھوس pseudocode کے 88 00:04:24,320 --> 00:04:24,820 اس طرح. 89 00:04:24,820 --> 00:04:27,810 پہیوں کا رخ کر رہے ہیں لیکن اگر سٹیئرنگ وہیل، تجویز نہیں ہے 90 00:04:27,810 --> 00:04:30,060 گاڑی سے کچھ پر ہے گھومنے سلنڈر کی قسم 91 00:04:30,060 --> 00:04:32,550 لیکن کچھ قسم میں گودام تجربہ کیا جا رہا، 92 00:04:32,550 --> 00:04:36,070 تو کے طور پر برتاؤ EPA آپ کرنا چاہوں گا. 93 00:04:36,070 --> 00:04:37,960 ورنہ ایسا نہیں کرتے. 94 00:04:37,960 --> 00:04:40,420 تو ایک نظر ڈالیں ایک مختصر ویڈیو ہے کہ 95 00:04:40,420 --> 00:04:45,391 کیا مضمرات پر ایک نظر سے لیتا ہے اصل میکانکی اس کے ہیں. 96 00:04:45,391 --> 00:04:48,620 >> [ویڈیو پلے بیک] 97 00:04:48,620 --> 00:04:52,800 >> جمعہ -آخری EPA اعلان کیا ہے کہ کچھ ووکس ویگن آڈی کاروں 2009 کے درمیان بنایا 98 00:04:52,800 --> 00:04:55,840 اور اس سال کا استعمال کرتے ہوئے ایک نام نہاد شکست آلہ 99 00:04:55,840 --> 00:04:59,060 اخراج قوانین کے ارد گرد حاصل کرنے کے لئے ہوا صاف رکھنے کے لئے ڈیزائن کیا گیا. 100 00:04:59,060 --> 00:05:01,700 لیکن ہے کہ بالکل کیا مطلب ہے؟ 101 00:05:01,700 --> 00:05:04,666 >> ویسے، جدید کاروں درجنوں ہیں ان کے اندر کمپیوٹرز کی. 102 00:05:04,666 --> 00:05:07,040 اور ان کے بعد کچھ کمپیوٹروں افعال سمنوی مدد 103 00:05:07,040 --> 00:05:09,590 زیادہ سے زیادہ کے لئے انجن کے کارکردگی کو یقینی بنانے جبکہ 104 00:05:09,590 --> 00:05:12,340 بہت زیادہ ردی کی ٹوکری میں نہیں ہے کہ راستہ پائپ سے باہر آ رہے. 105 00:05:12,340 --> 00:05:15,170 وہ اصل میں کام کر رہا ہوں اب کئی دہائیوں کے لئے اس طرح. 106 00:05:15,170 --> 00:05:17,380 بنیادی طور پر، ہر حصے ایک جدید کی گاڑی کے انجن کے 107 00:05:17,380 --> 00:05:20,080 ایک سینسر یا کنٹرولر ہے یہ، اور ان کمپیوٹر پر 108 00:05:20,080 --> 00:05:23,460 اعداد و شمار کے ہزاروں کی تعداد میں پڑھ رہے ہیں دوسری سازی ایڈجسٹمنٹ فی اوقات 109 00:05:23,460 --> 00:05:26,220 ہوائی ایندھن کے تناسب کی طرح کہ سلنڈر میں جا رہا ہے. 110 00:05:26,220 --> 00:05:28,730 >> یہ دھوکہ ووکس ویگن اور آڈی ماڈل diesels کے، ہیں 111 00:05:28,730 --> 00:05:30,890 اور diesels کے ایک زیادہ ہے واقعی اہم کمپیوٹر 112 00:05:30,890 --> 00:05:34,030 ہے جس میں کنٹرول پیرامیٹرز، جا unburned ایندھن کی رقم 113 00:05:34,030 --> 00:05:35,200 راستہ میں. 114 00:05:35,200 --> 00:05:36,310 اب جب کہ برا لگتا ہے. 115 00:05:36,310 --> 00:05:39,642 آپ چاہتے ہیں کی طرح نہیں لگتی راستہ میں جانے unburned ایندھن. 116 00:05:39,642 --> 00:05:41,600 لیکن ایک کی صورت میں ڈیزل، آپ ڈھونڈ رھے ہیں 117 00:05:41,600 --> 00:05:46,110 ایک آلہ ہے جو ایک نیٹ ورک NOX کہا جاتا ہے کہ اوشوشیت اور نائٹروجن آکسائڈ کے لئے نیٹ ورک 118 00:05:46,110 --> 00:05:48,880 آلودگی ہوتا ہو دوسری صورت میں فضا میں جانا. 119 00:05:48,880 --> 00:05:53,040 اس NOX نیٹ ورک کا اثر unburned ایندھن کے ساتھ بڑھا ہے. 120 00:05:53,040 --> 00:05:56,650 تو ایک شکست آلہ ایک خصوصی پروگرام ہے ان کمپیوٹرز اندر یہ کر سکتے ہیں 121 00:05:56,650 --> 00:05:59,527 گاڑی اخراج ملاقات کی طرح نظر آتے معیار یہ نہیں ہے اس وقت بھی جب. 122 00:05:59,527 --> 00:06:01,110 ووکس ویگن اس کے ہاتھ پر ایک مسئلہ تھا. 123 00:06:01,110 --> 00:06:04,050 اس ڈیزل انجنوں پر جانا جاتا تھا عظیم ایندھن کی معیشت حاصل کرنے کے لئے، 124 00:06:04,050 --> 00:06:07,510 لیکن NOX ٹریپ صرف اچھی طرح کام کرتا ہے زیادہ ایندھن استعمال کیا جا رہا ہے جب. 125 00:06:07,510 --> 00:06:10,460 تو گاڑی، کا پتہ لگانے کے گا اس ہار آلہ استعمال کرتے ہوئے، 126 00:06:10,460 --> 00:06:13,870 یہ ایک اخراج ہو رہی تھی جب ٹیسٹ، یہ زیادہ ایندھن کا استعمال کریں گے، 127 00:06:13,870 --> 00:06:16,830 اچھی طرح NOX نیٹ ورک کام بنانے، اخراج ٹھیک ہو جائے گا. 128 00:06:16,830 --> 00:06:21,130 لیکن پھر آپ کو، سڑک پر آلہ حاصل بند کر دیتا ہے، اگر آپ کو کم ایندھن جلا رہے ہیں 129 00:06:21,130 --> 00:06:24,256 لیکن تم جتنا 40 اوقات ڈال رہے ہیں ماحول میں زیادہ آلودگی. 130 00:06:24,256 --> 00:06:26,130 لیکن heck کیسے کار یہ تھا کہ جانتے ہیں 131 00:06:26,130 --> 00:06:27,720 اخراج تعمیل کے لئے تجربہ کیا جا رہا؟ 132 00:06:27,720 --> 00:06:30,590 EPA یہ ایک جدید ترین کا کہنا ہے کہ چیزوں کی جانچ پڑتال کہ نظام 133 00:06:30,590 --> 00:06:34,090 سٹیئرنگ وہیل پوزیشن کی طرح، رفتار، انجن پر تھا کتنی دیر تک، 134 00:06:34,090 --> 00:06:35,507 اور یہاں تک کہ وایمنڈلیی دباؤ. 135 00:06:35,507 --> 00:06:37,673 دوسرے الفاظ میں، وہاں تھا کوئی راستہ نہیں اس حادثاتی تھا 136 00:06:37,673 --> 00:06:40,260 سافٹ ویئر تھا کیونکہ پتہ لگانے کے لئے بہت احتیاط سے ڈیزائن 137 00:06:40,260 --> 00:06:41,630 ایک سرکاری اخراج ٹیسٹ. 138 00:06:41,630 --> 00:06:43,588 کہ کچھ بہت سنجیدہ ہے دھوکہ دہی اور ہے 139 00:06:43,588 --> 00:06:45,420 کیوں ووکس ویگن میں ہے اس طرح کے سنگین مصیبت. 140 00:06:45,420 --> 00:06:48,600 اصل میں، ان کے سی ای او، مارٹن ونٹرکورن، صرف نیچے قدم رکھا. 141 00:06:48,600 --> 00:06:49,820 >> تو اس کے بعد کیا ہوتا ہے؟ 142 00:06:49,820 --> 00:06:53,900 ویسے آپ کو نصف ملین میں سے ایک ہیں، تو ڈیزل Jettas، بیٹلس، Golfs، Passats، 143 00:06:53,900 --> 00:06:56,220 یا آڈی A3s، متاثر اچھی خبر ہے 144 00:06:56,220 --> 00:06:57,886 کہ آپ کی گاڑی بھی ڈرائیو کرنے کے لئے محفوظ ہے. 145 00:06:57,886 --> 00:07:00,510 آپ کو اسے دور ڈال کرنے کی ضرورت نہیں ووکس ویگن ایک یاد جاری تک. 146 00:07:00,510 --> 00:07:02,509 لیکن کچھ نقطہ پر وہ کر رہے ہیں شاید کے لئے جا 147 00:07:02,509 --> 00:07:04,230 آپ کی گاڑی کے اندر سافٹ ویئر کو اپ ڈیٹ کرنے. 148 00:07:04,230 --> 00:07:06,927 ایسا ہوتا ہے جب آپ کو ہو سکتا ہے ٹینک کے مطابق کم میل حاصل کرنے کے. 149 00:07:06,927 --> 00:07:09,260 وکیل نے پہلے ہی تیاریاں پکڑ رہے ہیں کلاس ایکشن قانونی مقدموں کے لئے سائن اپ 150 00:07:09,260 --> 00:07:12,500 تو مالکان معاوضہ ہو سکتا ہے مستقبل میں کسی وقت. 151 00:07:12,500 --> 00:07:15,832 لیکن اس لئے نہیں جا رہا جلد ہی کسی بھی وقت ہو. 152 00:07:15,832 --> 00:07:16,711 >> [END پلے بیک] 153 00:07:16,711 --> 00:07:19,960 DAVID J. MALAN: تو یہ اصل میں اٹھاتا ہے ایک دلچسپ بڑی تصویر سوال 154 00:07:19,960 --> 00:07:20,660 کے طور پر پر اعتماد کرنا. 155 00:07:20,660 --> 00:07:21,160 ٹھیک ہے؟ 156 00:07:21,160 --> 00:07:24,300 ہم تمام فونز یا Androids کی ہے یا اپنی جیب میں کچھ سب سے زیادہ امکان 157 00:07:24,300 --> 00:07:26,500 ان دنوں، یا لیپ ٹاپ ہیں کہ ہماری گود پر 158 00:07:26,500 --> 00:07:28,510 بنا چلنے والے سافٹ ویئر ایپل اور مائیکروسافٹ کی طرف سے 159 00:07:28,510 --> 00:07:30,710 دیگر کمپنیوں کے اور bunches. 160 00:07:30,710 --> 00:07:34,240 لیکن ہم کس طرح جانتے ہیں کہ کیا ان سافٹ ویئر کی پیداوار کر رہے ہیں 161 00:07:34,240 --> 00:07:37,680 کیا یہ اصل میں ہے کمپنیوں وہ کر رہے ہیں کا کہنا ہے کہ؟ 162 00:07:37,680 --> 00:07:39,610 >> مثال کے طور پر، جو کرنے کے لئے ہے کا کہنا ہے کہ ہر وقت آپ کو 163 00:07:39,610 --> 00:07:42,200 آپ کے فون پر ایک فون کال لوڈ، اتارنا Android فون یا کی طرح، 164 00:07:42,200 --> 00:07:45,650 اس فون نمبر بھی نہیں ہے کہ کچھ کمپنی کے سرور پر اپ لوڈ کیا جا رہا ہے 165 00:07:45,650 --> 00:07:48,399 کچھ پروگرام آپ کو ہے کیونکہ یہ آپریٹنگ ہے کہ آیا، لکھا 166 00:07:48,399 --> 00:07:51,070 iOS یا لوڈ، اتارنا Android کی طرح کے نظام خود، یا آپ کو ڈاؤن لوڈ کیا ہے کیونکہ 167 00:07:51,070 --> 00:07:53,880 کسی تیسری پارٹی اپلی کیشن کسی نہ کسی طرح سن رہا ہے کہ 168 00:07:53,880 --> 00:07:57,120 ہر چیز کو میں ٹائپ کر رہے ہیں یا سب کچھ آپ کو اصل میں کہہ رہے ہیں. 169 00:07:57,120 --> 00:07:59,500 آپ جانتے ہیں کہ کس طرح، جب تم لوگوں کو بجنا چل رہے ہیں 170 00:07:59,500 --> 00:08:02,590 یا مرتب کرنے کے لئے یقینی بنائیں کہ آپ CS50، کہ کس طرح میں اپنے سافٹ ویئر 171 00:08:02,590 --> 00:08:06,080 آپ کو اس CS50 اپنے عملے کرتے، CS50 لائبریری کی راہ کی طرف، 172 00:08:06,080 --> 00:08:08,690 ہر لاگ ان نہیں کیا گیا ہے کیا تم نے کبھی ملا ہے سٹرنگ 173 00:08:08,690 --> 00:08:10,276 یا ہر آپ کبھی ملا ہے انچ؟ 174 00:08:10,276 --> 00:08:12,900 ویسے، آپ کو یقینی طور نظر کر سکتے ہیں کسی چیز کے لئے منبع کوڈ میں 175 00:08:12,900 --> 00:08:15,233 CS50 لائبریری کی طرح، آپ ماخذ کوڈ کو دیکھ سکتا ہے 176 00:08:15,233 --> 00:08:18,170 لینکس آپریٹنگ سسٹم کے لئے CS50 IDE پر چلنے. 177 00:08:18,170 --> 00:08:23,090 لیکن ایک حیرت انگیز پریزنٹیشن 1984 ء میں واپس دیا گیا 178 00:08:23,090 --> 00:08:26,730 ایک طرف ٹیورنگ ایوارڈ کی وصولی میں نام سے جانا جاتا بہت مشہور کمپیوٹر سائنسدان 179 00:08:26,730 --> 00:08:29,750 نام کین تھامسن as-- جو ٹیورنگ ایوارڈ موصول ہوئی ہے جس 180 00:08:29,750 --> 00:08:33,500 کمپیوٹر سائنس کی طرح ہے نوبل انعام، اگر آپ، 181 00:08:33,500 --> 00:08:35,309 ایک پر ان کے کام کے لئے آپریٹنگ سسٹم کہا جاتا 182 00:08:35,309 --> 00:08:39,039 میں بہت ملتا جلتا ہے جو یونیکس، ہم جو استعمال کیا روح لینکس ہے. 183 00:08:39,039 --> 00:08:41,960 اور سوال میں پوچھا وہ ان بنیادی طور پر قبولیت کی تقریر، 184 00:08:41,960 --> 00:08:44,910 کے لئے فریم ورک نیچے بچھانے سال اور بحث کا سال 185 00:08:44,910 --> 00:08:46,970 اعتماد اور سیکورٹی کے بارے میں، یہ تھا. 186 00:08:46,970 --> 00:08:50,410 کس حد تک چاہئے ایک پر بھروسا رکھتے ہیں کرنے کے لئے ایک ٹکڑا پروگرام اس بیان 187 00:08:50,410 --> 00:08:53,010 کے software-- ٹروجن گھوڑوں کی مفت ہے؟ 188 00:08:53,010 --> 00:08:56,500 شاید اس پر اعتماد کرنے کے لئے زیادہ اہم ہے سافٹ ویئر لکھا جو لوگوں. 189 00:08:56,500 --> 00:08:58,650 >> اور حقیقت میں، ہم سے منسلک ہے بات ہے کہ وہ 190 00:08:58,650 --> 00:09:02,400 اس ایوارڈ کو قبول جب دی CS50 کی ویب سائٹ پر '80s میں 191 00:09:02,400 --> 00:09:04,030 آج کے لئے لیکچرز کے صفحے کے تحت. 192 00:09:04,030 --> 00:09:06,071 آپ دیکھیں گے کیا کیونکہ وہ اصل میں دیتا ہے 193 00:09:06,071 --> 00:09:09,430 کس طرح بھی ایک کافی آسان مثال بجنا یا جو کچھ بھی طرح ایک سنکلک 194 00:09:09,430 --> 00:09:13,950 دوسروں ماضی میں استعمال کیا ہے مرتب، سنکلک ہم میں سرایت تو کیا 195 00:09:13,950 --> 00:09:18,190 خود تو ایک چھوٹی سی ہے استعمال کر رہے ہیں بنیادی طور پر کا کہنا ہے کہ حالت، 196 00:09:18,190 --> 00:09:22,360 آپ اس کوڈ کو استعمال کر رہا ہے کہ محسوس کریں تو GetString تقریب یا میں GetInt 197 00:09:22,360 --> 00:09:26,600 تقریب، آگے بڑھو اور داخل ایک پیچھے کے دروازے یا ایک ٹروجن گھوڑے 198 00:09:26,600 --> 00:09:29,340 اس طرح ہے کہ اس پروگرام اب کچھ سے zeros ہے 199 00:09:29,340 --> 00:09:30,930 اور بدنیتی پر مبنی کچھ کرنا ہے کہ لوگ. 200 00:09:30,930 --> 00:09:33,080 تمام لاگنگ آپ کہ اعداد و شمار کو اپ لوڈ keystrokes کے، 201 00:09:33,080 --> 00:09:35,100 کچھ سرور، یا واقعی کچھ کرنے کے لئے. 202 00:09:35,100 --> 00:09:37,290 >> اور کیا کین تھامسن اپنی گفتگو میں ایسا کرنے پر جاتا ہے 203 00:09:37,290 --> 00:09:40,580 یہاں تک کہ اگر اس کا مظاہرہ کرنے کے لئے ہے آپ ماخذ تک رسائی حاصل ہے 204 00:09:40,580 --> 00:09:43,794 ایک سنکلک کے کوڈ اس بدنیتی، ایسا ہو سکتا ہے 205 00:09:43,794 --> 00:09:46,210 اس کی وجہ سے کوئی فرق نہیں پڑتا یہ چکن اور انڈے ہے 206 00:09:46,210 --> 00:09:49,500 گزشتہ کئی کی حقیقت سال جس compilers کے 207 00:09:49,500 --> 00:09:51,960 خود مرتب کرنے کے لئے استعمال کیا جاتا ہے. 208 00:09:51,960 --> 00:09:55,440 دوسرے الفاظ میں، راستے واپس جب کوئی پہلے سنکلک لکھا ہے تھا. 209 00:09:55,440 --> 00:09:59,060 اور اس کے بعد کسی بھی وقت وہ اپ ڈیٹ کر دیا اس کے منبع کوڈ کو تبدیل کرنے کے کی طرف سے ایک سنکلک، 210 00:09:59,060 --> 00:10:02,020 خصوصیات کا اضافہ اور یہ recompiling ہم جیسے لوگوں کو استعمال کرنے کے لئے، اچھی طرح سے، 211 00:10:02,020 --> 00:10:04,270 وہ پرانے استعمال کر رہے ہیں سنکلک کے ورژن 212 00:10:04,270 --> 00:10:06,370 نئے مرتب کرنے کے لئے سنکلک کے ورژن. 213 00:10:06,370 --> 00:10:08,370 اور آپ کو ایک نظر ڈالیں تو وہ دیا ہے کہ بات پر، 214 00:10:08,370 --> 00:10:10,970 آپ کی وجہ سے اس کو دیکھ لیں گے کہ circularity کے، 215 00:10:10,970 --> 00:10:14,330 آپ اصل میں کیڑے ہو سکتا ہے یا ٹروجن گھوڑوں سافٹ ویئر میں سرایت 216 00:10:14,330 --> 00:10:14,990 ہم استعمال کر رہے ہیں. 217 00:10:14,990 --> 00:10:18,010 اور آپ کو نظر آئے یہاں تک کہ اگر ان پروگراموں کے لئے ماخذ کوڈ، 218 00:10:18,010 --> 00:10:21,550 یہ بھی واضح نہیں ہو سکتا ہے trickery کے اصل میں ہے کیونکہ 219 00:10:21,550 --> 00:10:24,710 ایک میں سے کچھ پرانے ورژن میں کبھی کے بعد کیا گیا ہے کہ سنکلک 220 00:10:24,710 --> 00:10:27,340 ہمارے سافٹ ویئر میں خطرہ انجیکشن. 221 00:10:27,340 --> 00:10:29,740 >> کون سی ہے صرف ہم، کا کہنا ہے کہ واقعی نہیں کر سکتے ہیں اور نہیں کرنا چاہئے 222 00:10:29,740 --> 00:10:32,939 اعتماد سافٹ ویئر ہمارے لیپ ٹاپ پر چلانے کے فونز یا جگہوں میں سے کسی نمبر یا. 223 00:10:32,939 --> 00:10:36,230 اور حقیقت میں، بعد میں جب اس سمسٹر میں ہم ویب پروگرامنگ کے بارے میں بات کرنا شروع 224 00:10:36,230 --> 00:10:38,521 اور اصل کی تعمیر شروع ویب اطلاقات خود، 225 00:10:38,521 --> 00:10:40,285 ہم ان کے بارے میں بات کریں گے خطرات اور دیگر. 226 00:10:40,285 --> 00:10:43,410 اب، آپ کو حیران اور محسوس کیا ہے ہو سکتا ہے ایک چھوٹی سی ڈارت تھا کہ 227 00:10:43,410 --> 00:10:45,842 کلپس میں Vader کی کہ کناروں سے دکھا رہا تھا 228 00:10:45,842 --> 00:10:47,550 ووکس ویگن کے بارے میں. تو آپ کبھی نہیں دیکھا ہے، میں 229 00:10:47,550 --> 00:10:49,190 ہم ہلکا چاہئے سوچا موڈ یہ سب ہے کیونکہ 230 00:10:49,190 --> 00:10:50,780 بہت مایوسی اور خوفناک. 231 00:10:50,780 --> 00:10:52,910 میں واپس دیکھنے کے لئے جا رہا ہوں سپر باؤل 2011 232 00:10:52,910 --> 00:10:55,300 جب کی طرف سے ایک تجارتی Volkswagen-- اور اس 233 00:10:55,300 --> 00:10:59,620 تقریبا again-- ان پر likable ہے ٹی وی پر پہلی بار کے لئے نشر. 234 00:10:59,620 --> 00:11:04,039 یہ 60 دوسرے کلپ میں آپ لطف اندوز ہوں گے لگتا ہے کہ. 235 00:11:04,039 --> 00:11:04,705 [ویڈیو پلے بیک] 236 00:11:04,705 --> 00:11:08,198 [MUSIC - "سٹار وار" سے تھیم] 237 00:11:08,198 --> 00:11:35,643 238 00:11:35,643 --> 00:11:38,138 [کتے چھال] 239 00:11:38,138 --> 00:11:50,114 240 00:11:50,114 --> 00:11:53,607 [کار شروع ہوتا ہے] 241 00:11:53,607 --> 00:12:04,086 242 00:12:04,086 --> 00:12:05,955 [END پلے بیک] 243 00:12:05,955 --> 00:12:06,830 DAVID J. MALAN: جی ہاں. 244 00:12:06,830 --> 00:12:07,663 میں صرف دیکھ رہا تھا. 245 00:12:07,663 --> 00:12:11,360 وہ گاڑی کی خلاف ورزیوں کی فہرست پر ہے. 246 00:12:11,360 --> 00:12:12,000 بالکل ٹھیک. 247 00:12:12,000 --> 00:12:14,040 تو ہم نے کچھ دیکھو ایک لمحے پہلے pseudocode کے. 248 00:12:14,040 --> 00:12:15,380 اور یہاں ایک بڑا ہے pseudocode کے کوڈ کا ٹکڑا 249 00:12:15,380 --> 00:12:16,921 کہ ہم نے ابھی تک چند بار دیکھا ہے. 250 00:12:16,921 --> 00:12:19,970 اور ہم اس کے لئے ایک موقع ہے کا استعمال کرتے ہیں اب ایک نئی پروگرامنگ متعارف کرانے کے لئے 251 00:12:19,970 --> 00:12:23,776 ہم نے کیا ہے کہ ٹیکنالوجی algorithmically ہے دیکھیں 252 00:12:23,776 --> 00:12:25,400 پچھلے ہفتے ہم نے ضم طرح دیکھا جب. 253 00:12:25,400 --> 00:12:28,270 لیکن یہ رسمی طور پر اور کس طرح دیکھتے ہیں ہم اصل کوڈ میں استعمال کر سکتے ہیں 254 00:12:28,270 --> 00:12:30,350 اور پھر ہم اس کا استعمال کرنے جا رہے ہیں سڑک کے نیچے سب سے زیادہ ٹیکنالوجی 255 00:12:30,350 --> 00:12:32,000 بعض دیگر مسائل کو حل کرنے کا امکان. 256 00:12:32,000 --> 00:12:35,790 >> تو یہ پہلا پروگراموں میں سے ایک تھا، ہم کبھی pseudocode کے کوڈ میں ہی سہی، لکھا. 257 00:12:35,790 --> 00:12:37,790 اور کیا اس پروگرام ہمارے کورس ایسا کرنے کی اجازت 258 00:12:37,790 --> 00:12:41,510 ایک فون کی کتاب میں مائیک سمتھ تلاش کرنا تھا. 259 00:12:41,510 --> 00:12:46,216 اور خاص طور پر لائنوں آٹھ میں محسوس اور اس کے جانے کا بیان تھا جس میں 11. 260 00:12:46,216 --> 00:12:48,090 اور حقیقت میں، کچھ زبانوں، ان کے درمیان سی، 261 00:12:48,090 --> 00:12:50,006 اصل میں ایک ہے لفظی ہے کہ بیان 262 00:12:50,006 --> 00:12:52,710 اس کے لئے آپ کی اجازت دیتا ہے جانا ایک مخصوص لائن پر کودنے. 263 00:12:52,710 --> 00:12:55,470 یہ عام طور پر کیونکہ وسلم frowned ہے یہ بہت آسانی سے کیا جا سکتا ہے کے ساتھ زیادتی 264 00:12:55,470 --> 00:12:58,490 اور آپ کو کود شروع کر سکتے ہیں آپ مخالفت کے طور پر سب جگہ پروگرام 265 00:12:58,490 --> 00:13:00,690 قسم کا استعمال کرتے ہوئے کرنے کے لئے منطق اور کنٹرول بہاؤ 266 00:13:00,690 --> 00:13:04,000 ہم صرف کے ساتھ اس طرح اب تک استعمال کیا ہے کہ loops اور حالات اور طرح. 267 00:13:04,000 --> 00:13:08,660 >> لیکن ہم اس الگورتھم کو آسان بنانے کے کر سکتے ہیں pseudocode کے کوڈ میں کے طور پر مندرجہ ذیل ہے. 268 00:13:08,660 --> 00:13:11,250 بجائے اس کے تکراری یا نقطہ نظر looping کے 269 00:13:11,250 --> 00:13:14,160 جہاں ہم واپس جاری رکھنے اور واپس اور واپس تین لائن، 270 00:13:14,160 --> 00:13:18,300 کیوں ہم صرف کی قسم پنٹ اور زیادہ نہیں عام طور پر، آن لائن سات اور 10 میں کہتے ہیں 271 00:13:18,300 --> 00:13:20,570 صرف دو ان لوگوں کی جگہ کے ساتھ لائنوں کے جوڑے، 272 00:13:20,570 --> 00:13:22,810 سمتھ پہلے ہے اور اگر کتاب میں ہم کریں گے 273 00:13:22,810 --> 00:13:25,110 میں مائیک کے لئے تلاش کتاب کے بائیں نصف. 274 00:13:25,110 --> 00:13:28,560 سمتھ میں بعد میں ہے اور اگر کتاب، حق میں مائیک کے لئے تلاش 275 00:13:28,560 --> 00:13:29,540 نصف کتاب. 276 00:13:29,540 --> 00:13:31,180 اور پہلے ہی circularity محسوس. 277 00:13:31,180 --> 00:13:31,680 ٹھیک ہے؟ 278 00:13:31,680 --> 00:13:34,250 میں مائیک کے لئے تلاش کر رہا ہوں فون بک اور پھر 279 00:13:34,250 --> 00:13:37,090 میں نے آخر میں شاید مارا لائن سات یا شاید لائن 10 280 00:13:37,090 --> 00:13:41,089 اور اپنے آپ کو میری ہدایات پر تلاش ہے فون بک کے نصف میں مائیک کے لئے. 281 00:13:41,089 --> 00:13:42,380 ویسے، کس طرح میں مائیک کے لئے تلاش کرتے ہیں؟ 282 00:13:42,380 --> 00:13:44,213 میں کے وسط میں ہوں مائیک، کیوں کے لئے تلاش 283 00:13:44,213 --> 00:13:45,860 آپ کی طرح ایک دائرے کی مانند میں مجھے بھیج رہے ہیں؟ 284 00:13:45,860 --> 00:13:49,590 لیکن یہ ہے کہ کیا کیونکہ ٹھیک ہے مسئلہ کے سائز کے ہو، 285 00:13:49,590 --> 00:13:52,630 7 لائن اور 10 میں لکھا ہے؟ 286 00:13:52,630 --> 00:13:54,989 ہم صرف تلاش نہیں کہہ رہے ہیں مائیک کے لئے، مائیک کے لئے تلاش. 287 00:13:54,989 --> 00:13:56,280 ہم خاص طور پر کیا کہہ رہے ہو؟ 288 00:13:56,280 --> 00:13:58,694 289 00:13:58,694 --> 00:14:01,610 کے بائیں نصف میں اس کے لئے تلاش مؤثر طریقے سے ہے جس میں دائیں نصف 290 00:14:01,610 --> 00:14:03,440 مسئلے کا نصف سائز. 291 00:14:03,440 --> 00:14:07,170 تو یہ ہم اس قسم کی ہیں کہ ٹھیک ہے اس circularity میں مشغول، 292 00:14:07,170 --> 00:14:09,180 اس سرکلر دلیل، کم از کم ہم ہیں کیونکہ 293 00:14:09,180 --> 00:14:11,090 مسئلہ چھوٹے اور چھوٹے بنانے. 294 00:14:11,090 --> 00:14:14,220 اور آخر میں ہم تک پہنچنے کے لئے جا رہے ہیں کہ نام نہاد بنیاد کیس جہاں 295 00:14:14,220 --> 00:14:16,780 ہم صرف ایک صفحہ ہے left-- ہمارے رضاکار گزشتہ ہفتے کے طور پر 296 00:14:16,780 --> 00:14:18,684 did-- ہم ایک صفحہ پر پھر چھوڑ دیا اور ہم ایسا نہیں کرتے 297 00:14:18,684 --> 00:14:21,600 مائیک سمتھ کی تلاش رکھنے کے لئے ہے وہ اس صفحے پر تو ہے کیونکہ 298 00:14:21,600 --> 00:14:23,080 یا وہ نہیں ہے. 299 00:14:23,080 --> 00:14:27,480 >> تو ہم نے اس خیال، اس پر عمل درآمد کر سکتے ہیں کس طرح اصل کوڈ میں circularity کی طرح؟ 300 00:14:27,480 --> 00:14:31,030 ٹھیک ہے، ہم ایک ٹیکنالوجی بیعانہ کر سکتے ہیں کہ عام طور پر تکرار کے طور پر جانا جاتا ہے. 301 00:14:31,030 --> 00:14:33,960 اور ہم میں اس کو دیکھا ہے ضم طرح کے لئے pseudocode گزشتہ ہفتے. 302 00:14:33,960 --> 00:14:37,190 یہ تھا کہ یاد ضم طرح کے لئے pseudocode. 303 00:14:37,190 --> 00:14:40,560 یہ arguably سے بھی آسان ہے بلبلا یا انتخاب یا اندراج کی طرح 304 00:14:40,560 --> 00:14:43,310 صرف سادگی کے لحاظ سے جس کے ساتھ آپ اس کا اظہار کر سکتے ہیں. 305 00:14:43,310 --> 00:14:46,750 >> لیکن اس کی وجہ ہے ہم قسم کے ہیں circularly ہیں 306 00:14:46,750 --> 00:14:51,350 کسی چیز کے لئے تلاش، کہہ پھر اس کے لئے تلاش کی طرف سے. 307 00:14:51,350 --> 00:14:53,960 لیکن ہم تو پر تلاش کر رہے ہیں بائیں نصف یا دائیں نصف 308 00:14:53,960 --> 00:14:56,070 اور پھر آخر میں ہم ہیں اس معاملے میں ضم. 309 00:14:56,070 --> 00:14:58,520 لیکن یہاں، بھی، کے ساتھ ان دونوں قسم کی لائنز، 310 00:14:58,520 --> 00:15:01,320 ہم ایک بار پھر اس کی کیا ضرورت تھی تکرار کا خیال. 311 00:15:01,320 --> 00:15:05,350 اور ٹھوس اس کا مطلب کیا، ایک الگورتھم کے تناظر میں، 312 00:15:05,350 --> 00:15:10,880 ایک الگورتھم پنراورتی ہے اسے استعمال کرتا ہے یا خود بلاتا ہے تو. 313 00:15:10,880 --> 00:15:14,330 >> یا C کے لحاظ سے، ایک تقریب ہے نامی ایک تقریب recursive-- 314 00:15:14,330 --> 00:15:18,510 FOO کو، FOO اگر پنراورتی ہے کہیں اس کے منبع کوڈ میں، 315 00:15:18,510 --> 00:15:21,250 تقریب FOO کہلاتی ہے. 316 00:15:21,250 --> 00:15:25,790 اور یہ کہ تمام FOO کو کبھی کرتا ہے تو برا ہے بار بار خود کہتے ہیں. 317 00:15:25,790 --> 00:15:30,600 FOO کو بالآخر رک جاتا ہے تو کرتا ہے کے طور پر اسے ٹھیک ہے ، کہہ کر، ضم طرح ایک منٹ رکو، 318 00:15:30,600 --> 00:15:32,980 اس مسئلہ سپر ہے چھوٹے، مثال کے طور پر، 319 00:15:32,980 --> 00:15:35,840 یا میں ہوں جسے وہ مل گیا کے لئے تلاش کر، صرف واپسی. 320 00:15:35,840 --> 00:15:41,000 تکراری طور پر، نہ کریں کے cyclically پھر اپنے آپ کو کال. 321 00:15:41,000 --> 00:15:44,200 >> اور اس طرح کی پر ایک نظر ڈالیں یہ اصل میں کام کر سکتے ہیں کہ کس طرح. 322 00:15:44,200 --> 00:15:48,430 تو میں نے آگے اور کھلے جانے کے لئے جا رہا ہوں یہاں دو ماخذ کوڈ مثالیں. 323 00:15:48,430 --> 00:15:50,321 جن میں سے ایک سگما 0 کہا جاتا ہے. 324 00:15:50,321 --> 00:15:52,320 یہ بالکل نہیں ہے پنراورتی، لیکن ڈالیں 325 00:15:52,320 --> 00:15:53,694 ایک اس پروگرام کرتا ہے کو دیکھنے کے. 326 00:15:53,694 --> 00:15:55,737 میں سب سے باہر چھین لیا ہے یہ لیکن تمام کی طرف سے تبصرے 327 00:15:55,737 --> 00:15:58,070 CS50 کی پر ماخذ کوڈ کے ویب سائٹ اگر آپ تبصرہ 328 00:15:58,070 --> 00:15:59,570 بعد میں دوبارہ اس کے ذریعے پڑھنے کے لئے چاہتے. 329 00:15:59,570 --> 00:16:02,010 اور ایک جوڑے کرتے ہیں وویک کے یہاں کی جانچ پڑتال. 330 00:16:02,010 --> 00:16:06,640 >> ، اس کوڈ کے سب سے اوپر تو ہم CS50.h. شامل ہے 331 00:16:06,640 --> 00:16:07,650 یہ کیا کرتا ہے؟ 332 00:16:07,650 --> 00:16:08,990 کیوں یہ یہاں ہے؟ 333 00:16:08,990 --> 00:16:11,740 مناسب عام آدمی کی شرائط میں. 334 00:16:11,740 --> 00:16:12,424 یہ کیا کرتا ہے؟ 335 00:16:12,424 --> 00:16:12,858 جی ہاں. 336 00:16:12,858 --> 00:16:14,160 >> سامعین: GetInt تقریب کام کرتا ہے تاکہ. 337 00:16:14,160 --> 00:16:16,243 >> DAVID J. MALAN: تو اس GetInt تقریب کام کرتا ہے. 338 00:16:16,243 --> 00:16:18,115 اس کے اندر کی وجہ سے فائل، میں، CS50.h جس 339 00:16:18,115 --> 00:16:20,950 ہم طویل عرصے سے پہلے دیکھیں گے اس کے منبع کوڈ کی شرائط، 340 00:16:20,950 --> 00:16:23,270 کے افعال میں سے ایک گروپ ہے declared-- میں GetInt، GetString کے، 341 00:16:23,270 --> 00:16:26,950 others-- اور جب تک ایک گروپ اور ہم اصل میں، اس لائن میں شامل ہے 342 00:16:26,950 --> 00:16:29,320 سنکلک بجنا نہیں ہے یہ موجود ہے کہ جاننے کے لئے جا. 343 00:16:29,320 --> 00:16:32,400 اور ایک ہی لائن کے لئے جاتا ہے INT بیان کیا جاتا ہے جہاں دو 344 00:16:32,400 --> 00:16:35,101 ایک تقریب ہے جس printf، ہم بہت تھوڑا سا استعمال کرتے ہوئے رکھنے. 345 00:16:35,101 --> 00:16:37,850 اب، لائن چار ایک چھوٹا سا funky لگتا ہے یہ صرف ایک لائنر ہے کیونکہ. 346 00:16:37,850 --> 00:16:41,570 یہ کوئی گھوبگھرالی، ایک نیم وقفہ ہے منحنی خطوط وحدانی، اس کے اندر کوئی کوڈ. 347 00:16:41,570 --> 00:16:44,640 لیکن کیا ہم کہتے ہیں کیا گزشتہ ہفتوں میں اس بات کو؟ 348 00:16:44,640 --> 00:16:45,140 جی ہاں. 349 00:16:45,140 --> 00:16:46,060 تو ایک پروٹوٹائپ. 350 00:16:46,060 --> 00:16:48,390 اور کیوں ہم ایک ہیں لگتا ہے جس میں پروٹوٹائپ 351 00:16:48,390 --> 00:16:51,050 ایک چھوٹا سا فالتو ہونا عام طور پر عام طور پر ہم نے 352 00:16:51,050 --> 00:16:53,474 پھر تقریب دیکھیں بعد فائل میں، ٹھیک ہے؟ 353 00:16:53,474 --> 00:16:56,390 تو کیوں نہ ہم آپ کو صرف ہو have-- کرتے اپنے سر scratching لیکن میں لے جاتا ہوں. 354 00:16:56,390 --> 00:16:57,302 جی ہاں. 355 00:16:57,302 --> 00:17:00,000 >> سامعین: [اشراوی] اہم کے بعد تقریب. 356 00:17:00,000 --> 00:17:01,000 DAVID J. MALAN: بالکل. 357 00:17:01,000 --> 00:17:04,089 سنکلک آپ کو جانتا ہے تاکہ آخر میں وضاحت یا نافذ کرے گا 358 00:17:04,089 --> 00:17:06,579 شاید اہم کے بعد اس تقریب،. 359 00:17:06,579 --> 00:17:08,462 اس طرح بجنا اور سب سے زیادہ compilers کے قسم کی گونگے ہیں 360 00:17:08,462 --> 00:17:10,510 اور وہ صرف پتہ چل جائے گا کیا آپ ان کو بتا. 361 00:17:10,510 --> 00:17:12,569 اور آپ کو استعمال کرنا چاہتے ہیں تو سگما نامی ایک تقریب، 362 00:17:12,569 --> 00:17:15,710 آپ کو بہتر سنکلک سکھانے کہ یہ پیشگی موجود. 363 00:17:15,710 --> 00:17:17,970 >> اب، اہم خود، یہاں تک کہ یہ لائنز کے ایک گروپ ہے، اگرچہ، 364 00:17:17,970 --> 00:17:19,839 اب امید ہے کہ بہت واقف ہے. 365 00:17:19,839 --> 00:17:21,942 یہ ایک ایسا جبکہ لوپ ہے زندگی میں جس کا مقصد 366 00:17:21,942 --> 00:17:24,400 یہاں بظاہر ایک حاصل کرنے کے لئے صارف کی طرف سے مثبت عدد صحیح. 367 00:17:24,400 --> 00:17:27,349 اور صرف اس کو تنگ رکھنے یا اس وہ تعاون تک. 368 00:17:27,349 --> 00:17:30,670 پھر لائن 16 میں ہے ایک دلچسپ کال. 369 00:17:30,670 --> 00:17:31,570 IntAnswer. 370 00:17:31,570 --> 00:17:33,710 بائیں ہاتھ پر جو کی طرف مجھے ایک int ہے 371 00:17:33,710 --> 00:17:36,650 Answer-- بلایا store-- سکتا ہے جس میں ذخیرہ کرنے کے لئے جا رہی ہے جس، بظاہر، 372 00:17:36,650 --> 00:17:39,090 سگما کی واپسی کی قیمت. 373 00:17:39,090 --> 00:17:41,840 تو سگما صرف ایک ہے صوابدیدی لیکن بامعنی نام 374 00:17:41,840 --> 00:17:44,500 میں ایک تقریب میں دیا ہے زندگی میں جس کا مقصد 375 00:17:44,500 --> 00:17:47,680 ایک دلیل لینے کے لئے ہے ہم اس کیس میں (ن) کو بلاتا ہوں 376 00:17:47,680 --> 00:17:52,280 اور صرف اس تعداد کی رقم لینے کے لئے علاوہ ہر مثبت نمبر ہے 377 00:17:52,280 --> 00:17:53,200 اس سے چھوٹا. 378 00:17:53,200 --> 00:17:58,140 >> میں نمبر 2 میں منتقل تو سگما، میں شامل کرنا چاہتے ہیں 2 کے علاوہ 1 379 00:17:58,140 --> 00:18:00,240 علاوہ 0-- تاکہ مجھے 3 دیتا ہے نہ 0--. 380 00:18:00,240 --> 00:18:05,320 میں سگما 3 میں منتقل تو، میں چاہتا ہوں 3 علاوہ 2 کے علاوہ 1، جس نے مجھے 6 دیتا. 381 00:18:05,320 --> 00:18:05,900 علی هذا القیاس. 382 00:18:05,900 --> 00:18:09,750 تو یہ صرف تک اضافہ کر دیتی تمام تعداد اس سے کم یا برابر. 383 00:18:09,750 --> 00:18:12,040 >> اب، یہاں ذیل میں جا رہا ہوں جواب پرنٹ کرنے کے لئے. 384 00:18:12,040 --> 00:18:17,330 تو ایک فوری وویک چیک کے طور پر، چلو سگما 0-- ڈاٹ سلیش سگما بنانے 0-- 385 00:18:17,330 --> 00:18:18,690 اور مجھے 2 میں ٹائپ کریں. 386 00:18:18,690 --> 00:18:19,960 اور بیشک میں 3 حاصل. 387 00:18:19,960 --> 00:18:21,240 مجھے 3 میں ٹائپ کریں. 388 00:18:21,240 --> 00:18:22,860 میں یقینا 6 حاصل. 389 00:18:22,860 --> 00:18:27,636 اور کسی کو بھی فوری طور پر ریاضی کر سکتے ہیں تو، میں نے حاصل کیا جا رہا ہوں 50 کیا ہے؟ 390 00:18:27,636 --> 00:18:29,839 >> سامعین: [اشراوی]. 391 00:18:29,839 --> 00:18:30,880 DAVID J. MALAN: ٹھیک ہے، کوئی. 392 00:18:30,880 --> 00:18:33,340 لیکن 1،275 خوبصورت قریب ہے جس میں. 393 00:18:33,340 --> 00:18:38,850 تو یہ 50 کرنے کے نتیجہ ہے کے علاوہ 49 کے علاوہ 48 کے علاوہ 47 کے علاوہ 46 394 00:18:38,850 --> 00:18:40,349 1 تمام طریقے سے نیچے. 395 00:18:40,349 --> 00:18:41,390 تو ہے کہ تمام سگما ہے. 396 00:18:41,390 --> 00:18:43,350 لیکن ہم نے کس طرح دیکھتے ہیں اب اس پر عمل کیا. 397 00:18:43,350 --> 00:18:45,790 یہاں تو نیچے تقریب خود ہے. 398 00:18:45,790 --> 00:18:49,000 یہ حاصل کرنے کے لئے نہیں لگ رہا ہے کچھ ابھی تک تکرار کے ساتھ کیا کرنا. 399 00:18:49,000 --> 00:18:51,070 اصل میں، ہم نے ایک استعمال کر رہے ہیں پرانے اسکول ٹیکنالوجی. 400 00:18:51,070 --> 00:18:56,680 میں ایک متغیر کہا جاتا رقم کی ابتدا کر رہا صفر کے، تو میں یہاں ایک foreloop ہے، 401 00:18:56,680 --> 00:19:00,790 اور میں نامی ایک int اعلان کر رہا ہوں میں، 1-- کے برابر مقرر کرنے 402 00:19:00,790 --> 00:19:04,080 میں اس کے برابر مقرر کر سکتے ہیں اگرچہ صفر، لیکن میں اس کے علاوہ کر رہا ہوں کے بعد، 403 00:19:04,080 --> 00:19:05,340 یہ صفر یا ایک ہے تو کسے پرواہ ہے. 404 00:19:05,340 --> 00:19:06,660 یہ کوئی اثر نہیں پڑے جا رہا ہے. 405 00:19:06,660 --> 00:19:10,110 >> لہذا میں جب تک میں ہے کے طور پر iterating رہا ہوں سے کم یا میٹر کے برابر ہے جس 406 00:19:10,110 --> 00:19:11,671 میں منظور کیا گیا تھا کہ دلیل ہے. 407 00:19:11,671 --> 00:19:13,670 اور پھر میں رکھنے I. اور بصیرت incrementing کی 408 00:19:13,670 --> 00:19:20,010 لوپ کے تمام میں رقم کر رہا ہے کر رہا ہوں کے علاوہ میں برابر ہے اور یہ جان بوجھ ہے. 409 00:19:20,010 --> 00:19:22,326 میں اس میں، ایسا کرنے کے لئے نہیں کرنا چاہتے کیس، رقم پلس پلس کی طرح. 410 00:19:22,326 --> 00:19:24,790 میں واقعی میں شامل کرنا چاہتے ہیں میں موجودہ قیمت 411 00:19:24,790 --> 00:19:28,190 جس میں بڑے اور بڑے ہو رہی رکھتا ہے اور چلانے اعداد و شمار کے بڑے. 412 00:19:28,190 --> 00:19:30,210 >> اور پھر میں نے رقم واپس. 413 00:19:30,210 --> 00:19:33,850 اور اس کا جواب قدر رقم ہو جاتا ہے. 414 00:19:33,850 --> 00:19:35,282 اور پھر میں نے اسے باہر پرنٹ. 415 00:19:35,282 --> 00:19:37,740 تو ایک موقع یہاں ہے، اگرچہ، قسم کی آسان بنانے کے لئے 416 00:19:37,740 --> 00:19:41,260 اس کوڈ تصوراتی اور دھچکا کی قسم سے ایک ہے 417 00:19:41,260 --> 00:19:43,250 کے معاملے میں کوئی اعتراض سادگی کرتایہ اگرچہ 418 00:19:43,250 --> 00:19:45,700 الگ الگ کرنے کیلئے ایک جبکہ لیتا ہے کیوں اس کی تعریف 419 00:19:45,700 --> 00:19:47,330 ان چھوٹے مثالوں میں طاقتور ہے. 420 00:19:47,330 --> 00:19:50,380 یہاں تو one-- سگما ہے اس کوڈ کے دوسرے ورژن. 421 00:19:50,380 --> 00:19:55,290 اوپر سب کچھ اتنی ایک جیسی ہے کہ ایک ہی کہانی سے پہلے کے طور پر لاگو ہوتا ہے. 422 00:19:55,290 --> 00:19:59,220 لیکن اب دیکھو سگما کے نفاذ جس 423 00:19:59,220 --> 00:20:05,040 میں صرف ان کے نیچے آئی ہے لائنوں کوڈ کے چار لائنوں، واقعی، 424 00:20:05,040 --> 00:20:06,980 کے علاوہ کچھ گھوبگھرالی منحنی خطوط وحدانی اور سفید جگہ. 425 00:20:06,980 --> 00:20:07,930 >> لیکن میں کیا کر رہا ہوں؟ 426 00:20:07,930 --> 00:20:11,050 میٹر سے کم یا برابر ہے صفر، میں قسم کی ہینڈل کرنے کی ضرورت 427 00:20:11,050 --> 00:20:12,490 کہ سپر سادہ کیس. 428 00:20:12,490 --> 00:20:15,450 اور تم نے مجھے صفر یا کچھ ہاتھ تو ، صرف عجیب ہے جس کے منفی 429 00:20:15,450 --> 00:20:17,909 میں صرف منمانے جا رہا ہوں لیکن مسلسل صفر واپس. 430 00:20:17,909 --> 00:20:20,200 میں نے یہ بات نہیں کرنا چاہتا کچھ عجیب لامحدود میں حاصل 431 00:20:20,200 --> 00:20:21,810 کیونکہ ایک منفی قدر کے لوپ. 432 00:20:21,810 --> 00:20:25,070 تم مجھے دے تو میں صرف یہ کہہ رہا ہوں صفر یا اس سے کم، میں صفر واپس آ رہا ہوں. 433 00:20:25,070 --> 00:20:28,220 >> کہ ہے کیونکہ لیکن یہ اچھی بات ہے فون بک کے کہ ایک صفحے 434 00:20:28,220 --> 00:20:28,790 کہ چھوڑ دیا ہے. 435 00:20:28,790 --> 00:20:32,660 میں ایک بہت ہی خاص مسئلہ دور کاٹ رہا ہوں اور تکراری چیز بلا نہیں. 436 00:20:32,660 --> 00:20:36,580 لیکن اوپر 31 میں، کیا میں کیا کر رہے ہیں؟ 437 00:20:36,580 --> 00:20:39,780 قوسین صرف رکھ رہے ہیں چیزیں، امید ہے کہ، ایک چھوٹا سا واضح. 438 00:20:39,780 --> 00:20:42,110 لیکن میں کیا کر رہا ہوں ہوں ہے m-- آرہے ہیں جو کچھ بھی 439 00:20:42,110 --> 00:20:45,790 آپ me-- علاوہ ہاتھ m-- معذرت کی قدر، 440 00:20:45,790 --> 00:20:49,052 علاوہ میٹر مائنس 1 سگما کی قدر. 441 00:20:49,052 --> 00:20:50,010 تو اس کا کیا مطلب ہے؟ 442 00:20:50,010 --> 00:20:53,965 آپ کو ان پٹ کے طور پر مجھے نمبر 3 دیتے ہیں تو، جواب میں آخر میں حاصل کرنا چاہتے ہیں 443 00:20:53,965 --> 00:20:57,307 3 کے علاوہ 2 کے علاوہ 1 مجھے 6 فراہم کرتا ہے کیونکہ 6. 444 00:20:57,307 --> 00:20:59,390 لیکن میں کے بارے میں کیسے لگتا ہے اس کوڈ کے لئے کس طرح چل رہا ہے؟ 445 00:20:59,390 --> 00:21:03,070 میں سگما فون پہلی بار اور میں، قیمت 3 میں منتقل 446 00:21:03,070 --> 00:21:07,960 کہ ایک ٹکڑے پر کہہ طرح ہے کاغذ کی، یہاں قیمت 3 447 00:21:07,960 --> 00:21:09,920 اور میں سگما کے طور پر اس منظور کیا گیا ہے. 448 00:21:09,920 --> 00:21:13,090 3 واضح طور پر ایسا نہیں 0 سے کم ہے اگر شرط لاگو نہیں ہوتا. 449 00:21:13,090 --> 00:21:14,020 ورنہ کرتا. 450 00:21:14,020 --> 00:21:14,990 تو میں کیا کروں؟ 451 00:21:14,990 --> 00:21:19,902 میں ہے جو، میٹر واپس کرنا چاہتے ہیں میٹر مائنس 1 کے 3، کے علاوہ سگما. 452 00:21:19,902 --> 00:21:21,110 تو مجھے اس کا ٹریک رکھنے کی اجازت. 453 00:21:21,110 --> 00:21:22,710 میں اس ڈال کرنے کے لئے جا رہا ہوں کاغذ کا ٹکڑا نیچے. 454 00:21:22,710 --> 00:21:24,668 اور کیا قیمت، ہونا واضح، میں منتقل کرنے کے لئے جا رہا ہوں 455 00:21:24,668 --> 00:21:26,540 کہانی میں اس وقت سگما میں؟ 456 00:21:26,540 --> 00:21:28,080 کیا تعداد؟ 457 00:21:28,080 --> 00:21:28,610 2، ٹھیک ہے؟ 458 00:21:28,610 --> 00:21:29,670 3 مائنس 1 2 ہے. 459 00:21:29,670 --> 00:21:32,000 تو میں صرف ایک چھوٹا سا کی ضرورت ہے یہاں کاغذ کے سکریپ. 460 00:21:32,000 --> 00:21:33,931 تو اب سگما دوبارہ بلایا جا رہا ہے. 461 00:21:33,931 --> 00:21:35,930 اور میں نے جان بوجھ ڈال دیا ہے اس کے نیچے ہے کیونکہ 462 00:21:35,930 --> 00:21:38,070 قسم کی روک طرح کہانی کے اس ورژن 463 00:21:38,070 --> 00:21:40,720 اب میں مرکوز ہوں کیونکہ میٹر مائنس 1 سگنل پر. 464 00:21:40,720 --> 00:21:42,660 تو میٹر 3، میٹر تھا مائنس 1 2. 465 00:21:42,660 --> 00:21:45,110 تو یہاں میں منظور کیا گیا ہے کہ 2. 466 00:21:45,110 --> 00:21:48,510 2 ظاہر ہے کے مقابلے میں کم نہیں ہے 0 تو اس صورت لاگو نہیں ہوتا. 467 00:21:48,510 --> 00:21:53,445 ورنہ میں یہ کون سی، میٹر واپس کیا قیمت کی بات، کے علاوہ سگما؟ 468 00:21:53,445 --> 00:21:56,160 469 00:21:56,160 --> 00:21:59,650 تو سگما کے 1-- میٹر ہے کیونکہ اگر اب 2 تو 2 مائنس 1 1. 470 00:21:59,650 --> 00:22:01,950 تو اب میں صرف قیمت 1. 471 00:22:01,950 --> 00:22:04,810 میں صرف تعداد کو منظور کر رہا ہوں تقریب sigma-- 1 472 00:22:04,810 --> 00:22:09,120 یا خود یہاں تو 1 ظاہر نہیں ہے صفر سے بھی کم، اب بھی لاگو نہیں ہوتا. 473 00:22:09,120 --> 00:22:12,970 >> ورنہ واپسی 1 پلس کیا سگما؟ 474 00:22:12,970 --> 00:22:13,470 0. 475 00:22:13,470 --> 00:22:14,678 تو مجھے صرف یاد رکھیں کہ. 476 00:22:14,678 --> 00:22:15,920 میں بعد میں واپس اس سے ملے گی. 477 00:22:15,920 --> 00:22:18,060 اب میں آگے اور جوٹ جانے کے لئے جا رہا ہوں تعداد 0 نیچے ہے کیونکہ 478 00:22:18,060 --> 00:22:19,470 میری دلیل یا پیرامیٹر. 479 00:22:19,470 --> 00:22:22,400 میں تعداد 0 منظور ہوں اور آخر میں اس کے عمل 480 00:22:22,400 --> 00:22:25,760 کے صرف اپنے اشتھار بار بار Nauseum جو کیا کیونکہ ختم ہے 481 00:22:25,760 --> 00:22:28,820 میں اس 0 دیکھ کر ایک بار میں نے فوری طور کروں؟ 482 00:22:28,820 --> 00:22:29,790 میں صفر واپس. 483 00:22:29,790 --> 00:22:31,790 تو اب آپ کی کہانی ماضی کے لئے ہے. 484 00:22:31,790 --> 00:22:34,430 >> اب وقت میں پیچھے کی طرف جاتے ہیں، سب سے زیادہ حال ہی میں بات کیا تھی 485 00:22:34,430 --> 00:22:36,670 آپ لفظی تھے تو میں نے کیا ایک ویڈیو پر rewinding؟ 486 00:22:36,670 --> 00:22:41,630 میں سب سے زیادہ حال ہی میں لینے کے لئے جا رہا ہوں 1 اور یہ کہ میرے 1 دیتا ہے پلس 0 1 ہے. 487 00:22:41,630 --> 00:22:44,100 میں پر rewinding رکھنا تو کہانی، کہ مجھے دینے جا رہا ہے 488 00:22:44,100 --> 00:22:46,880 1 جس میں 2 کے علاوہ اس کو چلانے کی قیمت،. 489 00:22:46,880 --> 00:22:47,789 تو ہے کہ 3. 490 00:22:47,789 --> 00:22:49,330 اور پھر میں لپیٹنے رکھنے کے لئے جا رہا ہوں. 491 00:22:49,330 --> 00:22:54,220 میں سب سے پہلے نمبر نیچے رکھ جب 3-- تو 3 کے علاوہ 3 سے 6 مجھے دیتا ہے. 492 00:22:54,220 --> 00:22:57,272 >> اور اب، آپ rewound ہے تو اس نقطہ تک ویڈیو، 493 00:22:57,272 --> 00:22:58,980 یہ تھا پہلا سوال میں نے پوچھا. 494 00:22:58,980 --> 00:23:01,450 3 منظور کیا جب، 3 سگما کیا ہے؟ 495 00:23:01,450 --> 00:23:04,204 یہ واقعی 6، کی رقم ہے کاغذ کے ان تمام ٹکڑے ٹکڑے. 496 00:23:04,204 --> 00:23:07,120 کہ ایک چھوٹی سی لیتا ہے تو جبکہ ٹھیک ہے، آپ کے دماغ کے ارد گرد لپیٹ. 497 00:23:07,120 --> 00:23:10,700 لیکن یہ چھوٹی سی ایک تھا پر غور میں سجا دیئے کہ بہت جان بوجھ کر کیا گیا تھا 498 00:23:10,700 --> 00:23:12,990 ایک دوسرے کے سب سے اوپر پر ان کی تعداد. 499 00:23:12,990 --> 00:23:17,440 یہ ایک طرح کی قسم ہے وقت میں ایک ریکارڈ میموری، 500 00:23:17,440 --> 00:23:19,940 ایک ویڈیو میں ایک Scrubber کے کی طرح، میں واقعی میں ماضی کر سکتے ہیں. 501 00:23:19,940 --> 00:23:24,350 اور ہم واپس آ جا رہے ہیں صرف ایک چھوٹا سا تھوڑا سا میں اس استعارہ. 502 00:23:24,350 --> 00:23:28,240 >> لیکن سب سے پہلے، یہ وہاں ہے کہ باہر کر دیتا گیکس اور مضحکہ خیز لوگوں کی ایک بہت، 503 00:23:28,240 --> 00:23:29,614 میں نے گوگل پر، لگتا ہے. 504 00:23:29,614 --> 00:23:31,530 گے بہت ہے کسی ایسے شخص ہیں Googling ذہن میں اچھا 505 00:23:31,530 --> 00:23:34,270 صرف ایک لمحے کے لئے سائن اپ آ رہے ہیں اور مجھ سے کچھ کے لئے تلاش میں مدد؟ 506 00:23:34,270 --> 00:23:35,650 بہت، بہت کم اہم. 507 00:23:35,650 --> 00:23:37,870 نہیں ہے کوئی جو شاید، پہلے آنے. 508 00:23:37,870 --> 00:23:38,370 ٹھیک ہے. 509 00:23:38,370 --> 00:23:39,030 جی ہاں؟ 510 00:23:39,030 --> 00:23:39,530 آ جاؤ. 511 00:23:39,530 --> 00:23:41,410 ذیل آو. 512 00:23:41,410 --> 00:23:42,183 آپ کا نام کیا ہے؟ 513 00:23:42,183 --> 00:23:42,870 >> SAM: سیم. 514 00:23:42,870 --> 00:23:44,290 >> DAVID J. MALAN: سیم، نیچے آو. 515 00:23:44,290 --> 00:23:45,320 یہ وہی ہے. 516 00:23:45,320 --> 00:23:46,280 آپ سے مل کر خوشی ہوئی. 517 00:23:46,280 --> 00:23:46,780 ارے. 518 00:23:46,780 --> 00:23:47,580 پر آئے. 519 00:23:47,580 --> 00:23:51,290 تو تمام میں نے آپ کو، تو ایسا کرنے کی ضرورت آپ، سیم، یہاں گوگل سکتا ہے. 520 00:23:51,290 --> 00:23:53,240 آپ اصطلاح تکرار کے لئے تلاش کر سکتے ہیں؟ 521 00:23:53,240 --> 00:23:55,770 522 00:23:55,770 --> 00:23:56,270 خراب نہ کرو. 523 00:23:56,270 --> 00:23:59,940 524 00:23:59,940 --> 00:24:00,970 >> اور اب ہاں let's--. 525 00:24:00,970 --> 00:24:03,380 ٹھیک ہے اس پر کلک کریں. 526 00:24:03,380 --> 00:24:04,315 بہتر ہے پر کلک کریں. 527 00:24:04,315 --> 00:24:07,020 528 00:24:07,020 --> 00:24:08,020 آہ، اسے حاصل. 529 00:24:08,020 --> 00:24:08,520 نہیں؟ 530 00:24:08,520 --> 00:24:09,050 ٹھیک ہے. 531 00:24:09,050 --> 00:24:10,430 تو ایک جوڑے دوسروں کرتے ہیں. 532 00:24:10,430 --> 00:24:12,830 متعلقہ اتنا نہیں تعلیمی یہاں، لیکن آپ کو کرنا پڑے 533 00:24:12,830 --> 00:24:14,520 کبھی anagram کے لئے گوگل کی تلاشی لی؟ 534 00:24:14,520 --> 00:24:15,280 >> SAM: نمبر 535 00:24:15,280 --> 00:24:15,520 >> DAVID J. MALAN: ٹھیک ہے. 536 00:24:15,520 --> 00:24:17,186 anagram بجائے تکرار کے لئے تلاش کریں. 537 00:24:17,186 --> 00:24:22,540 538 00:24:22,540 --> 00:24:23,790 کس طرح کے بارے میں ترچھا. 539 00:24:23,790 --> 00:24:25,515 کیا تم نے کبھی ترچھا کے لئے تلاش؟ 540 00:24:25,515 --> 00:24:29,260 541 00:24:29,260 --> 00:24:32,692 اب، اس سے تھوڑا مشکل ہے دیکھتے ہیں لیکن امید ہے کہ ٹھیک everything's--. 542 00:24:32,692 --> 00:24:34,150 یہ صرف آپ کو اور مجھے اس سے لطف اندوز ہے. 543 00:24:34,150 --> 00:24:34,690 ٹھیک ہے. 544 00:24:34,690 --> 00:24:38,950 >> تو آخر، اس one's-- یہ ایک چھوٹا سا ترچھا ہے. 545 00:24:38,950 --> 00:24:40,810 اب ایک بیرل رول کرتے. 546 00:24:40,810 --> 00:24:44,460 547 00:24:44,460 --> 00:24:45,310 کمال. 548 00:24:45,310 --> 00:24:45,910 بالکل ٹھیک. 549 00:24:45,910 --> 00:24:47,110 بگ سیم لئے آپ کا شکریہ. 550 00:24:47,110 --> 00:24:49,416 یہاں تم جاؤ. 551 00:24:49,416 --> 00:24:50,400 شکریہ. 552 00:24:50,400 --> 00:24:52,807 >> تو کیا میں چل رہا ہے ان بیوکوف مثالوں کے؟ 553 00:24:52,807 --> 00:24:55,640 تو واقعی، کی ہڈ کے نیچے کوڈ کی لائنوں کی گوگل کی لاکھوں 554 00:24:55,640 --> 00:24:58,860 بظاہر اگر چند پاگل ہے بنیادی طور پر ہیں کہ حالات 555 00:24:58,860 --> 00:25:01,160 صارف ہے اگر جانچ پڑتال اس جملے میں ٹائپ، 556 00:25:01,160 --> 00:25:03,760 شاید لے لی ہے کہ کچھ وقت کی ایک nontrivial نجی رقم 557 00:25:03,760 --> 00:25:06,080 صرف لاگو کرنے کے لئے اس طرح دل لگی ہو. 558 00:25:06,080 --> 00:25:08,430 لیکن یہ فوڑے سب ہڈ کے نیچے کے نیچے. 559 00:25:08,430 --> 00:25:11,570 لیکن، کورس کے، تکرار geekier سے زیادہ ہے 560 00:25:11,570 --> 00:25:13,880 ان خصوصی چالوں کے درمیان مثال کے طور پر. 561 00:25:13,880 --> 00:25:16,880 اور بے شک وہاں دوسروں وہاں سے باہر ہے کے ساتھ ساتھ ہم شاید ہے کہ بھی نہیں 562 00:25:16,880 --> 00:25:18,230 ابھی تک دریافت کیا. 563 00:25:18,230 --> 00:25:22,830 >> تو ایک نظر ڈالیں، یا کے بارے میں غور اب مندرجہ ذیل پروگرام، 564 00:25:22,830 --> 00:25:24,830 اور یقینی طور پر کوئی قبضہ آپ کے باہر نکلنے کا راستہ پر ان میں سے. 565 00:25:24,830 --> 00:25:28,820 میں آگے جانے کے لئے جا رہا ہوں اور ہے کہ ایک پروگرام کو کھولنے 566 00:25:28,820 --> 00:25:30,920 دونوں اقدار کا تبادلہ کرنے کی کوشش کرنے کے لئے جا. 567 00:25:30,920 --> 00:25:33,210 ہم وہاں جانے سے پہلے، یہ کرتے ہیں. 568 00:25:33,210 --> 00:25:38,500 ہم ایک سے زیادہ حاصل کر سکتے ہیں رضاکار، مجھے لگتا ہے کہ؟ 569 00:25:38,500 --> 00:25:40,480 آپ رضاکارانہ کام کرنا چاہتے ہیں؟ 570 00:25:40,480 --> 00:25:40,980 نہیں؟ 571 00:25:40,980 --> 00:25:41,890 اپ چلو. 572 00:25:41,890 --> 00:25:42,390 اپ چلو. 573 00:25:42,390 --> 00:25:42,890 بالکل ٹھیک. 574 00:25:42,890 --> 00:25:44,136 تو آپ کا نام کیا ہے؟ 575 00:25:44,136 --> 00:25:44,810 >> لارین: لارین. 576 00:25:44,810 --> 00:25:45,768 >> DAVID J. MALAN: لارین. 577 00:25:45,768 --> 00:25:46,890 ، اپ لارین چلو. 578 00:25:46,890 --> 00:25:50,140 تو لارین کیا جا رہا ہے مندرجہ ذیل کے طور پر یہاں چیلنج. 579 00:25:50,140 --> 00:25:52,310 آپ سے مل کر خوشی ہوئی. 580 00:25:52,310 --> 00:25:55,730 تو لارین یہاں سامنے ہے اس کی دو خالی کپ. 581 00:25:55,730 --> 00:25:57,570 اور ہم نے کچھ اورینج رس اور کچھ دودھ 582 00:25:57,570 --> 00:26:00,301 اور ہم جا رہے ہیں آگے اور مندرجہ ذیل کام کریں. 583 00:26:00,301 --> 00:26:01,550 ہم صرف اس کو بھرنے کے لئے جا رہے ہیں. 584 00:26:01,550 --> 00:26:07,840 یہاں دودھ کے چند ونس اور چلو یہاں ایک چھوٹا سا سنتری کا رس بھرنے. 585 00:26:07,840 --> 00:26:11,475 >> اور سب کے سامنے میں ان سامعین کے اراکین، 586 00:26:11,475 --> 00:26:13,550 یہ کپ کے دونوں اقدار کا تبادلہ. 587 00:26:13,550 --> 00:26:16,970 دودھ کپ میں سنتری کا رس ڈال دیا اور سنتری کا رس کپ میں دودھ. 588 00:26:16,970 --> 00:26:22,380 589 00:26:22,380 --> 00:26:26,150 تم پر تھے تو آپ کو یہ کروں گا کے لئے کس طرح گھر اور دیگر سامان تک رسائی حاصل تھی؟ 590 00:26:26,150 --> 00:26:27,400 لارین: ایک کپ میں ڈال دیا. 591 00:26:27,400 --> 00:26:28,191 DAVID J. MALAN: ٹھیک ہے. 592 00:26:28,191 --> 00:26:31,940 تو ایک عارضی ہے دو متغیر، ہم تو. 593 00:26:31,940 --> 00:26:35,871 اور اب آگے بڑھو اور پر عمل درآمد یہ وہی گماگمن طریقہ کار. 594 00:26:35,871 --> 00:26:36,370 بہت اچھا. 595 00:26:36,370 --> 00:26:41,490 ہم عارضی میں OJ ڈال دیا ہے متغیر، OJ متغیر میں دودھ، 596 00:26:41,490 --> 00:26:44,481 اور اب عارضی متغیر دودھ متغیر میں. 597 00:26:44,481 --> 00:26:44,980 ٹھیک ہے. 598 00:26:44,980 --> 00:26:48,740 تو بہت اچھی طرح سے اب تک کیا. 599 00:26:48,740 --> 00:26:50,990 تو یہ ہے کہ منعقد out-- دیتا صرف ایک لمحے کے لئے سوچا. 600 00:26:50,990 --> 00:26:54,479 یہاں، صرف تھوڑا سا اسے GEEK، اس اسی C کوڈ جائے گا 601 00:26:54,479 --> 00:26:55,520 ہم صرف لاگو. 602 00:26:55,520 --> 00:26:58,650 ہم دو آدانوں، A اور B، دونوں تھا جس میں ہم صرف سادگی کے لئے کہیں گے 603 00:26:58,650 --> 00:26:59,260 INT کی. 604 00:26:59,260 --> 00:27:02,780 میں تبادلہ کرنا چاہتے ہیں تو، یہاں محسوس دو متغیر، A اور B کی اقدار، 605 00:27:02,780 --> 00:27:06,890 بیشک ہم نے ایک درمیانی کی ضرورت ہے، ایک عارضی متغیر، ایک عارضی کپ، 606 00:27:06,890 --> 00:27:10,830 جس میں اقدار میں سے ایک ڈال تاکہ ہم اس کے لئے ایک پلیس ہولڈر ہے. 607 00:27:10,830 --> 00:27:13,480 لیکن پھر کوڈ بالکل وہی جو ہے لارین کے طور پر یہاں لاگو. 608 00:27:13,480 --> 00:27:15,500 >> اب، صرف ایک حاصل کرنے کے لئے تھوڑا پاگل، باہر کر دیتا ہے 609 00:27:15,500 --> 00:27:20,930 آپ کے بغیر ایسا کر سکتے ہیں کہ ایک عارضی متغیر. 610 00:27:20,930 --> 00:27:24,870 اگرچہ، ہم جا رہے ہیں، مناسب طریقے سے ایسا کرنے کے لیے کچھ کیمسٹری کے ساتھ دھوکہ کرنے کے لئے. 611 00:27:24,870 --> 00:27:26,380 ہم یہاں کچھ اضافی کپ ہے. 612 00:27:26,380 --> 00:27:29,600 تو قریب ترین بات یہ ہے کہ لگتا ہے دودھ اور پانی perhaps-- طرح 613 00:27:29,600 --> 00:27:34,090 یا دودھ اور OJ-- ہم کچھ ہے ہے پانی، تو ہم نے اس سے ایک کو بھر دیں گے 614 00:27:34,090 --> 00:27:36,486 واضح پانی کے چند ایک ونس کے ساتھ. 615 00:27:36,486 --> 00:27:38,332 کہ بہت زیادہ شاید ہے. 616 00:27:38,332 --> 00:27:38,832 جی ہاں. 617 00:27:38,832 --> 00:27:39,934 کہ بہت زیادہ یقینی طور پر ہے. 618 00:27:39,934 --> 00:27:40,600 ایک سیکنڈ رکو. 619 00:27:40,600 --> 00:27:43,520 620 00:27:43,520 --> 00:27:48,420 >> اور اب ہم مجھے یاد کے طور پر، جس میں تیل، ہے مڈل اسکول کیمسٹری کلاس سے، 621 00:27:48,420 --> 00:27:49,990 امید ہے کہ یہ پانی کے ساتھ مکس نہیں. 622 00:27:49,990 --> 00:27:53,650 لیکن اس قسم کی قسم کی دودھ اور OJ کی طرح لگتا ہے. 623 00:27:53,650 --> 00:27:55,760 اب تو، استعمال کرتے ہوئے بغیر ایک عارضی متغیر، 624 00:27:55,760 --> 00:27:59,260 آپ کو ان دونوں اقدار کا تبادلہ کر سکتے ہیں؟ 625 00:27:59,260 --> 00:28:03,884 ، پانی کے کپ میں چلا جاتا ہے تو تیل پانی تیل کپ میں چلا جاتا ہے. 626 00:28:03,884 --> 00:28:04,800 لارین: کوئی دیگر کپ؟ 627 00:28:04,800 --> 00:28:05,940 DAVID J. MALAN: کوئی دیگر کپ. 628 00:28:05,940 --> 00:28:07,860 اور میں واقعی میں نہیں ہے اس سال سے پہلے اس کا تجربہ کیا 629 00:28:07,860 --> 00:28:10,110 اس کی مرضی تو مجھے نہیں معلوم اصل میں کیمیائی کام. 630 00:28:10,110 --> 00:28:16,130 631 00:28:16,130 --> 00:28:18,650 ایسا کرنے کے لئے توقع نہیں تھی. 632 00:28:18,650 --> 00:28:19,761 یہ کام کر رہا ہے؟ 633 00:28:19,761 --> 00:28:20,260 بالکل ٹھیک. 634 00:28:20,260 --> 00:28:20,990 تو الگ؟ 635 00:28:20,990 --> 00:28:21,490 اچھا. 636 00:28:21,490 --> 00:28:24,714 اب ہم حاصل کرنے کے لئے دیگر کپ میں پانی. 637 00:28:24,714 --> 00:28:27,630 بہتر کیمسٹری concentrators سکتا شاید مجھ سے بہتر کرتے ہیں. 638 00:28:27,630 --> 00:28:28,510 >> لارین: پانی کے نیچے پر ہے. 639 00:28:28,510 --> 00:28:31,910 >> DAVID J. MALAN: تھا کہ water-- کیا ہم اس نے آخری بار کلید ہے. 640 00:28:31,910 --> 00:28:33,950 آپ کو صحیح ترتیب میں کیا کرنا ہے. 641 00:28:33,950 --> 00:28:34,450 جی ہاں. 642 00:28:34,450 --> 00:28:35,270 ٹھیک ہے. 643 00:28:35,270 --> 00:28:37,290 تو اب ہم تیل کے دو کپ ہے. 644 00:28:37,290 --> 00:28:37,790 ٹھیک ہے. 645 00:28:37,790 --> 00:28:38,510 ٹھیک ہے. 646 00:28:38,510 --> 00:28:40,110 لیکن اس میں ... سے کام کیمیائی تو 647 00:28:40,110 --> 00:28:41,200 >> لارین: یہ پانی ہے. 648 00:28:41,200 --> 00:28:41,930 >> DAVID J. MALAN: یہ زیادہ تر پانی ہے. 649 00:28:41,930 --> 00:28:42,430 بالکل ٹھیک. 650 00:28:42,430 --> 00:28:44,210 لیکن یہ اب بھی پہلے کی طرح اسی کپ ہے. 651 00:28:44,210 --> 00:28:47,570 تو اندازہ لگانے والے وہاں اس کی کوشش ڈال. 652 00:28:47,570 --> 00:28:49,300 ٹھیک ہے. 653 00:28:49,300 --> 00:28:51,010 یہ کلاس کے وقت کا ایک اچھا استعمال آج ہے. 654 00:28:51,010 --> 00:28:51,510 ٹھیک ہے. 655 00:28:51,510 --> 00:28:53,890 تو اب اچھا we--. 656 00:28:53,890 --> 00:28:55,460 ایک طرح سے. 657 00:28:55,460 --> 00:28:55,960 بالکل ٹھیک. 658 00:28:55,960 --> 00:28:56,690 بہت اچھا. 659 00:28:56,690 --> 00:29:00,006 لارین لئے آپ کا شکریہ. 660 00:29:00,006 --> 00:29:01,950 بہت اچھا کیا. 661 00:29:01,950 --> 00:29:04,570 >> تو، آپ کے دماغ اڑانے اور یہ شاید کچھ ہے 662 00:29:04,570 --> 00:29:08,660 آپ CS50 ID میں چاہوں تو ساتھ کھیلنے کے لئے، آپ، حقیقت میں، دو متغیر تبادلہ کر سکتے ہیں 663 00:29:08,660 --> 00:29:11,470 ایک عارضی عددی استعمال کرتے ہوئے بغیر. 664 00:29:11,470 --> 00:29:13,060 یہ اسی C کوڈ ہے. 665 00:29:13,060 --> 00:29:16,110 اور آپ آخری سے یاد تو بدھ، ہم، تو مختصر طور پر متعارف کرایا 666 00:29:16,110 --> 00:29:19,720 سی اور کرتا ہے میں کچھ نئے آپریٹرز کوئی کیا چھوٹا سا گاجر یاد 667 00:29:19,720 --> 00:29:23,660 علامت، اس چھوٹی سی سہ رخی ہے بورڈ کی طرف سے علامت کی نمائندگی کرتا ہے؟ 668 00:29:23,660 --> 00:29:26,003 کیا bitwise آپریٹر؟ 669 00:29:26,003 --> 00:29:26,770 >> سامعین: EXOR. 670 00:29:26,770 --> 00:29:27,645 >> DAVID J. MALAN: EXOR. 671 00:29:27,645 --> 00:29:28,560 خصوصی یا. 672 00:29:28,560 --> 00:29:32,920 آپ کو صرف مذاق میں کے لئے چاہتے ہیں، تو گھر، A اور B دونوں صوابدیدی دینے کے لئے 673 00:29:32,920 --> 00:29:36,072 کوئی eight-- اور میں کی طرح اقدار ایک آٹھ بٹ کی قیمت کا انتخاب کریں گے. 674 00:29:36,072 --> 00:29:38,530 آپ کے پاس 32 بٹس کے ساتھ ایسا کرتے ہیں، آپ کو بہت جلد ؤب گا. 675 00:29:38,530 --> 00:29:42,150 لیکن صرف ایک ایک آٹھ تھوڑا سا دے ، ایک یا دو جو کچھ بھی ہے اس قدر، 676 00:29:42,150 --> 00:29:43,790 اور اسی طرح کی قیمت ب دے. 677 00:29:43,790 --> 00:29:46,810 اور پھر تعریف کا استعمال کرتے ہوئے گزشتہ بدھ سے XOR کی، 678 00:29:46,810 --> 00:29:52,560 ، بٹ کی طرف سے ہر ایک ہے کہ تھوڑا سا لاگو A اور B میں سے ہر ایک میں ان آٹھ بٹس، 679 00:29:52,560 --> 00:29:54,980 اور پھر اس کوڈ کو فی بالکل ایسا. 680 00:29:54,980 --> 00:29:58,170 اور یہ غلط نہیں ہے کیا آپ کی سکرین پر یہاں دیکھ. 681 00:29:58,170 --> 00:30:02,100 یہ واقعی فوڑے تین XOR آپریشن کے لئے 682 00:30:02,100 --> 00:30:05,910 اور کسی نہ کسی طرح جادوئی ایک اور ب عہدوں کا تبادلہ کریں گے 683 00:30:05,910 --> 00:30:08,010 کوئی معلومات کو کھونے کے بغیر. 684 00:30:08,010 --> 00:30:11,580 >> تو تیل اور پانی چال ہے قریبی حقیقی دنیا اوتار 685 00:30:11,580 --> 00:30:12,980 میں اس کی نقل کرنے کے بارے میں سوچ سکتا ہے. 686 00:30:12,980 --> 00:30:15,950 لیکن یہ ضرور آسان ہے ایک عارضی متغیر کا استعمال، 687 00:30:15,950 --> 00:30:16,920 یہاں اس صورت میں کے طور پر. 688 00:30:16,920 --> 00:30:21,190 اور یہ بھی ایک موقع، کا کہنا ہے کہ بھی، مائکرو کی اصلاح کے اس قسم، 689 00:30:21,190 --> 00:30:23,590 ایک کمپیوٹر سائنسدان کے طور پر ، کا کہنا ہے کہ جبکہ مذاق کی طرح 690 00:30:23,590 --> 00:30:27,060 آپ کے بغیر یہ کیا کس طرح کے بارے میں ڈینگ ہانکنا ایک اضافی متغیر کے ساتھ گماگمن کی طرح، 691 00:30:27,060 --> 00:30:28,640 یہ سب کہ مجبور نہیں ہے. 692 00:30:28,640 --> 00:30:31,619 32 بٹس، کے طور پر محفوظ کرنے کی وجہ ایک اصل INT کی صورت میں، 693 00:30:31,619 --> 00:30:33,410 وہ سب مجبور نہیں ہے ایک ایسا نظام ہے جہاں پر 694 00:30:33,410 --> 00:30:36,722 آپ میگا بائٹ کی دسیوں استعمال کیا جا سکتا ہے یا اس سے بھی زیادہ اس طرح کی میموری ان دنوں. 695 00:30:36,722 --> 00:30:38,680 اور حقیقت میں، ہم جب حاصل بعد میں کسی مسئلہ سیٹ کرنے کے لئے 696 00:30:38,680 --> 00:30:41,010 اور آپ کو جادو لاگو چیکر اور تمہیں 697 00:30:41,010 --> 00:30:43,550 تو کے ساتھ کیا کرنا چیلنج کیا اس کے طور پر تھوڑا RAM اور کے طور پر کم 698 00:30:43,550 --> 00:30:46,820 پر ممکن طور پر وقت اب بھی آپ کو کمپیوٹر 699 00:30:46,820 --> 00:30:50,160 لاگو کرنے کے لئے ایک ہفتے ہے آپ ہو جائے گا have-- گا اندازہ لگانے والے 700 00:30:50,160 --> 00:30:51,799 ان وسائل کو کم سے کم کرنے کے لئے چیلنج. 701 00:30:51,799 --> 00:30:53,840 اور یہ کہ واقعی صرف ہے اس سمسٹر موقع 702 00:30:53,840 --> 00:30:57,940 آپ کو مونڈنا کرنے کی حوصلہ افزائی کی جائے گی جہاں یہاں تک کہ سب سے بہترین کارکردگی بند 703 00:30:57,940 --> 00:30:59,340 دوسری صورت میں قیمت ادا کرنی پڑتی. 704 00:30:59,340 --> 00:31:02,200 >> تو ہم کس طرح کر سکتے ہیں what-- یہ اصل کوڈ میں دیکھ رہے ہو؟ 705 00:31:02,200 --> 00:31:04,530 اب مجھے آگے جانے دو اور ایک مثال کے طور پر کھولنے 706 00:31:04,530 --> 00:31:07,700 کہ جان بوجھ کر کہا جاتا ہے کوئی تبادلہ نہیں ہے کیونکہ 707 00:31:07,700 --> 00:31:10,670 حقیقت یہ ہے کہ میں متغیر تبادلہ آپ اصل میں توقع کر سکتے ہیں کے طور پر. 708 00:31:10,670 --> 00:31:12,260 تو ایک نظر ڈالیں. 709 00:31:12,260 --> 00:31:17,050 یہاں کوئی CS50 ہے کہ ایک پروگرام ہے لائبریری، صرف معیاری I / O پر جا. 710 00:31:17,050 --> 00:31:19,560 اب ہم ایک پروٹوٹائپ ہے اوپر سویپ کے لئے جس میں صرف 711 00:31:19,560 --> 00:31:21,540 اس کے بعد بیان کیا جا کرنے کے لئے ہے کا مطلب ہے. 712 00:31:21,540 --> 00:31:22,550 اور یہاں اہم ہے. 713 00:31:22,550 --> 00:31:26,000 >> میں منمانے X اور Y تفویض، بالترتیب، اقدار ایک اور دو 714 00:31:26,000 --> 00:31:28,590 صرف وہ چھوٹے ہیں کیونکہ اور آسان کے بارے میں سوچنا. 715 00:31:28,590 --> 00:31:32,280 اور پھر میں نے صرف printfs کا ایک گروپ ہے میں نے ایک وویک چیک ہے جہاں. X 1 ہے 716 00:31:32,280 --> 00:31:35,110 اور Y 2 شاید ہے ان printfs کیا کہیں گے. 717 00:31:35,110 --> 00:31:36,530 تو کوئی جادو اس طرح اب تک. 718 00:31:36,530 --> 00:31:40,100 >> پھر میں نے کے ساتھ کا دعوی کرنے جا رہا ہوں ڈاٹ ڈاٹ ڈاٹ گماگمن، def کی پرنٹ. 719 00:31:40,100 --> 00:31:43,730 میں سویپ فون کرنے جا رہا ہوں تقریب، X اور Y میں گزر. 720 00:31:43,730 --> 00:31:47,350 اور اب اس کے لئے فرض تبدیل کردہ لسٹ بالکل لاگو کیا جاتا ہے 721 00:31:47,350 --> 00:31:49,930 اس ایک لمحے پہلے تھا کے طور پر ایک عارضی متغیر کے ساتھ. 722 00:31:49,930 --> 00:31:52,670 اور اس طرح میں نے دلیری کا دعوی، تبدیل. 723 00:31:52,670 --> 00:31:55,429 ایکس اور اس Y اب ہے اب ہے. 724 00:31:55,429 --> 00:31:57,220 لیکن فائل، کورس کے، کوئی سویپ کہا جاتا ہے. 725 00:31:57,220 --> 00:31:58,678 تو اصل میں کیا ہوتا ہے دیکھتے ہیں. 726 00:31:58,678 --> 00:32:04,450 مجھے تو کوئی تبادلہ اور مرتب تو ./noswap کرتے، X 1 ہے، Y 2 ہے. 727 00:32:04,450 --> 00:32:05,770 تبدیل گماگمن. 728 00:32:05,770 --> 00:32:07,200 X Y 2 ہے، 1 ہے. 729 00:32:07,200 --> 00:32:11,980 تو یہ اصل میں بھی غلطی کیا جا رہا ہے swap-- اگرچہ now-- نیچے سکرال چلو 730 00:32:11,980 --> 00:32:16,542 فی بالکل لاگو کیا جاتا ہے کوڈ میں ایک لمحے پہلے تجویز پیش کی. 731 00:32:16,542 --> 00:32:19,000 تو ہم پسند حاصل کرنے کے لئے نہیں جا رہے ہیں اب کے لئے XOR سامان کے ساتھ. 732 00:32:19,000 --> 00:32:21,890 یہ بھی، صرف کام کرنا چاہئے دودھ اور OJ کے ساتھ کی طرح، 733 00:32:21,890 --> 00:32:25,820 لیکن یہ کام کرنے کے لئے نہیں لگ رہا ہے. 734 00:32:25,820 --> 00:32:27,180 >> تو پھر ایسا کرنے دو. 735 00:32:27,180 --> 00:32:29,310 ہو سکتا ہے کہ میں نے صرف اس کا حق نہیں چل رہا تھا. 736 00:32:29,310 --> 00:32:32,010 تو پھر کوئی سویپ چلاتے ہیں. 737 00:32:32,010 --> 00:32:32,900 ہو سکتا ہے کہ میں ... کوئی. 738 00:32:32,900 --> 00:32:34,400 تو یہ صرف کام نہیں کر رہا. 739 00:32:34,400 --> 00:32:36,060 تو ایک چھوٹا سا وویک چیک کرتے ہیں. 740 00:32:36,060 --> 00:32:39,690 مجھے کردہ میں یہاں سے آگے جانے دو اور صرف، شامل، ایک منٹ انتظار کرو، 741 00:32:39,690 --> 00:32:43,856 ایک میں نے ہے / (ن) اور چلو پلگ ان میں ایک کی قیمت. 742 00:32:43,856 --> 00:32:45,730 مجھے سچ میں کرنا چاہتے ہیں کیونکہ کیا ہو رہا ہے کو دیکھنے کے لئے. 743 00:32:45,730 --> 00:32:47,570 اور یقینا، یہ ہے بگ ٹیکنالوجی 744 00:32:47,570 --> 00:32:50,028 آپ میں استعمال کیا جا سکتا ہے دفتری اوقات یا پہلے سے ہی گھر میں، 745 00:32:50,028 --> 00:32:53,560 ڈین کی پہلی ششماہی کے مشابہ PSET3 میں Armendariz کی ویڈیو 746 00:32:53,560 --> 00:32:56,870 ہم نے پرنٹ متعارف کرایا جس کے طور پر تحفظ کم از کم ایک کی سفارش کی تکنیک، 747 00:32:56,870 --> 00:32:58,080 سادہ مقدمات کے لئے. 748 00:32:58,080 --> 00:33:01,720 مجھے آگے بڑھو اور بنانے چلاتے ہیں پھر کوئی سویپ، ./noswap. 749 00:33:01,720 --> 00:33:04,370 750 00:33:04,370 --> 00:33:05,840 >> دلچسپ. 751 00:33:05,840 --> 00:33:11,670 تو سچ ہو رہا ہے کیا محسوس. X 1، Y 2 ہے، لیکن B 1 ہے جب ایک 2 ہے. 752 00:33:11,670 --> 00:33:16,790 تو ان دونوں کسی نہ کسی طرح تبدیل کر لی لیکن X اور Y تبدیل نہیں ہو رہے ہیں. 753 00:33:16,790 --> 00:33:21,090 تو کیا ہو رہا ہے، واضح ہونا ، میں یہاں X اور Y ہے ہے 754 00:33:21,090 --> 00:33:25,380 اور ان میں مقامی متغیر ہیں اہم دائرہ کار، میں X اور Y میں گزر رہا ہوں 755 00:33:25,380 --> 00:33:26,170 تبادلہ کرنا. 756 00:33:26,170 --> 00:33:29,080 اب، سویپ، ایک علیحدہ تقریب کے طور پر، اس کے دلائل فون کرنے کے لئے ہے 757 00:33:29,080 --> 00:33:30,590 یا اس کے پیرامیٹرز کچھ یہ چاہتا ہے. 758 00:33:30,590 --> 00:33:33,280 Foo کی ایکس یا Y یا ایک یا B یا بار یا. 759 00:33:33,280 --> 00:33:36,870 بس وہ ہیں کہ واضح کرنے کے لئے X کے لئے ایک جیسی نہیں ہے اور Y SE فی، 760 00:33:36,870 --> 00:33:38,020 میں نے ایک اور ب کہا ہے. 761 00:33:38,020 --> 00:33:40,040 لیکن ہم ان سب کو ہم چاہتے ہیں کچھ بھی کہہ سکتے ہیں. 762 00:33:40,040 --> 00:33:43,960 >> اور تو اس کی طرح لگتا ہے تبدیل کردہ لسٹ منظور کیا جا رہا ہے 763 00:33:43,960 --> 00:33:48,980 x-- AKA a-- اور یہ y-- AKA ب منظور کیا جا رہا. 764 00:33:48,980 --> 00:33:51,900 کسی نہ کسی طرح ان تین لائنوں ہیں بالکل ان اقدار کو گماگمن 765 00:33:51,900 --> 00:33:53,510 لارین دودھ اور OJ کے ساتھ کیا تھا کے طور پر. 766 00:33:53,510 --> 00:33:56,010 لیکن ہم باہر پرنٹ جب اقدار، A اور B 767 00:33:56,010 --> 00:34:01,340 تبادلہ یقینا ہیں لیکن X اور Y ان سے کوئی تبدیلی نہیں ہے. 768 00:34:01,340 --> 00:34:03,150 کہ X اور Y یہاں ہیں یاد کرتے ہیں. 769 00:34:03,150 --> 00:34:05,320 >> تو ہم کے ذریعے یہ دیکھ سکتے ہیں اس کے ساتھ ساتھ ایک اور تکنیک. 770 00:34:05,320 --> 00:34:08,110 اور یہ بھی ایک ٹیکنالوجی ہے مسئلہ میں سرایت تین سیٹ. 771 00:34:08,110 --> 00:34:10,780 چلو آگے بڑھو اور ایسا CS50 ID آپ پہلے ہی نہیں ہے تو. 772 00:34:10,780 --> 00:34:13,730 دائیں ہاتھ کی طرف ہم اس ٹھیک کرنے والا کھولتا ٹیب ہے. 773 00:34:13,730 --> 00:34:16,159 اور تم اس کو کھولنے تو، کچھ جادو معلومات نہیں ہے 774 00:34:16,159 --> 00:34:17,530 کہ ابتدائی طور پر تم پر پھینک دیا ہے. 775 00:34:17,530 --> 00:34:19,310 لیکن اصلی روزہ اس کے علاوہ چڑھاو دیں. 776 00:34:19,310 --> 00:34:21,620 >> تو ایک، آپ کو مقامی متغیر دیکھیں. 777 00:34:21,620 --> 00:34:26,230 CS50 IDE میں تعمیر ہے کہ باہر کر دیتا ہے، اور پروگرامنگ کے ماحول کی ایک بہت زیادہ 778 00:34:26,230 --> 00:34:28,060 عام طور پر، ایک ٹھیک کرنے والا کھولتا ہے. 779 00:34:28,060 --> 00:34:31,340 اگر آپ ضعف کو دیکھنے کے لئے کی اجازت دیتا ہے کہ ایک آلہ کیا آپ کے پروگرام کے اندر چل رہا ہے 780 00:34:31,340 --> 00:34:34,380 انہوں نے مزید کہا پر مائل کرنے کے لئے بغیر printfs اور مرتب کرنے اور چلانے 781 00:34:34,380 --> 00:34:37,588 اور printf کا اضافہ اور تالیف اور دفتری اوقات میں، جو پہلے سے ہی چل رہا ہے 782 00:34:37,588 --> 00:34:40,070 یا گھر، شاید ہے خوبصورت تکاؤ ہو رہی ہے. 783 00:34:40,070 --> 00:34:43,090 >> تو یہاں، صرف ایک لمحے میں، ہم ہیں حقیقی وقت میں دیکھنے کے لئے کی جا رہی 784 00:34:43,090 --> 00:34:44,760 ہمارے مقامی متغیر کی اقدار. 785 00:34:44,760 --> 00:34:47,880 ہم نے بھی قائم کرنے کے لئے کے قابل ہو جائے کرنے کے لئے جا رہے ہیں breakpoints کے کہا جاتا ہے جس 786 00:34:47,880 --> 00:34:52,570 مواقع کو روکنے کے لئے اپنے پروگرام میں ہیں کوڈ کا ایک مخصوص لائن پر عملدرآمد 787 00:34:52,570 --> 00:34:53,710 کے بارے میں جاننا چاہتا ہوں کہ. 788 00:34:53,710 --> 00:34:54,210 ٹھیک ہے؟ 789 00:34:54,210 --> 00:34:55,969 یہ پروگرام ایک تقسیم دوسری میں چلانے کے. 790 00:34:55,969 --> 00:35:00,450 یہ ہمیں سست انسانوں کے لئے اچھی قسم کا ہے ، کو روکنے کے ایک لمحے کے لے کرنے کے قابل ہو، دیکھیں 791 00:35:00,450 --> 00:35:02,380 کے ارد گرد کیا ہو رہا ہے کوڈ کا ایک مخصوص لائن 792 00:35:02,380 --> 00:35:05,050 پروگرام ہل چلا کے بغیر اس کے ذریعے اور مکمل طور پر ختم. 793 00:35:05,050 --> 00:35:08,510 تو ایک breakpoints کے لئے ہمیں اجازت دینے جا رہا کو توڑنے اور ایک خاص نقطہ پر روک. 794 00:35:08,510 --> 00:35:12,990 >> کال اسٹیک کی پسند ہیں طریقہ ہے افعال ہیں کیا کہہ 795 00:35:12,990 --> 00:35:14,140 اس وقت بلایا جا رہا ہے. 796 00:35:14,140 --> 00:35:15,370 اہم ہمیشہ سب سے پہلے کہا جاتا ہے. 797 00:35:15,370 --> 00:35:17,230 لیکن اہم ایک بلاتا ہے تو تبدیل ھو نے والے نام نہاد تقریب، 798 00:35:17,230 --> 00:35:20,470 ہم اصل میں اس کو دیکھنے کے لئے جا رہے ہیں کیا گیا ہے کہ افعال کے ٹاور 799 00:35:20,470 --> 00:35:22,400 ریورس تاریخ آرڈر میں کہا جاتا ہے. 800 00:35:22,400 --> 00:35:23,310 تو دیکھنے دو. 801 00:35:23,310 --> 00:35:24,327 >> میں باہر زوم کرنے کے لئے جا رہا ہوں. 802 00:35:24,327 --> 00:35:25,660 میں اپنے کوڈ میں واپس جانے کے لئے جا رہا ہوں. 803 00:35:25,660 --> 00:35:27,540 اور صرف میں چاہتا ہوں کیونکہ یہاں pedantic ہونا، 804 00:35:27,540 --> 00:35:31,100 میں آگے بڑھو اور کلک کرنے کے لئے جا رہا ہوں صرف لائن پانچ کے بائیں. 805 00:35:31,100 --> 00:35:32,830 اور یہ کہ ایک سرخ نقطہ پیدا. 806 00:35:32,830 --> 00:35:36,200 اور دائیں ہاتھ کی طرف پر توجہ ٹھیک کرنے والا کھولتا ارے، جانتا ہے کہ، 807 00:35:36,200 --> 00:35:41,020 میں نے ابھی کہا ایک توڑ مقام پر noswap.c لائن پانچ، خاص طور پر 808 00:35:41,020 --> 00:35:42,480 کوڈ کی اس لائن پر. 809 00:35:42,480 --> 00:35:45,090 تو ٹھیک کرنے والا کھولتا ہے کہ میں جانتا اگلی بار اس کا درخواستکردہ 810 00:35:45,090 --> 00:35:48,530 میں نے اپنے پروگرام کو روکنے چلانے وہاں کی بجائے صرف پھانسی 811 00:35:48,530 --> 00:35:50,390 سپر روزہ پوری بات چل رہا ہے. 812 00:35:50,390 --> 00:35:53,889 >> تو اب میں ٹھیک کلک کرنے کے لئے جا رہا ہوں IDE کے سب سے اوپر کے بٹن پر 813 00:35:53,889 --> 00:35:55,430 اور اس کے بعد کیا جا رہا ہے. 814 00:35:55,430 --> 00:36:00,680 یہ ابتدائی طور پر کسی حد تک ایک کو کھولنے کے لئے جا رہا ہے خوفناک تلاش کر دوسرے ٹرمینل ونڈو 815 00:36:00,680 --> 00:36:02,679 کی طرف سے ریموٹ بگ اس طرح کی میزبانی اور such-- 816 00:36:02,679 --> 00:36:04,970 اور ہم واپس آ جائیں گے کیا تمام ہے کہ طویل عرصے سے پہلے کا مطلب. 817 00:36:04,970 --> 00:36:09,020 لیکن اب کے لئے اہم ہے اس سرخ ڈاٹ مارا گیا ہے، 818 00:36:09,020 --> 00:36:11,735 ٹھیک کرنے والا کھولتا جان بوجھ کر ہے execution-- روک دیا گیا 819 00:36:11,735 --> 00:36:15,560 نہیں SE فی ہے کہ لائن پر لیکن سب سے پہلے پر اس تقریب میں اصل کوڈ کے مطابق. 820 00:36:15,560 --> 00:36:18,040 لائن سات ہے یہی وجہ ہے کہ اب پیلے رنگ میں روشنی ڈالی. 821 00:36:18,040 --> 00:36:20,550 >> اور اب ایک نظر ڈالیں دائیں ہاتھ کی طرف. 822 00:36:20,550 --> 00:36:27,300 یہ ڈیفالٹ کی طرف، کی طرح لگتا ہے، اچھی طرح سے کافی، ایکس کیا قیمت ہے؟ 823 00:36:27,300 --> 00:36:27,860 0. 824 00:36:27,860 --> 00:36:29,750 اور Y کیا قیمت ہے؟ 825 00:36:29,750 --> 00:36:30,410 زیرو. 826 00:36:30,410 --> 00:36:35,540 اور اس معنی میں متوقع ہے ہے کہ ایکس اور زرد line-- ہے کہ y-- 827 00:36:35,540 --> 00:36:36,770 ابھی تک پھانسی نہیں. 828 00:36:36,770 --> 00:36:38,510 تو ایکس قیمت 1 نہیں ہونا چاہئے. 829 00:36:38,510 --> 00:36:41,470 یہ کسی بھی دوسرے قدر ہو سکتا ہے، ایک نام نہاد ردی کی ٹوکری کی قیمت. 830 00:36:41,470 --> 00:36:44,320 اور ہم یہ ہے کہ میں خوش قسمت ہو گیا بنیادی طور پر، اس وقت صفر. 831 00:36:44,320 --> 00:36:46,400 >> تو اب صرف چند ہے بٹن ہم پرواہ کرنے کی ضرورت ہے 832 00:36:46,400 --> 00:36:48,100 اس طرح ٹھیک ہے کے بارے میں. 833 00:36:48,100 --> 00:36:49,970 یہاں نوٹس، ہم ایک کھیل کے بٹن ہے. 834 00:36:49,970 --> 00:36:51,877 اور ہم کھیلنے یا اگر مارا صرف اتنا ہے کہ، دوبارہ شروع 835 00:36:51,877 --> 00:36:53,710 کے ذریعے چلانے کے لئے جا پروگرام کے باقی 836 00:36:53,710 --> 00:36:55,300 یا یہ ایک توڑ مقام پر مار دیتی ہے جب تک. 837 00:36:55,300 --> 00:36:56,910 لیکن میں کسی بھی دوسرے مقرر نہیں ہے breakpoints کے تو یہ صرف ہے 838 00:36:56,910 --> 00:36:58,118 اختتام کے ذریعے چلانے کے لئے جا. 839 00:36:58,118 --> 00:37:00,280 شکست اس طرح کے ارد گرد poking کا مقصد. 840 00:37:00,280 --> 00:37:03,290 >> تو بجائے، مجھے پرواہ درست کرنے کے لئے ان شبیہیں. 841 00:37:03,290 --> 00:37:05,360 اور میں اوپر ہوور تو ان، کے طور پر آپ، بھی ہونا چاہئے 842 00:37:05,360 --> 00:37:07,450 آپ کو تھوڑا tips-- آلے تجاویز دیکھیں گے. 843 00:37:07,450 --> 00:37:09,020 یہ ایک سے زیادہ قدم ہے. 844 00:37:09,020 --> 00:37:11,290 اب اس کا مطلب یہ نہیں پر جائیں کوڈ کی مندرجہ ذیل لائن. 845 00:37:11,290 --> 00:37:14,840 یہ صرف اس پر عمل کا مطلب ہے اور ، اگلے کرنے کے لئے منتقل کرنے کو اگلے منتقل، 846 00:37:14,840 --> 00:37:15,580 اگلے منتقل. 847 00:37:15,580 --> 00:37:17,610 دوسرے الفاظ میں، کے ذریعے اس بٹن، میں چل سکتا ہوں 848 00:37:17,610 --> 00:37:20,390 ایک وقت میں میرا کوڈ ایک قدم کے ذریعے. 849 00:37:20,390 --> 00:37:21,914 لفظی لائن کی طرف سے لائن،. 850 00:37:21,914 --> 00:37:23,830 اب، کے دائیں جانب ایک ہے، کہ 851 00:37:23,830 --> 00:37:25,163 ہم صرف ایک لمحے میں دیکھیں گے کہ. 852 00:37:25,163 --> 00:37:27,820 یہ نام نہاد ہے ہے کہ آئکن میں قدم 853 00:37:27,820 --> 00:37:30,300 مجھے ڈوبکی کی اجازت دینے جا ایک اور تقریب میں. 854 00:37:30,300 --> 00:37:31,800 لیکن صرف ایک لمحے میں یہ دیکھتے ہیں. 855 00:37:31,800 --> 00:37:33,280 تو میں نے قدم پر کلک کریں کرنے کے لئے جا رہا ہوں. 856 00:37:33,280 --> 00:37:35,820 میں پر کلک کریں اور اب، نوٹس سب سے اوپر دائیں اس بٹن، 857 00:37:35,820 --> 00:37:41,260 مقامی تحت تقریبا آپ کی آنکھوں کو رکھنا تغیر اور ایکس دیکھتے ہیں کیا ہوتا. 858 00:37:41,260 --> 00:37:44,115 ابھی کیونکہ 1 پیلے رنگ کی لائن اب پھانسی دے دی ہے 859 00:37:44,115 --> 00:37:45,840 اور ہم لائن 8 پر منتقل کر دیا ہے. 860 00:37:45,840 --> 00:37:49,840 اور صرف ایک لمحے Y میں امید ہے کہ 2 ہونا چاہئے. 861 00:37:49,840 --> 00:37:52,330 >> اب، کچھ دلچسپ کہ تھوڑی دیر کے لئے ہوتا ہے. 862 00:37:52,330 --> 00:37:53,390 یہ سب printf کا ہے. 863 00:37:53,390 --> 00:37:58,010 اور میرے ثانوی ٹرمینل میں، نوٹس ونڈو، میں پرنٹ def سے پیداوار کو دیکھنے کے. 864 00:37:58,010 --> 00:38:01,080 اور اب میں ایک بنانے کے لئے ہے پروگرامر کے طور پر فیصلہ. 865 00:38:01,080 --> 00:38:04,360 میں اس لائن پر قدم کر سکتے ہیں کوڈ، اسے عملی جامہ نہیں بلکہ 866 00:38:04,360 --> 00:38:06,220 اندر کیا ہے کے بارے میں جاننا ہو رہی ہے. 867 00:38:06,220 --> 00:38:11,130 یا میں نے اصل میں اس میں قدم کر سکتے ہیں اور سویپ خود کے اندر جانے. 868 00:38:11,130 --> 00:38:12,340 تو مؤخر الذکر کرتے ہیں. 869 00:38:12,340 --> 00:38:15,550 >> مجھے آگے بڑھو اور پر کلک کریں نہ پھلانگنا لیکن میں قدم. 870 00:38:15,550 --> 00:38:17,300 نوٹس، اچانک ونڈو تبدیلیاں 871 00:38:17,300 --> 00:38:19,330 پہلے اجاگر کرنے کے لئے تبدیل ھو نے والے میں کوڈ کی لائن. 872 00:38:19,330 --> 00:38:20,710 اس لائن 21 سال کا ہے. 873 00:38:20,710 --> 00:38:25,220 اور اب، میں Funky کی قسم ہے کہ کیا ہے، تم یہاں نظر آتے ہیں تو،، کے طور پر توقع 874 00:38:25,220 --> 00:38:29,720 کوما ب بالترتیب 1 اور 2، ہے. 875 00:38:29,720 --> 00:38:33,840 کیوں temp کی 32.767 ہے؟ 876 00:38:33,840 --> 00:38:36,560 زیادہ کی طرح، کہ TEMP کا ذکر کرتے ہوئے ایک لمحے پہلے خالی کپ، 877 00:38:36,560 --> 00:38:38,980 21 لائن پر اعلان کیا جاتا ہے. 878 00:38:38,980 --> 00:38:43,390 میرا مطلب ہے کیوں 32،000-، یہی وجہ ہے یہ صرف کچھ عجیب قیمت؟ 879 00:38:43,390 --> 00:38:43,890 جی ہاں؟ 880 00:38:43,890 --> 00:38:45,190 >> سامعین: یہ initialized نہیں ہے. 881 00:38:45,190 --> 00:38:46,940 >> DAVID J. MALAN: یہ ہے سے initialized نہیں کیا گیا. 882 00:38:46,940 --> 00:38:49,370 لہذا ہمارے کمپیوٹر کو ہمیشہ جسمانی میموری ہے. 883 00:38:49,370 --> 00:38:50,544 یہ ہمیشہ جسمانی RAM ہے. 884 00:38:50,544 --> 00:38:52,710 اور ہمیشہ وہاں ہے صفر اور ایک صحیح، وہاں ہے؟ 885 00:38:52,710 --> 00:38:54,626 ہم استعمال کر رہے ہیں کیونکہ ہمارے سارا دن کمپیوٹر، 886 00:38:54,626 --> 00:38:57,210 آپ CS50 IDE استعمال کر رہے ہیں یا سرورز سارا دن. 887 00:38:57,210 --> 00:39:01,159 کہ رام کچھ zeros ہے یا تو یا کسی یا کچھ zeros اور ہیں. 888 00:39:01,159 --> 00:39:02,950 کوئی فرق نہیں پڑتا ہے یا تم ان کا استعمال کر رہے نہیں. 889 00:39:02,950 --> 00:39:05,270 تم بس خالی نہیں کر سکتے ہیں خالی جگہوں جہاں آپ بٹس چاہتے. 890 00:39:05,270 --> 00:39:06,850 وہ zeros اور ہیں تو ہو. 891 00:39:06,850 --> 00:39:09,610 >> تو اس کی وجہ سے، کہ TEMP باہر کر دیتا ہے ہم ابھی تک یہ initialized نہیں ہے 892 00:39:09,610 --> 00:39:14,580 ہم ان 32 بٹیں ہے لیکن وہ نہیں ہے کسی بھی نام سے جانا جاتا اقدار initialized کیا گیا. 893 00:39:14,580 --> 00:39:18,110 تو وہ تھے جو کچھ بھی سب سے زیادہ حال ہی میں ان 32 bits-- for-- استعمال 894 00:39:18,110 --> 00:39:23,000 ہم صرف کچھ کے نمونے دیکھ رہے ہیں ان مخصوص 32 کے پچھلے استعمال 895 00:39:23,000 --> 00:39:23,500 بٹس. 896 00:39:23,500 --> 00:39:27,780 جیسے ہی میں نے اگرچہ پھلانگنا پر کلک کریں، وفف، TEMP قیمت 1 حاصل کرنے کی جا رہی ہے. 897 00:39:27,780 --> 00:39:31,600 میں اسے دوبارہ کرتے ہیں تو، ایک ہے 2 قدر دیا جا رہا 898 00:39:31,600 --> 00:39:33,830 اور پھر ب کی جا رہی ہے قیمت 1 دیا جائے. 899 00:39:33,830 --> 00:39:36,390 >> اور تو کیا میں اب اچھا ہے کہانی میں اس وقت 900 00:39:36,390 --> 00:39:39,750 ٹھیک کرنے والا کھولتا ہے سپر آہستہ آہستہ، مجھے دکھا 901 00:39:39,750 --> 00:39:42,640 میری اپنی رفتار سے، کیا تبدیل ھو نے والے کی ریاست ہے. 902 00:39:42,640 --> 00:39:47,490 لیکن یہاں سب سے اوپر، نوٹس پر نوٹس کہ اصل میں کال اسٹیک 903 00:39:47,490 --> 00:39:49,180 اس کی دو تہوں ہے. 904 00:39:49,180 --> 00:39:53,240 طور پر روشنی ڈالی ہے کہ اب ایک تبدیل ھو نے والے، میں بجائے مین پر کلک کریں تو، 905 00:39:53,240 --> 00:39:57,100 مقامی متغیر تبدیل کس طرح محسوس ڈویلپر صرف ہاپ کر سکتے ہیں کی وجہ سے 906 00:39:57,100 --> 00:39:59,740 کے ارد گرد اور کسی بھی مختلف دائرہ کار میں جانا. 907 00:39:59,740 --> 00:40:04,070 ہم اس کے تمام کر رہے ہیں تو اگرچہ کام کرتے ہیں اور درست طریقے سے ایک اور بی گماگمن، 908 00:40:04,070 --> 00:40:09,080 میں تبدیل ھو نے والے کے درمیان آگے پیچھے جانا ہے تو ایک 2 ہے اور B 1 اور اہم ہے جہاں، 909 00:40:09,080 --> 00:40:11,851 مین بالکل متاثر کیا گیا ہے؟ 910 00:40:11,851 --> 00:40:12,350 نہیں. 911 00:40:12,350 --> 00:40:13,930 تو takeaway ہے یہاں کیا ہے؟ 912 00:40:13,930 --> 00:40:18,200 ٹھیک ہے، یہ کسی بھی وقت پتہ چلا ہے کہ آپ، سویپ کی طرح ایک تقریب کو فون 913 00:40:18,200 --> 00:40:21,600 اور آپ کو اس کے دلائل، منتقل کیا کیا آپ کو سویپ تقریب میں گزر رہے ہیں 914 00:40:21,600 --> 00:40:24,730 اس معاملے میں ایک نقل ہے ان دلائل کی. 915 00:40:24,730 --> 00:40:28,620 تو X اور Y بالترتیب ہر ہیں 32 بٹس، کیا تبدیل ہو رہی ہے 916 00:40:28,620 --> 00:40:30,760 دو نئے مقامی ہے متغیر، یا دلائل، 917 00:40:30,760 --> 00:40:34,380 نامی ایک اور b-- لیکن ان صوابدیدی ہیں names-- لیکن zeros کی پیٹرن 918 00:40:34,380 --> 00:40:39,520 اور اندر ایک اور ب کے ہیں لائن میں کھڑا کر X اور Y کے لئے ایک جیسی ہونا 919 00:40:39,520 --> 00:40:42,610 لیکن وہ نہیں ہیں X اور Y کے طور پر ایک ہی بات. 920 00:40:42,610 --> 00:40:46,880 >> اہم اس ٹکڑے پر ہے جیسے یہ ہے کاغذ نمبر 1 اور X اور Y کے لئے 2، 921 00:40:46,880 --> 00:40:49,260 اور یہ کہ ہاتھ پھر جب کاغذ کا ٹکڑا کو سویپ، 922 00:40:49,260 --> 00:40:51,970 تبدیل ھو نے والے بہت تیزی سے ہو جاتا ہے اپنے قلم، لکھتے ہیں 923 00:40:51,970 --> 00:40:56,240 1 اور کاغذ کا اپنا شیٹ 2، ہاتھوں اہم اصل XY بیک 924 00:40:56,240 --> 00:40:58,790 اور پھر اپنا کرتا A اور B کے ساتھ بات. 925 00:40:58,790 --> 00:41:01,940 اور اب یہ کیونکہ انتہائی اہم ہے اس nontrivial نجی اثر پڑتا ہے 926 00:41:01,940 --> 00:41:06,260 اصل میں درست کوڈ لکھنے کے لئے یہ لگتا ہے کیونکہ ہم تبادلہ نہیں کر سکتے ہیں 927 00:41:06,260 --> 00:41:07,500 دو متغیر. 928 00:41:07,500 --> 00:41:09,150 >> میں نے ایک صحیح سویپ کی تقریب لکھا ہے. 929 00:41:09,150 --> 00:41:12,770 ہم جتنی لارین کے ساتھ نافذ ہے حقیقت میں ایک صحیح سویپ تقریب، 930 00:41:12,770 --> 00:41:16,700 لیکن اس کی بظاہر کوئی معاملات اگر آپ اصل میں نہیں کر سکتے ہیں 931 00:41:16,700 --> 00:41:19,530 مستقل طور پر دونوں اقدار کا تبادلہ. 932 00:41:19,530 --> 00:41:21,970 تو ہم دوسرے طریقہ کی ضرورت ہے اصل میں اس میں حاصل کرنے کے، 933 00:41:21,970 --> 00:41:24,472 اور ہم کرنے کے قابل ہونے کی ضرورت ہے اصل میں اس مسئلہ کو حل. 934 00:41:24,472 --> 00:41:27,180 اور یہ out-- بدل جاتا ہے اور ہم آ جائیں گے واپس اس مخصوص تصویر کے لئے 935 00:41:27,180 --> 00:41:30,500 long-- سے پہلے اس ایک طریقہ یہ ہے کہ آپ کو آپ کے کمپیوٹر کی میموری کو اپنی طرف متوجہ کر سکتے ہیں. 936 00:41:30,500 --> 00:41:31,460 یہ صرف ایک مستطیل ہے. 937 00:41:31,460 --> 00:41:32,960 آپ کسی بھی اپنی طرف متوجہ کر سکتے ہیں طریقوں لیکن یہ کی تعداد 938 00:41:32,960 --> 00:41:35,740 ایک کے طور پر اپنی طرف متوجہ کرنے کے لئے آسان درج ذیل وجہ کی مستطیل. 939 00:41:35,740 --> 00:41:40,040 >> ہم باہر آج شروع کریں اور کرنے جا رہے ہیں نام نہاد اسٹیک کے بارے میں بات. 940 00:41:40,040 --> 00:41:43,870 اور اسٹیک صرف ایک حصہ ہے کی میموری کا ایک حصہ RAM-- 941 00:41:43,870 --> 00:41:47,100 افعال تک رسائی حاصل ہے کہ انہوں نے کہا رہے ہیں جب. 942 00:41:47,100 --> 00:41:49,800 اور اس طرح یہ اس پر باہر کر دیتا ہے یہ اسٹیک کے سب سے نیچے 943 00:41:49,800 --> 00:41:53,590 مین کی مقامی متغیرات میں سے سب کہاں ہے کواپریٹیو سی اور کواپریٹیو وی اور تمام ہے کہ چیزیں اور 944 00:41:53,590 --> 00:41:56,950 ڈیفالٹ کی طرف سے جانے کے لئے جا رہے ہیں. اور اہم تو ، سویپ کی طرح کچھ دوسری تقریب بلاتا ہے 945 00:41:56,950 --> 00:42:00,330 اچھی طرح سے، سویپ دوسرے حاصل کرنے کے لئے کی جا رہی ہے اس کے اوپر میموری کی پرت. 946 00:42:00,330 --> 00:42:04,490 >> اور اس طرح صرف آپ کو ایک فوری سرسری دینا اس کی تصویر، میں نے جانا ہے تو یہاں 947 00:42:04,490 --> 00:42:09,450 اور مجھ پر اس کا عکس دو ہیڈ کے طور پر واقعی میں نے کیا کیا well--، 948 00:42:09,450 --> 00:42:12,100 ہم کے بارے میں صرف دیکھ بھال تو اب کے لئے اس تصویر کے نیچے، 949 00:42:12,100 --> 00:42:15,070 ہے کہ میں نے ایک پروگرام چلاتے ہیں اور مین، بلایا جاتا ہے 950 00:42:15,070 --> 00:42:18,330 مین کا ایک حصہ دیا جاتا ہے ہے کہ میرے کمپیوٹر میں RAM 951 00:42:18,330 --> 00:42:20,060 اس نام نہاد اسٹیک کے سب سے نیچے دیئے. 952 00:42:20,060 --> 00:42:22,143 اور میں نے اس کو اپنی طرف متوجہ کرنے کے لئے جا رہا ہوں جان بوجھ کر ایک مربع کے طور پر. 953 00:42:22,143 --> 00:42:24,540 تو یہ 32 بٹیں یا چار بائٹس کی طرح ہے. 954 00:42:24,540 --> 00:42:28,790 یہ اہم تقریب ہے تو ایک 1 کی قیمت کے ساتھ متغیر کہا جاتا X 955 00:42:28,790 --> 00:42:32,626 اور یہ ایک متغیر کہا جاتا ہے 2 کی قدر کے ساتھ Y، ہے 956 00:42:32,626 --> 00:42:35,750 میموری کے اس sliver کے لینے کی طرح ہے اہم کام کی طرف سے دی گئی ہے 957 00:42:35,750 --> 00:42:38,850 نظام اور تاکہ اسے تقسیم پہلے مقامی متغیر، یہاں جاتا ہے 958 00:42:38,850 --> 00:42:40,930 دوسرا یہاں جاتا ہے، اور یہ بات ہے. 959 00:42:40,930 --> 00:42:45,590 >> مین تبدیل ھو نے والے، سویپ بلاتا ہے میموری کا اپنا ٹکڑا ہو جاتا ہے 960 00:42:45,590 --> 00:42:48,280 ہم اس طرح اپنی طرف متوجہ کریں گے کہ آپریٹنگ سسٹم سے، 961 00:42:48,280 --> 00:42:50,820 اور اس لئے جا رہا ہے اس کی اپنے مقامی متغیر کی بنیاد پر 962 00:42:50,820 --> 00:42:53,825 ہمارے عمل پر پہلے مقامی متغیر کے ساتھ ایک 963 00:42:53,825 --> 00:42:58,010 ابتدائی طور پر اور B کہ اقدار 1 اور 2 ملتا ہے. 964 00:42:58,010 --> 00:43:00,450 لیکن اس وقت، جیسے ہی کے طور پر تبدیل ھو نے والے کوڈ، executes ہے 965 00:43:00,450 --> 00:43:03,760 اور لارین اصل سویپ OJ اور دودھ، کیا ہو رہا ہے؟ 966 00:43:03,760 --> 00:43:09,030 ویسے، یہ 2 1، اس جا رہا ہے 1، راہ کی طرف سے، ایک 2 بننے، اور 967 00:43:09,030 --> 00:43:13,360 جا رہا ہے کہ ایک عارضی متغیر ہے کہ آخر میں اس پورے وقت استعمال کیا جاتا ہے 968 00:43:13,360 --> 00:43:14,470 دور ہو جاتا ہے. 969 00:43:14,470 --> 00:43:16,720 لیکن اس سے کوئی فرق نہیں ہے کتنا کام تم کرتے ہو 970 00:43:16,720 --> 00:43:22,160 اس لائن اس میں میموری کی جگہ of-- میں، X اور Y کو مکمل طور پر اچھوتا ہے. 971 00:43:22,160 --> 00:43:26,320 >> تو ہم دینے کے کچھ طریقہ کی ضرورت اس طرح تبادلہ اور افعال 972 00:43:26,320 --> 00:43:32,640 خفیہ رسائی، اگر آپ، کرنے کے لئے افعال X اور Y کی طرح یاد کرنے کے لئے like--. 973 00:43:32,640 --> 00:43:35,110 تو میں ایک نظر ڈالیں میں مدد ملتی ہے کہ ایک مثال 974 00:43:35,110 --> 00:43:38,220 ہم کیا گیا ہے بالکل وہی جو دیکھنے اس پورے وقت چل رہا. 975 00:43:38,220 --> 00:43:40,284 میں آگے جانے کے لئے جا رہا ہوں اور کھول زیرو کا موازنہ کریں. 976 00:43:40,284 --> 00:43:42,200 اور میں بند کرنے کے لئے جا رہا ہوں ہماری ٹھیک کرنے والا کھولتا، میں جا رہا ہوں 977 00:43:42,200 --> 00:43:44,360 اس خوفناک تلاش پیغام کو بند کرنے صرف ایک منٹ انتظار کرو کہنا، 978 00:43:44,360 --> 00:43:45,800 آپ درمیان میں ہیں ٹھیک. 979 00:43:45,800 --> 00:43:48,383 میں یہاں اس ٹیب کو چھپانے کے لئے جا رہا ہوں صرف واپس سادگی پر جانے کے لئے. 980 00:43:48,383 --> 00:43:50,160 GDB ہلاک کیا جاتا ہے اگر ایسا ہے تو، فکر نہ کرو. 981 00:43:50,160 --> 00:43:53,910 یہ صرف پروگرام کا مطلب ہے کہ جان بوجھ کر اس معاملے میں، چھوڑ دیا گیا، 982 00:43:53,910 --> 00:43:54,820 میری طرف سے. 983 00:43:54,820 --> 00:43:57,700 >> اور اب زیرو اس کرتا ہے آپس میں موازنہ. 984 00:43:57,700 --> 00:44:00,110 میں CS50 استعمال کر رہا ہوں معیاری I / O لائبریری. 985 00:44:00,110 --> 00:44:04,319 مجھے لگتا ہے کہ سب سے پہلے ایک اہم تقریب مل گیا ہے کا کہنا ہے کہ، کچھ کا کہنا ہے کہ، اور ایک تار ہو جاتا ہے. 986 00:44:04,319 --> 00:44:06,110 پھر اور اس کا کہنا ہے کہ ایک تار ہو جاتا. 987 00:44:06,110 --> 00:44:09,910 اور یہ کہ ان دونوں ڈور بالترتیب، ے اور ٹی کہا جاتا ہے. 988 00:44:09,910 --> 00:44:12,910 اور اب اس پروگرام، کا موازنہ کریں زیرو، زندگی میں اس کا مقصد، 989 00:44:12,910 --> 00:44:15,470 یہ مجھے بتانے کے لئے توقع کی جاتی ہے، میں ایک ہی بات ٹائپ کیا؟ 990 00:44:15,470 --> 00:44:16,910 اور اس میں ایک ہفتے میں واپس جا رہا ہوں. 991 00:44:16,910 --> 00:44:19,950 میں نے اپنے برابر برابر آپریٹر استعمال کر رہا ہوں جو معیار آپریٹر ہے. 992 00:44:19,950 --> 00:44:22,220 نہیں تفویض آپریٹر، مساوات آپریٹر. 993 00:44:22,220 --> 00:44:23,890 میں صرف کی اور ٹی موازنہ کر رہا ہوں. 994 00:44:23,890 --> 00:44:27,470 >> تو اصل میں آگے جانا ہے اور ایسا کرنے دو. 995 00:44:27,470 --> 00:44:32,680 اور میں آگے جانے کے لئے جا رہا ہوں اور زیرو کا موازنہ کر سکتے ہیں. 996 00:44:32,680 --> 00:44:35,110 میں ./comparezero کرنے جا رہا ہوں. 997 00:44:35,110 --> 00:44:37,150 اور میں جا رہا ہوں آگے اور کچھ کا کہنا ہے کہ 998 00:44:37,150 --> 00:44:43,450 کی طرح، کی خفی میں ماں کرتے ہیں اور کس طرح بڑے میں ماں کے بارے میں. 999 00:44:43,450 --> 00:44:45,034 اور کورس میں مختلف چیزیں ٹائپ کریں. 1000 00:44:45,034 --> 00:44:45,533 بالکل ٹھیک. 1001 00:44:45,533 --> 00:44:46,570 یہ متوقع ہے. 1002 00:44:46,570 --> 00:44:47,640 >> چلو پھر سے چلاتے ہیں. 1003 00:44:47,640 --> 00:44:49,740 دونوں مرتبہ، چھوٹے چھوٹے ہیں. 1004 00:44:49,740 --> 00:44:51,490 یہ میرے لئے سپر جیسی دکھائی دیتی ہے. 1005 00:44:51,490 --> 00:44:52,930 درج. 1006 00:44:52,930 --> 00:44:53,430 ٹھیک ہے. 1007 00:44:53,430 --> 00:44:55,804 ہو سکتا ہے کہ اس کی وجہ سے صرف عجیب ہے یہ میری گرائمر پسند نہیں ہے. 1008 00:44:55,804 --> 00:44:59,930 تو سرمایہ ماں کرتے ہیں، دارالحکومت ماں، ایک جیسی. 1009 00:44:59,930 --> 00:45:01,490 مختلف چیزیں. 1010 00:45:01,490 --> 00:45:03,907 >> تو ایسا کیوں ہے؟ 1011 00:45:03,907 --> 00:45:06,240 ویسے، اصل میں کیا جا رہا ہے یہاں ہڈ کے نیچے؟ 1012 00:45:06,240 --> 00:45:08,180 تو واپس جانے یہاں صرف ایک لمحے کے لئے 1013 00:45:08,180 --> 00:45:10,910 اور غور کیا GetString کے اصل میں کر رہی ہے. 1014 00:45:10,910 --> 00:45:13,385 آپ GetString کال کرتے، کہ ایک تقریب ہم نے 1015 00:45:13,385 --> 00:45:16,510 خود لکھا اور اسے کسی نہ کسی طرح ہو جاتا ہے صارف کی طرف سے حروف کی ترتیب. 1016 00:45:16,510 --> 00:45:20,280 اور کا پہلا فرض ہے کہ دو وقت میں GetString کال، کہ مجھے دیتا ہے 1017 00:45:20,280 --> 00:45:21,930 میموری کا ایک حصہ ہے کہ اس طرح لگ رہا ہے. 1018 00:45:21,930 --> 00:45:26,990 اور میں تمام چھوٹے ٹائپ تو M-O-m-- اور جو اس کے بعد جاتا ہے؟ 1019 00:45:26,990 --> 00:45:28,840 بس ایک فوری وویک چیک. 1020 00:45:28,840 --> 00:45:29,780 >> الٹا سلیش صفر. 1021 00:45:29,780 --> 00:45:30,510 ہم جانتے ہیں کہ. 1022 00:45:30,510 --> 00:45:32,784 اور ہم نے ادا کیا ہے کہ یاد کے ارد گرد Zamila کے نام کے ساتھ 1023 00:45:32,784 --> 00:45:34,950 اور دیگر ناموں میں سے ایک گروپ جب روب یہاں تلاش کر رہا تھا 1024 00:45:34,950 --> 00:45:36,280 میموری کے اندر کیا ہو رہا ہے میں. 1025 00:45:36,280 --> 00:45:37,780 تو اس کہانی بالکل ویسا ہی ہے. 1026 00:45:37,780 --> 00:45:40,160 یہ کیا ہے GetString کے مجھ سے واپس آ رہا ہے. 1027 00:45:40,160 --> 00:45:44,780 اب، میرا کوڈ ایک لمحے پہلے ذخیرہ GetString کی واپسی کی قیمت 1028 00:45:44,780 --> 00:45:47,510 ایک متغیر میں کہا جاتا. 1029 00:45:47,510 --> 00:45:51,390 اور پھر دوسری بار مجھے یہ کہا جاتا ہے، یہ ایک متغیر کہا جاتا T میں ذخیرہ. 1030 00:45:51,390 --> 00:45:55,070 >> میں یہاں جانا تو، مجھے اس کی ضرورت اس مقامی متغیر کو اپنی طرف متوجہ کرنے کے لئے 1031 00:45:55,070 --> 00:45:59,610 اور میں عام طور پر جا رہا ہوں just-- ہم کریں گے کے طور پر ایک تار کو اپنی طرف متوجہ 1032 00:45:59,610 --> 00:46:02,360 یہاں ایک چھوٹا سا مربع کے طور پر اس s-- کال. 1033 00:46:02,360 --> 00:46:09,760 ماں کیسے اور اب، somehow-- اس متغیر کی کے اندر جانا ہے؟ 1034 00:46:09,760 --> 00:46:12,010 ٹھیک ہے، ہم واپس جانے کی ضرورت یہاں پہلی اصولوں پر. 1035 00:46:12,010 --> 00:46:15,660 GetString اصل کیا واپس آ رہا ہے؟ 1036 00:46:15,660 --> 00:46:19,030 >> تو یہ ہے کہ ایم اے ایم باہر کر دیتا ہے الٹا سلیش صفر، اور کسی بھی تعداد 1037 00:46:19,030 --> 00:46:22,364 طرح یاد میں تاروں کی Zamila اور روب یا اینڈی یا کسی بھی دوسروں، 1038 00:46:22,364 --> 00:46:24,280 میں کورس کی ہیں ہماری کمپیوٹر کی RAM یا میموری. 1039 00:46:24,280 --> 00:46:27,760 اور آپ کے RAM آپ کے پاس like-- ہے RAM کے ایک ٹمٹم، RAM کے دو gigs، 1040 00:46:27,760 --> 00:46:30,860 یا ایک ارب یا دو ارب بائٹس، یا شاید اس سے بھی زیادہ ان دنوں. 1041 00:46:30,860 --> 00:46:34,070 تو آج کے مقاصد کے لئے، فرض، یہ ہم تعداد کس طرح سے کوئی فرق نہیں ہے کہ 1042 00:46:34,070 --> 00:46:36,640 ان، لیکن ہم ایک کو گن سکے ان ارب یا دو بلین 1043 00:46:36,640 --> 00:46:37,880 یا چار ارب بائٹس. 1044 00:46:37,880 --> 00:46:42,240 >> اور صرف منمانے کہتے ہیں کہ یہ پہلی کاٹنے، دوسری کاٹنے ہے، 1045 00:46:42,240 --> 00:46:43,380 تیسرا، چوتھا. 1046 00:46:43,380 --> 00:46:46,570 میں نے جان بوجھ کے لئے صفر کا استعمال کرتے ہوئے نہیں کر رہا ہوں لیکن آج ہم اس پر واپس آ جائیں گے. 1047 00:46:46,570 --> 00:46:49,570 تو دوسرے الفاظ میں یہ ہے بہت ہی پہلی بار میں، پروگرام استعمال کر رہا ہوں 1048 00:46:49,570 --> 00:46:52,715 میں صرف خوش اور سب سے پہلے ہو رہی ہے کاٹنے کے بعد محل وقوع سے ایک میں دو ہے 1049 00:46:52,715 --> 00:46:53,590 اس کے بعد تین چار. 1050 00:46:53,590 --> 00:46:57,430 اور میں ڈرائنگ رہا ہے، باکس نمبر دو ارب طریقہ کے یہاں ہو جائے گا. 1051 00:46:57,430 --> 00:47:02,200 >> تو کیا تم، کیا سوچتے ہیں، GetString اصل واپس؟ 1052 00:47:02,200 --> 00:47:06,010 یہ ایم اے ایم الٹا سلیش واپس نہیں آ رہا صفر SE فی واضح طور پر اس کی وجہ سے 1053 00:47:06,010 --> 00:47:08,180 میں تیار کی ہے کہ باکس میں فٹ نہیں ہوں گے. 1054 00:47:08,180 --> 00:47:11,210 تو اصل میں اور کیا جو GetString سکتا ان تمام ہفتے واپس آ جائے؟ 1055 00:47:11,210 --> 00:47:14,410 1056 00:47:14,410 --> 00:47:16,820 جواب پر ہے بورڈ یہاں کہیں. 1057 00:47:16,820 --> 00:47:20,390 تم، ایم-اے-ایم الٹا سلیش صفر فٹ نہیں کر سکتے تو کیا بجائے احساس بنا سکتا ہے؟ 1058 00:47:20,390 --> 00:47:23,424 آپ کو ڈال، سپر ہوشیار ہونا تھا تو نام نہاد انجینئرنگ ٹوپی پر، 1059 00:47:23,424 --> 00:47:24,340 آپ کو کیا واپس آ سکتا ہے؟ 1060 00:47:24,340 --> 00:47:27,340 کس قسم کی معلومات کی کم از کم رقم ہے اگر آپ اب بھی کریں گے کہ واپس آ سکتا ہے 1061 00:47:27,340 --> 00:47:30,610 آپ کو یاد میں ایم اے ایم مل ہیں؟ 1062 00:47:30,610 --> 00:47:31,270 جی ہاں؟ 1063 00:47:31,270 --> 00:47:31,950 >> سامعین: ایک. 1064 00:47:31,950 --> 00:47:32,200 >> DAVID J. MALAN: ایک. 1065 00:47:32,200 --> 00:47:33,021 اور کیوں ہے؟ 1066 00:47:33,021 --> 00:47:35,520 سامعین: یہ بتائیں گے کیونکہ تم کہاں [اشراوی] جانا. 1067 00:47:35,520 --> 00:47:38,391 1068 00:47:38,391 --> 00:47:39,390 DAVID J. MALAN: بالکل. 1069 00:47:39,390 --> 00:47:44,300 میں صرف ایڈریس کو واپس کرنے جا رہا ہوں میں ہو گیا ہے کہ سٹرنگ کی. 1070 00:47:44,300 --> 00:47:46,570 اس میں پتہ کیس محل وقوع سے ایک ہے. 1071 00:47:46,570 --> 00:47:51,280 تو کیا واقعی s-- میں ذخیرہ کیا جا رہا ہے اور ہر سٹرنگ متغیر طرح far-- 1072 00:47:51,280 --> 00:47:53,430 صرف کیا گیا ہے اس سٹرنگ کا پتہ. 1073 00:47:53,430 --> 00:47:57,840 >> دریں اثنا، میں فون تو ایک بار میں GetString 1074 00:47:57,840 --> 00:48:03,300 لفظی اسی thing-- میں ٹائپ کریں lowercase-- ایم-اے-ایم ایم-اے-ایم 1075 00:48:03,300 --> 00:48:06,200 اور ایک الٹا سلیش صفر، اور اب شاید اپنے پروگرام کی 1076 00:48:06,200 --> 00:48:09,820 کچھ وقت کے لئے تو شاید اس چل رہا 10 ہے، اس، اس 12، محل وقوع 11 1077 00:48:09,820 --> 00:48:10,700 یہ 13 ہے. 1078 00:48:10,700 --> 00:48:13,590 کسی دوسرے کا استعمال کرتے ہوئے کمپیوٹر کسی بھی وجہ سے کے لئے میموری. 1079 00:48:13,590 --> 00:48:18,172 اب میرا دوسرا میں جاتا ہے میرا پروگرام T میں متغیر؟ 1080 00:48:18,172 --> 00:48:19,390 10. 1081 00:48:19,390 --> 00:48:20,050 بالکل. 1082 00:48:20,050 --> 00:48:23,910 >> اور اس طرح ہم پر نظر آتے ہیں اس پروگرام کے منبع کوڈ 1083 00:48:23,910 --> 00:48:26,550 جہاں میں صرف کوشش کر رہا ہوں دو اقدار کا موازنہ کرنے، 1084 00:48:26,550 --> 00:48:32,180 ہے T کے برابر برابر ہے، کیا ہے واضح انسانی کا جواب؟ 1085 00:48:32,180 --> 00:48:34,890 1 10 برابر نہیں کرتا ہے کوئی وجہ. 1086 00:48:34,890 --> 00:48:36,861 اور اس کے ساتھ ساتھ ایک جھوٹ ہمارے لئے موقع واقعی 1087 00:48:36,861 --> 00:48:39,610 صرف پہلے، دوبارہ، پر جانے کے لئے اصولوں اور اچھی طرح، کے بارے میں سوچنا، 1088 00:48:39,610 --> 00:48:41,110 کیا ہڈ کے نیچے جا رہا ہے؟ 1089 00:48:41,110 --> 00:48:43,240 ہم کے بارے میں بات کر رہے ہیں بٹس اور بائٹس اور میموری، 1090 00:48:43,240 --> 00:48:46,820 لیکن یہ سمجھنے کے لئے اصل میں مفید ہے آپ GetString کال کیونکہ جب، 1091 00:48:46,820 --> 00:48:50,280 ہم کے بارے میں سوچنا، اگرچہ یہ ہے ایم اے ایم یا سٹرنگ ماں واپس لوٹنے 1092 00:48:50,280 --> 00:48:53,120 یا اینڈی یا Zamila یا کی طرح، تکنیکی طور پر 1093 00:48:53,120 --> 00:48:55,510 یہ صرف واپس لوٹنے ایڈریس میموری کے اس حصہ کے. 1094 00:48:55,510 --> 00:48:56,910 >> لیکن یہ ٹھیک ہے. 1095 00:48:56,910 --> 00:49:00,570 میں کس طرح جانتے ہیں کیونکہ سٹرنگ جہاں ختم ہوتا ہے؟ 1096 00:49:00,570 --> 00:49:03,840 میں صرف آغاز دیا رہا ہوں تو کیا ہوگا؟ 1097 00:49:03,840 --> 00:49:05,380 ویسے، الٹا سلیش صفر، ٹھیک ہے؟ 1098 00:49:05,380 --> 00:49:08,800 بس میں کر سکتے ہیں لکیری وقت میں پرنٹ def کی ایم اے ایم کے ساتھ باہر پرنٹ. 1099 00:49:08,800 --> 00:49:11,820 اور جیسے ہی میں الٹا سلیش دیکھ کے طور پر میں شروع کر دیا جہاں صفر، میں، پرواہ نہیں 1100 00:49:11,820 --> 00:49:14,950 میں نے پہلے ہی لپیٹ جانتے جہاں میں ختم کرنے کے لئے کی ضرورت ہے. 1101 00:49:14,950 --> 00:49:18,700 >> اور اس طرح آج آغاز کا پرتیک ہے اور مجھے وجہ سے ہم ڈرامائی طور پر ایسا کرنے دو 1102 00:49:18,700 --> 00:49:21,800 مصیبت کی ایک بہت کے ذریعے چلا گیا یہ یہاں wheels-- تربیت حاصل 1103 00:49:21,800 --> 00:49:29,840 تو آج تربیت پہیوں شروع دور آتے ہیں اور ہم ظاہر کرنے least-- 1104 00:49:29,840 --> 00:49:31,373 >> [تالیاں] 1105 00:49:31,373 --> 00:49:33,220 1106 00:49:33,220 --> 00:49:36,160 >> اس سفر کے ساتھ ساتھ کے قابل تھا جی ہاں، اس صبح کو ھدف کرنے کے لئے؟ 1107 00:49:36,160 --> 00:49:39,600 تو now-- ہے، بدل جاتا ہے باہر، سٹرنگ کے طور پر ایسی کوئی بات نہیں. 1108 00:49:39,600 --> 00:49:41,140 سلک کا کوئی وجود نہیں. 1109 00:49:41,140 --> 00:49:43,760 یہ ہم نے کیا ہے کہ ایک متبادل ہے CS50 لائبریری کے اندر. 1110 00:49:43,760 --> 00:49:48,660 اب، ہم بلا شروع کرنے جا رہے ہیں ے اور ٹی نہیں ڈور لیکن چار ستاروں. 1111 00:49:48,660 --> 00:49:51,180 چار سٹار اور ہم کریں گے طویل عرصے سے پہلے کے علاوہ چڑھاو. 1112 00:49:51,180 --> 00:49:53,510 لیکن اس کا کہنا ہے کہ، ہم جاری یہاں تک کہ اگر 1113 00:49:53,510 --> 00:49:56,180 اب کے لئے GetString کے استعمال کر رہے ہیں، تکنیکی طور پر مجھے ایسا کرنا چاہیے 1114 00:49:56,180 --> 00:49:59,010 چار سٹار اور چار ستارہ کہہ. 1115 00:49:59,010 --> 00:50:01,720 >> اور یہ کیا ہے کہ سٹار باہر کر دیتا ہے مطلع کرنے جا رہا ہے کچھ ہے 1116 00:50:01,720 --> 00:50:04,340 ایک پوائنٹر یا ایک ایڈریس بلایا. 1117 00:50:04,340 --> 00:50:06,110 اور حقیقت میں، ایک جھلکی کیا آگے جھوٹ 1118 00:50:06,110 --> 00:50:09,760 سے یہ 20 دوسری کلپ ہے ہماری سٹینفورڈ میں دوست نک Parlante 1119 00:50:09,760 --> 00:50:12,927 جو، کچھ وقت پہلے، خرچ وقت کی ایک مضحکہ خیز رقم، 1120 00:50:12,927 --> 00:50:15,010 سب سے بہتر طور میں بتا سکتے ہیں ان باورچی خانہ یا ان کے بیسمیںٹ، 1121 00:50:15,010 --> 00:50:17,140 claymation کی بنا دنیا کو متعارف کرانے 1122 00:50:17,140 --> 00:50:20,010 نامی ایک کردار Binky کی جن کے ساتھ ہم 1123 00:50:20,010 --> 00:50:22,010 اشارہ اگلی بار متعارف کرایا جائے. 1124 00:50:22,010 --> 00:50:24,588 تو یہاں آنے کے لئے کیا کا ایک جائزہ ہے. 1125 00:50:24,588 --> 00:50:26,370 >> [ویڈیو پلے بیک] 1126 00:50:26,370 --> 00:50:27,510 >> -Hey، Binky کی. 1127 00:50:27,510 --> 00:50:28,260 اٹھو. 1128 00:50:28,260 --> 00:50:30,672 یہ پوائنٹر تفریح ​​کے لئے وقت ہو گیا ہے. 1129 00:50:30,672 --> 00:50:31,616 >> -وہ کیا ہے؟ 1130 00:50:31,616 --> 00:50:33,032 اشارہ کے بارے میں معلومات حاصل کریں؟ 1131 00:50:33,032 --> 00:50:34,450 اوہ، گوڈی. 1132 00:50:34,450 --> 00:50:35,431 >> [END پلے بیک] 1133 00:50:35,431 --> 00:50:38,055 DAVID J. MALAN: اور اس بات پر، ہم آپ کو بدھ کو دیکھیں گے. 1134 00:50:38,055 --> 00:50:47,590 1135 00:50:47,590 --> 00:50:48,090 بالکل ٹھیک. 1136 00:50:48,090 --> 00:50:48,740 رقص کون ہے؟ 1137 00:50:48,740 --> 00:50:49,240 آ جاؤ. 1138 00:50:49,240 --> 00:50:50,330 رقص کون ہے؟ 1139 00:50:50,330 --> 00:50:51,820 تم نے مجھے یہ شروع کرنے کے لئے چاہتے ہیں؟ 1140 00:50:51,820 --> 00:50:53,770 میں یہ شروع کر دیا حاصل کریں گے. 1141 00:50:53,770 --> 00:50:54,270 Woooo! 1142 00:50:54,270 --> 00:51:04,070 1143 00:51:04,070 --> 00:51:07,580 >> لارین: سویٹ پسند موسی.