1 00:00:00,000 --> 00:00:10,920 >> [عزف الموسيقى] 2 00:00:10,920 --> 00:00:14,680 >> DAVID J مالان: كل الحق، نرحب مرة أخرى إلى 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 >> لذلك أذكر أن آخر مرة، قدمنا أنواع البيانات في عدد قليل من C، و 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 الشخصيات في العالم من مجرد كما والإفطار وخدمات العملاء والتاءات. 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 في الوقت الراهن، ونعرف أن في C إذا كنت تريد لتمثيل بريد إلكتروني، وقطعة من 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 >> كيف حول كثافة العمليات؟ 49 00:02:19,690 --> 00:02:20,780 كذلك، وكثافة العمليات هو عدد صحيح. 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 ورجات تستخدم فقط لتخزين الأرقام، إما سلبية، 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 أي شخص الملعب كم عدد ممكن الأعداد الصحيحة كمبيوتر يمكن أن تمثل من 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 انها أطول من عدد صحيح. 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 >> ولكن هناك اهتمام الوجبات الجاهزة هنا. 81 00:03:38,240 --> 00:03:42,890 حتى إذا رجات محدودة بنسبة 32 بت و حتى يتوق طويلة تقتصر بنسبة 64 82 00:03:42,890 --> 00:03:46,180 بت، وهذا النوع من يطرح السؤال، ماذا لو كنت فعلا تريد أن نعول 83 00:03:46,180 --> 00:03:48,790 أعلى من 4 مليارات لكثافة العمليات؟ 84 00:03:48,790 --> 00:03:50,330 حسنا، أنت مجرد استخدام طويل. 85 00:03:50,330 --> 00:03:54,200 ولكن ما إذا كنت ترغب في الاعتماد العالي من اثنين إلى 64، يعطي أو يأخذ؟ 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 وبالمثل، مع النقطة العائمة القيم - العوامات أو الزوجي - 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 انا ذاهب الى المضي قدما ويقول الباحث باطلة الرئيسي، ونحن في كثير من الأحيان القيام به. 110 00:05:01,540 --> 00:05:07,190 >> ثم في هذا البرنامج، وانا ذاهب ل تعلن نفسي تعويم، وذلك على 32 بت 111 00:05:07,190 --> 00:05:09,700 و متغير يسمى تعسفا. 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 المشروعة في C. 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 نحن لا نريد لاستخدام ط٪ لكثافة العمليات. 118 00:05:25,420 --> 00:05:28,360 نحن نريد لاستخدام٪ و لتعويم. 119 00:05:28,360 --> 00:05:33,080 ثم انا ذاهب الى القيام مائل ن، اقتباس المقربين، فاصلة، و، منقوطة. 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 بالإضافة إلى تحديد مكان أصحاب مثل٪ و٪٪ ط ق، يمكنك 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 لذلك وبعبارة أخرى، أنا فصل و و النسبة المئوية مع 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 ويمكنني أن أفعل ثلاثة وأربعة، وأنا ربما ذاهب للحفاظ على رؤية الأصفار. 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 انهم على حد سواء صحيحة. 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 فإنه لا المستدير لأسفل أو لأعلى في حد ذاتها. 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 أنا لا نشهد كثافة الصفر. 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 تخزينه لا باعتباره الباحث لكن، في الواقع، وتعويم. 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 ما هو أبسط الإصلاح استطعنا ربما القيام به، حتى مجرد حدسي هنا ل 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 تحويل الأعداد الصحيحة في - 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 لديه في الأساس للقيام بهذه كلا يجري رجات، حسنا، لماذا لا استطيع 203 00:09:13,440 --> 00:09:18,230 جعل ذلك 10.0، مما يجعل هذا 1.0 إعادة حفظ الملف. 204 00:09:18,230 --> 00:09:20,990 اسمحوا لي أن أعود إلى أسفل أسفل وترجمة. 205 00:09:20,990 --> 00:09:23,030 اسمحوا لي أن أعد الآن. 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 واسمحوا لي أن تمضي قدما وإعادة حفظ هذا الملف كاسم ملف مختلف، فقط ل 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 ثم الرياضيات التي يجري يتعين القيام به وعلى نحو فعال 1.0 مقسوما على 10.0، 228 00:10:17,190 --> 00:10:19,250 النتيجة التي يذهب في و كما كان من قبل. 229 00:10:19,250 --> 00:10:26,130 حتى لو كنت إعادة ترجمة هذا كما جعل يطفو 2، والآن يتحرك 2، وأحصل على نفس 230 00:10:26,130 --> 00:10:27,020 الإجابة، كذلك. 231 00:10:27,020 --> 00:10:29,640 >> لذلك هذا هو مثال مفتعلة إلى حد ما، لحل هذه المشكلة 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 رجات فقط تحت غطاء محرك السيارة. 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 >> انا ذاهب للذهاب مرة أخرى إلى العوامات 1، والتي كانت أبسط وأكثر 250 00:11:19,220 --> 00:11:22,830 واحد مباشرة مع .0 وأضاف إلى كل منهما. 251 00:11:22,830 --> 00:11:25,260 ومثلما تنشيطية سريعة، اسمحوا لي أن تمضي قدما وإعادة ترجمة 252 00:11:25,260 --> 00:11:27,670 هذا، وجعل يطفو 2 - 253 00:11:27,670 --> 00:11:30,300 آسف، وهذا هو جعل يطفو 1. 254 00:11:30,300 --> 00:11:32,050 والآن دعونا تشغيل العوامات 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 يمكنني تغيير اثنين إلى خمسة، أنا مع إعادة ترجمة ماركة. 264 00:11:52,020 --> 00:11:53,770 أنا أعد بأنه يطفو 1. 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،5-،10. 268 00:12:00,330 --> 00:12:03,440 أريد أن أرى 10 أرقام بعد منزلة عشرية. 269 00:12:03,440 --> 00:12:09,060 >> وانا ذاهب الى المضي قدما وإعادة ترجمة هذا واعادة يطفو 1. 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 جعل يطفو 1، إعادة ترجمة، واللعنة. 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 حدسي، بناء على افتراضاتنا في وقت سابق عن حجم أنواع البيانات، 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 إذا كنت تريد هذا بكثير من الدقة، و هذا من هيك الكثير من الدقة - 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 بت في الطريق - تماما مثل البشر لدينا على، مرحلة 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 ولكن إذا بدأنا بدس على الأرقام ويبحث أبعد وأبعد في 298 00:13:18,880 --> 00:13:23,220 أرقام زائدة في عدد صحيح، ثم نبدأ في رؤية أنه من 299 00:13:23,220 --> 00:13:26,480 تقارب الواقع فكرة عشر. 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 التي، بصراحة، في بعض لغات هي مخفية عن المستخدم، خلافا لما حدث في C - 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 الكوارث على الأعاجيب الحديثة. 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 البق، والفيروسات، والبرمجيات مواطن الخلل هي أسعار صغير لدفع ثمن 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 التطبيقات، فإن المشكلة أصغر يمكن تضخيم إلى كارثة. 324 00:14:38,650 --> 00:14:44,480 >> على 4 يونيو 1996، أعد العلماء ل إطلاق صاروخ اريان 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 فتحات الدوران في و وسيلة هم حقا لا ينبغي. 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: وكان هذا رحلة الاولى من آريان 5، وتدميرها 337 00:15:27,810 --> 00:15:32,020 وقعت بسبب خلل جزءا لا يتجزأ من في برنامج الصاروخ. 338 00:15:32,020 --> 00:15:33,980 >> جاك GANSSLE: المشكلة على آريان هو أن هناك عددا 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 بت كان عدد الأصفار. 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 وكان الصاروخ آريان 4 كانت جدا ناجحة، والكثير من البرامج 348 00:16:03,980 --> 00:16:07,480 خلقت لكنه كان أيضا المستخدمة في آريان 5. 349 00:16:07,480 --> 00:16:11,980 >> فيليب كويل: إن المشكلة الأساسية كانت أن آريان 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 عندما باتريوت، والتي كان من المفترض للحماية من صواريخ سكود واردة، 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 واسرائيل من صواريخ سكود العراقية هجمات صاروخية. 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 ويحمل رأسا حربية من - 370 00:17:22,940 --> 00:17:24,905 اعتقد انها ما يقرب من 150 جنيه. 371 00:17:24,905 --> 00:17:31,030 والرؤوس الحربية نفسها هو التي لديها شديدة الانفجار 372 00:17:31,030 --> 00:17:33,270 شظايا من حوله. 373 00:17:33,270 --> 00:17:37,490 تم تصميم غلاف الرأس الحربي لعمل مثل رصاص. 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 >> فيليب كويل: باتريوت المضادة للصواريخ النظام يعود في 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 لاسقاط صواريخ سكود، وليس الطائرات. 382 00:18:05,535 --> 00:18:09,310 كانت القوة الجوية العراقية لا كثيرا من مشكلة. 383 00:18:09,310 --> 00:18:12,450 ولكن الجيش كان قلقا بشأن صواريخ سكود. 384 00:18:12,450 --> 00:18:15,950 وهكذا حاولوا ترقية باتريوت. 385 00:18:15,950 --> 00:18:18,750 >> سرور 1: اعتراض صاروخ العدو السفر في خمسة ماخ و 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 التعديل العراقية التي جعلت لهم صواريخ سكود من المستحيل تقريبا للضرب. 389 00:18:31,710 --> 00:18:35,240 >> THEODORE POSTOL: ماذا حدث هي صواريخ سكود التي كانت 390 00:18:35,240 --> 00:18:36,570 القادمة في كان غير مستقر. 391 00:18:36,570 --> 00:18:37,532 كانوا متذبذب. 392 00:18:37,532 --> 00:18:43,220 وكان السبب في ذلك العراقيين، في أجل الحصول على 600 كيلومترا من أصل 393 00:18:43,220 --> 00:18:47,530 300 كيلومتر المدى الصاروخي، استغرق الوزن من الرؤوس الحربية الأمامية. 394 00:18:47,530 --> 00:18:49,290 جعلوا الرؤوس الحربية أخف وزنا. 395 00:18:49,290 --> 00:18:53,110 حتى الآن في محاولة باتريوت لتأتي على صواريخ سكود. 396 00:18:53,110 --> 00:18:56,470 وأكثر من مرة، والساحقة معظم الوقت، فإنه سيكون فقط 397 00:18:56,470 --> 00:18:58,730 يطير بها سكود. 398 00:18:58,730 --> 00:19:01,760 >> سرور 1: مرة واحدة في نظام باتريوت أدركت مشغلي غاب باتريوت 399 00:19:01,760 --> 00:19:06,690 هدفها، وأنها انفجرت صواريخ باتريوت رأس حربي لتجنب احتمال 400 00:19:06,690 --> 00:19:10,300 الضحايا إذا سمح لها ليسقط على الأرض. 401 00:19:10,300 --> 00:19:14,540 >> THEODORE POSTOL: وكان ذلك أكثر ما رأيت الناس نارية كبيرة كما في السماء 402 00:19:14,540 --> 00:19:20,350 ويساء فهمه على أنه اعتراض الرؤوس الحربية من طراز سكود. 403 00:19:20,350 --> 00:19:23,320 >> سرور 1: على الرغم من أن في سماء الليل ظهرت الوطنيين ليكون بنجاح 404 00:19:23,320 --> 00:19:27,530 تدمير صواريخ سكود، في الظهران هناك يمكن أن يكون هناك خطأ حول لها 405 00:19:27,530 --> 00:19:29,140 الأداء. 406 00:19:29,140 --> 00:19:34,180 هناك، نظام رادار باتريوت فقدت مسار أحد سكود الواردة وأبدا 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: معلومات عن أسبوعين قبل المأساة في الظهران، والإسرائيليين 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: البطارية باتريوت تتمركز في ثكنة في الظهران 424 00:20:20,220 --> 00:20:24,660 وعلى مدار الساعة في الداخلية كانت معيبة على أكثر من 100 ساعة في ليلة 425 00:20:24,660 --> 00:20:27,470 25 فبراير. 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 سيكون من خطأ فادح ل الجنود في الظهران. 442 00:21:27,670 --> 00:21:33,450 >> THEODORE POSTOL: ما حدث هو تم الكشف عن إطلاق صواريخ سكود في أوائل 443 00:21:33,450 --> 00:21:34,280 الأقمار الصناعية للإنذار. 444 00:21:34,280 --> 00:21:38,550 وكانوا يعرفون أن صواريخ سكود كانت قادمة في الاتجاه العام لها. 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 الدفاع الظهران لتحديد والحفاظ على مسار الصاروخ العدو واردة. 448 00:21:48,910 --> 00:21:50,580 >> جاك GANSSLE: الرادار كان ذكيا جدا. 449 00:21:50,580 --> 00:21:53,770 فإنه في الواقع تتبع موقف سكود ثم التنبؤ حيث 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: اختفى سكود واردة من شاشة الرادار، و 458 00:22:22,970 --> 00:22:26,050 ثانية في وقت لاحق أنه انتقد في الثكنات. 459 00:22:26,050 --> 00:22:31,950 سكود قتل 28 وكان آخر واحد أطلقت خلال حرب الخليج الأولى. 460 00:22:31,950 --> 00:22:37,700 مأساوي، وصل البرنامج المحدث في الظهران في اليوم التالي. 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 مالان: كل الحق، لذلك تنبه سبيل المثال، للتأكد. 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 النحوية في الطبيعة حيث ل رمز فقط لا يعمل الحق. 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 والذي يظهر أحيانا في الخاص URL نبذة عن إلا إذا كنت قد اخترت ل 488 00:23:57,930 --> 00:24:02,070 الإسم المستعار ل URL، أو إذا كنت قد تستخدم الفيسبوك في الرسم البياني API، و 489 00:24:02,070 --> 00:24:05,510 API متاحة للجمهور الذي كنت أن تطلب الفيسبوك للبيانات الخام - 490 00:24:05,510 --> 00:24:07,580 يمكنك ان ترى ما هو معرف رقمي الخاص بك. 491 00:24:07,580 --> 00:24:10,880 وقبل بضع سنوات، أساسا الفيسبوك اضطر إلى تغيير من استخدام 492 00:24:10,880 --> 00:24:15,980 أي ما يعادل رجات لاستخدام طويل لأن طويلة بمرور الوقت مع المستخدمين تأتي 493 00:24:15,980 --> 00:24:19,780 وتذهب وخلق الكثير من الحسابات و حسابات وهمية، حتى أنها بسهولة جدا 494 00:24:19,780 --> 00:24:24,630 كانت قادرة على استنفاد ما يشبه 4 مليار قيمة ممكنة مثل كثافة العمليات. 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 وكان أن عدم الدقة. 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 وفي الوقت نفسه ف مجموعة واحدة واحدة هي القراصنة بسبب هذا يوم الخميس مع خيار ل 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. 512 00:25:16,850 --> 00:25:21,490 هناك عدد قليل من زملائك الذين قاموا بداية حول 4:00 مساء يوم الجمعة عندما 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 وحتى ذلك الحين، وسوف نبدأ في تقييم يحدد المشكلة قبل أن C 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 وتلاحظ انها عامل المضاعف بحيث تفعل سوى جزء من 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 الطلاب بل تركز بقدر يمكننا على النوعية، الكتابة العادية 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 إذا كنت الحصول على الثلاثات ابتداء من الفصل الدراسي، وهذا 564 00:27:43,480 --> 00:27:46,340 بل من المفترض أن تكون جيدة وضع لتبدأ. 565 00:27:46,340 --> 00:27:50,510 إذا كنت الحصول على ثنائي، والمعارض، وهناك بالتأكيد بعض العمل لدفع قليلا 566 00:27:50,510 --> 00:27:53,250 المزيد من الاهتمام، للاستفادة من أقسام وساعات العمل. 567 00:27:53,250 --> 00:27:54,590 >> إذا كنت الحصول على أربع والأطفال دون سن الخامسة، عظيم. 568 00:27:54,590 --> 00:27:57,430 ولكن في الحقيقة، ونحن نأمل أن نرى مسارات بين الطلاب - جدا 569 00:27:57,430 --> 00:28:00,575 فردية لكل طالب، ولكن بدءا الفصل الدراسي هنا في نوع من 570 00:28:00,575 --> 00:28:04,100 اثنين إلى ثلاثة ولكن مجموعة المنتهية هنا في 04:56 النطاق. 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 لدينا القدرة، مثل الطلاب في الطبقة، وإلى Google للعثور على كود 587 00:28:55,080 --> 00:28:57,440 على مواقع مثل جيثب و منتديات المناقشة. 588 00:28:57,440 --> 00:29:00,840 هناك حلول على الاطلاق لفي CS50 ف مجموعات تطوف هناك. 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 في الواقع، وهذا العام قمنا إعادة صياغة الأشياء في المنهج أن يكون هذا، نقطة 594 00:29:17,506 --> 00:29:19,790 نقطة نقطة، مع مزيد من التفاصيل في المنهج. 595 00:29:19,790 --> 00:29:22,860 ولكن الموضوع الرئيسي في دورة حقا هو أن تكون معقولة. 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 ألواح الكتابة التفاعلية، وذلك ل الكلام، وأفكارك - 600 00:29:35,670 --> 00:29:39,480 كتابة خارج شبة الكود في الصور، المخططات ما ينبغي أن يكون إذا ماريو 601 00:29:39,480 --> 00:29:41,350 كنت لأكتب لأول مرة في شبة الكود. 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 >> الحالات التي كنت في اشارة الى في وقت سابق عندما تختزل إلى الطلاب 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 غوغلينغ وقت متأخر من الليل. 627 00:30:51,610 --> 00:30:54,880 وهكذا وأود أن أشجع والتسول من أنت، إذا كنت لا تملك تلك لا مفر منه 628 00:30:54,880 --> 00:30:58,450 لحظات من التوتر، كنت الاهتزاز تصل ضد الموعد النهائي، لم يكن لديك وقت متأخر 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 >> لذلك خلاصة سريعة، ثم، من حيث توقفنا. 640 00:31:30,210 --> 00:31:33,690 حتى الأسبوع الماضي، أذكر أن نقدم الظروف، وليس في خدش 641 00:31:33,690 --> 00:31:34,880 ولكن في هذه المرة C. 642 00:31:34,880 --> 00:31:38,300 وكان هناك بعض الجملة الجديد ولكن حقا أي أفكار جديدة في حد ذاتها. 643 00:31:38,300 --> 00:31:42,630 كان لدينا التعبيرات المنطقية التي استطعنا أو جنبا إلى جنب مع اثنين العمودي 644 00:31:42,630 --> 00:31:46,490 قضبان أو وجنبا إلى جنب مع اثنين اقحام قائلا أن كلا من اليسار 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 >> ونحن ننظر في الحلقات. 650 00:32:00,160 --> 00:32:03,340 A للحلقة هو ربما الأكثر شيوعا، أو على الأقل واحد أن الناس 651 00:32:03,340 --> 00:32:05,330 تصل عادة لغريزي. 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 في حين يمكن الحلقات بالمثل تحقيق نفس الشيء. 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 هل يمكن أن تعلن ودعا الباحث العداد، منقوطة. 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 لذلك انا ذاهب الى المضي قدما والقيام الباحث - 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 الباحث الرئيسي (الفراغ)، مجعد مفتوحة قوس، أغلقت متعرج. 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 >> لذلك الباحث ن - 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 لذلك الباحث ن يساوي GetInt (). 723 00:35:09,960 --> 00:35:11,780 والذي يحدث لوضع وكثافة العمليات داخل ن. 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 كان في خدش، ويمكنني أن أقول شيئا مثل إذا كان n أقل من أو يساوي 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 حسنا، ولكن أريد حقا للحصول على هذا الباحث. 734 00:35:47,310 --> 00:35:52,020 حتى أتمكن من الذهاب هنا واستطعت النوع من نسخ هذا وبمحاذاة أطراف هذا. 735 00:35:52,020 --> 00:35:52,570 ومن ثم، OK. 736 00:35:52,570 --> 00:35:56,990 حتى إذا كان n أقل من أو تساوي الصفر قيام بذلك. 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 في الواقع الحصول على كثافة العمليات. 744 00:36:14,150 --> 00:36:15,620 يمكنني ثم تحقق من أن كثافة العمليات. 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 وأريد أن يحصل هذا الباحث مرة واحدة على الأقل. 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 انا ذاهب الى القيام ن الباحث يحصل 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 N هو أقل من أو تساوي الصفر. 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 سأفعل٪ لكثافة العمليات ط - 771 00:37:18,980 --> 00:37:23,270 مائل ن، فاصلة، ثم سد العجز في ن، الفاصلة المنقوطة. 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 ما يسمى الإعلانات من الحصول على كثافة العمليات التي تعليم الأجهزة، أو يعلم 787 00:37:56,770 --> 00:37:58,760 C ما GetInt () هو. 788 00:37:58,760 --> 00:37:59,550 >> لذلك اسمحوا لي الحفظ. 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 لذلك اسمحوا لي المضي قدما وإعادة ترجمة مع جعل الإيجابية، أدخل. 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 ن الباحث، وأنا أسند لها قيمة الإرجاع 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 >> لذلك، وإن كان، متوقع إلى حد ما، اسمحوا لي أن ألخص. 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 ولكن ما هي لكم الآن لا القيام دوريا؟ 848 00:40:56,370 --> 00:40:58,260 كنت الواضح عدم الحصول على والباحث دوريا. 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 ن الباحث، منقوطة. 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 ()، وسوف لا يقل عن نعود إلى كثافة من المستخدم. 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 ستحصل على كثافة العمليات. 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، التي ليست كثافة العمليات. 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 الوجبات الجاهزة الكائن الرئيسية، أن تكون واضحة، وليس الكثير من الحلقة، التي شهدناها 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 n هو متغير عمومي. 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 هذا العفريت أو لجميع العفاريت. 915 00:43:50,780 --> 00:43:54,270 حسنا، كل العفاريت هو مجرد أوضح طريقة للقول العالمي. 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 أعلنت وتعريف ن في خط التسعة - 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 تربويا، ونحن قد صعد ل توقعات المترجم لجعل 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 ولكن مرة أخرى، وجعل هو الأداة التي بأتمتة عملية تجميع من قبل 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 دعا برنامج المصحح. 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 لقد C. C حول لفترة أطول من 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 مكتبة وأي الأصفار وتلك التي 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 واسمحوا لي أن تمضي قدما الآن والقيام كثافة العمليات الرئيسية (الفراغ). 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 لكثافة العمليات ط يحصل الصفر. 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 ثم، في كل تكرار لل هذه الحلقة، وأنا زائد زائد. 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 >> ولكن الآن على كل التكرار من هذه الحلقة، لاحظ ما أنا ذاهب الى القيام به. 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 H-E-L-L-O، حرف واحد في كل سطر. 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 >> واتضح يمكنني القيام به ليالي، وقوس، ط، وقوس وثيقة، وثيقة 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 ولكن ما هو أنيق عنها هو في ذاكرة الوصول العشوائي في الكمبيوتر - 1026 00:49:02,010 --> 00:49:05,300 لجنة الهدنة العسكرية، وأجهزة الكمبيوتر، كل ما هو - انهم نسخ حرفيا إلى العودة إلى الوراء - 1027 00:49:05,300 --> 00:49:06,225 H-E-L-L-O - 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 التي من شأنها أن تطبع H-E-L-L-O على السطر الخاص به. 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 واحدة من الفرار الأولى لفون. 1037 00:49:38,300 --> 00:49:40,800 نصائح والخدع يعني تكسير الهاتف بحيث يمكنك فعلا استخدامها على 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 المعروف تاريخيا باعتبارها غموض C مسابقة، حيث يمكنك كتابة برنامج 1053 00:50:19,630 --> 00:50:24,670 أن يجمع ويدير ولكن ذلك هو لعنة يمكن خفي لا الإنسان فهم ما 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 لا إذا قمت بتشغيل هولواي؟ 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 >> SPEAKER 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 >> [عزف الموسيقى]