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