ZAMYLA تشان: انها لي، Zamyla. اليوم في ماريو، ونحن في طريقنا لتكون رسم نصف الهرم لماريو على الصعود. لذلك دعونا نتحدث عن لدينا تأليف للهذه المشكلة. ونحن في طريقنا إلى الرغبة مطالبة والتحقق من صحة المستخدم لإدخال صالحة كيف ارتفاع يريدون الهرم ماريو أن يكون. وبعد ذلك، ونحن في طريقنا لاستدراجه. لذلك دعونا نبدأ مع دفع و التحقق من صحة المستخدم مدخلاتها. يمكننا الاستفادة من وظيفة المكتبة CS50 الحصول على كثافة العمليات التي من شأنها ضمان المستخدم مدخلات عدد صحيح. أي الأعداد الصحيحة الموجبة، سلبية الأعداد الصحيحة، رقم 0 كلها لعبة عادلة. وإلا، سيتم مطالبة المستخدم إعادة المحاولة حتى إدخال عدد صحيح صالح. الآن على الرغم من أن الحصول على كثافة لا الكثير من العمل بالنسبة لنا لضمان أن المستخدم يعطينا صحيح، ما زلنا بحاجة إلى تطبيق بعض قيود إضافية على ذلك. بعد كل شيء، ونحن لا يمكن أن يكون تسلق ماريو نصف الهرم من ارتفاع سلبي 12. وبالإضافة إلى ذلك، مواصفات مشكلة يقول ما في وسعنا فقط يسمح ماريو لتسلق هرم من المرتفعات بين 0 و 23. موافق، وهذا يعني أننا في حاجة للمطالبة باستمرار المستخدم أن يقدم لنا صالحة عدد وتستمر فقط مرة واحدة انهم أعطانا ارتفاع صالح. كيف نفعل ذلك؟ حسنا، والعمليات مستمرة تعطينا فكرة loops-- القيام بشيء متكرر. حلقة واحدة في جيم وحين حلقة التي سوف باستمرار تنفيذ جسم حلقة طالما بتقييم الوضع بالنظر إلى true. في أقرب وقت كما أن حالة تقييم إلى false، ستسير البرنامج ل كل ما يأتي بعد ذلك. وذلك في حين الحلقات هي وسيلة واحدة ل ضمان أننا باستمرار مطالبة المستخدم لإدخال صالح. وبمجرد أن تعطينا مدخلا صحيحا، سنقوم المضي قدما إلى ما يأتي بعد ذلك. ونحن نعلم أننا ذاهبون لنسأل المستخدم لإدخال مرة واحدة على الأقل. وحتى الآن نأتي إلى شقيقة في حين حلقة، وهو ما يفعل حين حلقة. القيام به أثناء الحلقات تتولي تنفيذ الجسم من الحلقة مرة واحدة على الأقل. حتى من دون التحقق من حالة، فإنه سيتم تنفيذ جسم الحلقة. ومن ثم التحقق من حالة إلى رؤية سواء كان ذلك يحتاج إلى تكرار نفسها. يأتي هذا في متناول اليدين عندما نحن نتحقق من صحة إدخال المستخدم. ونحن نعلم أننا ذاهبون ليطلب منهم مرة واحدة على الأقل. لذا افعل في حين قد حلقة ننظر بشيء من هذا القبيل. لدينا ن عدد صحيح. وداخل افعل في حين حلقة، فإننا على الفور مطالبة المستخدم للحصول على عدد صحيح. إذا كان n غير صالح، ثم سنقوم تدفعهم مرارا وتكرارا وتكرارا حتى يقدم لنا هذا صحيح صالح. وأخيرا، مرة واحدة n هو إدخال صحيح، وسوف نقوم انتقل إلى بقية برنامجنا. لذلك دعونا نعود إلى المواصفات والاختيار ما الشروط اللازمة لإدخال صحيح سوف يكون. مرتفعات صالحة تسير ل ما بين 0 و 23، شاملا. ارتفاعات غير صالحة حتى تسير ل يكون أقل من 0 أو أكثر من 23. حتى أن نتذكر أن تصميم حالتك بعناية، مع العلم أن حالة لافعل حين حلقة يجب أن يكون في حين ن غير صالح. الآن هذا لن يكون واحد بسيط تعبير منطقي. ونحن في طريقنا إلى أن ندمج تعبيرين مختلفة لجعل حالتنا كلها. لذلك دعونا فقط ننظر إلى جدول الحقيقة لدي منحك بالفعل التلميح أننا على وشك أن التعامل مع اثنين من القيم المنطقية. لذلك وهنا جدول الحقيقة أين أنا لدينا اثنين من Booleans-- منطقية 1 و 2. لذلك لدينا خيار تقييم bool1 وbool2 أو bool1 أو bool2. وسوف يكون فقط صحيح إذا كان كلا القيم المنطقية تقييم إلى true، في حين أن جميع أو سوف يكون صحيحا ما دام واحد من والقيم المنطقية اثنين بتقييم إلى true. موافق، حتى تأخذ لحظة، وقفة هذا فيديو وهضم هذا الجدول الحقيقة. سأكون هنا في انتظار. عندما كنت أعود، انظر إذا كنت تستطيع تجميع تعبير منطقي لجهودكم حالة ن كونها مدخلا صالح. حتى الآن أن لدينا إدخال مستخدم صالح، دعونا المضي قدما ونتحدث عن كيفية قد رسم النصف الهرم. هنا في هذا محرر نص بسيط، لقد رسم اليسار محاذاة الهرم. لكننا نعلم أننا بحاجة لدينا الهرم لتكون محاذاة اليمين. فكيف يمكن أن أفعل هذا؟ حسنا، أنا قد تحاول دفع كل شيء إلى الجانب بواسطة مجرد وضع قليلا شخصية بينهما. وبعد ذلك، لالمقبل خط، وانا ذاهب لوضع بعض الأحرف أكثر ليدفع به جنبا إلى جنب، وfurther-- هلم جرا وforth-- ذلك حتى لدي الحق الانحياز الهرم. لذلك لدينا هرم محاذاة الصحيح، ولكن أنها لا تبدو كبيرة جدا مع النقاط. لكننا لا تزال ترغب في الحفاظ على هذا التباعد لطيفة. لذلك أنا ذاهب إلى حرفيا إدراج بعض المساحات. بدلا من ثلاث نقاط، وسوف أكون وضع واحد، اثنان، ثلاثة مسافات. في السطر الثاني. وسوف أضع واحدة، مسافتين. وعلى ما قبل الأخيرة خط، فقط مسافة واحدة. وهنا لدي الحق الانحياز الهرم. من فعل سبيل المثال في النص محرر، لدينا فكرة عن نمط أننا سوف تستخدم لرسم نصف الهرم. لكل صف واحد، ما فعلناه ونحن اكتب بعض المساحات، وكتبته بعد ذلك بعض علامات الرقم، ومن ثم كتابتها على مفتاح Enter، التي وإنشاء خط جديد. حتى الآن أن لدينا ذلك، دعونا نذهب خطوة واحدة أبعد من ذلك وإيجاد نمط. لذلك أنا أريد أن أقول، ل الفائدة من هذا المثال، نحن نتعامل مع ارتفاع 8. الصف الأول وستكون لدينا اثنين التجزئات التي تلت سبعة مسافات. ثلاثة التجزئة second--، ستة مسافات. الثالثة row-- أربعة التجزئة، خمسة spaces-- هلم جرا وهكذا دواليك حتى نصل الى الصف NTH. حتى ذلك الحين، وأنا أطلب منكم للصف NTH، عدد التجزئات نحن ذاهبون ل وكم المساحات؟ لذلك الامر متروك لكم لمعرفة صيغة لتمثيل كيفية العديد من التجزئات وكم المساحات اللازمة ل الصف NTH عندما يكون لديك بعض الارتفاع. الآن عندما كنت كشف هذا الخروج، كن حذرا كيف كنت فهرسة. ما أعنيه بهذا هو أن في الحياة اليومية لنا جميعا بدء العد، وعادة بنسبة 1. ولكن في CS50 وفي علوم الكمبيوتر بشكل عام، نحن 0 فهرستها. حتى الصف الأول سيكون ن 0 مقابل 1. كن حذرا من هذا عندما كنت في محاولة لمعرفة النمط الخاص بك. حتى الآن دعونا نعود إلى كيف ونحن في طريقنا إلى رسم الهرم لدينا. لكل صف واحد، ونحن في طريقنا إلى الرغبة في طباعة مسافات، طباعة التجزئة، ومن ثم طباعة سطر جديد. التلميح هنا هو كلمة "ل" كل صف. في C، لدينا بناء ودعا لحلقة، التي تتألف من التهيئة، وهي حالة، تحديثا، والجسم من الحلقة. أقول إنني أريد أن أقول، مرحبا العالم، 50 مرة، يا للحلقة سوف ننظر بشيء من هذا القبيل. أنا تهيئة بلدي صحيح إلى 0. أن الشرط هو أن الأول هو أقل من 50. وبعد ذلك تحديث بلدي فقط تزايد أنا من جانب واحد في كل مرة. يمكننا أيضا استخدام لحلقات تكرار على الأشياء. لاحظ هنا كيف ليس لدينا الثابت ترميز رقم، بل وضع متغير ارتفاع بدلا من ذلك في هذه الحالة. ذلك ما أفعله هنا هو أنا بالتكرار على كل صف من الهرم. أستطيع أن أفعل شيئا لكل صف داخل الجسم من بلدي الحلقة. ما الذي نقوم به داخل الجسم من الحلقة؟ حسنا، كما قلنا سابقا، نحن الطباعة المساحات ونحن طباعة التجزئة ونحن طباعة سطر جديد. حتى بلدي الخارجي للحلقة سيبدو هذا. أنا تكرار عبر كل صف من الهرم، وذلك باستخدام، في هذه الحالة، ارتفاع كمتغير الذي يخزن ارتفاع الهرم. داخل الجسم من تلك الحلقة، وأنا الذهاب لطباعة المساحات مرارا وتكرارا، والطباعة التجزئة مرارا وتكرارا، ومن ثم طباعة سطر جديد. وحتى الآن، وذلك باستخدام كل من المفاهيم التي لقد تحدثت عنها في هذه المسيرة من خلال، يجب أن تكون قادرة على مطالبة المستخدم للحصول على المدخلات، والتحقق من صحة هذا المدخل، ثم رسم النصف الهرم. اسمي Zamyla، وهذا هو CS50.