[؟ DAN ARMADARAS:] مرحبا، أنا [؟ دان Armadaras؟].
اليوم، ونحن في طريقنا ل أن تبحث في التصحيح.
ليس فقط نحن ذاهبون ل نتحدث عن بعض التقنيات،
ولكن أيضا نحن في طريقنا للبحث في بعض الميزات الواردة
داخل IDE CS50 التي تسمح لك لتصحيح بسهولة برنامج.
>> مجرد مثال واحد من شيء يمكن أن تذهب الخطأ
وانها في الواقع شيئا بعد أن قمنا بالفعل مثيل من قبل.
في هذه الحالة، وهذا هو برنامج C يقبل عدد صحيح من المستخدم،
يقسم من قبل اثنين، ويوفر العودة إلى المستخدم الانتاج.
الآن عما رأيناه في وقت سابق من المحاضرات،
ونحن نعلم أن هذا سوف يسبب في الواقع أنواع محددة من مشاكل الانقسام
عندما يكون لدينا الأعداد الفردية.
>> على وجه التحديد، ونحن سوف مجرد رمي بعيدا أي شيء بعد الفاصلة العشرية.
الآن، ونحن نعلم أن هذا يحدث أن تكون هذه القضية.
وإذا كنا تشغيله، يمكننا أن نؤكد شكوكنا، أولا، عن طريق تجميع.
وبعد ذلك، عن طريق تشغيل و دخول عدد فردي.
>> هذا ليس شيئا جديدا.
ولكن هذا هو الواقع مثال على الخلل الذي
يمكن أن توجد ضمن برنامج أوسع أن يصبح من الصعب تعقب.
على الرغم من أننا نعرف ما هي القضية هو، وجوهر الحقيقي لهذه المسألة
قد يكون محاولة لتحديد على وجه التحديد حيث يحدث الخطأ،
تحديد ما هذه المشكلة هو، ومن ثم تحديد ذلك.
لذلك نقدم هذا كمثال ما قد يكون شيئا
ونحن نعلم بالفعل ولكن يمكن أن يدفن ضمن عناصر أخرى من التعليمات البرمجية.
>> حتى فتح هذا مصدر آخر ملف التعليمات البرمجية على سبيل المثال،
هذه المشكلة تقسيم الآن جزء من برنامج أكبر.
لا يزال قد يكون قليلا بت مفتعلا، ونحن
قد تكون قادرة بسهولة التعرف عليه، وخاصة
منذ نحن مجرد مناقشة هذا الأمر.
ولكن يمكننا معرفة أن هذا يمكن أن توجد مشكلة على نطاق أوسع.
>> إذا كنت تجميع هذه والآن تشغيله، أدخل عدد فردي،
يمكننا أن نرى أن لم نحصل على وجه التحديد الإخراج الذي كنا قد يكون من المتوقع.
في هذه الحالة بالذات، يمكننا القول بأننا
نريد أن نعتمد على جميع الأرقام من واحدة تصل إلى بعض عدد محدد.
ويمكننا أن نرى أننا لدينا مجموعة متنوعة من القضايا
هنا إذا نحن إخراج، ببساطة، 0 و1 عندما نقدم مدخلا من 5.
>> لذلك نحن نعرف بالفعل أن هناك مشكلة هنا.
لكننا قد لا نعرف على وجه الدقة حيث هذه المسألة موجود بالفعل.
الآن واحدة من الطرق التي يمكننا محاولة لإصلاح هذه
هو الشيء الذي قمنا تم عرض ل.
يمكننا أن مجرد استخدامه على نطاق أوسع.
>> على خط 14، لدينا هذه وظيفة printf،
والذي يسمح لنا لطباعة الدولة من أجزاء مختلفة من المعلومات.
وهذا هو ما كنت يجب الاستفادة من ضمن البرنامج
في محاولة لمعرفة بالضبط ما هو يحدث في خطوط مختلفة من التعليمات البرمجية.
لذلك حتى لو لم تكن هذه هي الناتج النهائي أننا في الواقع
تريد أن تنتج من هذا البرنامج، فإننا لا نزال
قد يكون لديك بعض التصحيح تصريحات أين نحن
يمكن محاولة لمعرفة بالضبط ما يحدث داخل نظامنا.
>> حتى في هذه الحالة، وسوف printf مع العلامة التصحيح.
في هذه الحالة، وهذا هو مجرد سلسلة التصحيح
أنني بحيث يصبح-طرح واضح جدا في إخراج قانون بلدي
ما الذي أريد أن تظهر.
والمخرجات هنا عدد أننا حسابها.
>> في هذه الحالة، وأنا قد تريد أن تعرف بالضبط
ما يحدث قبل و بعد بعض حساب معين.
لذلك أنا قد تستخدم printf قبل وبعد أن سطر من التعليمات البرمجية.
في هذه الحالة، لم أستطع حتى جعله أكثر قليلا واضحة
بالقول التصحيح قبل والتصحيح بعد ذلك
أنني لا نخلط بين نفسي عدة أسطر التي تبدو متطابقة.
>> الآن إذا كنا إعادة ترجمة هذه وتشغيل ذلك، إدخال رقم مثل خمسة من جديد،
يمكننا أن نرى أن لدينا الآن الانتاج قبل وبعد
وتجد أننا لم تفعل واضح تقسيم واضح أو وجود عدد
أننا فعلا تريد أن تفعل.
الآن في هذه الحالة، وهذا هو ليس حقا الإخراج واضح.
انها ليست حقا نتائج واضحة نريد من هذا البرنامج بالذات.
>> وهذا هو، مرة أخرى، قليلا مفتعلا.
ولكن، ربما، واحدة من الأشياء التي أننا يمكن أن نفعل إذا قالت مواصفات
أننا نريد أن نقسم هذا من قبل 2 وإضافة 1-- ذلك وبعبارة أخرى،
نحن نريد لجولة up-- ثم ونحن قد نعلم أننا يمكن أن
تفعل هذا الشيء خاص، في هذه الحالة.
الآن هنا نعلم أننا سنكون قادرة على إضافة 1 إلى الرقم إلى النصف.
>> دعونا إعادة ترجمة هذا وأكد أن هذا
يتصرف بالطريقة التي نريد.
يمكننا أن نرى ذلك الآن قبل وجود، لدينا عدد 5.
وبعد، لدينا عدد 3، والتي وفقا لمواصفات لدينا،
هو ما كنا نريد القيام به.
ولكن إذا نظرنا إلى الناتج هنا، يمكننا
نرى أننا قد يكون آخر علة تماما، وهو
أننا بدأنا العد لدينا من 0.
>> الآن مرة أخرى، وهذا شيء التي شهدناها في الماضي
ونحن يمكن اصلاحها بسهولة تامة.
ولكن في هذه الحالة، فإننا كما كان صالح
من استخدام العبارة printf مباشرة من داخل لحلقة
لنعرف بالضبط أين أن الخطأ كان يحدث.
البيانات printf لذلك هي مفيدة جدا في المساعدة
يمكنك تحديد مكان، على وجه التحديد في التعليمات البرمجية المصدر،
خطأ معينة يحدث.
>> ومن المهم أيضا أن ندرك هذا، ونحن كتابة التعليمات البرمجية،
قد يكون لدينا الافتراضات حول حالة البرنامج.
أو ربما لدينا الافتراضات عن أي جزء من البرنامج
غير صحيحة أو غير صحيحة في الواقع عندما في وقت لاحق ونحن نبني على هذا البرنامج
وجعلها جزءا من مجمع وبرنامج أكبر
أن ندرك أن بعض جوانب لذلك هو في الواقع عربات التي تجرها الدواب.
>> يمكن استخدام printf تساعد حقا تضييق وتحديد
مناطق البرنامج الذي لا يجوز أن يتصرف بنفس الطريقة التي كنا
نتوقع، على أساس الافتراضات لدينا.
ولكن هناك أدوات أخرى المتاحة، وكذلك،
التي تسمح لنا لمحاولة الرقم من أين يحدث خطأ
وأيضا، على وجه التحديد، ما هي الأشياء ويحدث داخل البرنامج.
>> وذلك باستخدام printf جدا عندما نريد مفيدة
للتعرف على مجالات محددة من برنامج لديها بعض الشوائب.
ولكنه يصبح أيضا مملة بعد حين.
في هذه الحالة، وهذا هو برنامج بسيط نسبيا
مع واحد فقط أو اثنين من المتغيرات.
ويصبح من السهل جدا بالنسبة لنا ل طباعة قيمة تلك المتغيرات
في سياق برنامج أكبر.
>> ولكن قد يكون لدينا مختلفة البرنامج يحتوي على العديد من المتغيرات.
وأنه قد لا يكون تماما من السهل جدا استخدام printf
في محاولة لتقييم ما يحدث إلى كل واحد من هذه المتغيرات
كما أن البرنامج المنفذة.
هناك برنامج موجود دعا برنامج المصحح.
في هذه الحالة، واحد أننا سوف استخدام غير المصحح GNU، أو GDB،
التي تسمح لنا لتفقد الداخلية عمل برنامج في أكثر من ذلك بكثير
طريقة مفصلة.
>> يمكن أن نقوم بتنفيذ الواقع GDB من سطر الأوامر
هنا ببساطة عن طريق كتابة GDB و الأمر الذي نريد تصحيحه.
في هذه الحالة، عد.
الآن في هذه الحالة، يمكننا أن نرى أنه يقودنا إلى موجه تقول GDB.
ويمكننا في الواقع تنفيذ الأوامر لGDB
لتبدأ فعلا تنفيذ برنامج، والتوقف عن ذلك في بعض النقاط،
تقييم المتغيرات و تفقد المتغيرات التي
توجد في ولاية البرنامج في تلك اللحظة بالذات،
وهلم جرا وهكذا دواليك.
أنه يوفر الكثير من الطاقة بالنسبة لنا.
>> ولكن فقط يحدث ذلك أن IDE CS50 أيضا
يوفر واجهة المستخدم الرسومية أو مستخدم واجهة لGDB أن
يسمح لنا أن نفعل هذا دون الحاجة واجهة سطر الأوامر على الإطلاق
أو على الإطلاق حتى.
الطريقة التي يمكنني الوصول إلى ذلك غير باستخدام زر التصحيح
في أعلى جدا من IDE CS50.
الآن في الماضي، ما لدينا يرى هو أن نستخدم الأمر
خط لتجميع ومن ثم تشغيل البرنامج.
>> زر التصحيح لا كل من هذه الخطوات.
ولكنه أيضا سوف طرح علامة التبويب المصحح على اليمين المتطرف
التي تسمح لنا لتفقد مجموعة متنوعة من خصائص البرنامج
كما يتم تنفيذ.
إذا كنت اضغط التصحيح، في هذا الحالة، فإنه سيجلب
علامة تبويب جديدة في وحدة تحكم نافذة في أسفل جدا.
>> ويمكنك أن ترى أن هذا التبويب له بعض المعلومات في أعلى جدا.
ويمكننا تجاهل هذا إلى حد كبير.
ولكن واحدة من الأشياء أننا نريد أن تلاحظ
غير أنه النواتج نفس الشيء الذي نحن
سيحصل إذا حاولنا تشغيل جعل على برنامج C في إطار المحطة الطرفية.
>> هنا، يمكننا أن نرى انها تعمل رنة، ولها مجموعة متنوعة من الأعلام،
ويتم تجميع ملف count.c لدينا، الذي كان علامة التبويب المحددة في الوقت
أنني ضرب التصحيح.
لذلك هذا هو مفيد جدا ل الآن باستخدام هذا الزر التصحيح،
يمكننا تجميع في وقت واحد ثم تنفيذ البرنامج الذي نحن في الواقع
تريد تشغيله.
>> واحد من أعلام هذا هو المهم، في هذه الحالة،
كنا فعلا باستخدام لأطول فترة
ولكن أيضا لم يفعلوا بعض اليد التلويح (غير مسموع)، التي
هو هذا الحق واحد هنا.
في رنة، تقول -ggdb3.
في هذه الحالة، ما نحن عليه يقول رنة، مترجم لدينا،
هو أننا نريد لتجميع برنامجنا.
ولكن أيضا توفير ما هي دعا معلومات الرمز
ذلك أن المترجم له في الواقع وصول إلى الكثير من المعلومات الأساسية
الواردة في البرنامج.
>> وبشكل أكثر تحديدا، وعدد من الوظائف التي لدي،
أسماء تلك الوظائف، المتغيرات، وأنواع
أن تلك المتغيرات، ومجموعة متنوعة من الأمور الأخرى التي تساعد على المصحح
أداء عملها.
الآن هناك شيء آخر أن من المهم أن نذكر
عندما نناقش تشغيل برنامج في هذا السبيل.
>> لاحظ أنه في الواقع ترعرعت علامة تبويب جديدة في وحدة التحكم لدينا
على طول الجزء السفلي.
لم يعد لدينا للتفاعل مباشرة مع إطار المحطة الطرفية.
ولكن هذا التبويب الجديد في الواقع نافذة الصالة.
هو فقط غير محددة لتسيير البرنامج الذي قمنا بإنشائه.
>> لاحظ أن في الجزء السفلي، في بالاشتراك مع بعض الانتاج
بواسطة رنة المترجم وGDB، التي يمكننا تجاهل إلى حد كبير،
فإنه يدل في الواقع ناتج برنامجنا في أسفل جدا.
الآن من المهم أن ندرك أن هذا نافذة واحدة في الواقع
سوف تظهر لك الإخراج من البرنامج
ولكن أيضا لا يمكن أن يقبل مدخلات لهذا البرنامج، كذلك.
>> لذلك لاحظ أن يقول الرجاء إدخال رقم،
وهو نفس الإخراج الذي كان لدينا كان في إطار المحطة الطرفية قبل.
لكنها تظهر الآن في هذا التبويب الجديد.
يمكنني إدخال الرقم.
وسوف فعلا وظيفة ونحن نتوقع
تبين لنا التصحيح لدينا، خرج، الإخراج الذي قد يكون عربات التي تجرها الدواب،
كما رأينا من قبل.
وعلى الجزء السفلي للغاية، فإنه في الواقع بعض إخراج إضافية
من الناتج المحلي الإجمالي فقط أقول أن وقد اكتمل هذا البرنامج.
>> الآن كما رأيتم في هذا تشغيل معين من خلال،
لم يكن على وجه الخصوص مفيد لأنه حتى
على الرغم من أننا قد القائمة المصحح تأتي يصل، لا يزال هذا برنامج تشغيل.
في أي نقطة فعلت ذلك فعلا إيقاف التنفيذ بالنسبة لنا
لتكون قادرة على تفقد جميع المتغيرات الواردة في.
هناك شيء آخر أن علينا أن نفعل من أجل
للحصول على GDB أن ندرك أننا نريد وقفة تنفيذ البرنامج
وليس مجرد السماح لها للشروع عادة كما كنا في أي حالة أخرى.
>> من أجل إيقاف التنفيذ، في بعض خط معين،
نحن بحاجة إلى إنشاء ما دعا نقطة فاصل.
ويتم إنشاء نقطة فاصل بسهولة جدا في هذا CS50 IDE عن طريق اتخاذ الفأرة
والنقر مباشرة على يسار بعض رقم خط معين.
مرة واحدة أن أفعل ذلك، نقطة حمراء يبدو، مما يدل على
أن هذا الخط هو الآن نقطة فاصل.
>> والمرة التالية التي أركض GDB، فإنه سيتم إيقاف التنفيذ عند هذه النقطة استراحة
عندما يصل هذا الخط من التعليمات البرمجية.
الآن هذا هو المهم شيء لتحقيق
انها ليست بالضرورة حالة أن كل سطر من التعليمات البرمجية
يمكن الوصول إليها فعلا.
إذا كان لي أن إنشاء وظيفة هنا، لf-- الفراغ example--
ومجرد القيام خط الطباعة here-- مرحبا world-- لو لم استدعاء هذه الدالة،
وسوف يكون هذا هو الحال، إذا أنا وضعت نقطة فاصل هنا،
لن يتم استدعاء الدالة.
وبالتالي، فإن هذا خاصة نقطة فاصل
لن نتوقف فعلا تنفيذ البرنامج.
>> لذلك دعونا نقول أن أخلق بشكل صحيح نقطة فاصل على بعض سطر من التعليمات البرمجية
التي سوف يتم تنفيذها في الواقع.
الآن في هذه الحالة، وهذا هو السطر الأول في الوظيفة الرئيسية.
لذلك سوف يكون بالتأكيد حالة أنه بمجرد أن أبدأ التنفيذ،
سيتم التوصل إلى السطر الأول للغاية.
سوف GDB إيقاف التنفيذ.
وبعد ذلك، وسوف تكون قادرة على التفاعل مع المصحح.
>> يمكنك تعيين خطوط متعددة كما نقاط، إذا كنت ترغب.
يمكننا أيضا إنشاء خط يصل هنا في هذا الجزء من التعليمات البرمجية
التي لن يتم التوصل إليها.
ويمكننا أيضا مجموعة واحدة أدناه.
السبب الذي كنا تريد أن تفعل هذا وسوف نقوم
الذهاب إلى أكثر قليلا التفاصيل في مجرد لحظة.
حتى الآن، اسمحوا لي أن تعطيل فقط هذه النقاط استراحة إضافية
بحيث يمكننا أن ننظر إلى ما يحدث عندما يكون لدي كسر واحد
نقطة في برنامجي.
لقد جعلت بعض تغييرات على هذا البرنامج.
لذلك أنا بحاجة لحفظه.
وسوف انقر التصحيح حتى أستطيع أن بدء تجميع ثم
تنفيذ المصحح.
>> سوف نرى أنه بعد لحظات، و الخط الذي اخترنا كما في الشوط الثاني
يتم تمييز نقطة باللون الأصفر.
يمكننا أيضا أن نلاحظ أن في الحق العلوي في لوحة التصحيح
أن رمز قفة تحول إلى رمز اللعب قليلا.
وهذا يعني أن لدينا وقفة التنفيذ، في هذه الحالة بالذات.
وضرب على زر التشغيل سوف تتيح لنا استئناف التنفيذ
عند هذه النقطة المحددة.
>> لاحظ أن هناك زوجين من الآخر الأزرار المتاحة في هذا الفريق التصحيح،
كذلك.
خطوة على، الذي يتيح لي الفرصة ل تنفيذ هذا سطر واحد من التعليمات البرمجية
وخطوة الى هذا الخط ل واحدة المقبل، والتي، في هذه الحالة،
يعني أن printf يتم تنفيذ البيان.
وسوف نتوقف ثم التنفيذ على خط 13، مثل ذلك.
>> وهناك أيضا خطوة في وظيفة، والتي
مفيد إذا كنت قد خلقت الآخرين وظائف في أماكن أخرى من شفرة المصدر.
وأريد أن خطوة الى هذه الوظائف بدلا من
تنفيذ هذه المهمة ككل.
ولكننا سوف تبدو أكثر في الخطوة إلى وظيفة في مجرد لحظة.
الآن تلاحظ بعض الأشياء الأخرى التي موجودة فعلا داخل هذا الفريق التصحيح.
>> لدينا تسمى هذه اللوحة ل استدعاء المكدس، الذي يبين لنا
بالضبط أين نحن.
في هذه الحالة، نحن في الداخل وظيفة الرئيسية.
ويسمى لدينا النصي count.c.
ويحدث لأننا نكون على خط 13، عمود واحد، والتي
هو بالضبط ما أبرز المنطقة من شفرة المصدر يشير أيضا.
>> لاحظ الآن أن هذا يدل أيضا تحت القسم المتغير المحلي
كل المتغيرات التي توجد داخل هذه الوظيفة.
من المهم أن نلاحظ أن جميع المتغيرات
سوف تظهر في هذا المتغير المحلي القسم داخل دالة،
حتى قبل أن يتم تعريفها.
يمكننا أن نرى هنا أن لدينا متغير دعا الأسطوانات، له قيمة افتراضية من 0،
وأنه هو من نوع int.
>> الآن قبل أن تهيئة الواقع كل من هذه المتغيرات،
نحن لسنا بالضرورة مضمونة لمعرفة قيمة 0.
واعتمادا على إعدام أخرى ان كنت قد أنجزت
وحالة الذاكرة الخاصة بك عندما كنت في الواقع تشغيل هذا البرنامج،
قد تجد أنك لا أرى قيم 0
وبدلا من ذلك، بعض الأرقام مجنون أخرى.
>> ولكن لا تقلق بشأن ذلك.
انها لن تكون ذات صلة حتى كنت في الواقع تهيئة قيمة.
الآن في هذه الحالة، يمكننا أن نرى أن لقد أجريت بعض النواتج.
وأنا، الآن، توقف التنفيذ.
ولكن في هذه الحالة، ما أنا حقا تريد أن تفعل
غير أن الخطوة الآن على هذا الخط من التعليمات البرمجية بحيث يمكنني في الواقع
الاستعلام المستخدم لهذا الباحث أن نحن نريد لاستخدامها في برنامجنا.
>> الآن في هذه الحالة، عندما أنا ضربت خطوة أكثر، لاحظ
أن وقفة أو بالأحرى استئناف لم يتغير الزر لهذا الزر وقفة
لهذا الرمز المنفذة فعلا.
ماذا يحدث الآن هو أنه
ينتظرون منا لإدخال بعض المعلومات كما يمكننا أن نرى من خلال النص انتاجنا
في الجزء السفلي جدا.
>> حتى الآن، وهذا هو لا توقف في الواقع،
على الرغم من ذلك، نوعا ما، يبدو ليكون ذلك بسبب لا شيء يحدث.
ولكنه مجرد أن ذلك يحدث في حالتي محددة على خط 13،
أنا في انتظار إدخال المستخدم.
وهكذا GDB غير قادر على تفتيش برنامج لأنه قيد التشغيل.
>> الآن في المرة التالية التي أقوم بإدخال بعض input-- ولذا فإنني سوف أدخل هذا العدد 5،
كما رأينا في past-- ضرب العودة، ونحن
لاحظت أن، وعلى الفور، توقف GDB ومرة أخرى، يسلط الضوء على السطر التالي.
ولكن لاحظ أن الآن، باعتباره نتيجة لدينا إدخال قيمة،
لقد قمنا بتحديث هذه القيمة داخل المتغيرات المحلية الخاصة بنا، التي
مفيد جدا أن نعرف على وجه التحديد ما هذا العدد كان في الذاكرة.
>> الآن أستطيع أن يسمح هذا البرنامج للمتابعة اللعب حتى نهاية تنفيذه
من خلال ضرب استئناف.
يمكننا أن نرى أن بسرعة جدا لا الانتهاء من البرنامج المنفذة
مع نفس المخرج أننا وكان من قبل، إغلاق المصحح،
والآن هذا البرنامج وقد توقفت تماما.
>> تبين لي أنه ليس هناك سوى ل أغراض رؤية ما
يحدث عندما كنا في الواقع ضرب استئناف.
لكننا في الواقع ذاهبون ل أريد أن أعود إلى هذا البرنامج
حتى نتمكن من محاولة التصحيح بالضبط ما يحدث.
أنا الآن أن استخدام المصحح، جاز لي لا تحتاج هذه البيانات التصحيح printf.
>> حتى أتمكن من إزالتها كما سأفعل الآن فقط أن أعود إلى رمز بساطة لدينا
أن كان لدينا قبل لحظة.
الآن عندما إنقاذ البرنامج وتنفيذه،
وعليه، مرة أخرى، انتقل إلى أنه الأولية كسر النقطة التي كان على خط 11.
وسوف تكون قادرة على تفتيش المتغيرات بلدي وأنا أريد القيام به.
>> فقط حتى يحدث ذلك هذا جزء غير مثيرة جدا للاهتمام،
وأنا أعلم أنني ذاهب لطباعة هذا البيان.
الرجاء إدخال رقم.
وبعد ذلك، وأنا أعلم أنني ذاهب أن تطلب من المستخدم لهذا صحيحا.
لذلك ربما، أنا فعلا أريد أن أحرك نقطة كسر أبعد قليلا إلى أسفل.
>> يمكنك إزالة نقاط لكسر الارسال بالضغط، مرة أخرى، مباشرة
إلى اليسار من هذا العدد الخط.
أن النقطة الحمراء سوف تختفي، مشيرا إلى أن ذلك نقطة فاصل ذهب الآن.
الآن في هذه الحالة، تم إيقاف التنفيذ.
ولذا فإنه لن فعلا ل استئناف في هذا المثال معين.
لكنني يمكن أن يحدد استراحة نشير في وقت لاحق قليلا.
>> وعندما استأنف الآن بلدي رمز، فإنه سيتم استئناف وأقول
نقطة من هذه النقطة الشوط الاول.
مرة أخرى، أنا ضربت استئناف.
لا يبدو مثل أي شيء يحدث.
ولكن هذا لأن بلدي كود ينتظر الإدخال.
وسوف إدخال رقم 5، هاهنا، و الآن سوف تضرب نقطة فاصل المقبلة.
>> الآن في هذه الحالة، وهذا هو سطر من التعليمات البرمجية
أنه قبل، كنا نعرف حدث أن يكون عربات التي تجرها الدواب.
لذلك دعونا تقييم ما يحدث في هذه النقطة بالذات في الوقت المناسب.
عندما يتم تسليط الضوء على الخط، وهذا لم يتم تنفيذ الخط.
حتى في هذه الحالة، يمكننا أن نرى أن لدي العدد الذي
لدي عدد صحيح يسمى الأسطوانات التي لديها قيمة 5.
وانا ذاهب الى أن أداء بعض الرياضيات على هذا العدد.
>> إذا كنت خطوة على ذلك، يمكننا لاحظ أن قيمة الأسطوانات
لم يتغير وفقا لل الحساب الذي قمنا به فعلا.
والآن ونحن داخل هذا عن حلقة
أو الآن أن لحلقة يتم تمييز نفسها،
ونحن نرى أن لدينا جديد متغير يسمى ط أن
سوف يتم استخدامها في هذا للحلقة.
>> الآن تذكر قبل أن I ذكر أنه في بعض الأحيان كنت
سنرى نوعا من الجنون الأرقام كما الافتراضي قبل هذا العدد
أو أن المتغير تهيئة الواقع.
يمكننا أن نرى أن على وجه التحديد هنا في هذا المتغير
دعا ط، الذي لم يتم تهيئة
في وقت تبرز.
ولكن يمكننا أن نرى أن لديها بعض رقم أننا لن نتوقع فعلا.
>> وهذا موافق.
لا تقلق بشأن هذا لأن لدينا لم يكن في الواقع
تهيئة هذا العدد حتى أنا خطوة على هذا الخط والقيمة
ط تمت تهيئة إلى القيمة 1.
لذلك نرى أن هذا هو الواقع القضية، دعونا خطوة أكثر.
يمكننا الآن أن نرى أن تم تنفيذ خط.
ونحن تسليط الضوء الآن هذا الخط printf.
>> ويمكننا أن نرى الآن كيف قيمنا ط و 3 قد تغيرت مع مرور الوقت.
هذا مفيد جدا القيام به، في الواقع، هو إلى الخطوة عبر خطوط مرارا وتكرارا.
ويمكنك أن تجد ما فعلا يحدث داخل لحلقة الخاص بك
وما يحدث لل المتغيرات داخل ذلك للحلقة
كما أن تنفيذ البرنامج يحدث خطوة واحدة في وقت واحد.
>> الآن في هذه المرحلة، وأنا داس على ما يكفي
أنني الآن أنا في نهاية برنامجي.
إذا كنت خطوة على ذلك، وسوف فعلا وقف التنفيذ
كما رأينا في الماضي.
اسمحوا لي أن أعد هذا، مرة أخرى، لذلك أستطيع أن أشير شيء آخر خارج،
كذلك.
>> في هذه الحالة، فمن تطلب مني الآن، مرة أخرى،
للرقم، الذي وأنا، مرة أخرى، أدخل.
لكن هذه المرة، وأنا ذاهب للدخول في عدد أكبر بحيث لحلقة
وأعاد أكثر من مرة.
في هذه الحالة، وانا ذاهب لإدخال قيمة 11.
>> الآن مرة أخرى لأنني تعيين نقطة فاصل في خط 15،
انها تسير لتسليط الضوء على هذا الخط.
يمكننا أن نرى أن لدينا عدد 11 غير صحيح
ممثلة في المتغيرات المحلية الخاصة بنا.
يخطو أكثر من ذلك، يمكننا الآن مشاهدة ما يحدث لقيمة لدينا من أنا
كلما تقدمنا ​​داخل هذا للحلقة.
يحصل يتزايد في كل مرة نحن تصل إلى أعلى من ذلك للحلقة.
>> الآن واحدة من الأشياء التي قد من المفيد أن تفعل أثناء التنفيذ
هذا البرنامج هو بالنسبة لي فعلا تغيير منتصف الطريق متغيرات لمعرفة
ما يحدث لبرنامجي.
في هذه الحالة، لا يسعني في الواقع انقر نقرا مزدوجا فوق القيمة.
لاحظ أن يصبح حقل النص.
>> الآن أستطيع أن أدخل مختلفة نقدر تماما
لنرى كيف يتصرف برنامجي عندما قمت بتغيير هذا المتغير.
الآن في هذه الحالة، متغير ويتضمن الآن قيمة 10.
لكن البرنامج لا يزال توقفت في التنفيذ.
عندما كنت خطوة على، أرى أن ط القيمة، التي دخلت الى 10،
ليس أكبر من قيمة الأسطوانات، والذي يسبب فورا عن حلقة
لوقف التنفيذ.
>> الآن أن ليست فقط السبب تفضلتم
تريد تعديل متغير في المكان.
قد ترغب في الواقع في محاولة لتعديله بحيث
أن تتمكن من الاستمرار تنفيذ حلقة
أو حتى يمكنك تعديل بعض القيمة قبل أن
تصل بعض مجموعة محددة من الحساب أن كنت على وشك القيام بها.
>> حتى الآن أننا في الواقع تغيير قيمة ط كبرنامج تم تنفيذ،
أنها تسببت في لحلقة لإنهاء قبل الأوان بسبب، فجأة، ط
حدث أن يكون أكبر من القيمة من الأسطوانات، وهذا يعني أن هذا لحلقة
لم تعد هناك حاجة ليتم تنفيذها.
علاوة على ذلك، حدث ليكون القضية التي قمنا بتغيير قيمة ط
عندما سلط الضوء على خط 17، الذي كان نقطة في الوقت المناسب
أن لتنفيذ حلقة كان في الواقع يجري تقييمها.
>> إذا كنت قد غيرت قيمة أنا على خط آخر، ويقول 19،
لكنا رأينا مختلفة السلوك لأن الخط سيكون 19
أعدمت قبل الحلقة تم إعادة تقييم الحالة.
الآن في هذه المرحلة، وأنا، مرة أخرى، في نهاية هذا البرنامج.
وأستطيع أن يسمح هذا للشروع السماح برنامجي لإنهاء بشكل طبيعي.
ولكن هناك بضعة أشياء التي تعتبر مهمة ليسلب
من هذه المناقشة معينة.
تحتاج إلى تقييم الافتراضات الخاصة بك
حول كيفية رمز يجب أن يتصرف.
أي وقت كنت تعتقد أن بعض قطعة من التعليمات البرمجية تعلمون يحدث في العمل،
قد يكون العلم الاحمر للذهاب ذهابا وتقييم، ومما لا شك فيه
أن توليكم كيف يعمل هذا الرمز
صحيح فعلا كيف هو وأعرب في التعليمات البرمجية المصدر.
>> ولكن أكثر من ذلك لكان نقطة، عندما نقوم باستخدام المصحح،
يمكنك وضع نقاط التوقف في خطوط مختلفة من التعليمات البرمجية،
والذي يؤدي المصحح ل إيقاف التنفيذ في كل من تلك الخطوط
بحيث يمكنك تقييم الذاكرة أو حتى تغير في مكانه.
ومرة أخرى، وتذكر أنه يمكنك إنشاء نقاط التوقف متعددة حتى يتسنى لك
ويمكن أيضا استئناف التنفيذ، والقفز على أجزاء كبيرة من التعليمات البرمجية،
وانها سوف توقف تلقائيا في نقطة فاصل المقبلة.
>> هناك في الواقع أكثر تقدما ملامح المصحح، كذلك.
ولكن علينا أن يحولك لبعض أشرطة الفيديو لاحقا
من أجل ندف حقا بغض النظر كيف لاستخدام هذه ظائف معينة.
في الوقت الراهن، شكرا لك كثيرا لمشاهدة.
وحسن الحظ التصحيح.