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