1 00:00:07,590 --> 00:00:09,920 [Powered by Google Translate] DAVID J. مالان: حسنا، هذا هو CS50 وهل هذا هو 2 00:00:09,920 --> 00:00:15,250 نهاية الأسبوع 1، بطاقات الدراسة حتى في والعدد الإجمالي لل 3 00:00:15,250 --> 00:00:18,640 زملاء الدراسة أن لديك هذا العام هو 745. 4 00:00:18,640 --> 00:00:20,920 وكنت سعيدة لذلك نحن لدينا العديد منكم في سياق 5 00:00:20,920 --> 00:00:23,680 في هذا الفصل الدراسي، ولكن على الرغم من هذه الدورة هو كبير جدا، 6 00:00:23,680 --> 00:00:26,090 ندرك أنه من هذه الأشياء مثل وجبات غداء الجمعة، مثل 7 00:00:26,090 --> 00:00:29,020 ساعات العمل والأقسام 15-الشخصي، وهكذا دواليك 8 00:00:29,020 --> 00:00:30,590 وتهدف حقا إلى إنشاء هذا أكثر حميمية 9 00:00:30,590 --> 00:00:31,140 البيئة. 10 00:00:31,140 --> 00:00:34,070 على الرغم من ذلك قد نجتمع مرة أو مرتين في الأسبوع، وهنا في 11 00:00:34,070 --> 00:00:36,420 ساندرز، ونعرف أن الكثير من تجربتك في هذه الدورة 12 00:00:36,420 --> 00:00:39,330 وسوف يكون كثيرا على التدريب العملي على جانب من زملائك 13 00:00:39,330 --> 00:00:40,730 وأعضاء هيئة التدريس. 14 00:00:40,730 --> 00:00:43,960 >> حتى هنا نذهب، خريف 2012. 15 00:00:43,960 --> 00:00:47,530 يذكر أن آخر مرة حتى انتهى بنا على علما 16 00:00:47,530 --> 00:00:50,460 عدم الدقة، والحديث عن تمثيل الأرقام. 17 00:00:50,460 --> 00:00:52,950 ونحن ننظر في واحدة من الفشل الذي حدث، في 18 00:00:52,950 --> 00:00:54,920 العالم الحقيقي، وعندما جاء لسوء الفهم 19 00:00:54,920 --> 00:00:55,890 كيف تعمل أجهزة الكمبيوتر. 20 00:00:55,890 --> 00:00:58,590 حسنا، اليوم سوف نعيد النظر آخر واحد من تلك الأفكار كما 21 00:00:58,590 --> 00:01:01,410 كذلك مواصلة مناقشتنا للعميل CS50 22 00:01:01,410 --> 00:01:04,090 وC وماذا يعني حقا أن البرنامج. 23 00:01:04,090 --> 00:01:06,430 ولكن أولا، فقط بضع الإعلانات زوبعة. 24 00:01:06,430 --> 00:01:08,930 >> أقسام تبدأ هذا الأحد، والأسبوع الأول دائما 25 00:01:08,930 --> 00:01:11,030 قليلا من سرعة البدء، لأننا فقط حصلت في 26 00:01:11,030 --> 00:01:12,620 أشكال القسم الخاص بك. 27 00:01:12,620 --> 00:01:14,450 نقوم به هو نفسه، الآن، مع زملاء التدريس، والآن 28 00:01:14,450 --> 00:01:16,410 أنهم يعرفون جداول أعمالهم، لذلك نهدف، من خلال 29 00:01:16,410 --> 00:01:19,380 صباح اليوم السبت، لمتابعة معكم مع القسم الخاص 30 00:01:19,380 --> 00:01:20,760 تعيين وتمويل الإرهاب. 31 00:01:20,760 --> 00:01:22,770 يدركون أنهم سوف تبدأ في اليوم التالي، يوم الأحد 32 00:01:22,770 --> 00:01:24,510 أو الاثنين أو الثلاثاء. 33 00:01:24,510 --> 00:01:27,730 ومن ثم فإننا سوف تستوعب التغييرات التي تنشأ القسم 34 00:01:27,730 --> 00:01:28,690 في الأيام القادمة. 35 00:01:28,690 --> 00:01:31,590 ساعات العمل، وفي الوقت نفسه، هي، مرة أخرى، هذه الليلة، 8 م إلى 11، في 36 00:01:31,590 --> 00:01:33,740 أننبرغ، وكذلك ليلة الغد. 37 00:01:33,740 --> 00:01:36,150 على الرغم من أن المشكلة هي مجموعات عموما بسبب يوم الخميس 38 00:01:36,150 --> 00:01:39,020 عند الظهر، وتحقيق لديك ما يصل إلى خمسة أيام لقضاء وقت متأخر، 39 00:01:39,020 --> 00:01:42,430 وبالتالي توفر ساعات العمل يوم الخميس اذا 40 00:01:42,430 --> 00:01:45,930 كنت النقدية في واحدة من تلك الأيام في وقت متأخر، ويقدم بذلك، 41 00:01:45,930 --> 00:01:47,070 شيء يوم الجمعة. 42 00:01:47,070 --> 00:01:50,850 اسمحوا لي أن أقترح أن الصفر هو من بين أكثر متعة، بين 43 00:01:50,850 --> 00:01:52,390 أكثر مجموعات منخفضة المشكلة الرئيسية. 44 00:01:52,390 --> 00:01:55,160 وأود أن تشبث تلك الأيام أواخر استراتيجيا، فقط 45 00:01:55,160 --> 00:01:57,380 في وقت لاحق في الحياة الفصل الدراسي عندما يبدأ في الحصول على الطريق 46 00:01:57,380 --> 00:01:59,470 مع انتخابات التجديد النصفي والفئات الأخرى. 47 00:01:59,470 --> 00:02:01,580 تعيين المشكلة 1، وفي الوقت نفسه، سيتم نشر على البرنامج الدراسي 48 00:02:01,580 --> 00:02:06,080 موقع يوم الجمعة، إذ سيتم في المشي في مسار 49 00:02:06,080 --> 00:02:08,789 من خلال الفيديو، سيتم تصويره التي الساعة 2:30 بعد الظهر يوم الجمعة 50 00:02:08,789 --> 00:02:11,890 ونشرت على الانترنت من قبل ثم في اليوم التالي. 51 00:02:11,890 --> 00:02:13,880 >> حتى لقد انتهى يوم الاثنين. 52 00:02:13,880 --> 00:02:15,450 أريد أن - في الواقع، واحدة نلاحظ هنا. 53 00:02:15,450 --> 00:02:18,870 لأن الطبقات - بسبب ساندرز لا تقرض بالضبط 54 00:02:18,870 --> 00:02:22,220 س عارضة نفسها والعودة A وإيابا جيدا بشكل رهيب، كنت نحن 55 00:02:22,220 --> 00:02:24,030 الذهاب لمحاولة شيء جديد يذكر هذا العام، حيث 56 00:02:24,030 --> 00:02:26,160 إذا كنت غير مريحة رفع يدك أو لك فقط 57 00:02:26,160 --> 00:02:28,800 لا ترغب في رفع يدك في غرفة من هذا القبيل، 58 00:02:28,800 --> 00:02:30,710 نحن ستكون لدينا بعض الزملاء التدريس والمصدقة 59 00:02:30,710 --> 00:02:33,260 cs50.net/discuss يحرسون خلال المحاضرة. 60 00:02:33,260 --> 00:02:35,440 إذا كان الأمر كذلك لديك سؤال لأنني كنت تماما 61 00:02:35,440 --> 00:02:37,510 غير واضح أو عن شيء كنت غريبة عن بعض 62 00:02:37,510 --> 00:02:39,640 الموضوع، في محاولة نشرها هناك. 63 00:02:39,640 --> 00:02:42,670 علامة مع علامة من محاضرة، ونحن سوف نبذل قصارى جهدنا 64 00:02:42,670 --> 00:02:45,430 اليوم والاسبوع القادم - we'll محاولة ذلك - لأنه الميدان 65 00:02:45,430 --> 00:02:47,990 إما إلكترونيا أو عبر الإنترنت أو إذا كان يشعر وكأنه ينبغي لنا 66 00:02:47,990 --> 00:02:50,430 معالجة حقا بشكل جماعي، واحدة من الزملاء أو التدريس 67 00:02:50,430 --> 00:02:52,080 سوف المصدقة رفع أيديهم واطلب 68 00:02:52,080 --> 00:02:53,480 مجهول نيابة عنك. 69 00:02:53,480 --> 00:02:55,650 وهكذا لن نعطي هذه محاولة ونرى مدى نجاح هذه الأعمال. 70 00:02:55,650 --> 00:02:58,540 ولكن، وبكل الوسائل، ومواصلة رفع اليدين كما تحب. 71 00:02:58,540 --> 00:03:11,420 >> حتى آخر مرة كشفت لنا أن 10٪ أو واحد عشر لم يكن، في 72 00:03:11,420 --> 00:03:13,840 الواقع، 0.1، مثل التي كانت تدرس منذ سنوات عديدة. 73 00:03:13,840 --> 00:03:15,390 انها في الواقع، قيمة مثل هذا. 74 00:03:15,390 --> 00:03:16,970 ولكن هذا ليس صحيحا تماما، أليس كذلك؟ 75 00:03:16,970 --> 00:03:19,585 لدينا فقط هذا القيد في أجهزة الكمبيوتر حيث، إذا كنت 76 00:03:19,585 --> 00:03:22,450 لديك سوى كمية محدودة من الذاكرة، RAM، أو أكثر 77 00:03:22,450 --> 00:03:25,220 بت على وجه التحديد، وأيضا، لا يوجد سوى عدد محدود 78 00:03:25,220 --> 00:03:26,980 من الأشياء التي يمكن أن تمثل. 79 00:03:26,980 --> 00:03:29,780 على سبيل المثال، إذا كان لدينا الرقم صفر، ونريد أن 80 00:03:29,780 --> 00:03:32,790 تمثل في ثنائي، وذلك باستخدام ثمانية بت، حيث قليلا، 81 00:03:32,790 --> 00:03:34,710 مرة أخرى، هو صفر أو واحد ل، ونحن قد 82 00:03:34,710 --> 00:03:39,240 أنها تمثل 00000000. 83 00:03:39,240 --> 00:03:41,160 وهذا قليلا مطول دون داع. 84 00:03:41,160 --> 00:03:43,700 مثلما هو الحال في النظام العشري في العالم الحقيقي، 85 00:03:43,700 --> 00:03:47,040 عموما، إذا كنت تريد أن تكتب 123 عدد، ونحن 86 00:03:47,040 --> 00:03:52,240 البشر ربما لا تكتب حتى ولو 00000123، 87 00:03:52,240 --> 00:03:53,940 وظيفيا، وهذا هو بالضبط نفس عدد. 88 00:03:53,940 --> 00:03:56,580 نحن مجرد قطرة الأصفار البادئة، إذا جاز التعبير. 89 00:03:56,580 --> 00:03:58,270 >> في ثنائي، يمكننا أن نفعل نفس الشيء. 90 00:03:58,270 --> 00:04:01,440 وثنائي صفر، صفر هو صفر وثنائية فقط. 91 00:04:01,440 --> 00:04:02,870 ما عليك سوى بت واحد. 92 00:04:02,870 --> 00:04:05,020 ولكن مرة أخرى، وحدة القياس الأكثر شيوعا في العالم 93 00:04:05,020 --> 00:04:07,820 الحوسبة بايت، وثمانية بت. 94 00:04:07,820 --> 00:04:09,720 لمجرد حرف واحد، لا طائل منه جدا. 95 00:04:09,720 --> 00:04:12,020 ثمانية بت، وليس مفيدا بشكل رهيب، ولكن على الأقل هو أكثر من ذلك 96 00:04:12,020 --> 00:04:14,280 فائدة من وحدة واحدة للقياس. 97 00:04:14,280 --> 00:04:17,100 حتى مع ثمانية بت، سوف نمثلها عادة ثنائي. 98 00:04:17,100 --> 00:04:20,459 حتى هنا لدينا أرقام صفر، واحد، اثنين، وبعد ذلك، كما 99 00:04:20,459 --> 00:04:24,200 نيت به في الفيديو لدينا يوم الأربعاء الماضي، لا يمكننا الاستمرار 100 00:04:24,200 --> 00:04:25,940 عد تصل إلى سبعة، وثمانية. 101 00:04:25,940 --> 00:04:27,860 ثم إذا كنا استخدام بت أكثر وأكثر، ونحن 102 00:04:27,860 --> 00:04:29,880 حتى يمكن الاعتماد إلى ما لا نهاية. 103 00:04:29,880 --> 00:04:32,800 ولكن إذا كان لديك سوى عدد محدود من هذه القطع، كما هو 104 00:04:32,800 --> 00:04:35,030 الحال في أي نظام حاسوبي، أو حتى الصواريخ 105 00:04:35,030 --> 00:04:36,670 النظام، حسنا، في الواقع لديك فقط 106 00:04:36,670 --> 00:04:37,900 كمية محدودة من الدقة. 107 00:04:37,900 --> 00:04:41,290 حتى إذا كنت تريد لتمثيل عدد مثل 0.1، حسنا، 108 00:04:41,290 --> 00:04:43,410 الكمبيوتر لانتقاء واختيار. 109 00:04:43,410 --> 00:04:45,970 وإذا كان لديه سوى عدد محدود من الأرقام ما في وسعها 110 00:04:45,970 --> 00:04:50,490 تمثل، يمكن أن تقترب إلى 0.1 بالنسبة لك، ولكن لا يمكن 111 00:04:50,490 --> 00:04:53,730 تعطي بالضرورة لك بالضبط القيمة التي تريدها. 112 00:04:53,730 --> 00:04:55,660 وهذا هو مجرد واحدة من التحديات من أجهزة الكمبيوتر، 113 00:04:55,660 --> 00:04:57,090 تحت غطاء محرك السيارة، والحمد لله. 114 00:04:57,090 --> 00:04:59,110 >> ونحن نمضي أبعد في الفصل الدراسي، وهذه أقل مستوى 115 00:04:59,110 --> 00:05:02,310 تفاصيل أصبحت أقل إثارة للاهتمام، ولكن بالتأكيد 116 00:05:02,310 --> 00:05:05,700 يمكن تطبيق هذه الأفكار على بعض العالم الحقيقي جدا 117 00:05:05,700 --> 00:05:06,760 تداعيات. 118 00:05:06,760 --> 00:05:08,190 هو واحد من المرح قليلا. 119 00:05:08,190 --> 00:05:12,150 شهدت كم منكم مكتب الفيلم مذهلة الفضاء؟ 120 00:05:12,150 --> 00:05:13,620 إذا كان لديك لا، هذا غير الرسمية الخاصة بك 121 00:05:13,620 --> 00:05:14,370 الواجبات المنزلية هذا الأسبوع. 122 00:05:14,370 --> 00:05:16,730 ولكن في مكتب الفضاء، والزملاء في هذا الفيلم تأخذ 123 00:05:16,730 --> 00:05:19,900 فكرة الاستفادة من هذا على وجه التحديد، ولكن في الواقع سرقوا 124 00:05:19,900 --> 00:05:21,270 ذلك أن من فيلم آخر قد تكون لديكم 125 00:05:21,270 --> 00:05:22,760 ينظر، حتى قبل سنوات. 126 00:05:22,760 --> 00:05:24,920 لذلك اسمحوا لي أن أقدم لكم بضع ثوان من هذه المقطورة من 127 00:05:24,920 --> 00:05:27,470 هذا الفيلم المدهش وهذا هو إلى حد كبير 128 00:05:27,470 --> 00:05:28,340 ذات الصلة أكاديميا. 129 00:05:28,340 --> 00:05:30,310 >> [يلعب MOVIE] 130 00:05:30,310 --> 00:05:32,240 في الواقع أنا يجري الترويج I. 131 00:05:32,240 --> 00:05:33,360 يمكنني برمجة الفيروس الذي سوف مزق أن 132 00:05:33,360 --> 00:05:34,460 المركز قبل وقت كبير. 133 00:05:34,460 --> 00:05:35,770 حسنا، كيف يعمل؟ 134 00:05:35,770 --> 00:05:37,836 في كل مرة هناك المعاملات المصرفية حيث الفائدة 135 00:05:37,836 --> 00:05:40,154 محسوب، وهناك الآلاف يوميا، الكمبيوتر ينتهي 136 00:05:40,154 --> 00:05:41,040 مع هذه أجزاء من المائة. 137 00:05:41,040 --> 00:05:43,050 ولكن أنا لن تفعل أي شيء غير قانوني. 138 00:05:43,050 --> 00:05:46,730 غير قانونية؟ سمير، هذه هي أميركا. 139 00:05:46,730 --> 00:05:48,010 عليك أن أقسم الله. 140 00:05:48,010 --> 00:05:51,870 إذا كان لا أحد يعرف عن هذا ولكن لنا، كل الحق؟ أي من أفراد الأسرة، لا 141 00:05:51,870 --> 00:05:52,490 صديقات، لا أحد. 142 00:05:52,490 --> 00:05:53,882 [غير مسموع]. 143 00:05:53,882 --> 00:05:57,594 لا تقلق يا رجل، أنا لن تخبر أحدا أيضا. 144 00:05:57,594 --> 00:05:59,680 [ينتهي الفيلم] 145 00:05:59,680 --> 00:06:01,900 >> كل الحق، ولذلك ربما وجدت هذا الفيلم أفضل من معظم 146 00:06:01,900 --> 00:06:05,530 الناس هنا، ولكن في أي حال، فإن الفيروس الذي كانوا 147 00:06:05,530 --> 00:06:06,400 تحاول خلق - 148 00:06:06,400 --> 00:06:08,410 وفي السينما، في أي وقت تريد شيئا يسمونه فيروس، 149 00:06:08,410 --> 00:06:09,770 انها عموما يست في الواقع الفيروس. 150 00:06:09,770 --> 00:06:11,600 انها مجرد أن شخصا ما كتب برنامج لعمل شيء. 151 00:06:11,600 --> 00:06:13,800 وفي هذه الحالة، وكان الرجال في محاولة لكتابة برنامج 152 00:06:13,800 --> 00:06:16,610 استغرق أن تستفيد من شركتهم دعا في Innotech 153 00:06:16,610 --> 00:06:19,740 نظام الحوسبة، حيث أجهزة الكمبيوتر، أيضا، حتى عندما 154 00:06:19,740 --> 00:06:21,350 يتعلق الأمر بالمال، لا يمكن بالضرورة 155 00:06:21,350 --> 00:06:23,490 تمثل المال على وجه التحديد. 156 00:06:23,490 --> 00:06:27,630 على الرغم من ذلك قد يكون لديك 0،10 $ في حسابك المصرفي، 157 00:06:27,630 --> 00:06:31,060 0.10، حسنا، قد تعتقد الكمبيوتر في الواقع أن لديك 158 00:06:31,060 --> 00:06:33,560 هذا سنتا كثيرة في حسابك المصرفي. 159 00:06:33,560 --> 00:06:35,750 وذلك ما كان هؤلاء الرجال تطمح إلى القيام به - وهم 160 00:06:35,750 --> 00:06:38,240 سرق فكرة، كما تبين من سوبرمان الثالث، حيث 161 00:06:38,240 --> 00:06:41,210 لم ريتشارد بريور نفس الشيء - كانت أساسا 162 00:06:41,210 --> 00:06:44,880 كتابة البرامج التي تطمح إلى اتخاذ كافة زائدة 163 00:06:44,880 --> 00:06:46,930 أرقام، كل من صغيرة، والكسور، صغيرة صغيرة من 164 00:06:46,930 --> 00:06:50,160 بنسات، وشفط تلك قبالة بحيث البشر فقط 165 00:06:50,160 --> 00:06:52,620 الفكر، أوه، انها فقط 0،10 $ هناك، ولكن كل هذه 166 00:06:52,620 --> 00:06:54,410 أرقام زائدة تضيف في نهاية المطاف. 167 00:06:54,410 --> 00:06:57,490 حتى فكرة رائعة وأتت بنتائج عكسية بفرح شديد في تلك 168 00:06:57,490 --> 00:06:58,250 خاص الفيلم. 169 00:06:58,250 --> 00:07:01,800 >> ولكن في العالم الحقيقي، أيضا، وهناك أكثر من ذلك بكثير فيما يتعلق 170 00:07:01,800 --> 00:07:03,190 الآثار المترتبة على هذا النوع من الأشياء. 171 00:07:03,190 --> 00:07:05,450 وأحد الأسباب ليغوص في مجال الكمبيوتر 172 00:07:05,450 --> 00:07:07,620 العلم هو، مرة أخرى، لا تطبيقه على 173 00:07:07,620 --> 00:07:09,740 العلوم الهندسية وحدها، ولكن لمجرد 174 00:07:09,740 --> 00:07:10,650 غيرها من المجالات أيضا. 175 00:07:10,650 --> 00:07:14,760 لذلك هذا هو نظرة أقل مرح في ما يمكن ان تتعرض له، ولكن 176 00:07:14,760 --> 00:07:17,630 كما انها افتتاح تماما العين، كما أعتقد، عندما يتعلق الأمر 177 00:07:17,630 --> 00:07:20,760 فهم بالضبط كيف منتشرة في كل مكان مثل تكنولوجيات 178 00:07:20,760 --> 00:07:22,870 أجهزة الكمبيوتر والبرمجة أو في هذه الأيام، 179 00:07:22,870 --> 00:07:23,930 في شكل البرنامج. 180 00:07:23,930 --> 00:07:26,500 لذلك هذا هو مقطع القادمة فقط عن ست دقائق، ما زال 181 00:07:26,500 --> 00:07:30,320 حيث تركنا من آخر مرة، ولكن يسمح لنا أن ننظر قليلا 182 00:07:30,320 --> 00:07:33,370 أكثر تعمقا في واحدة من هذا القبيل من هذه القضايا. 183 00:07:33,370 --> 00:07:35,270 اسمحوا لي أن التجاوز الى حيث توقفنا، 184 00:07:35,270 --> 00:07:37,780 الذي كان هنا. 185 00:07:37,780 --> 00:07:41,580 ونحن لدينا الجزء الثاني من اثنين، لنحو ست دقائق هنا. 186 00:07:41,580 --> 00:07:41,980 >> [PLAY MOVIE] 187 00:07:41,980 --> 00:07:45,430 تعاني الحديثة تكنولوجيا الصواريخ. 188 00:07:45,430 --> 00:07:49,280 في عام 1991، مع بداية حرب الخليج الأولى، وباتريوت 189 00:07:49,280 --> 00:07:51,350 شهدت صاروخ نوع مماثل من 190 00:07:51,350 --> 00:07:52,645 عدد تحويل المشكلة. 191 00:07:52,645 --> 00:07:57,460 ونتيجة لذلك، قتل 20 شخصا، 20 جنديا أمريكيا، 192 00:07:57,460 --> 00:08:01,130 وحوالي 100 آخرين بجروح، عندما باتريوت، والتي كان من المفترض 193 00:08:01,130 --> 00:08:03,400 للحماية من صواريخ سكود واردة، 194 00:08:03,400 --> 00:08:06,020 فشل إطلاق صاروخ. 195 00:08:06,020 --> 00:08:09,350 >> عندما غزا العراق الكويت وأطلقت أمريكا الصحراء 196 00:08:09,350 --> 00:08:13,530 العاصفة في أوائل عام 1991، كانت بطاريات صواريخ باتريوت 197 00:08:13,530 --> 00:08:16,970 نشرت لحماية المملكة العربية السعودية وإسرائيل من العراقية 198 00:08:16,970 --> 00:08:19,810 هجمات سكود صاروخ. 199 00:08:19,810 --> 00:08:23,740 باتريوت هو متوسطة المدى سطح الولايات المتحدة إلى الجو النظام، 200 00:08:23,740 --> 00:08:26,370 المصنعة من قبل شركة رايثيون. 201 00:08:26,370 --> 00:08:30,860 حجم اعتراضية باتريوت نفسها، ولكن عن 202 00:08:30,860 --> 00:08:35,650 حوالي 20 أقدام طويلة ويزن حوالي 2،000 جنيه. 203 00:08:35,650 --> 00:08:38,809 ويحمل رأسا حربية من حوالي - اعتقد انه من تقريبا 204 00:08:38,809 --> 00:08:40,169 150 جنيه. 205 00:08:40,169 --> 00:08:45,820 والرأس الحربي نفسه هو الذي شديدة الانفجار 206 00:08:45,820 --> 00:08:48,120 شظايا من حوله. 207 00:08:48,120 --> 00:08:51,870 تم تصميم غلاف الرأس الحربي لعمل مثل رصاص. 208 00:08:51,870 --> 00:08:54,920 وتنفذ هذه الصواريخ أربعة في الحاويات وهي 209 00:08:54,920 --> 00:08:57,850 نقل من قبل نصف المقطورة. 210 00:08:57,850 --> 00:09:02,940 >> باتريوت المضادة للصواريخ يعود على الأقل إلى 211 00:09:02,940 --> 00:09:05,530 20 عاما حتى الآن. 212 00:09:05,530 --> 00:09:09,150 كان مصمما أصلا على أنها صاروخ الدفاع الجوي ل 213 00:09:09,150 --> 00:09:12,920 اسقاط الطائرات العدو، في حرب الخليج الأولى. 214 00:09:12,920 --> 00:09:17,700 أراد الجيش أن الحرب عندما جاء على طول، لاستخدامه لاطلاق النار 215 00:09:17,700 --> 00:09:19,880 أسفل صواريخ سكود، وليس الطائرات. 216 00:09:19,880 --> 00:09:24,860 وكان سلاح الجو العراقي وليس ذلك بكثير على وجود مشكلة، ولكن الجيش 217 00:09:24,860 --> 00:09:27,260 يشعر بالقلق بشأن صواريخ سكود. 218 00:09:27,260 --> 00:09:30,810 وحاولت حتى لترقية باتريوت. 219 00:09:30,810 --> 00:09:33,770 اعتراض صاروخ عدو تسير بسرعة 5 ماخ ذاهبا 220 00:09:33,770 --> 00:09:35,790 ليكون تحديا بما فيه الكفاية. 221 00:09:35,790 --> 00:09:39,460 ولكن لحظة نقل باتريوت في الخدمة، والجيش 222 00:09:39,460 --> 00:09:43,730 لم يكن لديها علم بأي تعديل العراقية التي جعلت من 223 00:09:43,730 --> 00:09:46,510 صواريخ سكود من المستحيل تقريبا ليصل. 224 00:09:46,510 --> 00:09:50,040 >> ما حدث هو صواريخ سكود التي كانت 225 00:09:50,040 --> 00:09:51,360 القادمة في غير مستقرة. 226 00:09:51,360 --> 00:09:52,266 كانوا متذبذب. 227 00:09:52,266 --> 00:09:56,300 وكان السبب في ذلك العراقيين، من أجل الحصول على 600 228 00:09:56,300 --> 00:10:00,650 كم من صاروخ نطاق كيلو متر 300، استغرق 229 00:10:00,650 --> 00:10:02,423 الوزن من الرؤوس الحربية والجبهة 230 00:10:02,423 --> 00:10:03,990 جعل الرؤوس الحربية أخف وزنا. 231 00:10:03,990 --> 00:10:08,700 حتى الآن باتريوت يحاول أن يأتي في سكود، وأكثر من 232 00:10:08,700 --> 00:10:11,192 الوقت، فإن الغالبية العظمى من الوقت، فإنه 233 00:10:11,192 --> 00:10:13,450 تطير به للتو سكود. 234 00:10:13,450 --> 00:10:16,300 مرة واحدة أدركت مشغلي نظام باتريوت باتريوت 235 00:10:16,300 --> 00:10:20,160 اخطأ هدفه، فجروا الرأس الحربي باتريوت. 236 00:10:20,160 --> 00:10:22,760 ممكن لتجنب سقوط ضحايا، وسمح لها 237 00:10:22,760 --> 00:10:25,100 ليسقط على الأرض. 238 00:10:25,100 --> 00:10:29,400 وكان معظم الناس أن ما رأى، كما نارية كبيرة في السماء، 239 00:10:29,400 --> 00:10:34,930 ويساء فهمها وقراءتها والرؤوس الحربية سكود. 240 00:10:34,930 --> 00:10:37,490 >> وعلى الرغم من في السماء ليلا، يبدو أن الوطنيين 241 00:10:37,490 --> 00:10:41,570 صواريخ سكود دمرت بنجاح، في الظهران، يمكن أن يكون هناك أي 242 00:10:41,570 --> 00:10:43,730 خطأ حول أدائها. 243 00:10:43,730 --> 00:10:46,370 هناك، فقدت نظام باتريوت للرادار مسار أحد 244 00:10:46,370 --> 00:10:50,090 واردة أبدا سكود أطلقت بسبب 245 00:10:50,090 --> 00:10:51,340 لعيب البرمجيات. 246 00:10:54,030 --> 00:10:57,050 كان الإسرائيليون الذين اكتشفت لأول مرة أن يعد 247 00:10:57,050 --> 00:11:02,000 وكان النظام على، وزيادة التفاوت الوقت أصبح، 248 00:11:02,000 --> 00:11:05,530 بسبب مدار الساعة المضمنة في الكمبيوتر النظام. 249 00:11:05,530 --> 00:11:09,060 نحو أسبوعين قبل المأساة في الظهران، في 250 00:11:09,060 --> 00:11:11,730 ذكرت الإسرائيليين إلى وزارة الدفاع أن 251 00:11:11,730 --> 00:11:13,250 كان نظام اضاعة الوقت. 252 00:11:13,250 --> 00:11:15,610 بعد حوالي ثماني ساعات من التشغيل، لاحظوا أن 253 00:11:15,610 --> 00:11:18,330 وقد أصبح نظام ملحوظ أقل دقة. 254 00:11:18,330 --> 00:11:20,910 رد وزارة الدفاع بقوله جميع 255 00:11:20,910 --> 00:11:23,710 وبطاريات باتريوت لعدم ترك نظم 256 00:11:23,710 --> 00:11:25,450 لفترة طويلة. 257 00:11:25,450 --> 00:11:28,010 وقال انهم لم ما كان وقتا طويلا - 8 ساعات، 10 258 00:11:28,010 --> 00:11:29,690 ساعات، 1،000 ساعة. 259 00:11:29,690 --> 00:11:31,940 لم يعرف أحد. 260 00:11:31,940 --> 00:11:35,020 >> البطارية باتريوت المتمركزة في ثكنة في الظهران 261 00:11:35,020 --> 00:11:39,030 وكان ساعته الداخلية معيبة كان على أكثر من 100 ساعة على 262 00:11:39,030 --> 00:11:42,240 ليلة 25 فبراير. 263 00:11:42,240 --> 00:11:46,580 تعقب حان الوقت لدقة حوالي عشر من الثانية. 264 00:11:46,580 --> 00:11:48,830 الآن عشر والثاني هو مثير للاهتمام لأن عدد 265 00:11:48,830 --> 00:11:52,660 لا يمكن أعرب في ثنائي، بالضبط، وهو ما يعني 266 00:11:52,660 --> 00:11:54,940 لا يمكن التعبير عن تماما في أي 267 00:11:54,940 --> 00:11:57,330 الكمبيوتر الرقمية الحديثة. 268 00:11:57,330 --> 00:11:59,130 من الصعب أن نعتقد. 269 00:11:59,130 --> 00:12:01,720 ولكن استخدام هذا على سبيل المثال. 270 00:12:01,720 --> 00:12:04,090 >> دعونا نلقي رقم واحد ثالث. 271 00:12:04,090 --> 00:12:07,950 لا يمكن ثلث يمكن التعبير عنها في عشري، بالضبط. 272 00:12:07,950 --> 00:12:12,710 وثلث 0،333 مستمرة لا نهاية. 273 00:12:12,710 --> 00:12:17,050 ليس هناك طريقة للقيام بذلك مع الدقة المطلقة في العشرية. 274 00:12:17,050 --> 00:12:19,340 هذا هو بالضبط نفس النوع من المشكلة التي وقعت في 275 00:12:19,340 --> 00:12:20,190 باتريوت. 276 00:12:20,190 --> 00:12:24,680 ويعد ركض النظام، والأسوأ في الوقت الخطأ أصبح. 277 00:12:24,680 --> 00:12:28,640 بعد 100 ساعة من العملية، وكان الخطأ في المرة الوحيدة 278 00:12:28,640 --> 00:12:29,870 حوالي ثلث من الثانية. 279 00:12:29,870 --> 00:12:34,790 ولكن من حيث استهدفت الصواريخ السفر في MACH 5، 280 00:12:34,790 --> 00:12:39,140 أدى ذلك في خطأ تتبع أكثر من 600 متر. 281 00:12:39,140 --> 00:12:42,510 سيكون من خطأ فادح للجنود في الظهران. 282 00:12:42,510 --> 00:12:48,680 >> تم الكشف عن ما حدث هو إطلاق صواريخ سكود من الإنذار المبكر 283 00:12:48,680 --> 00:12:52,440 عرف الأقمار الصناعية وقالوا إن سكود كانت قادمة في بهم 284 00:12:52,440 --> 00:12:53,350 الإدارة العامة. 285 00:12:53,350 --> 00:12:55,470 لكنها لم تعرف أين هو آت. 286 00:12:55,470 --> 00:12:58,210 كان عليه الآن حتى الرادار مكون من باتريوت 287 00:12:58,210 --> 00:13:01,920 نظام، والدفاع عن الظهران، لتحديد وتتبع لل 288 00:13:01,920 --> 00:13:03,700 واردة العدو الصواريخ. 289 00:13:03,700 --> 00:13:05,390 كان رادار ذكية جدا. 290 00:13:05,390 --> 00:13:07,570 كنت في الواقع تتبع موقف سكود ثم 291 00:13:07,570 --> 00:13:10,340 التنبؤ حيث ربما ستكون المرة القادمة 292 00:13:10,340 --> 00:13:12,040 أرسلت رادار نبضة بها. 293 00:13:12,040 --> 00:13:13,730 ودعا إلى أن البوابة النطاق. 294 00:13:13,730 --> 00:13:18,820 ثم، مرة واحدة باتريوت يقرر ما يكفي من الوقت للذهاب مرت 295 00:13:18,820 --> 00:13:22,600 دعم ومراجعة الموقع التالي لهذا المكتشفة 296 00:13:22,600 --> 00:13:24,190 كائن، فإنه يذهب إلى الخلف. 297 00:13:24,190 --> 00:13:27,940 لذلك عندما عاد إلى المكان الخطأ، ثم تراه لا 298 00:13:27,940 --> 00:13:31,000 الاعتراض، وتقرر أنه لا يوجد أي كائن. 299 00:13:31,000 --> 00:13:34,370 وكان الكشف كاذبة ويسقط الأغنية. 300 00:13:34,370 --> 00:13:37,630 >> اختفى سكود الواردة من شاشة الرادار. 301 00:13:37,630 --> 00:13:41,300 وبعد ثوان، انتقد عليه في الثكنات. وسكود 302 00:13:41,300 --> 00:13:44,730 مقتل 28 وكان آخر واحد أطلقت خلال 303 00:13:44,730 --> 00:13:46,450 حرب الخليج الأولى. 304 00:13:46,450 --> 00:13:50,570 مأساوي، وصل البرنامج المحدث في الظهران 305 00:13:50,570 --> 00:13:52,060 في اليوم التالي. 306 00:13:52,060 --> 00:13:56,210 وكان قد حدد الخلل البرمجيات، وإغلاق فصل واحد في 307 00:13:56,210 --> 00:13:58,370 تاريخ المضطربة من صواريخ باتريوت. 308 00:14:01,790 --> 00:14:04,990 PATRIOT هو في الواقع اختصار ل "تتبع مجموعة مراحل 309 00:14:04,990 --> 00:14:08,516 اعتراض من الهدف. " 310 00:14:08,516 --> 00:14:13,390 >> كل الحق، لذلك نتائج أكثر من محزن ليس تماما 311 00:14:13,390 --> 00:14:14,430 فهم هذا العالم. 312 00:14:14,430 --> 00:14:18,180 والوجبات الجاهزة، حقا، من الفيلم هو أن الحل 313 00:14:18,180 --> 00:14:20,790 كان هناك إعادة تمهيد النظام الدفاع الصاروخي 314 00:14:20,790 --> 00:14:21,770 كل مرة واحدة في حين لاخر. 315 00:14:21,770 --> 00:14:24,280 وذلك مرة أخرى، واحدة من أهداف هذه الدورة، وبالتأكيد 316 00:14:24,280 --> 00:14:26,900 على نطاق أكثر تواضعا من هذه التطبيقات، هو 317 00:14:26,900 --> 00:14:30,710 الجميع حقا عيون مفتوحة لبالضبط كيف يمكنك أن تذهب نحو 318 00:14:30,710 --> 00:14:34,380 آلات صنع تفعل ما تريد منهم أن يفعلوا وكيف تذهب 319 00:14:34,380 --> 00:14:37,180 عن القيام بذلك بشكل صحيح، في حين أن طول الطريق يفعل ذلك 320 00:14:37,180 --> 00:14:38,810 حسنا، أنيق، وهكذا دواليك. 321 00:14:38,810 --> 00:14:41,680 وحتى اليوم، دعونا الغوص في أكثر قليلا قليلا من هذا، ولكن 322 00:14:41,680 --> 00:14:44,210 ذلك أننا لا تذهب بسرعة كبيرة، لا سيما بالنسبة لأولئك أقل 323 00:14:44,210 --> 00:14:46,590 مريحة، ولكن أيضا حتى نتمكن من الحفاظ على مصلحة 324 00:14:46,590 --> 00:14:49,390 تلك أكثر راحة، دعونا نبدأ بسرعة فقط قليلا 325 00:14:49,390 --> 00:14:50,970 من خلاصة بعض هذه الأفكار. 326 00:14:50,970 --> 00:14:53,710 ومرة أخرى، اسأل بعيدا، سواء شخصيا أو عبر الإنترنت، وإذا كان لديك 327 00:14:53,710 --> 00:14:56,320 الأسئلة حتى نتمكن من ابقاء الجميع على نفس الصفحة. 328 00:14:56,320 --> 00:14:58,820 >> وبالتالي فإن الأجهزة CS50، خطوة سريعة الى الوراء، هو 329 00:14:58,820 --> 00:15:02,360 ما، في الكلمات الخاصة بك؟ 330 00:15:02,360 --> 00:15:06,454 انه موافق إذا كان لديك أي فكرة عما قد تكون هذه الكلمات بعد. 331 00:15:06,454 --> 00:15:07,830 [غير مسموع] 332 00:15:07,830 --> 00:15:10,950 حسنا، لذلك واجهة عالمية لل- 333 00:15:10,950 --> 00:15:11,900 التي يمكن أن نشترك فيها جميعا. 334 00:15:11,900 --> 00:15:12,470 على الاطلاق. 335 00:15:12,470 --> 00:15:14,840 حتى نتمكن من، على سبيل المثال، أخبر لك أن تذهب إلى بعض 336 00:15:14,840 --> 00:15:16,910 الموقع، قم بتحميل هذا البرنامج لنظام التشغيل ماك. 337 00:15:16,910 --> 00:15:19,140 تحميل هذا البرنامج لنظام التشغيل Windows، تكوين في 338 00:15:19,140 --> 00:15:20,100 وبهذه الطريقة ذلك. 339 00:15:20,100 --> 00:15:22,370 ولكن الواقع هو ثم واجهتنا الفنية لا تعد ولا تحصى 340 00:15:22,370 --> 00:15:23,200 دعم القضايا. 341 00:15:23,200 --> 00:15:26,630 وأيضا في هذه الأيام، فإن الكثير من ما يجري القيام به جانب الملقم، 342 00:15:26,630 --> 00:15:28,490 في عالم الحوسبة، وخصوصا عندما يتعلق الأمر 343 00:15:28,490 --> 00:15:31,460 تطوير الشبكة والتطبيقات القائمة على شبكة الإنترنت، هو في الواقع 344 00:15:31,460 --> 00:15:35,110 في كثير من الأحيان القيام به على أجهزة الكمبيوتر يونكس أو لينكس، على عكس 345 00:15:35,110 --> 00:15:36,800 ماك أو أجهزة الكمبيوتر ويندوز. 346 00:15:36,800 --> 00:15:39,240 >> حتى بين الإيجابيات، بعد ذلك، من استخدام هذا الشيء يسمى 347 00:15:39,240 --> 00:15:41,500 CS50 هو جهاز علينا كل نفس البيئة. 348 00:15:41,500 --> 00:15:43,670 لذلك الجميع في نفس الصفحة بغض النظر عن الجهاز الذي 349 00:15:43,670 --> 00:15:46,650 جاء إلى الحرم الجامعي ولكن أيضا مع سيتم تجريب في بالضبط 350 00:15:46,650 --> 00:15:48,230 نفس البيئة التي سوف تستخدم نحو 351 00:15:48,230 --> 00:15:51,080 الفصل الدراسي في نهاية فضلا عن تطوير الشبكة، وكذلك في 352 00:15:51,080 --> 00:15:53,580 المستقبل لتطبيقات العالم الحقيقي لها. 353 00:15:53,580 --> 00:15:56,350 أكثر من ذلك عمليا، فإن جهاز CS50 هو قطعة خالية من 354 00:15:56,350 --> 00:15:59,400 البرمجيات التي تسمح لك بتشغيل نظام تشغيل آخر، 355 00:15:59,400 --> 00:16:02,670 لينكس، في هذه الحالة، على جهاز الكمبيوتر الخاص بك، في إطار. 356 00:16:02,670 --> 00:16:04,750 الآن لا يمكنك فقط تحميل الجهاز. 357 00:16:04,750 --> 00:16:08,170 كنت في حاجة الى البرنامج الذي للعب أو تشغيل الجهاز. 358 00:16:08,170 --> 00:16:11,220 وكما هو معروف عموما أن قطعة من البرمجيات ويهدف الى 359 00:16:11,220 --> 00:16:11,520 برنامج مراقبة الأجهزة الافتراضية. 360 00:16:11,520 --> 00:16:14,050 برامج Hypervisor تأتي في شكل من المنتجات مثل إم وير، 361 00:16:14,050 --> 00:16:15,820 صندوق الظاهري، المتوازيات. 362 00:16:15,820 --> 00:16:18,390 جميع أنواع الشركات المصنعة للبرمجيات، على حد سواء حرة و 363 00:16:18,390 --> 00:16:19,310 التجارية، على حد سواء. 364 00:16:19,310 --> 00:16:21,480 ما سترى في مشكلة هي مجموعة 1 على تعليمات حول كيفية 365 00:16:21,480 --> 00:16:23,440 الحصول على البرمجيات الحرة التي ل 366 00:16:23,440 --> 00:16:25,000 تشغيل جهاز CS50. 367 00:16:25,000 --> 00:16:28,060 وبمجرد القيام بذلك، سيكون لديك، في إطار على جهاز Mac أو PC، 368 00:16:28,060 --> 00:16:30,710 بيئة سطح المكتب التي تبدو تماما مثل هذا، حيث 369 00:16:30,710 --> 00:16:33,100 أنه يحتوي على قائمة ابدأ مثل الشيء في 370 00:16:33,100 --> 00:16:34,510 أسفل الزاوية اليسرى. 371 00:16:34,510 --> 00:16:38,030 أنه يحتوي على مجلد الرئيسية، أو الدليل الصفحة الرئيسية، في أعلى اليسار 372 00:16:38,030 --> 00:16:40,280 هناك، يمكن لسلة المهملات، وهكذا دواليك. 373 00:16:40,280 --> 00:16:43,450 ولذا فإننا سوف ندف بصرف النظر عن التفاصيل اللازمة ونحن نمضي. 374 00:16:43,450 --> 00:16:46,430 >> ولكن دعونا نبدأ الآن ليغوص C. 375 00:16:46,430 --> 00:16:49,200 ذلك هو هذا C لغة البرمجة، مماثلة لل 376 00:16:49,200 --> 00:16:52,390 الصفر، ولكن أقل بكثير رسومية، ولكن ويا للسخرية، حتى 377 00:16:52,390 --> 00:16:54,730 أقوى تحصل مرة واحدة والدهاء معها. 378 00:16:54,730 --> 00:16:58,970 حتى في C، نكتب البرامج من خلال كتابة شفرة المصدر، الذي هو 379 00:16:58,970 --> 00:17:01,640 بناء الجملة هذا مثل اللغة الإنجليزية، على غرار الجوارب 380 00:17:01,640 --> 00:17:05,609 مظاهرة فعلنا المرة الأخيرة التي يسمح لك 381 00:17:05,609 --> 00:17:07,910 التعبير عن نفسك بدقة إلى حد ما، إذا 382 00:17:07,910 --> 00:17:09,760 arcanely، إلى الكمبيوتر. 383 00:17:09,760 --> 00:17:11,960 >> لذلك أي نوع من البرمجيات المنتج لا تحتاج في الواقع 384 00:17:11,960 --> 00:17:15,520 لكتابة برامج بلغة C مثل، استنادا لدينا 385 00:17:15,520 --> 00:17:17,492 المحادثة يوم الاثنين؟ 386 00:17:17,492 --> 00:17:19,650 [غير مسموع] 387 00:17:19,650 --> 00:17:21,079 OK، تحتاج فقط محرر النص. 388 00:17:21,079 --> 00:17:22,890 أنت لا تحتاج إلى أي برامج خاصة 389 00:17:22,890 --> 00:17:24,460 في حد ذاته لكتابة برامج. 390 00:17:24,460 --> 00:17:27,220 كل ما تحتاجه هو محرر نصي مثل المفكرة، على ويندوز، 391 00:17:27,220 --> 00:17:30,450 برنامج TextEdit على ماك، أو ما يسمى gedit، في عالم 392 00:17:30,450 --> 00:17:32,020 لينكس، والتي سنستخدم هنا. 393 00:17:32,020 --> 00:17:33,750 وهذا كل شيء، لكتابة البرامج. 394 00:17:33,750 --> 00:17:35,480 >> ولكن الكتابة فقط نصف المعادلة. 395 00:17:35,480 --> 00:17:36,630 ثم تحتاج لتشغيلها. 396 00:17:36,630 --> 00:17:38,320 ولكن من أجل تشغيل البرامج - 397 00:17:38,320 --> 00:17:39,600 لا يمكنك تشغيل التعليمات البرمجية المصدر. 398 00:17:39,600 --> 00:17:41,500 لديك بدلا من ذلك إلى فعل ما عليه أولا؟ 399 00:17:41,500 --> 00:17:41,900 نعم. 400 00:17:41,900 --> 00:17:43,200 DAVID J. مالان: أنت بحاجة إلى 401 00:17:43,200 --> 00:17:44,130 ترجمة عليه. 402 00:17:44,130 --> 00:17:49,010 و، شخص آخر، ترجمة التعليمات البرمجية المصدر يعني - 403 00:17:49,010 --> 00:17:50,260 [غير مسموع] 404 00:17:52,300 --> 00:17:52,700 DAVID J. مالان: بالضبط. 405 00:17:52,700 --> 00:17:54,430 ترجمتها إلى أصفار ومنها. 406 00:17:54,430 --> 00:17:57,150 لأن كل واحد منا، في هذه الأيام، لديك أجهزة الكمبيوتر التي تحتوي وحدات المعالجة المركزية، 407 00:17:57,150 --> 00:18:00,350 تقريبا مصنوعة كلها من قبل شركة تدعى شركة إنتل، و 408 00:18:00,350 --> 00:18:03,320 إنتل في الداخل، يعني هناك داخل هذا الدماغ الخاص بك 409 00:18:03,320 --> 00:18:04,990 الكمبيوتر، والمعروفة باسم وحدة المعالجة المركزية. 410 00:18:04,990 --> 00:18:07,570 واحدة من الأشياء التي أن يفعله هو الدماغ، فهو يعرف 411 00:18:07,570 --> 00:18:10,390 كيفية فهم أنماط الآحاد والأصفار و. 412 00:18:10,390 --> 00:18:13,240 فهو يعرف ما يمثل نمط بت بالإضافة إلى ذلك، ما 413 00:18:13,240 --> 00:18:15,500 نمط يمثل الطرح، ما نمط 414 00:18:15,500 --> 00:18:18,890 بت تمثل الطباعة، وخلق صوت مسموع. 415 00:18:18,890 --> 00:18:22,450 >> لذلك باختصار، وحدة المعالجة المركزية، بالإضافة إلى نظام التشغيل، 416 00:18:22,450 --> 00:18:25,230 الذي هو قطعة من البرامج التي يتم تشغيلها على أعلى وحدة المعالجة المركزية، 417 00:18:25,230 --> 00:18:26,050 إذا جاز التعبير. 418 00:18:26,050 --> 00:18:29,850 معا، تلك قطعتين معرفة كيفية تشغيل البرامج التي 419 00:18:29,850 --> 00:18:31,070 نحن البشر الكتابة. 420 00:18:31,070 --> 00:18:34,040 >> إذا كان الأمر كذلك أذهب إلى جهاز CS50 هنا، ولست بحاجة لفتح 421 00:18:34,040 --> 00:18:35,660 يصل محرر النص ويمكن الوصول إلى هذا أنا 422 00:18:35,660 --> 00:18:36,560 في عدة طرق. 423 00:18:36,560 --> 00:18:39,060 أستطيع أن أمضي إما إلى القائمة، البرمجة، 424 00:18:39,060 --> 00:18:40,230 ومن ثم يمكن تحديد I - 425 00:18:40,230 --> 00:18:40,810 كلا، لا تلك القائمة. 426 00:18:40,810 --> 00:18:43,860 يمكنني أن أذهب إلى البرامج الملحقة / gedit هنا لفتح 427 00:18:43,860 --> 00:18:45,090 محرر النص الخاص بي قليلا. 428 00:18:45,090 --> 00:18:48,030 أو أكثر ببساطة، لا أستطيع فوق هذا الرمز قليلا في الجزء السفلي 429 00:18:48,030 --> 00:18:48,970 الزاوية اليد اليسرى. 430 00:18:48,970 --> 00:18:50,430 والآن يمكنني الحصول على هذه البيئة هنا. 431 00:18:50,430 --> 00:18:52,590 انها تذكرنا جميلة من محرر نص بسيط، مع فقط 432 00:18:52,590 --> 00:18:53,820 واحد أو اثنين الخلافات. 433 00:18:53,820 --> 00:18:56,420 في الجزء العلوي، حيث يومض المؤشر الآن، هذا هو المكان 434 00:18:56,420 --> 00:18:57,900 أستطيع أن أبدأ كتابة قانون بلدي. 435 00:18:57,900 --> 00:19:00,415 في الجزء السفلي يسمى هذا الشيء إطار المحطة الطرفية. 436 00:19:00,415 --> 00:19:03,400 وماذا يمكن أن أنواع الأشياء أفعل في هذا 437 00:19:03,400 --> 00:19:04,960 ما يسمى إطار المحطة الطرفية؟ 438 00:19:04,960 --> 00:19:06,680 [غير مسموع] 439 00:19:06,680 --> 00:19:07,890 >> حسنا، لذلك سوف أقوم بتشغيل الأوامر. 440 00:19:07,890 --> 00:19:10,300 وكانت بعض الأوامر هربنا يوم الاثنين قليلا 441 00:19:10,300 --> 00:19:15,070 خفي في البداية، ولكن ليرة سورية لقائمة، قرص لتغيير الدليل، 442 00:19:15,070 --> 00:19:16,540 RM، لإزالته. 443 00:19:16,540 --> 00:19:19,680 حتى انها نوع من طريقة المدرسة القديمة من التنقل الخاص بك 444 00:19:19,680 --> 00:19:22,310 الكمبيوتر، وذلك باستخدام لوحة المفاتيح فقط والأوامر النصية، 445 00:19:22,310 --> 00:19:24,130 وليس، عموما، وذلك باستخدام الماوس. 446 00:19:24,130 --> 00:19:25,960 ولكن سنرى، قبل وقت طويل، وهذا يعطي لنا الواقع 447 00:19:25,960 --> 00:19:28,520 أكثر من ذلك بقليل الطاقة والدقة أكثر من ذلك بقليل مع أي أن 448 00:19:28,520 --> 00:19:29,600 التعبير عن أنفسنا. 449 00:19:29,600 --> 00:19:31,330 ثم أكثر من هنا على اليسار، ونحن في طريقنا لمجرد أن نرى، 450 00:19:31,330 --> 00:19:34,360 ونحن نبدأ برنامج الكتابة، ملخصا القليل من 451 00:19:34,360 --> 00:19:36,350 البرنامج الذي لدينا كتب في أعلى اليسار. 452 00:19:36,350 --> 00:19:38,360 ولكن سنرى ذلك مرة أخرى قبل مرور وقت طويل. 453 00:19:38,360 --> 00:19:40,050 >> لذلك دعونا نفعل شيئا بسيطا نوعا ما هنا. 454 00:19:40,050 --> 00:19:43,440 اسمحوا لي أولا الذهاب قدما وانتقل إلى ملف، حفظ، وأنا فقط 455 00:19:43,440 --> 00:19:45,970 الذهاب الى الضغط على jharvard هنا، في أكثر من اليسار، و 456 00:19:45,970 --> 00:19:48,930 jharvard هو، مرة أخرى، اسم للمجلد بيتي، بلدي 457 00:19:48,930 --> 00:19:52,110 ملفات شخصية، لي، والآن يجري جون هارفارد، ولكم جميعا 458 00:19:52,110 --> 00:19:54,230 قريبا جون هارفارد في هذه البيئة. 459 00:19:54,230 --> 00:19:57,360 انه حصل على هذا الدليل الرئيسي، المستندات وهكذا دواليك، 460 00:19:57,360 --> 00:19:58,900 الذي أريد حفظ، الآن، هذا الملف. 461 00:19:58,900 --> 00:20:01,520 لذلك أنا ذاهب الى نسميها hello.c. ثم انا ذاهب للذهاب 462 00:20:01,520 --> 00:20:05,770 انقر فوق حفظ وقبل، والآن ما لدي هنا هو علامة تبويب 463 00:20:05,770 --> 00:20:09,440 دعا hello.c، مثل الكثير من نوع آخر من المحرر. 464 00:20:09,440 --> 00:20:11,760 >> لذلك اسمحوا لي الآن المضي قدما والبدء في كتابة البرنامج. 465 00:20:11,760 --> 00:20:14,440 الباحث الرئيسي (الفراغ). 466 00:20:14,440 --> 00:20:18,150 ثم أنا فقط لم آخر مرة، printf، للطباعة تنسيق، 467 00:20:18,150 --> 00:20:22,120 ("مرحبا، العالم!" 468 00:20:22,120 --> 00:20:24,500 )؛ 469 00:20:24,500 --> 00:20:25,630 كامل تقريبا. 470 00:20:25,630 --> 00:20:27,130 ولكن أنا في عداد المفقودين بضعة تفاصيل. 471 00:20:27,130 --> 00:20:30,210 ما هو مفقود من هذا البرنامج الذي أنا فعلا بحاجة لل 472 00:20:30,210 --> 00:20:31,890 لتجميع فعلا؟ 473 00:20:31,890 --> 00:20:32,130 نعم. 474 00:20:32,130 --> 00:20:33,980 [غير مسموع]؟ 475 00:20:33,980 --> 00:20:35,770 >> DAVID J. مالان: نعم، لذلك أنا بحاجة لتضمين معيار 476 00:20:35,770 --> 00:20:36,700 I / O مكتبة. 477 00:20:36,700 --> 00:20:39,470 حتى هذا يحتاج إليها أعلاه الرئيسية، لذلك أنا مجرد الذهاب الى 478 00:20:39,470 --> 00:20:40,790 جعل بعض الغرف هناك. 479 00:20:40,790 --> 00:20:44,420 وانا ذاهب الى القيام # تشمل . 480 00:20:44,420 --> 00:20:46,570 وتلاحظ الأقواس الزاوية هناك. 481 00:20:46,570 --> 00:20:49,410 وبوصفها جانبا، gedit هو مستخدم قليلا ودية، إذا 482 00:20:49,410 --> 00:20:52,420 في بعض الأحيان مربكة قليلا، لأنه يحاول أن يساعد الخاص بك 483 00:20:52,420 --> 00:20:54,770 عيون تلاحظ ما يصطف مع ما. 484 00:20:54,770 --> 00:20:57,760 ذلك أن بلدي هو المؤشر بجوار الزاوية هذا 485 00:20:57,760 --> 00:21:00,600 قوس، لاحظ كيف انها تسلط الضوء على الزاوية الأخرى 486 00:21:00,600 --> 00:21:01,920 قوس زائد واحد هذا. 487 00:21:01,920 --> 00:21:03,770 وهذا فقط للفت انتباهي إلى أن الأول 488 00:21:03,770 --> 00:21:04,460 يكون التماثل. 489 00:21:04,460 --> 00:21:07,010 والتماثل في البرمجة عموما هو شيء جيد. 490 00:21:07,010 --> 00:21:10,270 وبالمثل، إذا كنت تحرك المؤشر إلى نهاية بلدي، لاحظ كيف أن 491 00:21:10,270 --> 00:21:13,630 الأقواس المتعرجة يصطفون لإظهار أن، نعم، لدي واحدة مفتوحة 492 00:21:13,630 --> 00:21:15,160 واحد مغلق، إذا جاز التعبير. 493 00:21:15,160 --> 00:21:16,640 >> يمكن لجميع الحق، وأنا تفعل شيئا واحدا الأخرى. 494 00:21:16,640 --> 00:21:20,090 انها ليست ضرورية تماما، ولكن الممارسة السليمة، أن أقول 495 00:21:20,090 --> 00:21:21,250 العودة 0. 496 00:21:21,250 --> 00:21:24,140 و 0 عودة يفعل ما بالنسبة لنا هنا؟ 497 00:21:24,140 --> 00:21:25,584 أو يدل على ماذا؟ 498 00:21:25,584 --> 00:21:27,480 [غير مسموع] 499 00:21:27,480 --> 00:21:28,300 DAVID J. مالان: ولكن لا شيء من الخطأ. 500 00:21:28,300 --> 00:21:30,280 وبصراحة فإنه من الصعب لكثير على غير ما يرام في 501 00:21:30,280 --> 00:21:31,250 هذا البرنامج القصير. 502 00:21:31,250 --> 00:21:33,930 لذلك أنا مجرد كونها سوبر صريح بأن كل شيء على ما يرام. 503 00:21:33,930 --> 00:21:36,740 سوف أنا، الإنسان، عند تشغيل هذا البرنامج، ربما أبدا 504 00:21:36,740 --> 00:21:38,150 نرى أن 0. 505 00:21:38,150 --> 00:21:41,070 عموما، يتم إرجاع هذه الأرقام التي من أهم 506 00:21:41,070 --> 00:21:43,540 الخلفية فقط رؤوسهم إلى البشر عندما 507 00:21:43,540 --> 00:21:44,360 سارت الامور بشكل خاطئ. 508 00:21:44,360 --> 00:21:46,640 وتحصل على البوب ​​قليلا حتى خطأ في النظام قائلا: واحد، 509 00:21:46,640 --> 00:21:48,760 اثنان، ثلاثة، أو كان مهما أن عدد 510 00:21:48,760 --> 00:21:50,100 وقد عاد فعلا. 511 00:21:50,100 --> 00:21:52,870 لذلك أي خطأ آخر في هذا؟ 512 00:21:52,870 --> 00:21:55,300 [غير مسموع] 513 00:21:55,300 --> 00:21:58,100 >> DAVID J. مالان: إذن هذا ليس كثيرا من الخطأ وظيفية 514 00:21:58,100 --> 00:21:59,240 ولكن واحدة الجمالية. 515 00:21:59,240 --> 00:22:02,340 ربما يجب أن أضع في حرف السطر الجديد هناك في 516 00:22:02,340 --> 00:22:05,240 نهاية هذه السلسلة حتى يتسنى لنا نقل المؤشر إلى الواقع 517 00:22:05,240 --> 00:22:08,340 السطر التالي، وبرنامج يبدو أجمل قليلا. 518 00:22:08,340 --> 00:22:10,340 >> لذلك اسمحوا لي الآن النزول الى بلدي نافذة طرفية 519 00:22:10,340 --> 00:22:11,490 والتكبير مرة أخرى. 520 00:22:11,490 --> 00:22:13,390 وهذا الشيء هنا، وانه دعا موجه. 521 00:22:13,390 --> 00:22:16,760 انها تذكير فقط لي من أنا، jharvard @ الأجهزة، حيث 522 00:22:16,760 --> 00:22:18,850 الأجهزة هو اسم جهاز الكمبيوتر أنا على. 523 00:22:18,850 --> 00:22:22,380 بين قوسين هو هذا تيلدا، رمز تمايل، التي 524 00:22:22,380 --> 00:22:24,160 يمثل ما؟ 525 00:22:24,160 --> 00:22:25,590 AUDIENCE: الدليل الرئيسي. 526 00:22:25,590 --> 00:22:26,350 DAVID J. مالان: الدليل الرئيسي. 527 00:22:26,350 --> 00:22:29,350 ذلك أن مجرد تدوين اختزال لقوله كنت في 528 00:22:29,350 --> 00:22:32,780 مجلد الشخصية حيث كل من الملفات الخاصة بك الذهاب بشكل افتراضي. 529 00:22:32,780 --> 00:22:36,080 حتى الآن، هنا، ويمكنني أن اكتب ليرة سورية لقائمة. 530 00:22:36,080 --> 00:22:40,020 والشيء الوحيد الذي أراه هنا في هذه اللحظة هو hello.c. 531 00:22:40,020 --> 00:22:41,770 وهذا امر جيد لأنني كتبت هذا فقط. 532 00:22:41,770 --> 00:22:44,380 >> لذلك اسمحوا لي نمضي قدما ونفعل جعل مرحبا. 533 00:22:44,380 --> 00:22:46,830 وتلاحظ انا لا تجعل كتابة hello.c. 534 00:22:46,830 --> 00:22:50,300 بدلا من ذلك، أنا فقط بكتابة اسم قاعدة من الملف، مرحبا. 535 00:22:50,300 --> 00:22:53,690 وجعل، كما رأينا يوم الاثنين، سوف نستنتج فقط أن أريد 536 00:22:53,690 --> 00:22:54,920 ملف ج. 537 00:22:54,920 --> 00:22:56,820 حتى الآن لقد كتبته أنا جعل مرحبا. 538 00:22:56,820 --> 00:22:59,280 الآن أرى هذا الأمر طويلة نسبيا وستستمر 539 00:22:59,280 --> 00:23:00,480 رؤية هذا مرارا وتكرارا. 540 00:23:00,480 --> 00:23:03,620 ولكن أن تكون واضحة، رنة، الكلمة التي ظهرت للتو، 541 00:23:03,620 --> 00:23:05,340 هذا هو المترجم الفعلي. 542 00:23:05,340 --> 00:23:08,200 جعل مجرد أداة بناء. 543 00:23:08,200 --> 00:23:11,900 انها مجرد برنامج أكثر ملاءمة للمستخدمين أن يوفر لي، في 544 00:23:11,900 --> 00:23:15,310 المدى البعيد، من الحاجة إلى كتابة مملة بشكل لا يصدق طويلة من 545 00:23:15,310 --> 00:23:17,020 أوامر من هذا القبيل واحد. 546 00:23:17,020 --> 00:23:18,950 لذلك يمكن تشغيل ضجيج يدويا. 547 00:23:18,950 --> 00:23:20,530 يمكنك كتابة كل ذلك يدويا. 548 00:23:20,530 --> 00:23:21,580 يحصل فقط مملة جدا. 549 00:23:21,580 --> 00:23:24,720 لذلك ومجرد البرنامج الذي يبسط حياتنا و 550 00:23:24,720 --> 00:23:27,120 يدير أوامر أكثر تعقيدا بالنسبة لنا. 551 00:23:27,120 --> 00:23:29,410 >> كل الحق، وذلك ما ينبغي الآن لدي ملف 552 00:23:29,410 --> 00:23:31,540 في الدليل الحالي بلدي؟ 553 00:23:31,540 --> 00:23:36,310 لا hello.c فقط، ولكن أيضا مرحبا. 554 00:23:36,310 --> 00:23:39,710 حتى لو كنت تريد تشغيل مرحبا، أذكر بأن أقول نقطة مائل، 555 00:23:39,710 --> 00:23:42,220 حيث الوسائل دوت تذهب إلى المجلد الحالي، أينما كنت 556 00:23:42,220 --> 00:23:46,060 هي، ثم قم بتشغيل برنامج يسمى مرحبا، وبالفعل، الآن، 557 00:23:46,060 --> 00:23:48,080 مرحبا لدي العالم. 558 00:23:48,080 --> 00:23:51,640 حسنا، على أية أسئلة على سير العمل أو بناء جملة 559 00:23:51,640 --> 00:23:52,890 ما فعلناه للتو؟ 560 00:23:55,380 --> 00:23:57,040 >> كل الحق، لذلك دعونا نأخذ الأمور فوق خدش مرة أخرى. 561 00:23:57,040 --> 00:24:00,430 لذلك كان هذا مخيب لمجرد كتابة برنامج فقط 562 00:24:00,430 --> 00:24:01,790 يقول من أي وقت مضى مرحبا، العالم. 563 00:24:01,790 --> 00:24:03,920 تغيرت لذلك نحن فيه، يوم الاثنين، أن يقول، مرحبا، ديفيد. 564 00:24:03,920 --> 00:24:06,560 انها أكثر من ذلك بقليل الشخصية، ولكن فقط من الصعب كما ترميز كما 565 00:24:06,560 --> 00:24:07,410 أول نسخة. 566 00:24:07,410 --> 00:24:08,780 لذلك ليس كل ما مقنعة. 567 00:24:08,780 --> 00:24:13,120 ولكن هناك، في C، إلى جانب وظائف بالتأكيد 568 00:24:13,120 --> 00:24:15,700 الطباعة والوظائف التي تتيح لك الحصول على مدخلات المستخدم. 569 00:24:15,700 --> 00:24:17,990 وكان الطريق فعلنا هذا، واليوم الآخر، كما يلي. 570 00:24:17,990 --> 00:24:21,440 قبل أن طباعة فعلا شيء، وأنا حصلت على أول 571 00:24:21,440 --> 00:24:22,410 شيء من المستخدم. 572 00:24:22,410 --> 00:24:23,370 لذلك اسمحوا لي أن تفعل هذا مرة أخرى. 573 00:24:23,370 --> 00:24:26,580 >> سلسلة ثانية، حيث s هو مجرد اسم عشوائية، هنا، عن 574 00:24:26,580 --> 00:24:30,600 سلسلة، يساوي GetString. 575 00:24:30,600 --> 00:24:32,070 لذلك كان ما GetString؟ 576 00:24:32,070 --> 00:24:34,630 من الواضح ان يحصل سلسلة، على أساس اسمها. 577 00:24:34,630 --> 00:24:37,560 ولكن ما هو أكثر من الناحية الفنية؟ 578 00:24:37,560 --> 00:24:38,440 انها وظيفة. 579 00:24:38,440 --> 00:24:41,790 لذلك فمن وظيفة لا تأتي مع C في حد ذاتها. 580 00:24:41,790 --> 00:24:43,660 كتب هذا CS50 الموظفين. 581 00:24:43,660 --> 00:24:46,940 وذلك لاستخدام هذا، لا يمكنك تضمين فقط stdio.h، 582 00:24:46,940 --> 00:24:49,630 تحتاج أيضا لتشمل ماذا؟ 583 00:24:49,630 --> 00:24:50,060 نعم. 584 00:24:50,060 --> 00:24:54,210 حتى cs50.h، الذي هو مجرد ملف كتبنا قبل بضع سنوات. 585 00:24:54,210 --> 00:24:57,130 قمنا بتركيب الجهاز على جنبا إلى جنب مع لك 586 00:24:57,130 --> 00:24:58,490 كافة الملفات القياسية. 587 00:24:58,490 --> 00:25:00,500 وذلك في الأسابيع القليلة الأولى من هذه الطبقة، سنستخدم 588 00:25:00,500 --> 00:25:02,820 هذا فقط لتبسيط عملية أساسية جدا للقيام 589 00:25:02,820 --> 00:25:04,600 الحصول على أشياء مثل إدخال المستخدم. 590 00:25:04,600 --> 00:25:07,370 لأنه كما سنرى في غضون بضعة أسابيع، إدخال المستخدم في الحصول على 591 00:25:07,370 --> 00:25:10,180 اللغة مثل C هو في الواقع معقدة من المستغرب، 592 00:25:10,180 --> 00:25:14,360 لا سيما وأنت لا تعرف مسبقا، وعادة، وكيف 593 00:25:14,360 --> 00:25:17,030 الكثير من الاشياء المستخدم هو الذهاب الى اكتب فيها 594 00:25:17,030 --> 00:25:20,340 وعندما كنت لا تعرف مقدار البيانات يمكن توقعه، كنت لا 595 00:25:20,340 --> 00:25:22,380 تعرف مقدار الذاكرة لتخصيص. 596 00:25:22,380 --> 00:25:25,480 وإذا كان لديك بالفعل مستخدم الخصومة الذي يحاول 597 00:25:25,480 --> 00:25:28,180 الإختراق في النظام الخاص بك، وتحطم جهاز الكمبيوتر الخاص بك، وأيضا، 598 00:25:28,180 --> 00:25:31,600 عموما الأسلوب الأول من الهجوم هو، تماما كما فعلت في 599 00:25:31,600 --> 00:25:34,950 الاثنين، اكتب تسلسل كامل طويلة من أحرف عشوائية، 600 00:25:34,950 --> 00:25:37,020 هاهنا، ونرى ما يكسر. 601 00:25:37,020 --> 00:25:40,800 لأن عموما، إذا كان برنامج فواصل، يلوح في 602 00:25:40,800 --> 00:25:42,650 عيب الأمن، يحتمل. 603 00:25:42,650 --> 00:25:45,250 انها بالتأكيد يلمح إليك، مبرمج، بعد أن قدم 604 00:25:45,250 --> 00:25:49,050 خطأ، ولكن الاخطر، قد كنت قد قدمت 605 00:25:49,050 --> 00:25:52,430 المتصلة بالأمن الخطأ، وعموما سنرى أن 606 00:25:52,430 --> 00:25:54,840 هذه هي الطريقة التي يتم المساس آلات حتى يومنا هذا، على حد سواء 607 00:25:54,840 --> 00:25:56,620 في العالم على شبكة الإنترنت والبرامج على 608 00:25:56,620 --> 00:25:58,070 سطر الأوامر، مثل هذا. 609 00:25:58,070 --> 00:25:58,350 >> حسنا. 610 00:25:58,350 --> 00:26:00,460 حتى سلسلة ليالي يساوي GetString. 611 00:26:00,460 --> 00:26:03,380 أكثر من ذلك الآن تحديدا، ماذا تفعل هنا السطر 6؟ 612 00:26:03,380 --> 00:26:05,640 وبالتالي فإن الدالة على الحق يحصل السلسلة، 613 00:26:05,640 --> 00:26:06,890 كم يأخذ الحجج؟ 614 00:26:09,458 --> 00:26:09,900 حسنا. 615 00:26:09,900 --> 00:26:10,400 لذلك لا شيء. 616 00:26:10,400 --> 00:26:11,360 A التعقل قليلا الوصول. 617 00:26:11,360 --> 00:26:15,380 حجة، مرة أخرى، هو مجرد وظيفة لإدخال تغيير 618 00:26:15,380 --> 00:26:17,250 السلوك الافتراضي لها بطريقة أو بأخرى. 619 00:26:17,250 --> 00:26:19,540 ولكن في هذه الحالة، لا أريد لتغيير 620 00:26:19,540 --> 00:26:20,650 سلوك GetString. 621 00:26:20,650 --> 00:26:22,430 أردت فقط أن تحصل على السلسلة. 622 00:26:22,430 --> 00:26:25,190 ولذلك وضعت شيئا في الأقواس، ثم أضع 623 00:26:25,190 --> 00:26:27,550 منقوطة ترسيم نهاية السطر من التعليمات البرمجية. 624 00:26:27,550 --> 00:26:29,840 الآن، علامة التساوي لا يعني المساواة، في حد ذاتها. 625 00:26:29,840 --> 00:26:32,690 وهو ما يعني تخصيص، مما يعني وضع كل ما يحصل 626 00:26:32,690 --> 00:26:36,060 أنتج في الداخل حق كل ما هو على اليمين. 627 00:26:36,060 --> 00:26:39,400 >> لذلك على اليسار، ونحن نقول بأننا قد أعلنت 628 00:26:39,400 --> 00:26:41,630 ودعا سلسلة ق. 629 00:26:41,630 --> 00:26:44,240 وبشكل أكثر تحديدا، لقد خصصنا داخل الذاكرة 630 00:26:44,240 --> 00:26:46,340 الذي سوف نضع البتات الذي يمثل سلسلة من 631 00:26:46,340 --> 00:26:46,850 حرفا. 632 00:26:46,850 --> 00:26:49,400 ولكن لهذا اليوم، وقد خصصنا 633 00:26:49,400 --> 00:26:51,450 أو أعلنت سلسلة. 634 00:26:51,450 --> 00:26:51,790 حسنا. 635 00:26:51,790 --> 00:26:54,760 حتى الآن مرة واحدة لقد فعلت هذا، أريد أن سد العجز في قيمة 636 00:26:54,760 --> 00:26:56,535 ق، لا قيمة ديفيد. 637 00:26:56,535 --> 00:27:00,200 لذلك هذا هو الخطأ لماذا؟ 638 00:27:03,060 --> 00:27:04,870 لذلك هذا هو حرفيا فقط ليالي الثابت تلوينها. 639 00:27:04,870 --> 00:27:06,870 انها ليقول "مرحبا، s،" والذي هو ليس ما أريد. 640 00:27:06,870 --> 00:27:07,790 حتى أتمكن من القيام بذلك. 641 00:27:07,790 --> 00:27:10,330 النسبة المئوية هو عنصر نائب، ولكن الآن أنا بحاجة إلى 642 00:27:10,330 --> 00:27:12,520 تنتقل إلى طباعة الحجة الثانية. 643 00:27:12,520 --> 00:27:15,160 نذكر بأن يتم فصل الحجج إلى وظائف عن طريق 644 00:27:15,160 --> 00:27:20,300 الفواصل، وبالتالي فإن الفاصلة القادمة هنا أضع هذه الصورة بعد هذه الرسالة. 645 00:27:20,300 --> 00:27:23,740 والآن في هذا السياق، ق هو المتغير، وprintf، 646 00:27:23,740 --> 00:27:25,550 لدى استقباله تلك المدخلات اثنين - 647 00:27:25,550 --> 00:27:29,440 السلسلة على اليسار واسم متغير على الحق - 648 00:27:29,440 --> 00:27:32,750 فإنه سيتم سد هذا الأخير في السابق بالنسبة لنا، و 649 00:27:32,750 --> 00:27:34,600 طباعة للتو سلسلة لطيفة جميلة تحتوي على 650 00:27:34,600 --> 00:27:36,770 كل ما هو نحن فيه كتابة 651 00:27:36,770 --> 00:27:37,560 >> لذلك دعونا نحاول ذلك. 652 00:27:37,560 --> 00:27:38,860 الذهاب الى المضي قدما والتصغير، والعودة 653 00:27:38,860 --> 00:27:40,250 نافذة طرفية لبلدي. 654 00:27:40,250 --> 00:27:41,840 تكبير في أسفل هنا. 655 00:27:41,840 --> 00:27:44,070 أعد كتابة جعل مرحبا. 656 00:27:44,070 --> 00:27:45,870 رنة يبدو أنه قد تم إعادة تشغيل. 657 00:27:45,870 --> 00:27:49,280 أنا ذاهب إلى كتابة. / مرحبا أدخل. 658 00:27:49,280 --> 00:27:52,145 لا شيء يبدو أنه يحدث حتى الآن، لكنه في هذه المطالبة 659 00:27:52,145 --> 00:27:55,700 أستطيع أن اكتب شيئا مثل نيت، أدخل، والآن لدينا نحن 660 00:27:55,700 --> 00:27:56,380 مرحبا، نيت. 661 00:27:56,380 --> 00:27:59,600 وأستطيع أن أفعل ذلك مرة أخرى مع روب، وهكذا دواليك. 662 00:27:59,600 --> 00:28:03,410 لذلك نأمل الآن هذا البرنامج يتصرف وأعتزم. 663 00:28:03,410 --> 00:28:05,720 >> الآن، وليس كل ما سهلة الاستعمال. 664 00:28:05,720 --> 00:28:07,930 ليس لدي فكرة عما يجري متوقع مني. 665 00:28:07,930 --> 00:28:09,620 حتى نتمكن من تنظيف بالتأكيد هذا الأمر قليلا. 666 00:28:09,620 --> 00:28:13,270 اسمحوا لي أن أعود هنا أعلى، وبدلا من الغوص فقط، و 667 00:28:13,270 --> 00:28:16,480 يطلب المستخدم عن سلسلة، واسمحوا لي أن أقول صراحة 668 00:28:16,480 --> 00:28:17,750 مستخدم ما أتوقع. 669 00:28:17,750 --> 00:28:21,610 printf ذلك ("أدخل سلسلة:" 670 00:28:21,610 --> 00:28:24,080 )؛ 671 00:28:24,080 --> 00:28:25,510 لذلك لا المتغيرات هنا. 672 00:28:25,510 --> 00:28:26,750 أي علامات في المئة. 673 00:28:26,750 --> 00:28:28,550 مجرد عبارة بسيطة الإنجليزية. 674 00:28:28,550 --> 00:28:34,030 اسمحوا لي أن أذهب الآن إلى أسفل هنا ثم أعد تشغيل برنامجي. 675 00:28:34,030 --> 00:28:35,380 ولكن لا يبدو أن شيئا تغير. 676 00:28:35,380 --> 00:28:37,350 لماذا؟ 677 00:28:37,350 --> 00:28:38,380 لا بد لي من إعادة ترجمة عليه. 678 00:28:38,380 --> 00:28:39,570 ذلك خطأ من السهل القيام بها. 679 00:28:39,570 --> 00:28:41,700 ولكن عليك أن لا حفظ الملف ولكن 680 00:28:41,700 --> 00:28:43,260 إعادة ترجمة البرنامج. 681 00:28:43,260 --> 00:28:46,640 وحتى لو كنت إعادة تشغيل جعل مرحبا، الآن ضجيج تشغيله. 682 00:28:46,640 --> 00:28:51,800 الآن يمكنني تشغيل / مرحبا. والآن أرى "أدخل سلسلة:". 683 00:28:51,800 --> 00:28:52,050 حسنا. 684 00:28:52,050 --> 00:28:53,440 الآن حان قليلا أكثر سهولة. 685 00:28:53,440 --> 00:28:55,850 نيت، أدخل، مرحبا، نيت. 686 00:28:55,850 --> 00:28:57,310 >> حسنا، دعونا نحاول مرة أخرى هذا ونبدأ في التفكير 687 00:28:57,310 --> 00:28:58,080 حول قضايا الركن. 688 00:28:58,080 --> 00:29:00,520 تماما مثل ذلك في سكراتش، كنت أنت أو يجري تشجيع يتم 689 00:29:00,520 --> 00:29:03,180 شجع في المواصفات لنوع من التفكير في ما يمكن أن تذهب 690 00:29:03,180 --> 00:29:06,610 خطأ إذا كنت لا نتوقع كل شيء للمستخدم قد تفعل. 691 00:29:06,610 --> 00:29:08,050 البق، ولذلك، قد تترتب على ذلك. 692 00:29:08,050 --> 00:29:09,710 أدخل ذلك سلسلة - 693 00:29:09,710 --> 00:29:11,130 ما هو قضية الزاوية هنا؟ 694 00:29:11,130 --> 00:29:13,320 ما هو السيناريو الذي أنا، مبرمج، قد لا يكون 695 00:29:13,320 --> 00:29:16,070 المتوقع؟ 696 00:29:16,070 --> 00:29:17,600 نعم. 697 00:29:17,600 --> 00:29:17,920 حسنا. 698 00:29:17,920 --> 00:29:22,060 حتى ما إذا كنت اكتب في عدد مثل هذه؟ 699 00:29:22,060 --> 00:29:22,500 حسنا. 700 00:29:22,500 --> 00:29:24,490 لذلك لا يزال يعمل. 701 00:29:24,490 --> 00:29:25,880 Gramatically يجعل لا معنى له. 702 00:29:25,880 --> 00:29:27,180 ولكن على الأقل يعمل البرنامج. 703 00:29:27,180 --> 00:29:28,650 >> ما هو قضية أخرى الزاوية؟ 704 00:29:28,650 --> 00:29:29,610 شيء لم أكن أتوقع. 705 00:29:29,610 --> 00:29:31,590 نعم؟ 706 00:29:31,590 --> 00:29:31,940 حسنا. 707 00:29:31,940 --> 00:29:34,950 لذا فإننا يمكن أن تفعل شيئا مثل عدد حقا، حقا كبيرة. 708 00:29:34,950 --> 00:29:37,270 لذلك دعونا نفعل ذلك هنا. 709 00:29:37,270 --> 00:29:40,880 اسمحوا لي تصغير للمرة الثانية، اسمحوا لي أن أسلط الضوء عليها. 710 00:29:40,880 --> 00:29:42,250 لا يمكن نسخ ولصق الى هنا. 711 00:29:42,250 --> 00:29:42,470 حسنا. 712 00:29:42,470 --> 00:29:44,440 لذلك أنا لا يمكن نسخ ولصق في هذا الإطار محطة، لذلك سنقوم 713 00:29:44,440 --> 00:29:46,950 فقط محاكاته. 714 00:29:46,950 --> 00:29:51,340 اسمحوا لي التصغير، والذهاب إلى التفاف. 715 00:29:51,340 --> 00:29:52,700 أنا لن تفعل هذا لفترة طويلة جدا، لأنه لن 716 00:29:52,700 --> 00:29:54,440 كسر فعلا في هذا البرنامج. 717 00:29:54,440 --> 00:29:55,260 ولكن يمكن ذلك. 718 00:29:55,260 --> 00:29:55,830 دخول. 719 00:29:55,830 --> 00:29:56,580 لكنها لم تنته. 720 00:29:56,580 --> 00:29:57,050 حسنا. 721 00:29:57,050 --> 00:29:58,440 ولكن من زاوية قضية حقيقية. 722 00:29:58,440 --> 00:30:01,610 والسبب الوحيد الذي تصرف بشكل صحيح، وذلك ل 723 00:30:01,610 --> 00:30:05,820 الكلام، لأن وظيفة GetString CS50 هو في الواقع 724 00:30:05,820 --> 00:30:08,040 صممت تحت غطاء محرك السيارة، كما سنرى في غضون بضعة أسابيع، 725 00:30:08,040 --> 00:30:11,570 تخصيص تلقائيا RAM أكثر وأكثر، وأكثر وأكثر 726 00:30:11,570 --> 00:30:14,330 الذاكرة من نظام التشغيل، عندما يدرك، نجاح باهر، 727 00:30:14,330 --> 00:30:16,670 كتبته حقا في شيء طويلة جدا. 728 00:30:16,670 --> 00:30:18,500 الآن، وهذا هو جزء من كذبة بيضاء. 729 00:30:18,500 --> 00:30:22,020 إذا كنا فعلا توقفت لبعض الوقت وأنا كتبته في 730 00:30:22,020 --> 00:30:24,640 شيء مثل 5 بليون حرف على لوحة المفاتيح 731 00:30:24,640 --> 00:30:28,060 هنا، أو ضرب حقا النسخ واللصق لا بأس به، ونحن من المحتمل جدا 732 00:30:28,060 --> 00:30:29,730 يمكن أن تسبب البرنامج لتحطم الطائرة. 733 00:30:29,730 --> 00:30:32,130 قليلا من الصعب محاكاة ذلك مع محدود 734 00:30:32,130 --> 00:30:33,740 فترة من الوقت. 735 00:30:33,740 --> 00:30:37,320 >> ما هو قضية أخرى الزاوية يمكننا أن نحاول؟ 736 00:30:37,320 --> 00:30:38,730 نعم؟ 737 00:30:38,730 --> 00:30:39,020 نعم. 738 00:30:39,020 --> 00:30:40,360 فلماذا لا نجيب شيئا؟ 739 00:30:40,360 --> 00:30:43,130 لذلك لدينا في الواقع إلى اتخاذ بعض الإجراءات، لأن خلاف ذلك 740 00:30:43,130 --> 00:30:45,060 البرنامج سوف الجلوس هناك وامض طوال اليوم. 741 00:30:45,060 --> 00:30:46,860 ولكن إذا كنت مجرد ضرب أدخل - 742 00:30:46,860 --> 00:30:48,780 حسنا، الآن، ما زالت تبدو خاطئة. 743 00:30:48,780 --> 00:30:51,670 لم يتلف، ولكن ربما هناك الآن فرصة ل 744 00:30:51,670 --> 00:30:54,190 البدء في تنفيذ برنامج أكثر صرامة 745 00:30:54,190 --> 00:30:55,290 يتحقق في الواقع. 746 00:30:55,290 --> 00:30:57,640 وإذا كانت السلسلة، الجملة، الكلمة التي أنا 747 00:30:57,640 --> 00:31:00,890 وكتبته في طول 0، حسنا، ربما يجب أن يصيح في 748 00:31:00,890 --> 00:31:03,770 المستخدم، أو أقول له أو لها للدخول في سلسلة مرة أخرى، بحيث 749 00:31:03,770 --> 00:31:06,560 ونحن في الواقع الحصول على ما يشبه السلوك الصحيح وليس 750 00:31:06,560 --> 00:31:08,570 الرقابة فقط كاملة من جانبي. 751 00:31:08,570 --> 00:31:11,130 >> السؤال في الظهر؟ 752 00:31:11,130 --> 00:31:11,970 عدد عشري. 753 00:31:11,970 --> 00:31:13,120 حتى نتمكن من محاولة ذلك أيضا. 754 00:31:13,120 --> 00:31:16,840 1،10000005. 755 00:31:16,840 --> 00:31:19,470 يبدو أن يحدث فقط للعمل حسنا فعلا. 756 00:31:19,470 --> 00:31:21,160 والواقع أن من المتوقع. 757 00:31:21,160 --> 00:31:24,550 على الرغم من أننا قد كتبته هذا العدد هناك، أو 758 00:31:24,550 --> 00:31:28,200 أكبر عدد في وقت سابق، عندما ندرك أن نقوم بكتابة المستخدم 759 00:31:28,200 --> 00:31:31,070 المدخلات ونستخدمه وظيفة GetString، لا 760 00:31:31,070 --> 00:31:34,380 يهم إذا ما أنا بكتابة يشبه الرقم. 761 00:31:34,380 --> 00:31:36,720 يذكر أنه وفقا لASCII، كل شيء على الخاص 762 00:31:36,720 --> 00:31:39,920 لوحة المفاتيح يحتوي على قيمة العددية التي يمكن تعيينها إلى 763 00:31:39,920 --> 00:31:41,480 حرف وحرف. 764 00:31:41,480 --> 00:31:44,490 حتى في هذه الحالة، على الرغم من أنني قد اكتب رقما، على 765 00:31:44,490 --> 00:31:48,190 الكمبيوتر هو الذهاب الى التفكير في الأمر، إذا جاز التعبير، كسلسلة - 766 00:31:48,190 --> 00:31:49,870 شيء يشبه عددا، ولكن 767 00:31:49,870 --> 00:31:51,090 ليس في الواقع عدد. 768 00:31:51,090 --> 00:31:53,450 ولكن هذا في الواقع يواصل. الكمال، لأنه الآن في وسعنا 769 00:31:53,450 --> 00:31:55,450 الانتقال فعلا لكتابة البرامج التي 770 00:31:55,450 --> 00:31:56,730 استخدام أنواع البيانات الأخرى. 771 00:31:56,730 --> 00:32:01,840 >> وإلى جانب ذلك باستخدام حرف، أو بالأحرى، إلى جانب استخدام السلاسل، 772 00:32:01,840 --> 00:32:04,510 ندرك أن لدينا غيرها من أنواع البيانات في C وكذلك في 773 00:32:04,510 --> 00:32:05,230 لغات أخرى. 774 00:32:05,230 --> 00:32:08,480 A حرف، وكما يوحي اسمها، هو مجرد حرف واحد. 775 00:32:08,480 --> 00:32:12,150 A تعويم قيمة النقطة العائمة، وهذا مجرد نزوة 776 00:32:12,150 --> 00:32:14,470 طريقة للقول عدد حقيقي - وهو الشيء الذي لديه العشرية 777 00:32:14,470 --> 00:32:17,410 نقطة فيه مع بعض الأرقام إلى اليسار و / أو اليمين. 778 00:32:17,410 --> 00:32:21,370 والباحث هو عدد صحيح، وهو مجرد رقم مثل 123. 779 00:32:21,370 --> 00:32:24,170 ومن المثير للاهتمام، والآن أكثر من الأشياء مثل مزدوج. 780 00:32:24,170 --> 00:32:28,540 ماذا نقول مزدوج كان آخر مرة؟ 781 00:32:28,540 --> 00:32:30,050 انها 64، الحق. 782 00:32:30,050 --> 00:32:33,560 ذلك في حين عادة ما تطفو هو 32 بت - 783 00:32:33,560 --> 00:32:37,340 لذلك فمن هذا الوقت الطويل في الذاكرة، فإنه يستخدم 32 الآحاد والأصفار ولل 784 00:32:37,340 --> 00:32:40,530 تمثل القيم - مزدوج هو حرفيا أن مرتين، والذي 785 00:32:40,530 --> 00:32:43,810 يعني أنك يمكن أن تمثل إما أعداد أكبر، أو 786 00:32:43,810 --> 00:32:45,810 يمكنك تمثيل أرقام أكثر دقة. 787 00:32:45,810 --> 00:32:48,690 حتى تتمكن من الحصول على مزيد من الأرقام بعد الفاصلة العشرية، ولكن 788 00:32:48,690 --> 00:32:51,520 كما قال زميل في شريط الفيديو، وحتى شيء بسيط 789 00:32:51,520 --> 00:32:55,360 المفهوم يمكن مثل 1/3 لا تكون ممثلة على وجه التحديد من قبل 790 00:32:55,360 --> 00:32:58,330 الكمبيوتر، وذلك لأن في نهاية المطاف نفاد بت، و 791 00:32:58,330 --> 00:33:02,510 لذا يمكنك القيام بذلك إلا .33333333 مرات عديدة، في 792 00:33:02,510 --> 00:33:05,050 هذه النقطة لديك فقط أن أقول أنا من التمثيل 793 00:33:05,050 --> 00:33:08,120 الفضاء، لا بد لي من أن مجرد دعوة في اليوم وتمثيله 794 00:33:08,120 --> 00:33:10,200 غير دقيق الى حد ما مثل ذلك. 795 00:33:10,200 --> 00:33:11,110 ومنذ فترة طويلة طويلة - 796 00:33:11,110 --> 00:33:13,880 اسم غبي، ولكن هذا لأنه لا يوجد نوع بيانات يعرف باسم 797 00:33:13,880 --> 00:33:19,350 C طويلة في كثير من الأحيان من قبيل الصدفة التي هي 32 بت، تماما مثل 798 00:33:19,350 --> 00:33:21,670 الباحث هو 32 بت، ولكن هو عملية طويلة طويلة 799 00:33:21,670 --> 00:33:23,560 عموما 64 بت. 800 00:33:23,560 --> 00:33:25,740 لذلك يعني فقط كنت يمكن أن تمثل أكبر 801 00:33:25,740 --> 00:33:26,990 أرقام من هذا. 802 00:33:26,990 --> 00:33:27,410 >> حسنا. 803 00:33:27,410 --> 00:33:29,390 إذا كان الأمر كذلك نريد فعلا لبدء تمثل الأشياء، ونحن 804 00:33:29,390 --> 00:33:31,030 قد تحتاج إلى أكثر أنواع متطورة، و 805 00:33:31,030 --> 00:33:32,340 هذا هو السبب لدينا سلسلة. 806 00:33:32,340 --> 00:33:36,450 حتى في مكتبة CS50، أن ملف يسمى cs50.h، لدينا 807 00:33:36,450 --> 00:33:41,110 أعلن في الواقع نوع البيانات، إذا جاز التعبير، ودعا سلسلة، 808 00:33:41,110 --> 00:33:42,710 ولكن سلسلة غير موجود في الواقع. 809 00:33:42,710 --> 00:33:44,780 هذا هو، مرة أخرى، واحدة من هذه الطبقات ونحن في طريقنا إلى قشر 810 00:33:44,780 --> 00:33:47,490 مرة أخرى في غضون أسبوع أو أسبوعين ورميها بعيدا، وفعلا 811 00:33:47,490 --> 00:33:49,640 ننظر تحت غطاء محرك السيارة على ما هو في الواقع سلسلة، و 812 00:33:49,640 --> 00:33:50,840 كيف تعبر عن ذلك. 813 00:33:50,840 --> 00:33:53,520 ونحن في طريقنا أيضا أن ننظر إلى قيم منطقية. 814 00:33:53,520 --> 00:33:56,040 >> فما كان BOOL في سياق خدش؟ 815 00:33:59,154 --> 00:34:00,300 هذا صحيح أو خطأ. 816 00:34:00,300 --> 00:34:03,900 حتى انها مجرد قيمة هذا صحيح أو خطأ، أو إيقاف تشغيله، 1 أو 817 00:34:03,900 --> 00:34:06,140 0، ولكن هل تريد عرض العالم. 818 00:34:06,140 --> 00:34:09,739 حتى في C، وذلك بفضل مكتبة CS50، والتي بدورها 819 00:34:09,739 --> 00:34:12,179 يتضمن مكتبة أخرى تحت غطاء محرك السيارة، لدينا 820 00:34:12,179 --> 00:34:14,909 وصول إلى نوع البيانات التي يطلق BOOL، والتي سوف 821 00:34:14,909 --> 00:34:18,730 تسمح لنا حرفيا لتعيين قيم صحيحة أو خاطئة ل 822 00:34:18,730 --> 00:34:20,219 أشياء في البرنامج. 823 00:34:20,219 --> 00:34:23,880 >> لذلك دعونا المضي قدما هنا وكتابة برنامج القليل الذي 824 00:34:23,880 --> 00:34:26,330 لا شيء التي تشمل عددا بدلا من ذلك. 825 00:34:26,330 --> 00:34:29,840 لذلك اسمحوا لي أن أعود إلى جهاز CS50، اسمحوا لي أن المضي قدما في 826 00:34:29,840 --> 00:34:32,770 إنشاء ملف جديد يسمى هنا - 827 00:34:32,770 --> 00:34:35,460 دعنا نقول فقط شيء بسيط، مثل math.c. 828 00:34:38,270 --> 00:34:38,710 حسنا. 829 00:34:38,710 --> 00:34:41,600 والآن ترتفع إلى أعلى برنامجي، وأنا 830 00:34:41,600 --> 00:34:42,510 تنوي القيام به في المعتاد - 831 00:34:42,510 --> 00:34:44,780 # تشمل ، حتى أستطيع أن استخدام 832 00:34:44,780 --> 00:34:46,860 printf، وكثافة العمليات الرئيسية (الفراغ) - 833 00:34:46,860 --> 00:34:49,270 سوف نعود إلى، في نهاية المطاف، ما يعني كثافة العمليات 834 00:34:49,270 --> 00:34:52,389 هنا، ما يعني الفراغ هنا، ولكن في الوقت الراهن، ونعرف ذلك تماما 835 00:34:52,389 --> 00:34:54,270 عليك أن تبدأ مثل هذه البرامج. 836 00:34:54,270 --> 00:34:56,280 الآن انا ذاهب الى المضي قدما وأقول شيئا قليلا 837 00:34:56,280 --> 00:35:02,110 مختلفة - printf ("أعطني رقم:" 838 00:35:02,110 --> 00:35:03,570 )؛ 839 00:35:03,570 --> 00:35:09,220 ثم انا ذاهب الى القيام الباحث ن = GetInt، لأنه 840 00:35:09,220 --> 00:35:12,770 يتحول إلى وظيفة أخرى هي GetInt في مكتبة CS50 841 00:35:12,770 --> 00:35:14,060 إلى جانب GetString. 842 00:35:14,060 --> 00:35:17,340 والآن انا ذاهب الى القيام بشيء غبي، مثل "شكرا 843 00:35:17,340 --> 00:35:25,760 لد٪ "، لعدد صحيح عشري، ومن ثم لا يوجد فاصلة، و 844 00:35:25,760 --> 00:35:26,620 ثم العودة 0. 845 00:35:26,620 --> 00:35:28,940 ذلك مرة أخرى، بإرجاع 0 لا علاقة له مع عدد أنا 846 00:35:28,940 --> 00:35:30,080 يطلب المستخدم ل. 847 00:35:30,080 --> 00:35:33,620 يعني فقط في نهاية أن جميع، ويفترض، على ما يرام. 848 00:35:33,620 --> 00:35:36,290 >> لذلك اسمحوا لي ان اذهب الى بلدي نافذة طرفية هنا. 849 00:35:36,290 --> 00:35:39,590 اسمحوا لي أن اكتب جعل الرياضيات، أدخل. 850 00:35:39,590 --> 00:35:41,360 وشيء من الخطأ. 851 00:35:41,360 --> 00:35:44,620 جعل الرياضيات لم تنجح. 852 00:35:44,620 --> 00:35:46,170 وهنا أول من رسائل الخطأ لدينا. 853 00:35:46,170 --> 00:35:46,570 لماذا؟ 854 00:35:46,570 --> 00:35:49,720 A خفي قليلا، ولكن - 855 00:35:49,720 --> 00:35:50,060 نعم. 856 00:35:50,060 --> 00:35:51,240 حتى cs50.h. 857 00:35:51,240 --> 00:35:53,900 ذلك مرة أخرى، في وقت مبكر وخاصة في، سوف تكتب اسمك الأول 858 00:35:53,900 --> 00:35:56,590 برنامج لpset 1 في أقسام، في ساعات العمل، و 859 00:35:56,590 --> 00:35:59,050 بصراحة، وأنها سوف تكون ساحقة في بعض الأحيان ما هذه الأشياء 860 00:35:59,050 --> 00:36:00,000 يقولون في الواقع. 861 00:36:00,000 --> 00:36:01,890 ولكن عليك إدراك بسرعة كبيرة أن تبدأ في الانخفاض 862 00:36:01,890 --> 00:36:06,120 إلى مجموعات حيث هذا واحد يعني أن كنت قد تركت مرة واحدة 863 00:36:06,120 --> 00:36:08,290 من يشمل # في الجزء العلوي من الملف. 864 00:36:08,290 --> 00:36:10,960 وضجيج، ومترجم، وتخبرك من ذلك 865 00:36:10,960 --> 00:36:14,090 وقال: هميا بدلا من ذلك، الإعلان الضمني 866 00:36:14,090 --> 00:36:15,990 GetInt ظيفة غير صالح. 867 00:36:15,990 --> 00:36:16,310 >> حسنا. 868 00:36:16,310 --> 00:36:17,520 فماذا يعني ذلك؟ 869 00:36:17,520 --> 00:36:22,080 بل يعني فقط كنت قد أعلنت ضمنا في GetInt 870 00:36:22,080 --> 00:36:24,850 بمعنى أنك لم تعلن بشكل صريح. 871 00:36:24,850 --> 00:36:27,300 أن تعلن صراحة الباحث، لديك لتعليم 872 00:36:27,300 --> 00:36:28,740 رنة أنه موجود. 873 00:36:28,740 --> 00:36:32,020 والحل بسيط جدا لذلك هو تعليم من قبل 874 00:36:32,020 --> 00:36:34,780 بما في ذلك هذا ملف آخر، cs50.h، في 875 00:36:34,780 --> 00:36:35,850 الجزء العلوي من الملف. 876 00:36:35,850 --> 00:36:40,380 لأن حرفيا، ما لا تشمل # هو يحكي ضجيج 877 00:36:40,380 --> 00:36:44,030 الى حد كبير للذهاب العثور على ملف يسمى cs50.h، نسخة، 878 00:36:44,030 --> 00:36:48,150 لصق تلقائيا الى اعلى من برنامجي بالنسبة لي، 879 00:36:48,150 --> 00:36:50,850 ومن ثم تحويل التعليمات البرمجية المصدر إلى الآحاد والأصفار و. 880 00:36:50,850 --> 00:36:52,850 ولكن ذلك سيكون من الواضح شاقة للغاية إذا كان نحن البشر 881 00:36:52,850 --> 00:36:55,370 للذهاب نسخ ولصق هذه الملفات كبيرة في كل وقت، 882 00:36:55,370 --> 00:36:58,540 حتى لا تشمل فقط # كل ما تلقائيا دون 883 00:36:58,540 --> 00:37:01,550 نشوش قانون بلدي مع مكتبة شخص آخر. 884 00:37:01,550 --> 00:37:06,370 والمكتبة هي مجرد ملف يحتوي على وظائف و 885 00:37:06,370 --> 00:37:08,340 أشياء أخرى أن شخصا آخر قد كتب، وأننا 886 00:37:08,340 --> 00:37:10,270 الاستفادة من أجلنا الخاصة. 887 00:37:10,270 --> 00:37:10,580 >> حسنا. 888 00:37:10,580 --> 00:37:11,200 دعونا نحاول مرة أخرى. 889 00:37:11,200 --> 00:37:12,250 جعل الرياضيات. 890 00:37:12,250 --> 00:37:13,120 دخول. 891 00:37:13,120 --> 00:37:13,530 جيدة. 892 00:37:13,530 --> 00:37:14,880 بحيث يبدو أن يعمل. 893 00:37:14,880 --> 00:37:18,330 لذلك اسمحوا لي الآن تشغيل الرياضيات؛ / الرياضيات. 894 00:37:18,330 --> 00:37:21,100 أدخل يعطيني رقم، 123. 895 00:37:21,100 --> 00:37:22,620 شكرا لل123. 896 00:37:22,620 --> 00:37:24,490 الآن دعونا نحاول قضية أخرى الزاوية. 897 00:37:24,490 --> 00:37:26,530 A السلسلة سخية جدا، لأن 898 00:37:26,530 --> 00:37:27,620 يمكن أن يكون أي شيء سلسلة. 899 00:37:27,620 --> 00:37:28,910 يمكن أن ننظر مثل الأرقام، تبدو وكأنها 900 00:37:28,910 --> 00:37:30,600 حرفا، تبدو الكلمات. 901 00:37:30,600 --> 00:37:31,900 لكن الباحث هو الباحث. 902 00:37:31,900 --> 00:37:34,370 حتى الآن إذا أنا المستخدم صعبة، وانها قائلا "أعطني 903 00:37:34,370 --> 00:37:38,730 رقم، "ماذا لو كنت تحاول أن تفعل شيء من هذا القبيل 0،1؟ 904 00:37:38,730 --> 00:37:41,510 حسنا، هذا هو العدد، وانها تتفق مع 905 00:37:41,510 --> 00:37:44,180 النحو كنت هنا، ولكن تحت غطاء محرك السيارة، وأنا من 906 00:37:44,180 --> 00:37:45,610 بالطبع باستخدام GetInt ظيفة. 907 00:37:45,610 --> 00:37:46,610 >> لذلك دعونا نرى ما سيحدث. 908 00:37:46,610 --> 00:37:48,250 أدخل، إعادة المحاولة. 909 00:37:48,250 --> 00:37:48,560 حسنا. 910 00:37:48,560 --> 00:37:50,570 اسمحوا لي أن أكون صعبة ومجرد ضرب أدخل مرة أخرى. 911 00:37:50,570 --> 00:37:51,700 أدخل، أدخل. 912 00:37:51,700 --> 00:37:53,890 حتى الآن يبدو أن GetInt هو أكثر من ذلك بقليل 913 00:37:53,890 --> 00:37:55,240 قوة من GetString. 914 00:37:55,240 --> 00:37:58,540 ونحن، الموظفين، نفذت في مثل هذه الطريقة التي اذا لاحظنا 915 00:37:58,540 --> 00:38:02,100 أنت لم تعط لنا الباحث - وكثافة العمليات هو رقم عشري 916 00:38:02,100 --> 00:38:04,785 تحتوي الأصفار، منها، ثنائي، الثلاثات، أربع، الأطفال دون سن الخامسة، الستات، 917 00:38:04,785 --> 00:38:05,540 السبعات، ثمانى، في التاسعة أو. 918 00:38:05,540 --> 00:38:06,310 وهذا كل شيء. 919 00:38:06,310 --> 00:38:08,810 لا الفواصل العشرية، لا حرفا، لا علامات الترقيم. 920 00:38:08,810 --> 00:38:10,390 يبدو أن علينا أن نتعاون. 921 00:38:10,390 --> 00:38:13,680 لذلك اسمحوا لي أن أحاول أربعة، خمسة، ستة، والذي يحصل لي من خلال. 922 00:38:13,680 --> 00:38:16,760 ذلك حقا، ليكون الشرج هنا، أود أن أقول ربما "أعطني 923 00:38:16,760 --> 00:38:20,310 عدد صحيح "من أجل أن تنقل إلى المستخدم 924 00:38:20,310 --> 00:38:22,620 بالضبط ما أنوي. 925 00:38:22,620 --> 00:38:24,090 >> الآن دعونا نفكر تحت غطاء محرك السيارة. 926 00:38:24,090 --> 00:38:27,930 نحن لن ننظر في كيفية تنفيذ cs50.h اليوم، 927 00:38:27,930 --> 00:38:29,080 هذه المكتبة. 928 00:38:29,080 --> 00:38:33,600 ولكن إذا كان يحتفظ قائلا إعادة المحاولة، إعادة المحاولة، إعادة المحاولة، ما البرمجة 929 00:38:33,600 --> 00:38:36,970 أنا باستخدام بناء يفترض تحت غطاء محرك السيارة ل 930 00:38:36,970 --> 00:38:39,000 تنفيذ ذلك؟ 931 00:38:39,000 --> 00:38:39,980 حتى مجرد حلقة، أليس كذلك؟ 932 00:38:39,980 --> 00:38:41,930 واحدة من أبسط الأفكار التي رأيناها على الصفر. 933 00:38:41,930 --> 00:38:45,050 وبناء للأبد، وكرر بناء. 934 00:38:45,050 --> 00:38:47,320 ويفترض في هذا البرنامج، تحت غطاء محرك السيارة، وحتى 935 00:38:47,320 --> 00:38:49,470 على الرغم من انه مكتوب في C وليس الصفر، فإنه يفعل 936 00:38:49,470 --> 00:38:54,300 ودعا شيء يعادل الأبد إذا كان لدى المستخدم لا 937 00:38:54,300 --> 00:38:58,710 كتبته في عدد صحيح، ويقول إعادة المحاولة، إعادة المحاولة، إعادة المحاولة، إعادة المحاولة، لذلك 938 00:38:58,710 --> 00:39:01,220 ثم أخيرا عندما نفعل الحصول على عدد صحيح، فإنك 939 00:39:01,220 --> 00:39:02,970 الخروج من تلك الحلقة. 940 00:39:02,970 --> 00:39:05,610 >> لذلك يمكن ظائف أخرى ما نستخدمها هنا في مكتبة CS50 على ذلك؟ 941 00:39:05,610 --> 00:39:07,880 حسنا، نوع من تلك واضحة، على الأقل استنادا إلى 942 00:39:07,880 --> 00:39:09,570 أنواع البيانات التي نعرفها الآن موجودة. 943 00:39:09,570 --> 00:39:12,900 نفذنا GetString، GetInt، ولكن في جميع أنحاء 944 00:39:12,900 --> 00:39:15,680 الأسابيع الأولى للمصطلح، يمكنك أيضا استخدام وGetFloat 945 00:39:15,680 --> 00:39:18,870 GetDouble وGetLongLong من أجل الحصول على وجه التحديد 946 00:39:18,870 --> 00:39:20,030 أنواع البيانات التي تريدها. 947 00:39:20,030 --> 00:39:24,030 لأن التفاصيل المفتاح هنا هو أنه على عكس بعض اللغات، 948 00:39:24,030 --> 00:39:26,630 مثل بايثون وروبي، حيث لم يكن لديك بالضرورة إلى 949 00:39:26,630 --> 00:39:29,730 تعلن نوع بيانات متغير - 950 00:39:29,730 --> 00:39:32,390 لم يكن لديك لنقول للكمبيوتر أي نوع من الاشياء 951 00:39:32,390 --> 00:39:34,000 وأنت تسير لوضعها في متغير - 952 00:39:34,000 --> 00:39:36,640 في C، عليك أن تكون دقيقة حتى من أي وقت مضى. 953 00:39:36,640 --> 00:39:40,060 حتى إذا كنت ترغب في متغير يسمى N، قطعة من التخزين 954 00:39:40,060 --> 00:39:42,900 أنه في هذه الحالة يحدث أن تكون 32 بت من الاتفاقية، التي 955 00:39:42,900 --> 00:39:45,660 يجب أن نقول للكمبيوتر هذه البتات 956 00:39:45,660 --> 00:39:47,840 الذهاب لتخزين عدد - 957 00:39:47,840 --> 00:39:50,630 ليس حرف، وليس سلسلة، وليس عدد عشري. 958 00:39:50,630 --> 00:39:52,620 وهذا يعالج المشكلة بشكل فعال ونحن 959 00:39:52,620 --> 00:39:53,760 واجهت الأسبوع الماضي. 960 00:39:53,760 --> 00:39:57,050 إذا نحن باستخدام الأصفار والأرقام منها لتمثيل ليس فقط 961 00:39:57,050 --> 00:40:00,770 أرقام ولكن مع الإفطار وخدمات العملاء، وكيف في العالم هو 962 00:40:00,770 --> 00:40:03,460 الكمبيوتر سوف نعرف أن هذا النمط من البتات في الواقع 963 00:40:03,460 --> 00:40:07,650 يمثل عدد 65، بدلا من تمثيل 964 00:40:07,650 --> 00:40:09,860 الرسالة A، التي من قبيل الصدفة، وفقا ل 965 00:40:09,860 --> 00:40:13,440 ASCII، أذكر، كان يعادل 65؟ 966 00:40:13,440 --> 00:40:16,550 >> حتى هذه الأنواع من البيانات توفير البيئة المناسبة لجهاز الكمبيوتر، لذلك 967 00:40:16,550 --> 00:40:18,810 أنه يعرف ما إذا كان ينبغي أن تفسر هذه البتات على أنها 968 00:40:18,810 --> 00:40:23,660 الباحث أو كسلسلة. 969 00:40:23,660 --> 00:40:26,500 أي أسئلة، ثم على هذا؟ 970 00:40:26,500 --> 00:40:28,149 نعم؟ 971 00:40:34,780 --> 00:40:35,270 DAVID J. مالان: سؤال جيد. 972 00:40:35,270 --> 00:40:39,140 إذا أخذنا من stdio.h، ونحن حفظ الملف - 973 00:40:39,140 --> 00:40:44,360 اسمحوا لي أن انتقل لأسفل إلى إطار المحطة الطرفية وتشغيل جعل الرياضيات، والتكبير 974 00:40:44,360 --> 00:40:45,530 وأدخل في - 975 00:40:45,530 --> 00:40:47,700 الآن أحصل على خطأ مختلفة، لأنني ضمنيا 976 00:40:47,700 --> 00:40:49,650 معلنا من هو يعمل الآن؟ 977 00:40:49,650 --> 00:40:50,700 Printf. 978 00:40:50,700 --> 00:40:52,970 حتى الآن لقد خلق مشكلة جديدة، هي التي حل 979 00:40:52,970 --> 00:40:53,890 أساسا نفس. 980 00:40:53,890 --> 00:40:55,365 ولست بحاجة لوضع هذه العودة. 981 00:40:55,365 --> 00:40:56,615 AUDIENCE: [غير مسموع] 982 00:41:03,534 --> 00:41:04,030 DAVID J. مالان: أوه. 983 00:41:04,030 --> 00:41:04,850 حتى لو كنت تأخذ بها - 984 00:41:04,850 --> 00:41:05,360 حسنا، نعم. 985 00:41:05,360 --> 00:41:08,960 إذا كان الأمر كذلك يمكنني إزالة إدراج معيار I / O مكتبة لتصل 986 00:41:08,960 --> 00:41:12,020 هنا، وبعد ذلك كنت تقول لو كنت تخلص لل printf، والحصول على 987 00:41:12,020 --> 00:41:13,450 تخليص لل printf؟ 988 00:41:13,450 --> 00:41:13,810 نعم. 989 00:41:13,810 --> 00:41:18,450 يجب أن هذا العمل، لأنني لم يعد استخدام أي - يصيح. 990 00:41:18,450 --> 00:41:20,110 أنا لم يكذب فقط؟ 991 00:41:20,110 --> 00:41:21,650 أوه، حسنا. 992 00:41:21,650 --> 00:41:25,640 هذا لن يعمل بسبب خطأ جديد قدمنا ​​للتو. 993 00:41:25,640 --> 00:41:28,390 وهذا واحد هو أكثر من ذلك بقليل تحتاج إلى شرح. 994 00:41:28,390 --> 00:41:29,440 >> ما هي المشكلة؟ 995 00:41:29,440 --> 00:41:30,680 ن المتغير غير المستخدمة. 996 00:41:30,680 --> 00:41:34,040 لذلك هذا الخطأ هو نتيجة لدينا بعد تكوين 997 00:41:34,040 --> 00:41:36,640 الأجهزة لتكون متحذلق خاصة، ليصيح حقا في 998 00:41:36,640 --> 00:41:39,060 لكم على كل خطأ ممكن، حتى لو كان في نوع من 999 00:41:39,060 --> 00:41:41,950 خطأ غير فادح مثل هذا - هل هو حقا مثل هذا كبيرة 1000 00:41:41,950 --> 00:41:44,820 صفقة I تخصيص الباحث، وطرح عددا في ذلك، ومن ثم 1001 00:41:44,820 --> 00:41:46,030 لم يفعلوا شيئا حيال ذلك؟ 1002 00:41:46,030 --> 00:41:47,020 وظيفيا لذا، لا. 1003 00:41:47,020 --> 00:41:50,410 هذا لن كسر البرنامج. 1004 00:41:50,410 --> 00:41:51,490 انها مجرد نوع من الحق، يا غبي؟ 1005 00:41:51,490 --> 00:41:54,220 ليس هناك قيمة لأنها طلبت هذا العدد، تخزين 1006 00:41:54,220 --> 00:41:56,370 في متغير، إذا كنت لن تفعل أي شيء ل 1007 00:41:56,370 --> 00:41:58,000 مع ذلك، ما إذا كان طباعته أو حفظه. 1008 00:41:58,000 --> 00:42:00,270 حتى في هذه الحالة، ضجيج، الإقرار بقدر، و 1009 00:42:00,270 --> 00:42:02,010 قائلا انها غير متغير غير المستخدمة. 1010 00:42:02,010 --> 00:42:05,380 >> حتى نتمكن من إصلاح هذا إذا كنا نريد حقا. 1011 00:42:05,380 --> 00:42:07,250 ولكن مرة أخرى، هذه ليست برمجة جيدة الآن. 1012 00:42:07,250 --> 00:42:09,310 لذلك يمكن أن تفعل هذا فقط - 1013 00:42:09,310 --> 00:42:12,060 النزول هنا، اسمحوا لي أن مسح الشاشة، وجعل الرياضيات. 1014 00:42:12,060 --> 00:42:13,090 أن يعمل. 1015 00:42:13,090 --> 00:42:18,110 الآن يمكنني تشغيل برنامجي الرياضيات، ويأخذ المدخلات - 1016 00:42:18,110 --> 00:42:18,700 حسنا، كان سيئا. 1017 00:42:18,700 --> 00:42:23,450 يأخذ المدخلات، وهذا هو كل ما يفعله، في هذه الحالة. 1018 00:42:23,450 --> 00:42:25,220 >> في الواقع كان الأمر كذلك، دعونا نحاول حالة واحدة الزاوية الأخرى التي نحن 1019 00:42:25,220 --> 00:42:26,300 لم يفكروا في وقت سابق. 1020 00:42:26,300 --> 00:42:28,220 في هذه الحالة - وهنا، دعونا نعود إلى واحد وهذا هو 1021 00:42:28,220 --> 00:42:29,500 أكثر من ذلك بقليل سهل الاستعمال. 1022 00:42:29,500 --> 00:42:32,580 اسمحوا لي أن أعود هنا وجعل تشغيل الرياضيات مرة أخرى. 1023 00:42:32,580 --> 00:42:34,190 يصيح، ماذا فعلت بك؟ 1024 00:42:34,190 --> 00:42:35,400 حصلت لدحر أخرى. 1025 00:42:35,400 --> 00:42:36,390 حسنا. 1026 00:42:36,390 --> 00:42:38,490 الآن نعود في الحالة الأصلية، حيث كل 1027 00:42:38,490 --> 00:42:39,990 شيء على ما يرام نأمل. 1028 00:42:39,990 --> 00:42:43,360 والآن إذا قمت بتشغيل الرياضيات، 123 يبدو للعمل. 1029 00:42:43,360 --> 00:42:46,010 ولكن هذا ليس دليلا حقا فعالة، لنقول فقط 1030 00:42:46,010 --> 00:42:47,930 حسنا، أن يعمل. 1031 00:42:47,930 --> 00:42:49,120 789، الذي يعمل. 1032 00:42:49,120 --> 00:42:50,100 الوقت لتقديم. 1033 00:42:50,100 --> 00:42:51,870 لأن هناك حالات الزاوية الأخرى هنا. 1034 00:42:51,870 --> 00:42:55,040 لم سلسلة لا تعطي حقا لنا الكثير من المتاعب عن طريق كتابة في 1035 00:42:55,040 --> 00:42:56,510 كله الكثير من الشخصيات. 1036 00:42:56,510 --> 00:42:59,580 ولكن ماذا لو كنت اكتب في هذا؟ 1037 00:42:59,580 --> 00:43:04,850 ضرب الرقم 1 في مجموعها الكثير، الكثير هنا - 1038 00:43:04,850 --> 00:43:06,300 كل الحق، هو الحصول على مملة قليلا، لذلك أنا ذاهب إلى 1039 00:43:06,300 --> 00:43:10,040 نتوقف هنا، وانا ذاهب الى ضرب أدخل. 1040 00:43:10,040 --> 00:43:11,290 >> الجحيم ما حدث للتو؟ 1041 00:43:14,110 --> 00:43:17,680 حتى يمكن فعلا هذا يمكن تفسيره. 1042 00:43:17,680 --> 00:43:18,920 حتى أنها لم تأخذ على أنها ثنائي؟ 1043 00:43:18,920 --> 00:43:21,130 فكرة جيدة، ولكن لا، انها ليست حقيقة أنه استغرق 1044 00:43:21,130 --> 00:43:22,815 كما ثنائي، لأن في الواقع، كان هذا النوع فقط من 1045 00:43:22,815 --> 00:43:23,080 صدفة. 1046 00:43:23,080 --> 00:43:23,930 يمكننا أن نفعل ذلك مرة أخرى. 1047 00:43:23,930 --> 00:43:26,530 لذلك ليس هناك 2 في النظام الثنائي، وهذا 1048 00:43:26,530 --> 00:43:27,420 ربما يكفي على أي حال. 1049 00:43:27,420 --> 00:43:28,780 دخول. 1050 00:43:28,780 --> 00:43:30,140 وكان بحيث لا مشكلة. 1051 00:43:30,140 --> 00:43:31,390 وماذا ايضا؟ 1052 00:43:34,650 --> 00:43:35,400 بالضبط. 1053 00:43:35,400 --> 00:43:37,830 >> أعتقد ذلك إلى ما وكثافة العمليات هو في الواقع. 1054 00:43:37,830 --> 00:43:40,970 انها 32 بت التي يتم تفسير جماعي 1055 00:43:40,970 --> 00:43:42,090 كرقم. 1056 00:43:42,090 --> 00:43:44,730 إذا كان لديك 32 بت، وهذا يعني كل من البتات يمكن أن يكون 1057 00:43:44,730 --> 00:43:46,690 A 0 أو 1، 0 أو 1 1058 00:43:46,690 --> 00:43:49,090 بحيث يعني هناك احتمالين لهذا الشيء، 1059 00:43:49,090 --> 00:43:51,140 احتمالين لهذا، احتمالين لهذا 1060 00:43:51,140 --> 00:43:52,570 بت - ذلك أن 2 مرات 2 مرات - 1061 00:43:52,570 --> 00:43:55,480 ذلك أن 2 إلى قوة 32 هو العدد الإجمالي لل 1062 00:43:55,480 --> 00:43:58,960 التباديل من الآحاد والأصفار وإذا كان لديك 32 1063 00:43:58,960 --> 00:44:01,400 النائبة، أو تلك الأصفار، أمامك. 1064 00:44:01,400 --> 00:44:04,250 إذا كان الأمر كذلك لدي 2 إلى 32، رياضيا، وهذا ما؟ 1065 00:44:07,080 --> 00:44:07,840 لذلك الكثير. 1066 00:44:07,840 --> 00:44:09,910 انها 4 مليارات و يعطي أو يأخذ. 1067 00:44:09,910 --> 00:44:13,510 و 4 مليارات لا يبدو أن ما طبع من هنا. 1068 00:44:13,510 --> 00:44:16,290 في الواقع، وهذا يبدو أقرب إلى 2 مليار دولار. 1069 00:44:16,290 --> 00:44:17,970 ولكن هذا ليس من قبيل الصدفة. 1070 00:44:17,970 --> 00:44:21,590 حقيقة أن الكمبيوتر قد يساء تفسيرها رقم هاتفي ضخمة، 1071 00:44:21,590 --> 00:44:24,260 بلدي تسلسل ضخمة من تلك ومن ثم تسلسل بلدي ضخمة من ثنائي، 1072 00:44:24,260 --> 00:44:26,880 كما حوالي 2 مليار دولار، وأوضح كيف؟ 1073 00:44:30,250 --> 00:44:32,180 هناك سقف لكثافة العمليات. 1074 00:44:32,180 --> 00:44:34,970 هناك بالتأكيد قيمة الحد الأقصى الذي يمكن أن تمثل. 1075 00:44:34,970 --> 00:44:36,370 ولكن هذا عادة 4 مليار أليس كذلك؟ 1076 00:44:36,370 --> 00:44:39,100 إذا 2 إلى ال 32 هو نحو 4 مليار يبدو أن 1077 00:44:39,100 --> 00:44:40,350 هذا هو أكبر عدد. 1078 00:44:42,420 --> 00:44:45,240 حتى لا تبقى ل، ولكن فكرة جيدة. 1079 00:44:45,240 --> 00:44:46,340 الأرقام السالبة. 1080 00:44:46,340 --> 00:44:49,570 إذا كان الأمر كذلك لديك 4000000000 الأمور المحتملة التي يمكن 1081 00:44:49,570 --> 00:44:52,970 تمثل مع هذه التباديل المختلفة من 32 0S و 1082 00:44:52,970 --> 00:44:55,600 1S، حسنا، فمن المنطقي أن نحن البشر قد ترغب في 1083 00:44:55,600 --> 00:44:57,110 لا تمثل الأعداد الصحيحة فقط إيجابية 1084 00:44:57,110 --> 00:44:58,240 لكن الأعداد الصحيحة السالبة. 1085 00:44:58,240 --> 00:45:00,410 وبالفعل، هذا على افتراض أن يجعل C. 1086 00:45:00,410 --> 00:45:03,550 حتى مع 32 بت، يمكنك تمثيل سلبية تقريبا 2 1087 00:45:03,550 --> 00:45:06,630 مليار وصولا إلى 2 مليار إيجابية. 1088 00:45:06,630 --> 00:45:08,750 وحتى في هذه الحالة، ما نراه حقا هو مجرد 1089 00:45:08,750 --> 00:45:13,600 هامش قدرة عدد صحيح لدينا، ونحن لدينا، لذلك 1090 00:45:13,600 --> 00:45:15,860 في الكلام، وفاض عدد صحيح. 1091 00:45:15,860 --> 00:45:19,180 لقد حاولنا أن الالزام أكثر من بت في ذلك من يمكن أن يصلح في الواقع. 1092 00:45:19,180 --> 00:45:22,960 وبالتالي فإن النتيجة النهائية هي أساسا لدينا كل بت 1. 1093 00:45:22,960 --> 00:45:25,280 لقد انقلبت كل من البتات لدينا على، لقد حاولنا لتمثيل 1094 00:45:25,280 --> 00:45:27,630 أكبر عدد ممكن، ولكن من الواضح أنه لا تقريبا 1095 00:45:27,630 --> 00:45:30,960 كبيرة بما يكفي لتمثيل الأمرين لقد كتبته للتو فيها 1096 00:45:30,960 --> 00:45:31,730 نعم؟ 1097 00:45:31,730 --> 00:45:32,980 AUDIENCE: [غير مسموع] 1098 00:45:37,230 --> 00:45:37,830 >> DAVID J. مالان: سؤال جيد. 1099 00:45:37,830 --> 00:45:40,080 لماذا لا نستطيع فقط أن تمثل السلبية 1100 00:45:40,080 --> 00:45:41,500 توقيع كحرف واحد فقط؟ 1101 00:45:41,500 --> 00:45:44,200 حتى نتمكن من الاطلاق، ونحن يمكن أن ينقذ ثم 1102 00:45:44,200 --> 00:45:45,470 وبت إضافية. 1103 00:45:45,470 --> 00:45:49,100 ولكن كنت لا تزال جارية لديهم لتمثيل ذلك اندفاعة، و 1104 00:45:49,100 --> 00:45:50,700 وهذا سوف يكلفك شيئا على الأقل، 1105 00:45:50,700 --> 00:45:52,220 يفترض قليلا. 1106 00:45:52,220 --> 00:45:55,610 لذا نعم، يمكن أن لدينا 32 بت تستخدم لدينا عدد، ولكن الآن 1107 00:45:55,610 --> 00:45:57,610 نحن بحاجة إلى بت تستخدم لاندفاعة لدينا 1108 00:45:57,610 --> 00:45:58,810 رمز أو علامة الطرح. 1109 00:45:58,810 --> 00:46:01,470 حتى الآن لدينا 33 بت القيم، وهو ما يمكن أن تفعله، ولكن كل ما في الأمر 1110 00:46:01,470 --> 00:46:02,570 ليس فقط الطريقة التي فعلت ذلك. 1111 00:46:02,570 --> 00:46:05,140 التي قطعناها على أنفسنا حكم سنوات الدعوة قبل 32 بت هو نوع من 1112 00:46:05,140 --> 00:46:06,170 وحدة القياس هنا. 1113 00:46:06,170 --> 00:46:08,120 لذلك نحن ذاهبون الى استخدام واحدة من هذه البتات بشكل فعال في 1114 00:46:08,120 --> 00:46:12,950 تمثل السلبية، و 31 بت لتمثيل الرقم. 1115 00:46:12,950 --> 00:46:15,550 أسئلة أخرى؟ 1116 00:46:15,550 --> 00:46:15,670 حسنا. 1117 00:46:15,670 --> 00:46:16,030 وهذا كثيرا. 1118 00:46:16,030 --> 00:46:17,930 لماذا لا نذهب إلى الأمام وتأخذ لدينا خمس دقائق استراحة هنا؟ 1119 00:46:23,580 --> 00:46:24,270 >> حسنا. 1120 00:46:24,270 --> 00:46:31,250 ذلك مرة أخرى، وليس لالمبالغة في التشديد على التطبيقات الرياضية 1121 00:46:31,250 --> 00:46:33,840 البرمجة، دعونا نتف قبالة هذا مثال واحد 1122 00:46:33,840 --> 00:46:36,590 قبل أن ننتقل إلى بنيات أخرى، فقط لأنها 1123 00:46:36,590 --> 00:46:39,430 وتوضح بعض النقاط المشتركة عثرة على بعض 1124 00:46:39,430 --> 00:46:41,520 أساسيات عندما يتعلق الأمر برامج الكتابة. 1125 00:46:41,520 --> 00:46:44,360 في هذه الحالة، والقيام التعبيرات الحسابية التي لديها بعض 1126 00:46:44,360 --> 00:46:48,010 مثيرة للاهتمام لأهمية بناء الجملة. 1127 00:46:48,010 --> 00:46:50,430 >> لذلك هذا هو مجرد صيغة التي يمكننا تحويل 1128 00:46:50,430 --> 00:46:52,690 درجات الحرارة من فهرنهايت إلى درجة مئوية. 1129 00:46:52,690 --> 00:46:54,600 إذا كنت لا أذكر، وهذا هو الصيغة فقط. 1130 00:46:54,600 --> 00:46:58,870 إذا كان الأمر كذلك فإننا سد العجز في قيمة فهرنهايت 32 درجة، وهو 1131 00:46:58,870 --> 00:47:02,850 تجميد، وهذا سيكون سالب 32 32 هو 0، وبالفعل، 1132 00:47:02,850 --> 00:47:05,130 0 في مئوية أيضا تجميد. 1133 00:47:05,130 --> 00:47:08,210 حتى التعقل سريعة تحقق هناك - هذا هو صيغة مألوفة. 1134 00:47:08,210 --> 00:47:10,880 اسمحوا لي ان اذهب الى الجهاز، على الرغم من وبدء 1135 00:47:10,880 --> 00:47:13,920 كتابة برنامج يسمى، مثل، f2c؛ "فهرنهايت إلى 1136 00:47:13,920 --> 00:47:15,920 ج مئوية نقطة ". 1137 00:47:15,920 --> 00:47:18,930 وحتى في أعلى هنا، وانا ذاهب تبدأ مع تضمين # 1138 00:47:18,930 --> 00:47:22,190 stdio.h، وانا ذاهب الى القيام الباحث الرئيسي (الفراغ)، و 1139 00:47:22,190 --> 00:47:24,680 مرة أخرى، سوف نعود في المستقبل على ما INT يعني 1140 00:47:24,680 --> 00:47:26,820 وهناك ما يعني الفراغ هناك. 1141 00:47:26,820 --> 00:47:28,770 واسمحوا لي الآن المضي قدما وتنفيذ برنامج 1142 00:47:28,770 --> 00:47:31,170 لا أساسا هذا التحويل بالنسبة لنا. 1143 00:47:31,170 --> 00:47:36,830 >> printf ذلك، دعنا نقول، ودرجة الحرارة في فهرنهايت. 1144 00:47:36,830 --> 00:47:40,140 وثم اسمحوا لي أن تمضي قدما والحصول على قيمة من المستخدم. 1145 00:47:40,140 --> 00:47:43,120 ما هو نوع يمكنني الحصول على قيمة من المستخدم إذا أريد 1146 00:47:43,120 --> 00:47:45,620 لهم أن تعطيني درجة الحرارة في فهرنهايت؟ 1147 00:47:45,620 --> 00:47:48,090 نعم؟ 1148 00:47:48,090 --> 00:47:50,090 ماذا تقترحون؟ 1149 00:47:50,090 --> 00:47:50,410 نعم. 1150 00:47:50,410 --> 00:47:51,960 حتى تطفو يشعر معقولة جدا. 1151 00:47:51,960 --> 00:47:53,950 لدينا، مرة أخرى، فقط عدد قليل من الخيارات التي 1152 00:47:53,950 --> 00:47:55,310 لقد رأينا حتى الآن. 1153 00:47:55,310 --> 00:48:00,100 لدينا أشياء مثل شار، تطفو، مزدوجة، وكثافة العمليات طويلة جدا، 1154 00:48:00,100 --> 00:48:01,150 BOOL، السلسلة. 1155 00:48:01,150 --> 00:48:03,510 حتى من هذه، تطفو يشعر معقولة جدا. 1156 00:48:03,510 --> 00:48:06,340 يمكننا استخدام مزدوج، والحق، لأنه إذا كنا نريد حقا أن 1157 00:48:06,340 --> 00:48:07,580 تمثل درجة حرارة الانسان - 1158 00:48:07,580 --> 00:48:10,730 98،60000 - 1159 00:48:10,730 --> 00:48:12,990 يمكن أن نستخدم 64 بت للقيام بذلك، ولكن بدا الامر وكأننا 1160 00:48:12,990 --> 00:48:14,200 مبالغة لدرجة الحرارة. 1161 00:48:14,200 --> 00:48:16,380 لذلك دعونا فقط الذهاب مع عدد عشري. 1162 00:48:16,380 --> 00:48:18,100 الان انا بحاجة متغير. 1163 00:48:18,100 --> 00:48:20,500 فقط للحفاظ على الأشياء البسيطة، انا ذاهب الى يطلق عليه و لكنني 1164 00:48:20,500 --> 00:48:23,370 يمكن تماما كما ندعو بشكل صحيح درجة الحرارة، 1165 00:48:23,370 --> 00:48:24,600 ولكن هو إما غرامة. 1166 00:48:24,600 --> 00:48:27,610 تطفو حتى F = GetFloat. 1167 00:48:27,610 --> 00:48:30,220 بمجرد أن الآن قد قررت استخدام GetFloat، على الرغم من أنني 1168 00:48:30,220 --> 00:48:33,340 تحتاج إلى إجراء واحد التصحيح. 1169 00:48:33,340 --> 00:48:33,720 نعم. 1170 00:48:33,720 --> 00:48:37,460 لذلك نحن بحاجة إلى تضمين # ، وإلا فإن المترجم هو 1171 00:48:37,460 --> 00:48:39,000 سوف يصيح علينا. 1172 00:48:39,000 --> 00:48:41,720 الآن أن لدي تعويم، اسمحوا لي أن نمضي قدما ونفعل في 1173 00:48:41,720 --> 00:48:42,460 التحويل. 1174 00:48:42,460 --> 00:48:44,980 >> ذلك أولا، اسمحوا لي أيضا الحصول في العادة من هنا 1175 00:48:44,980 --> 00:48:46,310 التعليق قانون بلدي. 1176 00:48:46,310 --> 00:48:49,820 ذلك مرة أخرى، تعليقا مجرد تدوين لهذا الإنسان 1177 00:48:49,820 --> 00:48:52,600 ليست جزءا من برنامج في حد ذاته، ولكن واحدة منه، يساعدك 1178 00:48:52,600 --> 00:48:55,010 فهم ما فعلتم في صباح اليوم التالي، أو القادمة 1179 00:48:55,010 --> 00:48:57,570 الشهر، فإنه يساعد على فهم زملائك التدريس ما فعلت 1180 00:48:57,570 --> 00:48:59,230 أو ما كنت تنوي القيام به، لذلك فمن 1181 00:48:59,230 --> 00:49:00,950 عموما جيدة جدا الممارسة. 1182 00:49:00,950 --> 00:49:02,940 كل بضعة اسطر من التعليمات البرمجية، أكتب تعليق على 1183 00:49:02,940 --> 00:49:04,490 نفسك أو زميلك. 1184 00:49:04,490 --> 00:49:08,460 حتى هنا، وانا ذاهب ليقول "اسأل المستخدم للحصول على درجة الحرارة." 1185 00:49:08,460 --> 00:49:10,890 ليس من الضروري أن تكون الجملة كاملة، مجرد عبارة قصيرة. 1186 00:49:10,890 --> 00:49:14,270 ولكن الفكرة وراء تعليقه في C هي أن كل من لديك 1187 00:49:14,270 --> 00:49:17,980 يجب تمكين لكم تعليقات - أو، مثلا، TF أو زميل أ - 1188 00:49:17,980 --> 00:49:21,290 لالمقشود البرنامج وتعرف بالضبط ما تقوم به، من خلال عدم 1189 00:49:21,290 --> 00:49:24,650 حتى قراءة الكثير من التعليمات البرمجية، ولكن من خلال قراءة التعليقات التي، 1190 00:49:24,650 --> 00:49:26,220 يجب أن تكون موجزة وواضحة. 1191 00:49:26,220 --> 00:49:29,030 كل الحق، لذلك اسمحوا لي الآن المضي قدما ويقول: "تحويل 1192 00:49:29,030 --> 00:49:32,660 فهرنهايت إلى درجة مئوية ". لذلك أنا ذاهب الى المضي قدما والقيام، 1193 00:49:32,660 --> 00:49:34,340 دعنا نقول، تطفو ج. 1194 00:49:34,340 --> 00:49:36,610 سوف نستمر مئوية كقيمة النقطة العائمة. 1195 00:49:36,610 --> 00:49:37,630 >> واسمحوا لي أن أغتنم طعنة في ذلك. 1196 00:49:37,630 --> 00:49:40,350 الصيغة هي، مرة أخرى، إلى هنا. 1197 00:49:40,350 --> 00:49:45,510 كما 5/9 مرات F ناقص 32. 1198 00:49:45,510 --> 00:49:46,360 لذلك دعونا نفعل ذلك. 1199 00:49:46,360 --> 00:49:50,450 5 حتى مقسوما 9، ناقص - 1200 00:49:50,450 --> 00:49:52,330 يصيح، I عابث عنه بالفعل. 1201 00:49:52,330 --> 00:49:53,070 مرات. 1202 00:49:53,070 --> 00:49:56,550 حتى 5/9 مرات F ناقص 32. 1203 00:49:56,550 --> 00:49:59,650 حتى F ناقص 32، منقوطة. 1204 00:49:59,650 --> 00:50:02,000 والآن، إلى هنا، أنا ذاهب إلى المضي قدما 1205 00:50:02,000 --> 00:50:03,220 ويقول: طباعة نتيجة. 1206 00:50:03,220 --> 00:50:05,160 وهذا الجزء من السهل. Printf. 1207 00:50:05,160 --> 00:50:07,980 كيف أذهب حول طباعة هذا؟ 1208 00:50:07,980 --> 00:50:16,890 حسنا، يمكن أن أقول "هذا الرقم هو في مئوية و٪ \ ن"، 1209 00:50:16,890 --> 00:50:18,060 فقط لبعض الجماليات. 1210 00:50:18,060 --> 00:50:20,450 ثم ما قيمة لا أريد أن سد العجز في هنا في printf 1211 00:50:20,450 --> 00:50:21,360 الحجة الثانية؟ 1212 00:50:21,360 --> 00:50:21,650 حسنا. 1213 00:50:21,650 --> 00:50:22,540 حتى ج فقط. 1214 00:50:22,540 --> 00:50:24,760 لذلك سنبدأ مع هذا ومن ثم العودة فقط 0. 1215 00:50:24,760 --> 00:50:25,960 مرة أخرى، فإنه لا علاقة له مع الرياضيات. 1216 00:50:25,960 --> 00:50:27,610 بل يعني فقط كل شيء على ما يرام. 1217 00:50:27,610 --> 00:50:31,210 >> الآن، فهل هذا صحيح، وهذا البرنامج؟ 1218 00:50:31,210 --> 00:50:31,520 حسنا. 1219 00:50:31,520 --> 00:50:33,630 حتى لقد جعل بعض الأخطاء. 1220 00:50:33,630 --> 00:50:35,980 حتى لو كان لديك أي فكرة عما هو البرمجة، يمكنك فرز 1221 00:50:35,980 --> 00:50:37,120 يستنتج من العودة إلى المدرسة الصف ما 1222 00:50:37,120 --> 00:50:38,740 قد تكون أخطاء هنا. 1223 00:50:38,740 --> 00:50:40,050 ما هو واحدة من أولى؟ 1224 00:50:40,050 --> 00:50:41,256 AUDIENCE: [غير مسموع] 1225 00:50:41,256 --> 00:50:41,660 DAVID J. مالان: نعم. 1226 00:50:41,660 --> 00:50:42,940 لذلك نحن في عداد المفقودين أقواس. 1227 00:50:42,940 --> 00:50:45,420 كان متعمدا أن فعلت قوسين في الكلمة الرئيسية 1228 00:50:45,420 --> 00:50:48,130 الشريحة هنا، لأنه لا يوجد في الواقع هذه الفكرة من أجل 1229 00:50:48,130 --> 00:50:51,590 العمليات، أو الأسبقية، حيث بعض العمليات - 1230 00:50:51,590 --> 00:50:52,890 الضرب - 1231 00:50:52,890 --> 00:50:56,000 وارتفاع ملزمة، وارتفاع الأسبقية، من الأمور 1232 00:50:56,000 --> 00:50:58,050 مثل إضافة أو الطرح. 1233 00:50:58,050 --> 00:51:00,550 حتى لقد فعلنا هذا لسنوات فقط لجعل واضحة تماما 1234 00:51:00,550 --> 00:51:02,840 ما ينبغي القيام به العملية الحسابية الأولى. 1235 00:51:02,840 --> 00:51:05,010 لذلك ينبغي I تقليد ربما هذا بالضبط. 1236 00:51:05,010 --> 00:51:08,990 خلاف ذلك، فإن الكمبيوتر هو الذهاب يفترض أن تحاول أن تفعل 1237 00:51:08,990 --> 00:51:13,090 شيء من هذا القبيل الفجوة 5 من 9، ثم تتضاعف F، ثم طرح 1238 00:51:13,090 --> 00:51:14,850 32 من كل شيء. 1239 00:51:14,850 --> 00:51:16,480 وهي ليست، في الواقع، ما نريد القيام به. 1240 00:51:16,480 --> 00:51:17,340 لذلك دعونا parenthesize. 1241 00:51:17,340 --> 00:51:20,860 دعونا نضيف قوسين بلدي هنا، هنا قوسين. 1242 00:51:20,860 --> 00:51:22,670 دعونا نضع هذا هنا. 1243 00:51:22,670 --> 00:51:25,130 هنا، لاحظت مجرد خطأ الذي أدليت به على طول الطريق. 1244 00:51:25,130 --> 00:51:25,680 نعم؟ 1245 00:51:25,680 --> 00:51:26,930 AUDIENCE: [غير مسموع] 1246 00:51:29,632 --> 00:51:30,130 >> DAVID J. مالان: آه. 1247 00:51:30,130 --> 00:51:30,470 جيدة. 1248 00:51:30,470 --> 00:51:32,400 لذلك لدينا في الواقع العدد الصحيح نفس 1249 00:51:32,400 --> 00:51:34,020 مسألة تقسيم من قبل. 1250 00:51:34,020 --> 00:51:35,800 I تصحيح ذلك، دعونا نرى ما هو أعراض. 1251 00:51:35,800 --> 00:51:36,990 ولكن ونحن في طريقنا لدينا لتصحيح واحد 1252 00:51:36,990 --> 00:51:37,680 خطأ أخرى هنا. 1253 00:51:37,680 --> 00:51:38,015 نعم؟ 1254 00:51:38,015 --> 00:51:39,540 AUDIENCE: [غير مسموع] 1255 00:51:39,540 --> 00:51:40,070 DAVID J. مالان: نعم. 1256 00:51:40,070 --> 00:51:43,130 لذلك، خطأ غبي قدم لي، ولكن مهم للغاية. 1257 00:51:43,130 --> 00:51:45,870 الكمبيوتر لن يتحول مجرد غض البصر وترك 1258 00:51:45,870 --> 00:51:48,770 لي استخدام F رأس المال، وعندما أعلن بالفعل المتغير 1259 00:51:48,770 --> 00:51:51,360 كما و صغيرة هنا، في السطر 8. 1260 00:51:51,360 --> 00:51:54,470 لذلك أنا بحاجة إلى تصحيح في القيمة خطي 11 التي ل 1261 00:51:54,470 --> 00:51:56,820 منذ اللحظة كانت لF رأس المال عن طريق الخطأ. 1262 00:51:56,820 --> 00:51:57,610 ماذا عن هنا؟ 1263 00:51:57,610 --> 00:51:59,980 هذا ينبغي أن يكون صغيرة كذلك؟ 1264 00:51:59,980 --> 00:52:02,260 ينبغي أن يكون، ولكن هذا من قبيل المصادفة. 1265 00:52:02,260 --> 00:52:05,070 و أن٪ ليس لديها ما تفعله مع المتغير. 1266 00:52:05,070 --> 00:52:07,980 لذلك لمجرد أن يكون واضحا هنا السوبر، اسمحوا لي أن المضي قدما في 1267 00:52:07,980 --> 00:52:10,710 إعادة تسمية هذا، لفترة وجيزة، "درجة الحرارة". اسمحوا لي أن إعادة تسمية 1268 00:52:10,710 --> 00:52:15,050 هذه "الحرارة". اسمحوا لي أن لا إعادة تسمية هذا. 1269 00:52:15,050 --> 00:52:18,180 لأنه، مرة أخرى، و٪ يعني على الصعيد العالمي، "تطفو قيمة النقطة." 1270 00:52:18,180 --> 00:52:19,950 ليس له اي علاقة مع متغير بلدي. 1271 00:52:19,950 --> 00:52:23,080 ولكن "درجة الحرارة" في جميع أنحاء المكان قليلا الالفاظ، 1272 00:52:23,080 --> 00:52:25,370 لذلك أنا ذاهب الى العودة الى بلدي صغيرة S "و". 1273 00:52:25,370 --> 00:52:27,890 >> الآن، اسمحوا لي أن تمضي قدما وصولا الى نافذتي هنا. 1274 00:52:27,890 --> 00:52:29,190 جعل f2c - 1275 00:52:29,190 --> 00:52:31,200 الذي كان، مرة أخرى، اسم التعسفي I 1276 00:52:31,200 --> 00:52:32,590 أعطى لهذا الملف. 1277 00:52:32,590 --> 00:52:33,690 ويبدو أن المترجمة. 1278 00:52:33,690 --> 00:52:35,080 اسمحوا لي أن تشغيل f2c. 1279 00:52:35,080 --> 00:52:35,780 دخول. 1280 00:52:35,780 --> 00:52:37,786 درجة الحرارة في فهرنهايت - دعونا نفعل سهلة. 1281 00:52:37,786 --> 00:52:39,370 32. 1282 00:52:39,370 --> 00:52:40,910 OK، تصحيح. 1283 00:52:40,910 --> 00:52:45,910 ولكن، إذا كنت تفعل الآن 212 للغليان - 1284 00:52:45,910 --> 00:52:46,630 لعنة. 1285 00:52:46,630 --> 00:52:47,030 حسنا. 1286 00:52:47,030 --> 00:52:50,780 لذلك، من الواضح غير صحيح، إذا TF الخاص يحاول 1287 00:52:50,780 --> 00:52:51,800 اثنين على الأقل من القيم. 1288 00:52:51,800 --> 00:52:53,340 فما هي المشكلة هنا؟ 1289 00:52:53,340 --> 00:52:55,970 حسنا، كنت وضعت بالفعل إصبعك على ما المسألة. 1290 00:52:55,970 --> 00:52:57,600 ولكن لماذا هو أن هذه القضية؟ 1291 00:52:57,600 --> 00:53:00,630 هنا، عندما كنت أقوم بعمل الرياضيات من 5 مقسوما على 9. 1292 00:53:00,630 --> 00:53:02,190 من الناحية المفاهيمية، لدرجة أن هذا صحيح تماما. 1293 00:53:02,190 --> 00:53:03,690 يتفق تماما مع الصيغة. 1294 00:53:03,690 --> 00:53:05,940 ولكن أجهزة الكمبيوتر فقط القيام بالضبط ما كنت 1295 00:53:05,940 --> 00:53:06,760 نقول لهم القيام به. 1296 00:53:06,760 --> 00:53:08,940 وماذا نحن نقول بشكل فعال الكمبيوتر هنا هو 1297 00:53:08,940 --> 00:53:12,320 تقسيم عدد صحيح من قبل ال 5 في 9 عدد صحيح 1298 00:53:12,320 --> 00:53:13,670 وتعطيني النتيجة. 1299 00:53:13,670 --> 00:53:16,230 المشكلة هي، مع ذلك، عندما كنت تقسيم باستخدام بيانات 1300 00:53:16,230 --> 00:53:20,220 أنواع، والناتج هو نفس نوع البيانات والمدخلات. 1301 00:53:20,220 --> 00:53:23,670 وحتى إذا كان كل من المدخلات هما رجات، والناتج هو الذهاب 1302 00:53:23,670 --> 00:53:25,110 أن يكون الباحث. 1303 00:53:25,110 --> 00:53:28,770 وحتى 5 مقسوما على 9 هو شيء النقطة. 1304 00:53:28,770 --> 00:53:32,320 ولكن ما هو أقرب عدد صحيح للإشارة شيئا؟ 1305 00:53:32,320 --> 00:53:33,630 لذلك، فإنه في الواقع 0. 1306 00:53:33,630 --> 00:53:36,620 وذلك يوم الاثنين ناقشنا كل شيء بعد العلامة العشرية 1307 00:53:36,620 --> 00:53:37,940 يحصل اقتطاع نقطة. 1308 00:53:37,940 --> 00:53:39,495 هو فقط يحصل بعيدا. 1309 00:53:39,495 --> 00:53:42,760 لذلك هذا هو الخطأ التام، لأنني قد وكذلك فقط 1310 00:53:42,760 --> 00:53:44,700 تتضاعف كل شيء هنا من قبل 0. 1311 00:53:44,700 --> 00:53:46,550 >> الآن، لا أستطيع إصلاح هذا في عدة طرق. 1312 00:53:46,550 --> 00:53:48,080 يمكنني أن أفعل هذا. 1313 00:53:48,080 --> 00:53:50,490 5.0 مقسوما على 9.0. 1314 00:53:50,490 --> 00:53:52,110 من الناحية الفنية، وأنا لا تحتاج حتى للقيام بذلك. 1315 00:53:52,110 --> 00:53:55,780 فإنه لا يكفي لجعل مجرد واحد من عدد عشري الأرقام - 1316 00:53:55,780 --> 00:53:58,290 أو مزدوجة - عن طريق وضع الفاصلة العشرية هنا. 1317 00:53:58,290 --> 00:54:01,740 لأن ما يحدث الآن هو عند تقسيم عدد صحيح من قبل 1318 00:54:01,740 --> 00:54:04,670 عدد عشري، أو مزدوج ل، الكمبيوتر الذي يحدث لتحقيق 1319 00:54:04,670 --> 00:54:06,830 أوه، هو واحد من تلك أكثر دقة. 1320 00:54:06,830 --> 00:54:09,420 اسمحوا لي أن يخطئ على جانب مما يتيح لك المزيد من الدقة من 1321 00:54:09,420 --> 00:54:10,310 يقصد لك. 1322 00:54:10,310 --> 00:54:12,700 لذلك فإنه سيتم تحويل النتيجة - 1323 00:54:12,700 --> 00:54:16,240 فإنه سيعود النتيجة كقيمة النقطة العائمة أيضا. 1324 00:54:16,240 --> 00:54:17,330 ذلك أن هذا العمل. 1325 00:54:17,330 --> 00:54:18,060 ومن شأن هذا العمل. 1326 00:54:18,060 --> 00:54:20,010 وهناك آلية واحدة الأخرى التي سنرى في 1327 00:54:20,010 --> 00:54:21,390 بمزيد من التفصيل في الأسبوع القادم. 1328 00:54:21,390 --> 00:54:24,690 يمكنك في الواقع، ومبرمج، ونقول للكمبيوتر 1329 00:54:24,690 --> 00:54:27,930 لعلاج في الواقع واحدة نوع البيانات كما 1330 00:54:27,930 --> 00:54:29,260 على الرغم من أنها كانت آخر. 1331 00:54:29,260 --> 00:54:30,990 >> لذلك يمكن القيام به في الواقع أنا هذا. 1332 00:54:30,990 --> 00:54:35,280 بين قوسين، أستطيع أن أقول شيء من هذا القبيل (تعويم)، مفتوحة 1333 00:54:35,280 --> 00:54:36,350 PAREN، PAREN إغلاق. 1334 00:54:36,350 --> 00:54:39,050 وهذا ما يسمى "الصب". مرة أخرى، وأكثر 1335 00:54:39,050 --> 00:54:39,940 على هذا في الأسبوع القادم. 1336 00:54:39,940 --> 00:54:42,280 ولكن هذا هو مجرد وسيلة لإخبار البرنامجية 1337 00:54:42,280 --> 00:54:45,910 الكمبيوتر، نعم أنا أعلم 9 هو عدد صحيح أو لفترة طويلة. 1338 00:54:45,910 --> 00:54:47,700 وأنا أعلم أنه لا قيمة النقطة العائمة. 1339 00:54:47,700 --> 00:54:49,420 ولكن التعامل معها على هذا النحو على أي حال. 1340 00:54:49,420 --> 00:54:52,000 ذلك ليلقي نوع البيانات يعني لتحويل 1341 00:54:52,000 --> 00:54:53,310 من واحدة إلى أخرى. 1342 00:54:53,310 --> 00:54:55,790 بصراحة، هذا هو قليلا القبيح، لذلك أقترح أن نذهب 1343 00:54:55,790 --> 00:54:58,830 عودة إلى اقتراح الأصلي لتحويل فقط 1344 00:54:58,830 --> 00:55:00,770 هذه الأشياء لتطفو القيم نقطة يدويا. 1345 00:55:00,770 --> 00:55:02,890 لأنه الآن انها مجرد سوبر واضحا ما الذي يحدث، و 1346 00:55:02,890 --> 00:55:04,280 انها ليست كل ما يلهي. 1347 00:55:04,280 --> 00:55:06,710 >> لذلك دعونا الآن نعود إلى إطار المحطة الطرفية بلدي. 1348 00:55:06,710 --> 00:55:07,990 جعل f2c. 1349 00:55:07,990 --> 00:55:09,430 اسمحوا لي أن تمضي قدما وتشغيل هذا. 1350 00:55:09,430 --> 00:55:12,340 و، بوصفها جانبا، والحصول على بالملل من كتابة هذه الأوامر 1351 00:55:12,340 --> 00:55:14,910 مرارا وتكرارا، ندرك أن أجهزة الكمبيوتر، مثل لينكس هنا، 1352 00:55:14,910 --> 00:55:16,010 تميل إلى أن تكون ذكية جدا. 1353 00:55:16,010 --> 00:55:18,890 وإذا كنت تصل إلى أعلى، يمكننا أن نذهب من خلال تاريخ بلادي كامل 1354 00:55:18,890 --> 00:55:20,380 الأوامر، صعودا وهبوطا. 1355 00:55:20,380 --> 00:55:23,840 حتى في هذه الحالة هنا، يمكنني أن أذهب للتو لتشغيل جعل f2c. 1356 00:55:23,840 --> 00:55:25,830 أنا يجري I صرخ في و، لأنني فعلت ذلك ثانية مضت. 1357 00:55:25,830 --> 00:55:27,030 انها بالفعل حتى الآن. 1358 00:55:27,030 --> 00:55:30,720 حتى الآن لا أستطيع تشغيل f2c مرة أخرى. 1359 00:55:30,720 --> 00:55:33,260 دعونا نحاول 32 فهرنهايت. 1360 00:55:33,260 --> 00:55:36,720 الآن دعونا نحاول 212 فهرنهايت. 1361 00:55:36,720 --> 00:55:37,250 >> تفو. 1362 00:55:37,250 --> 00:55:38,250 يبدو للعمل. 1363 00:55:38,250 --> 00:55:41,760 الآن، وهذا أمر جيد، لكنه يشعر قليلا التعسفية التي 1364 00:55:41,760 --> 00:55:44,890 أنا تظهر بعد ستة أرقام النقاط العشرية. 1365 00:55:44,890 --> 00:55:45,070 أليس كذلك؟ 1366 00:55:45,070 --> 00:55:47,830 إذا كنت الشخص الطقس على شاشة التلفزيون، وكنت نوع من doofus 1367 00:55:47,830 --> 00:55:49,150 إذا كنت تقرأ درجة الحرارة إلى 1368 00:55:49,150 --> 00:55:50,070 هذه الدرجة من الدقة. 1369 00:55:50,070 --> 00:55:51,270 لذلك دعونا تبسيط هذه. 1370 00:55:51,270 --> 00:55:53,880 لذلك دعونا نذهب فعلا إلى هنا، إلى printf بلدي. 1371 00:55:53,880 --> 00:55:55,490 ونعم، أريد أن تطفو. 1372 00:55:55,490 --> 00:55:57,570 ولكن أريد أن تحديد الآن الدقة. 1373 00:55:57,570 --> 00:55:59,070 وانا ذاهب الى أن تكون مقتضبة قليلا. 1374 00:55:59,070 --> 00:56:03,090 انا ذاهب الى القول، أعطني نقطة واحدة بعد منزلة عشرية. 1375 00:56:03,090 --> 00:56:07,590 وذلك بدلا من القول و٪، انا ذاهب الى القول٪ .1 و. 1376 00:56:07,590 --> 00:56:09,760 وهذا يعني فقط أن تعطيني وظيفة واحدة 1377 00:56:09,760 --> 00:56:11,410 بعد العلامة العشرية. 1378 00:56:11,410 --> 00:56:11,700 حسنا. 1379 00:56:11,700 --> 00:56:12,570 دعونا نحاول هذا مرة أخرى. 1380 00:56:12,570 --> 00:56:15,590 اسمحوا لي أن أعيد تشغيله بعد تجميع. 1381 00:56:15,590 --> 00:56:18,160 واكتب الآن وأنا في 32، وأعود ل 1382 00:56:18,160 --> 00:56:19,310 أكثر اقتضابا القيمة. 1383 00:56:19,310 --> 00:56:22,480 وأستطيع أن اكتب في، الآن، 212، والعودة لأكثر اقتضابا 1384 00:56:22,480 --> 00:56:23,260 قيمة كذلك. 1385 00:56:23,260 --> 00:56:25,190 وهناك أشياء أخرى يمكنك القيام به مع printf. 1386 00:56:25,190 --> 00:56:27,950 يمكنك تحديد كيفية واسعة في الواقع عدد ينبغي أن يكون. 1387 00:56:27,950 --> 00:56:30,900 إذا كنت تريد أن يكون الحشو على ذلك، لذلك يمكنك النقر بزر الماوس أو محاذاة 1388 00:56:30,900 --> 00:56:32,360 اليسار محاذاة كل الأرقام الخاصة بك أو من 1389 00:56:32,360 --> 00:56:33,400 محاولة الأمور الوسط. 1390 00:56:33,400 --> 00:56:35,340 تحقيق ذلك هناك القليل الحيل يمكنك القيام به هناك. 1391 00:56:35,340 --> 00:56:38,420 ولكنها تغلي فقط وصولا الى رموز تنسيق، 1392 00:56:38,420 --> 00:56:39,600 لدينا مثل هناك. 1393 00:56:39,600 --> 00:56:41,090 >> لذلك من حيث هذا العدد من الأسبقية. 1394 00:56:41,090 --> 00:56:43,820 هذا هو جدول مملة جدا للذهاب من خلال منهجية. 1395 00:56:43,820 --> 00:56:46,780 ولكن ندرك أن واضعي C قد حان حتى مع 1396 00:56:46,780 --> 00:56:50,190 القواعد التي تحدد المشغلين أعلى 1397 00:56:50,190 --> 00:56:53,680 الأسبقية، والسلطة، أكثر إلزاما، أكثر من غيرها. 1398 00:56:53,680 --> 00:56:55,890 ذلك في حين أنه في المدارس الابتدائية، كنا نعرف أنه كان عموما 1399 00:56:55,890 --> 00:56:58,930 الضرب والقسمة، ثم الجمع والطرح، 1400 00:56:58,930 --> 00:56:59,950 ثم بعض الأشياء الأخرى. 1401 00:56:59,950 --> 00:57:01,720 في عالم البرمجة، وهناك الكثير 1402 00:57:01,720 --> 00:57:03,360 قائمة طويلة من الأشياء. 1403 00:57:03,360 --> 00:57:05,150 وهذا ليس شيئا يستحق حفظ الآن. 1404 00:57:05,150 --> 00:57:07,310 سوف تحصل على تأقلم لك ذلك قبل فترة طويلة. 1405 00:57:07,310 --> 00:57:10,690 ولكن مثلما هو الحال في المدارس الابتدائية، حل عموما قوسين 1406 00:57:10,690 --> 00:57:12,990 قضايا الأسبقية، من خلال جعل سوبر واضحة لل 1407 00:57:12,990 --> 00:57:15,620 الكمبيوتر والإنسان على حد سواء المقصود. 1408 00:57:15,620 --> 00:57:17,770 والنظر في ذلك الأمر مجرد ورقة الغش قليلا هناك. 1409 00:57:17,770 --> 00:57:21,690 ولكن معظم هذه التفاصيل فإننا لن نصل إلى لبعض الوقت. 1410 00:57:21,690 --> 00:57:21,900 >> حسنا. 1411 00:57:21,900 --> 00:57:24,120 الآن، دعونا نبنى والابتعاد عن هذه قليلا سخيفة 1412 00:57:24,120 --> 00:57:25,460 أمثلة الرياضية. 1413 00:57:25,460 --> 00:57:27,500 لا تزال تستخدم نفس الأسس، ولكن بدء 1414 00:57:27,500 --> 00:57:29,960 معربا عن أنفسنا أكثر من ذلك بقليل مثل الصفر. 1415 00:57:29,960 --> 00:57:31,660 حتى في سكراتش، كان لدينا هذه التعبيرات المنطقية. 1416 00:57:31,660 --> 00:57:34,890 وباللغة الإنجليزية، تعبير منطقي ما هو؟ 1417 00:57:34,890 --> 00:57:35,580 صحيحة أو خاطئة. 1418 00:57:35,580 --> 00:57:38,300 انه شيء يقيم إلى صواب أو خطأ. 1419 00:57:38,300 --> 00:57:39,060 1 أو 0. 1420 00:57:39,060 --> 00:57:39,870 أو إيقاف تشغيله. 1421 00:57:39,870 --> 00:57:41,000 كل ما تريد أن نسميها. 1422 00:57:41,000 --> 00:57:43,210 الآن في سكراتش، بدا قطع اللغز مثل هذا. 1423 00:57:43,210 --> 00:57:45,850 وهذا هو الجمع، وعلى الجزء السفلي هناك، من ثلاثة 1424 00:57:45,850 --> 00:57:47,980 لغز قطعة. 1425 00:57:47,980 --> 00:57:48,980 واحد جنبا إلى جنب - 1426 00:57:48,980 --> 00:57:51,710 شيء له فارغة وفارغة. 1427 00:57:51,710 --> 00:57:53,970 ثم تعبيرين منطقية داخل منه. 1428 00:57:53,970 --> 00:57:56,460 حتى تتمكن من التعبير عش منطقية للحصول على مزيد من 1429 00:57:56,460 --> 00:57:59,360 معقدة التعبيرات المنطقية. 1430 00:57:59,360 --> 00:58:03,930 على سبيل المثال، إذا كان هو يوم السبت، وأنه من الجيد 1431 00:58:03,930 --> 00:58:06,180 الطقس، ثم انتقل خارج. 1432 00:58:06,180 --> 00:58:07,500 أو شيء من هذا القبيل التعسفي. 1433 00:58:07,500 --> 00:58:10,090 حتى تتمكن من الانضمام إلى التعبيرات المنطقية التوصل إلى 1434 00:58:10,090 --> 00:58:12,780 ويستند قيمة أكبر الحقيقة، التي الجواب 1435 00:58:12,780 --> 00:58:13,800 على أصغر. 1436 00:58:13,800 --> 00:58:15,770 >> الآن، في C، والحمد لله، هذا التعيين هو 1437 00:58:15,770 --> 00:58:16,720 في الواقع بسيط جدا. 1438 00:58:16,720 --> 00:58:18,820 مساعدة قوسين يكون الامر واضحا هنا. 1439 00:58:18,820 --> 00:58:21,700 && هو ما يعني "و". لذلك هذه هي الطريقة 1440 00:58:21,700 --> 00:58:24,700 ونحن في طريقنا لتحويل تلك الكتل من الصفر لC. 1441 00:58:24,700 --> 00:58:27,590 وبالنسبة للظروف رأينا في سكراتش، على اليد اليسرى 1442 00:58:27,590 --> 00:58:31,150 هناك الجانب، ويمكنني أن رصها وبالمثل في C. إذا كانت x غير أقل 1443 00:58:31,150 --> 00:58:32,970 من Y، ثم القيام بذلك. 1444 00:58:32,970 --> 00:58:35,100 والا اذا X أكبر من Y، ثم القيام بذلك. 1445 00:58:35,100 --> 00:58:38,030 آخر منطقيا يجب أن تكون على قدم المساواة، يقول ذلك 1446 00:58:38,030 --> 00:58:39,140 أن تكون على قدم المساواة. 1447 00:58:39,140 --> 00:58:41,210 لذلك يمكننا أن نبدأ الآن لبناء هذه الامور. 1448 00:58:41,210 --> 00:58:42,170 >> لذلك دعونا نفعل مثال على ذلك. 1449 00:58:42,170 --> 00:58:45,550 اسمحوا لي أن تفتح ملف هذا على الموقع الإلكتروني للدورة بأن 1450 00:58:45,550 --> 00:58:47,270 كتبت مسبقا. 1451 00:58:47,270 --> 00:58:50,540 ويسمى هذا nonswitch.c. 1452 00:58:50,540 --> 00:58:52,270 وسوف نرى لماذا في لحظة واحدة. 1453 00:58:52,270 --> 00:58:54,770 حتى في هذا الملف - nonswitch.c-- 1454 00:58:54,770 --> 00:58:56,830 ندرك أولا أن هناك مجموعة كاملة من 1455 00:58:56,830 --> 00:58:58,460 تعليقات في الأعلى. 1456 00:58:58,460 --> 00:59:00,110 هذا ما يفسر فقط اسم الملف، ما 1457 00:59:00,110 --> 00:59:01,260 لا، وهكذا دواليك. 1458 00:59:01,260 --> 00:59:04,390 ويظهر على ما يبدو استخدام منطقية AND جي - 1459 00:59:04,390 --> 00:59:06,220 مشاركا تعبيرين. 1460 00:59:06,220 --> 00:59:07,670 >> لذلك دعونا نرى كيف يعمل هذا البرنامج. 1461 00:59:07,670 --> 00:59:10,840 I تشمل بلدي اثنين من الملفات، وcs50.h stdio.h. 1462 00:59:10,840 --> 00:59:13,180 إذا كنت انتقل لأسفل، الآن، إلى البرنامج، انها لفترة أطول قليلا 1463 00:59:13,180 --> 00:59:15,730 لقد كتبنا من قبل، ولكن قراءة جميلة. 1464 00:59:15,730 --> 00:59:18,360 لذلك أنا أول من طباعة المستخدم، على خط 18، 1465 00:59:18,360 --> 00:59:20,460 "أعطني عددا صحيحا بين 1 و 10". هكذا 1466 00:59:20,460 --> 00:59:21,530 وهذا حق هناك. 1467 00:59:21,530 --> 00:59:23,410 الآن يمكنني الحصول على عدد صحيح. 1468 00:59:23,410 --> 00:59:25,380 ولكن ندرك أن GetInt - بسيطة جدا. 1469 00:59:25,380 --> 00:59:26,510 انها مجرد الذهاب للحصول على كثافة العمليات. 1470 00:59:26,510 --> 00:59:28,830 انه سيكون للتأكد من أنها لا تحصل على الباحث وليس 1471 00:59:28,830 --> 00:59:30,060 سلسلة أو طوف. 1472 00:59:30,060 --> 00:59:32,390 ولكنها لن تفعل أي نوع من التدقيق الحدود. 1473 00:59:32,390 --> 00:59:34,750 انها ليست الذهاب الى تصفية الأرقام لتكون بين 1474 00:59:34,750 --> 00:59:35,630 بعض النطاق. 1475 00:59:35,630 --> 00:59:37,730 لذلك لدينا لتنفيذ ذلك أنفسنا. 1476 00:59:37,730 --> 00:59:40,680 تماما مثل ذلك في سكراتش، حيث يمكن القيام اقتران 1477 00:59:40,680 --> 00:59:43,560 تعبيرين، ويمكنني أن نفعل ذلك في C على النحو التالي. 1478 00:59:43,560 --> 00:59:48,660 إذا كانت n أكبر من أو تساوي 1، و n هو أقل من و 1479 00:59:48,660 --> 00:59:52,220 أو يساوي 3، وانا ذاهب الى المرسوم تعسفية جدا أن 1480 00:59:52,220 --> 00:59:53,830 عدد أن يكون عدد قليل. 1481 00:59:53,830 --> 00:59:56,730 لمجرد بيان. 1482 00:59:56,730 --> 01:00:00,210 والا اذا n هو بين 4 و 6 و الطباعة "اختار لك وسيلة 1483 01:00:00,210 --> 01:00:03,440 عدد. "آخر إذا n هو ما بين 7 و 10، الطباعة" التقطت أنت 1484 01:00:03,440 --> 01:00:06,390 عدد كبير. "آخر طباعة" يمكنك اختيار عدد غير صالح. " 1485 01:00:06,390 --> 01:00:07,900 لأن منطقيا، الذي يتبع إذا قمنا 1486 01:00:07,900 --> 01:00:09,230 لدينا مجموعة استنفدت. 1487 01:00:09,230 --> 01:00:12,400 >> ندرك حتى هذه ليست تماما كيف نكتب أكبر من أو 1488 01:00:12,400 --> 01:00:15,000 يساوي في فئة الرياضيات. 1489 01:00:15,000 --> 01:00:15,160 أليس كذلك؟ 1490 01:00:15,160 --> 01:00:17,430 عادة ما ترسمه من هذا القبيل، مع خط تحتها. 1491 01:00:17,430 --> 01:00:19,250 ولكن لا يوجد مفتاح على لوحة المفاتيح مثل بلدي. 1492 01:00:19,250 --> 01:00:22,390 وبالتالي فإن الرمز في التعبير عن C أكبر من أو 1493 01:00:22,390 --> 01:00:25,770 هو يساوي حرفين، ورمز لأقل من 1494 01:00:25,770 --> 01:00:29,100 أو يساوي هو حرفين أيضا. 1495 01:00:29,100 --> 01:00:29,330 حسنا. 1496 01:00:29,330 --> 01:00:31,910 حتى إذا قمت بتشغيل هذا البرنامج، يمكنك تخمين ما ربما انها 1497 01:00:31,910 --> 01:00:32,650 تنوي القيام به. 1498 01:00:32,650 --> 01:00:36,180 إذا ذهبت إلى الأمام وجعل nonswitch، أدخل. 1499 01:00:36,180 --> 01:00:38,130 ثم قم بتشغيل nonswitch. 1500 01:00:38,130 --> 01:00:39,530 أعطني رقما بين 1 و 10. 1501 01:00:39,530 --> 01:00:40,870 أنا ذاهب لاعطائها 11. 1502 01:00:40,870 --> 01:00:42,280 وقد اخترت عددا غير صالحة. 1503 01:00:42,280 --> 01:00:44,090 اسمحوا لي أن أحاول الرقم 3. 1504 01:00:44,090 --> 01:00:45,990 وقد اخترت عدد قليل. 1505 01:00:45,990 --> 01:00:48,360 ذلك اضحة إلى حد ما هناك. 1506 01:00:48,360 --> 01:00:52,230 >> ماذا لو كنت ترغب في تغيير سلوك هذا البرنامج و 1507 01:00:52,230 --> 01:00:54,250 القيام بشيء مختلف قليلا بدلا من ذلك؟ 1508 01:00:54,250 --> 01:00:57,620 اسمحوا لي أن تمضي قدما وأقول هذا. 1509 01:00:57,620 --> 01:00:59,480 اسمحوا لي أن تخلص من كل هذا. 1510 01:00:59,480 --> 01:01:03,780 واسمحوا لي أن أقول إذا (ن == 42). 1511 01:01:03,780 --> 01:01:08,730 ثم انا ذاهب الى المضي قدما ويقول الطباعة "التقطت يمكنك 1512 01:01:08,730 --> 01:01:16,340 الجواب الصحيح. "آخر ونحن ذاهبون الى المضي قدما ويقول: 1513 01:01:16,340 --> 01:01:18,460 printf ("التقطت لك في 1514 01:01:18,460 --> 01:01:21,170 إجابة خاطئة ")؛ حسنا. 1515 01:01:21,170 --> 01:01:22,040 لمجرد. 1516 01:01:22,040 --> 01:01:23,890 >> الآن، بعض النقاط يمكننا أن نجعل هنا. 1517 01:01:23,890 --> 01:01:26,570 واحدة، لم أكن اكتب الرمز الذي كنت اعتقد هو 1518 01:01:26,570 --> 01:01:27,390 معقولة جدا. 1519 01:01:27,390 --> 01:01:30,110 عندما كنت تريد أن تحقق المساواة وتبين لك لا تستخدم 1520 01:01:30,110 --> 01:01:30,910 علامة المساواة. 1521 01:01:30,910 --> 01:01:34,000 بدلا من ذلك يمكنك استخدام علامة المساواة على قدم المساواة. 1522 01:01:34,000 --> 01:01:36,440 وربما يكون السبب في ذلك، حدسي فقط؟ 1523 01:01:36,440 --> 01:01:37,030 نعم. 1524 01:01:37,030 --> 01:01:39,330 AUDIENCE: [غير مسموع] 1525 01:01:39,330 --> 01:01:39,615 DAVID J. مالان: تصحيح. 1526 01:01:39,615 --> 01:01:41,630 ويستخدم بالفعل علامة المساواة للتعيين. 1527 01:01:41,630 --> 01:01:43,020 لم لا تعتقد حقا شخص من خلال هذا. 1528 01:01:43,020 --> 01:01:45,820 وحتى الآن، عندما يتعلق الأمر اختبار المساواة، علينا أن 1529 01:01:45,820 --> 01:01:48,850 تكون أكثر وضوحا، ويقول يساوي يساوي. 1530 01:01:48,850 --> 01:01:52,110 وهناك خطأ شائع جدا هو أن تفعل هذا. 1531 01:01:52,110 --> 01:01:54,800 ، وإذا كان في ساعات العمل أو في وقت ما الاسبوع المقبل أو في 1532 01:01:54,800 --> 01:01:58,340 الاسبوعين المقبلين تفعل شيئا من هذا القبيل ومن ثم 1533 01:01:58,340 --> 01:02:00,920 النضال معها لمدة 10، 20 دقيقة في محاولة لمعرفة 1534 01:02:00,920 --> 01:02:03,330 ما هو علة لعنة، ندرك أن كنت واحدا من هؤلاء 1535 01:02:03,330 --> 01:02:04,470 الناس الذين جعلوا هذا خطأ. 1536 01:02:04,470 --> 01:02:06,030 لذلك، سوبر سهلة لجعل. 1537 01:02:06,030 --> 01:02:08,240 ولكن الهدف الآن هو درء هذا الخطأ. 1538 01:02:08,240 --> 01:02:11,840 وهذا يمكن تقييم، لأن ما هذا القول حقا؟ 1539 01:02:11,840 --> 01:02:15,010 إذا كانت n يحصل 42. 1540 01:02:15,010 --> 01:02:18,250 وبالتالي فإن استخدام الفعل الناس، لفظيا، للتعبير عن 1541 01:02:18,250 --> 01:02:21,800 فكرة الاحالة "يحصل". إذا كان الأمر كذلك ن يحصل 42. 1542 01:02:21,800 --> 01:02:24,060 وهذا يعني تعيين 42 إلى ن. 1543 01:02:24,060 --> 01:02:26,250 الآن لدي التعبير المنطقية بين قوسين، 1544 01:02:26,250 --> 01:02:30,230 داخل هذا الشرط، وقيمة وهو 42. 1545 01:02:30,230 --> 01:02:30,390 أليس كذلك؟ 1546 01:02:30,390 --> 01:02:32,690 لأنه إذا كنت تقييمها من الداخل الى الخارج، ومجموع 1547 01:02:32,690 --> 01:02:34,100 الجواب، الآن، هو 42. 1548 01:02:34,100 --> 01:02:37,360 >> إذا كان الأمر كذلك طلبت منك هذا السؤال: "إذا (42)،" ما هو 1549 01:02:37,360 --> 01:02:38,410 هذا القول حقا؟ 1550 01:02:38,410 --> 01:02:40,990 حسنا، يمكن أن تكون التعبيرات المنطقية فقط صحيحة أو خاطئة. 1551 01:02:40,990 --> 01:02:42,010 1 أو 0. 1552 01:02:42,010 --> 01:02:43,010 أو إيقاف تشغيله. 1553 01:02:43,010 --> 01:02:45,240 لذلك نحن يبدو أن لديها حالة الزاوية هنا، حيث كل من 1554 01:02:45,240 --> 01:02:50,060 فجأة، أنا أقول "إذا (42)". ليست قيمة منطقية. 1555 01:02:50,060 --> 01:02:54,500 فما أجهزة الكمبيوتر القيام به، رغم ذلك، هو أنه يعادل أساسا 1556 01:02:54,500 --> 01:02:58,620 يتم تفسير أي شيء غير 0 ليكون صحيحا. 1557 01:02:58,620 --> 01:02:59,340 1. 1558 01:02:59,340 --> 01:02:59,690 على. 1559 01:02:59,690 --> 01:03:01,510 انهم جميعا ما يعادل وظيفيا. 1560 01:03:01,510 --> 01:03:05,070 فقط القيمة 0، أو الكلمات الرئيسية كاذبة، لأننا سنقوم 1561 01:03:05,070 --> 01:03:07,860 انظر في نهاية المطاف، هو في الواقع زائفة. 1562 01:03:07,860 --> 01:03:15,040 حتى "لو (42)" سيكون في الواقع الحقيقي، لأنه غير الصفر. 1563 01:03:15,040 --> 01:03:18,620 بحيث تكون أكثر دقة هنا، قيمة منطقية في الحقيقة ليست هكذا 1564 01:03:18,620 --> 01:03:20,680 صحيح كثيرا أو كاذبة، ولكن لهذا 1565 01:03:20,680 --> 01:03:24,650 الحالة، إذا هي 0 أو غير صفرية. 1566 01:03:24,650 --> 01:03:26,330 كاذبة كاذبة ذلك أم لا. 1567 01:03:26,330 --> 01:03:28,640 والذي يسمح لنا ليشمل جميع المزيد 1568 01:03:28,640 --> 01:03:30,980 الاحتمالات في التعبير بين قوسين. 1569 01:03:30,980 --> 01:03:33,840 لذلك نحن بحاجة إلى ذلك، بحرص شديد، أقول هذا - 1570 01:03:33,840 --> 01:03:35,620 إذا (ن == 42). 1571 01:03:35,620 --> 01:03:39,100 لأنه ببساطة نحن بحاجة إلى تحديد اختبار المساواة، 1572 01:03:39,100 --> 01:03:40,930 لا احالة قيمة. 1573 01:03:40,930 --> 01:03:42,830 >> ماذا الجدير بالذكر هنا؟ 1574 01:03:42,830 --> 01:03:46,030 هذه الأقواس المتعرجة هي في الواقع ليست ضرورية. 1575 01:03:46,030 --> 01:03:48,650 لقد تم القيام بها لمجرد أن يكون أحمق من الصعب إرضاءه هنا. 1576 01:03:48,650 --> 01:03:51,350 ولكن عندما يكون لديك شرط أن لديه سطر واحد فقط من 1577 01:03:51,350 --> 01:03:55,100 رمز، للسهولة، المبرمجين لا تحتاج إلى استخدام 1578 01:03:55,100 --> 01:03:56,030 الأقواس المتعرجة. 1579 01:03:56,030 --> 01:03:59,370 يكفي لوضع مسافة بادئة للتو، لأسباب جمالية، و 1580 01:03:59,370 --> 01:04:01,050 ثم كتابة سطر من التعليمات البرمجية الخاصة بك. 1581 01:04:01,050 --> 01:04:04,160 فقط عندما كنت تريد أن تكتب سطرين من التعليمات البرمجية - ل 1582 01:04:04,160 --> 01:04:08,230 المثال، عدا ذلك printf ("وداعا!"). إذا كنت تريد أن تفعل 1583 01:04:08,230 --> 01:04:09,540 أن ما تم كسر هذا. 1584 01:04:09,540 --> 01:04:11,700 يمكنك البادئة كل ما تريد، ولكن الحقيقة أن لديك 1585 01:04:11,700 --> 01:04:14,600 كتابة سطرين من دون استخدام رمز الأقواس المتعرجة 1586 01:04:14,600 --> 01:04:16,860 يعني أن هذا البرنامج لن يعمل بشكل صحيح أو قد 1587 01:04:16,860 --> 01:04:18,530 لا ترجمة حتى بشكل صحيح. 1588 01:04:18,530 --> 01:04:21,040 حتى الآن، أن نكون صادقين، وأعتقد أن أفضل هو مجرد عادة 1589 01:04:21,040 --> 01:04:24,460 استخدام الأقواس المتعرجة، وستجد أنها تجعل 1590 01:04:24,460 --> 01:04:25,750 سوبر واضحة ما يجري. 1591 01:04:25,750 --> 01:04:29,410 >> أيضا، بوصف ذلك جانبا - وخاصة إذا كنت من بين أولئك الذين يستخدمون 1592 01:04:29,410 --> 01:04:31,700 الكتب الموصى بها أو الموارد على الإنترنت - 1593 01:04:31,700 --> 01:04:33,480 ندرك أن هناك هذه الفكرة في أسلوب 1594 01:04:33,480 --> 01:04:34,130 البرمجة. 1595 01:04:34,130 --> 01:04:37,280 وبعض الناس يفضلون في الواقع لوضع متعرج 1596 01:04:37,280 --> 01:04:38,720 أكثر من هنا على الخط. 1597 01:04:38,720 --> 01:04:41,520 بعض الناس يفضلون أن تفعل أشياء سخيفة، 1598 01:04:41,520 --> 01:04:43,830 مثل وضعها هنا. 1599 01:04:43,830 --> 01:04:45,140 ليس هناك إجابة خاطئة عندما يتعلق الأمر 1600 01:04:45,140 --> 01:04:46,710 النمط، ولكن هذا خطأ. 1601 01:04:46,710 --> 01:04:47,700 ولكن بعض الناس يفعل ذلك. 1602 01:04:47,700 --> 01:04:49,160 [ضحك] 1603 01:04:49,160 --> 01:04:51,760 DAVID J. مالان: وهكذا وأذكر هذا الآن، وذلك ببساطة لأنه كما 1604 01:04:51,760 --> 01:04:54,400 أنت تقرأ على الأشياء في الكتب أو عبر الإنترنت، وأنت تسير في الحصول على 1605 01:04:54,400 --> 01:04:55,990 رسائل مختلفة من المعلمين ومختلفة 1606 01:04:55,990 --> 01:04:56,730 مؤلفين مختلفين. 1607 01:04:56,730 --> 01:04:58,640 وندرك ذلك تماما، وظيفيا، وانهم 1608 01:04:58,640 --> 01:05:00,740 تعادل عموما، ولكن أن تكون متسقة. 1609 01:05:00,740 --> 01:05:02,850 حتى في هذه الحالة، سنقوم على توحيد مجعد 1610 01:05:02,850 --> 01:05:04,650 الأقواس يصطفون هنا على اليمين. 1611 01:05:04,650 --> 01:05:04,910 >> حسنا. 1612 01:05:04,910 --> 01:05:07,040 لذلك دعونا الآن المضي قدما وتشغيل هذا، ونرى ما سيحدث 1613 01:05:07,040 --> 01:05:07,780 مع هذا البرنامج. 1614 01:05:07,780 --> 01:05:09,970 جعل nonswitch. 1615 01:05:09,970 --> 01:05:11,040 ثم تشغيل nonswitch. 1616 01:05:11,040 --> 01:05:13,900 أعطني عدد صحيح بين 0 و - حتى هذا لا ينطبق 1617 01:05:13,900 --> 01:05:16,480 بعد الآن، ولكن انا ذاهب فقط أن أقول بشكل تعسفي 42. 1618 01:05:16,480 --> 01:05:17,850 والتقطت الجواب الصحيح. 1619 01:05:17,850 --> 01:05:20,430 حسنا الآن، دعونا نلقي هذا الواقع في اتجاه مختلف. 1620 01:05:20,430 --> 01:05:22,070 اتضح أن هناك بعض بناء الجملة الأخرى التي 1621 01:05:22,070 --> 01:05:23,480 يمكنك استخدامها في البرنامج. 1622 01:05:23,480 --> 01:05:27,310 وهنا قطعة جديدة من بناء جملة غير وظيفيا نفسه، 1623 01:05:27,310 --> 01:05:30,680 ولكن فقط يقدم وسيلة أخرى للتعبير عن أنفسنا. 1624 01:05:30,680 --> 01:05:32,830 لذلك هذا هو ما يسمى "بيان التبديل." وعلى 1625 01:05:32,830 --> 01:05:34,820 بيان التبديل تعمل على النحو التالي. 1626 01:05:34,820 --> 01:05:37,580 فإنه يأخذ، بين قوسين، وهو القيمة التي تريد 1627 01:05:37,580 --> 01:05:38,860 "التبديل" على. 1628 01:05:38,860 --> 01:05:41,490 تريد تتصرف بشكل مختلف يعتمد على قيمتها. 1629 01:05:41,490 --> 01:05:44,360 لذلك هذا يعني التبديل على قيمة n. 1630 01:05:44,360 --> 01:05:45,480 وماذا يعني هذا؟ 1631 01:05:45,480 --> 01:05:50,530 حسنا، إذا كان n هو 1 أو 2 أو 3، والمضي قدما وطباعة "أنت 1632 01:05:50,530 --> 01:05:52,680 اختار عدد كبير "وكسر ذلك الحين. 1633 01:05:52,680 --> 01:05:55,720 سبب انقطاع هو أن الطريقة C يعمل كما هو 1634 01:05:55,720 --> 01:05:59,790 في أقرب وقت ما عثرت على حالة يطابق، ويبدأ تنفيذ 1635 01:05:59,790 --> 01:06:01,610 كافة التعليمات البرمجية تحته. 1636 01:06:01,610 --> 01:06:04,580 إذا كان الأمر كذلك لدي سطر واحد من التعليمات البرمجية، كما أفعل أنا هنا على الخط 27، أنه 1637 01:06:04,580 --> 01:06:05,360 يعدم. 1638 01:06:05,360 --> 01:06:07,520 إذا أضيف خط آخر هنا، ويحصل على تنفيذه. 1639 01:06:07,520 --> 01:06:09,350 هنا خط آخر، ويحصل على تنفيذه. 1640 01:06:09,350 --> 01:06:12,460 يتوقف البرنامج عن تنفيذ ما هو إلا أقل من 1641 01:06:12,460 --> 01:06:14,680 ينطبق بيان الحالة عندما كنت صراحة 1642 01:06:14,680 --> 01:06:17,210 ويقول "كسر". ذلك خطأ. 1643 01:06:17,210 --> 01:06:19,220 الحق، في هذه الحالة، نتيجة لذلك. 1644 01:06:19,220 --> 01:06:22,130 4 حالة أو 5 أو 6، وبالمثل، يجري 1645 01:06:22,130 --> 01:06:23,160 لطباعة رسالة. 1646 01:06:23,160 --> 01:06:24,410 في هذه الحالة، عدد المتوسطة. 1647 01:06:24,410 --> 01:06:25,200 كسر. 1648 01:06:25,200 --> 01:06:28,160 حالة 7، 8، 9، 10، انه سيكون لطباعة "أنت التقطت كبيرة 1649 01:06:28,160 --> 01:06:28,950 عدد. "فاصل. 1650 01:06:28,950 --> 01:06:31,290 وبعد ذلك هناك حرفيا كلمة رئيسية بعنوان "الافتراضية" 1651 01:06:31,290 --> 01:06:34,090 وهذا على نحو فعال مثل "آخر" بناء. 1652 01:06:34,090 --> 01:06:36,010 بناء جملة ذلك جديد، ولكن فكريا، 1653 01:06:36,010 --> 01:06:37,060 لا شيء على الإطلاق هنا جديد. 1654 01:06:37,060 --> 01:06:38,280 انها مجرد مثل الصفر. 1655 01:06:38,280 --> 01:06:41,040 إذا، الا اذا، الا اذا، نوع من كتلة. 1656 01:06:41,040 --> 01:06:44,560 >> ذلك أن النسخة تحولت من هذا البرنامج. 1657 01:06:44,560 --> 01:06:46,280 ولكن لاحظت أن فعلنا ذلك مع أرقام هنا. 1658 01:06:46,280 --> 01:06:49,040 اسمحوا لي أن فتح نسخة ثانية، فقط لاظهار 1659 01:06:49,040 --> 01:06:50,670 أكثر من ذلك بقليل شيء ملموس. 1660 01:06:50,670 --> 01:06:52,840 حتى هنا لدينا درجات بدلا من ذلك. 1661 01:06:52,840 --> 01:06:55,540 تبين أن تتمكن من استخدام مفاتيح ليس فقط على أعداد صحيحة، ولكن على 1662 01:06:55,540 --> 01:06:56,340 حرفا. 1663 01:06:56,340 --> 01:06:58,930 ليس في كل أنواع البيانات، ولكن على الأقل حرفا. 1664 01:06:58,930 --> 01:07:02,670 حتى هنا، يمكن أن نفعل شيء من هذا القبيل إذا كانت قيمة C التي 1665 01:07:02,670 --> 01:07:06,230 المستعمل في طباعة، في السطر 19، وذلك باستخدام وظيفة GetChar، 1666 01:07:06,230 --> 01:07:09,410 هي عاصمة A أو صغيرة ل، دعونا تفسر على أنها الصف، 1667 01:07:09,410 --> 01:07:11,340 ويقولون انهم على درجة التقطت ممتازة. 1668 01:07:11,340 --> 01:07:14,690 ونزولا على طول بيان التبديل، لدينا أخرى 1669 01:07:14,690 --> 01:07:17,950 حالات ليالي "B" و "C" ليالي، وهكذا دواليك. 1670 01:07:17,950 --> 01:07:19,780 ولكن دعونا الآن من أصل واحد على مدار الشيء الآخر. 1671 01:07:19,780 --> 01:07:21,130 ومرة أخرى، من خلال نوع من الطيران 1672 01:07:21,130 --> 01:07:22,200 بعض من هذه الأمثلة. 1673 01:07:22,200 --> 01:07:26,990 ولكن هذا حقا حتى نتمكن من تطبيقها، والآن - 1674 01:07:26,990 --> 01:07:28,880 أو حقا، ترجمة منهم فقط الآن - 1675 01:07:28,880 --> 01:07:32,220 لC. 1676 01:07:32,220 --> 01:07:33,310 >> لذلك اسمحوا لي نمضي قدما ونفعل ذلك. 1677 01:07:33,310 --> 01:07:34,830 أنا ذاهب لفتح ملف جديد. 1678 01:07:34,830 --> 01:07:39,430 وانا ذاهب الى القيام تشمل . 1679 01:07:39,430 --> 01:07:42,770 ثم انا ذاهب الى القيام الباحث الرئيسي (الفراغ). 1680 01:07:42,770 --> 01:07:46,390 اسمحوا لي أن حفظ هذا الملف كملف loop.c. 1681 01:07:46,390 --> 01:07:48,280 كما مجرد مثال. 1682 01:07:48,280 --> 01:07:49,910 وانا ذاهب الى المضي قدما والقيام بما يلي. 1683 01:07:49,910 --> 01:07:54,180 أريد أن أكتب برنامج شاقة للغاية. 1684 01:07:54,180 --> 01:07:56,170 حتى 10. 1685 01:07:56,170 --> 01:07:58,862 دعونا نفعل هذا. 1686 01:07:58,862 --> 01:07:59,320 9. 1687 01:07:59,320 --> 01:08:00,360 حسنا. 1688 01:08:00,360 --> 01:08:02,120 بمجرد البدء في القيام بذلك في البرمجة، وكنت 1689 01:08:02,120 --> 01:08:03,490 ربما يفعل شيئا خاطئا. 1690 01:08:03,490 --> 01:08:04,950 ولكن سنبدأ هناك على أي حال. 1691 01:08:04,950 --> 01:08:05,430 عفوا. 1692 01:08:05,430 --> 01:08:06,950 ما هو خطأ في الواقع. 1693 01:08:06,950 --> 01:08:08,230 7. 1694 01:08:08,230 --> 01:08:09,440 6. 1695 01:08:09,440 --> 01:08:10,750 5. 1696 01:08:10,750 --> 01:08:11,200 4. 1697 01:08:11,200 --> 01:08:12,450 لا شيء سيحدث عندما نصل إلى 0. 1698 01:08:12,450 --> 01:08:13,290 3. 1699 01:08:13,290 --> 01:08:14,590 2. 1700 01:08:14,590 --> 01:08:15,630 1. 1701 01:08:15,630 --> 01:08:16,020 حسنا. 1702 01:08:16,020 --> 01:08:17,560 0. 1703 01:08:17,560 --> 01:08:18,689 حذف. 1704 01:08:18,689 --> 01:08:19,029 >> حسنا. 1705 01:08:19,029 --> 01:08:20,029 العودة حتى 0. 1706 01:08:20,029 --> 01:08:22,010 ولذلك فإن هذا البرنامج سيكون من الواضح أن تفعل ما جدا 1707 01:08:22,010 --> 01:08:23,310 يقول مضجر انها تنوي القيام به. 1708 01:08:23,310 --> 01:08:24,060 انه سيكون لطباعة كل تلك 1709 01:08:24,060 --> 01:08:25,290 القيم، من الأعلى إلى الأسفل. 1710 01:08:25,290 --> 01:08:27,140 لذلك اسمحوا لي أن تفعل جعل حلقة. 1711 01:08:27,140 --> 01:08:28,640 وبعد ذلك - يصيح. 1712 01:08:28,640 --> 01:08:29,700 جعل حلقة. 1713 01:08:29,700 --> 01:08:31,479 كنت في الدليل خاطئ. 1714 01:08:31,479 --> 01:08:33,300 واسمحوا لي الآن تشغيل الحلقة. 1715 01:08:33,300 --> 01:08:34,140 دخول. 1716 01:08:34,140 --> 01:08:34,620 Woohoo. 1717 01:08:34,620 --> 01:08:35,270 لطيفة جدا. 1718 01:08:35,270 --> 01:08:36,279 لطيفة، برنامج طويل. 1719 01:08:36,279 --> 01:08:38,109 >> كل الحق، ولكن الآن دعونا نفعل ذلك بشكل أفضل. 1720 01:08:38,109 --> 01:08:40,810 مثلما هو الحال في سكراتش، عندما بدأت باستخدام حلقات 1721 01:08:40,810 --> 01:08:43,149 بناء، بدلا من مجرد نسخ ولصق كل من 1722 01:08:43,149 --> 01:08:45,580 قطع اللغز، اسمحوا لي أن أعرض هذا الشيء. 1723 01:08:45,580 --> 01:08:48,609 حتى في C، وهناك بنيات حلقات مختلفة، 1724 01:08:48,609 --> 01:08:50,540 واحدة من التي تبدو مثل هذا. 1725 01:08:50,540 --> 01:08:55,069 A "ل" حلقة لديه ثلاثة أشياء، فصل من قبل اثنين من منقوطة. 1726 01:08:55,069 --> 01:08:57,770 وبعد ذلك، داخل الجسم من الحلقة، إذا جاز التعبير - لل 1727 01:08:57,770 --> 01:08:59,390 داخل الاشياء من الأقواس المتعرجة - 1728 01:08:59,390 --> 01:09:01,010 يمكننا أن نفعل شيئا مرارا وتكرارا. 1729 01:09:01,010 --> 01:09:02,310 ذلك ما قلته هنا على الشاشة، وهذا هو 1730 01:09:02,310 --> 01:09:03,300 حرفيا مجرد تعليق. 1731 01:09:03,300 --> 01:09:05,380 و/ / يعني هنا يأتي تعليقا. 1732 01:09:05,380 --> 01:09:06,180 هذه ليست تعليمات برمجية. 1733 01:09:06,180 --> 01:09:08,890 هذا هو وصف مجرد الإنجليزية، بالنسبة لي، فإن الإنسان. 1734 01:09:08,890 --> 01:09:11,300 >> حتى التهيئة والشروط والتحديثات. 1735 01:09:11,300 --> 01:09:12,770 حسنا، دعونا نرى كيف يعمل هذا. 1736 01:09:12,770 --> 01:09:15,520 هذا يتيح لي الفرصة لإعادة كتابة هذا البرنامج على النحو التالي. 1737 01:09:15,520 --> 01:09:16,399 ل- 1738 01:09:16,399 --> 01:09:18,029 حتى هنا يأتي حلقة بلدي - 1739 01:09:18,029 --> 01:09:19,439 كثافة العمليات ط - 1740 01:09:19,439 --> 01:09:21,330 هنا يأتي متغير يسمى "أنا" - 1741 01:09:21,330 --> 01:09:23,140 يحصل تهيئة إلى 10. 1742 01:09:23,140 --> 01:09:25,260 حتى لا يكون هناك تهيئة بلدي. 1743 01:09:25,260 --> 01:09:29,450 أريد أن أفعل هذه الحلقة ما دام "أنا" هي أكبر من أو 1744 01:09:29,450 --> 01:09:30,899 يساوي 0. 1745 01:09:30,899 --> 01:09:32,880 وعلى كل التكرار من هذه الحلقة، أريد 1746 01:09:32,880 --> 01:09:34,979 للقيام ط -. 1747 01:09:34,979 --> 01:09:36,310 حتى رأينا + + يوم الاثنين. 1748 01:09:36,310 --> 01:09:37,660 - هو عكس ذلك. 1749 01:09:37,660 --> 01:09:39,410 من التناقصات القيمة بمقدار 1. 1750 01:09:39,410 --> 01:09:43,319 داخل هذه الحلقة، أريد أن أفعل شيئا في الواقع. 1751 01:09:43,319 --> 01:09:46,390 لذلك أنا ذاهب لأقول شيئا مثل printf. 1752 01:09:46,390 --> 01:09:48,939 أنا لا أريد أن أقول 10 الآن، لأن هذا هو الواضح فقط 1753 01:09:48,939 --> 01:09:50,000 الذهاب لطباعة نفس القيمة. 1754 01:09:50,000 --> 01:09:52,246 ماذا أريد لطباعة بدلا من ذلك، ربما؟ 1755 01:09:52,246 --> 01:09:52,590 نعم. 1756 01:09:52,590 --> 01:09:55,270 حتى "أنا". د٪ حتى، ط. 1757 01:09:55,270 --> 01:09:57,340 >> لذلك أنا ذاهب لسرقة واحدة من تلك الأفكار من قبل - 1758 01:09:57,340 --> 01:09:59,640 هذا عوضا عن رموز شكل - 1759 01:09:59,640 --> 01:10:01,620 ثم إلى هنا، في الأسفل، سوف أعود 0، فقط 1760 01:10:01,620 --> 01:10:02,710 لحسن التدبير. 1761 01:10:02,710 --> 01:10:04,740 ولكن الآن، ولدي برنامج أكثر اقتضابا. 1762 01:10:04,740 --> 01:10:07,490 انها فقط بضعة أسطر، وخطوط لا نحو 10 أو 11. 1763 01:10:07,490 --> 01:10:09,440 اسمحوا لي أن انتقل إلى موجه إلى أسفل هنا. 1764 01:10:09,440 --> 01:10:10,630 طبعة جديدة الحلقة. 1765 01:10:10,630 --> 01:10:12,140 أعد تشغيل الحلقة. 1766 01:10:12,140 --> 01:10:13,570 ويبدو أن تكون هي نفسها. 1767 01:10:13,570 --> 01:10:15,550 الآن، البرنامج لا أكثر إثارة للاهتمام. 1768 01:10:15,550 --> 01:10:17,180 ولكن الآن لا أستطيع كتابة شيء من هذا القبيل. 1769 01:10:17,180 --> 01:10:18,970 يمكنني تغيير هذا إلى 100. 1770 01:10:18,970 --> 01:10:21,400 لا أستطيع إعادة ترجمة ثم برنامجي. 1771 01:10:21,400 --> 01:10:23,360 وبعد ذلك يمكنني أن أعد تشغيل برنامجي. 1772 01:10:23,360 --> 01:10:26,390 والآن يذهب بسرعة فائقة على أجهزة الكمبيوتر اليوم. 1773 01:10:26,390 --> 01:10:27,820 ولكن هناك لدي - 1774 01:10:27,820 --> 01:10:29,620 وفعلا، عازلة بلدي لا scrollback 1775 01:10:29,620 --> 01:10:30,890 حتى الذهاب إلى هذا الحد. 1776 01:10:30,890 --> 01:10:31,680 هناك نذهب. 1777 01:10:31,680 --> 01:10:34,090 هناك لذلك لدينا كل 100. 1778 01:10:34,090 --> 01:10:35,880 ولكن من السهل أن يخطئ هنا. 1779 01:10:35,880 --> 01:10:37,920 ما يحدث ليكون السلوك المتوقع إذا كنت 1780 01:10:37,920 --> 01:10:41,150 القيام بطريق الخطأ ذلك؟ 1781 01:10:41,150 --> 01:10:42,550 حتى بدا الامر وكأننا لا نهائية. 1782 01:10:42,550 --> 01:10:44,670 لذلك دعونا نرى ما اذا كان الكمبيوتر يتصرف. 1783 01:10:44,670 --> 01:10:47,020 >> لذلك اسمحوا لي المضي قدما وجعل حلقة. 1784 01:10:47,020 --> 01:10:48,355 واسمحوا لي أن تشغيل الحلقة. 1785 01:10:53,590 --> 01:10:55,210 لذلك دعونا نعود إلى ذلك في لحظة واحدة. 1786 01:10:55,210 --> 01:10:56,720 سنقوم ترك هذا المدى. 1787 01:10:56,720 --> 01:10:59,520 لأن ما ينبغي أن نعول حتى، الحد الأدنى؟ 1788 01:10:59,520 --> 01:11:02,200 ربما لا يقل عن 2 مليار دولار، اذا كان لدينا أن العديد من معاهدات الاستثمار الثنائية، و 1789 01:11:02,200 --> 01:11:03,660 نستخدمه القيم الإيجابية. 1790 01:11:03,660 --> 01:11:04,890 لذلك دعونا القفز إلى هنا. 1791 01:11:04,890 --> 01:11:07,810 وإلى جانب هذه الأنواع من الحلقات، لدينا ما يسمى في حين 1792 01:11:07,810 --> 01:11:09,430 الحلقات. لذلك، تماما كما في سكراتش، كان عليك للأبد 1793 01:11:09,430 --> 01:11:11,240 كان كتل، كتل وكنت كرر. 1794 01:11:11,240 --> 01:11:13,270 وبالمثل، في C، عليك بطرق أخرى 1795 01:11:13,270 --> 01:11:14,260 للتعبير عن نفسك. 1796 01:11:14,260 --> 01:11:17,110 بحيث يكون لديك هذه الفكرة من حلقة في حين تسمح لك 1797 01:11:17,110 --> 01:11:18,860 التعبير عن نفسك بشكل مختلف قليلا. 1798 01:11:18,860 --> 01:11:21,490 ثم لديك ما يسمى حلقة افعل حين، 1799 01:11:21,490 --> 01:11:24,200 التي تعمل بشكل مختلف قليلا أيضا. 1800 01:11:24,200 --> 01:11:25,320 وسنقوم بصرف النظر ندف هذه مع مرور الوقت. 1801 01:11:25,320 --> 01:11:28,630 >> ولكن دعونا نلقي نظرة على هذا واحد آخر هنا. 1802 01:11:28,630 --> 01:11:30,160 إذا دخلنا - 1803 01:11:30,160 --> 01:11:31,466 يزال قيد التشغيل. 1804 01:11:31,466 --> 01:11:32,770 انها لا نهائية جميلة. 1805 01:11:32,770 --> 01:11:36,870 لذلك اسمحوا لي أن انتقل إلى إيجابية، وتبين كيف يمكننا فعلا 1806 01:11:36,870 --> 01:11:39,410 تحكم إدخال المستخدم قليلا على نحو أكثر فعالية. 1807 01:11:39,410 --> 01:11:40,910 انها قصيرة جدا البرنامج. 1808 01:11:40,910 --> 01:11:43,730 وهنا لدينا، في الرئيسية، وكثافة العمليات ن الإعلان. 1809 01:11:43,730 --> 01:11:46,570 حتى تعطي لي متغير يسمى ن. الآن، أقول حرفيا 1810 01:11:46,570 --> 01:11:48,340 "لا." ومن ثم أنا عندي مفتوحة مجعد 1811 01:11:48,340 --> 01:11:49,630 قوس، متعرج إغلاق. 1812 01:11:49,630 --> 01:11:52,000 وتلاحظ ذلك الحين، الحق بعد ذلك، في حين تقول ن 1813 01:11:52,000 --> 01:11:53,790 أقل من 1. 1814 01:11:53,790 --> 01:11:55,300 تلاحظ هذه الخطوط بحيث - 1815 01:11:55,300 --> 01:11:56,740 19 حتي 24 - 1816 01:11:56,740 --> 01:11:59,450 يؤلف جماعيا حلقة افعل الوقت. 1817 01:11:59,450 --> 01:12:01,280 ومرة أخرى، بناء جملة جديدة، ليست فكرة جديدة. 1818 01:12:01,280 --> 01:12:03,740 انها مجرد طريقة أخرى للحلقات، ذو بناء جملة. 1819 01:12:03,740 --> 01:12:04,890 فماذا تفعل هذه؟ 1820 01:12:04,890 --> 01:12:08,000 قم بما يلي في حين أن n هو أقل من 1. 1821 01:12:08,000 --> 01:12:09,080 فماذا أريد القيام به؟ 1822 01:12:09,080 --> 01:12:11,390 أطالب أن تعطيني عدد صحيح موجب. 1823 01:12:11,390 --> 01:12:14,110 ثم أحاول فعلا للحصول على عدد صحيح من المستخدم. 1824 01:12:14,110 --> 01:12:16,740 ولكن من حيث ترتيب العمليات هنا، وذلك لأن 1825 01:12:16,740 --> 01:12:21,850 بينما الشرط هو إلى هنا، أنا ذاهب للتحقق من ثم، هو ن 1826 01:12:21,850 --> 01:12:23,100 أقل من 1؟ 1827 01:12:23,100 --> 01:12:24,600 لنفترض بحيث يمكن للمستخدم - 1828 01:12:24,600 --> 01:12:26,450 بعد أن طالب بهذه الطريقة - 1829 01:12:26,450 --> 01:12:29,190 أنواع في القيمة 0. 1830 01:12:29,190 --> 01:12:34,510 هذا الشرط ستكون صحيحة أو خاطئة؟ 1831 01:12:34,510 --> 01:12:35,820 حسنا، انها في طريقها فعلا ليكون صحيحا. 1832 01:12:35,820 --> 01:12:38,700 لأن n هو 0، و0 أقل من 1. 1833 01:12:38,700 --> 01:12:40,140 فماذا يعني أن؟ 1834 01:12:40,140 --> 01:12:41,160 نفعل ذلك مرة أخرى. 1835 01:12:41,160 --> 01:12:41,990 نفعل ذلك مرة أخرى. 1836 01:12:41,990 --> 01:12:42,640 نفعل ذلك مرة أخرى. 1837 01:12:42,640 --> 01:12:46,080 مرة واحدة فقط هذا الشرط يقيم إلى FALSE. 1838 01:12:46,080 --> 01:12:47,510 إذا كان نوع I في 42. 1839 01:12:47,510 --> 01:12:49,690 حسنا لا، 42 ليست أقل من 1. 1840 01:12:49,690 --> 01:12:52,320 لذلك يتم تنفيذ هذه الحلقة. 1841 01:12:52,320 --> 01:12:54,650 وحتى في تلك المرحلة، سيقوم البرنامج يقول، شكرا ل 1842 01:12:54,650 --> 01:12:57,530 ال 42، في هذه الحالة. 1843 01:12:57,530 --> 01:13:00,320 والآن بعد أن لديك هذه الطريقة في التعبير عن نفسك - 1844 01:13:00,320 --> 01:13:02,360 لا ينبغي لنا أن ننتظر هذا حتى النهاية. 1845 01:13:02,360 --> 01:13:03,620 انها سوف يستغرق بعض الوقت. 1846 01:13:03,620 --> 01:13:04,990 أن تستمر في المرة القادمة، ربما. 1847 01:13:04,990 --> 01:13:08,050 >> ولكن الآن، لديك القدرة على أمل لفهم 1848 01:13:08,050 --> 01:13:09,060 قليلا من الفكاهة المهوس. 1849 01:13:09,060 --> 01:13:11,560 الاعتذار. 1850 01:13:11,560 --> 01:13:13,620 هذا لا يمثل النكتة في علوم الكمبيوتر 1851 01:13:13,620 --> 01:13:14,870 العالم، لكنه لطيف. 1852 01:13:21,020 --> 01:13:23,890 [ضحك] دعونا نهاية على تلك المذكرة. 1853 01:13:23,890 --> 01:13:25,750 وسوف نرى لك يوم الاثنين. 1854 01:13:25,750 --> 01:13:31,629 [تصفيق]