1 00:00:00,000 --> 00:00:02,880 >> [عزف الموسيقى] 2 00:00:02,880 --> 00:00:10,580 3 00:00:10,580 --> 00:00:13,500 >> رئيس 1: هذا هو CS50 و هذه هي بداية من أسبوعين. 4 00:00:13,500 --> 00:00:18,400 لذا، دعونا الغوص الحق في شيء هذا هو عربات التي تجرها الدواب، إذا جاز التعبير. 5 00:00:18,400 --> 00:00:24,015 لذلك، هنا هو IDE CS50 ولدي سحب ما يصل في وقت مبكر هذا screen-- لعنة 6 00:00:24,015 --> 00:00:25,070 ذلك. 7 00:00:25,070 --> 00:00:25,760 تنبيه المفسد. 8 00:00:25,760 --> 00:00:26,260 حسنا. 9 00:00:26,260 --> 00:00:29,060 لقد انسحب هذه الشاشة هنا، التي لديها برنامج بسيط جدا. 10 00:00:29,060 --> 00:00:32,659 إذا كان لنا أن انتقل إلى أسفل أكثر هذا هو تعليق فقط، 11 00:00:32,659 --> 00:00:36,730 ولكن هنا في خطوط 13 من خلال 17 لدينا برنامج. 12 00:00:36,730 --> 00:00:40,580 >> انها لصالح نحويا، وهو ما يعني إذا I تجميع، فإنه سيتم ترجمة وتشغيل، 13 00:00:40,580 --> 00:00:41,920 ولكن هذا عربات التي تجرها الدواب. 14 00:00:41,920 --> 00:00:47,330 يدعي هذا البرنامج في التعليقات حتى القمة التي ينبغي أن تطبع 10 النجوم، 15 00:00:47,330 --> 00:00:48,870 ولكن لم يحدث ذلك. 16 00:00:48,870 --> 00:00:53,290 وبناء على تجربتك، أو قريبا لتكون تجربة مع C، 17 00:00:53,290 --> 00:00:56,820 يمكنك تمييز منطقيا لماذا هذا هو، في الواقع، عربات التي تجرها الدواب؟ 18 00:00:56,820 --> 00:00:57,804 نعم؟ 19 00:00:57,804 --> 00:00:59,220 الحضور: وغني من صفر إلى 10. 20 00:00:59,220 --> 00:01:01,884 هذا 11 تكرارات. 21 00:01:01,884 --> 00:01:02,550 رئيس 1: نعم. 22 00:01:02,550 --> 00:01:06,030 لذلك، فإنه سيكون من الصفر حتى من خلال ويساوي 10، 23 00:01:06,030 --> 00:01:08,140 وهو بطبيعة الحال 11 تكرارات. 24 00:01:08,140 --> 00:01:10,020 لذلك، فإنه سيكون ل الطباعة، في الواقع، 11 النجوم. 25 00:01:10,020 --> 00:01:13,040 لذا، فإن اتفاقية علوم الحاسوب في معظم لغات البرمجة 26 00:01:13,040 --> 00:01:15,270 هو، في الواقع، فقط ل بدء العد من الصفر، 27 00:01:15,270 --> 00:01:18,800 ولكن العد حتى ولكن ليس من خلال القيمة التي يعنون حقا. 28 00:01:18,800 --> 00:01:21,216 >> الآن، وهذا هو الشيء الوحيد الذي يأخذ قليلا تعتاد 29 00:01:21,216 --> 00:01:25,350 وحتى خدش، مصممة كما هو لغير المبرمجين أو غير الكمبيوتر 30 00:01:25,350 --> 00:01:28,070 العلماء وللأطفال إلى حد كبير، تم تصميمه لديك 31 00:01:28,070 --> 00:01:29,570 بدء العد عموما في واحدة. 32 00:01:29,570 --> 00:01:30,277 وهذا شيء طيب. 33 00:01:30,277 --> 00:01:33,110 يمكنك أن تبدأ على الاطلاق العد في واحدة إذا كان هذا هو أكثر راحة. 34 00:01:33,110 --> 00:01:37,210 والعد حتى وإلى 10، ولكن عليك أن تدرك بشكل خاص هذا الأسبوع 35 00:01:37,210 --> 00:01:39,950 وبعد ذلك فقط حتى أشياء كثيرة في البرمجة 36 00:01:39,950 --> 00:01:42,465 نفترض أن 0 هو الأول أرقام التي كنت تعول، 37 00:01:42,465 --> 00:01:45,590 ان كنت تريد الذهاب لتجد أنه من الأسهل فقط للوصول الى هذه العادة من البداية 38 00:01:45,590 --> 00:01:49,490 من الصفر والفرز في حدود القيمة يهمك في الوقت الراهن من 39 00:01:49,490 --> 00:01:49,990 الحصول على الذهاب. 40 00:01:49,990 --> 00:01:50,990 >> ، لدرجة أن حددت ذلك. 41 00:01:50,990 --> 00:01:53,670 غيرنا أقل من أو يساوي فقط أقل من. 42 00:01:53,670 --> 00:01:56,050 دعونا نلقي نظرة على مثال ثان هنا. 43 00:01:56,050 --> 00:01:59,585 >> لذلك، هذا البرنامج يدعي أيضا في ل تعليقات حتى أعلى أنه يجب طباعة 44 00:01:59,585 --> 00:02:02,260 النجوم العشرة، ولكن لم يحدث ذلك. 45 00:02:02,260 --> 00:02:05,540 ما هو الخطأ هنا؟ 46 00:02:05,540 --> 00:02:07,930 >> لذلك، what-- وآسف، دعونا نكون واضحين. 47 00:02:07,930 --> 00:02:08,610 10 النجوم. 48 00:02:08,610 --> 00:02:11,644 واحد في كل سطر، ولكن لم يحدث ذلك. 49 00:02:11,644 --> 00:02:14,810 لذلك، في الواقع، اسمحوا لي أن نمضي قدما وتجميع هذا واحد لأنه أقل قليلا 50 00:02:14,810 --> 00:02:16,900 مسح بناء على هذا الوصف. 51 00:02:16,900 --> 00:02:18,720 اسمحوا لي أن أذهب إلى دليل مصدرنا. 52 00:02:18,720 --> 00:02:25,110 جعل عربات التي تجرها الدواب واحد مائل نقطة، واحد عربات التي تجرها الدواب. 53 00:02:25,110 --> 00:02:28,680 OK، أرى 11 النجوم، التي لا تزال مشكلة، 54 00:02:28,680 --> 00:02:30,090 ولكنهم أيضا كل ما في سطر واحد. 55 00:02:30,090 --> 00:02:31,500 ما هي المشكلة هنا؟ 56 00:02:31,500 --> 00:02:32,339 نعم. 57 00:02:32,339 --> 00:02:33,255 الحضور: (غير مسموع). 58 00:02:33,255 --> 00:02:36,194 59 00:02:36,194 --> 00:02:36,860 رئيس 1: نعم. 60 00:02:36,860 --> 00:02:40,210 لذلك هذا هو دقة أنك قد أذكر لي جعل إشارة وجيزة. 61 00:02:40,210 --> 00:02:42,793 على الرغم من كل شيء يبدو جدا، وانها بادئة طيف، 62 00:02:42,793 --> 00:02:45,850 وذلك نوع من تبدو مثل خدش في هذا الخط 16 و 17، 63 00:02:45,850 --> 00:02:47,600 في الواقع، بادئة بموجب ذلك للحلقة. 64 00:02:47,600 --> 00:02:48,400 هذا غير مادي. 65 00:02:48,400 --> 00:02:50,460 الكمبيوتر لا تعرف أو رؤية المساحة البيضاء. 66 00:02:50,460 --> 00:02:52,910 المساحة البيضاء هو فقط لل لنا البشر، أسلوبيا. 67 00:02:52,910 --> 00:02:57,010 الكمبيوتر لا يعرفون عندما يكون لديك الأقواس المعقوفة، التي من شأنها، في الواقع، 68 00:02:57,010 --> 00:02:58,280 إصلاح هذه المشكلة. 69 00:02:58,280 --> 00:03:02,350 >> لذلك، إذا كنا فعلا ذهبت في و وضع صراحة في هذه الأقواس المجعدة 70 00:03:02,350 --> 00:03:05,220 التي من شأنها أن حل هذه المشكلة من قبل موضحا أن المترجم 71 00:03:05,220 --> 00:03:07,930 أنني فعلا تريد تنفيذ سطرين من التعليمات البرمجية مرة أخرى، 72 00:03:07,930 --> 00:03:09,220 ومرة أخرى، ومرة ​​أخرى. 73 00:03:09,220 --> 00:03:11,680 ولكن ما هو التفسير الأساسي؟ 74 00:03:11,680 --> 00:03:12,180 الصحيح؟ 75 00:03:12,180 --> 00:03:15,260 نحن لسنا بحاجة بدقة مجعد تستعد في كل وقت، 76 00:03:15,260 --> 00:03:18,210 على الرغم من انها على الارجح أفضل الممارسة للوصول الى هذه العادة على أي حال 77 00:03:18,210 --> 00:03:20,878 على الرغم من أنه يضيف اثنين الأحرف إلى التعليمات البرمجية. لماذا؟ 78 00:03:20,878 --> 00:03:22,380 >> الحضور: (غير مسموع)؟ 79 00:03:22,380 --> 00:03:24,630 رئيس 1: نعم ولهذا حل آخر تماما. 80 00:03:24,630 --> 00:03:25,130 الصحيح؟ 81 00:03:25,130 --> 00:03:28,250 خاصة إذا كان للوهلة الأولى كنت لا نقدر حقا ما يجري. 82 00:03:28,250 --> 00:03:31,070 حسنا، بالتأكيد يمكن لنا فقط تفعل شيئين في وقت واحد 83 00:03:31,070 --> 00:03:32,710 ومجرد تجنب المشكلة تماما. 84 00:03:32,710 --> 00:03:36,080 وهذا شيء طيب، ولكن الآن، لأغراض اليوم، ما 85 00:03:36,080 --> 00:03:38,200 هو التفسير لعلة؟ 86 00:03:38,200 --> 00:03:39,810 لماذا كانت كل تلك النجوم على سطر واحد؟ 87 00:03:39,810 --> 00:03:40,806 نعم؟ 88 00:03:40,806 --> 00:03:43,296 >> الحضور: ويبدو أنه إذا لديك سطر واحد من التعليمات البرمجية، 89 00:03:43,296 --> 00:03:46,649 يمكنك أن تفعل ذلك من دون تلك. 90 00:03:46,649 --> 00:03:47,440 رئيس 1: بالضبط. 91 00:03:47,440 --> 00:03:48,750 هذا هو مجرد اتفاقية الإنسان. 92 00:03:48,750 --> 00:03:50,750 الناس يدركون أنه ل مزعج قليلا أو مملة 93 00:03:50,750 --> 00:03:53,470 لدينا لوضع الأقواس المعقوفة جميع من الوقت إذا كان كل ما تريد القيام به 94 00:03:53,470 --> 00:03:55,090 هو تنفيذ سطر واحد من التعليمات البرمجية. 95 00:03:55,090 --> 00:03:57,660 لذلك، قرر بعض البشر الوقت قبل أن هذا شيء طيب. 96 00:03:57,660 --> 00:04:01,180 إذا كنت تريد أن تضع كل حلقة الخاص بك على أن مجرد سطر واحد من هذا القبيل، 97 00:04:01,180 --> 00:04:04,030 هذا شيء طيب مع احد منقوطة في نهاية المطاف. 98 00:04:04,030 --> 00:04:07,210 ولكن يمكنك أن تفعل واحد فقط مثل الخط دون الأقواس المعقوفة. 99 00:04:07,210 --> 00:04:09,900 >> لذلك، عندما دليل أسلوب CS50 كما سيتم توجيهك ل، 100 00:04:09,900 --> 00:04:11,980 سترى أن عموما فمن عادة جيدة 101 00:04:11,980 --> 00:04:14,920 للوصول الى هذا حتى كنت الشرود مريحة جدا 102 00:04:14,920 --> 00:04:17,404 من هذه الأنواع من الاتفاقيات والقيام شيء بنفسك. 103 00:04:17,404 --> 00:04:18,820 طالما كنت الذاتي متسقة. 104 00:04:18,820 --> 00:04:21,540 وسوف نتحدث أكثر عن أسلوب قليلا في وقت لاحق اليوم. 105 00:04:21,540 --> 00:04:23,200 >> لذلك، اسمحوا لي أن تفتح البرنامج الآخر. 106 00:04:23,200 --> 00:04:24,930 بالطبع، يجب علينا إصلاح أن 10 كذلك. 107 00:04:24,930 --> 00:04:32,470 اسمحوا لي أن المضي قدما وكتابة حقيقية برنامج سريع أن سأتصل، 108 00:04:32,470 --> 00:04:38,140 دعنا نقول، دوت حلقة C. لذا، حلقة دوت C. وفي حلقة نقطة C انا ذاهب الى لديها، 109 00:04:38,140 --> 00:04:41,970 تشمل معيار I / O نقطة H كثافة العمليات الفراغ الرئيسي. 110 00:04:41,970 --> 00:04:44,020 والآن دعونا فقط القيام به، في الواقع، حلقة. 111 00:04:44,020 --> 00:04:46,020 لذا، 4 الباحث I يحصل على صفر. 112 00:04:46,020 --> 00:04:48,660 أنا أقل من، مثلا، 50. 113 00:04:48,660 --> 00:04:49,950 I زائد، زائد. 114 00:04:49,950 --> 00:04:53,350 ثم هنا دعونا المضي قدما والقيام طباعة F. 115 00:04:53,350 --> 00:04:56,400 ثم أريد أن طباعة I وسطر جديد منقوطة. 116 00:04:56,400 --> 00:05:00,015 >> وهذا يجب طباعة جميع الأرقام من صفر إلى 50؟ 117 00:05:00,015 --> 00:05:02,900 118 00:05:02,900 --> 00:05:03,680 أومئ رأس قليلة. 119 00:05:03,680 --> 00:05:04,270 وهناك عدد قليل غ. 120 00:05:04,270 --> 00:05:05,339 ما هو الخطأ مسبقا؟ 121 00:05:05,339 --> 00:05:06,630 ما هو الخطأ السهل الذي أدليت به؟ 122 00:05:06,630 --> 00:05:07,170 نعم. 123 00:05:07,170 --> 00:05:08,544 >> الحضور: (غير مسموع). 124 00:05:08,544 --> 00:05:09,210 رئيس 1: نعم. 125 00:05:09,210 --> 00:05:11,520 حتى على الرغم من أنها تبدو مثل هذا ما أنوي، 126 00:05:11,520 --> 00:05:13,920 أذكر أنني أيضا مجرد حرف ASCII. 127 00:05:13,920 --> 00:05:14,955 >> لذلك، إذا قلت، والطباعة "أولا" 128 00:05:14,955 --> 00:05:16,670 انها سوف حرفيا لطباعة I. لذا، إذا أنا 129 00:05:16,670 --> 00:05:20,030 أريد أن المكونات في عنصر نائب قيمة أنا فعلا بحاجة للقيام بذلك 130 00:05:20,030 --> 00:05:22,630 ثم المكونات في قيمة I حيوي. 131 00:05:22,630 --> 00:05:25,200 وإلا لكنت أنا مجرد الذهاب الى الحصول على 50 في I على الشاشة. 132 00:05:25,200 --> 00:05:28,140 >> لذلك، اسمحوا لي أن المضي قدما في جعل هذه الحلقة، تشغيله، 133 00:05:28,140 --> 00:05:30,650 و، في الواقع، لدينا جميع على طول الطريق حتى من خلال 49. 134 00:05:30,650 --> 00:05:34,140 وإذا كنت انتقل الى الوراء في الوقت أرى الرقم صفر في البداية. 135 00:05:34,140 --> 00:05:36,050 >> حسنا، ماذا لو أنا نوع من المسمار؟ 136 00:05:36,050 --> 00:05:37,800 ماذا لو أن أفعل هذا؟ 137 00:05:37,800 --> 00:05:40,120 فقط لأنني لا أفكر. 138 00:05:40,120 --> 00:05:40,970 ما هو هذا البرنامج. 139 00:05:40,970 --> 00:05:43,970 مرة واحدة إعادة تجميعها وتشغيلها، تنوي القيام به منطقيا؟ 140 00:05:43,970 --> 00:05:44,870 >> الحضور: لا شيء. 141 00:05:44,870 --> 00:05:45,661 >> رئيس 1: لا شيء. 142 00:05:45,661 --> 00:05:47,156 لماذا هذا؟ 143 00:05:47,156 --> 00:05:49,124 >> الحضور: تم تصميم أنا لصفر. 144 00:05:49,124 --> 00:05:51,899 لذلك، وحالة غير صحيحة. 145 00:05:51,899 --> 00:05:52,940 رئيس 1: نعم، بالضبط. 146 00:05:52,940 --> 00:05:55,110 كل رمز هو الصحيح، نحويا. 147 00:05:55,110 --> 00:05:57,310 وهذا تجميع، هذا سيتم تشغيل رمز، ولكنها ليست 148 00:05:57,310 --> 00:06:00,110 الذهاب إلى فعل أي شيء مفيد لأنني تهيئة I إلى الصفر. 149 00:06:00,110 --> 00:06:02,240 نحن ثم تحقق، هو أنني أكثر من 50؟ 150 00:06:02,240 --> 00:06:03,810 من الواضح، لا، انها ليست. 151 00:06:03,810 --> 00:06:05,760 وبالتالي فإن حلقة أبدا ينفذ على الإطلاق. 152 00:06:05,760 --> 00:06:09,580 >> ماذا لو لم نفعل شيئا أكثر من ذلك بقليل متهور؟ 153 00:06:09,580 --> 00:06:12,890 لذلك، ما إذا كنا نفعل مثل الباحث I يحصل على صفر. 154 00:06:12,890 --> 00:06:15,640 والآن اسمحوا لي أن استخدم في حين أن حلقة، والذي كان شرط آخر. 155 00:06:15,640 --> 00:06:21,810 وحين أقول، وأنا اكبر من أو يساوي الصفر، وبعد ذلك في هنا أنا 156 00:06:21,810 --> 00:06:26,070 المضي قدما وحفظ الملف، وجعل حلقة. 157 00:06:26,070 --> 00:06:27,070 وأنا على وشك أن تشغيله. 158 00:06:27,070 --> 00:06:30,230 ما أنا ذاهب لرؤية هذا الوقت مع حلقة while؟ 159 00:06:30,230 --> 00:06:30,852 نعم. 160 00:06:30,852 --> 00:06:32,120 >> الحضور: حلقة لا نهائية؟ 161 00:06:32,120 --> 00:06:35,360 >> رئيس 1: حلقة لا نهائية؟ 162 00:06:35,360 --> 00:06:36,662 نعم ولماذا؟ 163 00:06:36,662 --> 00:06:38,120 الحضور: لأنه دائما صفر. 164 00:06:38,120 --> 00:06:38,786 رئيس 1: نعم. 165 00:06:38,786 --> 00:06:40,100 لذلك، يتم تهيئة I صفر. 166 00:06:40,100 --> 00:06:44,470 بالطبع أنا اكبر دائما من أو يساوي 0 نتيجة لذلك. 167 00:06:44,470 --> 00:06:46,460 لذا، أنا مجرد الذهاب الى نرى هذا ما لا نهاية. 168 00:06:46,460 --> 00:06:49,850 والآن، أصبح هذا الأمر مرة واحدة أو مرتين لرؤساء الدورة التدريبية. 169 00:06:49,850 --> 00:06:52,417 ماذا يحدث عندما لدينا حلقة لا نهائية؟ 170 00:06:52,417 --> 00:06:53,314 >> الحضور: التحكم C. 171 00:06:53,314 --> 00:06:53,980 رئيس 1: نعم. 172 00:06:53,980 --> 00:06:56,250 هكذا تحكم C سترد في نهاية المطاف. 173 00:06:56,250 --> 00:06:59,520 للأسف، لقد طباعتها الملايين والملايين من الأصفار بالفعل 174 00:06:59,520 --> 00:07:01,520 وهكذا كان الكمبيوتر نوع من حصلت أمامي. 175 00:07:01,520 --> 00:07:03,394 لذلك، فإنه يجري تجاهل لي قليلا. 176 00:07:03,394 --> 00:07:06,560 ولكن إذا كنت مجرد ضرب تحكم C قليلة مرات على جهاز Mac أو PC لوحة المفاتيح، 177 00:07:06,560 --> 00:07:08,790 في نهاية المطاف يجب أن، في الواقع، إنهاء. 178 00:07:08,790 --> 00:07:11,770 وإذا لم يكن، فإننا سوف تظهر لك بعض تقنيات قبل فترة طويلة حيث كنت 179 00:07:11,770 --> 00:07:14,850 في الواقع يمكن أن تقتل برامج قسرا، مثل الكثير في ويندوز وماك OS، 180 00:07:14,850 --> 00:07:15,562 إذا لزم الأمر. 181 00:07:15,562 --> 00:07:16,770 ولكن دعونا نجرب شيئا آخر. 182 00:07:16,770 --> 00:07:19,895 دعونا زيادة في الواقع I. هل هذا لا تزال جارية ليكون لانهائي؟ 183 00:07:19,895 --> 00:07:22,870 184 00:07:22,870 --> 00:07:25,140 اسمحوا لي أن تشغيل هذا. 185 00:07:25,140 --> 00:07:27,090 ويمكنك الآن نوع من انظر ما يحدث. 186 00:07:27,090 --> 00:07:30,140 هذا، أيضا، هو حلقة لا نهائية. 187 00:07:30,140 --> 00:07:33,080 ولكن هذا هو قليلا من مسألة خدعة. 188 00:07:33,080 --> 00:07:35,460 يتم هذا الانتقال لطباعة الأرقام إلى الأبد؟ 189 00:07:35,460 --> 00:07:36,647 >> الحضور: رقم 190 00:07:36,647 --> 00:07:37,230 رئيس 1: رقم 191 00:07:37,230 --> 00:07:37,620 لماذا؟ 192 00:07:37,620 --> 00:07:38,820 سمعت بعض غ أكثر من هنا. 193 00:07:38,820 --> 00:07:41,859 Someone-- نعم. 194 00:07:41,859 --> 00:07:44,275 الجمهور: لم يكن لديك ما يكفي بت لإبقاء حقا الذهاب. 195 00:07:44,275 --> 00:07:44,730 رئيس 1: كل الحق. 196 00:07:44,730 --> 00:07:46,000 لذلك أنا لم يكن لديك ما يكفي بت على الاستمرار. 197 00:07:46,000 --> 00:07:47,124 لذا، ما الذي سيحدث؟ 198 00:07:47,124 --> 00:07:49,320 انها مجرد الذهاب الى وقف؟ 199 00:07:49,320 --> 00:07:52,542 >> الحضور: في بعض نقطة وسوف تغلق the-- 200 00:07:52,542 --> 00:07:54,500 رئيس 1: وسوف تغلق في أسفل الحلقة، ولكن لماذا؟ 201 00:07:54,500 --> 00:07:57,950 ما الذي سيحدث في نهاية جدا من حدوده؟ 202 00:07:57,950 --> 00:07:58,479 نعم؟ 203 00:07:58,479 --> 00:08:00,520 الحضور: وسوف دورة العودة إلى الأرقام السالبة. 204 00:08:00,520 --> 00:08:02,900 SPEAKER 1: الأرقام السالبة، أو لو كنا مجرد علاج إيجابي، 205 00:08:02,900 --> 00:08:03,570 الصفر على الأقل. 206 00:08:03,570 --> 00:08:04,550 لذلك نعم، بالتأكيد. 207 00:08:04,550 --> 00:08:08,059 نذكر أن رأينا في المرة السابقة أنه إذا زيادة بت لديك واحدة عدة مرات أيضا، 208 00:08:08,059 --> 00:08:10,225 وكنت هناك الصدارة تجاوز قدرة إدارة النزاهة المؤسسية 209 00:08:10,225 --> 00:08:13,058 أو أيا كان نوع البيانات، كنت الذهاب إلى التفاف حولها، ربما، 210 00:08:13,058 --> 00:08:14,020 رقمين السلبية. 211 00:08:14,020 --> 00:08:16,644 أو إذا كنت قد حدد بأن ما تتمتعون به مجموعة يجب أن يكون فقط إيجابي، 212 00:08:16,644 --> 00:08:18,560 الذي يمكنك القيام به، ولكن لم نشهد ذلك حتى الآن، 213 00:08:18,560 --> 00:08:21,420 قد ينتهي بك الأمر على الأقل مرة أخرى من الصفر. 214 00:08:21,420 --> 00:08:22,410 وعلى الرغم من الواقع نعم. 215 00:08:22,410 --> 00:08:24,320 في هذه الحالة، سلبية أرقام، وفي هذه الحالة 216 00:08:24,320 --> 00:08:26,870 الحلقة هو الذهاب الى إنهاء لأنني لا، في الواقع، 217 00:08:26,870 --> 00:08:29,220 أكبر من أو يساوي الصفر اذا كان سلبيا. 218 00:08:29,220 --> 00:08:31,780 >> لذلك، للأسف، كيف منذ فترة طويلة سيتعين علينا أن ننتظر؟ 219 00:08:31,780 --> 00:08:35,490 الآن نحن حتى ما، 2000000 العش؟ 220 00:08:35,490 --> 00:08:37,705 نحن مثل 2000000000، ونحن في طريقنا لديك إلى الانتظار 221 00:08:37,705 --> 00:08:39,330 حتى يمكننا أن نرى في الواقع هذا العرض. 222 00:08:39,330 --> 00:08:46,200 ولكن يمكننا أن نرى أنه من أسرع قليلا، maybe-- دعونا نرى ما اذا كنا نستطيع المقاطعة. 223 00:08:46,200 --> 00:08:46,700 هيا. 224 00:08:46,700 --> 00:08:49,500 225 00:08:49,500 --> 00:08:51,331 حتى القوائم هي التي تظهر ببطء. 226 00:08:51,331 --> 00:08:51,830 حسنا. 227 00:08:51,830 --> 00:08:54,270 لذلك، سوف نعود إلى هذا قبل فترة طويلة. 228 00:08:54,270 --> 00:08:56,320 انها جيدة time-- اللعنة، الجراء. 229 00:08:56,320 --> 00:08:58,280 >> لقد حان الوقت للبعض الإعلانات. 230 00:08:58,280 --> 00:09:01,225 لذا، إذا كنت قد ترغب للانخراط في YHack، 231 00:09:01,225 --> 00:09:03,600 الذي حدث يجري برعاية أصدقائنا في جامعة ييل. 232 00:09:03,600 --> 00:09:05,990 و، في الواقع، بعض من هذه الدورة ل TFS في جامعة ييل يشاركون مع هذا. 233 00:09:05,990 --> 00:09:08,610 YHack هي منظمة دولية الإختراق واحد في ثون استضافته وعقد 234 00:09:08,610 --> 00:09:12,395 في جامعة ييل، والجمع 1500 مثل المتسللين التفكير والتصميمات جميع 235 00:09:12,395 --> 00:09:13,120 حول العالم. 236 00:09:13,120 --> 00:09:14,610 إذا كانت هذه المصالح، نلقي نظرة هنا. 237 00:09:14,610 --> 00:09:17,401 إذا كان هذا هو لفترة وجيزة جدا على الشاشة، نلقي نظرة على الشرائح اليوم 238 00:09:17,401 --> 00:09:19,622 لURL لyhack.org. 239 00:09:19,622 --> 00:09:21,080 لذلك، أيضا بعض الإعلانات سريعة. 240 00:09:21,080 --> 00:09:24,410 لذلك، سوف تبدأ رسميا الأقسام الأسبوع القادم سواء هنا أو في نيو هافن. 241 00:09:24,410 --> 00:09:27,660 نضع في اعتبارنا عليك أن تكون الحصول على البريد الإلكتروني لاحقا في نهاية هذا الاسبوع على الأرجح. 242 00:09:27,660 --> 00:09:29,390 يستغرق وقتا طويلا لCS50 إلى القسم، 243 00:09:29,390 --> 00:09:32,080 بالنظر إلى كل الناس في الطبقة والجميع يتحرك. 244 00:09:32,080 --> 00:09:34,871 وجميع الزملاء التدريس " جداول أيضا ما زالت بدمج، 245 00:09:34,871 --> 00:09:38,110 ولكن لا تنزعج لبريد إلكتروني وإذا دعت الحاجة يمكن، يمكنك إعادة القسم هناك بعد. 246 00:09:38,110 --> 00:09:39,580 >> Study.cs50.net. 247 00:09:39,580 --> 00:09:43,280 لذلك، حتى لو كنت أحد الحضور المستمر في أقسام، ندرك أن ما يقرب من جميع 248 00:09:43,280 --> 00:09:46,786 من الموارد التي نستخدمها في الأقسام هي متاحة للجمهور في CS50 249 00:09:46,786 --> 00:09:48,460 دراسة في هذا URL هنا. 250 00:09:48,460 --> 00:09:51,630 لذا، إذا كنت ترغب من أي وقت مضى إلى إعادة مراجعة المواد من القسم، أو قراءة الأمام، 251 00:09:51,630 --> 00:09:54,170 أو إذا كنت لا يمكن أن تجعل من بعض الأسبوع، ندرك أن عينة الشرائح، 252 00:09:54,170 --> 00:09:58,210 والمشاكل، والتعاريف، وأكثر من ذلك جميعا هناك أيضا. 253 00:09:58,210 --> 00:10:00,645 >> ساعات العمل تستأنف اليوم، وغدا، والأربعاء، 254 00:10:00,645 --> 00:10:03,020 والخميس التحقق من مسار ل موقع للجدول الزمني. 255 00:10:03,020 --> 00:10:05,690 >> وأيضا، وإطلاق الآن اليوم هو CS50 مناقشتها. 256 00:10:05,690 --> 00:10:09,230 لذلك، إذا وعندما يكون لديك أسئلة ل بعضها البعض أو لموظفي بالطبع، و 257 00:10:09,230 --> 00:10:12,099 وتعمل عموما على بعض مجموعة المشكلة، 258 00:10:12,099 --> 00:10:15,015 ندرك أن تفعله ليس بالضرورة يجب أن يتحول إلى إنسان كنت المقبل. 259 00:10:15,015 --> 00:10:17,810 اذا لم يكن هناك أحد هناك، يمكنك الوصول إلينا وزملاء الدراسة 260 00:10:17,810 --> 00:10:19,890 عبر الإنترنت من خلال CS50 مناقشة. 261 00:10:19,890 --> 00:10:22,600 لذلك، وهذا هو مناقشة المجلس للدورة، 262 00:10:22,600 --> 00:10:24,550 وندرك أن هذه وربما كان أفضل 263 00:10:24,550 --> 00:10:28,480 مكان للبدء عندما يكون لديك الأسئلة عندما تكون خارج ساعات العمل 264 00:10:28,480 --> 00:10:29,470 بخاصة. 265 00:10:29,470 --> 00:10:31,070 >> ستبدأ وجبات غداء يصل هذا الأسبوع أيضا. 266 00:10:31,070 --> 00:10:33,170 في النار والجليد (غير مسموع) في نيو هافن. 267 00:10:33,170 --> 00:10:35,379 نلقي نظرة على الدورة التدريبية الموقع من أجل أجبني. 268 00:10:35,379 --> 00:10:36,753 يأتي أولا، يخدم أولا لذلك. 269 00:10:36,753 --> 00:10:39,380 إذا كنت لا تحصل في هذا الأسبوع سنفعل هذه أكثر كل يوم جمعة 270 00:10:39,380 --> 00:10:40,400 خلال فترة. 271 00:10:40,400 --> 00:10:41,830 >> OK، والآن كلمة عن الدرجات. 272 00:10:41,830 --> 00:10:44,690 لا سيما ونحن ندخل المشكلة مجموعة واحدة، والتي هي من هذا الأسبوع، 273 00:10:44,690 --> 00:10:46,670 والمشكلة تعيين اثنين وبعد ذلك. 274 00:10:46,670 --> 00:10:51,680 كيف يمكننا التوجه نحو تقييم مجموعات P وتقييم نوعيتها؟ 275 00:10:51,680 --> 00:10:55,560 لذلك، فإنه من أربعة محاور التي نستخدمها في CS50، وانهم هذه الأربعة هنا. 276 00:10:55,560 --> 00:10:59,200 >> نطاق، الذي يجسد على رقمية أساس مدى ما تحقق من مجموعة P 277 00:10:59,200 --> 00:10:59,860 هل التصدي لها. 278 00:10:59,860 --> 00:11:02,890 انها تتطابق تقريبا مع الجهد، وانها طريقتنا في التقاط 279 00:11:02,890 --> 00:11:05,190 هل جربت نصف P مجموعة، كل مجموعة P. 280 00:11:05,190 --> 00:11:08,860 هذا هو واحد من السهل الحصول على الكمال عشرات على إذا قمت بذلك، في الواقع، 281 00:11:08,860 --> 00:11:11,020 حاول كل من مجموعة P الجانب. 282 00:11:11,020 --> 00:11:12,010 لذلك، والحفاظ على ذلك في الاعتبار. 283 00:11:12,010 --> 00:11:13,420 >> صحة هو أن بالضبط. 284 00:11:13,420 --> 00:11:17,760 هل تعمل شفرة ك مواصفات وكحل عينة من الموظفين " 285 00:11:17,760 --> 00:11:19,730 أقترح أن التعليمات البرمجية وينبغي، في الواقع، والعمل. 286 00:11:19,730 --> 00:11:23,260 تحقق 50، إذا لم تكن قد اجتمع بعد، هو في وضع P مواصفات واحدة 287 00:11:23,260 --> 00:11:25,060 وسوف عموما تعطيك نعم / لا إجابات 288 00:11:25,060 --> 00:11:26,518 لما إذا كان رمز الخاص بك هو الصحيح. 289 00:11:26,518 --> 00:11:30,680 على الأقل حتى الآن ونحن في طريقنا لتقييم ذلك على أساس الاختبارات 290 00:11:30,680 --> 00:11:32,430 أننا تشغيل داخل هذا البرنامج. 291 00:11:32,430 --> 00:11:33,850 >> التصميم هو أكثر موضوعية من ذلك بكثير. 292 00:11:33,850 --> 00:11:35,994 هذه هي الطريقة مكتوبة جيدا هو رمز الخاص بك. 293 00:11:35,994 --> 00:11:38,410 وهذا أمر ستحصل على نحو أفضل في مع مرور الوقت، 294 00:11:38,410 --> 00:11:41,201 وكان شيئا أننا سوف توفير المزيد من ردود الفعل النوعي على. 295 00:11:41,201 --> 00:11:43,350 وحسب التصميم I قد يعني كنت قبل فترة طويلة 296 00:11:43,350 --> 00:11:47,650 قد تميل في بعض P المقرر أن نفعل شيئا loopingly، 297 00:11:47,650 --> 00:11:51,590 ولكن لربما يكون ثلاثة، أو أربعة، أو خمس حلقات متداخلة أو الصدارة في حين متداخلة 298 00:11:51,590 --> 00:11:52,090 حلقات. 299 00:11:52,090 --> 00:11:54,130 على أنه ينبغي عموما تبدأ لجعل لكم تذلل 300 00:11:54,130 --> 00:11:56,070 وسيكون عام يعتبر تصميم سيئة. 301 00:11:56,070 --> 00:11:59,490 وسوف تبدأ في رؤية في الصف و من الدرجة طرق جيدة للقيام بهذه الأمور، 302 00:11:59,490 --> 00:12:02,920 طرق سيئة للقيام بهذه الأمور التي قد تكون كلها صحيحة، ولكن ليس 303 00:12:02,920 --> 00:12:04,304 بالضرورة مصممة بشكل جيد. 304 00:12:04,304 --> 00:12:05,220 مثل كتابة مقال. 305 00:12:05,220 --> 00:12:08,100 كنت قد تكون قادرة على وضع الكلمات على صفحة صحيحة نحويا، 306 00:12:08,100 --> 00:12:10,016 ولكن مقال أو أطروحة انهم في مجرد 307 00:12:10,016 --> 00:12:11,810 غير متماسكة تماما أو غير مقنعة. 308 00:12:11,810 --> 00:12:15,930 وبحيث قد يكون التناظرية في العالم خطية من سيئة أو جيدة التصميم. 309 00:12:15,930 --> 00:12:18,490 >> والأسلوب، أيضا، هو شخصي إلى حد ما. 310 00:12:18,490 --> 00:12:20,060 ولكن على الأقل نحن نتوقع الاتساق. 311 00:12:20,060 --> 00:12:21,480 هذه هي الطريقة جميلة هي التعليمات البرمجية. 312 00:12:21,480 --> 00:12:22,840 الامور بادئة طيف؟ 313 00:12:22,840 --> 00:12:26,600 والمتغيرات الخاصة بك اسمه جيدا / هل جميع من الأقواس الخاصة بك والأقواس المجعدة 314 00:12:26,600 --> 00:12:27,920 محاذاة كما ينبغي؟ 315 00:12:27,920 --> 00:12:31,490 لدينا دليل على غرار CS50 كما فإن مجموعة مشكلة نقطة لكم في. 316 00:12:31,490 --> 00:12:33,730 تلك هي أكثر راحة مرحبا بكم في تبتعد عن ذلك 317 00:12:33,730 --> 00:12:35,771 طالما أنك ذاتيا ثابت. 318 00:12:35,771 --> 00:12:38,020 وهذا، أيضا، هو الدرس سنقوم تعزز في القسم. 319 00:12:38,020 --> 00:12:40,990 لذلك، إذا كان كل هذا كان قليلا سريع، وتحقيق مجموعة P والأقسام 320 00:12:40,990 --> 00:12:42,900 سوف يذهب إلى أكثر عمقا قبل فترة طويلة. 321 00:12:42,900 --> 00:12:45,490 >> ولكن عموما لدينا عدد قليل جدا من الدلاء لCS50. 322 00:12:45,490 --> 00:12:48,170 عشرات عادة ما تكون على نطاق من 1-3 أو 1-5. 323 00:12:48,170 --> 00:12:50,836 نحن literally-- وأنا لا أستطيع أن أقول هذا يكفي في الأسبوع الأول. 324 00:12:50,836 --> 00:12:51,582 ثلاثة امر جيد. 325 00:12:51,582 --> 00:12:54,290 لذلك، على الرغم من، نعم، ثلاثة من خمس عادة، رياضيا، 326 00:12:54,290 --> 00:12:57,240 قد يكون 60 في المئة أو مثل D ناقص. 327 00:12:57,240 --> 00:12:58,840 ثلاثة هي، في الواقع، وحسن. 328 00:12:58,840 --> 00:13:01,050 و، في الواقع، ونحن نتوقع معظم الطلاب في الصف 329 00:13:01,050 --> 00:13:04,280 لتبدأ على المدى حول ثنائي، والثلاثات، وأربع. 330 00:13:04,280 --> 00:13:05,510 ربما ليس الكثير من الأطفال دون سن الخامسة. 331 00:13:05,510 --> 00:13:06,661 ليست كثيرة جدا منها. 332 00:13:06,661 --> 00:13:08,910 ولكن بصفة عامة أن تبدأ في بقعة التي الحلوة في منحنى 333 00:13:08,910 --> 00:13:11,694 بحيث مع مرور الوقت، هناك في الواقع مجالا ل، 334 00:13:11,694 --> 00:13:13,360 وفرص التقدم العلوي. 335 00:13:13,360 --> 00:13:15,810 لذلك، من فضلك لا تساوي ثلاثة مع 60٪. 336 00:13:15,810 --> 00:13:17,410 انها أكثر تجريدا من ذلك بكثير. 337 00:13:17,410 --> 00:13:20,160 الصيغة التي نحسب ومن المرجح الدرجات على النحو التالي. 338 00:13:20,160 --> 00:13:21,610 صحة يستحق أكثر من غيرها. 339 00:13:21,610 --> 00:13:23,010 تصميم يستحق أقل من ذلك بقليل. 340 00:13:23,010 --> 00:13:24,490 الاسلوب هو يستحق أقل من ذلك بقليل. 341 00:13:24,490 --> 00:13:26,950 وهذا بشكل عام يلتقط مقدار الوقت 342 00:13:26,950 --> 00:13:29,800 أن يذهب إلى الحصول على كل من هذه المحاور مجرد حق. 343 00:13:29,800 --> 00:13:31,810 الاسلوب هو السوبر سهلة، يجب أن تكون فائقة سريعة، 344 00:13:31,810 --> 00:13:33,657 ولكن انها عادة سهلة للحصول على كسول عنه. 345 00:13:33,657 --> 00:13:35,490 صحة قد يستغرق كنت معظم الوقت. 346 00:13:35,490 --> 00:13:38,990 مطاردة بعض القوة علة أخذ ذلك ساعة إضافية أو أكثر، 347 00:13:38,990 --> 00:13:41,737 وهكذا، فإن التهديف يلتقط في نهاية المطاف ذلك. 348 00:13:41,737 --> 00:13:43,070 وهكذا، والآن كلمة أكثر خطورة. 349 00:13:43,070 --> 00:13:45,240 منذ CS50 لديه التمييز، للأفضل 350 00:13:45,240 --> 00:13:47,440 أو ما هو أسوأ، لكونها ربما أفضل اطلاع 351 00:13:47,440 --> 00:13:50,065 مع القضايا الأكاديمية الصدق أكثر من أي مسار آخر. 352 00:13:50,065 --> 00:13:53,720 وبالفعل، هو أن معرفتي أن نرسل المزيد من الطلاب، للأسف، 353 00:13:53,720 --> 00:13:56,690 لأغراض تأديبية كل عام نتيجة لذلك. هكذا، 354 00:13:56,690 --> 00:13:59,040 في مصلحة كامل الكشف، دعونا نتحدث لفترة وجيزة 355 00:13:59,040 --> 00:14:02,820 حول ما يجري في CS50، وماذا يمكن القيام به، وماذا يمكن أن تكون مدركة ل. 356 00:14:02,820 --> 00:14:05,530 >> لذلك، هنا منذ عام 2007، عندما أنا ورثت بطبيعة الحال، 357 00:14:05,530 --> 00:14:07,870 هو عدد من الحالات لوحة الإعلانات. 358 00:14:07,870 --> 00:14:10,690 لوحة الإعلانات غير التخصصات في جامعة هارفارد الجسم، أو الآن الشرف المستشار، 359 00:14:10,690 --> 00:14:13,790 التي يشار الحالات طلاب تفعل شيئا أن الدورة ل 360 00:14:13,790 --> 00:14:15,470 يعتبر المنهج المعقول. 361 00:14:15,470 --> 00:14:17,220 ليس هناك نمط حقيقي هنا، أود أن أقول. 362 00:14:17,220 --> 00:14:19,530 انه يتقلب على سنوات ولكن عموما 363 00:14:19,530 --> 00:14:22,262 هذا هو عدد الحالات التي تحال. 364 00:14:22,262 --> 00:14:23,970 عدد الطلاب التي تشارك؟ 365 00:14:23,970 --> 00:14:25,290 وهو يختلف أيضا. 366 00:14:25,290 --> 00:14:27,930 عادة، في العام الماضي ل سبيل المثال، 29 طالبا في جامعة هارفارد 367 00:14:27,930 --> 00:14:29,740 كان الإعلان استقل، إذا جاز التعبير. 368 00:14:29,740 --> 00:14:32,670 29 منهم الطلاب الحاليين، اثنان منهم طلاب مسبق، 369 00:14:32,670 --> 00:14:35,610 الذين كانوا التعاون بطريقة ما غير مرغوب فيه. 370 00:14:35,610 --> 00:14:38,400 ثم من حيث مئوية، انها عادة حوالي 3٪ 371 00:14:38,400 --> 00:14:41,360 الفئة التي، للأسف، يجعل هذا النوع من القرارات. 372 00:14:41,360 --> 00:14:44,470 >> لذلك، كان عليه في العام الماضي 3.5٪ من الجسم الطلابي CS50 ل 373 00:14:44,470 --> 00:14:46,820 كان ذلك الإعلان استقل، إذا جاز التعبير. 374 00:14:46,820 --> 00:14:48,490 >> لذا، ماذا كل هذا يعني؟ 375 00:14:48,490 --> 00:14:49,660 وماذا نفعل حقا؟ 376 00:14:49,660 --> 00:14:52,930 >> لذلك، من أجل الكشف الكامل، ونحن تماما، كما علماء الكمبيوتر، 377 00:14:52,930 --> 00:14:57,620 لدينا أدوات البرمجيات التي في حوزتنا وأنه من السهل جدا بالنسبة لنا، وإحقاقا للحق، 378 00:14:57,620 --> 00:15:00,980 زملاء الدراسة أن الآخرين الذين ليسوا عبور هذه الخطوط لعبور مقارنة 379 00:15:00,980 --> 00:15:04,570 كل تقديمها هذا العام ضد كل تقديم على مدى السنوات الثماني الماضية. 380 00:15:04,570 --> 00:15:05,445 برنامج يفعل ذلك. 381 00:15:05,445 --> 00:15:07,440 وفي نهاية المطاف انها العين البشرية التي تقرر 382 00:15:07,440 --> 00:15:11,410 أم عدم إحالة بعض يهم لمزيد من المقاضاة، 383 00:15:11,410 --> 00:15:12,737 ولكن البرنامج يساعد بالتأكيد. 384 00:15:12,737 --> 00:15:15,820 وهذا، بصراحة، هو السبب في أنني أعتقد لدينا هذه الأعداد الكبيرة في CS50. 385 00:15:15,820 --> 00:15:18,540 انها ليست لCS50 الطلاب أو الطلاب CS أكثر 386 00:15:18,540 --> 00:15:20,840 عموما أي أقل صادقين من أي الطلاب الآخرين، 387 00:15:20,840 --> 00:15:22,340 انها مجرد لدينا الأدوات والتقنيات 388 00:15:22,340 --> 00:15:24,095 التي لاتخاذ هذا الممر الأول. 389 00:15:24,095 --> 00:15:25,960 >> ولكننا إبقاء العين على كل هذه الأمور 390 00:15:25,960 --> 00:15:30,340 كذلك، مرة أخرى، في مصالح تقديرا للعمل الذي يتم وضع 391 00:15:30,340 --> 00:15:32,397 في بأغلبية عظمى من الدرجة. 392 00:15:32,397 --> 00:15:34,230 وسياسة بالطبع ل على الصدق الأكاديمي، 393 00:15:34,230 --> 00:15:37,021 على الرغم من انها مجموعة من الفقرات منذ فترة طويلة مع حفنة من الرصاص 394 00:15:37,021 --> 00:15:40,490 التي نأمل قراءة تماما، فإنه حقا لا تختزل أن تكون معقولة. 395 00:15:40,490 --> 00:15:44,000 وأفضل بحكم التجربة أن ونحن نقدم في غضون المنهج 396 00:15:44,000 --> 00:15:46,020 غير هذا، فإن جوهر جميع الأعمال التي قمت 397 00:15:46,020 --> 00:15:47,850 تقدم إلى هذه الدورة يجب أن تكون لك. 398 00:15:47,850 --> 00:15:51,510 وبالفعل، في ما يقرب من جميع تلك القضايا المحالة للإجراءات تأديبية 399 00:15:51,510 --> 00:15:55,640 كان ذلك بسبب طالب في وقت متأخر بعض واحد ليلة عادة تحول له أو لها كود 400 00:15:55,640 --> 00:15:58,130 على الفور إلى زميل، من ثم اعتماده 401 00:15:58,130 --> 00:16:00,840 في مجملها أو منها إلى حد كبير. 402 00:16:00,840 --> 00:16:02,680 >> ولكن في الحقيقة، وهذا لا بأس به. 403 00:16:02,680 --> 00:16:04,684 وبالفعل، في مكتبه ساعات، وقصاصات الورق 404 00:16:04,684 --> 00:16:07,850 كنت قد سلم إذا جاء عن مكتب ساعات يشجع الاسبوع الماضي بقدر. 405 00:16:07,850 --> 00:16:09,710 كنت على الاطلاق رحب وشجع 406 00:16:09,710 --> 00:16:12,340 لمناقشة مجموعات مشكلة مع زملاء الدراسة. 407 00:16:12,340 --> 00:16:14,461 لمساعدة بعضهم البعض عندما عثرة. 408 00:16:14,461 --> 00:16:17,710 ولكن بصفة عامة يجب أن القاعدة الأساسية يكون هذا "، عندما كنت طالبا للمساعدة، 409 00:16:17,710 --> 00:16:20,412 قد تظهر التعليمات البرمجية للآخرين، ولكنك قد لا عرض لهم. " 410 00:16:20,412 --> 00:16:22,620 لذلك، وبعبارة أخرى، إذا أنا تكافح مع بعض مجموعة P 411 00:16:22,620 --> 00:16:25,290 وأنا جالس هناك في قاعة الطعام، أو في المكتبة، 412 00:16:25,290 --> 00:16:28,470 أو في الفصول الدراسية في محاولة للعثور على بعض الخطأ، 413 00:16:28,470 --> 00:16:30,340 أنا يمكن أن تظهر بالتأكيد قانون بلدي على الشاشة 414 00:16:30,340 --> 00:16:32,590 إلى شخص يجلس بجوار بالنسبة لي، وبالتأكيد الموظفين، 415 00:16:32,590 --> 00:16:33,600 ولكن أيضا زميل. 416 00:16:33,600 --> 00:16:36,580 ولكن إذا كان الحل الذي زميل لي هو يقدم، أوه، 417 00:16:36,580 --> 00:16:39,200 هنا مجرد إلقاء نظرة على ما فعلت، التي تعبر خط المرمى. 418 00:16:39,200 --> 00:16:43,120 >> وأود أن أجرؤ على القول أن هذا عموما شيء معقول بالنسبة لمعظم الناس 419 00:16:43,120 --> 00:16:45,030 على الفور بسهولة جدا خط. 420 00:16:45,030 --> 00:16:47,195 وبذلك، راجع المنهج لمزيد من التفاصيل. 421 00:16:47,195 --> 00:16:49,070 والآن واحدة من أكثر الجوانب المثيرة للجدل 422 00:16:49,070 --> 00:16:52,529 من CS50 المنهج الذي ظننت أنني سيتحدث لفي الختام هنا 423 00:16:52,529 --> 00:16:53,820 هو ما يسمى بند الأسف. 424 00:16:53,820 --> 00:16:55,340 لذلك، وهنا كل التفاصيل الدقيقة. 425 00:16:55,340 --> 00:16:58,090 ولكن بصفة عامة شهدنا على مدى 8 سنوات زائد الماضية 426 00:16:58,090 --> 00:17:01,510 هذا، في الواقع، وكلها تقريبا من وCS50 حالات خيانة الأمانة الأكاديمية 427 00:17:01,510 --> 00:17:04,390 وكانت نتيجة فقط الفقراء جعل وقت متأخر من الليل القرار. 428 00:17:04,390 --> 00:17:07,144 نتيجة الإجهاد، نتيجة عدم تناول الطعام، وقلة النوم، 429 00:17:07,144 --> 00:17:09,560 العديد من مجموعات P، كثيرة جدا المواعيد النهائية، والكثير من الالتزامات. 430 00:17:09,560 --> 00:17:13,520 الإجهاد بناء في 02:00، 03:00 صباحا، 4:00، مع اقتراب الموعد النهائي المحدد. 431 00:17:13,520 --> 00:17:17,020 معظم الطلاب في هذه الحالات وقد أدلى به للتو قرارات سيئة 432 00:17:17,020 --> 00:17:20,619 أنهم قد يندم جيدا صباح اليوم التالي إن لم يكن بعد دقائق، 433 00:17:20,619 --> 00:17:25,490 ولكن حتى العام الماضي لم يكن هناك الافراج عن صمام التي يمكن هؤلاء الطلاب 434 00:17:25,490 --> 00:17:29,140 فتح فعليا لمعالجة الواقع رئيس المشكلة على دون خوف من التعرض 435 00:17:29,140 --> 00:17:30,850 تمهيد من الكلية تماما. 436 00:17:30,850 --> 00:17:33,260 >> و، في الواقع، قدمنا هذا الشرط الأسف العام الماضي، 437 00:17:33,260 --> 00:17:35,970 التي تقول أنه إذا ضمن 72 ساعة، ثلاثة أيام، 438 00:17:35,970 --> 00:17:37,970 من عبور بعض الخط المنصوص عليها في المقرر الدراسي 439 00:17:37,970 --> 00:17:41,178 أتيت إلى الأمام إلى واحد من هذه الدورة ل رؤساء وسيكون لدينا محادثة حول هذا الموضوع. 440 00:17:41,178 --> 00:17:43,720 لا تزال هناك بعض النتيجة، على عكس ما هو 441 00:17:43,720 --> 00:17:44,990 تم إبلاغ العكس. 442 00:17:44,990 --> 00:17:49,190 لا يزال هناك بعض النتائج التي غير قابلة للتنفيذ من قبل بطبيعة الحال، 443 00:17:49,190 --> 00:17:51,611 التصفير عموما مجموعة P أو اتخاذ بعض الإجراءات الأخرى، 444 00:17:51,611 --> 00:17:53,610 ولكننا سوف، في الواقع، التعامل معها أنفسنا وليس 445 00:17:53,610 --> 00:17:58,460 الرجوع مكانة أعلى كانت نتائج قد يكون أشد من ذلك بكثير. 446 00:17:58,460 --> 00:18:01,810 و، في الواقع، لتقاسم ما حدث في العام الماضي، في السنوات الثماني، والآن 447 00:18:01,810 --> 00:18:04,950 تسع سنوات من تدريس هذه الدورة وبعد ترقيع مع مختلف المقابض، 448 00:18:04,950 --> 00:18:07,866 تحويل مختلف الأوجه على الماضي عدة سنوات على الصدق الأكاديمي، 449 00:18:07,866 --> 00:18:11,920 ورؤية فقا لبيانات واضحة لا أثر، حتى الخطب مثل هذا، 450 00:18:11,920 --> 00:18:15,490 وكان هذا الأيدي أسفل أفضل شيء لقد قدمنا ​​تربويا 451 00:18:15,490 --> 00:18:18,090 في ثماني سنوات جنبا إلى جنب هذه الخطوط في CS50. 452 00:18:18,090 --> 00:18:21,010 >> وجاء 19 طالبا إلى الأمام تحت هذا الشرط العام الماضي. 453 00:18:21,010 --> 00:18:23,389 نحن لم تتخذ أي إجراء ل سبعة من هؤلاء الطلاب، 454 00:18:23,389 --> 00:18:25,430 تحديد ان كانت قلق لا داعي له. 455 00:18:25,430 --> 00:18:27,304 كان لديهم لا، في الواقع، عبرت خط، لكنها 456 00:18:27,304 --> 00:18:28,960 كانت محادثة جيدة أن يكون مع ذلك. 457 00:18:28,960 --> 00:18:31,190 نحن ركزت 11 من العشرات التي قدمت. 458 00:18:31,190 --> 00:18:33,840 وفي حالة واحدة طلبنا من الطالب للقيام مشكلة تعيين. 459 00:18:33,840 --> 00:18:36,370 ولكن أكثر إلحاحا، بصراحة، مع هذه الأحاديث 19، 460 00:18:36,370 --> 00:18:39,020 الذي كان أكثر من طريقة I من المتوقع أن يكون كل واحد منهم 461 00:18:39,020 --> 00:18:41,370 10 دقيقة لربما ل ساعة طويلة، جلبت أيضا 462 00:18:41,370 --> 00:18:44,920 الضوء على عدد من القضايا المتعلقة القضايا الأسرية والقضايا صديق، 463 00:18:44,920 --> 00:18:46,940 قضايا الصحة النفسية أننا ثم انخرطت، 464 00:18:46,940 --> 00:18:50,200 مع الطالب نعمة، مقيم عميد، أو الأصدقاء، أو أي رقم آخر 465 00:18:50,200 --> 00:18:51,450 من موارد الدعم. 466 00:18:51,450 --> 00:18:54,454 ذلك أن هذا هو حد بعيد واحدة من أفضل الاستخدامات في عصرنا 467 00:18:54,454 --> 00:18:55,870 واحدة من أفضل التدخلات. 468 00:18:55,870 --> 00:18:58,870 >> وقال مع ذلك، أنه ليس لديها مساهمة في معدل كشف 469 00:18:58,870 --> 00:19:00,909 من خيانة الأمانة الأكاديمية بشكل عام. 470 00:19:00,909 --> 00:19:02,950 وأجرؤ على القول، وهذا فرعية الطلاب العام الماضي 471 00:19:02,950 --> 00:19:06,350 كان الديموغرافية أننا في السابق أبدا تحديدها قبل 472 00:19:06,350 --> 00:19:08,140 وكان على اتصال مع أبدا من قبل. 473 00:19:08,140 --> 00:19:10,020 وهكذا، كانت هذه قصص نجاح رائعة 474 00:19:10,020 --> 00:19:13,390 على الرغم من أنها سلطت الضوء في أقل من الظروف المثلى. 475 00:19:13,390 --> 00:19:15,640 لذلك، تضع ذلك في اعتبارها وجعل لكم، ربما، 476 00:19:15,640 --> 00:19:17,390 بعض القرارات الفقراء نفسك في ساعة متأخرة من الليل، 477 00:19:17,390 --> 00:19:20,151 هذا هو اللجوء هناك وقتا طويلا كما طالب في هذه الحالة 478 00:19:20,151 --> 00:19:23,400 بتملك ما يصل، وتأتي إلى الأمام حتى ما في وسعنا يكون هذا النوع من دردشة والتعامل معها 479 00:19:23,400 --> 00:19:27,310 بطريقة التعليمية، ومن ثم يمكننا أن نضعها خلف ظهورنا في اليوم التالي. 480 00:19:27,310 --> 00:19:30,335 >> ذلك دون مزيد من اللغط، واتخاذ حافة الخروج من هذه المحادثة، 481 00:19:30,335 --> 00:19:35,080 السبب الجراء هي اعلى فقط لكسر الجليد للحظة واحدة. 482 00:19:35,080 --> 00:19:39,560 ولسوء الحظ، انهم جميعا النوم، ولكن ما كان من المفترض أن يحدث هنا 483 00:19:39,560 --> 00:19:41,760 وكان من المفترض كان الجميع إلى الرعب ونوع من الاسترخاء 484 00:19:41,760 --> 00:19:43,910 بعد تلك المحادثة ثقيلة جدا. 485 00:19:43,910 --> 00:19:46,930 ولكن يبدو أن أضع الجراء للنوم. 486 00:19:46,930 --> 00:19:50,070 ولكن إذا ذهبت إلى لCS50 الجراء موقع مائل، 487 00:19:50,070 --> 00:19:51,610 يمكنك مشاهدتها طوال اليوم. 488 00:19:51,610 --> 00:19:55,280 ولا سيما ربما 2:00، أو 03:00، أو 4:00 ليلا 489 00:19:55,280 --> 00:19:57,480 لرؤية تخفيف التوتر قليلا هناك. 490 00:19:57,480 --> 00:19:58,805 لذلك هذا هو خفض الجراء. 491 00:19:58,805 --> 00:20:01,700 492 00:20:01,700 --> 00:20:02,200 حسنا. 493 00:20:02,200 --> 00:20:03,020 لم يكن ذلك متعة؟ 494 00:20:03,020 --> 00:20:04,200 حسنا. 495 00:20:04,200 --> 00:20:07,140 لذلك، والعودة إلى بعض الكمبيوتر العلم، إذا جاز لي. 496 00:20:07,140 --> 00:20:10,600 >> لذلك، ويذكر أن آخر مرة بدأنا لا تبحث فقط في الرئيسية، التي 497 00:20:10,600 --> 00:20:13,930 وكانت وظيفة افتراضي، عندما العلم الأخضر النقر يعادل، 498 00:20:13,930 --> 00:20:16,999 ولكن بدأنا أيضا لفترة وجيزة كتابة بعض الوظائف الخاصة بنا. 499 00:20:16,999 --> 00:20:20,040 وحتى الآن لا شيء من هذه الوظائف كانت كبيرة بشكل خاص أو لحمي. 500 00:20:20,040 --> 00:20:24,570 سوف تحصل في تلك أكبر وظائف على الأرجح، مجموعة P 2، تعيين P 3، 501 00:20:24,570 --> 00:20:26,410 بالتأكيد وضع P 4 وما بعده. 502 00:20:26,410 --> 00:20:29,340 الحق الآن معظم البرامج الخاصة بك، إن لم يكن جميعهم، وبالتأكيد لP 503 00:20:29,340 --> 00:20:31,550 مجموعة 1 يمكن أن يتم كليا في الرئيسية. 504 00:20:31,550 --> 00:20:33,810 إذا كان البرنامج الوحيد خمسة أسطر، 10 خطوط، 505 00:20:33,810 --> 00:20:37,070 حتى 20 خطوط طويلة، تماما معقول لأنه يكتب 506 00:20:37,070 --> 00:20:40,930 كل ما في الرئيسية وعدم الإفراط تعقيد التعليمات البرمجية الخاصة بك، ولكن ما نفعله اليوم 507 00:20:40,930 --> 00:20:44,360 وفصاعدا تحاول أيضا إدخال بعض التقنيات التصميم الجيد 508 00:20:44,360 --> 00:20:48,660 بحيث كما يحصل التعليمات البرمجية الخاصة بك أكثر تعقيدا ولأن المشاكل 509 00:20:48,660 --> 00:20:51,690 كنت ترغب في حل تحصل على أكثر صعوبة و أكثر إثارة للاهتمام لديك، نوعا ما، 510 00:20:51,690 --> 00:20:55,850 الأدوات في الأدوات الخاصة بك التي لتصميم حلول جيدة لهؤلاء. 511 00:20:55,850 --> 00:21:01,210 >> لذا، دعونا نلقي نظرة سريعة إلى الوراء في هذا البرنامج من وجهة نظري الأسبوع الماضي، والتي 512 00:21:01,210 --> 00:21:06,550 وظائف صفر نقطة C. و لاحظت أن، بكل بساطة، 513 00:21:06,550 --> 00:21:10,310 يبدو مثل هذا مع اثنين وظائف والرئيسية واسم المطبوعة. 514 00:21:10,310 --> 00:21:13,160 والتفكير في العودة أو ربما الهندسة العكسية اليوم، 515 00:21:13,160 --> 00:21:16,880 ما هو الدافع لتقديم وظيفة في خط 28 ودعا، 516 00:21:16,880 --> 00:21:18,180 اسم المطبوعة؟ 517 00:21:18,180 --> 00:21:21,745 أو ما كان هذا مثالا للفي حيث المبدأ أو الوجبات الجاهزة، 518 00:21:21,745 --> 00:21:22,605 لو تفضلتم. 519 00:21:22,605 --> 00:21:26,560 520 00:21:26,560 --> 00:21:27,300 بعض لغط. 521 00:21:27,300 --> 00:21:28,830 ماذا؟ 522 00:21:28,830 --> 00:21:32,210 >> نعم التحلل وظيفية ذلك هو نوع من طريقة أخرى للقول، 523 00:21:32,210 --> 00:21:34,690 تتحلل البرنامج إلى أجزاء المكونة لها 524 00:21:34,690 --> 00:21:37,530 ومن ثم استخدام تلك الأجزاء لتجميع ككل. 525 00:21:37,530 --> 00:21:39,620 لذلك، وهذا هو أيضا مجرد نوع من الفم بالفعل، 526 00:21:39,620 --> 00:21:42,050 ولكن هذا هو ربما حتى مثال أفضل من شيء 527 00:21:42,050 --> 00:21:43,081 فقط ودعا التجريد. 528 00:21:43,081 --> 00:21:43,580 الصحيح؟ 529 00:21:43,580 --> 00:21:46,950 التجريد ستكون واحدة من الموضوعات المتكررة في CS50 530 00:21:46,950 --> 00:21:49,085 وأيضا علوم الكمبيوتر بشكل عام نظرا لأنه 531 00:21:49,085 --> 00:21:53,060 تقنية التي يمكنك حل المشكلات بشكل أكثر كفاءة لأنك 532 00:21:53,060 --> 00:21:56,807 يمكن إرسال المزيد من الحلول حدسي وبطريقة موازين 533 00:21:56,807 --> 00:21:58,390 وغير مفهومة من قبل أشخاص آخرين. 534 00:21:58,390 --> 00:21:59,860 ماذا يعني ذلك؟ 535 00:21:59,860 --> 00:22:04,340 >> لذلك، يمكن القول أنها أكثر قابلية للقراءة الكثير أن ننظر إلى مثل هذا البرنامج، 536 00:22:04,340 --> 00:22:05,990 باختصار فائقة على الرغم من أنه هو. 537 00:22:05,990 --> 00:22:10,050 عندما تراها على خط 22 أن هناك وظيفة ودعا، اسم المطبوعة. 538 00:22:10,050 --> 00:22:12,620 يقول أن الاسم وحده ما تقوم به. 539 00:22:12,620 --> 00:22:15,780 أن وظيفة يأخذ على ما يبدو المدخلات بين قوسين لها، 540 00:22:15,780 --> 00:22:18,600 وعلى ما يبدو لا شيء، يطبع اسم فرضا. 541 00:22:18,600 --> 00:22:20,880 وهكذا، على الرغم من أننا يمكن أن يكون على الاطلاق 542 00:22:20,880 --> 00:22:25,280 فعلت ما فعلنا قبل أسبوع، والذي كان مجرد اتخاذ هذا الخط الفعلي للقانون، 543 00:22:25,280 --> 00:22:28,710 تخلص من هذا، والحصول على التخلص من كل هذا معا، 544 00:22:28,710 --> 00:22:31,436 نحن نوع من المستخرجة بعيدا فكرة طباعة الاسم. 545 00:22:31,436 --> 00:22:33,060 لا يهمني إذا كنت تستخدم مواطنه الطباعة. 546 00:22:33,060 --> 00:22:35,601 لا يهمني إذا كان لديك في المئة S وN. مائل هذه 547 00:22:35,601 --> 00:22:37,270 هي تفاصيل غامضة بشكل لا يصدق. 548 00:22:37,270 --> 00:22:40,090 ما نهتم باعتباره مبرمج تطبع اسم. 549 00:22:40,090 --> 00:22:43,414 وهكذا، ما أفضل طريقة للقيام بذلك من خلال الدعوة وظيفة، اسم المطبوعة؟ 550 00:22:43,414 --> 00:22:46,330 وهكذا، وكان ذلك أحد الدوافع لفعل شيء من هذا القبيل. 551 00:22:46,330 --> 00:22:50,370 مما يجعل رمز أكثر قابلية للقراءة، وأكثر قابلة لإعادة الاستخدام، وأيضا النفس وصفي. 552 00:22:50,370 --> 00:22:52,120 الآن، دعونا نلقي نظرة في مثال آخر، 553 00:22:52,120 --> 00:22:56,220 التي كانت وظائف واحد، الذي كان لدينا أكثر من هنا. 554 00:22:56,220 --> 00:23:00,367 >> لذلك، هذا هو واحد ربما أكثر مقنعة، لأنه في هذه الحالة، 555 00:23:00,367 --> 00:23:01,700 أنا لا أريد أن مجرد الحصول على عدد صحيح. 556 00:23:01,700 --> 00:23:03,320 أريد الحصول على الباحث إيجابي. 557 00:23:03,320 --> 00:23:06,470 واتضح للحصول على إيجابية كثافة العمليات ما عليك القيام به حفنة من يغوورك. 558 00:23:06,470 --> 00:23:06,969 الصحيح؟ 559 00:23:06,969 --> 00:23:09,600 انها ليست سطر واحد بسيط استدعاء وكأنه كان اسم المطبوعة، 560 00:23:09,600 --> 00:23:11,480 وهو المسلم أقل إلحاحا. 561 00:23:11,480 --> 00:23:16,000 >> للحصول على كثافة العمليات إيجابي، logically-- اسمحوا لي أن انتقل إلى أسفل لإخفاء ذلك. 562 00:23:16,000 --> 00:23:18,887 ماذا عليك أن تفعل؟ 563 00:23:18,887 --> 00:23:20,720 مثل كل الأدوات التي لدينا في لحظة 564 00:23:20,720 --> 00:23:24,440 أشياء مثل مواطنه الطباعة من المعيار المكتبة وأيضا من مكتبة CS50 565 00:23:24,440 --> 00:23:26,990 لدينا احصل على كثافة العمليات، واحصل على تعويم، الحصول طويل طويل، الحصول على سلسلة، 566 00:23:26,990 --> 00:23:29,260 ولكن واحدة فقط، وثيق الصلة، الآن هو الحصول على كثافة العمليات. 567 00:23:29,260 --> 00:23:32,970 لذلك، إذا كانت الأداة الوحيدة لديك في صندوق الأدوات الخاص بك هو الحصول على كثافة العمليات، 568 00:23:32,970 --> 00:23:35,505 كيف يمكننا التوجه نحو تنفيذ ذلك للحصول على كثافة العمليات إيجابية؟ 569 00:23:35,505 --> 00:23:35,929 >> الحضور: إنشاء سجل وتحقق على ما إذا كانت المدخلات التي قدموها 570 00:23:35,929 --> 00:23:36,762 كان إيجابيا أم لا. 571 00:23:36,762 --> 00:23:39,390 572 00:23:39,390 --> 00:23:40,640 >> رئيس 1: الكمال. 573 00:23:40,640 --> 00:23:41,200 بالضبط. 574 00:23:41,200 --> 00:23:43,950 أداة أخرى لدينا في الأدوات من أسبوع أو أسبوعين قبل 575 00:23:43,950 --> 00:23:45,419 هو مجرد بناء حلقات. 576 00:23:45,419 --> 00:23:48,210 وهكذا، نعم، إذا استخدمنا بعض الوقت حلقة، أو افعل حين حلقة، أو الصدارة 577 00:23:48,210 --> 00:23:50,850 حلقة أننا ربما يمكن أن تحصل بعيدا مع أي من تلك بشكل أو بآخر. 578 00:23:50,850 --> 00:23:55,140 يمكننا تنفيذ فكرة الحصول على الباحث إيجابي فقط باستخدام احصل على كثافة العمليات، 579 00:23:55,140 --> 00:23:57,830 ومن ثم تبقي فقط اصفا اياه مرة أخرى والحفاظ على المضايقه المستخدم 580 00:23:57,830 --> 00:24:00,320 حتى انه أو انها فعلا يعطينا ما نريد. 581 00:24:00,320 --> 00:24:03,260 >> وحتى الآن، وهذا التجريد من عملية 582 00:24:03,260 --> 00:24:05,680 للحصول على كثافة العمليات إيجابي في وظيفة تسمى 583 00:24:05,680 --> 00:24:08,930 الحصول إيجابي كثافة العمليات هو أكثر من ذلك بقليل قاهرة لإلقاء نظرة على هذا. 584 00:24:08,930 --> 00:24:10,990 هذه هي مثل 10 زائد خطوط من التعليمات البرمجية التي 585 00:24:10,990 --> 00:24:15,090 ويشارك في الحصول على كثافة الإيجابي، وأنا لا يهمني حقا كيف يمكنك أن تفعل ذلك. 586 00:24:15,090 --> 00:24:17,850 كل ما يهمني هو أن أن تفعل ذلك، وحتى لقد قمت 587 00:24:17,850 --> 00:24:21,660 مخفي كل هذه التفاصيل وراء وظيفة تسمى احصل على الإيجابية الباحث أن، 588 00:24:21,660 --> 00:24:23,430 في الواقع، لديه هذا القيام به أثناء الحلقة. 589 00:24:23,430 --> 00:24:27,660 >> ونرى في الاسبوع الماضي لبناء الجملة هناك، لكنه يعلن فقط N، 590 00:24:27,660 --> 00:24:29,800 وذلك بطباعة تعليمات للمستخدم. 591 00:24:29,800 --> 00:24:33,330 ويدعو احصل على كثافة العمليات ومن ثم فإنه يتحقق هذا الشرط مرة أخرى، ومرة ​​أخرى، 592 00:24:33,330 --> 00:24:35,230 ومرة أخرى حتى يتعاون المستخدم. 593 00:24:35,230 --> 00:24:38,000 >> وحتى الآن، وبعض الفحوصات التعقل. 594 00:24:38,000 --> 00:24:40,370 بالنسبة لأولئك ربما مألوفة مع بعض البرمجة، 595 00:24:40,370 --> 00:24:46,410 لماذا أعلن N، ماذا يمكنني إنشاء N خارج افعل حين حلقة؟ 596 00:24:46,410 --> 00:24:50,370 لماذا هو على خط 29 وليس على غرار 33، على سبيل المثال. 597 00:24:50,370 --> 00:24:53,529 >> الحضور: لأنه عندما كنت تعلن الخارج، نوع 598 00:24:53,529 --> 00:24:56,688 أكثر من ذلك، وscope-- أكبر 599 00:24:56,688 --> 00:24:58,146 >> رئيس 1: جيد. 600 00:24:58,146 --> 00:24:59,604 >> الحضور: --and إذا قمت بتعريف ذلك داخل الحلقة، [غير مسموع] 601 00:24:59,604 --> 00:25:00,979 لأنه لا يعرف عن ذلك. 602 00:25:00,979 --> 00:25:02,819 603 00:25:02,819 --> 00:25:03,610 رئيس 1: بالضبط. 604 00:25:03,610 --> 00:25:06,330 اذا كنت استطيع simplify-- انها مسألة النطاق. 605 00:25:06,330 --> 00:25:11,530 ويشير نطاق إلى السياق التي متغير موجود أو غير صالحة للاستعمال. 606 00:25:11,530 --> 00:25:15,050 وحكم جميلة من الإبهام هنا هي أن عموما عندما تقوم بتعريف أو إنشاء 607 00:25:15,050 --> 00:25:21,642 متغير يمكنك فقط استخدامه داخل من أقرب احتضان الأقواس المعقوفة. 608 00:25:21,642 --> 00:25:22,600 فماذا يعني ذلك؟ 609 00:25:22,600 --> 00:25:26,551 إذا أنا، بدلا من ذلك، التراجع عن هذا وتذهب مع شيء أن يشعر أبسط قليلا. 610 00:25:26,551 --> 00:25:27,050 الصحيح؟ 611 00:25:27,050 --> 00:25:29,360 >> خط 32 فقط تبدو أفضل بالنسبة لي الآن. 612 00:25:29,360 --> 00:25:31,500 أنا أفعل كل من الأشياء في مرة واحدة ثم تعيين 613 00:25:31,500 --> 00:25:33,070 اليد اليمنى على اليد اليسرى. 614 00:25:33,070 --> 00:25:35,180 المشكلة الآن على أساس أن تعريف نطاق 615 00:25:35,180 --> 00:25:41,130 هو أن N يمكن استخدامها في خطوط 31 و 32 داخل هذه الحلقة، 616 00:25:41,130 --> 00:25:45,100 ولكن أين من قبل أن التعريف يمكن أن لا يتم استخدامها؟ 617 00:25:45,100 --> 00:25:45,660 في خط ماذا؟ 618 00:25:45,660 --> 00:25:46,160 نعم. 619 00:25:46,160 --> 00:25:47,490 >> الحضور: 35. 620 00:25:47,490 --> 00:25:49,180 >> رئيس 1: 35. 621 00:25:49,180 --> 00:25:50,480 بالتأكيد ليست 35. 622 00:25:50,480 --> 00:25:52,349 وكما في أي مكان آخر؟ 623 00:25:52,349 --> 00:25:52,890 الحضور: 34. 624 00:25:52,890 --> 00:25:55,040 رئيس 1: حتى 34 غير إشكالية لأنه 625 00:25:55,040 --> 00:25:56,450 خارج الأقواس المعقوفة. 626 00:25:56,450 --> 00:25:58,200 وهكذا في الواقع، دعونا نرى ما سيحدث. 627 00:25:58,200 --> 00:25:58,700 الصحيح؟ 628 00:25:58,700 --> 00:26:00,722 قد يبدو هذا قليلا بديهية لا أو ربما، 629 00:26:00,722 --> 00:26:02,680 ولكن دعونا نرى ما المترجم أن أقول عندما 630 00:26:02,680 --> 00:26:04,730 نذهب إلى الدليل المصدر اليوم. 631 00:26:04,730 --> 00:26:08,950 جعل وظيفة واحدة. 632 00:26:08,950 --> 00:26:11,231 يا إلهي. 633 00:26:11,231 --> 00:26:12,980 حسنا، انتهيت أخيرا التي، بالمناسبة. 634 00:26:12,980 --> 00:26:14,030 حسنا. 635 00:26:14,030 --> 00:26:15,510 وما هو القضية هنا؟ 636 00:26:15,510 --> 00:26:17,430 غامضة جدا أن ننظر إلى. 637 00:26:17,430 --> 00:26:19,570 ولكن هنا ما typed-- جعل وظيفة واحدة. 638 00:26:19,570 --> 00:26:21,640 وهنا ما جعل يسببها، الذي هو في الواقع 639 00:26:21,640 --> 00:26:23,705 باستخدام رنة مترجم مع بعض من تلك الأعلام 640 00:26:23,705 --> 00:26:25,080 أننا سنرى مرة أخرى قبل فترة طويلة. 641 00:26:25,080 --> 00:26:26,829 ومرة أخرى، تبدو دائما في الخطأ الأول، 642 00:26:26,829 --> 00:26:30,540 لأنه قد يكون مجرد المتتالية تأثير لا معنى له على خطوط أخرى. 643 00:26:30,540 --> 00:26:34,410 >> وذلك ما يعنيه هذا هو أن المشكلة هي في وظيفة 1.ج 644 00:26:34,410 --> 00:26:36,890 كان على خط 32. 645 00:26:36,890 --> 00:26:39,712 وانها في العمود، أو حرف، 13. 646 00:26:39,712 --> 00:26:42,670 لذلك عندما محرر النص الخاص بك التي يمكن أن تساعدك على تحديد حيث كانت المشكلة. 647 00:26:42,670 --> 00:26:47,079 حتى لو كنت انتقل لأعلى، ما هو خط 32؟ 648 00:26:47,079 --> 00:26:49,120 وهذا في الواقع هذا واحد وهذا ما قد القى الضوء 649 00:26:49,120 --> 00:26:50,607 ن متغير الحق غير المستخدمة here--. 650 00:26:50,607 --> 00:26:51,440 ولكنها ليست غير المستخدمة. 651 00:26:51,440 --> 00:26:52,320 أنا استخدامه. 652 00:26:52,320 --> 00:26:56,110 ولكن المترجم في الخلط، لأن أنه موجود فقط داخل هذا النطاق. 653 00:26:56,110 --> 00:26:57,727 ولذا لا يمكن استخدامه هنا. 654 00:26:57,727 --> 00:26:58,560 أنا لا يمكن استخدامه هنا. 655 00:26:58,560 --> 00:27:01,320 والمترجم، وبالتالي، لا أهتم حتى أن أحاول. 656 00:27:01,320 --> 00:27:03,940 يبدو أن غير المستخدمة ضمن نطاقه الفعلي. 657 00:27:03,940 --> 00:27:08,854 >> حتى نتمكن من توسيع نطاق بالممارسة بالضبط ما بدأنا with-- كثافة العمليات ن. 658 00:27:08,854 --> 00:27:11,020 وعلى الرغم من أنها لا تبدو أنيقة كما، ربما، 659 00:27:11,020 --> 00:27:15,110 ونحن اتخاذ خط اضافي هنا، والآن هو في نطاق كل مكان. 660 00:27:15,110 --> 00:27:15,970 لذلك دعونا نحاول مرة أخرى. 661 00:27:15,970 --> 00:27:19,040 لذلك جعل وظيفة واحدة. 662 00:27:19,040 --> 00:27:19,610 لطيف. 663 00:27:19,610 --> 00:27:23,370 والآن لو أنني إذا قمت بتشغيل وظيفة واحدة، دعونا إعطائها سلبية 10، 664 00:27:23,370 --> 00:27:27,170 سلبي 1، 0، 1، ويعمل في الواقع. 665 00:27:27,170 --> 00:27:28,610 >> ولذلك لا يوجد حل آخر هنا. 666 00:27:28,610 --> 00:27:29,280 أتعلم؟ 667 00:27:29,280 --> 00:27:31,230 ماذا لو أنا حقا المصارعة مع هذا؟ 668 00:27:31,230 --> 00:27:33,140 أنا لا أعرف من أين ن من المفترض أن تذهب. 669 00:27:33,140 --> 00:27:33,723 أتعلم؟ 670 00:27:33,723 --> 00:27:39,220 أنا ذاهب لمجرد وضعه كل الطريقة في الجزء العلوي من الملف الخاص بي هنا. 671 00:27:39,220 --> 00:27:42,835 ما فإن هذا لا، هل تعتقد؟ 672 00:27:42,835 --> 00:27:43,335 نعم؟ 673 00:27:43,335 --> 00:27:44,251 >> الحضور: (غير مسموع). 674 00:27:44,251 --> 00:27:47,964 675 00:27:47,964 --> 00:27:48,630 رئيس 1: نعم. 676 00:27:48,630 --> 00:27:50,560 حتى لقد جعلت العالمية، إذا جاز التعبير. 677 00:27:50,560 --> 00:27:54,430 إذا كان لديك متغير هذا خارج جميع مهامكم أن يسمح، 678 00:27:54,430 --> 00:27:58,780 ورمز يجب ترجمة، ون حينئذ يمكن الوصول ليس فقط في الحصول على 679 00:27:58,780 --> 00:28:02,490 الباحث إيجابي، ولكن أيضا في main-- التي هو القليل من إثارة للقلق لأنه لا يوجد 680 00:28:02,490 --> 00:28:04,864 بالفعل ن في main، أكثر من ذلك على أن في مجرد اللحظات، 681 00:28:04,864 --> 00:28:06,530 ولكن هذا من شأنه أن يعتبر تصميم سيئة. 682 00:28:06,530 --> 00:28:06,910 حسنا. 683 00:28:06,910 --> 00:28:08,570 إذا كان لديك اللجوء إلى شيء من هذا القبيل، أوه، وسوف أكون 684 00:28:08,570 --> 00:28:10,125 مجرد وضعها هنا ل يبدو رمز لتجميع 685 00:28:10,125 --> 00:28:12,180 عموما ليست أفضل الممارسات. 686 00:28:12,180 --> 00:28:14,590 بدلا كنت ترغب في اختيار في أضيق نطاق ممكن 687 00:28:14,590 --> 00:28:18,720 للمتغيرات الخاصة بك، وهو ما يعني الذهاب مع شركائنا في التصميم الأولي، التي 688 00:28:18,720 --> 00:28:19,920 هو هنا. 689 00:28:19,920 --> 00:28:24,400 >> الآن بوصفها جانبا، إذا لم يكون واسمه مطابق-المتغير هنا، 690 00:28:24,400 --> 00:28:27,750 وهناك طريقة لمعالجة ج this-- على الرغم من أن هذا لن يحدث often-- جدا 691 00:28:27,750 --> 00:28:30,150 غير أن هذا لا يزال غرامة تماما هنا. 692 00:28:30,150 --> 00:28:35,000 ولكن هذا التعريف للن في خط 22 سوف الظل عالمية. 693 00:28:35,000 --> 00:28:38,190 وبالتالي فإن هذا واحد يعمل داخل الرئيسية، واحد عالميا 694 00:28:38,190 --> 00:28:41,670 ستطبق فعليا عندما كنت في الحصول على إيجابية الباحث لكن أكثر على ذلك 695 00:28:41,670 --> 00:28:43,890 وقت آخر، ولكن فقط بالنسبة لأولئك الفضوليين. 696 00:28:43,890 --> 00:28:45,970 >> هكذا وباختصار، نصلح هذا هنا. 697 00:28:45,970 --> 00:28:49,220 الآن دعونا ندف عدا قطعتين أخرى قبل أن ننظر في سطر واحد الأخير من التعليمات البرمجية 698 00:28:49,220 --> 00:28:50,170 في هذا البرنامج. 699 00:28:50,170 --> 00:28:52,170 الحصول على الباحث إيجابي. 700 00:28:52,170 --> 00:28:54,450 على الجانب الأيسر من كلمتها هي كثافة الكلمة. 701 00:28:54,450 --> 00:28:56,860 ماذا يعني أن دلالة رأيك؟ 702 00:28:56,860 --> 00:28:58,900 حتى الآن رأيناه في الغالب باطلة. 703 00:28:58,900 --> 00:28:59,400 نعم؟ 704 00:28:59,400 --> 00:29:01,810 >> الحضور: إنها نوع من المتغير الذي كنت طالبا عنه. 705 00:29:01,810 --> 00:29:04,550 >> رئيس 1: نعم انها نوع، واسمحوا لي لا أقول متغير، ولكن نوع من القيمة 706 00:29:04,550 --> 00:29:05,990 هذا أنا أسأل مرة أخرى ل. 707 00:29:05,990 --> 00:29:08,070 والواقع، وهذا بديهية هنا، ونأمل. 708 00:29:08,070 --> 00:29:08,200 الصحيح؟ 709 00:29:08,200 --> 00:29:10,250 إذا كنت ترغب في الحصول على الباحث إيجابي، ما هو لك 710 00:29:10,250 --> 00:29:12,920 تريد function-- مثل لدينا متطوعون من الأسبوع الماضي 711 00:29:12,920 --> 00:29:15,720 لتسليم بعودتكم قطعة من الورق مع الباحث على ذلك؟ 712 00:29:15,720 --> 00:29:19,190 ولذا فإننا قد حددت أن يسمى النوع عودة هذه الوظيفة 713 00:29:19,190 --> 00:29:20,450 هو الحصول على الباحث إيجابي. 714 00:29:20,450 --> 00:29:22,990 إذا لم نكن نريد ل يعود أي شيء، ويقول لك باطلا. 715 00:29:22,990 --> 00:29:25,270 إذا كنت تريد أن العودة سلسلة، ويقول لك السلسلة. 716 00:29:25,270 --> 00:29:27,310 إذا كنت تريد أن العودة تعويم، ويقول لك تعويم. 717 00:29:27,310 --> 00:29:30,440 ولكن الوحيد الذي ينطبق هنا منطقيا، لأنني أستخدم الحصول على الباحث، 718 00:29:30,440 --> 00:29:34,130 على الرغم من أنني تقييدها ل القيم الإيجابية، هو إرجاع الباحث. 719 00:29:34,130 --> 00:29:38,380 >> هكذا العكس من ذلك، ما الذي يعنيه أن هناك فراغا بين قوسين؟ 720 00:29:38,380 --> 00:29:40,130 ما يفعله الأقواس تعريف عموما؟ 721 00:29:40,130 --> 00:29:40,588 نعم؟ 722 00:29:40,588 --> 00:29:42,880 >> الحضور: وهذا يعني أن الدالة لا تحصل فعلا. 723 00:29:42,880 --> 00:29:44,650 >> رئيس 1: ويقصد بها الدالة لم يكن في الواقع الحصول على ماذا؟ 724 00:29:44,650 --> 00:29:45,430 >> الحضور: مدخلا. 725 00:29:45,430 --> 00:29:46,763 >> رئيس 1: مدخلا، على الإطلاق. 726 00:29:46,763 --> 00:29:49,870 حتى في الواقع، إذا قوسين هنا يمكنك تحديد باطلا، 727 00:29:49,870 --> 00:29:51,650 هذا يعني فقط أنا لا أريد أي مساهمة. 728 00:29:51,650 --> 00:29:53,269 سوف تعامل مع المشكلة نفسي. 729 00:29:53,269 --> 00:29:55,810 وبالفعل، لم يكن لديك ل أقول الحصول على أي شيء إيجابي كثافة العمليات. 730 00:29:55,810 --> 00:29:59,630 كنت أقول، والحصول على كثافة العمليات الإيجابية، والتي وظيفة تنفجر وبذل كل شيء. 731 00:29:59,630 --> 00:30:02,970 >> ولكن كان هناك القليل الحيلة لدي تم اللعب هنا هذا طوال الوقت 732 00:30:02,970 --> 00:30:04,970 للتأكد من هذا الرمز يجمع. 733 00:30:04,970 --> 00:30:09,620 لاحظ أن int-- الحصول إيجابية الباحث void-- على خط 27. 734 00:30:09,620 --> 00:30:14,530 ولكن لسبب ما يبدو غريب كما انها هنا في السطر 16. 735 00:30:14,530 --> 00:30:18,530 وفقط لحسن التدبير سوف أكرر هذا حتى انها متطابقة تماما. 736 00:30:18,530 --> 00:30:21,640 وقلت النموذج مع قليلا من سطر واحد للتعليق. 737 00:30:21,640 --> 00:30:28,850 ماذا يحدث إذا قمت بحذف ذلك، و أعد الآن جعل وظيفة 1، يدخل. 738 00:30:28,850 --> 00:30:29,350 يصيح. 739 00:30:29,350 --> 00:30:32,527 740 00:30:32,527 --> 00:30:33,110 إنتظر دقيقه. 741 00:30:33,110 --> 00:30:34,764 أين التبويب الخاص بي؟ 742 00:30:34,764 --> 00:30:35,263 هاه؟ 743 00:30:35,263 --> 00:30:37,969 744 00:30:37,969 --> 00:30:39,620 تعليق. 745 00:30:39,620 --> 00:30:41,570 جعل وظيفة 1. 746 00:30:41,570 --> 00:30:42,150 هناك نذهب. 747 00:30:42,150 --> 00:30:42,310 حسنا. 748 00:30:42,310 --> 00:30:43,400 لم حفظه بشكل صحيح. 749 00:30:43,400 --> 00:30:45,220 لذلك، أعتقد أن هناك قليلا علة هنا حيث أنا لست 750 00:30:45,220 --> 00:30:46,636 رؤية اسم علامة التبويب في الوقت الراهن. 751 00:30:46,636 --> 00:30:47,940 ما الذي يجري هنا؟ 752 00:30:47,940 --> 00:30:52,210 إعلان ضمني من وظيفة الحصول على الباحث إيجابي غير صالح في C99. 753 00:30:52,210 --> 00:30:53,940 لذلك الخلط مرة أخرى. 754 00:30:53,940 --> 00:30:55,200 فما هو هذا يدل على؟ 755 00:30:55,200 --> 00:30:57,287 حسنا، اتضح أن C هو غبي جدا. 756 00:30:57,287 --> 00:30:59,912 حسنا، انها البرمجة اللغة، أو بالأحرى المترجم هو. 757 00:30:59,912 --> 00:31:02,940 هو وحده يعلم ما لديك تدريسها، وانها فقط 758 00:31:02,940 --> 00:31:05,640 الذهاب إلى معرفة شيء إذا كنت تدرس من قبل. 759 00:31:05,640 --> 00:31:07,960 وبعبارة أخرى، في الرئيسية في هذه اللحظة، وأنا 760 00:31:07,960 --> 00:31:10,900 محاولة استدعاء دالة دعا حصول الباحث إيجابي. 761 00:31:10,900 --> 00:31:14,120 ولكن المترجم لن لاحظت أن تحصل الباحث إيجابي 762 00:31:14,120 --> 00:31:16,500 موجود حتى خط 26. 763 00:31:16,500 --> 00:31:21,360 وذلك ما يقوم به هو مجرد مترجم أخطاء بمجرد أن يحصل على خط 17، 764 00:31:21,360 --> 00:31:23,700 قائلا الإعلان الضمني من الحصول على كثافة العمليات الإيجابية، التي 765 00:31:23,700 --> 00:31:27,740 هو مجرد طريقة أخرى للقول، وأنا لا معرفة ما تحصل عليه هو الباحث إيجابي حتى الآن. 766 00:31:27,740 --> 00:31:31,240 >> لغات أخرى مثل جاوة و بايثون وروبي قد نتطلع إلى الأمام. 767 00:31:31,240 --> 00:31:32,240 C لا. 768 00:31:32,240 --> 00:31:35,110 وبالتالي فإن الطريقة نصلح هذه هي واحدة من طريقتين. 769 00:31:35,110 --> 00:31:40,160 إما واحدة، إذا كانت المشكلة هي أن الحصول على لم ينظر الباحث إيجابي من قبل، 770 00:31:40,160 --> 00:31:42,150 حسنا، اسمحوا لي فقط تحريكه إلى الأعلى. 771 00:31:42,150 --> 00:31:43,650 ومن شأن ذلك أن حل هذه المشكلة. 772 00:31:43,650 --> 00:31:46,790 ولكن عموما، انها تعتبر تقنية أفضل 773 00:31:46,790 --> 00:31:50,220 لوضع المهمة الرئيسية الخاصة بك في غاية أعلى حتى أن الإنسان قراءة التعليمات البرمجية 774 00:31:50,220 --> 00:31:52,710 يعرف ما يقوم به البرنامج، لالرئيسي هو عدم دفن جميع 775 00:31:52,710 --> 00:31:53,960 الطريق في الجزء السفلي أو في الوسط. 776 00:31:53,960 --> 00:31:55,130 انها في أعلى جدا. 777 00:31:55,130 --> 00:31:56,410 بحيث لا يشعر المثالي. 778 00:31:56,410 --> 00:31:58,326 ويمكنك الحصول على الواقع في الحالات التي يكون فيها 779 00:31:58,326 --> 00:32:00,820 إذا المكالمات وظيفة واحدة آخر مما يستدعي آخر، 780 00:32:00,820 --> 00:32:04,630 يمكنك الحصول في مشكلة حيث لا يمكن أن تذهب فوق الأخرى، منطقيا. 781 00:32:04,630 --> 00:32:05,920 انها مجرد غير ممكن. 782 00:32:05,920 --> 00:32:09,290 >> وبالتالي فإن الطريقة للعمل حول هذا لتأخذ فقط 783 00:32:09,290 --> 00:32:13,200 توقيع وظيفة، لذلك لspeak-- السطر الأول حيث انها declared-- 784 00:32:13,200 --> 00:32:16,850 ومجرد نسخ ولصق عليه في أعلى، ولكن ليس مع braces-- مجعد 785 00:32:16,850 --> 00:32:17,980 فقط بفاصلة منقوطة. 786 00:32:17,980 --> 00:32:20,840 انها مثل قليلا تلميح ما هو آت. 787 00:32:20,840 --> 00:32:26,630 في واقع الأمر، كل هذا الوقت عندما كنا لقد رأينا أشياء مثل io.h القياسية 788 00:32:26,630 --> 00:32:33,040 وcs50.h، وبالمثل، في تلك النقطة ملفات ح وهناك نماذج أخرى. 789 00:32:33,040 --> 00:32:35,250 وسنرى أنه قبل فترة طويلة. 790 00:32:35,250 --> 00:32:39,340 >> هكذا وباختصار، عندما يكون لديك برنامج في ملف مع وظائف متعددة 791 00:32:39,340 --> 00:32:42,300 إلى جانب رئيسي، كنت تقريبا دائما نريد أن يعلن لهم 792 00:32:42,300 --> 00:32:45,360 فقط عن طريق أولهم الخط، تليها فاصلة منقوطة، 793 00:32:45,360 --> 00:32:48,410 في أعلى جدا من الملف. 794 00:32:48,410 --> 00:32:50,460 كان ذلك كثيرا في كل مرة. 795 00:32:50,460 --> 00:32:53,130 أي أسئلة؟ 796 00:32:53,130 --> 00:32:53,920 أي أسئلة؟ 797 00:32:53,920 --> 00:32:54,530 حسنا. 798 00:32:54,530 --> 00:32:59,760 >> لذلك دعونا ننتقل بعد ذلك إلى شيء مثل السعال. 799 00:32:59,760 --> 00:33:00,260 اه. 800 00:33:00,260 --> 00:33:00,570 كيف المناسب. 801 00:33:00,570 --> 00:33:01,220 حسنا. 802 00:33:01,220 --> 00:33:02,260 السعال. 803 00:33:02,260 --> 00:33:05,080 حتى هنا هو ج تنفيذ برنامج 804 00:33:05,080 --> 00:33:07,560 فعلنا ذلك اليوم في الصفر التي ببساطة شديدة فقط 805 00:33:07,560 --> 00:33:08,691 يقول السعال والسعال والسعال. 806 00:33:08,691 --> 00:33:09,190 حسنا. 807 00:33:09,190 --> 00:33:11,136 وقال أحدهم قليلة قبل أيام أن هناك 808 00:33:11,136 --> 00:33:12,760 طريقة لتنظيف هذا الرمز تصل بالفعل. 809 00:33:12,760 --> 00:33:12,880 حسنا؟ 810 00:33:12,880 --> 00:33:15,440 في أقرب وقت كما كنت نسخ و لصق التصميم ربما سيئة. 811 00:33:15,440 --> 00:33:18,725 مرة واحدة على الأقل نصل إلى أربعة أو خمسة أو 20 السعال، فإنه يشعر ممارسة سيئة. 812 00:33:18,725 --> 00:33:19,850 نحن فقط نأخذ نسخة، اللصق. 813 00:33:19,850 --> 00:33:22,213 ما هو الحل واضح لتنظيف هذا البرنامج يصل؟ 814 00:33:22,213 --> 00:33:23,120 >> الحضور: حلقة. 815 00:33:23,120 --> 00:33:23,350 >> رئيس 1: نعم. 816 00:33:23,350 --> 00:33:24,070 وذلك باستخدام حلقة. 817 00:33:24,070 --> 00:33:27,697 ويمكننا استخدام حلقة ل، حين حلقة، أي عدد من النهج. 818 00:33:27,697 --> 00:33:29,780 والواقع، وهذا ما نقوم به في إصدار واحد هنا. 819 00:33:29,780 --> 00:33:32,250 لقد بدلا إعادة كتابة عليه في إصدار واحد من cough.c 820 00:33:32,250 --> 00:33:35,170 أن يكون السعال عادل ضمن حلقة ل. 821 00:33:35,170 --> 00:33:38,240 كل الحق، ولكن هناك ل الفرصة الآن لنوع من بداية 822 00:33:38,240 --> 00:33:41,630 لتصميم هذا قليلا أشبه الدرس تعلمنا منذ لحظة، 823 00:33:41,630 --> 00:33:46,190 وهو this-- نفترض أنني أريد إنشاء دالة يسمى السعال، 824 00:33:46,190 --> 00:33:49,730 دعونا نتأمل لمجرد لحظة ما أريد لها أن تبدو. 825 00:33:49,730 --> 00:33:51,900 حتى لو كنت تريد شيئا للسعال، أنا فقط بحاجة 826 00:33:51,900 --> 00:33:53,800 استخدام الطباعة و داخل الدالة. 827 00:33:53,800 --> 00:33:55,030 وبالفعل أنا. 828 00:33:55,030 --> 00:33:56,990 في واقع الأمر، كل هذا الوقت، في أي وقت أنت 829 00:33:56,990 --> 00:33:59,000 طباعة شيء ل الشاشة، وهو مبرمج 830 00:33:59,000 --> 00:34:00,610 سيدعو أن الآثار الجانبية. 831 00:34:00,610 --> 00:34:02,990 انها ليست لي تسليم شخص مرة أخرى قيمة. 832 00:34:02,990 --> 00:34:06,170 انها لي اتخاذ بعض الإجراءات قد يكون واضحا بصريا. 833 00:34:06,170 --> 00:34:10,672 ولكن هذه الوظيفة السعال، وأنها لا تعود أي شيء مبني على أول سطر فيها؟ 834 00:34:10,672 --> 00:34:12,880 لا، لأن نوع عودتها هو الفراغ، وهو ما يعني فقط 835 00:34:12,880 --> 00:34:14,250 انها ليست لي أي شيء تسليم الظهر. 836 00:34:14,250 --> 00:34:16,791 قد أن تفعل شيئا بصريا، ولكنها ليست تسليم لي 837 00:34:16,791 --> 00:34:18,639 نسخ قطعة من الورق مثل الأسبوع الماضي. 838 00:34:18,639 --> 00:34:21,310 >> هل تحتاج إلى أي الإدخال؟ 839 00:34:21,310 --> 00:34:21,810 لا. 840 00:34:21,810 --> 00:34:23,134 وحتى انها باطلة هنا أيضا. 841 00:34:23,134 --> 00:34:25,600 لذلك هذا هو أيضا نوع من الإفراط في هندسة هذه المشكلة. 842 00:34:25,600 --> 00:34:26,099 الصحيح؟ 843 00:34:26,099 --> 00:34:28,820 لقد جعل البرنامج أكثر معقدة، والمزيد من خطوط للقانون، 844 00:34:28,820 --> 00:34:31,889 أنا لم تقدم عليه أي أكثر وظيفية، ولكن هذا 845 00:34:31,889 --> 00:34:34,210 سيكون نقطة انطلاق، ربما، على أوسع 846 00:34:34,210 --> 00:34:36,830 السياق مع رمز أكثر تعقيدا. 847 00:34:36,830 --> 00:34:38,150 ولكن ماذا عن هذا؟ 848 00:34:38,150 --> 00:34:42,050 ما لي done-- فقط بإلقاء نظرة خاطفة على هذا دون النظر في تعليق 849 00:34:42,050 --> 00:34:46,076 في أعلى جدا من الملف-- ما يكون أنا في الأساس القيام به هنا مع السعال بلدي 850 00:34:46,076 --> 00:34:47,409 تنفيذ هذا مختلفا؟ 851 00:34:47,409 --> 00:34:48,327 نعم، في الظهر؟ 852 00:34:48,327 --> 00:34:51,384 >> الحضور: جعله حتى تتمكن من لها طابع إيقاف. 853 00:34:51,384 --> 00:34:52,050 رئيس 1: نعم. 854 00:34:52,050 --> 00:34:53,270 لذلك هذا النوع من يشعر لطيف. 855 00:34:53,270 --> 00:34:53,389 الصحيح؟ 856 00:34:53,389 --> 00:34:56,600 انها مثل إضافة ميزة لبك برنامج أو وظيفة الخاص بك، في هذه الحالة. 857 00:34:56,600 --> 00:34:57,830 لا يزال يعود أي شيء. 858 00:34:57,830 --> 00:35:00,538 قد يكون لها تأثير الجانب البصري، لأنه يدعو الطباعة و. 859 00:35:00,538 --> 00:35:02,800 ولكن الآن لقد parametrized وظيفة، والتي 860 00:35:02,800 --> 00:35:06,470 يعني لقد اتخذت محدد مدخلات من نوع int والذي يطلق عليه ن، 861 00:35:06,470 --> 00:35:08,510 ولكن يمكن أن نسميها أي شيء أريد. 862 00:35:08,510 --> 00:35:11,550 في الواقع، يمكن أن يكون مجرد مرة لتكون أكثر وضوحا. 863 00:35:11,550 --> 00:35:13,310 ثم أتمكن من تغيير هذا فقط هنا. 864 00:35:13,310 --> 00:35:16,450 ولكن النقطة المهمة هي أن هذه هي الطريقة I إنشاء دالة التي تأخذ المدخلات. 865 00:35:16,450 --> 00:35:19,530 وإذا كنتم تذكرون التقليب من خلال الانترنت ربما في واحدة 866 00:35:19,530 --> 00:35:23,000 من المشي الاقدام، و الرابع والمثال السعال النهائي، 867 00:35:23,000 --> 00:35:27,150 ستلاحظ هنا لقد المعمم قانون بلدي نوع further-- من المستخرجة 868 00:35:27,150 --> 00:35:27,690 أكثر من ذلك. 869 00:35:27,690 --> 00:35:31,390 مثل السعال والعطس، وكلاهما عن مثل قول شيء أو اتخاذ 870 00:35:31,390 --> 00:35:32,330 نوع من الصوت. 871 00:35:32,330 --> 00:35:34,725 من شأنه أن يوفر يكون المقابلة كتلة خدش. 872 00:35:34,725 --> 00:35:37,350 وذلك ما فعلته في هذا الإصدار، الذي نستطيع وهلة فقط في، 873 00:35:37,350 --> 00:35:43,170 هو السعال هو مجرد مثل قوله، [السعال]، السعال، وفي الوقت نفسه، العطس هو 874 00:35:43,170 --> 00:35:44,570 مثل قوله، [ACHOO]. 875 00:35:44,570 --> 00:35:46,900 وحتى لقد المعمم تنفيذ تلك 876 00:35:46,900 --> 00:35:48,970 من خلال تنفيذ الآن هذه وظيفة عامة، 877 00:35:48,970 --> 00:35:51,490 أقول، والتي هي مثيرة للاهتمام لأغراض اليوم 878 00:35:51,490 --> 00:35:54,300 فقط لأنه لا يزال لايوجد نوع الإرجاع. 879 00:35:54,300 --> 00:35:56,398 ولكن كم من المدخلات لا توجد لديها؟ 880 00:35:56,398 --> 00:35:56,981 الحضور: اثنان. 881 00:35:56,981 --> 00:35:57,430 رئيس 1: اثنان. 882 00:35:57,430 --> 00:35:59,263 وحتى إذا كنت تريد تأخذ في حجتين، 883 00:35:59,263 --> 00:36:00,710 فقط تفصل بينها بفاصلة. 884 00:36:00,710 --> 00:36:03,110 وإذا كنت ترغب في ذلك الحين استدعاء هذه الوظيفة، 885 00:36:03,110 --> 00:36:05,800 لاحظت انك استدعاء مثلا، الاقتباس، نهاية الاقتباس، 886 00:36:05,800 --> 00:36:09,090 بالنسبة للحجة الأولى، شائعة ن، للحجة الثانية. 887 00:36:09,090 --> 00:36:12,130 ذلك مرة أخرى، لدينا فقط الآن اللبنات حتى نتمكن من الواقع 888 00:36:12,130 --> 00:36:15,686 تنفيذ بعض المهام الخاصة بنا. 889 00:36:15,686 --> 00:36:16,570 حسنا. 890 00:36:16,570 --> 00:36:19,690 أي أسئلة حول هذه؟ 891 00:36:19,690 --> 00:36:22,400 >> حتى الآن دعونا قشر العودة طبقة إذا كان الأمر كذلك. 892 00:36:22,400 --> 00:36:24,840 والهدف في نهاية المطاف، هو مجموعة مشكلة الاسبوع المقبل 893 00:36:24,840 --> 00:36:27,710 سيكون على cryptogrophy-- فن الهرولة المعلومات. 894 00:36:27,710 --> 00:36:30,640 وعلى وجه التحديد، فإن المعلومات سيكون عليك أن تشفير أو فك تشفير 895 00:36:30,640 --> 00:36:31,605 سيكون النص. 896 00:36:31,605 --> 00:36:33,980 وحتى هذا النوع من الدعوات السؤال اليوم مثل جيدا، 897 00:36:33,980 --> 00:36:38,480 ما يجري تحت غطاء محرك السيارة مع النص خارج ASCII من الأسبوع الصفر، 898 00:36:38,480 --> 00:36:40,730 وكيف يمكننا في الواقع البدء في التعامل مع ذلك؟ 899 00:36:40,730 --> 00:36:43,070 حتى هنا هو اسم Zamyla ل. 900 00:36:43,070 --> 00:36:47,380 وفي النص، التي يمكن إدخالها في مثل الدالة سلسلة الحصول عليها. 901 00:36:47,380 --> 00:36:52,540 وبدءا من الآن، عندما تشاهد سلسلة مثل this-- Z-A-M-Y-L-A-- 902 00:36:52,540 --> 00:36:56,550 نبدأ في التفكير في الأمر وكأن كل من تلك الأحرف في علبة لها 903 00:36:56,550 --> 00:36:57,050 الخاصة. 904 00:36:57,050 --> 00:36:59,460 وبالفعل، في الأسبوع أو نحو ذلك الوقت، كل من هذه الصناديق 905 00:36:59,460 --> 00:37:04,280 سوف تمثل على وجه التحديد جدا كتلة من memory-- لدغة من الذاكرة. 906 00:37:04,280 --> 00:37:07,050 لذلك كل من هذه الرسائل، في نهاية المطاف، سوف تمثل 8 بت. 907 00:37:07,050 --> 00:37:10,560 وسنرى في الواقع ما يحدث تحت غطاء محرك السيارة في جهاز الكمبيوتر الخاص بي. 908 00:37:10,560 --> 00:37:13,440 >> ولكن لعدم ويكفي فقط أن ننظر إلى Zamyla 909 00:37:13,440 --> 00:37:17,520 من خلال هذه العدسة، حيث كل من هذه الرسائل هي في علبته الخاصة. 910 00:37:17,520 --> 00:37:22,697 وبشكل جيد بما فيه الكفاية في C في وسعنا الوصول إلى كل من هذه الصناديق مباشرة. 911 00:37:22,697 --> 00:37:25,530 لذلك إذا كنت ترغب في الحصول على أول خطاب اسمها، من السهل عظمى في C. 912 00:37:25,530 --> 00:37:28,410 إذا كنت ترغب في الحصول على آخر الرسالة، سوبر سهلة فضلا 913 00:37:28,410 --> 00:37:30,240 مع قطعة من جملة جديد. 914 00:37:30,240 --> 00:37:36,250 >> لذلك أنا ذاهب إلى المضي قدما في CS50 IDE وفتح سلسلة صفر نقطة C. 915 00:37:36,250 --> 00:37:40,270 وفي هذا المثال هنا، هناك بضعة أشياء جديدة مستمرة. 916 00:37:40,270 --> 00:37:44,360 حتى في الخط الأول 19، لدينا شهدت هذه السلسلة الحصول على before--. 917 00:37:44,360 --> 00:37:49,840 لذلك مثلما شيك التعقل سريع، اذا كان شخص ما يمكن أن توفر ما يصل لفظيا 918 00:37:49,840 --> 00:37:52,662 شرح شخصا عاديا ل ما يجري في خط 19. 919 00:37:52,662 --> 00:37:55,370 وكأنه مجرد ترجمة هذا إلى الإنجليزية أن الحجرة ليس في CS50 920 00:37:55,370 --> 00:37:56,416 قد فهم. 921 00:37:56,416 --> 00:37:56,916 نعم. 922 00:37:56,916 --> 00:37:59,749 >> الحضور: هل للمستخدم إدخال سلسلة وتخزينها في الصورة متغير. 923 00:37:59,749 --> 00:38:01,934 924 00:38:01,934 --> 00:38:02,600 رئيس 1: جيد. 925 00:38:02,600 --> 00:38:05,579 لديها إدخال المستخدم سلسلة وتخزينها في الصورة متغير. 926 00:38:05,579 --> 00:38:06,120 هذا عظيم. 927 00:38:06,120 --> 00:38:08,090 هلم جرا لليمين الجانب، فإننا ندعو سلسلة الحصول عليها. 928 00:38:08,090 --> 00:38:10,340 وترجع قيمة ان لم تحصل على تعيينه 929 00:38:10,340 --> 00:38:14,230 من الجانب الأيمن إلى الأيسر الجانب إلى ودعا الصورة متغير هذا 930 00:38:14,230 --> 00:38:15,950 المصممة لتخزين السلسلة. 931 00:38:15,950 --> 00:38:16,800 بالضبط. 932 00:38:16,800 --> 00:38:20,000 >> حتى الآن خط 22، في التعليق في خط 21، 933 00:38:20,000 --> 00:38:22,780 ومن الواضح أن يطبع هذه السلسلة حرف واحد في كل سطر. 934 00:38:22,780 --> 00:38:23,740 ولكن كيف؟ 935 00:38:23,740 --> 00:38:27,040 لذلك قبل كل شيء، ونحن تهيئة I 0. 936 00:38:27,040 --> 00:38:31,061 ثم كيف نصل الى نهاية اسم Zamyla ل؟ 937 00:38:31,061 --> 00:38:32,810 حسنا، في نهاية اسم Zamyla، وأنا يمكن 938 00:38:32,810 --> 00:38:38,151 اكتب يدويا في الحرف الأخير من اسمها بطريقة أو بأخرى، أو عدد منها. 939 00:38:38,151 --> 00:38:38,650 الصحيح؟ 940 00:38:38,650 --> 00:38:43,500 وإذا عدنا here-- Z-A-M-L-- Y-L-A-- حتى أتمكن من كتابة في. 941 00:38:43,500 --> 00:38:47,340 ما هو الرقم القياسي ل الرسالة Zamyla الأخير؟ 942 00:38:47,340 --> 00:38:52,517 إذا كان هذا هو يتحدث 0-- مثل programmer-- 0، 1، 2، 3، 4، 5، 943 00:38:52,517 --> 00:38:56,570 I heard-- ذلك بالفعل، والحرف الأخير في اسم Zamyla هو سادس، 944 00:38:56,570 --> 00:38:58,890 ولكن إذا كنا عد من 0، انها سوف تكون رقم 5. 945 00:38:58,890 --> 00:39:01,320 حتى أن تبقي في الاعتبار هنا. 946 00:39:01,320 --> 00:39:04,929 >> اتضح ان هناك وظيفة في C دعا strlen، ومرة ​​في اليوم 947 00:39:04,929 --> 00:39:06,720 وحتى يومنا هذا لا يزال، الكثير من المبرمجين 948 00:39:06,720 --> 00:39:09,524 اختيار لمزامنة الأسماء الخاصة بهم الوظائف التي يبدو الكلمات 949 00:39:09,524 --> 00:39:10,440 انهم يحاولون القول. 950 00:39:10,440 --> 00:39:12,590 strlen ذلك هو طول السلسلة. 951 00:39:12,590 --> 00:39:18,168 وماذا في ذلك شأن طول سلسلة من S العودة عندما Zamyla هو الإدخال؟ 952 00:39:18,168 --> 00:39:19,569 >> الحضور: خمسة. 953 00:39:19,569 --> 00:39:22,090 >> رئيس 1: Z-A-M-Y-L. ستة. 954 00:39:22,090 --> 00:39:22,590 الصحيح؟ 955 00:39:22,590 --> 00:39:23,940 ما هو طول اسم Zamyla ل؟ 956 00:39:23,940 --> 00:39:24,440 الصحيح؟ 957 00:39:24,440 --> 00:39:26,240 وفقط في واقع الأمر، ست رسائل. 958 00:39:26,240 --> 00:39:26,740 الصحيح؟ 959 00:39:26,740 --> 00:39:28,940 وذلك ما يعني ذلك بالنسبة للحلقة لدينا؟ 960 00:39:28,940 --> 00:39:32,130 ونحن في طريقنا للذهاب من 0 تصل إلى ستة، والتي 961 00:39:32,130 --> 00:39:33,650 سوف تعطينا خمس مرات التكرار. 962 00:39:33,650 --> 00:39:34,890 ماذا نفعل في كل التكرار؟ 963 00:39:34,890 --> 00:39:36,870 حسنا، في المئة C، شخص خمنت في اليوم الآخر، 964 00:39:36,870 --> 00:39:38,710 يعني عنصر نائب لماذا؟ 965 00:39:38,710 --> 00:39:39,335 >> الحضور: شار. 966 00:39:39,335 --> 00:39:40,293 رئيس 1: مجرد حرف. 967 00:39:40,293 --> 00:39:42,877 لذلك character-- واحدة لا شخصيات متعددة مثل سلسلة. 968 00:39:42,877 --> 00:39:45,251 ثم هنا الخط الجديد أن لدينا طبع. 969 00:39:45,251 --> 00:39:46,580 ثم ها هي جملة جديد. 970 00:39:46,580 --> 00:39:51,130 إذا كنت ترغب في طباعة ط-ث حرف في السلسلة S، إذا جاز التعبير، 971 00:39:51,130 --> 00:39:54,060 يمكنك ببساطة أقول اسم السلسلة S، 972 00:39:54,060 --> 00:39:58,230 ثم فتح قوس مربع، و ثم أغلقت قوس مربع، وط 973 00:39:58,230 --> 00:39:58,780 الوسط. 974 00:39:58,780 --> 00:40:01,430 وانها نوع لطيف من في هذا أنه نوع من يشبه مربع 975 00:40:01,430 --> 00:40:06,210 تماما مثل المربعات التي في Zamyla توجد الأحرف على تلك الصورة هناك. 976 00:40:06,210 --> 00:40:09,970 >> حتى لو كنت فعلا تشغيل هذا الآن، دعونا نرى ما سيحدث. 977 00:40:09,970 --> 00:40:15,190 جعل سلسلة 0 نقطة مائل سلسلة 0، ثم أنا 978 00:40:15,190 --> 00:40:16,720 الذهاب إلى كتابة اسم Zamyla ل. 979 00:40:16,720 --> 00:40:19,428 ليس هناك موجه، لأنني لم استخدام الطباعة و، ولكن هذا شيء طيب. 980 00:40:19,428 --> 00:40:20,660 أنا أعرف ما يجب القيام به. 981 00:40:20,660 --> 00:40:23,240 وبالفعل، فإنه يطبع خارج اسم Zamyla، واحدة في كل سطر. 982 00:40:23,240 --> 00:40:25,760 >> الآن دعونا نكون متهور قليلا. 983 00:40:25,760 --> 00:40:28,461 لنفترض أن لم أكن أعرف حول strlen و أنا أحسب، 984 00:40:28,461 --> 00:40:31,460 كل الحق، لا أحد يذهب لديها اسم أكبر من مثل 50 حرفا. 985 00:40:31,460 --> 00:40:36,360 دعونا نمضي قدما وإعادة ترجمة هذا ثم أعد تشغيل، ثم اكتب في Zamyla 986 00:40:36,360 --> 00:40:37,160 ثانية. 987 00:40:37,160 --> 00:40:40,850 منطقيا، ما هو البرنامج سوف محاولة الطباعة؟ 988 00:40:40,850 --> 00:40:49,545 Z-A-M-Y-L-A ثم مثل 45 بايت غير معروفة من الذاكرة. 989 00:40:49,545 --> 00:40:51,670 وبالفعل، سوف نعود لهذه الفكرة من الذاكرة. 990 00:40:51,670 --> 00:40:54,180 ولكن فقط منطقيا، إذا اسم Zamyla هو هذا الوقت الطويل، 991 00:40:54,180 --> 00:40:56,450 كما في الصورة هنا، ما نقوله 992 00:40:56,450 --> 00:40:59,810 هو الحفاظ الطباعة، والحفاظ على الطباعة، والحفاظ على الطباعة، والحفاظ على الطباعة، والحفاظ على الطباعة، 993 00:40:59,810 --> 00:41:03,781 على طول الطريق إلى الحرف ال50، الذي يعرف ما الذي سيحدث. 994 00:41:03,781 --> 00:41:05,030 لذلك دعونا نلقي نظرة في الواقع. 995 00:41:05,030 --> 00:41:06,720 دعونا اكتب في Zamyla. 996 00:41:06,720 --> 00:41:07,250 مثيرة للاهتمام. 997 00:41:07,250 --> 00:41:08,190 وصلنا محظوظ. 998 00:41:08,190 --> 00:41:09,700 مجرد حفنة كاملة من المساحة البيضاء. 999 00:41:09,700 --> 00:41:09,930 اه. 1000 00:41:09,930 --> 00:41:11,120 هناك طابع غير تقليدي واحد. 1001 00:41:11,120 --> 00:41:14,577 يبدو وكأنه نوع من سؤال غريب بمناسبة هناك، ولكن هناك اسم Zamyla ل. 1002 00:41:14,577 --> 00:41:15,660 دعنا متهور حقا. 1003 00:41:15,660 --> 00:41:20,000 كيف يمكننا طباعة 500 كتل إلى المجهول؟ 1004 00:41:20,000 --> 00:41:24,380 دعونا نمضي قدما وجعل هذا كذلك ومن ثم إعادة التشغيل. 1005 00:41:24,380 --> 00:41:27,980 ودعونا كامل الشاشة، وذلك لأن نحن بحاجة الى ان نرى المزيد من المساحة. 1006 00:41:27,980 --> 00:41:30,460 Zamyla. 1007 00:41:30,460 --> 00:41:31,830 حصلت محظوظ مرة أخرى. 1008 00:41:31,830 --> 00:41:33,070 >> يجرؤ نحصل على أكثر المتهورة؟ 1009 00:41:33,070 --> 00:41:36,070 دعونا الحصول على أكثر المتهور. 1010 00:41:36,070 --> 00:41:39,350 50000 حرفا. 1011 00:41:39,350 --> 00:41:41,390 هذا هو الأكثر بالتأكيد ليست فكرة جيدة. 1012 00:41:41,390 --> 00:41:41,890 حسنا. 1013 00:41:41,890 --> 00:41:42,990 جعل سلسلة 0. 1014 00:41:42,990 --> 00:41:44,720 هذا وسوف يكون لدينا الماضي التجريبي. 1015 00:41:44,720 --> 00:41:47,261 Zamyla. 1016 00:41:47,261 --> 00:41:48,632 قرف. 1017 00:41:48,632 --> 00:41:50,010 قرف. 1018 00:41:50,010 --> 00:41:50,680 حسنا. 1019 00:41:50,680 --> 00:41:54,407 حتى ذاكرتي فارغة حقا الآن، الذي هو في الواقع نوع من مريحة. 1020 00:41:54,407 --> 00:41:55,990 ما أحاول الحصول على to-- كل الحق. 1021 00:41:55,990 --> 00:41:57,614 والآن أنا ذاهب لمجرد الحصول على التهور. 1022 00:41:57,614 --> 00:41:58,570 500،000. 1023 00:41:58,570 --> 00:42:03,860 Make-- دعونا ملء الشاشة ذلك. 1024 00:42:03,860 --> 00:42:04,990 أدخل. 1025 00:42:04,990 --> 00:42:05,490 Zamyla. 1026 00:42:05,490 --> 00:42:12,050 1027 00:42:12,050 --> 00:42:13,390 هناك نذهب. 1028 00:42:13,390 --> 00:42:15,610 ليس لدي أي فكرة عما ذلك هو، ولكن يبدو سيئا. 1029 00:42:15,610 --> 00:42:16,110 حسنا. 1030 00:42:16,110 --> 00:42:20,322 في واقع الأمر، في وقت قريب، إذا كنت من بين قلة محظوظة في ساعات العمل 1031 00:42:20,322 --> 00:42:22,780 والمشكلة مجموعة واحدة، كنت قد تواجه هذه بشكل جيد للغاية. 1032 00:42:22,780 --> 00:42:25,490 خطأ تجزئة في الواقع لا لها معنى واضحة المعالم. 1033 00:42:25,490 --> 00:42:28,450 وهو ما يعني نوعا من الخطأ تتعلق شريحة الذاكرة. 1034 00:42:28,450 --> 00:42:30,490 وشروط للشخص العادي، هذا يعني أننا لمسها 1035 00:42:30,490 --> 00:42:34,780 memory-- كنا RAM في جهاز الكمبيوتر الخاص بي أنني لا ينبغي أن كان الوصول إليها. 1036 00:42:34,780 --> 00:42:37,050 وهذا ما على حد سواء قوية وأيضا خطورة 1037 00:42:37,050 --> 00:42:39,910 حول C هو أنك فعلا يكون الوصول غير المقيد 1038 00:42:39,910 --> 00:42:45,910 لمجمل ذاكرة البرنامج الخاص بك أو بايت RAM أو بشكل أكثر تحديدا. 1039 00:42:45,910 --> 00:42:49,510 >> ذلك بالرغم من أن اسم Zamyla ل هو ستة أحرف فقط منذ فترة طويلة، 1040 00:42:49,510 --> 00:42:51,450 لا يزال يمكنني أن أذهب إلى أي مكان في الذاكرة أريد. 1041 00:42:51,450 --> 00:42:53,491 وبوصفها جانبا، إذا كنت قد من أي وقت مضى قراءة بعض المقال 1042 00:42:53,491 --> 00:42:55,610 على مر السنين عن بعض ملقم أو بعض البرامج 1043 00:42:55,610 --> 00:42:58,654 الحصول على متصدع أو اختراق هذا استغل شيء 1044 00:42:58,654 --> 00:43:00,820 يسمى تجاوز سعة المخزن المؤقت استغلال ذلك وسوف نقوم في الواقع 1045 00:43:00,820 --> 00:43:04,970 الحديث عنها في غضون أسابيع قليلة، وهذا تشير بصورة عامة إلى خداع بطريقة أو بأخرى 1046 00:43:04,970 --> 00:43:09,090 كمبيوتر في تسير على ما يرام ما وراء حدود الذاكرة 1047 00:43:09,090 --> 00:43:11,410 أنه ينبغي أن يكون، و العثور على شيء العصير 1048 00:43:11,410 --> 00:43:13,530 في هذا memory-- ل كلمة السر، وربما، وسيلة 1049 00:43:13,530 --> 00:43:16,990 للتحايل بعض الرقم التسلسلي تحقق، أو مجرد قادرة عموما 1050 00:43:16,990 --> 00:43:20,360 لخداع الكمبيوتر المنفذة التعليمات البرمجية التي لم يكن القصد. 1051 00:43:20,360 --> 00:43:22,360 ولكن دعونا نعود إلى حقيقة لمجرد لحظة 1052 00:43:22,360 --> 00:43:24,550 حيث كان هذا البرنامج نفذت مع strlen، 1053 00:43:24,550 --> 00:43:26,110 وإدخال شيء واحد هنا. 1054 00:43:26,110 --> 00:43:30,030 ما هو الجديد بين هذه أعلى ثلاثة أسطر؟ 1055 00:43:30,030 --> 00:43:30,910 >> لذلك سلسلة نقطة ح. 1056 00:43:30,910 --> 00:43:35,490 اتضح هناك هذا يسمى مكتبة سلسلة دوت H، أو مكتبة السلسلة، 1057 00:43:35,490 --> 00:43:38,490 الذين ملف الرأس، إذا جاز التعبير، هي سلسلة نقطة ح أن يعطيني 1058 00:43:38,490 --> 00:43:40,860 الوصول إلى هذه الوظيفة strlen. 1059 00:43:40,860 --> 00:43:43,841 إذا كنت تجاهل ذلك، والمترجم هو الذهاب إلى الصراخ في وجهي بشكل أو بآخر. 1060 00:43:43,841 --> 00:43:44,590 ولكن هل تعرف لماذا؟ 1061 00:43:44,590 --> 00:43:46,090 الآن دعونا الحصول على دقة حقا. 1062 00:43:46,090 --> 00:43:50,820 في السطر 22، وهناك شيء النوع من inefficient-- سيئة التصميم، 1063 00:43:50,820 --> 00:43:53,990 arguably-- حول هذا سطر من التعليمات البرمجية. 1064 00:43:53,990 --> 00:43:56,280 فكر في العودة إلى كيف تنفذ عن حلقة 1065 00:43:56,280 --> 00:44:00,140 وما هي الخطوات التي يحدث مرة أخرى و مرة أخرى وagain-- التهيئة، 1066 00:44:00,140 --> 00:44:04,110 الشرط، فإن التعليمات البرمجية التي يحصل تنفيذها، ثم الزيادة 1067 00:44:04,110 --> 00:44:07,880 أو التغيير، ثم الشرط، ثم رمز، ثم التغيير، ثم 1068 00:44:07,880 --> 00:44:11,280 الشرط، ثم رمز، ثم التغيير، وهكذا دواليك. 1069 00:44:11,280 --> 00:44:15,320 ولكن ماذا قد يكون قليلا ومما يثير القلق أو سوء القيام به هنا؟ 1070 00:44:15,320 --> 00:44:16,387 نعم، في الزرقاء. 1071 00:44:16,387 --> 00:44:18,220 الجمهور: هو Strlen دعا مرات عديدة. 1072 00:44:18,220 --> 00:44:20,654 1073 00:44:20,654 --> 00:44:21,320 رئيس 1: نعم. 1074 00:44:21,320 --> 00:44:23,700 strlen لذلك يطلق مرات عديدة، ولكن ما هو 1075 00:44:23,700 --> 00:44:27,113 طول اسم Zamyla في أول مرة ينفذ حلقة؟ 1076 00:44:27,113 --> 00:44:27,860 >> الحضور: ستة. 1077 00:44:27,860 --> 00:44:28,110 >> رئيس 1: ستة. 1078 00:44:28,110 --> 00:44:30,976 حسنا، ما هو طول اسمها للمرة الثانية تنفيذ التعليمات البرمجية؟ 1079 00:44:30,976 --> 00:44:31,432 >> الحضور: ستة. 1080 00:44:31,432 --> 00:44:31,890 >> رئيس 1: كل الحق. 1081 00:44:31,890 --> 00:44:32,720 انها لا تزال ستة. 1082 00:44:32,720 --> 00:44:33,220 الصحيح؟ 1083 00:44:33,220 --> 00:44:35,260 اسم Zarla لديه لا تغير، حتى لو أنا أبحث 1084 00:44:35,260 --> 00:44:38,240 في جزء فقط من الحروف في اسمها. 1085 00:44:38,240 --> 00:44:41,349 وهكذا حقيقة أنني فعال طرح هذا السؤال، ما هو 1086 00:44:41,349 --> 00:44:44,640 طول Zamyla، ما هو طول من Zamyla، ما هو طول Zamyla، 1087 00:44:44,640 --> 00:44:47,990 ست مرات منفصلة، ​​أو سبعة من ذلك، هو مجرد غبي، 1088 00:44:47,990 --> 00:44:50,390 لأن هذا لا يتغير هذا الجواب. 1089 00:44:50,390 --> 00:44:53,550 وذلك ما بوسعي في الواقع القيام به هو this-- في سلسلة واحدة 1090 00:44:53,550 --> 00:44:55,680 لدي نسخة أفضل قليلا هنا. 1091 00:44:55,680 --> 00:45:00,110 There-- سلسلة whoops-- اثنين لدي نسخة أفضل قليلا حيث 1092 00:45:00,110 --> 00:45:05,010 أفعل this-- بدلا من مجرد تهيئة ط 0، وأنا أيضا مع فاصلة 1093 00:45:05,010 --> 00:45:07,990 تعريف متغير الثاني يسمى n-- أنا لا يجب أن أقول الباحث مرة أخرى. 1094 00:45:07,990 --> 00:45:09,220 أنا لا ينبغي، في الواقع. 1095 00:45:09,220 --> 00:45:10,380 ولكن أقول ن. 1096 00:45:10,380 --> 00:45:13,610 وبعد ذلك تهيئة ن ل وstrlen ن، حتى الآن 1097 00:45:13,610 --> 00:45:17,110 كم مرة لا strlen الحصول على تنفيذها في مجموعه؟ 1098 00:45:17,110 --> 00:45:17,610 مرة واحد فقط. 1099 00:45:17,610 --> 00:45:20,257 وهكذا وهذا هو ما نعنيه في وقت سابق عن تصميم أفضل. 1100 00:45:20,257 --> 00:45:23,090 في الواقع مرة واحدة كود الخاص بك هو الصحيح، عودة الى الوراء والتفكير من خلال، 1101 00:45:23,090 --> 00:45:26,820 أنا باستخدام أقل قدر الذاكرة أو قليلة كما ثواني 1102 00:45:26,820 --> 00:45:30,409 أو ميلي ثانية من وقت الكمبيوتر كما ممكن لتنفيذ بعض المشكلة؟ 1103 00:45:30,409 --> 00:45:32,200 وانا ذاهب للتمرير يصل وأذكر فقط 1104 00:45:32,200 --> 00:45:34,283 أن هناك هذه الإشارة من اغيا في هذا الإصدار، 1105 00:45:34,283 --> 00:45:36,390 ولكننا سوف نعود لذلك قبل فترة طويلة. 1106 00:45:36,390 --> 00:45:41,010 لأن الآن، دعونا نلقي نظرة في هذا المكان سوف يؤدي بنا. 1107 00:45:41,010 --> 00:45:44,110 حتى واحد، اتضح أن الآن أن لدينا القدرة 1108 00:45:44,110 --> 00:45:46,860 للنظر في الأحرف الفردية، يمكننا الاستفادة شيء 1109 00:45:46,860 --> 00:45:50,807 من أسبوع 0 التي كانت غامضة جدا و نوع من رتيبا في ذلك الوقت. 1110 00:45:50,807 --> 00:45:53,390 ولكن الآن، وخصوصا عندما كنا وصول الى الترميز في الأسبوع، 1111 00:45:53,390 --> 00:45:54,820 انها سوف تكون قوية جدا. 1112 00:45:54,820 --> 00:45:57,450 اتضح أنه مع بعض [إينتس] البيانات types-- وعوامات 1113 00:45:57,450 --> 00:46:00,300 وحرف وسلاسل و البعض things-- بعضهم 1114 00:46:00,300 --> 00:46:02,800 يمكن تحويلها بسهولة بالغة إلى آخر. 1115 00:46:02,800 --> 00:46:05,840 >> على سبيل المثال، عندما تحدثنا حول ASCII بعض الوقت هو ago-- هنا 1116 00:46:05,840 --> 00:46:07,796 حروف A من خلال M، نقطة، نقطة، 1117 00:46:07,796 --> 00:46:12,530 dot-- قلنا أن هناك رسم الخرائط بين هذه الحروف والأرقام. 1118 00:46:12,530 --> 00:46:14,970 في واقع الأمر، فإنه ينطبق لأحرف صغيرة أيضا. 1119 00:46:14,970 --> 00:46:17,470 صغيرة لهو 97، ورأس المال هو 65. 1120 00:46:17,470 --> 00:46:20,860 وهناك عدد في ASCII، الذي هو مجرد هذا التعيين 1121 00:46:20,860 --> 00:46:23,240 النظام لجميع تلك الرسائل الأخرى. 1122 00:46:23,240 --> 00:46:25,030 فماذا يعني ذلك؟ 1123 00:46:25,030 --> 00:46:28,390 حسنا، أنا ذاهب إلى المضي قدما وفتح يصل الحقيقي بسرعة ما يسمى 1124 00:46:28,390 --> 00:46:31,240 ASCII 0، معظمها التعليقات. 1125 00:46:31,240 --> 00:46:33,860 ومرة أخرى على الانترنت يمكنك دائما نظرة سريعة على التعليقات. 1126 00:46:33,860 --> 00:46:36,180 >> ونلقي نظرة ما وهذا ما تنوي القيام به. 1127 00:46:36,180 --> 00:46:38,410 حتى انها حصلت على وظيفة الرئيسية. 1128 00:46:38,410 --> 00:46:41,490 لقد الصعب ترميز أرقام فقط لل الآن، لأنني أعرف ما أفعله. 1129 00:46:41,490 --> 00:46:42,950 أنا أعرف ما أريد أن أرى هنا. 1130 00:46:42,950 --> 00:46:45,220 ولقد تهيئة I إلى 65. 1131 00:46:45,220 --> 00:46:48,490 وأنا أعول حتى خلال 26 مجموع الرسائل. 1132 00:46:48,490 --> 00:46:52,990 وما أنا ذاهب ل طباعة سطر واحد في وقت واحد 1133 00:46:52,990 --> 00:46:54,930 إذا كنت تستطيع تفسير هذه أبرز الخط؟ 1134 00:46:54,930 --> 00:46:55,970 ما يحصل المطبوعة؟ 1135 00:46:55,970 --> 00:46:56,797 نعم. 1136 00:46:56,797 --> 00:46:57,264 >> الحضور: هل أنت ذاهب لطباعة الرسالة التي 1137 00:46:57,264 --> 00:46:59,805 يتوافق مع خريطة لل قيمة الرسالة وقيمة عدد صحيح؟ 1138 00:46:59,805 --> 00:47:01,199 1139 00:47:01,199 --> 00:47:01,990 رئيس 1: بالضبط. 1140 00:47:01,990 --> 00:47:04,740 انا ذاهب لطباعة الرسالة المقابلة لقيمة عددية، 1141 00:47:04,740 --> 00:47:06,131 والعكس بالعكس، على النحو التالي. 1142 00:47:06,131 --> 00:47:08,880 كذلك قال هذا، شخص ما في وقت سابق، هو مجرد نائبا لشار. 1143 00:47:08,880 --> 00:47:09,490 فإنه لا يزال. 1144 00:47:09,490 --> 00:47:12,280 هذا، بطبيعة الحال، هو عنصر نائب لint-- لا سطر جديد. 1145 00:47:12,280 --> 00:47:18,140 والآن نلاحظ، أول قيمة بلدي أن أنا توصيل لذلك نائبا 1146 00:47:18,140 --> 00:47:22,320 ليست مجرد I. أقوله، بين قوسين، شار الأول، 1147 00:47:22,320 --> 00:47:26,700 وشار اعتراضي هو يقول المترجم، علاج I 1148 00:47:26,700 --> 00:47:28,490 ليس ما هو عليه، وهو الرقم. 1149 00:47:28,490 --> 00:47:30,490 التعامل معها على أنها ذات الطابع الفعلي. 1150 00:47:30,490 --> 00:47:34,490 في حين أن القيمة الثانية أنا يسد in-- I-- ينبغي أن يكون مجرد رقم. 1151 00:47:34,490 --> 00:47:38,140 >> حتى لو كنت تجميع هذه program-- لذلك هذا هو جعل ASCII 0، 1152 00:47:38,140 --> 00:47:41,720 دوت مائل ASCII 0-- أنا مجرد الحصول على هذا الرسم البياني مفيد قليلا أن 1153 00:47:41,720 --> 00:47:44,950 يظهر لي كل ما هو ممكن تعيينات دون الحاجة إلى أعتقد أنه 1154 00:47:44,950 --> 00:47:46,450 من خلال أو الرقم بها بمفردي. 1155 00:47:46,450 --> 00:47:48,783 وأنا طباعة أيضا، لاحظ الأحرف الصغيرة، 1156 00:47:48,783 --> 00:47:51,410 بسبب بضعة أسطر في وقت لاحق، وأنا أيضا طباعة هذا التعيين 1157 00:47:51,410 --> 00:47:53,737 كذلك، والذي هو فقط ل يقول أنه بمجرد فهم 1158 00:47:53,737 --> 00:47:55,570 ما يحدث تحت غطاء محرك السيارة، يمكنك 1159 00:47:55,570 --> 00:47:57,111 تحويل تلقائيا ذهابا وإيابا. 1160 00:47:57,111 --> 00:48:00,160 وفي الواقع، إذا كان أي منكم فعلت هذا من أي وقت مضى في المدارس الابتدائية 1161 00:48:00,160 --> 00:48:03,490 أو سمعت عن شخص ما أخذ أسطوريا مذكرة 1162 00:48:03,490 --> 00:48:05,620 وتمريرها إلى بلده أو صديقاتها في الصف، 1163 00:48:05,620 --> 00:48:08,300 ولكنك سارعت ل خطابات من قبل مثل A يصبح B، 1164 00:48:08,300 --> 00:48:11,240 وB يصبح C، أو شيء أكثر تعقيدا من ذلك، حسنا، 1165 00:48:11,240 --> 00:48:13,410 كيف يمكنك أن تذهب نحو تنفيذ ذلك عندما كنت طفلا؟ 1166 00:48:13,410 --> 00:48:16,340 حسنا، أنت مجرد نوع من أعرف A يصبح B، B يصبح C، 1167 00:48:16,340 --> 00:48:19,700 ولكن رياضيا، ما كان ذلك الطفل تفعل؟ 1168 00:48:19,700 --> 00:48:22,050 ماذا كنت مضيفا أن كل حرف؟ 1169 00:48:22,050 --> 00:48:23,340 على نحو فعال، 1. 1170 00:48:23,340 --> 00:48:27,740 >> حتى عندما قمت بتغيير A إلى B، هذا نوع من مثل تغيير 65-66، 1171 00:48:27,740 --> 00:48:29,590 وهو ما يعني حسابيا فقط إضافة 1. 1172 00:48:29,590 --> 00:48:33,300 وحتى لو كنت لتنفيذ تقنية الخادعة التي قليلا 1173 00:48:33,300 --> 00:48:36,380 لمعلمك في التعليمات البرمجية، لك قد تفعل بالضبط ذلك تماما 1174 00:48:36,380 --> 00:48:38,552 وذلك بإضافة حرف واحد معا. 1175 00:48:38,552 --> 00:48:40,260 لذلك قبل فترة طويلة، ونحن الذهاب لنرى كيف 1176 00:48:40,260 --> 00:48:43,300 يمكن الاستفادة من ذلك في الواقع ل التدافع بصدق وحل الرموز 1177 00:48:43,300 --> 00:48:43,991 المعلومات. 1178 00:48:43,991 --> 00:48:47,240 في غضون ذلك، نعلم أننا قد بدأت ل لإدخال بضع مكتبات أخرى 1179 00:48:47,240 --> 00:48:48,990 here-- في سلسلة واحدة اليوم. 1180 00:48:48,990 --> 00:48:51,180 وموقع مفيد جدا نأمل أن تجد 1181 00:48:51,180 --> 00:48:55,010 ويسمى reference.cs50.net، التي وأعضاء هيئة التدريس وضعت معا، 1182 00:48:55,010 --> 00:48:57,510 بحيث إذا كنت تريد بحث عن كيف يعمل strlen، 1183 00:48:57,510 --> 00:48:59,300 يمكنك البدء في الكتابة اسم الدالة، 1184 00:48:59,300 --> 00:49:02,890 انقر strlen هناك، ومن ثم شرح أقل راحة 1185 00:49:02,890 --> 00:49:03,700 سوف تظهر. 1186 00:49:03,700 --> 00:49:06,880 أو إذا كنت تريد المسؤول شرح لينكس على أساس، 1187 00:49:06,880 --> 00:49:08,945 يمكنك النقر على أكثر مريح في أعلى اليمين، وذلك 1188 00:49:08,945 --> 00:49:12,070 سيقدم نفس المعلومات، ولكن من حيث أكثر تعقيدا. 1189 00:49:12,070 --> 00:49:15,070 هذا موردا مفيدا لل تعرف فعلا ما يفعل كل شيء. 1190 00:49:15,070 --> 00:49:17,320 >> في المرة القادمة ونحن في طريقنا ل نلقي نظرة على فالتين 1191 00:49:17,320 --> 00:49:20,070 وأكثر من ذلك، وأعرض عن انفسنا في عالم التشفير. 1192 00:49:20,070 --> 00:49:21,930 قبل ذلك، وسنرى في وقت لاحق هذا الاسبوع. 1193 00:49:21,930 --> 00:49:23,390 والآن، كولتون أوغدن. 1194 00:49:23,390 --> 00:49:26,730 اراك يوم الاربعاء. 1195 00:49:26,730 --> 00:49:30,216 >> [عزف الموسيقى] 1196 00:49:30,216 --> 00:49:33,702 >> [عزف الموسيقى] 1197 00:49:33,702 --> 00:49:38,682 1198 00:49:38,682 --> 00:49:42,200 >> رئيس 1: ما [بليب] تفعلون؟ 1199 00:49:42,200 --> 00:49:45,720 >> رئيس 1: أنا أكل بلدي الحلوى؟ 1200 00:49:45,720 --> 00:49:47,160 كيف يمكنك أكله؟ 1201 00:49:47,160 --> 00:49:47,860 بيديك؟ 1202 00:49:47,860 --> 00:49:54,050 1203 00:49:54,050 --> 00:49:57,940 >> [عزف الموسيقى] 1204 00:49:57,940 --> 00:50:03,453