1 00:00:00,000 --> 00:00:00,940 2 00:00:00,940 --> 00:00:05,440 >> [موسیقی بجانے] 3 00:00:05,440 --> 00:00:11,577 4 00:00:11,577 --> 00:00:12,660 DAVID J. MALAN: ٹھیک ہے. 5 00:00:12,660 --> 00:00:15,590 یہ CS50 ہے، اور یہ دو ہفتے کے آغاز ہے. 6 00:00:15,590 --> 00:00:19,120 تو ہمیں ایک مسئلے کے ساتھ آج شروع کرتے ہیں. 7 00:00:19,120 --> 00:00:20,974 ایک مسئلے سے، کورس کی، ہے ایک پروگرام میں غلطی، 8 00:00:20,974 --> 00:00:22,890 اور آپ کو بہت ملے گا اس تصور کے ساتھ واقف 9 00:00:22,890 --> 00:00:26,050 آپ پروگرام نہیں ہے تو پہلے. pset0 اور اب پر pset1. 10 00:00:26,050 --> 00:00:29,280 لیکن کچھ غور سب سے پہلے میں ایک چھوٹا سا آسان. 11 00:00:29,280 --> 00:00:32,189 مجھے لگتا ہے کہ اس پروگرام پیشگی میں ایک ساتھ مل کر پھینک دیا 12 00:00:32,189 --> 00:00:37,280 اور میں نے اس کو پرنٹ کرنا چاہئے کہ دعوی printf کا استعمال کرتے ہوئے سکرین پر 10 ستارے، 13 00:00:37,280 --> 00:00:41,020 لیکن یہ بظاہر کسی طرح سے چھوٹی گاڑی ہے. 14 00:00:41,020 --> 00:00:45,370 >> اس کی تفصیلات دی کہ اس نے 10 ستاروں پرنٹ کرنا چاہئے، 15 00:00:45,370 --> 00:00:50,230 لیکن یہ بظاہر نہیں کرتا، کیا بگ تم دعوی کرتے ہے؟ 16 00:00:50,230 --> 00:00:52,004 جی ہاں؟ 17 00:00:52,004 --> 00:00:54,420 تو یہ ایک غلطی کی طرف سے ایک دور ہے، اور آپ کو اس سے کیا مطلب ہے؟ 18 00:00:54,420 --> 00:01:00,991 19 00:01:00,991 --> 00:01:01,490 ٹھیک ہے. 20 00:01:01,490 --> 00:01:09,820 21 00:01:09,820 --> 00:01:10,410 بہترین. 22 00:01:10,410 --> 00:01:13,930 تو ہم مخصوص ہے ایک میں صفر کی قیمت شروع، 23 00:01:13,930 --> 00:01:18,399 اور ہم، 10 کا ن قیمت مخصوص ہے لیکن ہم زیادہ یا برابر کم استعمال کیا جاتا ہے. 24 00:01:18,399 --> 00:01:21,190 اور یہ اس وجہ سے دو ہے حروف اور نہ صرف ایک علامت، 25 00:01:21,190 --> 00:01:22,630 ایک ریاضی کی کتاب میں کی طرح، آپ کے پاس نہیں ہے 26 00:01:22,630 --> 00:01:24,880 اظہار کا ایک طریقہ ایک کردار کے برابر. 27 00:01:24,880 --> 00:01:28,450 >> تو ہے کہ، کم سے کم کا مطلب ہے لیکن آپ کو صفر پر گنتی شروع، 28 00:01:28,450 --> 00:01:31,690 لیکن آپ کو تمام طرح شمار 10 کے ذریعے اور برابر، 29 00:01:31,690 --> 00:01:34,170 آپ کو کورس میں جانے کا ہو کل میں 11 چیزوں کو شمار. 30 00:01:34,170 --> 00:01:35,900 اور تو آپ کو 11 ستاروں پرنٹ کرنے کے لئے جا رہے ہیں. 31 00:01:35,900 --> 00:01:37,990 تو کیا اس کے لئے ایک حل ہو سکتا ہے؟ 32 00:01:37,990 --> 00:01:39,970 جی ہاں؟ 33 00:01:39,970 --> 00:01:43,980 >> تو کم سے کم ایڈجسٹ یا صرف سے کم کے برابر، 34 00:01:43,980 --> 00:01:46,250 اور شاید، میں نے دعوی کیا، ہے بھی ایک اور حل،. 35 00:01:46,250 --> 00:01:47,210 اور آپ کیا کر سکتے ہیں؟ 36 00:01:47,210 --> 00:01:48,590 جی ہاں؟ 37 00:01:48,590 --> 00:01:53,660 >> تو 1 کے لئے اس کے برابر سے شروع، اور سے کم یا برابر کم چھوڑ. 38 00:01:53,660 --> 00:01:56,187 اور واضح طور سے میں دعوی کریں گے کہ، ایک عام انسان کے لئے، 39 00:01:56,187 --> 00:01:57,770 شاید یہ زیادہ براہ راست ہے. 40 00:01:57,770 --> 00:02:00,280 1 پر گنتی شروع اور 10 شمار. 41 00:02:00,280 --> 00:02:01,690 بنیادی طور پر آپ کا کیا مطلب ہے. 42 00:02:01,690 --> 00:02:04,010 >> لیکن حقیقت میں ہے پروگرامنگ، ہم نے دیکھا کے طور پر، 43 00:02:04,010 --> 00:02:07,598 کمپیوٹر سائنسدانوں اور پروگرامرز عام طور پر صفر پر گنتی شروع ہے. 44 00:02:07,598 --> 00:02:09,389 اور تو ہے کہ ایک بار ٹھیک ہے آپ کو اس کے لئے استعمال کیا ہو. 45 00:02:09,389 --> 00:02:12,640 آپ کی حالت میں عام طور پر کرے گا سے بھی کم کی طرح کچھ ہو. 46 00:02:12,640 --> 00:02:14,910 تو صرف ایک منطقی غلطی ہے کہ ہم اب کر سکتے ہیں 47 00:02:14,910 --> 00:02:17,990 ٹھیک اور بالآخر تو recompile یہ اور صرف 10 حاصل. 48 00:02:17,990 --> 00:02:19,610 >> ویسے کس طرح اس مسئلے کے بارے میں؟ 49 00:02:19,610 --> 00:02:24,200 یہاں، ایک بار پھر، میں نے کا دعوی ہے کہ 10 stars-- پرنٹنگ کا ایک مقصد 50 00:02:24,200 --> 00:02:28,140 لائن اس وقت کے مطابق ایک، لیکن یہ نہیں ہے. 51 00:02:28,140 --> 00:02:30,940 ہم تجویز سے پہلے کیا طے یہ کیا کرتا ہے، ہے 52 00:02:30,940 --> 00:02:34,640 میں مرتب کرنے کے لئے تھے تو ضعف پرنٹ اور یہ پروگرام آپ کو لگتا ہے کہ چلانے؟ 53 00:02:34,640 --> 00:02:35,140 جی ہاں؟ 54 00:02:35,140 --> 00:02:38,360 55 00:02:38,360 --> 00:02:38,860 >> سٹار. 56 00:02:38,860 --> 00:02:41,690 پر تو تمام ستارے ایک ہی لائن میں نے سنا ہے، 57 00:02:41,690 --> 00:02:43,391 اور اس کے بعد نئی لائن کردار. 58 00:02:43,391 --> 00:02:44,140 تو اس کی کوشش کریں. 59 00:02:44,140 --> 00:02:48,710 تو چھوٹی گاڑی-1، داخل کرے، اور میں بجنا کمانڈ دیکھیں 60 00:02:48,710 --> 00:02:50,090 ہم نے آخری بار کے بارے میں بات ہے کہ. 61 00:02:50,090 --> 00:02:55,180 ./buggy 1، اور یقینا میں تمام 10 ستارے دیکھیں میں دعوی اگرچہ ایک ہی لائن پر 62 00:02:55,180 --> 00:02:58,690 میرا تفصیلات کے اوپر صرف ایک تبصرہ میں میں ایک فی کیا کرنے کا ارادہ ہے کہ کوڈ 63 00:02:58,690 --> 00:02:59,230 لائن. 64 00:02:59,230 --> 00:03:00,580 لیکن یہ صحیح لگتا ہے. 65 00:03:00,580 --> 00:03:04,620 >> میں ہوں اب 15 لائن یہ لگتا ہے پھر ایک ستارہ پرنٹ، اور 16 لائن 66 00:03:04,620 --> 00:03:06,620 میں چھپائی رہا ہوں ایسا لگتا ہے ایک نئی سطر کے کردار، 67 00:03:06,620 --> 00:03:09,560 اور وہ دونوں تو پوٹ دار کر رہے ہیں میں واضح طور پر لوپ کے اندر ہوں. 68 00:03:09,560 --> 00:03:13,610 تو میں ستارہ نہیں کرنا چاہئے، نئے لائن، ستارہ، نئی لائن، ستارہ، نئی لائن؟ 69 00:03:13,610 --> 00:03:14,110 جی ہاں؟ 70 00:03:14,110 --> 00:03:18,430 71 00:03:18,430 --> 00:03:21,240 >> جی ہاں، ایک زبان کے برعکس کی طرح ازگر، آپ واقف ہیں تو، 72 00:03:21,240 --> 00:03:23,540 پوٹ کاری نہیں کمپیوٹر پر کوئی فرق. 73 00:03:23,540 --> 00:03:25,280 یہ صرف انسانی فرق پڑتا. 74 00:03:25,280 --> 00:03:29,860 یہاں جبکہ میں ایجاد ہے لائنوں تو 15 اور خوبصورت لگ رہا ہے کہ 16--، 75 00:03:29,860 --> 00:03:31,330 لیکن کمپیوٹر کی پرواہ نہیں کرتا. 76 00:03:31,330 --> 00:03:34,640 کمپیوٹر کے بارے میں پرواہ اصل میں گھوبگھرالی منحنی خطوط وحدانی رکھنے 77 00:03:34,640 --> 00:03:36,310 کوڈ کا ان لائنوں کے ارد گرد. 78 00:03:36,310 --> 00:03:39,520 >> تو ہے کہ یہ صرف کی طرح clear-- ہے Scratch-- کوڈ کا ان دو لائنوں کہ 79 00:03:39,520 --> 00:03:40,450 چلایا جائے چاہئے. 80 00:03:40,450 --> 00:03:44,390 ان پیلے رنگ کے سکریچ پہیلی میں سے ایک کی طرح ٹکڑے ٹکڑے دوبارہ اور بار بار. 81 00:03:44,390 --> 00:03:50,920 >> میں تو اب اس کو دوبارہ چلانے پروگرام ./buggy-2-- HM. 82 00:03:50,920 --> 00:03:51,770 اب میں ایک غلطی ہے. 83 00:03:51,770 --> 00:03:54,212 مجھے کیا کرنا بھول گئے؟ 84 00:03:54,212 --> 00:03:55,420 جی ہاں، تو میں اسے مرتب نہیں کیا. 85 00:03:55,420 --> 00:03:56,740 تو چھوٹی گاڑی 2 بنانے کے. 86 00:03:56,740 --> 00:03:59,840 ایسی کوئی فائل میں نہیں تھا کیونکہ اصل میں دوسرے ورژن مرتب. 87 00:03:59,840 --> 00:04:04,860 تو اب دلچسپ اگھوشیت 2 نہیں متغیر. 88 00:04:04,860 --> 00:04:05,510 ہم 1 کر رہے ہیں. 89 00:04:05,510 --> 00:04:11,050 اب چھوٹی گاڑی-1-- ./buggy-1-- اور بنانے ان میں سے ہر ایک ہی لائن پر ہے. 90 00:04:11,050 --> 00:04:13,880 >> اب ایک رعایت کے لئے ہے میری اس توقع کا دعوی 91 00:04:13,880 --> 00:04:15,520 کہ آپ ان گھوبگھرالی منحنی خطوط وحدانی کی ضرورت ہے. 92 00:04:15,520 --> 00:04:20,160 جب یہ اصل میں ہے OK-- آپ ہے تو حصے یا textbooks-- میں نے محسوس 93 00:04:20,160 --> 00:04:22,130 گھوبگھرالی منحنی خطوط وحدانی ترک کرنا؟ 94 00:04:22,130 --> 00:04:22,630 جی ہاں؟ 95 00:04:22,630 --> 00:04:26,290 96 00:04:26,290 --> 00:04:26,870 >> بالکل ٹھیک. 97 00:04:26,870 --> 00:04:28,940 صرف ایک ہی ہے جب کوڈ کے لائن کہ آپ کو 98 00:04:28,940 --> 00:04:32,830 کے ساتھ منسلک کرنا چاہتے ہیں ہماری پہلی مثال کے طور پر لوپ. 99 00:04:32,830 --> 00:04:36,380 یہ بالکل جائز ہے گھوبگھرالی منحنی خطوط وحدانی ترک کرنا 100 00:04:36,380 --> 00:04:40,310 صرف ایک سہولت کی طرح کے طور پر آپ کے سنکلک کی طرف سے. 101 00:04:40,310 --> 00:04:40,810 جی ہاں؟ 102 00:04:40,810 --> 00:04:43,347 103 00:04:43,347 --> 00:04:43,930 اچھا سوال ہے. 104 00:04:43,930 --> 00:04:45,500 یہ ایک سٹائل غلطی تصور کیا جائے گا؟ 105 00:04:45,500 --> 00:04:49,340 ہم نے CS50 میں کے طور پر promote-- گا سٹائل گائیڈ، جس کے لئے یو آر ایل 106 00:04:49,340 --> 00:04:51,926 کہ ہمیشہ pset1-- میں ہے گھوبگھرالی منحنی خطوط وحدانی کا استعمال کرتے ہیں. 107 00:04:51,926 --> 00:04:53,550 یقینی طور پر آپ کو پروگرامنگ کرنے کے لئے نئے ہیں. 108 00:04:53,550 --> 00:04:56,800 حقیقت ہم نہ رہے ہیں آپ کی ممانعت کے لئے جا 109 00:04:56,800 --> 00:04:58,680 ان سہولیات کرنے سے. 110 00:04:58,680 --> 00:05:00,846 لیکن آپ کو صرف ہو رہی ہے چیزوں کی جھولی میں، 111 00:05:00,846 --> 00:05:04,020 بالکل ہمیشہ گھوبگھرالی استعمال آپ اس کا ہینگ حاصل کرنے تک کی تیاریاں. 112 00:05:04,020 --> 00:05:04,640 اچھا سوال ہے. 113 00:05:04,640 --> 00:05:05,320 >> ٹھیک ہے. 114 00:05:05,320 --> 00:05:07,660 کہ تو ایک مسئلے تھا. 115 00:05:07,660 --> 00:05:09,190 کافی سادہ کچھ میں کم از کم. 116 00:05:09,190 --> 00:05:11,260 اور ابھی تک آپ کو اس سوچ سکتا ہے حق، کافی ابتدائی ہے؟ 117 00:05:11,260 --> 00:05:13,635 اس کے پہلے ہفتے کی طرح ہے کی زبان میں تلاش 118 00:05:13,635 --> 00:05:14,890 کی طرح، آپ کے کیڑے اس میں دیکھیں. 119 00:05:14,890 --> 00:05:17,250 لیکن حقیقت یہ ہیں اصل نمائندے 120 00:05:17,250 --> 00:05:20,310 کچھ بہت خوفناک مسائل کے کہ حقیقی دنیا میں پیدا کر سکتے ہیں. 121 00:05:20,310 --> 00:05:23,530 >> تو آپ میں سے کچھ یاد کر سکتے ہیں آپ کو ٹیک خبر پر عمل کرتا ہے تو، 122 00:05:23,530 --> 00:05:25,740 یا شاید بھی پکڑے گئے فروری میں اس کی ہوا 123 00:05:25,740 --> 00:05:29,434 ایپل تھا کہ یہ گزشتہ سال کے ، دونوں iOS میں ایک غلطی کا تھوڑا سا بنا دیا 124 00:05:29,434 --> 00:05:31,350 آپریٹنگ سسٹم ان کے فون، اور بھی 125 00:05:31,350 --> 00:05:34,220 میک OS، آپریٹنگ سسٹم ان کے ڈیسک ٹاپ اور لیپ ٹاپ پر. 126 00:05:34,220 --> 00:05:36,480 اور تم اس کے طور پر شہ سرخیوں دیکھا. 127 00:05:36,480 --> 00:05:41,120 اور اس کے بعد، ایپل اس مسئلے کو حل کرنے کا وعدہ کیا تھا، 128 00:05:41,120 --> 00:05:45,950 اور بہت جلد، iOS میں اسے ٹھیک کیا لیکن پھر بالآخر میک OS میں یہ طے 129 00:05:45,950 --> 00:05:46,810 اس کے ساتھ ساتھ. 130 00:05:46,810 --> 00:05:50,370 >> اب ان شہ سرخیوں میں سے کوئی بھی اکیلے واقعی بنیادی مسئلہ کیا تھا ظاہر، 131 00:05:50,370 --> 00:05:55,640 لیکن بگ بالآخر کم کیا گیا تھا SSL میں ایک مسئلے سے، محفوظ ساکٹ لیئر. 132 00:05:55,640 --> 00:05:57,390 اور لمبی کہانی کو مختصر، اس سافٹ ویئر ہے 133 00:05:57,390 --> 00:06:01,030 کہ ہماری براؤزر اور دیگر سافٹ ویئر کی کیا کیا کرتے تھے؟ 134 00:06:01,030 --> 00:06:04,090 135 00:06:04,090 --> 00:06:06,860 >> میں SSL ہے تو ملوث، جب بھی آپ 136 00:06:06,860 --> 00:06:13,920 ، HTTPS کے ساتھ شروع ہوتا ہے کہ ایک یو آر ایل کا دورہ پھر کیا SSL سے متعلق ہو سکتا ہے؟ 137 00:06:13,920 --> 00:06:14,580 خفیہ کاری. 138 00:06:14,580 --> 00:06:16,470 تو ہم نے کے بارے میں بات کریں گے آنے والے دنوں میں اس. 139 00:06:16,470 --> 00:06:18,750 خفیہ کاری، کے فن معلومات scrambling. 140 00:06:18,750 --> 00:06:22,200 >> لیکن لمبی کہانی کو مختصر، ایپل کچھ دیر میں ایک غلطی کی تھی پہلے 141 00:06:22,200 --> 00:06:25,970 ، SSL کے ان کے عمل میں بالآخر لاگو سافٹ ویئر 142 00:06:25,970 --> 00:06:30,120 HTTPS یا زیادہ سے زیادہ کی طرح یو آر ایل وہاں بھی کنکشن. 143 00:06:30,120 --> 00:06:32,850 جس کا نتیجہ یہ ہے کہ آپ کنکشن ممکنہ طور پر کر سکتے ہیں 144 00:06:32,850 --> 00:06:33,920 روک. 145 00:06:33,920 --> 00:06:37,130 اور آپ کے کنکشن تھے ضروری مرموز نہیں 146 00:06:37,130 --> 00:06:40,350 آپ کے درمیان کچھ برا آدمی میں تھا تو آپ اور منزل ویب سائٹ جو 147 00:06:40,350 --> 00:06:42,170 اس کا فائدہ اٹھانے کے لئے کس طرح جانتا تھا. 148 00:06:42,170 --> 00:06:45,090 >> اب ایپل بالآخر پوسٹ ایک آخر میں اس کے لئے طے کر، 149 00:06:45,090 --> 00:06:46,920 اور وضاحت ان کے حل کے اس تھا. 150 00:06:46,920 --> 00:06:49,878 محفوظ نقل و حمل کو درست کرنے میں ناکام کنکشن کی صداقت. 151 00:06:49,878 --> 00:06:52,920 مسئلہ کی طرف سے خطاب کیا لاپتہ توثیق اقدامات کی بحالی. 152 00:06:52,920 --> 00:06:57,250 >> تو یہ ایک بہت ہاتھ لہراتی وضاحت ہے صرف ہم مصیبت یہ کہنے کے لیے. 153 00:06:57,250 --> 00:07:00,920 لفظی نہیں ہے چھوٹی گاڑی تھی کہ کوڈ کی لائن 154 00:07:00,920 --> 00:07:05,130 ان SSL کے نفاذ، اور میں آپ آن لائن جانے کے لئے اور اس کے لئے تلاش کریں 155 00:07:05,130 --> 00:07:07,210 آپ اصل میں حاصل کر سکتے ہیں اصل منبع کوڈ. 156 00:07:07,210 --> 00:07:11,960 مثال کے طور پر، اس کا ایک سکرین شاٹ ہے صرف ایک کافی بڑی فائل کا ایک حصہ، 157 00:07:11,960 --> 00:07:15,965 لیکن یہ بظاہر نام سے ایک تقریب ہے SSL علامت سرور اہم تبادلے کی تصدیق. 158 00:07:15,965 --> 00:07:17,840 اور اس کا ایک گروپ لیتا ہے دلائل اور آدانوں. 159 00:07:17,840 --> 00:07:20,298 اور ہم پر توجہ مرکوز کرنے جا رہے ہیں وہاں minutia پر بہت زیادہ، 160 00:07:20,298 --> 00:07:24,390 لیکن آپ کے اندر کوڈ پر توجہ مرکوز ہے چلو تقریب کہ اوپر کی 161 00:07:24,390 --> 00:07:25,590 اس پر میں زوم. 162 00:07:25,590 --> 00:07:28,140 آپ نے پہلے ہی شبہ ہو سکتا ہے کیا غلطی ہو سکتا ہے 163 00:07:28,140 --> 00:07:31,230 آپ کو کوئی اندازہ نہیں ہے یہاں تک کہ اگر ہو بالآخر آپ کو تلاش کر رہے ہیں. 164 00:07:31,230 --> 00:07:35,924 ایک اسنگتی کی طرح ہے یہاں، جس میں کیا ہے؟ 165 00:07:35,924 --> 00:07:38,940 >> جی ہاں، میں واقعی میں پسند نہیں کرتے دو روانگی بر کی نظر ناکام ہو جاتا ہے. 166 00:07:38,940 --> 00:07:42,060 سچ کہوں تو، میں سچ میں پتہ نہیں کیا روانگی بر کا مطلب ہے کہ میں ناکام، لیکن ان میں سے دو ہونے 167 00:07:42,060 --> 00:07:42,810 واپس واپس کرنے کے لئے. 168 00:07:42,810 --> 00:07:45,290 جو صرف ایک قسم مجھے سے rubs ذہنی غلط طریقے سے، 169 00:07:45,290 --> 00:07:48,910 اور ہم پر میں زوم یقینا تو صرف ان لائنوں، یہ سی ہے 170 00:07:48,910 --> 00:07:52,220 >> تو ایپل کے کوڈ کا ایک بہت خود C میں لکھا ہے، 171 00:07:52,220 --> 00:07:55,780 اور یہ بظاہر واقعی equivalent-- ہے 172 00:07:55,780 --> 00:07:59,060 نہ کہ بہت پوٹ کاری کرنے کے لئے ورژن، لیکن آپ کو تسلیم ہے تو حقیقت یہ ہے کہ 173 00:07:59,060 --> 00:08:02,560 کوئی گھوبگھرالی منحنی خطوط وحدانی، ہے کہ وہاں کیا ایپل واقعی لگتا ہے کہ کوڈ تھا لکھا 174 00:08:02,560 --> 00:08:03,540 اس طرح. 175 00:08:03,540 --> 00:08:07,080 تو میں باہر یکبر اور صرف میں ہوں احساس میں پوٹ کاری مقرر 176 00:08:07,080 --> 00:08:10,690 کہ کوئی گھوبگھرالی منحنی خطوط وحدانی، کہ وہاں ہے دوسری روانگی بر کہ پیلے رنگ میں ناکام 177 00:08:10,690 --> 00:08:12,500 کوئی بات نہیں پر عمل کرنے جا رہا ہے. 178 00:08:12,500 --> 00:08:15,540 اس کے ساتھ منسلک نہیں ہے اس کے اوپر اگر شرط. 179 00:08:15,540 --> 00:08:19,590 >> تو بھی ایک بار پھر، اگر آپ ایسا کرتے کافی نہیں سمجھ کیا یہ ممکنہ طور پر کر سکتے ہیں 180 00:08:19,590 --> 00:08:23,230 ، کر رہے ہو جانتے ہو ان میں سے ہر ایک کہ ان لائنوں میں سے ہر ایک کے حالات 181 00:08:23,230 --> 00:08:26,180 ایک بہت اہم قدم ہے جانچ پڑتال کے عمل میں 182 00:08:26,180 --> 00:08:28,350 آپ کے ڈیٹا اصل میں ہے تو مرموز. 183 00:08:28,350 --> 00:08:31,710 تو ان میں سے ایک اچٹیں اقدامات، نہیں سب سے اچھا خیال. 184 00:08:31,710 --> 00:08:34,840 >> لیکن ہم اس کی ضرورت ہے کیونکہ دوسری روانگی بر، پیلے رنگ میں ناکام 185 00:08:34,840 --> 00:08:36,840 اور اس وجہ سے ہم ایک بار قسم کے جمالیاتی 186 00:08:36,840 --> 00:08:40,480 جہاں اس کے بائیں میں منتقل منطقی طور پر اس وقت ہے، کیا 187 00:08:40,480 --> 00:08:43,230 اس لائن کے لئے مطلب ہے کہ دوسری روانگی بر کے نیچے کوڈ کی 188 00:08:43,230 --> 00:08:46,480 آپ کے خیال میں ناکام؟ 189 00:08:46,480 --> 00:08:48,860 یہ ہمیشہ چھوڑا جا رہا ہے. 190 00:08:48,860 --> 00:08:52,100 تو gotos عام طور وسلم frowned ہیں ہم واقعی میں نہیں جائیں گے وجوہات کے لئے، 191 00:08:52,100 --> 00:08:54,940 اور یقینا CS50 میں ہم نہیں ہیں اس بیان روانگی بر سکھانے کے لئے، 192 00:08:54,940 --> 00:08:58,130 لیکن آپ روانگی بر سوچ سکتے ہیں معنی جانے چھلانگ کے طور پر میں ناکام 193 00:08:58,130 --> 00:08:59,600 کوڈ کے کسی دوسرے حصے میں. 194 00:08:59,600 --> 00:09:03,120 >> دوسرے الفاظ میں پر کود مکمل طور پر یہ آخری لائن، 195 00:09:03,120 --> 00:09:07,420 اور تو اس پاگل کا نتیجہ صرف تھا کہ سادہ غلطی 196 00:09:07,420 --> 00:09:10,330 شاید کسی کا نتیجہ کاپی اور بھی ایک چسپاں 197 00:09:10,330 --> 00:09:14,150 کئی بار پوری تھا iOS اور میک OS کی سیکورٹی 198 00:09:14,150 --> 00:09:18,240 اورودھن کا شکار تھا کچھ وقت کے لئے برے لوگوں کی طرف سے. 199 00:09:18,240 --> 00:09:19,940 ایپل تک آخر میں یہ طے. 200 00:09:19,940 --> 00:09:23,100 >> اب آپ کی کچھ اصل میں ہیں تو iOS یا میک OS کے پرانے ورژن چل رہا ہے، 201 00:09:23,100 --> 00:09:27,250 آپ gotofail.com پر جا سکتے ہیں جس میں کسی کو مقرر کیا ہے کہ ایک ویب سائٹ ہے 202 00:09:27,250 --> 00:09:29,190 بنیادی طور پر تعین کرنے کے لئے پروگرام 203 00:09:29,190 --> 00:09:30,980 آپ کے کمپیوٹر اب بھی کمزور ہے. 204 00:09:30,980 --> 00:09:33,600 اور واضح طور سے، اگر یہ ہے، شاید یہ ایک اچھا خیال ہے 205 00:09:33,600 --> 00:09:36,870 آپ کے فون کو اپ ڈیٹ کرنے یا اس نقطہ پر اپنے میک. 206 00:09:36,870 --> 00:09:40,120 لیکن، صرف عہد نامہ کس طرح کرنے کے لئے یہ کم سطح کی ایک تعریف 207 00:09:40,120 --> 00:09:42,400 تفصیلات اور کافی سادہ خیالات کر سکتے ہیں واقعی 208 00:09:42,400 --> 00:09:44,590 فیصلے میں ترجمہ اور مسائل کہ 209 00:09:44,590 --> 00:09:47,320 اس صورت میں affected-- لاکھوں لوگوں کی. 210 00:09:47,320 --> 00:09:49,107 >> انتظامیہ پر اب ایک لفظ. 211 00:09:49,107 --> 00:09:50,690 حصے میں اس آنے والے اتوار کو شروع ہو جائے گا. 212 00:09:50,690 --> 00:09:53,360 آپ کی طرف سے ایک ای میل وصول کریں گے حصے کے بارے میں ہفتے کے آخر میں، جس موڑ پر 213 00:09:53,360 --> 00:09:55,290 resectioning عمل آپ نے تو شروع ہو جائے گا 214 00:09:55,290 --> 00:09:56,998 آپ اب احساس ہوا کچھ نئے تنازعات. 215 00:09:56,998 --> 00:10:00,180 تو یہ ہر سال ہوتا ہے، اور ہم آنے والے دنوں میں ایڈجسٹ کرے گا. 216 00:10:00,180 --> 00:10:02,430 >> آفس hours-- ایک رکھنے کرنا یہاں اس شیڈول پر آنکھ. 217 00:10:02,430 --> 00:10:05,100 اس ہفتے کے تھوڑا سا میں تبدیلی، خاص طور پر وقت آغاز 218 00:10:05,100 --> 00:10:08,180 اور محل وقوع، تو مشورہ ہے کہ دفتری اوقات کی طرف سے پہلے 219 00:10:08,180 --> 00:10:09,520 اگلے چار راتوں میں سے کوئی بھی. 220 00:10:09,520 --> 00:10:12,680 اور اب کی تشخیص پر ایک لفظ، آپ کا مسئلہ میں کودو، خاص طور پر 221 00:10:12,680 --> 00:10:14,350 ایک اور باہر کا تعین کرتا ہے. 222 00:10:14,350 --> 00:10:17,070 >> تفصیلات کے مطابق تو، یہ عام طور پر ہیں 223 00:10:17,070 --> 00:10:20,360 محور جس کے ساتھ ہم آپ کو آپ کے کام کا اندازہ. 224 00:10:20,360 --> 00:10:23,170 دائرہ کار سے مراد کیا حد تک آپ کے کوڈ کے آلات 225 00:10:23,170 --> 00:10:25,690 خصوصیات کی ضرورت ہماری تفصیلات کی طرف سے. 226 00:10:25,690 --> 00:10:28,290 دوسرے الفاظ میں، کس طرح زیادہ سے زیادہ ایک ٹکڑا سیٹ آپ کاٹ کیا. 227 00:10:28,290 --> 00:10:30,440 آپ کو اس کے ایک تہائی کیا، اس کے نصف، اس کے 100٪. 228 00:10:30,440 --> 00:10:33,000 یہ صحیح نہیں ہے یہاں تک کہ اگر، تم کتنا کوشش کی؟ 229 00:10:33,000 --> 00:10:35,290 اس سطح قبضہ تو کوشش اور رقم کی 230 00:10:35,290 --> 00:10:38,260 جس میں آپ کو تھوڑا سا مسئلہ سیٹ کے مسائل. 231 00:10:38,260 --> 00:10:40,690 >> یہ ایک Correctness--، کرنے کس حد تک، آپ کے کوڈ ہے 232 00:10:40,690 --> 00:10:43,150 کے ساتھ مسلسل ہمارے نردجیکرن اور کیڑے مفت. 233 00:10:43,150 --> 00:10:44,770 تو یہ درست طریقے سے کام کرتا ہے؟ 234 00:10:44,770 --> 00:10:48,700 ہم اس کے کچھ ان پٹ دیتے ہیں تو، یہ کرتا ہے ہمیں توقع ہے کہ پیداوار دے؟ 235 00:10:48,700 --> 00:10:52,570 Design-- اب اس کی پہلی ہے خاص طور پر معیار ہیں، 236 00:10:52,570 --> 00:10:56,180 یا انسانی فیصلے کی ضرورت ہوتی ہے ہیں. 237 00:10:56,180 --> 00:10:59,690 ہم ایک عملے ہے کیوں اور یقینا، یہ ہے بہت سے تعلیم کے ساتھیوں اور کورس کے 238 00:10:59,690 --> 00:11:00,350 معاونین. 239 00:11:00,350 --> 00:11:03,480 کیا حد تک آپ کی ہے کوڈ اچھی طرح لکھا گیا ہے؟ 240 00:11:03,480 --> 00:11:05,810 >> اور پھر یہ ایک بہت ہے گتاتمک اسسمنٹ 241 00:11:05,810 --> 00:11:09,100 اس پر آپ کے ساتھ کام کریں گے ہفتے میں دو اور directionally آنا. 242 00:11:09,100 --> 00:11:12,060 تاکہ آپ نہیں جب صرف عددی سکور، بلکہ 243 00:11:12,060 --> 00:11:16,682 ایک تحریری سکور، یا ٹائپ کی رائے، یا انگریزی الفاظ میں رائے لکھا. 244 00:11:16,682 --> 00:11:19,640 یہ ہم آپ کو گاڑی چلانے کے لئے استعمال کریں گے کیا ہے اصل میں بہتر کوڈ لکھنے کی طرف. 245 00:11:19,640 --> 00:11:23,320 اور لیکچر اور کے حصے میں، ہم کوشش کریں گے کے طور پر اکثر کے طور پر ہم can-- باہر کر طرف اشارہ کرنا 246 00:11:23,320 --> 00:11:26,420 کیا ایک پروگرام بناتا ہے نہ صرف صحیح اور فعل کے اچھے، 247 00:11:26,420 --> 00:11:28,200 بلکہ اچھی طرح سے ڈیزائن. 248 00:11:28,200 --> 00:11:31,850 سب سے زیادہ موثر یہ ہو، یا کر سکتے ہیں یہاں تک کہ سب سے زیادہ خوبصورت ہو سکتا ہے. 249 00:11:31,850 --> 00:11:33,100 >> جس انداز کی طرف جاتا ہے. 250 00:11:33,100 --> 00:11:36,876 انداز بالآخر ہے ایک جمالیاتی فیصلے. 251 00:11:36,876 --> 00:11:38,750 آپ کو اچھا منتخب کیا آپ کے متغیر کے نام؟ 252 00:11:38,750 --> 00:11:40,330 آپ کو مناسب طریقے سے آپ کے کوڈ کے پوٹ دار ہے؟ 253 00:11:40,330 --> 00:11:44,010 یہ اس وجہ سے اچھی لگتی، اور کرتا ہے، یہ ایک انسان کے لئے آسان ہے 254 00:11:44,010 --> 00:11:46,550 اپنے متعلقہ پڑھنے کے لئے اس کے درست کی. 255 00:11:46,550 --> 00:11:50,300 >> اب عام طور پر نصاب کے مطابق، ہم سکور پانچ نکاتی پیمانے پر ان چیزوں کو. 256 00:11:50,300 --> 00:11:53,640 اور مجھے نکاتی گھر ہتھوڑا دو تین کہ واقعی اچھا ہے. 257 00:11:53,640 --> 00:11:55,550 بہت تیزی سے لوگ کرتے ہیں ریاضی کر شروع. 258 00:11:55,550 --> 00:11:58,133 وہ ایک تین باہر حاصل کرتے کچھ pset کے لئے درست پانچ 259 00:11:58,133 --> 00:12:02,040 اور وہ بہت لگتا ہے، میں 60٪ کرنے کے لئے جا جو بنیادی طور پر ایک ڈی یا ایک E. ہے 260 00:12:02,040 --> 00:12:03,980 >> اس طرح نہیں ہے کہ ہم ان کی تعداد کے بارے میں سوچنا. 261 00:12:03,980 --> 00:12:06,880 تین کیا واقعی اچھا ہے، اور ہم عام طور پر آغاز میں توقع 262 00:12:06,880 --> 00:12:09,820 مدت کے آپ کو ہو رہی ہے تو یہ ہے کہ شاید three's-- کے ایک گروپ کے ایک جوڑے 263 00:12:09,820 --> 00:12:12,540 میلوں کی، fours-- کے ایک جوڑے یا ایک جوڑے twos کے، fours-- کے ایک جوڑے 264 00:12:12,540 --> 00:12:13,748 کہ شروع کرنے کے لئے ایک اچھی جگہ ہے. 265 00:12:13,748 --> 00:12:16,320 اور ہم نے ایک تو طویل عرصے کے طور پر دیکھیں وقت کے ساتھ ساتھ اضافہ کی رفتار، 266 00:12:16,320 --> 00:12:18,540 آپ کو ایک خاص طور پر اچھا جگہ میں ہیں. 267 00:12:18,540 --> 00:12:20,752 >> ہم کرنے کے لئے استعمال فارمولہ وزن چیزیں بنیادی طور پر ہے 268 00:12:20,752 --> 00:12:22,710 نصاب کے مطابق اس، جس میں صرف ہم کا مطلب ہے کہ 269 00:12:22,710 --> 00:12:24,750 درست کرنے کے لئے زیادہ سے زیادہ وزن دے. 270 00:12:24,750 --> 00:12:27,930 یہ بہت اکثر درست ہے کیونکہ کہ سب سے زیادہ وقت لگتا ہے. 271 00:12:27,930 --> 00:12:28,760 اب مجھ پر اعتماد کرو. 272 00:12:28,760 --> 00:12:31,190 آپ کم از کم find-- گا ایک pset-- میں ہے کہ آپ 273 00:12:31,190 --> 00:12:36,790 اپنے وقت کے 90 فیصد خرچ مسئلہ کے 10 فیصد پر کام کر رہے. 274 00:12:36,790 --> 00:12:39,320 >> اور ہر چیز کی طرح کام کرتا ہے ایک یا دو کیڑے کے علاوہ، 275 00:12:39,320 --> 00:12:41,570 اور ان لوگوں کو کیڑے ہیں رات کو دیر سے آپ کو رکھنے کے. 276 00:12:41,570 --> 00:12:43,380 لوگ ہیں کہ کی طرح آپ سے فرار. 277 00:12:43,380 --> 00:12:45,560 لیکن اس پر سونے کے بعد، یا دفتر کے اوقات میں شرکت 278 00:12:45,560 --> 00:12:48,844 یا، آن لائن سوال ہے پوچھ آپ 100٪ مقصد حاصل کرنے کے جب، 279 00:12:48,844 --> 00:12:50,760 اور یہی وجہ ہے کہ ہم وزن ہے سب سے زیادہ درست. 280 00:12:50,760 --> 00:12:54,102 تھوڑا کم ڈیزائن، اور اس سے تھوڑا کم سٹائل. 281 00:12:54,102 --> 00:12:56,060 لیکن mind-- انداز میں رکھنے شاید سب سے آسان ہے 282 00:12:56,060 --> 00:12:58,890 ان میں سے کاٹ کرنے کے لئے سٹائل گائیڈ کے مطابق. 283 00:12:58,890 --> 00:13:01,580 >> اور اب، ایک سے زیادہ سنگین تعلیمی ایمانداری پر نوٹ. 284 00:13:01,580 --> 00:13:05,000 CS50 کی بدقسمتی امتیاز ہے اشتھاراتی بورڈ کے سب سے بڑا پروڈیوسر ہونے 285 00:13:05,000 --> 00:13:07,330 مقدمات تقریبا ہر سال تاریخی. 286 00:13:07,330 --> 00:13:11,012 طالب علموں میں دھوکہ اس کی وجہ یہ نہیں ہے CS50 کسی بھی زیادہ تو کسی دوسرے طبقے کے مقابلے میں، 287 00:13:11,012 --> 00:13:13,720 لیکن کیونکہ کام کی نوعیت کی طرف سے، یہ الیکٹرانک ہے حقیقت یہ ہے کہ، 288 00:13:13,720 --> 00:13:16,636 ہم اس کے لئے نظر آتے ہیں، اور حقیقت یہ ہے کہ حقیقت یہ ہے کہ ہم کمپیوٹر کے سائنسدانوں، ہیں 289 00:13:16,636 --> 00:13:20,570 میں ہم بدقسمتی ہیں کہہ سکتے ہیں یہ پتہ لگانے میں بہت اچھا. 290 00:13:20,570 --> 00:13:22,710 >> تو یہ حقیقی معنوں میں کیا مطلب ہے؟ 291 00:13:22,710 --> 00:13:24,820 یہ تو، نصاب کے مطابق، کورس کا فلسفہ 292 00:13:24,820 --> 00:13:28,090 واقعی مناسب ہو کرنے کے لئے نیچے ابلنا ہے. 293 00:13:28,090 --> 00:13:31,684 اس لائن کے درمیان ہے اپنے اپنے طور پر ایک کام کر 294 00:13:31,684 --> 00:13:34,100 اور تھوڑا سا حاصل کرنے ایک دوست سے مناسب مدد، 295 00:13:34,100 --> 00:13:38,020 اور مکمل طور پر کے لئے کہ کام کر آپ دوست، یا اسے اپنے کوڈ بھیج 296 00:13:38,020 --> 00:13:41,080 وہ صرف کر سکتے ہیں، تا کہ لے یا دائیں اسے باہر قرضے لے. 297 00:13:41,080 --> 00:13:43,580 اور یہ کہ لائن پار ہم کلاس میں تیار کی ہے کہ. 298 00:13:43,580 --> 00:13:45,410 >> ، نصاب دیکھیں بالآخر لائنز 299 00:13:45,410 --> 00:13:48,209 ہم مناسب ہونے کے طور پر اپنی طرف متوجہ اور غلط رویے، 300 00:13:48,209 --> 00:13:50,000 لیکن یہ واقعی فوڑے کرتا ہے جوہر نیچے 301 00:13:50,000 --> 00:13:53,980 آپ کے کام کرنے کی ضرورت کے آخر میں آپ کی اپنی ہو. 302 00:13:53,980 --> 00:13:56,230 اب اس نے کہا، ایک heuristic ہے. 303 00:13:56,230 --> 00:13:58,980 آپ imagine-- سکتا ہے کیونکہ دفتر گھنٹے اور انداز سے 304 00:13:58,980 --> 00:14:01,060 اور ویڈیوز ہم نے دکھایا طرح far-- CS50 305 00:14:01,060 --> 00:14:04,530 یقینا باہمی تعاون کے ساتھ کے طور پر مراد ہے اور کے طور پر تعاون اور سماجی 306 00:14:04,530 --> 00:14:06,450 ممکن طور پر. 307 00:14:06,450 --> 00:14:08,570 باہمی تعاون کے ساتھ کے طور پر یہ سخت ہے. 308 00:14:08,570 --> 00:14:11,314 >> لیکن اس نے کہا کہ کے ساتھ پر، heuristic، آپ کے نصاب میں دیکھیں گے کے طور پر، 309 00:14:11,314 --> 00:14:12,980 آپ کو کچھ مسئلہ ہے کر رہے ہیں جب کہ ہے. 310 00:14:12,980 --> 00:14:16,470 آپ اپنے کوڈ میں کچھ بگ ہے کہ آپ حل نہیں کر سکتے، یہ آپ کے لئے مناسب ہے 311 00:14:16,470 --> 00:14:18,039 کسی اور کو آپ کے کوڈ کو ظاہر کرنے کے. 312 00:14:18,039 --> 00:14:21,080 یہاں تک کہ کلاس میں ایک دوست، ایک دوست دفتری اوقات میں آپ کو اگلے بیٹھے، 313 00:14:21,080 --> 00:14:22,680 یا عملے کے ایک رکن. 314 00:14:22,680 --> 00:14:25,810 لیکن وہ آپ کو ان کے کوڈ کو ظاہر نہیں کر سکتے ہیں. 315 00:14:25,810 --> 00:14:27,710 >> دوسرے الفاظ میں، ایک آپ کے سوال کا جواب 316 00:14:27,710 --> 00:14:29,940 میں help-- اوہ، یہاں کوڈ نہیں ہے کی ضرورت ہے. 317 00:14:29,940 --> 00:14:32,440 اس پر ایک نظر لے لو اور کیا تم اس سے نتیجہ نکالنا. 318 00:14:32,440 --> 00:14:34,580 اب، کورس کی، ہے ایک طریقہ واضح طور پر کھیل کے لئے 319 00:14:34,580 --> 00:14:37,760 میں تمہیں دکھاتا ہوں جس کے تحت اس نظام ایک سوال کے ہونے سے پہلے اپنے کوڈ. 320 00:14:37,760 --> 00:14:40,150 تم نے مجھے میرے اپنے کوڈ کو ظاہر ایک سوال کے ہونے سے پہلے. 321 00:14:40,150 --> 00:14:45,870 لیکن پھر نصاب دیکھیں اس لائن ہے جہاں کے finer تفصیلات. 322 00:14:45,870 --> 00:14:50,606 >> اب تصویر پینٹ کرنے کے لئے اور کے طور پر ہر ممکن حد تک شفاف اشتراک 323 00:14:50,606 --> 00:14:53,480 ہم نے حالیہ برسوں میں کہاں ہیں، اس اشتھاراتی بورڈ مقدمات کی تعداد ہے 324 00:14:53,480 --> 00:14:56,260 کہ CS50 پر دیکھا گیا ہے گزشتہ سات سال. 325 00:14:56,260 --> 00:14:58,717 14 مقدمات یہ سب سے زیادہ حال ہی میں زوال کے ساتھ. 326 00:14:58,717 --> 00:15:01,300 ملوث طلباء کی شرائط میں، 20 کچھ عجیب طلباء تھا 327 00:15:01,300 --> 00:15:02,490 گزشتہ موسم خزاں. 328 00:15:02,490 --> 00:15:05,670 33 کی ایک چوٹی تھا کچھ سال پہلے کے طالب علموں کو. 329 00:15:05,670 --> 00:15:08,830 جن میں سے بہت بدقسمتی ہیں اب کوئی یہاں کیمپس. 330 00:15:08,830 --> 00:15:13,100 >> کی ایک فی صد کے طور پر شامل طلباء کلاس تاریخی 0٪ سے لے کر ہے 331 00:15:13,100 --> 00:15:17,300 کا کہنا ہے کہ صرف ہے جو 5.3٪، کے لئے اس سالانہ ایک چیلنج ہے. 332 00:15:17,300 --> 00:15:20,390 اور اس مقصد کی طرف، کیا ہم ایک کی تبلیغ کرنا چاہتے ہیں 333 00:15:20,390 --> 00:15:24,310 ہم صرف FYI-- میں موازنہ dd-- کہ ان طالب علموں کے لئے ایک جانبداری جو 334 00:15:24,310 --> 00:15:26,520 کے مطابق لائن مندرجہ ذیل ہیں. 335 00:15:26,520 --> 00:15:29,620 ہم تمام موجودہ موازنہ کرنا تمام ماضی کے مشن کے خلاف گذارشات 336 00:15:29,620 --> 00:15:30,840 گزشتہ کئی سالوں سے. 337 00:15:30,840 --> 00:15:33,620 >> ہم نے گوگل کو کس طرح بھی جانتے اور کوڈ ذخیرہ مل 338 00:15:33,620 --> 00:15:36,360 آن لائن، فورم آن لائن، کام سائٹس. 339 00:15:36,360 --> 00:15:41,580 ایک طالب علم نے اسے تلاش کر سکتے ہیں، ہم ضرور کر سکتے ہیں اس کے طور پر زیادہ سے زیادہ ہم افسوس کی بات کے طور پر مل جائے. 340 00:15:41,580 --> 00:15:45,330 تو کیا آپ کے نصاب میں دیکھیں گے اگرچہ اس بات پر افسوس کا شق ہے. 341 00:15:45,330 --> 00:15:47,500 میں یقینی طور پر کر سکتے ہیں تعریف، اور ہم سب کو ہے 342 00:15:47,500 --> 00:15:50,870 عملے کورس کی طرح کیا ہے اس وقت، یا یہ ایک خود، 343 00:15:50,870 --> 00:15:53,997 یقینی طور پر اس وقت جب طرح ہے زندگی جب آپ راستے میں ملتا ہے 344 00:15:53,997 --> 00:15:56,080 کچھ دیر رات deadline-- نہ صرف اس کی کلاس میں، 345 00:15:56,080 --> 00:15:58,660 لیکن آپ another-- ہیں جب مکمل طور پر ختم،، باہر زور دیا 346 00:15:58,660 --> 00:16:00,659 ایک غیر معمولی تعداد ہے دوسری چیزوں کے کرنے کے لئے. 347 00:16:00,659 --> 00:16:03,660 تم کچھ نقطہ میں کر دے گا یقینی طور پر ایک بری، شاید دیر سے زندگی 348 00:16:03,660 --> 00:16:04,620 رات فیصلہ. 349 00:16:04,620 --> 00:16:06,520 >> نصاب کے مطابق تو، اس شق نہیں ہے، 350 00:16:06,520 --> 00:16:10,629 بنانے کی طرح ہے کہ اگر 72 گھنٹے کے اندر اندر کچھ غریب فیصلہ، آپ کو اس کی مالک 351 00:16:10,629 --> 00:16:12,670 اور مجھ سے باہر تک پہنچنے اور کورس کے سروں میں سے ایک 352 00:16:12,670 --> 00:16:14,300 اور ہم ایک بات چیت کریں گے. 353 00:16:14,300 --> 00:16:16,220 ہم چیزوں کو سنبھال لیں گے اندرونی امید میں 354 00:16:16,220 --> 00:16:18,770 یہ ایک سے زیادہ بننے کے تعلیم لمحے یا زندگی سبق، 355 00:16:18,770 --> 00:16:22,120 کے ساتھ اور کچھ نہیں خاص طور پر سخت نتائج 356 00:16:22,120 --> 00:16:24,570 آپ یہاں ان کے چارٹ پر دیکھ سکتے ہیں کے طور پر. 357 00:16:24,570 --> 00:16:26,540 >> تو یہ ایک بہت سنگین سر ہے. 358 00:16:26,540 --> 00:16:29,960 ہم صرف چند کے لئے روک دیں سیکنڈ کشیدگی کو توڑنے کے لئے. 359 00:16:29,960 --> 00:16:34,442 >> [موسیقی بجانے] 360 00:16:34,442 --> 00:17:17,768 361 00:17:17,768 --> 00:17:20,250 >> DAVID J. MALAN: ٹھیک ہے، تاکہ تھا کہ کس طرح ایک segue کا لئے؟ 362 00:17:20,250 --> 00:17:22,059 آج کے بنیادی موضوعات سے. 363 00:17:22,059 --> 00:17:23,859 جس کے پہلے تجرید ہے. 364 00:17:23,859 --> 00:17:26,900 جن میں سے ایک ہونے جا رہا ہے جس بے تکلفی کے اعداد و شمار، کی نمائندگی 365 00:17:26,900 --> 00:17:31,640 کس طرح کہہ کے ایک بہت خشک راستہ ہم کر سکتے ہیں ہے مسائل کو حل کرنے اور سوچ کے بارے میں جانا 366 00:17:31,640 --> 00:17:33,250 مسائل کو حل کرنے کے بارے میں؟ 367 00:17:33,250 --> 00:17:37,285 تو آپ شروع میں دیکھا ہے، اور آپ نے سی کے ساتھ pset1 میں شاید پہلے سے ہی دیکھا 368 00:17:37,285 --> 00:17:39,930 آپ کو نہ صرف استعمال کر سکتے ہیں افعال، printf طرح، 369 00:17:39,930 --> 00:17:42,770 کہ دوسرے لوگوں میں گزشتہ سال آپ کے لئے لکھا تھا. 370 00:17:42,770 --> 00:17:45,340 تم نے بھی اپنے اپنے افعال لکھ سکتے ہیں. 371 00:17:45,340 --> 00:17:48,440 >> اور آپ کے پاس ہو سکتا ہے اگرچہ pset1 میں واضح طور C میں اس کیا، اور 372 00:17:48,440 --> 00:17:51,866 تم واقعی میں لکھنے کے لئے کی ضرورت نہیں ہے آپ کی problem-- کیونکہ خود کی تقریب 373 00:17:51,866 --> 00:17:53,990 میں شاید مشکل ہے جبکہ سب سے پہلے آپ دیکھیں گے glance-- 374 00:17:53,990 --> 00:17:57,910 آخر کے ساتھ حل کیا جا سکتا کوڈ کی سب نہیں ہے کہ بہت سے لائنوں. 375 00:17:57,910 --> 00:18:01,140 لیکن اس معاملے میں، انہوں نے کہا کہ کے ساتھ آپ کی اپنی تقریب کو لکھنے کا، 376 00:18:01,140 --> 00:18:03,570 دے C ہے کہ احساس آپ کو اس کی صلاحیت. 377 00:18:03,570 --> 00:18:06,940 >> میں، آج کے منبع کوڈ میں جانے کے لئے جا رہا ہوں جس، پہلے ہی آن لائن دستیاب ہے 378 00:18:06,940 --> 00:18:10,900 اور میں آگے اور کھلی جا رہا ہوں تقریب 0.C نامی ایک پروگرام، 379 00:18:10,900 --> 00:18:14,620 اور تقریب صفر میں ہم کچھ چیزیں دیکھیں گے. 380 00:18:14,620 --> 00:18:19,160 پہلا لائنز 18 کے ذریعے 23 اپنے اہم تقریب ہے. 381 00:18:19,160 --> 00:18:22,414 اور اب ہم پڑھنے کے لئے شروع کر رہے ہیں کہ ہم مکھی پر نہیں لکھ رہے کہ کوڈ، 382 00:18:22,414 --> 00:18:25,080 بلکہ اس کی بجائے میں نے پہلے ہی لکھا ہے یا ایک مسئلہ میں آپ کی مقرر کردہ 383 00:18:25,080 --> 00:18:27,910 ہونے کے حاصل کر سکتے ہیں پیشگی میں لکھا گیا. 384 00:18:27,910 --> 00:18:30,040 ایک اچھا طریقہ شروع کرنے کے لئے کسی اور کے کوڈ کو پڑھنے 385 00:18:30,040 --> 00:18:31,400 مرکزی تقریب کے لئے نظر ہے. 386 00:18:31,400 --> 00:18:34,420 جہاں اس اندراج پتہ نقطہ پروگرام چلانے کے لئے ہے، 387 00:18:34,420 --> 00:18:36,580 اور پھر وہاں سے منطقی طور پر اس کی پیروی. 388 00:18:36,580 --> 00:18:40,190 >> تو اس پروگرام بظاہر پرنٹس ایک بڑی آنت کے بعد آپ کا نام. 389 00:18:40,190 --> 00:18:42,490 پھر ہم GetString کا استعمال CS50 لائبریری سے 390 00:18:42,490 --> 00:18:46,050 ایک سٹرنگ، یا ایک لفظ یا فقرہ حاصل کرنے کے لئے بورڈ میں صارف کی طرف سے. 391 00:18:46,050 --> 00:18:48,390 اور پھر یہ ہے بات یہاں PrintName. 392 00:18:48,390 --> 00:18:51,420 >> اب PrintName ایک نہیں ہے سی کے ساتھ آتا ہے کہ تقریب 393 00:18:51,420 --> 00:18:52,970 یہ معیاری io.h. میں نہیں ہے 394 00:18:52,970 --> 00:18:55,570 یہ cs50.h. میں نہیں ہے 395 00:18:55,570 --> 00:18:57,880 یہ ایک ہی فائل میں نہیں بلکہ ہے. 396 00:18:57,880 --> 00:19:01,000 میں نیچے سکرال نوٹس ایک بٹ لائنوں 25 27-- کرنے 397 00:19:01,000 --> 00:19:05,330 اس تبصرہ کا صرف ایک خوبصورت طریقہ ہے ستاروں اور slashes کے کا استعمال کرتے ہوئے آپ کے کوڈ. 398 00:19:05,330 --> 00:19:07,320 یہ ایک کثیر لائن ہے تبصرہ، اور یہ صرف ہے 399 00:19:07,320 --> 00:19:10,570 کے نیلے میں تفصیل اس تقریب کرتا ہے. 400 00:19:10,570 --> 00:19:14,530 >> 31 کے ذریعے لائنوں میں 28 کیونکہ، مجھے ایک سپر سادہ تقریب لکھا ہے 401 00:19:14,530 --> 00:19:16,280 جس کا نام PrintName ہے. 402 00:19:16,280 --> 00:19:19,560 یہ کس طرح بہت سے لیتا ہے دلائل آپ کہیں گے؟ 403 00:19:19,560 --> 00:19:25,120 تو ایک دلیل ایک ہے کیونکہ قوسین کے اندر درج دلیل. 404 00:19:25,120 --> 00:19:27,000 جس کی قسم سٹرنگ ہے. 405 00:19:27,000 --> 00:19:30,240 جس PrintName کہنا ہے اس بلیک باکس کی طرح ہے 406 00:19:30,240 --> 00:19:32,910 لیتا ہے یا تقریب ان پٹ ایک تار کے طور پر. 407 00:19:32,910 --> 00:19:35,730 >> اور اس سٹرنگ کا نام آسانی سے نام ہو جائے گا. 408 00:19:35,730 --> 00:19:37,840 نہیں، نہیں ن، لیکن نام. 409 00:19:37,840 --> 00:19:41,090 تو PrintName کیا کرتا ہے؟ 410 00:19:41,090 --> 00:19:42,210 یہ اچھا آسان ہے. 411 00:19:42,210 --> 00:19:45,390 صرف کوڈ کا ایک لائن کے طور پر printf کے، لیکن بظاہر یہ 412 00:19:45,390 --> 00:19:47,950 باہر پرنٹ "ہیلو،" تو اور تو. 413 00:19:47,950 --> 00:19:50,070 کہاں اور تو دلیل سے آتا ہے. 414 00:19:50,070 --> 00:19:52,300 >> اب یہ یہاں ایک بہت بڑی بدعت نہیں ہے. 415 00:19:52,300 --> 00:19:56,710 سچ میں، میں کہ سکتا پروگرام لیا ہے کوڈ کی ایک لائن کے ساتھ لکھا گیا ہے 416 00:19:56,710 --> 00:20:00,190 یہاں اس کو ڈال کی طرف سے، اور کچھ کرنے کے لئے تبدیل کر دیا گیا 417 00:20:00,190 --> 00:20:04,920 کہ کچھ چھ یا سات یا تو شامل یہاں نیچے کوڈ کی لائنیں تمام طریقہ. 418 00:20:04,920 --> 00:20:08,190 >> لیکن یہ ایک کی مشق ہے تجرید کے طور پر جانا اصول. 419 00:20:08,190 --> 00:20:12,550 قسم کی ایک نئی کے اندر encapsulating ایک نام ہے کہ تقریب، اور بہتر 420 00:20:12,550 --> 00:20:14,590 ابھی تک اس کے نام لفظی یہ کیا کرتا ہے کا کہنا ہے کہ. 421 00:20:14,590 --> 00:20:16,880 میں کہ نہیں ہے printf-- مطلب خاص طور پر وضاحتی. 422 00:20:16,880 --> 00:20:18,932 میں نے ایک بنانے کے لئے چاہتے ہیں تو پہیلی ٹکڑا، یا میں تو 423 00:20:18,932 --> 00:20:21,140 ایک تقریب پیدا کرنا چاہتے ہیں کہ، کسی کا نام پرنٹ 424 00:20:21,140 --> 00:20:23,230 ایسا کرنے کے خوبصورتی کہ میں اصل میں کر سکتے ہیں 425 00:20:23,230 --> 00:20:27,170 اس تقریب کو ایک نام دیں کہ یہ کیا کرتا ہے بیان. 426 00:20:27,170 --> 00:20:29,844 >> اب یہ ایک ان پٹ میں لیتا ہے میں منمانے نام ہے، 427 00:20:29,844 --> 00:20:32,760 لیکن اس سے بھی حیرت انگیز وضاحتی ہے اس کی بجائے ایک چھوٹا سا زیادہ ہونے کی وجہ سے 428 00:20:32,760 --> 00:20:36,140 ایس طرح عام باطل، اب کے لئے، صرف کا مطلب 429 00:20:36,140 --> 00:20:38,330 اس تقریب نہیں ہے مجھے کچھ واپس ہاتھ. 430 00:20:38,330 --> 00:20:41,127 یہ GetString طرح نہیں ہے کہ لفظی ایک تار مجھے دیتا واپس 431 00:20:41,127 --> 00:20:43,960 ہم جیسے کاغذ کے ٹکڑے ٹکڑے کے ساتھ کیا اپنے ہم جماعتوں نے گزشتہ ہفتے کے ساتھ، 432 00:20:43,960 --> 00:20:45,990 بلکہ یہ صرف ایک ضمنی اثر ہے. 433 00:20:45,990 --> 00:20:48,080 یہ پردے پر کچھ پرنٹ. 434 00:20:48,080 --> 00:20:53,880 >> دن کے آخر میں، تو تو میں کروں تقریب-0، ./function-0، 435 00:20:53,880 --> 00:20:55,450 ہم اس کو میرے نام کے لئے پوچھتا ہے دیکھیں گے کہ. 436 00:20:55,450 --> 00:20:58,150 میں نے اپنے نام کی اقسام داؤد ٹائپ، اور اس. 437 00:20:58,150 --> 00:21:01,080 میں روب کے ساتھ پھر سے کرتے ہیں، یہ کہا جا رہا ہے "ہیلو، روب." 438 00:21:01,080 --> 00:21:04,280 تو ایک آسان خیال، لیکن شاید اس ذہنی طور سے extrapolate کر 439 00:21:04,280 --> 00:21:06,750 آپ کے پروگراموں کے طور پر کہ ، زیادہ پیچیدہ ایک چھوٹی سی 440 00:21:06,750 --> 00:21:10,290 اور تم میں سے ایک حصہ لکھنے کے لئے چاہتے ہیں کوڈ اور کال کہ code-- پکارتے 441 00:21:10,290 --> 00:21:13,270 کچھ وضاحتی کی طرف سے اس code-- PrintName جیسے نام، 442 00:21:13,270 --> 00:21:15,600 C ہمیں اس کی صلاحیت برداشت کرتا ہے. 443 00:21:15,600 --> 00:21:17,660 >> یہاں ایک سادہ مثال ہے. 444 00:21:17,660 --> 00:21:22,940 مثال کے طور پر، میں نے ایک کھلا ہے تو return.c کہا آج سے فائل، 445 00:21:22,940 --> 00:21:24,270 میں یہاں کیا کیا ہے محسوس. 446 00:21:24,270 --> 00:21:26,330 اس کی اہم تقریب کے سب سے زیادہ printf ہے. 447 00:21:26,330 --> 00:21:30,360 میں سب سے پہلے منمانے ایک ابتدا نمبر 2 کے لئے کہا جاتا متغیر X. 448 00:21:30,360 --> 00:21:34,110 میں تو ایکس ہے "پرنٹ میں نے "X کی قدر میں گزر. 449 00:21:34,110 --> 00:21:35,500 تو میں صرف یہ کیا کہہ رہا ہوں. 450 00:21:35,500 --> 00:21:37,208 >> اب میں صرف دلیری ہوں printf کے ساتھ دعوی. 451 00:21:37,208 --> 00:21:42,050 میں نے اس کی قیمت ایکس cubing رہا ہوں، اور میں ہوں ایک تقریب بلا کی طرف سے ایسا کرنے 452 00:21:42,050 --> 00:21:45,590 کہا جاتا کیوب انتقال دلیل کے طور پر ایکس میں، 453 00:21:45,590 --> 00:21:49,300 اور اس کے بعد کی پیداوار بچت متغیر خود میں، ایکس. 454 00:21:49,300 --> 00:21:51,340 تو میں X کی قدر clobbering کی ہوں. 455 00:21:51,340 --> 00:21:53,380 میں زیرکر رہا ہوں ساتھ X کی قدر ہے جو کچھ بھی 456 00:21:53,380 --> 00:21:56,510 بلا کا نتیجہ اس کیوب تقریب ہے. 457 00:21:56,510 --> 00:21:59,530 اور پھر میں نے کچھ باہر پرنٹ بندوق چیزیں یہاں میں نے کیا کہہ. 458 00:21:59,530 --> 00:22:01,600 >> تو پھر مکعب کیا ہے؟ 459 00:22:01,600 --> 00:22:03,510 بنیادی طور پر کیا نوٹس یہاں مختلف. 460 00:22:03,510 --> 00:22:05,540 میں تقریب دیا ہے اس سے پہلے کے طور پر ایک نام. 461 00:22:05,540 --> 00:22:08,270 میں ایک دلیل کے لئے ایک نام کی وضاحت کی ہے. 462 00:22:08,270 --> 00:22:11,650 یہ ن کی بجائے نام کی کہا جاتا ہے اس وقت، لیکن میں چاہتا ہوں کچھ کہہ سکتے ہیں. 463 00:22:11,650 --> 00:22:12,650 لیکن یہ مختلف ہے. 464 00:22:12,650 --> 00:22:14,080 بائیں پر یہ بات. 465 00:22:14,080 --> 00:22:16,290 ماضی میں اس سے کیا مطلوبہ الفاظ کی تھی؟ 466 00:22:16,290 --> 00:22:16,870 لڑکے. 467 00:22:16,870 --> 00:22:18,580 اب یہ ظاہر ہے int ہے. 468 00:22:18,580 --> 00:22:20,630 >> تو کیا شاید دور لے رہا ہے؟ 469 00:22:20,630 --> 00:22:24,090 باطل ابیوینجک جبکہ طرح کی عدم، اور اس صورت تھی. 470 00:22:24,090 --> 00:22:25,970 PrintName کچھ نہیں واپس. 471 00:22:25,970 --> 00:22:27,942 یہ کچھ کیا ہے، لیکن یہ مجھے واپس ہاتھ نہیں تھا 472 00:22:27,942 --> 00:22:30,650 میں ڈال سکتے ہیں کہ کچھ ایک ہی علامت کے بائیں ہاتھ کی طرف 473 00:22:30,650 --> 00:22:32,460 کی طرح میں 22 لائن پر یہاں کیا ہے. 474 00:22:32,460 --> 00:22:36,780 >> تو میں اوپر 30 میں کا کہنا ہے کہ، کیا شاید مطلب ہے کہ 475 00:22:36,780 --> 00:22:38,610 کیا کیوب کے بارے میں میرے لئے ہے؟ 476 00:22:38,610 --> 00:22:41,110 جی ہاں؟ 477 00:22:41,110 --> 00:22:42,310 یہ ایک عددی واپس. 478 00:22:42,310 --> 00:22:44,590 تو اس کے لئے، مجھے واپس ہاتھ کاغذ کے مثال کے طور پر، ایک ٹکڑا 479 00:22:44,590 --> 00:22:46,580 جس پر یہ جواب لکھا ہے. 480 00:22:46,580 --> 00:22:50,130 2 cubed کی، یا 3 cubed کی، یا 4 cubed-- میں، میں منظور ہے جو کچھ بھی 481 00:22:50,130 --> 00:22:51,540 اور کس طرح میں اس کو لاگو کیا ہے؟ 482 00:22:51,540 --> 00:22:54,810 ویسے، ن کے اوقات ن کے اوقات ن میں ایک قدر کیوب سکتا ہے کس طرح ہے. 483 00:22:54,810 --> 00:22:57,110 تو پھر، سپر آسان خیال، لیکن ہے، demonstrative 484 00:22:57,110 --> 00:23:00,100 اب ہم افعال لکھ سکتے ہیں کس طرح کہ اصل میں ہمیں واپس تھا 485 00:23:00,100 --> 00:23:02,380 دلچسپی کے ہو سکتا ہے کہ اقدار. 486 00:23:02,380 --> 00:23:05,740 >> کی ایک آخری مثال کے طور پر نظر آتے ہیں یہاں تقریب سے ایک ملاقات کی. 487 00:23:05,740 --> 00:23:08,530 اس مثال میں، یہ شروع ہوتا ہے زیادہ مجبور حاصل کرنے کے لئے. 488 00:23:08,530 --> 00:23:12,400 تو تقریب میں، اس پروگرام نوٹس بالآخر 489 00:23:12,400 --> 00:23:14,920 GetPositiveInt نامی ایک تقریب بلاتا ہے. 490 00:23:14,920 --> 00:23:17,800 GetPositiveInt ایک نہیں ہے CS50 لائبریری میں تقریب، 491 00:23:17,800 --> 00:23:20,400 لیکن ہم ہم نے فیصلہ کیا یہ موجود چاہوں گا. 492 00:23:20,400 --> 00:23:24,550 >> تو ہم نے اس کے بعد فائل میں ذیل میں سکرال، میں لاگو کرنے کے بارے میں چلا گیا کس طرح محسوس 493 00:23:24,550 --> 00:23:26,560 مثبت int حاصل، اور میں یہ زیادہ مجبور کا کہنا ہے کہ 494 00:23:26,560 --> 00:23:28,992 یہ ایک مہذب ہے کیونکہ کوڈ کی لائنوں کی تعداد. 495 00:23:28,992 --> 00:23:30,700 یہ صرف ایک پاگل نہیں ہے چھوٹا سا کھلونا پروگرام. 496 00:23:30,700 --> 00:23:33,870 یہ اصل میں کچھ غلطی کی چیکنگ ہے اور زیادہ مفید کچھ کر رہے. 497 00:23:33,870 --> 00:23:38,470 >> آپ walkthrough نہیں دیکھا ہے تو ہم pset1 میں سرایت ہے کہ ویڈیوز، 498 00:23:38,470 --> 00:23:42,350 اس کی ایک قسم ہے جانتے ہیں کہ روح میں اسی طرح سی لوپ، 499 00:23:42,350 --> 00:23:44,270 چیزوں کو سکریچ کی قسم کے لئے کر سکتے ہیں. 500 00:23:44,270 --> 00:23:46,320 اور ایسا کہتے ہیں. 501 00:23:46,320 --> 00:23:47,500 یہ باہر پرنٹ کریں. 502 00:23:47,500 --> 00:23:51,860 تو آگے بڑھو اور (ن) کے حاصل ایک int حاصل اور (ن) میں محفوظ، 503 00:23:51,860 --> 00:23:55,760 اور رکھنے کے بار بار ایسا کرنے پھر اتنی دیر کے طور پر (ن) سے کم میں سے ایک ہے. 504 00:23:55,760 --> 00:23:58,720 >> تو (ن) سے بھی کم ایک ہونے جا رہا ہے صرف انسانی تعاون نہیں رہا ہے. 505 00:23:58,720 --> 00:24:01,980 وہ ٹائپ کر رہا ہے تو 0 یا -1 یا -50 میں، 506 00:24:01,980 --> 00:24:04,790 اس لوپ میں رکھنے کے لئے جا رہا ہے بار بار قتل. 507 00:24:04,790 --> 00:24:07,549 اور آخر میں، نوٹس صرف قیمت واپس. 508 00:24:07,549 --> 00:24:09,590 تو اب ہم ایک تقریب ہے یہ اچھا ہوتا 509 00:24:09,590 --> 00:24:14,040 CS50 میں لاگو کریں گے تو آپ کے لئے cs50.h اور ختم cs50.c، 510 00:24:14,040 --> 00:24:16,520 لیکن یہاں اب ہم کر سکتے ہیں اس نے خود کو لاگو. 511 00:24:16,520 --> 00:24:19,230 >> لیکن کچھ اہم تفصیلات پر دو تبصرے. 512 00:24:19,230 --> 00:24:24,390 One-- کیوں int اعلان کیا (ن)، لائن 29، آپ کو لگتا ہے 513 00:24:24,390 --> 00:24:27,139 اس کی بجائے صرف کرنے کے یہاں، جو 514 00:24:27,139 --> 00:24:28,930 کے ساتھ زیادہ مسلسل ہم نے گزشتہ ہفتے کیا کیا؟ 515 00:24:28,930 --> 00:24:29,430 جی ہاں؟ 516 00:24:29,430 --> 00:24:34,485 517 00:24:34,485 --> 00:24:35,110 ایک اچھا خیال ہے. 518 00:24:35,110 --> 00:24:37,080 اگر ایسا ہے تو ہم اس کو دیا گیا یہاں، یہ ہم جیسے 519 00:24:37,080 --> 00:24:39,110 بار بار یہ اعلان رکھنے. 520 00:24:39,110 --> 00:24:42,000 میں اور خود کی ہے نہیں مشکلات، SE فی، 521 00:24:42,000 --> 00:24:43,940 ہم صرف کی ضرورت ہے کیونکہ اور پھر ایک بار قیمت 522 00:24:43,940 --> 00:24:45,330 ہم ویسے بھی ایک نیا حاصل کرنے کے لئے جا رہے ہیں. 523 00:24:45,330 --> 00:24:45,940 بلکہ ایک اچھا خیال. 524 00:24:45,940 --> 00:24:46,440 جی ہاں؟ 525 00:24:46,440 --> 00:24:52,770 526 00:24:52,770 --> 00:24:53,330 >> بند کریں. 527 00:24:53,330 --> 00:24:59,030 میں (ن) پر اعلان کیا ہے کیونکہ لائن 29 لوپ سے باہر، 528 00:24:59,030 --> 00:25:01,390 اس میں قابل رسائی ہے اس پورے تقریب. 529 00:25:01,390 --> 00:25:05,400 دیگر افعال کی وجہ سے ن ان گھوبگھرالی کے اندر اب بھی ہے 530 00:25:05,400 --> 00:25:06,470 یہاں کی تیاریاں. 531 00:25:06,470 --> 00:25:07,940 اس بات کا یقین So--. 532 00:25:07,940 --> 00:25:12,430 533 00:25:12,430 --> 00:25:12,940 >> بالکل ٹھیک. 534 00:25:12,940 --> 00:25:14,356 تو اس بات سے بھی زیادہ ہے. 535 00:25:14,356 --> 00:25:18,600 ہم بجائے اعلان ن یہیں 32 لائن پر، 536 00:25:18,600 --> 00:25:22,340 اس کا اندازہ لگانا کیونکہ مسئلہ ہے کہاں میں اس تک رسائی حاصل کرنے کی ضرورت ہے؟ 537 00:25:22,340 --> 00:25:25,620 لائن 34، اور انگوٹھے کے سادہ اصول ہے 538 00:25:25,620 --> 00:25:30,060 آپ کو صرف ایک متغیر کا استعمال کر سکتے ہیں سب سے زیادہ حال ہی میں گھوبگھرالی منحنی خطوط وحدانی کے اندر 539 00:25:30,060 --> 00:25:31,420 جس میں آپ کو یہ اعلان کیا. 540 00:25:31,420 --> 00:25:35,230 >> بدقسمتی سے، 34 لائن ایک ہی لائن میں، بہت دیر ہو چکی ہے 541 00:25:35,230 --> 00:25:38,560 میں نے پہلے ہی بند کر دیا ہے کیونکہ لائن 33 گھوبگھرالی منحنی خطوط وحدانی 542 00:25:38,560 --> 00:25:41,220 اس کے مساوی لائن 30 گھوبگھرالی منحنی خطوط وحدانی. 543 00:25:41,220 --> 00:25:44,180 اور اس طرح یہ کہنے کا ایک طریقہ ہے اس متغیر INT scoped ہے کہ، 544 00:25:44,180 --> 00:25:46,970 تو صرف اندر، بات کرنے کے لئے ان گھوبگھرالی منحنی خطوط وحدانی کے. 545 00:25:46,970 --> 00:25:48,910 یہ صرف ان کے باہر موجود نہیں ہے. 546 00:25:48,910 --> 00:25:51,580 >> تو یقینا، میں ہے تو اس غلط، مجھے کوڈ کو بچانے کے 547 00:25:51,580 --> 00:25:53,530 کے طور پر یہ غلط طریقے سے لکھا is--. 548 00:25:53,530 --> 00:25:57,990 مجھے آگے بڑھیں اور کرتے ہیں تقریب 1، اور نوٹس غلطی. 549 00:25:57,990 --> 00:26:03,502 اگھوشیت شناخت کنندہ (ن) کے استعمال یہاں ہے جو لائن 35، پر. 550 00:26:03,502 --> 00:26:05,210 اور ہم سکرال مزید، ایک. 551 00:26:05,210 --> 00:26:08,750 اگھوشیت کا استعمال 34 لائن پر شناخت ن. 552 00:26:08,750 --> 00:26:11,200 >> تو سنکلک، بجنا، یہ اس کو دیکھ رہا ہے 553 00:26:11,200 --> 00:26:13,720 اگرچہ موجود نہیں ہے واضح طور پر یہ ضعف ہے. 554 00:26:13,720 --> 00:26:16,090 تو ایک سادہ حل وہاں اس کا اعلان کیا جاتا ہے. 555 00:26:16,090 --> 00:26:18,790 >> اب مجھے کرنے کے لئے سکرال فائل کے سب سے اوپر. 556 00:26:18,790 --> 00:26:21,080 کے طور پر تم پر باہر چھلانگ تھوڑا مختلف ہونے کی وجہ سے 557 00:26:21,080 --> 00:26:23,070 سامان سے ہم نے گزشتہ ہفتے کو دیکھا؟ 558 00:26:23,070 --> 00:26:26,990 نہ صرف نام میں ہے، نہ صرف کرتے ہیں میں، کچھ تیز اوپر بھی شامل ہے 559 00:26:26,990 --> 00:26:29,340 میں ہوں کچھ ہے ایک پروٹوٹائپ بلا. 560 00:26:29,340 --> 00:26:36,100 اب اس کے لئے بہت طرح لگ رہا ہے کیا ہم صرف 27 لائن پر ایک لمحے پہلے دیکھا. 561 00:26:36,100 --> 00:26:39,230 >> تو ایک مختلف سے اندازہ دو میں نے یہ کیا ہے، کیوں غلطی پیغام. 562 00:26:39,230 --> 00:26:42,050 مجھے آگے بڑھیں اور وہاں ان لائنوں کو خارج کر دیں. 563 00:26:42,050 --> 00:26:44,240 اور اس طرح ہم پروٹوٹائپ کے بارے میں کچھ نہیں جانتے. 564 00:26:44,240 --> 00:26:45,430 اس فائل ریمیک. 565 00:26:45,430 --> 00:26:46,890 تقریب سے ایک بنانے کے. 566 00:26:46,890 --> 00:26:48,090 اور اب، لات، چار غلطیاں. 567 00:26:48,090 --> 00:26:50,220 کے سب سے پہلے کرنے کے لئے سکرال. 568 00:26:50,220 --> 00:26:55,070 >> تقریب کی انترنہیت اعلان مثبت int حاصل C99 میں باطل ہے. 569 00:26:55,070 --> 00:26:57,780 C99، صرف 1999 ء کا مطلب زبان کے ورژن 570 00:26:57,780 --> 00:26:59,710 ہم نے استعمال کر رہے ہیں کیا ہے جس میں C،. 571 00:26:59,710 --> 00:27:01,050 تو اس کا کیا مطلب ہے؟ 572 00:27:01,050 --> 00:27:05,250 ویسے C-- اور زیادہ خاص طور پر C خوبصورت گونگا پروگراموں compilers-- ہیں. 573 00:27:05,250 --> 00:27:07,420 وہ صرف آپ کیا جانتے ہیں ان سے کہا، اور یہ کہ 574 00:27:07,420 --> 00:27:08,960 گزشتہ ہفتے سے اصل موضوع. 575 00:27:08,960 --> 00:27:12,910 >> مسئلہ میں اگر ہے یہاں نام کو لاگو کرنے کے بارے میں، 576 00:27:12,910 --> 00:27:17,640 اور میں نامی ایک تقریب کہتے ہیں 20 لائن پر یہاں GetPositiveInt، 577 00:27:17,640 --> 00:27:22,520 اس تقریب تکنیکی نہیں سنکلک 27 لائن دیکھتا تک موجود ہیں. 578 00:27:22,520 --> 00:27:25,450 بدقسمتی سے، سنکلک ہے سب سے اوپر، نیچے، دائیں، بائیں باتیں کر رہے، 579 00:27:25,450 --> 00:27:29,580 اسے نہیں دیکھا ہے کیونکہ GetPositiveInt کے عمل، 580 00:27:29,580 --> 00:27:32,400 لیکن یہ آپ کی کوشش کر دیکھتا ہے یہاں اسے استعمال کرنے کے لئے، 581 00:27:32,400 --> 00:27:35,810 یہ صرف چللاو bail-- جا رہا ہے ایک غلطی کے ساتھ آپ شاید پیغام پر 582 00:27:35,810 --> 00:27:38,440 خفیہ، اور اصل میں نہیں ہے فائل مرتب. 583 00:27:38,440 --> 00:27:41,940 >> تو ایک نام نہاد پروٹوٹائپ اپ یہاں اقرار بے کار ہے. 584 00:27:41,940 --> 00:27:47,870 لفظی، میں یہاں نیچے چلا گیا اور میں کاپی اور اس چسپاں، اور میں اسے یہاں ڈال. 585 00:27:47,870 --> 00:27:51,020 صفر زیادہ مناسب ہو گا، تو ہم کریں گے لفظی کاپی اور یہ اس وقت پیسٹ. 586 00:27:51,020 --> 00:27:52,854 میں لفظی کاپی اور چسپاں. 587 00:27:52,854 --> 00:27:54,270 واقعی صرف ایک روٹی crumb طرح کے طور پر. 588 00:27:54,270 --> 00:27:56,260 >> سنکلک کرنے کے لئے ایک چھوٹا سا اشارہ. 589 00:27:56,260 --> 00:27:58,860 میں نے یہ کیا کرتا ہے نہیں جانتے ابھی تک، لیکن میں نے تم سے وعدہ کر رہا ہوں 590 00:27:58,860 --> 00:28:00,260 اس کے آخر میں موجود ہے. 591 00:28:00,260 --> 00:28:04,010 اس میں line-- اور اس وجہ سے ہے لائن 16-- ایک نیم وقفہ کے ساتھ ختم ہوتا ہے. 592 00:28:04,010 --> 00:28:05,486 یہ ڈیزائن کی طرف سے بے کار ہے. 593 00:28:05,486 --> 00:28:05,986 جی ہاں؟ 594 00:28:05,986 --> 00:28:11,340 595 00:28:11,340 --> 00:28:14,360 >> آپ کو آپ کی لائبریری سے منسلک نہیں کیا تو اوہ، اچھا سوال the-- لئے. 596 00:28:14,360 --> 00:28:17,350 تیز ہیڈر فائل شامل inclusions پر مشتمل ہے. 597 00:28:17,350 --> 00:28:20,040 چاہئے تقریبا be-- کرنے کی ضرورت ہے ہمیشہ سب سے اوپر ہونا 598 00:28:20,040 --> 00:28:23,270 کے لئے ایک similar-- کے لئے فائل کے بالکل اسی وجہ سے، جی ہاں. 599 00:28:23,270 --> 00:28:26,430 سٹینڈرڈ کیونکہ io.h لفظی ایک لائن ہے 600 00:28:26,430 --> 00:28:30,560 اس طرح، لیکن لفظ printf کے ساتھ، اور اس کے دلائل اور اس کی واپسی کی قسم کے ساتھ. 601 00:28:30,560 --> 00:28:33,310 اور اس طرح تیز کرنے کی طرف سے اپ شامل ہیں یہاں، آپ لفظی کیا کر رہے ہیں 602 00:28:33,310 --> 00:28:36,380 مواد کاپی اور چسپاں کیا جاتا ہے کسی کے کچھ سب سے اوپر لکھا. 603 00:28:36,380 --> 00:28:39,660 اس طرح میں آپ کے کوڈ cluing ان افعال موجود ہیں حقیقت یہ ہے کہ. 604 00:28:39,660 --> 00:28:40,160 جی ہاں؟ 605 00:28:40,160 --> 00:28:47,520 606 00:28:47,520 --> 00:28:48,260 >> بالکل. 607 00:28:48,260 --> 00:28:51,690 تو ایک بہت ہوشیار اور درست حل ہو جائے گا، کیا آپ جانتے ہیں؟ 608 00:28:51,690 --> 00:28:53,760 مجھے پتہ نہیں ہے کیا پروٹوٹائپ ہے، لیکن مجھے پتہ 609 00:28:53,760 --> 00:28:56,390 میں C صرف ہے کہ سمجھ تو گونگا اور اوپر سے نیچے rethinks. 610 00:28:56,390 --> 00:28:57,820 ویسے یہ چاہتا ہے اسے دے دو. 611 00:28:57,820 --> 00:29:01,650 یہ پیسٹ، ہے کہ کوڈ کاٹ دو سب سے اوپر، اور اب نیچے ذیل اہم دھکا. 612 00:29:01,650 --> 00:29:03,470 یہ بھی مسئلہ کو حل کرے گا. 613 00:29:03,470 --> 00:29:07,409 >> لیکن آپ کو بہت آسانی کے ساتھ آ سکتا A B فون کرنے کی ضرورت ہے جس میں ایک منظر نامے، 614 00:29:07,409 --> 00:29:10,075 اور شاید بی اے اس پر واپس بلاتا تکرار کہا جاتا ہے کچھ، ہے 615 00:29:10,075 --> 00:29:11,370 اور ہم واپس آ جائیں گے. 616 00:29:11,370 --> 00:29:13,911 اور یہ یا ایک اچھا ہو نہیں کر سکتے ہیں بات، لیکن اگر آپ کو یقینی طور پر کر سکتے ہیں 617 00:29:13,911 --> 00:29:15,110 اس حل کو توڑنے. 618 00:29:15,110 --> 00:29:17,690 >> اور اس کے علاوہ، میں کروں گا stylistically دعوی، 619 00:29:17,690 --> 00:29:20,760 خاص طور پر جب آپ کے پروگراموں اس طویل اور اس طویل بن، 620 00:29:20,760 --> 00:29:23,064 یہ صرف سپر آسان ہے سب سے اوپر اہم ڈال کرنے کے لئے 621 00:29:23,064 --> 00:29:25,730 یہ بات ہے کیونکہ سب سے زیادہ پروگرامرز کے بارے میں دیکھ بھال کرنے کے لئے جا رہے ہیں. 622 00:29:25,730 --> 00:29:28,150 اور اس طرح یہ ایک چھوٹا سا صاف ستھرا ہے، بلاشبہ، اس طرح کرنے کے لئے 623 00:29:28,150 --> 00:29:30,380 میں اصل میں اس نے کیا کیا ایک پروٹوٹائپ کے ساتھ بھی 624 00:29:30,380 --> 00:29:33,396 یہ ایک چھوٹا سا لگ رہا ہے اگرچہ پہلی نظر میں بے کار. 625 00:29:33,396 --> 00:29:33,895 جی ہاں؟ 626 00:29:33,895 --> 00:29:36,472 627 00:29:36,472 --> 00:29:37,680 معذرت، آپ یہ زور کہہ سکتے ہیں؟ 628 00:29:37,680 --> 00:29:45,650 629 00:29:45,650 --> 00:29:49,580 >> آپ کے مقامات کو سوئچ تو عمل اور پروٹوٹائپ؟ 630 00:29:49,580 --> 00:29:51,270 تو یہ ایک اچھا سوال ہے. 631 00:29:51,270 --> 00:29:53,780 اگر آپ اس کے نیچے دوبارہ اعلان یہاں، کیا ہوتا ہے دیکھتے ہیں. 632 00:29:53,780 --> 00:29:55,530 میں اس کے نیچے رکھ تو یہاں، آپ کو کہہ رہے ہیں. 633 00:29:55,530 --> 00:29:57,860 634 00:29:57,860 --> 00:29:58,360 اوہ، معاف کرنا. 635 00:29:58,360 --> 00:29:58,859 زور؟ 636 00:29:58,859 --> 00:30:02,000 637 00:30:02,000 --> 00:30:04,011 بھی زور. 638 00:30:04,011 --> 00:30:04,760 اوہ، اچھا سوال ہے. 639 00:30:04,760 --> 00:30:05,860 اس تقریب باطل گے؟ 640 00:30:05,860 --> 00:30:08,901 تم جانتے ہو، ان تمام سالوں کے بعد، میں اس کے بعد ایک پروٹوٹائپ ڈال کبھی نہیں ہے. 641 00:30:08,901 --> 00:30:13,810 تو تقریب 1 کروں اس کرنے کے بعد. 642 00:30:13,810 --> 00:30:15,279 >> [بڑبڑاہٹ] 643 00:30:15,279 --> 00:30:16,320 DAVID J. MALAN: اوہ، انتظار. 644 00:30:16,320 --> 00:30:17,944 ہم اب بھی سب سے اوپر سب کچھ ڈال دیا ہے. 645 00:30:17,944 --> 00:30:21,400 تو میں ہوں اگر، یہاں اس کو کرتے ہیں درست طریقے سے آپ کے سوال کو سمجھنے. 646 00:30:21,400 --> 00:30:24,700 میں بھی شامل ہے، سب کچھ ڈال رہا ہوں اہم اوپر پروٹوٹائپ، 647 00:30:24,700 --> 00:30:28,180 لیکن میں پروٹوٹائپ ڈال رہا ہوں عمل درآمد کے نیچے. 648 00:30:28,180 --> 00:30:33,190 >> میں سے ایک بنانے کے، تو میں ہو رہی ہے تو واپس ایک error-- غیر استعمال شدہ متغیر (ن). 649 00:30:33,190 --> 00:30:37,280 650 00:30:37,280 --> 00:30:37,860 اوہ، وہاں. 651 00:30:37,860 --> 00:30:38,360 آپ کا شکریہ. 652 00:30:38,360 --> 00:30:39,430 چلو دیکھتے ہیں، ہم اس سے چھٹکارا حاصل. 653 00:30:39,430 --> 00:30:41,304 یہ، ایک مختلف بگ ہے تو اس کو نظر انداز کرتے ہیں. 654 00:30:41,304 --> 00:30:43,910 واقعی بہت تیزی سے اس ریمیک. 655 00:30:43,910 --> 00:30:48,100 >> ٹھیک ہے، تو ڈیٹا دلیل نہیں شکل سٹرنگ کی طرف سے استعمال کیا جاتا ہے 656 00:30:48,100 --> 00:30:52,310 اوہ (ن)، اس کی وجہ سے ہے میں یہاں ان کے لئے تبدیل کر دیا گیا. 657 00:30:52,310 --> 00:30:55,885 ٹھیک ہے، ہم جانتے ہیں کہ جواب to-- ٹھیک جا رہا ہے، ہم یہاں جانا. 658 00:30:55,885 --> 00:31:00,560 آہ، مثبت کے لئے شکریہ. 659 00:31:00,560 --> 00:31:03,430 ٹھیک ہے، میں اس کوڈ کو درست کریں گے after-- اس مخصوص مسئلے کو نظر انداز 660 00:31:03,430 --> 00:31:08,300 یہ کام کرتا ہے was-- سے جواب ہے. 661 00:31:08,300 --> 00:31:11,560 >> تو یہ ادلیکھت نہیں ہے کیا آپ کو صرف کیا ہے. 662 00:31:11,560 --> 00:31:14,800 میں سنکلک شبہ اس طرح میں لکھا ہے 663 00:31:14,800 --> 00:31:18,420 یہ آپ کے پروٹوٹائپ کو نظر انداز کیا جاتا ہے کہ جسم کی وجہ سے، تو بات کرنے کی، 664 00:31:18,420 --> 00:31:20,922 تقریب پہلے ہی کی اعلی اپ لاگو کیا گیا. 665 00:31:20,922 --> 00:31:23,380 میں واقعی میں مشورہ کرنا پڑے گا سنکلک کی دستی 666 00:31:23,380 --> 00:31:26,171 کسی دوسرے کی ہے تو سمجھنے کے لئے مطلب، لیکن پہلی نظر میں 667 00:31:26,171 --> 00:31:29,290 صرف کوشش اور استعمال کی طرف سے، کوئی اثر نہیں ہے. 668 00:31:29,290 --> 00:31:30,730 اچھا سوال ہے. 669 00:31:30,730 --> 00:31:33,660 >> تو، اب آگے بڑھانے منتقل دو دور کی طرف اثرات سے جس 670 00:31:33,660 --> 00:31:36,660 کچھ اس طرح کرتے ہیں کہ افعال ہیں ضعف printf کے ساتھ سکرین پر، 671 00:31:36,660 --> 00:31:38,090 لیکن ایک قدر واپس نہیں ہے. 672 00:31:38,090 --> 00:31:41,550 اور اس کے افعال کی واپسی ہے ہم جیسے اقدار کے چند دیکھا. 673 00:31:41,550 --> 00:31:45,350 ہم نے پہلے ہی گنجائش کے اس تصور نے دیکھا اور ہم بار بار اس میں دیکھیں گے. 674 00:31:45,350 --> 00:31:47,210 لیکن اب کے لئے، ایک بار پھر، انگوٹھے کی حکمرانی کا استعمال 675 00:31:47,210 --> 00:31:51,410 ایک متغیر صرف استعمال کیا جا سکتا ہے سب سے زیادہ حال ہی میں کھول کے اندر 676 00:31:51,410 --> 00:31:54,350 اور ہم کے طور پر بند کر دیا گھوبگھرالی منحنی خطوط وحدانی اس مخصوص مثال میں دیکھا. 677 00:31:54,350 --> 00:31:56,910 >> اور تم، باہر کی طرف اشارہ کے طور پر ایک ability-- ہے 678 00:31:56,910 --> 00:32:00,040 آپ ان مسائل میں سے کچھ کو حل کر سکتے ہیں عالمی سطح پر ایک متغیر ڈال کی طرف سے 679 00:32:00,040 --> 00:32:01,290 ایک فائل کے سب سے اوپر. 680 00:32:01,290 --> 00:32:03,630 لیکن تقریبا تمام صورتوں میں ہم نے اس پر خفگی کرے گا، 681 00:32:03,630 --> 00:32:06,170 اور بے شک بھی نہیں اب اس کے حل میں. 682 00:32:06,170 --> 00:32:09,890 تو اب کے لئے، takeaway ہے ہے متغیر گنجائش کے اس اصول کی ہے. 683 00:32:09,890 --> 00:32:13,430 >> لیکن اب ایک اور دیکھو اصل میں تلاش کر کے خشک راستہ 684 00:32:13,430 --> 00:32:15,810 کچھ بہت دلچسپ میں عملدرآمد کی تفصیلات. 685 00:32:15,810 --> 00:32:17,810 ہم کس طرح کے بارے میں معلومات کی نمائندگی کر سکتے. 686 00:32:17,810 --> 00:32:20,370 اور ہم نے پہلے ہی اس کی طرف دیکھا کلاس کے پہلے ہفتے میں. 687 00:32:20,370 --> 00:32:23,320 binaries کے تلاش میں، اور دشملو کے خود کو یاد دلانے. 688 00:32:23,320 --> 00:32:28,310 >> لیکن C ہے کہ گزشتہ ہفتے سے یاد مختلف اعداد و شمار اقسام اور bunches زیادہ، 689 00:32:28,310 --> 00:32:30,600 لیکن سب سے زیادہ مفید ہیں اب کے لئے یہ ہو سکتا ہے. 690 00:32:30,600 --> 00:32:36,030 ہوتا ہے جس میں ایک چار، یا کردار، ایک بائٹ، یا آٹھ بٹس کل ہونا. 691 00:32:36,030 --> 00:32:40,060 اور اس کے سائز کا کہنا ہے کہ ہے ایک چار میں سے صرف ایک بائٹ ہے. 692 00:32:40,060 --> 00:32:45,370 ایک بائٹ آٹھ بٹس ہے، تو اس کا مطلب ہے کہ ہم کس طرح بہت سے حروف کی نمائندگی کر سکتے ہیں. 693 00:32:45,370 --> 00:32:47,320 کس طرح بہت سے خطوط یا کی بورڈ پر علامات 694 00:32:47,320 --> 00:32:49,210 ہم ایک بائٹ آٹھ بٹیں ہیں. 695 00:32:49,210 --> 00:32:51,546 ہفتے واپس صفر کے بارے میں سوچو. 696 00:32:51,546 --> 00:32:53,420 آپ آٹھ بٹیں ہیں، کتنے کل اقدار 697 00:32:53,420 --> 00:32:55,503 آپ کے ساتھ نمائندگی کر سکتے ہیں zeros اور ہیں کے نمونوں؟ 698 00:32:55,503 --> 00:32:58,170 699 00:32:58,170 --> 00:33:00,260 اس سے زیادہ One--. 700 00:33:00,260 --> 00:33:03,490 تو 256 کی کل اگر آپ صفر سے گنتی شروع. 701 00:33:03,490 --> 00:33:07,120 تو آپ آٹھ bits-- تو ہم اگر ہے تو ، پھر یہاں ہمارے بائنری بلب تھا 702 00:33:07,120 --> 00:33:12,180 ہم پر ان کی روشنی بلب تبدیل کر سکتے ہیں اور 256 منفرد نمونوں سے میں. 703 00:33:12,180 --> 00:33:13,640 >> اب یہ تھوڑا سا مسئلہ ہے. 704 00:33:13,640 --> 00:33:16,857 انگریزی اور کے لئے اتنا نہیں رومانوی زبانوں، لیکن یقینی طور پر 705 00:33:16,857 --> 00:33:19,190 آپ کو متعارف کرانے جب، کے لئے مثال کے طور پر، ایشیائی زبانوں، جس 706 00:33:19,190 --> 00:33:22,580 طرح سے کہیں زیادہ علامات ہے حروف تہجی کے 26 حروف. 707 00:33:22,580 --> 00:33:24,390 ہم اصل میں ضرورت ہو سکتی ہے ایک بائٹ سے زیادہ. 708 00:33:24,390 --> 00:33:28,240 اور شکر میں حالیہ برسوں معاشرے ہے 709 00:33:28,240 --> 00:33:31,040 استعمال کرتے ہیں کہ اپنایا دیگر معیار چارج فی ایک سے زیادہ بائٹ. 710 00:33:31,040 --> 00:33:34,210 >> لیکن اب سی میں، پہلے سے طے شدہ کے لئے صرف ایک بائٹ آٹھ بٹس ہے. 711 00:33:34,210 --> 00:33:38,195 ایک عددی، دریں اثنا، چار ہے بائٹس، دوسری صورت میں 32 بٹس کے طور پر جانا جاتا ہے. 712 00:33:38,195 --> 00:33:41,320 جس کا سب سے بڑا ممکن ہے کیا مطلب ہے تعداد ہم ایک int کے ساتھ نمائندگی کر سکتے ہیں 713 00:33:41,320 --> 00:33:41,820 بظاہر؟ 714 00:33:41,820 --> 00:33:44,426 715 00:33:44,426 --> 00:33:45,050 ایک ارب. 716 00:33:45,050 --> 00:33:46,760 تو یہ چار ارب دے یا لے ہے. 717 00:33:46,760 --> 00:33:49,840 2 32th اقتدار میں، اگر ہم کوئی منفی تعداد فرض 718 00:33:49,840 --> 00:33:52,530 اور صرف مثبت استعمال تعداد، یہ چار ارب ہے 719 00:33:52,530 --> 00:33:53,730 دے یا امکانات کو لے. 720 00:33:53,730 --> 00:33:57,890 ایک فلوٹ، دریں اثنا، ایک مختلف قسم ہے یہ اب بھی ایک بڑی تعداد ہے C. میں اعداد و شمار کی قسم، 721 00:33:57,890 --> 00:33:58,990 لیکن یہ ایک حقیقی عدد ہے. 722 00:33:58,990 --> 00:34:00,660 ایک اعشاریہ کے ساتھ کچھ. 723 00:34:00,660 --> 00:34:03,000 اور یہ پتہ چلا ہے کہ سی بھی چار بائٹس استعمال کرتا 724 00:34:03,000 --> 00:34:05,340 چل نقاط کے اقدار کی نمائندگی کے لئے. 725 00:34:05,340 --> 00:34:09,420 >> بدقسمتی سے کتنے سچل نقطہ اقدار دنیا میں ہیں؟ 726 00:34:09,420 --> 00:34:11,582 کس طرح بہت سے حقیقی اعداد ہیں؟ 727 00:34:11,582 --> 00:34:13,540 ایک لامحدود نہیں ہے تعداد، اور اس بات کے 728 00:34:13,540 --> 00:34:15,164 integers کے ایک لامحدود تعداد ہے. 729 00:34:15,164 --> 00:34:18,070 تو ہم اس قسم کی پہلے سے ہی ہیں یہاں خود کو ایک سوراخ کھدائی. 730 00:34:18,070 --> 00:34:21,780 جس کے تحت بظاہر computers-- میں them-- پر C میں لکھا کم از کم کے پروگرام 731 00:34:21,780 --> 00:34:24,110 صرف کے طور پر اعلی کے طور پر شمار کر سکتے ہیں چار ارب، دے یا لے 732 00:34:24,110 --> 00:34:26,260 اور چل نقاط کے اقدار صرف کر سکتے ہیں، بظاہر 733 00:34:26,260 --> 00:34:28,330 صحت سے متعلق کچھ محدود رقم ہے. 734 00:34:28,330 --> 00:34:30,810 صرف اتنے سارے ہندسے کے بعد ان اعشاریہ. 735 00:34:30,810 --> 00:34:32,822 >> ، کیونکہ، کورس کی، اگر آپ کو صرف 32 بٹس ہے، 736 00:34:32,822 --> 00:34:36,030 میں نے کے بارے میں جانے کے لئے جا رہے ہیں پتہ نہیں کس طرح شاید حقیقی تعداد کی نمائندگی 737 00:34:36,030 --> 00:34:37,409 پیٹرن کی مختلف اقسام کے ساتھ. 738 00:34:37,409 --> 00:34:40,030 لیکن یقینا ایک محدود ہے اس طرح کے نمونوں کی تعداد، 739 00:34:40,030 --> 00:34:41,830 تو یہاں، بھی، اس مسئلہ ہے. 740 00:34:41,830 --> 00:34:43,710 >> اب ہم تھوڑا سا مسئلہ سے بچنے کے کر سکتے ہیں. 741 00:34:43,710 --> 00:34:45,710 آپ کو ایک فلوٹ کا استعمال نہیں کرتے ہیں تو، آپ کو ایک ڈبل استعمال کر سکتے ہیں 742 00:34:45,710 --> 00:34:50,230 C میں، جس سے آپ آٹھ بائٹس، دیتا ہے zeros کی طریقہ زیادہ ممکن پیٹرن ہے 743 00:34:50,230 --> 00:34:50,730 اور ہیں. 744 00:34:50,730 --> 00:34:55,199 لیکن یہ جس کی جا رہی ہے، اب بھی محدود ہے آپ کے سافٹ ویئر لکھنا تو مشکلات ہو 745 00:34:55,199 --> 00:34:57,670 گرافکس کے لئے یا پسند کے لئے ریاضیاتی فارمولوں. 746 00:34:57,670 --> 00:35:00,410 تو آپ نے واقعی میں چاہتے ہو سکتا ہے اس سے بھی بڑا شمار کرنے کے لئے. 747 00:35:00,410 --> 00:35:05,640 ایک طویل long-- بیوقوفی named-- بھی آٹھ بائٹس، یا 64 بٹس ہے، 748 00:35:05,640 --> 00:35:10,260 اور یہ ایک int کے طور پر دو مرتبہ کے طور پر طویل ہے اور یہ ایک طویل عددی قیمت کے لئے ہے. 749 00:35:10,260 --> 00:35:15,655 >> تفریح ​​fact-- ایک int، چار بائٹس ہے تو عام طور پر C میں ایک طویل کتنا وقت ہے؟ 750 00:35:15,655 --> 00:35:18,290 751 00:35:18,290 --> 00:35:21,560 اس کے علاوہ چار بائٹس، لیکن ایک طویل طویل آٹھ بائٹس ہے، 752 00:35:21,560 --> 00:35:23,050 اور اس تاریخی وجوہات کی بنا پر ہے. 753 00:35:23,050 --> 00:35:26,450 >> لیکن اب takeaway صرف اس کے اعداد و شمار ہے ہے 754 00:35:26,450 --> 00:35:29,625 ہے کہ ایک کمپیوٹر میں نمائندگی بجلی کے ساتھ ایک جسمانی آلہ، 755 00:35:29,625 --> 00:35:32,190 یہ عام طور پر ڈرائیونگ ہے ان zeros اور ones-- 756 00:35:32,190 --> 00:35:34,320 صحت سے متعلق کی محدود مقدار کے ساتھ. 757 00:35:34,320 --> 00:35:35,620 تو مسئلہ تو کیا ہے؟ 758 00:35:35,620 --> 00:35:37,480 >> ویسے ایک مسئلہ ہے عددی اتپرواہ کی. 759 00:35:37,480 --> 00:35:39,780 نہ صرف C میں، لیکن میں عام طور پر کمپیوٹر. 760 00:35:39,780 --> 00:35:42,590 مثال کے طور پر، اگر یہ ایک بائٹ کی مالیت ایک بٹ ہے 761 00:35:42,590 --> 00:35:45,120 تو یہ سب آٹھ بٹ ہے تو جس کا نمبر ایک ہیں. 762 00:35:45,120 --> 00:35:47,300 کیا نمبر یہ ہے ہم فرض تو نمائندگی 763 00:35:47,300 --> 00:35:50,730 یہ بائنری میں تمام مثبت اقدار ہے؟ 764 00:35:50,730 --> 00:35:54,410 >> 255، اور یہ 256 کی وجہ سے، نہیں ہے صفر کی سب سے کم تعداد ہے. 765 00:35:54,410 --> 00:35:56,760 تو 255 سب سے زیادہ ہے ایک، لیکن مسئلہ 766 00:35:56,760 --> 00:36:00,330 میں چاہتا تھا کہ لگتا ہے اس متغیر اضافہ ہے کہ 767 00:36:00,330 --> 00:36:04,030 آٹھ بٹس کل استعمال کر رہا ہے میں یہ اضافہ کرنا چاہتے ہیں تو. 768 00:36:04,030 --> 00:36:07,160 >> ویسے میں اضافہ کے طور پر جلد ہی کے طور پر ایک ان لوگوں کے تمام کرنے کے لئے ایک، 769 00:36:07,160 --> 00:36:10,500 آپ شاید صرف visually-- تصور کر سکتے ہیں decimals-- استعمال کرتے ہوئے ایک لے جانے والے کی طرح 770 00:36:10,500 --> 00:36:12,300 کچھ بائیں طرف بہتا جا رہا ہے. 771 00:36:12,300 --> 00:36:15,590 اور یقینا، میں تعداد شامل ہے تو اس کے لئے ایک، کیا ثنائی میں ہوتا ہے 772 00:36:15,590 --> 00:36:17,670 اسے واپس صفر overflows کی ہے. 773 00:36:17,670 --> 00:36:21,730 >> تو آپ کو صرف ایک int نہیں use-- تو، لیکن ایک ایک بائٹ integers کے شمار 774 00:36:21,730 --> 00:36:27,170 ایک پروگرام میں، کے طور پر جلد کے طور پر ڈیفالٹ کی طرف سے آپ، 250 حاصل کرنے کے لئے 251، 252، 253، 254، 775 00:36:27,170 --> 00:36:32,710 255-- 0، 255 کے بعد آتا ہے جس شاید نہیں کیا ہے 776 00:36:32,710 --> 00:36:34,790 ایک صارف کی توقع کی جا رہی ہے. 777 00:36:34,790 --> 00:36:39,620 >> اب اس دوران نقطہ دنیا سچل میں، تم نے بھی اسی طرح کی ایک مسئلہ ہے. 778 00:36:39,620 --> 00:36:42,670 سب سے بڑا نمبر کے ساتھ اتنا نہیں اگرچہ اب بھی ایک مسئلہ ہے. 779 00:36:42,670 --> 00:36:45,360 لیکن صحت سے متعلق کی رقم کے ساتھ آپ کی نمائندگی کر سکتے ہیں. 780 00:36:45,360 --> 00:36:49,490 تو اس کی مثال کے طور پر ایک نظر ڈالیں یہاں بھی آج کے ذریعہ code-- سے 781 00:36:49,490 --> 00:36:52,070 فلوٹ 0.c. 782 00:36:52,070 --> 00:36:54,280 >> اور یہ ایک سپر نوٹس سادہ پروگرام ہے کہ 783 00:36:54,280 --> 00:36:56,580 بظاہر کس قدر کو پرنٹ کرنا چاہئے؟ 784 00:36:56,580 --> 00:37:00,777 785 00:37:00,777 --> 00:37:04,110 اگر آپ اس کو پرنٹ کرنے کے لئے جا رہی ہے دانو کیا نئے نحو کے تھوڑا سا ہے اگرچہ 786 00:37:04,110 --> 00:37:05,540 یہاں؟ 787 00:37:05,540 --> 00:37:06,700 تو امید ہے کہ 0.1. 788 00:37:06,700 --> 00:37:10,000 تو ایک دسواں حصہ کے برابر میں 10 سے 1 تقسیم کر رہا ہوں کیونکہ. 789 00:37:10,000 --> 00:37:12,430 میں نے جواب ذخیرہ کرنے رہا ہوں ایک متغیر میں F بلایا. 790 00:37:12,430 --> 00:37:15,850 یہ متغیر کی قسم فلوٹ، ہے جو میں صرف مجوزہ مطلوبہ الفاظ موجود ہے. 791 00:37:15,850 --> 00:37:18,910 >> ہم اس سے پہلے دیکھا، لیکن نہیں ہے اس printf میں ایک صاف راستہ کی طرح ہے 792 00:37:18,910 --> 00:37:22,110 کتنے ہندسوں کی وضاحت کرنے کے لئے آپ ایک دشملو نقطہ کے بعد دیکھنا چاہتے ہیں. 793 00:37:22,110 --> 00:37:25,020 تو اس سنکیتن صرف کا مطلب کہ یہاں ایک پلیس ہولڈر ہے. 794 00:37:25,020 --> 00:37:27,900 یہ ایک چل نقاط کے لئے ہے قیمت، اور اوہ، راہ کی طرف سے، 795 00:37:27,900 --> 00:37:31,389 دشملو نقطہ کے ساتھ ساتھ یہ ظاہر دشملو نقطہ کے بعد ایک بڑی تعداد. 796 00:37:31,389 --> 00:37:33,180 تو یہ تعداد ہے اہم ہندسوں کی، 797 00:37:33,180 --> 00:37:34,650 تو آپ چاہتے ہیں کہ، بات کرنے کے لئے. 798 00:37:34,650 --> 00:37:40,450 >> تو مجھے آگے جانا ہے اور کرتے ہیں ./float-0، فلوٹ 0 بنانے، 799 00:37:40,450 --> 00:37:46,660 اور بظاہر 1 10 سے تقسیم 0.0 ہے. 800 00:37:46,660 --> 00:37:47,760 اب یہ کیوں ہے؟ 801 00:37:47,760 --> 00:37:51,380 >> ٹھیک ہے پھر، کمپیوٹر لے جا رہا ہے مجھے لفظی، اور میں 1 لکھا ہے 802 00:37:51,380 --> 00:37:56,680 اور میں نے 10 لکھا، اور ایک اندازہ کیا ان دونوں کے لئے فرض کیا گیا ڈیٹا کی قسم ہے 803 00:37:56,680 --> 00:37:58,440 اقدار؟ 804 00:37:58,440 --> 00:38:00,970 ایک int، یہ تکنیکی ہے کچھ تھوڑا مختلف. 805 00:38:00,970 --> 00:38:04,150 یہ عام طور پر ایک طویل ہے، لیکن یہ ہے بالآخر ایک لازمی قیمت. 806 00:38:04,150 --> 00:38:06,030 نہیں چل نقاط کی قیمت. 807 00:38:06,030 --> 00:38:09,456 >> جو ہے تو اس کا کہنا ہے کہ ، ایک int ہے اور یہ ایک int ہے 808 00:38:09,456 --> 00:38:11,830 مسئلہ کمپیوٹر ہے کی صلاحیت نہیں ہے 809 00:38:11,830 --> 00:38:13,680 یہاں تک کہ اعشاریہ ذخیرہ کرنے کے لئے. 810 00:38:13,680 --> 00:38:16,430 آپ 1 جب تو تقسیم 10 کا استعمال کرتے ہوئے integers کی طرف سے 811 00:38:16,430 --> 00:38:20,950 شمار کنندہ اور دونوں کے لئے ذواضعاف اقل، جواب 0.1 ہونا چاہئے. 812 00:38:20,950 --> 00:38:24,930 لیکن کمپیوٹر کی وجہ سے ان integers کا ہو 813 00:38:24,930 --> 00:38:27,430 0.1 کے ساتھ کیا پتہ نہیں ہے. 814 00:38:27,430 --> 00:38:30,010 >> تو کیا یہ واضح طور پر کر رہا ہے؟ 815 00:38:30,010 --> 00:38:33,120 یہ صرف، اسے دور پھینک ہے اور میں بالآخر کیا دیکھ رہا ہوں 816 00:38:33,120 --> 00:38:38,830 میں نے اصرار کیا کہ صرف اس وجہ سے 0.0 ہے printf یہ میرے ایک دشملو نقطہ ظاہر. 817 00:38:38,830 --> 00:38:41,740 لیکن مسئلہ یہ ہے کہ اگر آپ ایک عددی کی طرف سے ایک عددی تقسیم، 818 00:38:41,740 --> 00:38:44,347 آپ تعریف کی طرف سے get-- گا کی ایک عددی C--. 819 00:38:44,347 --> 00:38:46,680 اور ایسا کرنے والا نہیں ہے اچھا اور آسانی سے کچھ 820 00:38:46,680 --> 00:38:49,040 اپ کے لئے اس دور کی طرح ایک یا نیچے قریبی. 821 00:38:49,040 --> 00:38:51,860 یہ تراش جا رہا ہے دشملو کے بعد سب کچھ. 822 00:38:51,860 --> 00:38:54,030 >> تو صرف intuitively، شاید ایک حل کیا ہے؟ 823 00:38:54,030 --> 00:38:55,351 یہاں آسان حل کیا ہے؟ 824 00:38:55,351 --> 00:38:55,850 جی ہاں؟ 825 00:38:55,850 --> 00:39:00,570 826 00:39:00,570 --> 00:39:01,100 بالکل ٹھیک. 827 00:39:01,100 --> 00:39:04,200 کیوں ہم صرف کے طور پر ان کا علاج نہیں ہے مؤثر طریقے سے چل نقاط کے اقدار 828 00:39:04,200 --> 00:39:05,860 فلوٹ یا ڈبلز میں تبدیل. 829 00:39:05,860 --> 00:39:10,500 اور اب میں کروں floats اگر-0، یا میں floats کے 1 مرتب تو، 830 00:39:10,500 --> 00:39:12,570 جس کے لئے ایک جیسی ہے کیا صرف تجویز کیا گیا ہے. 831 00:39:12,570 --> 00:39:16,400 اور اب میں floats کے 0، اب میں اپنے 0.1 حاصل کرتے ہیں. 832 00:39:16,400 --> 00:39:17,234 >> اب یہ حیرت انگیز ہے. 833 00:39:17,234 --> 00:39:19,441 لیکن اب میں کرنے جا رہا ہوں کچھ تھوڑا مختلف. 834 00:39:19,441 --> 00:39:22,280 میں واقعی میں کیا ہے دیکھنے کے شوقین ہوں، ہڈ کے نیچے جا رہا، 835 00:39:22,280 --> 00:39:26,050 اور میں نے اس کو پرنٹ کرنے کے لئے جا رہا ہوں باہر 28 اعشاری مقامات. 836 00:39:26,050 --> 00:39:29,730 میں واقعی میں دیکھنا چاہتے ہیں 0.1000-- ایک infinite-- 837 00:39:29,730 --> 00:39:32,710 کہ 0.1 کے بعد [اشراوی] 27 سے zeros. 838 00:39:32,710 --> 00:39:34,740 >> ٹھیک ہے تو دیکھتے ہیں میں یقینا حاصل کیا. 839 00:39:34,740 --> 00:39:39,430 floats کے 0 ایک ہی فائل بنائیں. 840 00:39:39,430 --> 00:39:41,150 ./floats-0. 841 00:39:41,150 --> 00:39:44,380 کی ڈرامائی جواب پر میں زوم. 842 00:39:44,380 --> 00:39:49,980 اس وقت، آپ سوچ رہا ہوں 10 سے تقسیم 1 10٪، یا 0.1 ہے. 843 00:39:49,980 --> 00:39:50,810 یہ نہیں ہے. 844 00:39:50,810 --> 00:39:53,210 کم از کم اب تک کے طور پر کمپیوٹر کی متعلقہ. 845 00:39:53,210 --> 00:39:57,060 >> ٹھیک why-- اب، یہ مکمل ہے 10 سے تقسیم جھوٹ 1 0.1 ہے. 846 00:39:57,060 --> 00:39:59,710 لیکن یہ نہیں ہے کہ why-- takeaway ہے آج. 847 00:39:59,710 --> 00:40:04,010 تو کمپیوٹر، لگتا ہے کمرے میں ہم سب کے برعکس، 848 00:40:04,010 --> 00:40:06,870 10 سے 1 تقسیم ہے اصل میں اس پاگل کی قیمت؟ 849 00:40:06,870 --> 00:40:10,620 بظاہر کر کمپیوٹر کیا ہے؟ 850 00:40:10,620 --> 00:40:12,490 یہ کیا ہے؟ 851 00:40:12,490 --> 00:40:13,785 >> یہ فی SE، اتپرواہ نہیں ہے. 852 00:40:13,785 --> 00:40:15,910 اتپرواہ عام طور پر ہے جب آپ کو ایک کی قیمت کے ارد گرد لپیٹ. 853 00:40:15,910 --> 00:40:18,970 یہ imprecision کی اس مسئلہ ہے چل نقاط کی قیمت میں 854 00:40:18,970 --> 00:40:22,220 آپ کو صرف 32 ہے جہاں یا شاید بھی 64 بٹ. 855 00:40:22,220 --> 00:40:25,230 لیکن ایک لامحدود ہے تو حقیقی تعداد کی تعداد 856 00:40:25,230 --> 00:40:27,940 دشملو پوائنٹس کے ساتھ کی تعداد اور تعداد یقینا اس کے بعد 857 00:40:27,940 --> 00:40:29,380 آپ ان میں سے سب کی نمائندگی نہیں کر سکتے ہیں. 858 00:40:29,380 --> 00:40:32,870 تو کمپیوٹر دیا ہے ہم سے قریب ترین میچ 859 00:40:32,870 --> 00:40:37,090 قیمت کے لئے اس کا استعمال کرتے ہوئے کی نمائندگی کر سکتے ہیں میں واقعی چاہتے ہیں کی قیمت کے لئے بہت سے بٹس، 860 00:40:37,090 --> 00:40:38,690 جس 0.1 ہے. 861 00:40:38,690 --> 00:40:40,685 >> بدقسمتی سے، اگر آپ ریاضی کر شروع، یا آپ 862 00:40:40,685 --> 00:40:44,360 سچل کے ان قسم کے شامل شروع اہم پروگراموں میں نقطہ اقدار 863 00:40:44,360 --> 00:40:46,770 مالی سافٹ ویئر، فوجی software-- کچھ 864 00:40:46,770 --> 00:40:49,090 جہاں خیال ہے شاید بہت اہم. 865 00:40:49,090 --> 00:40:51,520 اور آپ کو انہوں نے مزید کہا شروع اس طرح کی تعداد، اور شروع 866 00:40:51,520 --> 00:40:54,050 سافٹ ویئر چل رہا ہے واقعی بڑے آدانوں کے ساتھ 867 00:40:54,050 --> 00:40:56,890 یا گھنٹے یا بہت بہت کے لئے سال کے دنوں میں یا بہت سے، 868 00:40:56,890 --> 00:41:01,060 ان چھوٹی چھوٹی غلطیوں یقینا وقت پر شامل کر سکتے ہیں. 869 00:41:01,060 --> 00:41:04,252 >> اب ایک طرف ایک کے طور پر، اگر آپ کو ہے تو کبھی سپرمین 3 یا دفتر کی جگہ دیکھا 870 00:41:04,252 --> 00:41:05,960 اور آپ کو یاد کر سکتے ہیں کس طرح ان لوگوں کو چرا لیا 871 00:41:05,960 --> 00:41:08,668 ان کے کمپیوٹر سے رقم کا ایک بہت چل نقاط کے اقدار کا استعمال کرتے ہوئے کی طرف سے 872 00:41:08,668 --> 00:41:11,290 اور بہت کم کو شامل remainders کے، امید ہے کہ فلم 873 00:41:11,290 --> 00:41:12,390 اب سمجھ میں آتا ہے. 874 00:41:12,390 --> 00:41:14,930 یہ وہ تھے کیا ہے اس فلم میں کے لئے alluding. 875 00:41:14,930 --> 00:41:16,710 حقیقت یہ ہے کہ سب سے زیادہ کمپنیوں نظر نہیں کریں گے 876 00:41:16,710 --> 00:41:18,600 ایک مخصوص تعداد کے بعد اعشاری مقامات کی، 877 00:41:18,600 --> 00:41:20,009 لیکن وہ سینٹ کی مصنوعات ہیں. 878 00:41:20,009 --> 00:41:22,550 تو آپ کو، ان کے شامل شروع آپ کو پیسے کی ایک بہت بنانے کے لئے شروع 879 00:41:22,550 --> 00:41:23,424 آپ کے بینک اکاؤنٹ میں. 880 00:41:23,424 --> 00:41:25,160 تو وہ آفس کے لئے جگہ کی وضاحت کی ہے. 881 00:41:25,160 --> 00:41:28,220 >> اب بدقسمتی سے باہر دفتر کی جگہ، وہاں 882 00:41:28,220 --> 00:41:31,794 کچھ قانونی پریشان ہیں اور اہم اثرات 883 00:41:31,794 --> 00:41:33,710 کی یہ قسم بنیادی ڈیزائن کے فیصلوں، 884 00:41:33,710 --> 00:41:35,990 وجوہات میں سے اور بے شک ایک ہم نے کورس میں C کا استعمال 885 00:41:35,990 --> 00:41:39,640 اگر تم واقعی اس زمین ہے ہے تاکہ کمپیوٹر کس طرح کام کی تفہیم کو، 886 00:41:39,640 --> 00:41:42,440 کس طرح سافٹ ویئر کے کام، اور نہیں حاصل کی جاچکی کے لئے کچھ لے. 887 00:41:42,440 --> 00:41:45,820 >> اور یقینا بدقسمتی سے، کے ساتھ بھی بنیادی تفہیم، 888 00:41:45,820 --> 00:41:47,370 انسانوں ہم غلطی. 889 00:41:47,370 --> 00:41:51,310 اور کیا میں اشتراک سوچا ہے یہ آٹھ منٹ کی ویڈیو یہاں لیا 890 00:41:51,310 --> 00:41:56,980 ہے جو ایک جدید Marvels واقعہ، سے چیزیں کس طرح کام پر ایک تعلیمی شو 891 00:41:56,980 --> 00:42:00,370 کہ دو تصاویر پینٹ جب ایک نا مناسب استعمال 892 00:42:00,370 --> 00:42:02,540 اور کی تفہیم چل نقاط کے اقدار 893 00:42:02,540 --> 00:42:05,610 کچھ اہم کرنے کے لئے کی قیادت کی بدقسمتی نتائج. 894 00:42:05,610 --> 00:42:06,363 چلو ایک نظر ڈالیں. 895 00:42:06,363 --> 00:42:07,029 [ویڈیو پلے بیک] 896 00:42:07,029 --> 00:42:11,290 اب ہم انجینئرنگ "پر واپس جدید Marvels آفات ". 897 00:42:11,290 --> 00:42:12,940 کمپیوٹر. 898 00:42:12,940 --> 00:42:15,580 ہم سب کو قبول کرنے آیا ہوں اکثر نراشا مسائل 899 00:42:15,580 --> 00:42:20,960 them-- کیڑے، وائرس کے ساتھ ہے، اور چھوٹے کی قیمتوں کے لئے سافٹ ویئر glitches-- 900 00:42:20,960 --> 00:42:23,100 سہولت کے لئے ادا کرنے کے لئے. 901 00:42:23,100 --> 00:42:27,770 لیکن ہائی ٹیک اور ہائی سپیڈ میں فوج اور خلائی پروگرام ایپلی کیشنز، 902 00:42:27,770 --> 00:42:32,780 سب سے چھوٹی مسئلہ کر سکتے ہیں تباہی میں magnified ہو. 903 00:42:32,780 --> 00:42:38,880 >> 4 جون، 1996، سائنسدانوں نے تیار ایک بغیر پائلٹ Ariane 5 راکٹ شروع کرنے کے لئے. 904 00:42:38,880 --> 00:42:41,190 یہ سائنسی لے جا رہا تھا مصنوعی سیارہ ڈیزائن 905 00:42:41,190 --> 00:42:44,570 واضح طور پر کس طرح قائم کرنے کے لئے زمین کے مقناطیسی میدان انٹرایکٹ 906 00:42:44,570 --> 00:42:47,380 شمسی ہواؤں کے ساتھ. 907 00:42:47,380 --> 00:42:50,580 راکٹ کے لئے تعمیر کیا گیا تھا یورپی خلائی ایجنسی، 908 00:42:50,580 --> 00:42:54,400 اور اس سہولت سے اٹھا فرانسیسی گیانا کے ساحل پر. 909 00:42:54,400 --> 00:42:57,520 >> میں 37 اور -at پرواز، وہ سب سے پہلے 910 00:42:57,520 --> 00:42:59,070 دیکھا کچھ غلط ہو رہا تھا. 911 00:42:59,070 --> 00:43:02,240 nozzles کے swiveling گیا ہے کہ ایک طرح سے وہ واقعی نہیں کرنا چاہئے. 912 00:43:02,240 --> 00:43:06,550 پرواز میں تقریبا 40 اور، واضح طور پر گاڑی، مصیبت میں تھا 913 00:43:06,550 --> 00:43:08,820 جب انہوں نے اور یہ کہ فیصلہ اس کو تباہ کرنے. 914 00:43:08,820 --> 00:43:12,370 رینج سیفٹی آفیسر، کے ساتھ زبردست ہمت، بٹن دبایا 915 00:43:12,370 --> 00:43:18,030 اس سے پہلے اور راکٹ دھماکے سے اڑا دیا عوام کی حفاظت کے لئے ایک خطرہ بن. 916 00:43:18,030 --> 00:43:21,010 >> -یہ شادی سے پہلے تھا سے Ariane 5 کے سفر، 917 00:43:21,010 --> 00:43:23,920 اور اس کی تباہی لیا کیونکہ دوش کی جگہ 918 00:43:23,920 --> 00:43:25,932 راکٹ سافٹ ویئر میں سرایت. 919 00:43:25,932 --> 00:43:27,640 پر -The مسئلہ سے Ariane تھا کہ وہاں 920 00:43:27,640 --> 00:43:30,500 کی ضرورت ہے کہ ایک بڑی تعداد تھی 64 بٹس، اظہار کرنے کے لئے 921 00:43:30,500 --> 00:43:33,560 اور وہ تبدیل کرنے کے لئے کرنا چاہتا تھا ایک 16 بٹ تعداد میں. 922 00:43:33,560 --> 00:43:36,820 ان کی تعداد کہ فرض کیا گیا بہت بڑا ہونے جا رہا نہیں کیا گیا تھا. 923 00:43:36,820 --> 00:43:40,940 کہ میں ان لوگوں کو ہندسوں کے سب سے زیادہ 64 بٹ تعداد سے zeros تھے. 924 00:43:40,940 --> 00:43:42,450 وہ غلط تھے. 925 00:43:42,450 --> 00:43:45,000 >> ایک کے اسمرتتا سافٹ ویئر پروگرام کو قبول کرنے 926 00:43:45,000 --> 00:43:49,460 کی طرف سے پیدا نمبر کی قسم ایک اور ناکامی کی جڑ تھا. 927 00:43:49,460 --> 00:43:54,260 سافٹ ویئر ڈیویلپمنٹ کی بن گیا تھا ایک نئی ٹیکنالوجی کے بہت مہنگا کا حصہ. 928 00:43:54,260 --> 00:43:57,060 Ariane 4 راکٹ تھا بہت کامیاب رہا. 929 00:43:57,060 --> 00:44:01,600 کے لئے پیدا سافٹ ویئر کی اتنی یہ بھی سے Ariane 5 میں استعمال کیا گیا تھا. 930 00:44:01,600 --> 00:44:04,790 >> Ariane. بنیادی مسئلہ تھا سے Ariane 5. 931 00:44:04,790 --> 00:44:11,200 faster--، تیز تیز تھا اور سافٹ ویئر ہے کہ کے لئے حساب نہیں کیا تھا. 932 00:44:11,200 --> 00:44:14,910 >> راکٹ کی تباہی ایک بہت بڑا مالی تباہی تھا. 933 00:44:14,910 --> 00:44:18,630 سب کی وجہ سے ایک منٹ سافٹ ویئر کی خرابی. 934 00:44:18,630 --> 00:44:21,160 لیکن اس سے پہلے نہیں تھا وقت ڈیٹا تبادلوں کے مسائل 935 00:44:21,160 --> 00:44:24,770 جدید راکٹ ٹیکنالوجی دوچار تھا. 936 00:44:24,770 --> 00:44:28,020 >> آغاز کے ساتھ 1991 -میں خلیج کی پہلی جنگ کے، 937 00:44:28,020 --> 00:44:30,540 پیٹریاٹ میزائل ایک اسی قسم کی تجربہ 938 00:44:30,540 --> 00:44:32,465 ایک تعداد تبادلوں سے مسئلہ. 939 00:44:32,465 --> 00:44:36,760 اور اس کے نتیجے کے طور پر 28 کہ لوگ 28 امریکی soldiers-- ہلاک ہو گئے تھے، 940 00:44:36,760 --> 00:44:39,010 اور تقریبا ایک سو زخمی ہوئے. 941 00:44:39,010 --> 00:44:42,830 تو چاہیے تھا جس پیٹریاٹ، آنے والے Scuds کے خلاف کی حفاظت کے لئے، 942 00:44:42,830 --> 00:44:45,780 ایک میزائل کو برطرف کرنے میں ناکام رہے. 943 00:44:45,780 --> 00:44:51,610 >> کب عراق کویت اور امریکہ پر حملہ کر دیا ابتدائی 1991 میں صحرا طوفان کا آغاز، 944 00:44:51,610 --> 00:44:55,720 پیٹریاٹ میزائل بیٹریاں تعینات کیا گیا تھا سعودی عرب اور اسرائیل کی حفاظت کے لئے 945 00:44:55,720 --> 00:44:59,180 عراقی Scud میزائل حملوں سے. 946 00:44:59,180 --> 00:45:03,080 پیٹریاٹ ایک امریکی درمیانی رینج ہے زمین سے ہوا نظام 947 00:45:03,080 --> 00:45:06,530 ریتیان کمپنی کی طرف سے تیار. 948 00:45:06,530 --> 00:45:09,500 >> پیٹریاٹ کے -The سائز انٹرسیپٹر خود 949 00:45:09,500 --> 00:45:14,705 اس کے بارے میں تقریبا 20 فٹ طویل ہے اور اس کے بارے میں 2،000 پونڈ کا وزن. 950 00:45:14,705 --> 00:45:19,090 اور یہ، کے بارے میں ایک warhead اٹھانے میں اس کے تقریبا 150 پونڈ ہے. 951 00:45:19,090 --> 00:45:23,880 اور warhead خود ہے ایک اعلی دھماکہ خیز مواد، جس میں 952 00:45:23,880 --> 00:45:26,700 اس کے ارد گرد ٹکڑے ہے. 953 00:45:26,700 --> 00:45:31,630 تو warhead کے سانچے ہے ایک buckshot کی طرح کام کرنے کے لئے ڈیزائن. 954 00:45:31,630 --> 00:45:34,040 >> -The میزائل کئے جاتے ہیں کنٹینر فی چار، 955 00:45:34,040 --> 00:45:37,170 اور ایک نیم ٹریلر کی طرف سے منتقل کر رہے ہیں. 956 00:45:37,170 --> 00:45:44,880 >> -The پیٹریاٹ اینٹی میزائل نظام اب کم از کم 20 سال پیچھے چلا جاتا ہے. 957 00:45:44,880 --> 00:45:48,380 یہ اصل میں ڈیزائن کیا گیا تھا ایک فضائی دفاعی میزائل کے طور پر 958 00:45:48,380 --> 00:45:50,810 دشمن کے ہوائی جہاز کو نیچے گولی مار کرنے کے لئے. 959 00:45:50,810 --> 00:45:54,410 خلیج کی پہلی جنگ میں کہ جنگ پر آئے تو، 960 00:45:54,410 --> 00:45:59,650 فوج کے لئے استعمال کرنا چاہتا تھا Scuds کے، نہیں ہوائی جہاز کے نیچے گولی مار. 961 00:45:59,650 --> 00:46:03,580 عراقی ائیر فورس تھا ایک مسئلہ کے اتنا نہیں، 962 00:46:03,580 --> 00:46:06,590 لیکن فوج Scuds کے بارے میں فکر مند تھا. 963 00:46:06,590 --> 00:46:10,120 اور تاکہ وہ کرنے کی کوشش کی پیٹریاٹ کو اپ گریڈ. 964 00:46:10,120 --> 00:46:12,740 >> دشمن -Intercepting 5 مچ میں سفر میزائل 965 00:46:12,740 --> 00:46:15,670 کافی چیلنج کیا جا رہا تھا. 966 00:46:15,670 --> 00:46:18,440 لیکن جب پیٹریاٹ کی خدمت میں لے جایا گیا تھا، 967 00:46:18,440 --> 00:46:22,580 فوج کے بارے میں معلوم نہیں تھا ایک عراقی ترمیم کہ 968 00:46:22,580 --> 00:46:25,880 ان Scuds کے بنا تقریبا یہ ناممکن. 969 00:46:25,880 --> 00:46:30,690 >> کیا ہوا Scuds کے ہے میں آ رہے تھے غیر مستحکم تھے. 970 00:46:30,690 --> 00:46:32,000 وہ ڈانواڈول تھے. 971 00:46:32,000 --> 00:46:37,210 اس کی وجہ یہ Iraqis-- تھا 600 کلومیٹر سے باہر حاصل کرنے کے لئے 972 00:46:37,210 --> 00:46:41,680 ایک 300 کلومیٹر رینج missile-- کے ، سامنے warhead سے باہر وزن لیا 973 00:46:41,680 --> 00:46:43,340 اور warhead ہلکا بنا دیا. 974 00:46:43,340 --> 00:46:48,490 تو اب پیٹریاٹ آنے کی کوشش کر Scud میں، time-- کے اور سب سے زیادہ 975 00:46:48,490 --> 00:46:52,880 کی غالب اکثریت time-- یہ صرف Scud کی طرف سے پرواز. 976 00:46:52,880 --> 00:46:57,120 >> پیٹریاٹ نظام آپریٹرز -Once ، پیٹریاٹ اس کا ہدف یاد احساس 977 00:46:57,120 --> 00:47:01,630 انہوں نے پیٹریاٹ کی warhead اڑا دیا اگر یہ ممکن جانی نقصان سے بچنے کے لئے 978 00:47:01,630 --> 00:47:04,440 زمین پر گر کی اجازت دی گئی. 979 00:47:04,440 --> 00:47:08,700 >> -That سب سے زیادہ لوگوں نے دیکھا تھا کے طور پر آسمان میں بڑے fireballs، 980 00:47:08,700 --> 00:47:14,180 اور کے طور پر غلط سمجھا Scud ہتھیاروں کے پکڑے. 981 00:47:14,180 --> 00:47:18,020 >> رات آسمان، محب وطن میں -Although کامیابی کے ساتھ تباہ کرنے کے لئے شائع 982 00:47:18,020 --> 00:47:23,280 Scuds کے، Dhahran میں نہیں ہو سکتا اس کی کارکردگی کے بارے میں کوئی غلطی نہیں. 983 00:47:23,280 --> 00:47:27,930 نہیں پیٹریاٹ کے رڈار نظام آنے والے Scud کے کھو ٹریک 984 00:47:27,930 --> 00:47:30,260 اور وجہ سے شروع کبھی نہیں ایک سافٹ ویئر کے دوش پر. 985 00:47:30,260 --> 00:47:34,060 986 00:47:34,060 --> 00:47:38,880 >> یہ سب سے پہلے دریافت کیا جو اسرائیلی تھا اب نظام پر تھا، 987 00:47:38,880 --> 00:47:41,130 زیادہ سے زیادہ وقت تضادات پائے جانے بن گیا. 988 00:47:41,130 --> 00:47:44,770 وجہ سرایت گھڑی کی نظام کے کمپیوٹر میں. 989 00:47:44,770 --> 00:47:48,190 >> -About دو ہفتے قبل Dhahran، میں سانحہ، 990 00:47:48,190 --> 00:47:50,720 اسرائیلیوں کی رپورٹ محکمہ دفاع 991 00:47:50,720 --> 00:47:52,410 کہ نظام وقت ہار رہا. 992 00:47:52,410 --> 00:47:54,410 آٹھ گھنٹے کے بعد چلانے کے، وہ محسوس 993 00:47:54,410 --> 00:47:57,690 نظام کی بننے کہ کافی کم درست. 994 00:47:57,690 --> 00:48:01,850 محکمہ دفاع کی طرف سے جواب پیٹریاٹ بیٹریاں کی تمام کہہ 995 00:48:01,850 --> 00:48:04,800 نظام نہیں چھوڑ ایک طویل وقت کے لئے. 996 00:48:04,800 --> 00:48:06,980 انہوں نے ایک طویل وقت تھا نے کبھی نہیں کہا. 997 00:48:06,980 --> 00:48:09,140 8 گھنٹے، 10 گھنٹے، ایک ہزار گھنٹے. 998 00:48:09,140 --> 00:48:11,300 کوئی بھی جانتے تھے. 999 00:48:11,300 --> 00:48:13,320 >> -The پیٹریاٹ بیٹری بیرکوں میں تعینات 1000 00:48:13,320 --> 00:48:18,310 الظهران اور اس ناقص اندرونی میں گھڑی 100 سے زائد گھنٹے کے لئے کیا گیا تھا 1001 00:48:18,310 --> 00:48:21,520 25 فروری کی رات کو. 1002 00:48:21,520 --> 00:48:25,792 >> یہ ایک درستگی کا وقت پتہ لگایا کے ایک سیکنڈ کے دسویں کے بارے میں. 1003 00:48:25,792 --> 00:48:27,950 ایک دوسرے کے اب دسویں ایک دلچسپ تعداد ہے 1004 00:48:27,950 --> 00:48:31,850 اس کا اظہار نہیں کیا جا سکتا کیونکہ ، بالکل بائنری میں جس 1005 00:48:31,850 --> 00:48:36,500 یہ بالکل ظاہر نہیں کیا جا سکتا ہے کا مطلب کسی بھی جدید ڈیجیٹل کمپیوٹر میں. 1006 00:48:36,500 --> 00:48:41,070 یہ یقین کرنا مشکل ہے لیکن ایک مثال کے طور پر اس کا استعمال. 1007 00:48:41,070 --> 00:48:43,420 >> کی تعداد ایک تہائی ہے. 1008 00:48:43,420 --> 00:48:47,330 ایک تہائی نہیں ہو سکتا بالکل دشملو میں اظہار. 1009 00:48:47,330 --> 00:48:52,060 ایک تہائی 0،333 ہے انفینٹی کے لئے جا. 1010 00:48:52,060 --> 00:48:56,420 کے ساتھ ایسا کرنے کے لئے کوئی راستہ نہیں ہے ایک دشملو میں مکمل درستگی. 1011 00:48:56,420 --> 00:48:59,530 مسئلہ یہ ہے کہ بالکل قسم ہے کہ پیٹریاٹ میں ہوا. 1012 00:48:59,530 --> 00:49:04,040 اب نظام بھاگ گیا، برا وقت غلطی بن گیا. 1013 00:49:04,040 --> 00:49:08,840 >> آپریشن کے 100 گھنٹے -کے بعد، وقت میں غلطی صرف ایک تہائی تھا 1014 00:49:08,840 --> 00:49:10,440 ایک دوسرے کے. 1015 00:49:10,440 --> 00:49:14,150 لیکن ایک کی ھدف بندی کے لحاظ سے 5 مچ میں سفر میزائل، 1016 00:49:14,150 --> 00:49:18,560 یہ ایک سے باخبر رہنے کے نتیجے میں 600 سے زائد میٹر کی غلطی. 1017 00:49:18,560 --> 00:49:21,870 یہ ایک مہلک غلطی ہو گی Dhahran میں فوجیوں کے لئے. 1018 00:49:21,870 --> 00:49:28,455 >> ایک Scud آغاز تھا کیا ہوا ابتدائی انتباہ مصنوعی سیارہ کی طرف سے پتہ چلا، 1019 00:49:28,455 --> 00:49:32,710 اور وہ ایک Scud آ رہا تھا جانتے تھے ان کے جنرل سمت میں. 1020 00:49:32,710 --> 00:49:35,150 یہ آ رہا تھا جہاں وہ نہیں جانتا تھا. 1021 00:49:35,150 --> 00:49:38,210 یہ ریڈار تک اب تھا پیٹریاٹ نظام کے اجزاء 1022 00:49:38,210 --> 00:49:43,150 دفاع Dhahran تلاش اور رکھنے کے لئے آنے والے دشمن میزائل کے ٹریک. 1023 00:49:43,150 --> 00:49:44,561 >> -The ریڈار بہت ہوشیار تھا. 1024 00:49:44,561 --> 00:49:46,560 یہ اصل ٹریک گا Scud کی پوزیشن 1025 00:49:46,560 --> 00:49:48,930 اور پھر جہاں کی پیشن گوئی یہ شاید ہو جائے گا 1026 00:49:48,930 --> 00:49:51,380 اگلی بار ریڈار ایک پلس بھیجا. 1027 00:49:51,380 --> 00:49:53,040 یہ رینج دروازے بلایا گیا تھا. 1028 00:49:53,040 --> 00:49:57,620 >> پیٹریاٹ ایک بار -Then کافی وقت ہے فیصلہ 1029 00:49:57,620 --> 00:50:02,400 واپس جاؤ اور چیک کے لئے منظور یہ پتہ چلا اعتراض کے لئے محل وقوع 1030 00:50:02,400 --> 00:50:03,550 اسے واپس جاتا ہے. 1031 00:50:03,550 --> 00:50:07,820 تو یہ غلط کرنے کے لئے واپس چلا گیا جب جگہ، تو کوئی اعتراض دیکھتا ہے. 1032 00:50:07,820 --> 00:50:10,360 اور یہ کوئی اعتراض نہیں تھا کہ فیصلہ. 1033 00:50:10,360 --> 00:50:13,630 ایک جھوٹ کا پتہ لگانے نہیں تھا کہ اور اس ٹریک قطرے. 1034 00:50:13,630 --> 00:50:16,970 >> -The آنے والے Scud غائب ہو گیا ریڈار اسکرین سے، 1035 00:50:16,970 --> 00:50:20,200 اور بعد میں، یہ بیرکوں میں slammed. 1036 00:50:20,200 --> 00:50:22,570 Scud 28 ہلاک. 1037 00:50:22,570 --> 00:50:26,110 یہ گزشتہ ایک نکالا گیا خلیج کی پہلی جنگ کے دوران. 1038 00:50:26,110 --> 00:50:31,920 بدقسمتی سے، اپ ڈیٹ سافٹ ویئر اگلے دن پر طلوع فجر پر پہنچے. 1039 00:50:31,920 --> 00:50:34,870 سافٹ ویئر دوش تھا رہا مقرر، اختتامی 1040 00:50:34,870 --> 00:50:39,150 شورش زدہ میں ایک باب پیٹریاٹ میزائل کی تاریخ. 1041 00:50:39,150 --> 00:50:40,030 >> [END ویڈیو پلے بیک] 1042 00:50:40,030 --> 00:50:41,488 >> DAVID J. MALAN: یہ CS50 کے لئے ہے. 1043 00:50:41,488 --> 00:50:42,820 ہم آپ کو بدھ کو دیکھیں گے. 1044 00:50:42,820 --> 00:50:46,420 1045 00:50:46,420 --> 00:50:50,370 >> [موسیقی بجانے] 1046 00:50:50,370 --> 00:54:23,446