1 00:00:00,000 --> 00:00:00,982 2 00:00:00,982 --> 00:00:11,293 >> [عزف الموسيقى] 3 00:00:11,293 --> 00:00:13,580 >> ROB BOWDEN: انها لي، روب. 4 00:00:13,580 --> 00:00:16,540 دعونا من خلال المشي كيف لتنفيذ ماريو. 5 00:00:16,540 --> 00:00:21,040 وبالتالي فإن أول شيء يتعين علينا القيام به هو مطالبة المستخدم الإدخال. 6 00:00:21,040 --> 00:00:24,440 >> نحن بحاجة إلى أن نسأل لهم بالضبط كيف يجب أن يكون طويل القامة الهرم. 7 00:00:24,440 --> 00:00:27,110 حتى هنا، ونحن نرى نقوم به ارتفاع = GetInt. 8 00:00:27,110 --> 00:00:32,479 لوتذكر أن وظيفة GetInt وينفذ في CS50 9 00:00:32,479 --> 00:00:38,060 مكتبة، بحيث يصل أعلى، ونحن بحاجة إلى تذكر أن تتضمن # cs50.h. 10 00:00:38,060 --> 00:00:41,360 >> فلماذا لا يكون لدينا هذا ملفوفة في حلقة افعل حين؟ 11 00:00:41,360 --> 00:00:45,080 حسنا، نحن أيضا بحاجة إلى أن نتذكر أن إدخال المستخدم يجب أن يكون ساري المفعول. 12 00:00:45,080 --> 00:00:46,910 ما هو إدخال غير صالح؟ 13 00:00:46,910 --> 00:00:51,460 كذلك المواصفات pset يقول على وجه التحديد أن ارتفاع أقل من 0 أو أكبر 14 00:00:51,460 --> 00:00:54,530 من 23 غير صالح. 15 00:00:54,530 --> 00:00:59,030 >> حتى هنا، ونحن نرى أننا تعريف ثابت يسمى MAX_HEIGHT مع 16 00:00:59,030 --> 00:01:00,750 قيمة 23. 17 00:01:00,750 --> 00:01:06,380 وسوف تستمر هذه الحلقة افعل بينما حين ارتفاع أقل من 0 أو MAX_HEIGHT هو 18 00:01:06,380 --> 00:01:11,870 أقل من الارتفاع، وهو ما يعني أن 23 أقل من الارتفاع. 19 00:01:11,870 --> 00:01:15,390 إذا كان الأمر كذلك ارتفاع هو 24 أو أكبر، ونحن سوف تستمر حلقات. 20 00:01:15,390 --> 00:01:18,300 نتذكر أن تفعل حين الحلقات هي جميلة مفيدة كلما أردنا الحصول على 21 00:01:18,300 --> 00:01:22,070 إدخال المستخدم ومن ثم التحقق من صحة ذلك، منذ نحتاج حتما إلى يطلب من المستخدم في 22 00:01:22,070 --> 00:01:25,010 الأقل مرة واحدة لقيمة يريدون. 23 00:01:25,010 --> 00:01:28,500 >> ذلك مرة واحدة لدينا مدخلاتها، ونحن ويمكن الآن بناء الهرم. 24 00:01:28,500 --> 00:01:31,940 واحدة من الحيل لهذه المشكلة هو تعيين أن علينا أن نبدأ في الجزء العلوي من 25 00:01:31,940 --> 00:01:32,750 الهرم. 26 00:01:32,750 --> 00:01:36,800 لا يمكنك printf الجزء السفلي من الهرم ومن ثم بناء طريقك. 27 00:01:36,800 --> 00:01:38,830 لذلك دعونا ننظر إلى المثال من المواصفات pset. 28 00:01:38,830 --> 00:01:41,530 29 00:01:41,530 --> 00:01:45,430 >> نرى هنا أنه عندما ندخل على ارتفاع من 8، والجزء السفلي جدا من 30 00:01:45,430 --> 00:01:48,660 الهرم يطبع تسعة التجزئة. 31 00:01:48,660 --> 00:01:52,990 مستوى واحد لأعلى من أن يطبع مسافة واحدة وثمانية التجزئة. 32 00:01:52,990 --> 00:01:58,250 مستوى واحد لأعلى من ذلك هو مسافتين و سبع علامات الرقم، على طول الطريق حتى و 33 00:01:58,250 --> 00:02:03,050 الوصول إلى قمة الهرم، والذي هو ثمانية مستويات أعلى، الذي يطبع سبعة 34 00:02:03,050 --> 00:02:06,000 مساحات واثنين من التجزئات. 35 00:02:06,000 --> 00:02:08,810 حتى أن نتذكر أن لدينا ل القيام بذلك المستوى الأعلى أولا. 36 00:02:08,810 --> 00:02:11,620 37 00:02:11,620 --> 00:02:18,500 >> نحن هنا نقوم بالتكرار من المستوى الأعلى، الصف 8، واستمرار 38 00:02:18,500 --> 00:02:22,150 حتى يصل الصف 0. 39 00:02:22,150 --> 00:02:25,820 لم فكيف مساحات كثيرة نحتاج لطباعة الصف العلوي في ذلك؟ 40 00:02:25,820 --> 00:02:29,310 نحن المطبوعة سبعة فضاءات واثنين من التجزئات. 41 00:02:29,310 --> 00:02:34,450 وبالتالي فإن عدد من المساحات نريده هو الصف التي كانت على ناقص 1. 42 00:02:34,450 --> 00:02:39,310 >> إذا كان الصف العلوي هو 8، 8 ناقص 1 يعطينا سبعة مسافات. 43 00:02:39,310 --> 00:02:43,770 ثم لدينا حلقة التي ستطبع كل واحد من الفضاء في وقت واحد. 44 00:02:43,770 --> 00:02:47,450 لذلك عندما المساحات 7، هذه الحلقة سبع مرات، والطباعة 45 00:02:47,450 --> 00:02:50,300 سبعة المساحات الفردية. 46 00:02:50,300 --> 00:02:54,672 >> حتى الآن نحن بحاجة لطباعة هذه التجزئات في نهاية الهرم. 47 00:02:54,672 --> 00:02:57,930 حتى هنا، ونحن بحاجة لحساب عدد التجزئات. 48 00:02:57,930 --> 00:03:01,930 ونحن نرى أن نفعله ارتفاع الصف ناقص زائد 2. 49 00:03:01,930 --> 00:03:04,170 فكيف لم نحصل على ذلك؟ 50 00:03:04,170 --> 00:03:08,630 >> تذكر أن قمة الهرم صف 8، وارتفاعه 8. 51 00:03:08,630 --> 00:03:10,890 ونحن لا نزال المطبوعة اثنين التجزئة. 52 00:03:10,890 --> 00:03:15,420 لذلك على أقل تقدير، 8 ناقص زائد 8 2 يعطينا الجواب الصحيح. 53 00:03:15,420 --> 00:03:19,170 ومن ثم النظر في القاع الهرم، الصف 1. 54 00:03:19,170 --> 00:03:24,020 سوف الصف ارتفاع ناقص تعطينا 7، و ثم زائد 2 يعطينا تسعة التجزئة، 55 00:03:24,020 --> 00:03:26,620 وهو بالضبط عدد من التجزئات أننا المطبوعة. 56 00:03:26,620 --> 00:03:29,880 لذلك هذا هو الصيغة نريد ل استخدام لحساب عدد 57 00:03:29,880 --> 00:03:32,220 التجزئات في كل صف. 58 00:03:32,220 --> 00:03:36,020 >> باستخدام هذا الرقم، ونحن بعد ذلك دينا آخر للحلقة، تشبه الى حد بعيد 59 00:03:36,020 --> 00:03:41,270 للحلقة التي استخدمناها للمسافات، هذا العدد من التجزئات بالتكرار مرة 60 00:03:41,270 --> 00:03:43,720 طباعة التجزئة واحد في كل مرة. 61 00:03:43,720 --> 00:03:46,010 في الصف العلوي، والتي سوف طباعة اثنين التجزئة. 62 00:03:46,010 --> 00:03:48,390 على الصف السفلي، والتي سوف طبع تسعة التجزئة. 63 00:03:48,390 --> 00:03:52,610 وسوف كل صف أخرى طباعة كل عدد التجزئات بينهما. 64 00:03:52,610 --> 00:03:57,340 >> ثم في نهاية جدا، ونحن بحاجة إلى طباعة سطر جديد لدينا للذهاب إلى التالي 65 00:03:57,340 --> 00:03:59,400 الصف في الهرم. 66 00:03:59,400 --> 00:04:03,070 أخيرا، نحن بحاجة لطباعة سطر جديد في نهاية الصف من أجل 67 00:04:03,070 --> 00:04:06,260 تواصل المقبل صف من الهرم. 68 00:04:06,260 --> 00:04:08,980 وفي نهاية برنامجنا، لدينا عودة 0. 69 00:04:08,980 --> 00:04:12,770 >> حسب المواصفات pset، وعودة 0 ليس ضروريا تماما. 70 00:04:12,770 --> 00:04:15,710 لكنه لا يعني أن الرئيسي هو القيام به. 71 00:04:15,710 --> 00:04:17,610 اسمي روب، وكان هذا ماريو. 72 00:04:17,610 --> 00:04:22,470 >> [عزف الموسيقى] 73 00:04:22,470 --> 00:04:25,558