>> [عزف الموسيقى]
>> رئيس 1: هذا هو CS50 و هذه هي بداية من أسبوعين.
لذا، دعونا الغوص الحق في شيء هذا هو عربات التي تجرها الدواب، إذا جاز التعبير.
لذلك، هنا هو IDE CS50 ولدي سحب ما يصل في وقت مبكر هذا screen-- لعنة
ذلك.
تنبيه المفسد.
حسنا.
لقد انسحب هذه الشاشة هنا، التي لديها برنامج بسيط جدا.
إذا كان لنا أن انتقل إلى أسفل أكثر هذا هو تعليق فقط،
ولكن هنا في خطوط 13 من خلال 17 لدينا برنامج.
>> انها لصالح نحويا، وهو ما يعني إذا I تجميع، فإنه سيتم ترجمة وتشغيل،
ولكن هذا عربات التي تجرها الدواب.
يدعي هذا البرنامج في التعليقات حتى القمة التي ينبغي أن تطبع 10 النجوم،
ولكن لم يحدث ذلك.
وبناء على تجربتك، أو قريبا لتكون تجربة مع C،
يمكنك تمييز منطقيا لماذا هذا هو، في الواقع، عربات التي تجرها الدواب؟
نعم؟
الحضور: وغني من صفر إلى 10.
هذا 11 تكرارات.
رئيس 1: نعم.
لذلك، فإنه سيكون من الصفر حتى من خلال ويساوي 10،
وهو بطبيعة الحال 11 تكرارات.
لذلك، فإنه سيكون ل الطباعة، في الواقع، 11 النجوم.
لذا، فإن اتفاقية علوم الحاسوب في معظم لغات البرمجة
هو، في الواقع، فقط ل بدء العد من الصفر،
ولكن العد حتى ولكن ليس من خلال القيمة التي يعنون حقا.
>> الآن، وهذا هو الشيء الوحيد الذي يأخذ قليلا تعتاد
وحتى خدش، مصممة كما هو لغير المبرمجين أو غير الكمبيوتر
العلماء وللأطفال إلى حد كبير، تم تصميمه لديك
بدء العد عموما في واحدة.
وهذا شيء طيب.
يمكنك أن تبدأ على الاطلاق العد في واحدة إذا كان هذا هو أكثر راحة.
والعد حتى وإلى 10، ولكن عليك أن تدرك بشكل خاص هذا الأسبوع
وبعد ذلك فقط حتى أشياء كثيرة في البرمجة
نفترض أن 0 هو الأول أرقام التي كنت تعول،
ان كنت تريد الذهاب لتجد أنه من الأسهل فقط للوصول الى هذه العادة من البداية
من الصفر والفرز في حدود القيمة يهمك في الوقت الراهن من
الحصول على الذهاب.
>> ، لدرجة أن حددت ذلك.
غيرنا أقل من أو يساوي فقط أقل من.
دعونا نلقي نظرة على مثال ثان هنا.
>> لذلك، هذا البرنامج يدعي أيضا في ل تعليقات حتى أعلى أنه يجب طباعة
النجوم العشرة، ولكن لم يحدث ذلك.
ما هو الخطأ هنا؟
>> لذلك، what-- وآسف، دعونا نكون واضحين.
10 النجوم.
واحد في كل سطر، ولكن لم يحدث ذلك.
لذلك، في الواقع، اسمحوا لي أن نمضي قدما وتجميع هذا واحد لأنه أقل قليلا
مسح بناء على هذا الوصف.
اسمحوا لي أن أذهب إلى دليل مصدرنا.
جعل عربات التي تجرها الدواب واحد مائل نقطة، واحد عربات التي تجرها الدواب.
OK، أرى 11 النجوم، التي لا تزال مشكلة،
ولكنهم أيضا كل ما في سطر واحد.
ما هي المشكلة هنا؟
نعم.
الحضور: (غير مسموع).
رئيس 1: نعم.
لذلك هذا هو دقة أنك قد أذكر لي جعل إشارة وجيزة.
على الرغم من كل شيء يبدو جدا، وانها بادئة طيف،
وذلك نوع من تبدو مثل خدش في هذا الخط 16 و 17،
في الواقع، بادئة بموجب ذلك للحلقة.
هذا غير مادي.
الكمبيوتر لا تعرف أو رؤية المساحة البيضاء.
المساحة البيضاء هو فقط لل لنا البشر، أسلوبيا.
الكمبيوتر لا يعرفون عندما يكون لديك الأقواس المعقوفة، التي من شأنها، في الواقع،
إصلاح هذه المشكلة.
>> لذلك، إذا كنا فعلا ذهبت في و وضع صراحة في هذه الأقواس المجعدة
التي من شأنها أن حل هذه المشكلة من قبل موضحا أن المترجم
أنني فعلا تريد تنفيذ سطرين من التعليمات البرمجية مرة أخرى،
ومرة أخرى، ومرة ​​أخرى.
ولكن ما هو التفسير الأساسي؟
الصحيح؟
نحن لسنا بحاجة بدقة مجعد تستعد في كل وقت،
على الرغم من انها على الارجح أفضل الممارسة للوصول الى هذه العادة على أي حال
على الرغم من أنه يضيف اثنين الأحرف إلى التعليمات البرمجية. لماذا؟
>> الحضور: (غير مسموع)؟
رئيس 1: نعم ولهذا حل آخر تماما.
الصحيح؟
خاصة إذا كان للوهلة الأولى كنت لا نقدر حقا ما يجري.
حسنا، بالتأكيد يمكن لنا فقط تفعل شيئين في وقت واحد
ومجرد تجنب المشكلة تماما.
وهذا شيء طيب، ولكن الآن، لأغراض اليوم، ما
هو التفسير لعلة؟
لماذا كانت كل تلك النجوم على سطر واحد؟
نعم؟
>> الحضور: ويبدو أنه إذا لديك سطر واحد من التعليمات البرمجية،
يمكنك أن تفعل ذلك من دون تلك.
رئيس 1: بالضبط.
هذا هو مجرد اتفاقية الإنسان.
الناس يدركون أنه ل مزعج قليلا أو مملة
لدينا لوضع الأقواس المعقوفة جميع من الوقت إذا كان كل ما تريد القيام به
هو تنفيذ سطر واحد من التعليمات البرمجية.
لذلك، قرر بعض البشر الوقت قبل أن هذا شيء طيب.
إذا كنت تريد أن تضع كل حلقة الخاص بك على أن مجرد سطر واحد من هذا القبيل،
هذا شيء طيب مع احد منقوطة في نهاية المطاف.
ولكن يمكنك أن تفعل واحد فقط مثل الخط دون الأقواس المعقوفة.
>> لذلك، عندما دليل أسلوب CS50 كما سيتم توجيهك ل،
سترى أن عموما فمن عادة جيدة
للوصول الى هذا حتى كنت الشرود مريحة جدا
من هذه الأنواع من الاتفاقيات والقيام شيء بنفسك.
طالما كنت الذاتي متسقة.
وسوف نتحدث أكثر عن أسلوب قليلا في وقت لاحق اليوم.
>> لذلك، اسمحوا لي أن تفتح البرنامج الآخر.
بالطبع، يجب علينا إصلاح أن 10 كذلك.
اسمحوا لي أن المضي قدما وكتابة حقيقية برنامج سريع أن سأتصل،
دعنا نقول، دوت حلقة C. لذا، حلقة دوت C. وفي حلقة نقطة C انا ذاهب الى لديها،
تشمل معيار I / O نقطة H كثافة العمليات الفراغ الرئيسي.
والآن دعونا فقط القيام به، في الواقع، حلقة.
لذا، 4 الباحث I يحصل على صفر.
أنا أقل من، مثلا، 50.
I زائد، زائد.
ثم هنا دعونا المضي قدما والقيام طباعة F.
ثم أريد أن طباعة I وسطر جديد منقوطة.
>> وهذا يجب طباعة جميع الأرقام من صفر إلى 50؟
أومئ رأس قليلة.
وهناك عدد قليل غ.
ما هو الخطأ مسبقا؟
ما هو الخطأ السهل الذي أدليت به؟
نعم.
>> الحضور: (غير مسموع).
رئيس 1: نعم.
حتى على الرغم من أنها تبدو مثل هذا ما أنوي،
أذكر أنني أيضا مجرد حرف ASCII.
>> لذلك، إذا قلت، والطباعة "أولا"
انها سوف حرفيا لطباعة I. لذا، إذا أنا
أريد أن المكونات في عنصر نائب قيمة أنا فعلا بحاجة للقيام بذلك
ثم المكونات في قيمة I حيوي.
وإلا لكنت أنا مجرد الذهاب الى الحصول على 50 في I على الشاشة.
>> لذلك، اسمحوا لي أن المضي قدما في جعل هذه الحلقة، تشغيله،
و، في الواقع، لدينا جميع على طول الطريق حتى من خلال 49.
وإذا كنت انتقل الى الوراء في الوقت أرى الرقم صفر في البداية.
>> حسنا، ماذا لو أنا نوع من المسمار؟
ماذا لو أن أفعل هذا؟
فقط لأنني لا أفكر.
ما هو هذا البرنامج.
مرة واحدة إعادة تجميعها وتشغيلها، تنوي القيام به منطقيا؟
>> الحضور: لا شيء.
>> رئيس 1: لا شيء.
لماذا هذا؟
>> الحضور: تم تصميم أنا لصفر.
لذلك، وحالة غير صحيحة.
رئيس 1: نعم، بالضبط.
كل رمز هو الصحيح، نحويا.
وهذا تجميع، هذا سيتم تشغيل رمز، ولكنها ليست
الذهاب إلى فعل أي شيء مفيد لأنني تهيئة I إلى الصفر.
نحن ثم تحقق، هو أنني أكثر من 50؟
من الواضح، لا، انها ليست.
وبالتالي فإن حلقة أبدا ينفذ على الإطلاق.
>> ماذا لو لم نفعل شيئا أكثر من ذلك بقليل متهور؟
لذلك، ما إذا كنا نفعل مثل الباحث I يحصل على صفر.
والآن اسمحوا لي أن استخدم في حين أن حلقة، والذي كان شرط آخر.
وحين أقول، وأنا اكبر من أو يساوي الصفر، وبعد ذلك في هنا أنا
المضي قدما وحفظ الملف، وجعل حلقة.
وأنا على وشك أن تشغيله.
ما أنا ذاهب لرؤية هذا الوقت مع حلقة while؟
نعم.
>> الحضور: حلقة لا نهائية؟
>> رئيس 1: حلقة لا نهائية؟
نعم ولماذا؟
الحضور: لأنه دائما صفر.
رئيس 1: نعم.
لذلك، يتم تهيئة I صفر.
بالطبع أنا اكبر دائما من أو يساوي 0 نتيجة لذلك.
لذا، أنا مجرد الذهاب الى نرى هذا ما لا نهاية.
والآن، أصبح هذا الأمر مرة واحدة أو مرتين لرؤساء الدورة التدريبية.
ماذا يحدث عندما لدينا حلقة لا نهائية؟
>> الحضور: التحكم C.
رئيس 1: نعم.
هكذا تحكم C سترد في نهاية المطاف.
للأسف، لقد طباعتها الملايين والملايين من الأصفار بالفعل
وهكذا كان الكمبيوتر نوع من حصلت أمامي.
لذلك، فإنه يجري تجاهل لي قليلا.
ولكن إذا كنت مجرد ضرب تحكم C قليلة مرات على جهاز Mac أو PC لوحة المفاتيح،
في نهاية المطاف يجب أن، في الواقع، إنهاء.
وإذا لم يكن، فإننا سوف تظهر لك بعض تقنيات قبل فترة طويلة حيث كنت
في الواقع يمكن أن تقتل برامج قسرا، مثل الكثير في ويندوز وماك OS،
إذا لزم الأمر.
ولكن دعونا نجرب شيئا آخر.
دعونا زيادة في الواقع I. هل هذا لا تزال جارية ليكون لانهائي؟
اسمحوا لي أن تشغيل هذا.
ويمكنك الآن نوع من انظر ما يحدث.
هذا، أيضا، هو حلقة لا نهائية.
ولكن هذا هو قليلا من مسألة خدعة.
يتم هذا الانتقال لطباعة الأرقام إلى الأبد؟
>> الحضور: رقم
رئيس 1: رقم
لماذا؟
سمعت بعض غ أكثر من هنا.
Someone-- نعم.
الجمهور: لم يكن لديك ما يكفي بت لإبقاء حقا الذهاب.
رئيس 1: كل الحق.
لذلك أنا لم يكن لديك ما يكفي بت على الاستمرار.
لذا، ما الذي سيحدث؟
انها مجرد الذهاب الى وقف؟
>> الحضور: في بعض نقطة وسوف تغلق the--
رئيس 1: وسوف تغلق في أسفل الحلقة، ولكن لماذا؟
ما الذي سيحدث في نهاية جدا من حدوده؟
نعم؟
الحضور: وسوف دورة العودة إلى الأرقام السالبة.
SPEAKER 1: الأرقام السالبة، أو لو كنا مجرد علاج إيجابي،
الصفر على الأقل.
لذلك نعم، بالتأكيد.
نذكر أن رأينا في المرة السابقة أنه إذا زيادة بت لديك واحدة عدة مرات أيضا،
وكنت هناك الصدارة تجاوز قدرة إدارة النزاهة المؤسسية
أو أيا كان نوع البيانات، كنت الذهاب إلى التفاف حولها، ربما،
رقمين السلبية.
أو إذا كنت قد حدد بأن ما تتمتعون به مجموعة يجب أن يكون فقط إيجابي،
الذي يمكنك القيام به، ولكن لم نشهد ذلك حتى الآن،
قد ينتهي بك الأمر على الأقل مرة أخرى من الصفر.
وعلى الرغم من الواقع نعم.
في هذه الحالة، سلبية أرقام، وفي هذه الحالة
الحلقة هو الذهاب الى إنهاء لأنني لا، في الواقع،
أكبر من أو يساوي الصفر اذا كان سلبيا.
>> لذلك، للأسف، كيف منذ فترة طويلة سيتعين علينا أن ننتظر؟
الآن نحن حتى ما، 2000000 العش؟
نحن مثل 2000000000، ونحن في طريقنا لديك إلى الانتظار
حتى يمكننا أن نرى في الواقع هذا العرض.
ولكن يمكننا أن نرى أنه من أسرع قليلا، maybe-- دعونا نرى ما اذا كنا نستطيع المقاطعة.
هيا.
حتى القوائم هي التي تظهر ببطء.
حسنا.
لذلك، سوف نعود إلى هذا قبل فترة طويلة.
انها جيدة time-- اللعنة، الجراء.
>> لقد حان الوقت للبعض الإعلانات.
لذا، إذا كنت قد ترغب للانخراط في YHack،
الذي حدث يجري برعاية أصدقائنا في جامعة ييل.
و، في الواقع، بعض من هذه الدورة ل TFS في جامعة ييل يشاركون مع هذا.
YHack هي منظمة دولية الإختراق واحد في ثون استضافته وعقد
في جامعة ييل، والجمع 1500 مثل المتسللين التفكير والتصميمات جميع
حول العالم.
إذا كانت هذه المصالح، نلقي نظرة هنا.
إذا كان هذا هو لفترة وجيزة جدا على الشاشة، نلقي نظرة على الشرائح اليوم
لURL لyhack.org.
لذلك، أيضا بعض الإعلانات سريعة.
لذلك، سوف تبدأ رسميا الأقسام الأسبوع القادم سواء هنا أو في نيو هافن.
نضع في اعتبارنا عليك أن تكون الحصول على البريد الإلكتروني لاحقا في نهاية هذا الاسبوع على الأرجح.
يستغرق وقتا طويلا لCS50 إلى القسم،
بالنظر إلى كل الناس في الطبقة والجميع يتحرك.
وجميع الزملاء التدريس " جداول أيضا ما زالت بدمج،
ولكن لا تنزعج لبريد إلكتروني وإذا دعت الحاجة يمكن، يمكنك إعادة القسم هناك بعد.
>> Study.cs50.net.
لذلك، حتى لو كنت أحد الحضور المستمر في أقسام، ندرك أن ما يقرب من جميع
من الموارد التي نستخدمها في الأقسام هي متاحة للجمهور في CS50
دراسة في هذا URL هنا.
لذا، إذا كنت ترغب من أي وقت مضى إلى إعادة مراجعة المواد من القسم، أو قراءة الأمام،
أو إذا كنت لا يمكن أن تجعل من بعض الأسبوع، ندرك أن عينة الشرائح،
والمشاكل، والتعاريف، وأكثر من ذلك جميعا هناك أيضا.
>> ساعات العمل تستأنف اليوم، وغدا، والأربعاء،
والخميس التحقق من مسار ل موقع للجدول الزمني.
>> وأيضا، وإطلاق الآن اليوم هو CS50 مناقشتها.
لذلك، إذا وعندما يكون لديك أسئلة ل بعضها البعض أو لموظفي بالطبع، و
وتعمل عموما على بعض مجموعة المشكلة،
ندرك أن تفعله ليس بالضرورة يجب أن يتحول إلى إنسان كنت المقبل.
اذا لم يكن هناك أحد هناك، يمكنك الوصول إلينا وزملاء الدراسة
عبر الإنترنت من خلال CS50 مناقشة.
لذلك، وهذا هو مناقشة المجلس للدورة،
وندرك أن هذه وربما كان أفضل
مكان للبدء عندما يكون لديك الأسئلة عندما تكون خارج ساعات العمل
بخاصة.
>> ستبدأ وجبات غداء يصل هذا الأسبوع أيضا.
في النار والجليد (غير مسموع) في نيو هافن.
نلقي نظرة على الدورة التدريبية الموقع من أجل أجبني.
يأتي أولا، يخدم أولا لذلك.
إذا كنت لا تحصل في هذا الأسبوع سنفعل هذه أكثر كل يوم جمعة
خلال فترة.
>> OK، والآن كلمة عن الدرجات.
لا سيما ونحن ندخل المشكلة مجموعة واحدة، والتي هي من هذا الأسبوع،
والمشكلة تعيين اثنين وبعد ذلك.
كيف يمكننا التوجه نحو تقييم مجموعات P وتقييم نوعيتها؟
لذلك، فإنه من أربعة محاور التي نستخدمها في CS50، وانهم هذه الأربعة هنا.
>> نطاق، الذي يجسد على رقمية أساس مدى ما تحقق من مجموعة P
هل التصدي لها.
انها تتطابق تقريبا مع الجهد، وانها طريقتنا في التقاط
هل جربت نصف P مجموعة، كل مجموعة P.
هذا هو واحد من السهل الحصول على الكمال عشرات على إذا قمت بذلك، في الواقع،
حاول كل من مجموعة P الجانب.
لذلك، والحفاظ على ذلك في الاعتبار.
>> صحة هو أن بالضبط.
هل تعمل شفرة ك مواصفات وكحل عينة من الموظفين "
أقترح أن التعليمات البرمجية وينبغي، في الواقع، والعمل.
تحقق 50، إذا لم تكن قد اجتمع بعد، هو في وضع P مواصفات واحدة
وسوف عموما تعطيك نعم / لا إجابات
لما إذا كان رمز الخاص بك هو الصحيح.
على الأقل حتى الآن ونحن في طريقنا لتقييم ذلك على أساس الاختبارات
أننا تشغيل داخل هذا البرنامج.
>> التصميم هو أكثر موضوعية من ذلك بكثير.
هذه هي الطريقة مكتوبة جيدا هو رمز الخاص بك.
وهذا أمر ستحصل على نحو أفضل في مع مرور الوقت،
وكان شيئا أننا سوف توفير المزيد من ردود الفعل النوعي على.
وحسب التصميم I قد يعني كنت قبل فترة طويلة
قد تميل في بعض P المقرر أن نفعل شيئا loopingly،
ولكن لربما يكون ثلاثة، أو أربعة، أو خمس حلقات متداخلة أو الصدارة في حين متداخلة
حلقات.
على أنه ينبغي عموما تبدأ لجعل لكم تذلل
وسيكون عام يعتبر تصميم سيئة.
وسوف تبدأ في رؤية في الصف و من الدرجة طرق جيدة للقيام بهذه الأمور،
طرق سيئة للقيام بهذه الأمور التي قد تكون كلها صحيحة، ولكن ليس
بالضرورة مصممة بشكل جيد.
مثل كتابة مقال.
كنت قد تكون قادرة على وضع الكلمات على صفحة صحيحة نحويا،
ولكن مقال أو أطروحة انهم في مجرد
غير متماسكة تماما أو غير مقنعة.
وبحيث قد يكون التناظرية في العالم خطية من سيئة أو جيدة التصميم.
>> والأسلوب، أيضا، هو شخصي إلى حد ما.
ولكن على الأقل نحن نتوقع الاتساق.
هذه هي الطريقة جميلة هي التعليمات البرمجية.
الامور بادئة طيف؟
والمتغيرات الخاصة بك اسمه جيدا / هل جميع من الأقواس الخاصة بك والأقواس المجعدة
محاذاة كما ينبغي؟
لدينا دليل على غرار CS50 كما فإن مجموعة مشكلة نقطة لكم في.
تلك هي أكثر راحة مرحبا بكم في تبتعد عن ذلك
طالما أنك ذاتيا ثابت.
وهذا، أيضا، هو الدرس سنقوم تعزز في القسم.
لذلك، إذا كان كل هذا كان قليلا سريع، وتحقيق مجموعة P والأقسام
سوف يذهب إلى أكثر عمقا قبل فترة طويلة.
>> ولكن عموما لدينا عدد قليل جدا من الدلاء لCS50.
عشرات عادة ما تكون على نطاق من 1-3 أو 1-5.
نحن literally-- وأنا لا أستطيع أن أقول هذا يكفي في الأسبوع الأول.
ثلاثة امر جيد.
لذلك، على الرغم من، نعم، ثلاثة من خمس عادة، رياضيا،
قد يكون 60 في المئة أو مثل D ناقص.
ثلاثة هي، في الواقع، وحسن.
و، في الواقع، ونحن نتوقع معظم الطلاب في الصف
لتبدأ على المدى حول ثنائي، والثلاثات، وأربع.
ربما ليس الكثير من الأطفال دون سن الخامسة.
ليست كثيرة جدا منها.
ولكن بصفة عامة أن تبدأ في بقعة التي الحلوة في منحنى
بحيث مع مرور الوقت، هناك في الواقع مجالا ل،
وفرص التقدم العلوي.
لذلك، من فضلك لا تساوي ثلاثة مع 60٪.
انها أكثر تجريدا من ذلك بكثير.
الصيغة التي نحسب ومن المرجح الدرجات على النحو التالي.
صحة يستحق أكثر من غيرها.
تصميم يستحق أقل من ذلك بقليل.
الاسلوب هو يستحق أقل من ذلك بقليل.
وهذا بشكل عام يلتقط مقدار الوقت
أن يذهب إلى الحصول على كل من هذه المحاور مجرد حق.
الاسلوب هو السوبر سهلة، يجب أن تكون فائقة سريعة،
ولكن انها عادة سهلة للحصول على كسول عنه.
صحة قد يستغرق كنت معظم الوقت.
مطاردة بعض القوة علة أخذ ذلك ساعة إضافية أو أكثر،
وهكذا، فإن التهديف يلتقط في نهاية المطاف ذلك.
وهكذا، والآن كلمة أكثر خطورة.
منذ CS50 لديه التمييز، للأفضل
أو ما هو أسوأ، لكونها ربما أفضل اطلاع
مع القضايا الأكاديمية الصدق أكثر من أي مسار آخر.
وبالفعل، هو أن معرفتي أن نرسل المزيد من الطلاب، للأسف،
لأغراض تأديبية كل عام نتيجة لذلك. هكذا،
في مصلحة كامل الكشف، دعونا نتحدث لفترة وجيزة
حول ما يجري في CS50، وماذا يمكن القيام به، وماذا يمكن أن تكون مدركة ل.
>> لذلك، هنا منذ عام 2007، عندما أنا ورثت بطبيعة الحال،
هو عدد من الحالات لوحة الإعلانات.
لوحة الإعلانات غير التخصصات في جامعة هارفارد الجسم، أو الآن الشرف المستشار،
التي يشار الحالات طلاب تفعل شيئا أن الدورة ل
يعتبر المنهج المعقول.
ليس هناك نمط حقيقي هنا، أود أن أقول.
انه يتقلب على سنوات ولكن عموما
هذا هو عدد الحالات التي تحال.
عدد الطلاب التي تشارك؟
وهو يختلف أيضا.
عادة، في العام الماضي ل سبيل المثال، 29 طالبا في جامعة هارفارد
كان الإعلان استقل، إذا جاز التعبير.
29 منهم الطلاب الحاليين، اثنان منهم طلاب مسبق،
الذين كانوا التعاون بطريقة ما غير مرغوب فيه.
ثم من حيث مئوية، انها عادة حوالي 3٪
الفئة التي، للأسف، يجعل هذا النوع من القرارات.
>> لذلك، كان عليه في العام الماضي 3.5٪ من الجسم الطلابي CS50 ل
كان ذلك الإعلان استقل، إذا جاز التعبير.
>> لذا، ماذا كل هذا يعني؟
وماذا نفعل حقا؟
>> لذلك، من أجل الكشف الكامل، ونحن تماما، كما علماء الكمبيوتر،
لدينا أدوات البرمجيات التي في حوزتنا وأنه من السهل جدا بالنسبة لنا، وإحقاقا للحق،
زملاء الدراسة أن الآخرين الذين ليسوا عبور هذه الخطوط لعبور مقارنة
كل تقديمها هذا العام ضد كل تقديم على مدى السنوات الثماني الماضية.
برنامج يفعل ذلك.
وفي نهاية المطاف انها العين البشرية التي تقرر
أم عدم إحالة بعض يهم لمزيد من المقاضاة،
ولكن البرنامج يساعد بالتأكيد.
وهذا، بصراحة، هو السبب في أنني أعتقد لدينا هذه الأعداد الكبيرة في CS50.
انها ليست لCS50 الطلاب أو الطلاب CS أكثر
عموما أي أقل صادقين من أي الطلاب الآخرين،
انها مجرد لدينا الأدوات والتقنيات
التي لاتخاذ هذا الممر الأول.
>> ولكننا إبقاء العين على كل هذه الأمور
كذلك، مرة أخرى، في مصالح تقديرا للعمل الذي يتم وضع
في بأغلبية عظمى من الدرجة.
وسياسة بالطبع ل على الصدق الأكاديمي،
على الرغم من انها مجموعة من الفقرات منذ فترة طويلة مع حفنة من الرصاص
التي نأمل قراءة تماما، فإنه حقا لا تختزل أن تكون معقولة.
وأفضل بحكم التجربة أن ونحن نقدم في غضون المنهج
غير هذا، فإن جوهر جميع الأعمال التي قمت
تقدم إلى هذه الدورة يجب أن تكون لك.
وبالفعل، في ما يقرب من جميع تلك القضايا المحالة للإجراءات تأديبية
كان ذلك بسبب طالب في وقت متأخر بعض واحد ليلة عادة تحول له أو لها كود
على الفور إلى زميل، من ثم اعتماده
في مجملها أو منها إلى حد كبير.
>> ولكن في الحقيقة، وهذا لا بأس به.
وبالفعل، في مكتبه ساعات، وقصاصات الورق
كنت قد سلم إذا جاء عن مكتب ساعات يشجع الاسبوع الماضي بقدر.
كنت على الاطلاق رحب وشجع
لمناقشة مجموعات مشكلة مع زملاء الدراسة.
لمساعدة بعضهم البعض عندما عثرة.
ولكن بصفة عامة يجب أن القاعدة الأساسية يكون هذا "، عندما كنت طالبا للمساعدة،
قد تظهر التعليمات البرمجية للآخرين، ولكنك قد لا عرض لهم. "
لذلك، وبعبارة أخرى، إذا أنا تكافح مع بعض مجموعة P
وأنا جالس هناك في قاعة الطعام، أو في المكتبة،
أو في الفصول الدراسية في محاولة للعثور على بعض الخطأ،
أنا يمكن أن تظهر بالتأكيد قانون بلدي على الشاشة
إلى شخص يجلس بجوار بالنسبة لي، وبالتأكيد الموظفين،
ولكن أيضا زميل.
ولكن إذا كان الحل الذي زميل لي هو يقدم، أوه،
هنا مجرد إلقاء نظرة على ما فعلت، التي تعبر خط المرمى.
>> وأود أن أجرؤ على القول أن هذا عموما شيء معقول بالنسبة لمعظم الناس
على الفور بسهولة جدا خط.
وبذلك، راجع المنهج لمزيد من التفاصيل.
والآن واحدة من أكثر الجوانب المثيرة للجدل
من CS50 المنهج الذي ظننت أنني سيتحدث لفي الختام هنا
هو ما يسمى بند الأسف.
لذلك، وهنا كل التفاصيل الدقيقة.
ولكن بصفة عامة شهدنا على مدى 8 سنوات زائد الماضية
هذا، في الواقع، وكلها تقريبا من وCS50 حالات خيانة الأمانة الأكاديمية
وكانت نتيجة فقط الفقراء جعل وقت متأخر من الليل القرار.
نتيجة الإجهاد، نتيجة عدم تناول الطعام، وقلة النوم،
العديد من مجموعات P، كثيرة جدا المواعيد النهائية، والكثير من الالتزامات.
الإجهاد بناء في 02:00، 03:00 صباحا، 4:00، مع اقتراب الموعد النهائي المحدد.
معظم الطلاب في هذه الحالات وقد أدلى به للتو قرارات سيئة
أنهم قد يندم جيدا صباح اليوم التالي إن لم يكن بعد دقائق،
ولكن حتى العام الماضي لم يكن هناك الافراج عن صمام التي يمكن هؤلاء الطلاب
فتح فعليا لمعالجة الواقع رئيس المشكلة على دون خوف من التعرض
تمهيد من الكلية تماما.
>> و، في الواقع، قدمنا هذا الشرط الأسف العام الماضي،
التي تقول أنه إذا ضمن 72 ساعة، ثلاثة أيام،
من عبور بعض الخط المنصوص عليها في المقرر الدراسي
أتيت إلى الأمام إلى واحد من هذه الدورة ل رؤساء وسيكون لدينا محادثة حول هذا الموضوع.
لا تزال هناك بعض النتيجة، على عكس ما هو
تم إبلاغ العكس.
لا يزال هناك بعض النتائج التي غير قابلة للتنفيذ من قبل بطبيعة الحال،
التصفير عموما مجموعة P أو اتخاذ بعض الإجراءات الأخرى،
ولكننا سوف، في الواقع، التعامل معها أنفسنا وليس
الرجوع مكانة أعلى كانت نتائج قد يكون أشد من ذلك بكثير.
و، في الواقع، لتقاسم ما حدث في العام الماضي، في السنوات الثماني، والآن
تسع سنوات من تدريس هذه الدورة وبعد ترقيع مع مختلف المقابض،
تحويل مختلف الأوجه على الماضي عدة سنوات على الصدق الأكاديمي،
ورؤية فقا لبيانات واضحة لا أثر، حتى الخطب مثل هذا،
وكان هذا الأيدي أسفل أفضل شيء لقد قدمنا ​​تربويا
في ثماني سنوات جنبا إلى جنب هذه الخطوط في CS50.
>> وجاء 19 طالبا إلى الأمام تحت هذا الشرط العام الماضي.
نحن لم تتخذ أي إجراء ل سبعة من هؤلاء الطلاب،
تحديد ان كانت قلق لا داعي له.
كان لديهم لا، في الواقع، عبرت خط، لكنها
كانت محادثة جيدة أن يكون مع ذلك.
نحن ركزت 11 من العشرات التي قدمت.
وفي حالة واحدة طلبنا من الطالب للقيام مشكلة تعيين.
ولكن أكثر إلحاحا، بصراحة، مع هذه الأحاديث 19،
الذي كان أكثر من طريقة I من المتوقع أن يكون كل واحد منهم
10 دقيقة لربما ل ساعة طويلة، جلبت أيضا
الضوء على عدد من القضايا المتعلقة القضايا الأسرية والقضايا صديق،
قضايا الصحة النفسية أننا ثم انخرطت،
مع الطالب نعمة، مقيم عميد، أو الأصدقاء، أو أي رقم آخر
من موارد الدعم.
ذلك أن هذا هو حد بعيد واحدة من أفضل الاستخدامات في عصرنا
واحدة من أفضل التدخلات.
>> وقال مع ذلك، أنه ليس لديها مساهمة في معدل كشف
من خيانة الأمانة الأكاديمية بشكل عام.
وأجرؤ على القول، وهذا فرعية الطلاب العام الماضي
كان الديموغرافية أننا في السابق أبدا تحديدها قبل
وكان على اتصال مع أبدا من قبل.
وهكذا، كانت هذه قصص نجاح رائعة
على الرغم من أنها سلطت الضوء في أقل من الظروف المثلى.
لذلك، تضع ذلك في اعتبارها وجعل لكم، ربما،
بعض القرارات الفقراء نفسك في ساعة متأخرة من الليل،
هذا هو اللجوء هناك وقتا طويلا كما طالب في هذه الحالة
بتملك ما يصل، وتأتي إلى الأمام حتى ما في وسعنا يكون هذا النوع من دردشة والتعامل معها
بطريقة التعليمية، ومن ثم يمكننا أن نضعها خلف ظهورنا في اليوم التالي.
>> ذلك دون مزيد من اللغط، واتخاذ حافة الخروج من هذه المحادثة،
السبب الجراء هي اعلى فقط لكسر الجليد للحظة واحدة.
ولسوء الحظ، انهم جميعا النوم، ولكن ما كان من المفترض أن يحدث هنا
وكان من المفترض كان الجميع إلى الرعب ونوع من الاسترخاء
بعد تلك المحادثة ثقيلة جدا.
ولكن يبدو أن أضع الجراء للنوم.
ولكن إذا ذهبت إلى لCS50 الجراء موقع مائل،
يمكنك مشاهدتها طوال اليوم.
ولا سيما ربما 2:00، أو 03:00، أو 4:00 ليلا
لرؤية تخفيف التوتر قليلا هناك.
لذلك هذا هو خفض الجراء.
حسنا.
لم يكن ذلك متعة؟
حسنا.
لذلك، والعودة إلى بعض الكمبيوتر العلم، إذا جاز لي.
>> لذلك، ويذكر أن آخر مرة بدأنا لا تبحث فقط في الرئيسية، التي
وكانت وظيفة افتراضي، عندما العلم الأخضر النقر يعادل،
ولكن بدأنا أيضا لفترة وجيزة كتابة بعض الوظائف الخاصة بنا.
وحتى الآن لا شيء من هذه الوظائف كانت كبيرة بشكل خاص أو لحمي.
سوف تحصل في تلك أكبر وظائف على الأرجح، مجموعة P 2، تعيين P 3،
بالتأكيد وضع P 4 وما بعده.
الحق الآن معظم البرامج الخاصة بك، إن لم يكن جميعهم، وبالتأكيد لP
مجموعة 1 يمكن أن يتم كليا في الرئيسية.
إذا كان البرنامج الوحيد خمسة أسطر، 10 خطوط،
حتى 20 خطوط طويلة، تماما معقول لأنه يكتب
كل ما في الرئيسية وعدم الإفراط تعقيد التعليمات البرمجية الخاصة بك، ولكن ما نفعله اليوم
وفصاعدا تحاول أيضا إدخال بعض التقنيات التصميم الجيد
بحيث كما يحصل التعليمات البرمجية الخاصة بك أكثر تعقيدا ولأن المشاكل
كنت ترغب في حل تحصل على أكثر صعوبة و أكثر إثارة للاهتمام لديك، نوعا ما،
الأدوات في الأدوات الخاصة بك التي لتصميم حلول جيدة لهؤلاء.
>> لذا، دعونا نلقي نظرة سريعة إلى الوراء في هذا البرنامج من وجهة نظري الأسبوع الماضي، والتي
وظائف صفر نقطة C. و لاحظت أن، بكل بساطة،
يبدو مثل هذا مع اثنين وظائف والرئيسية واسم المطبوعة.
والتفكير في العودة أو ربما الهندسة العكسية اليوم،
ما هو الدافع لتقديم وظيفة في خط 28 ودعا،
اسم المطبوعة؟
أو ما كان هذا مثالا للفي حيث المبدأ أو الوجبات الجاهزة،
لو تفضلتم.
بعض لغط.
ماذا؟
>> نعم التحلل وظيفية ذلك هو نوع من طريقة أخرى للقول،
تتحلل البرنامج إلى أجزاء المكونة لها
ومن ثم استخدام تلك الأجزاء لتجميع ككل.
لذلك، وهذا هو أيضا مجرد نوع من الفم بالفعل،
ولكن هذا هو ربما حتى مثال أفضل من شيء
فقط ودعا التجريد.
الصحيح؟
التجريد ستكون واحدة من الموضوعات المتكررة في CS50
وأيضا علوم الكمبيوتر بشكل عام نظرا لأنه
تقنية التي يمكنك حل المشكلات بشكل أكثر كفاءة لأنك
يمكن إرسال المزيد من الحلول حدسي وبطريقة موازين
وغير مفهومة من قبل أشخاص آخرين.
ماذا يعني ذلك؟
>> لذلك، يمكن القول أنها أكثر قابلية للقراءة الكثير أن ننظر إلى مثل هذا البرنامج،
باختصار فائقة على الرغم من أنه هو.
عندما تراها على خط 22 أن هناك وظيفة ودعا، اسم المطبوعة.
يقول أن الاسم وحده ما تقوم به.
أن وظيفة يأخذ على ما يبدو المدخلات بين قوسين لها،
وعلى ما يبدو لا شيء، يطبع اسم فرضا.
وهكذا، على الرغم من أننا يمكن أن يكون على الاطلاق
فعلت ما فعلنا قبل أسبوع، والذي كان مجرد اتخاذ هذا الخط الفعلي للقانون،
تخلص من هذا، والحصول على التخلص من كل هذا معا،
نحن نوع من المستخرجة بعيدا فكرة طباعة الاسم.
لا يهمني إذا كنت تستخدم مواطنه الطباعة.
لا يهمني إذا كان لديك في المئة S وN. مائل هذه
هي تفاصيل غامضة بشكل لا يصدق.
ما نهتم باعتباره مبرمج تطبع اسم.
وهكذا، ما أفضل طريقة للقيام بذلك من خلال الدعوة وظيفة، اسم المطبوعة؟
وهكذا، وكان ذلك أحد الدوافع لفعل شيء من هذا القبيل.
مما يجعل رمز أكثر قابلية للقراءة، وأكثر قابلة لإعادة الاستخدام، وأيضا النفس وصفي.
الآن، دعونا نلقي نظرة في مثال آخر،
التي كانت وظائف واحد، الذي كان لدينا أكثر من هنا.
>> لذلك، هذا هو واحد ربما أكثر مقنعة، لأنه في هذه الحالة،
أنا لا أريد أن مجرد الحصول على عدد صحيح.
أريد الحصول على الباحث إيجابي.
واتضح للحصول على إيجابية كثافة العمليات ما عليك القيام به حفنة من يغوورك.
الصحيح؟
انها ليست سطر واحد بسيط استدعاء وكأنه كان اسم المطبوعة،
وهو المسلم أقل إلحاحا.
>> للحصول على كثافة العمليات إيجابي، logically-- اسمحوا لي أن انتقل إلى أسفل لإخفاء ذلك.
ماذا عليك أن تفعل؟
مثل كل الأدوات التي لدينا في لحظة
أشياء مثل مواطنه الطباعة من المعيار المكتبة وأيضا من مكتبة CS50
لدينا احصل على كثافة العمليات، واحصل على تعويم، الحصول طويل طويل، الحصول على سلسلة،
ولكن واحدة فقط، وثيق الصلة، الآن هو الحصول على كثافة العمليات.
لذلك، إذا كانت الأداة الوحيدة لديك في صندوق الأدوات الخاص بك هو الحصول على كثافة العمليات،
كيف يمكننا التوجه نحو تنفيذ ذلك للحصول على كثافة العمليات إيجابية؟
>> الحضور: إنشاء سجل وتحقق على ما إذا كانت المدخلات التي قدموها
كان إيجابيا أم لا.
>> رئيس 1: الكمال.
بالضبط.
أداة أخرى لدينا في الأدوات من أسبوع أو أسبوعين قبل
هو مجرد بناء حلقات.
وهكذا، نعم، إذا استخدمنا بعض الوقت حلقة، أو افعل حين حلقة، أو الصدارة
حلقة أننا ربما يمكن أن تحصل بعيدا مع أي من تلك بشكل أو بآخر.
يمكننا تنفيذ فكرة الحصول على الباحث إيجابي فقط باستخدام احصل على كثافة العمليات،
ومن ثم تبقي فقط اصفا اياه مرة أخرى والحفاظ على المضايقه المستخدم
حتى انه أو انها فعلا يعطينا ما نريد.
>> وحتى الآن، وهذا التجريد من عملية
للحصول على كثافة العمليات إيجابي في وظيفة تسمى
الحصول إيجابي كثافة العمليات هو أكثر من ذلك بقليل قاهرة لإلقاء نظرة على هذا.
هذه هي مثل 10 زائد خطوط من التعليمات البرمجية التي
ويشارك في الحصول على كثافة الإيجابي، وأنا لا يهمني حقا كيف يمكنك أن تفعل ذلك.
كل ما يهمني هو أن أن تفعل ذلك، وحتى لقد قمت
مخفي كل هذه التفاصيل وراء وظيفة تسمى احصل على الإيجابية الباحث أن،
في الواقع، لديه هذا القيام به أثناء الحلقة.
>> ونرى في الاسبوع الماضي لبناء الجملة هناك، لكنه يعلن فقط N،
وذلك بطباعة تعليمات للمستخدم.
ويدعو احصل على كثافة العمليات ومن ثم فإنه يتحقق هذا الشرط مرة أخرى، ومرة ​​أخرى،
ومرة أخرى حتى يتعاون المستخدم.
>> وحتى الآن، وبعض الفحوصات التعقل.
بالنسبة لأولئك ربما مألوفة مع بعض البرمجة،
لماذا أعلن N، ماذا يمكنني إنشاء N خارج افعل حين حلقة؟
لماذا هو على خط 29 وليس على غرار 33، على سبيل المثال.
>> الحضور: لأنه عندما كنت تعلن الخارج، نوع
أكثر من ذلك، وscope-- أكبر
>> رئيس 1: جيد.
>> الحضور: --and إذا قمت بتعريف ذلك داخل الحلقة، [غير مسموع]
لأنه لا يعرف عن ذلك.
رئيس 1: بالضبط.
اذا كنت استطيع simplify-- انها مسألة النطاق.
ويشير نطاق إلى السياق التي متغير موجود أو غير صالحة للاستعمال.
وحكم جميلة من الإبهام هنا هي أن عموما عندما تقوم بتعريف أو إنشاء
متغير يمكنك فقط استخدامه داخل من أقرب احتضان الأقواس المعقوفة.
فماذا يعني ذلك؟
إذا أنا، بدلا من ذلك، التراجع عن هذا وتذهب مع شيء أن يشعر أبسط قليلا.
الصحيح؟
>> خط 32 فقط تبدو أفضل بالنسبة لي الآن.
أنا أفعل كل من الأشياء في مرة واحدة ثم تعيين
اليد اليمنى على اليد اليسرى.
المشكلة الآن على أساس أن تعريف نطاق
هو أن N يمكن استخدامها في خطوط 31 و 32 داخل هذه الحلقة،
ولكن أين من قبل أن التعريف يمكن أن لا يتم استخدامها؟
في خط ماذا؟
نعم.
>> الحضور: 35.
>> رئيس 1: 35.
بالتأكيد ليست 35.
وكما في أي مكان آخر؟
الحضور: 34.
رئيس 1: حتى 34 غير إشكالية لأنه
خارج الأقواس المعقوفة.
وهكذا في الواقع، دعونا نرى ما سيحدث.
الصحيح؟
قد يبدو هذا قليلا بديهية لا أو ربما،
ولكن دعونا نرى ما المترجم أن أقول عندما
نذهب إلى الدليل المصدر اليوم.
جعل وظيفة واحدة.
يا إلهي.
حسنا، انتهيت أخيرا التي، بالمناسبة.
حسنا.
وما هو القضية هنا؟
غامضة جدا أن ننظر إلى.
ولكن هنا ما typed-- جعل وظيفة واحدة.
وهنا ما جعل يسببها، الذي هو في الواقع
باستخدام رنة مترجم مع بعض من تلك الأعلام
أننا سنرى مرة أخرى قبل فترة طويلة.
ومرة أخرى، تبدو دائما في الخطأ الأول،
لأنه قد يكون مجرد المتتالية تأثير لا معنى له على خطوط أخرى.
>> وذلك ما يعنيه هذا هو أن المشكلة هي في وظيفة 1.ج
كان على خط 32.
وانها في العمود، أو حرف، 13.
لذلك عندما محرر النص الخاص بك التي يمكن أن تساعدك على تحديد حيث كانت المشكلة.
حتى لو كنت انتقل لأعلى، ما هو خط 32؟
وهذا في الواقع هذا واحد وهذا ما قد القى الضوء
ن متغير الحق غير المستخدمة here--.
ولكنها ليست غير المستخدمة.
أنا استخدامه.
ولكن المترجم في الخلط، لأن أنه موجود فقط داخل هذا النطاق.
ولذا لا يمكن استخدامه هنا.
أنا لا يمكن استخدامه هنا.
والمترجم، وبالتالي، لا أهتم حتى أن أحاول.
يبدو أن غير المستخدمة ضمن نطاقه الفعلي.
>> حتى نتمكن من توسيع نطاق بالممارسة بالضبط ما بدأنا with-- كثافة العمليات ن.
وعلى الرغم من أنها لا تبدو أنيقة كما، ربما،
ونحن اتخاذ خط اضافي هنا، والآن هو في نطاق كل مكان.
لذلك دعونا نحاول مرة أخرى.
لذلك جعل وظيفة واحدة.
لطيف.
والآن لو أنني إذا قمت بتشغيل وظيفة واحدة، دعونا إعطائها سلبية 10،
سلبي 1، 0، 1، ويعمل في الواقع.
>> ولذلك لا يوجد حل آخر هنا.
أتعلم؟
ماذا لو أنا حقا المصارعة مع هذا؟
أنا لا أعرف من أين ن من المفترض أن تذهب.
أتعلم؟
أنا ذاهب لمجرد وضعه كل الطريقة في الجزء العلوي من الملف الخاص بي هنا.
ما فإن هذا لا، هل تعتقد؟
نعم؟
>> الحضور: (غير مسموع).
رئيس 1: نعم.
حتى لقد جعلت العالمية، إذا جاز التعبير.
إذا كان لديك متغير هذا خارج جميع مهامكم أن يسمح،
ورمز يجب ترجمة، ون حينئذ يمكن الوصول ليس فقط في الحصول على
الباحث إيجابي، ولكن أيضا في main-- التي هو القليل من إثارة للقلق لأنه لا يوجد
بالفعل ن في main، أكثر من ذلك على أن في مجرد اللحظات،
ولكن هذا من شأنه أن يعتبر تصميم سيئة.
حسنا.
إذا كان لديك اللجوء إلى شيء من هذا القبيل، أوه، وسوف أكون
مجرد وضعها هنا ل يبدو رمز لتجميع
عموما ليست أفضل الممارسات.
بدلا كنت ترغب في اختيار في أضيق نطاق ممكن
للمتغيرات الخاصة بك، وهو ما يعني الذهاب مع شركائنا في التصميم الأولي، التي
هو هنا.
>> الآن بوصفها جانبا، إذا لم يكون واسمه مطابق-المتغير هنا،
وهناك طريقة لمعالجة ج this-- على الرغم من أن هذا لن يحدث often-- جدا
غير أن هذا لا يزال غرامة تماما هنا.
ولكن هذا التعريف للن في خط 22 سوف الظل عالمية.
وبالتالي فإن هذا واحد يعمل داخل الرئيسية، واحد عالميا
ستطبق فعليا عندما كنت في الحصول على إيجابية الباحث لكن أكثر على ذلك
وقت آخر، ولكن فقط بالنسبة لأولئك الفضوليين.
>> هكذا وباختصار، نصلح هذا هنا.
الآن دعونا ندف عدا قطعتين أخرى قبل أن ننظر في سطر واحد الأخير من التعليمات البرمجية
في هذا البرنامج.
الحصول على الباحث إيجابي.
على الجانب الأيسر من كلمتها هي كثافة الكلمة.
ماذا يعني أن دلالة رأيك؟
حتى الآن رأيناه في الغالب باطلة.
نعم؟
>> الحضور: إنها نوع من المتغير الذي كنت طالبا عنه.
>> رئيس 1: نعم انها نوع، واسمحوا لي لا أقول متغير، ولكن نوع من القيمة
هذا أنا أسأل مرة أخرى ل.
والواقع، وهذا بديهية هنا، ونأمل.
الصحيح؟
إذا كنت ترغب في الحصول على الباحث إيجابي، ما هو لك
تريد function-- مثل لدينا متطوعون من الأسبوع الماضي
لتسليم بعودتكم قطعة من الورق مع الباحث على ذلك؟
ولذا فإننا قد حددت أن يسمى النوع عودة هذه الوظيفة
هو الحصول على الباحث إيجابي.
إذا لم نكن نريد ل يعود أي شيء، ويقول لك باطلا.
إذا كنت تريد أن العودة سلسلة، ويقول لك السلسلة.
إذا كنت تريد أن العودة تعويم، ويقول لك تعويم.
ولكن الوحيد الذي ينطبق هنا منطقيا، لأنني أستخدم الحصول على الباحث،
على الرغم من أنني تقييدها ل القيم الإيجابية، هو إرجاع الباحث.
>> هكذا العكس من ذلك، ما الذي يعنيه أن هناك فراغا بين قوسين؟
ما يفعله الأقواس تعريف عموما؟
نعم؟
>> الحضور: وهذا يعني أن الدالة لا تحصل فعلا.
>> رئيس 1: ويقصد بها الدالة لم يكن في الواقع الحصول على ماذا؟
>> الحضور: مدخلا.
>> رئيس 1: مدخلا، على الإطلاق.
حتى في الواقع، إذا قوسين هنا يمكنك تحديد باطلا،
هذا يعني فقط أنا لا أريد أي مساهمة.
سوف تعامل مع المشكلة نفسي.
وبالفعل، لم يكن لديك ل أقول الحصول على أي شيء إيجابي كثافة العمليات.
كنت أقول، والحصول على كثافة العمليات الإيجابية، والتي وظيفة تنفجر وبذل كل شيء.
>> ولكن كان هناك القليل الحيلة لدي تم اللعب هنا هذا طوال الوقت
للتأكد من هذا الرمز يجمع.
لاحظ أن int-- الحصول إيجابية الباحث void-- على خط 27.
ولكن لسبب ما يبدو غريب كما انها هنا في السطر 16.
وفقط لحسن التدبير سوف أكرر هذا حتى انها متطابقة تماما.
وقلت النموذج مع قليلا من سطر واحد للتعليق.
ماذا يحدث إذا قمت بحذف ذلك، و أعد الآن جعل وظيفة 1، يدخل.
يصيح.
إنتظر دقيقه.
أين التبويب الخاص بي؟
هاه؟
تعليق.
جعل وظيفة 1.
هناك نذهب.
حسنا.
لم حفظه بشكل صحيح.
لذلك، أعتقد أن هناك قليلا علة هنا حيث أنا لست
رؤية اسم علامة التبويب في الوقت الراهن.
ما الذي يجري هنا؟
إعلان ضمني من وظيفة الحصول على الباحث إيجابي غير صالح في C99.
لذلك الخلط مرة أخرى.
فما هو هذا يدل على؟
حسنا، اتضح أن C هو غبي جدا.
حسنا، انها البرمجة اللغة، أو بالأحرى المترجم هو.
هو وحده يعلم ما لديك تدريسها، وانها فقط
الذهاب إلى معرفة شيء إذا كنت تدرس من قبل.
وبعبارة أخرى، في الرئيسية في هذه اللحظة، وأنا
محاولة استدعاء دالة دعا حصول الباحث إيجابي.
ولكن المترجم لن لاحظت أن تحصل الباحث إيجابي
موجود حتى خط 26.
وذلك ما يقوم به هو مجرد مترجم أخطاء بمجرد أن يحصل على خط 17،
قائلا الإعلان الضمني من الحصول على كثافة العمليات الإيجابية، التي
هو مجرد طريقة أخرى للقول، وأنا لا معرفة ما تحصل عليه هو الباحث إيجابي حتى الآن.
>> لغات أخرى مثل جاوة و بايثون وروبي قد نتطلع إلى الأمام.
C لا.
وبالتالي فإن الطريقة نصلح هذه هي واحدة من طريقتين.
إما واحدة، إذا كانت المشكلة هي أن الحصول على لم ينظر الباحث إيجابي من قبل،
حسنا، اسمحوا لي فقط تحريكه إلى الأعلى.
ومن شأن ذلك أن حل هذه المشكلة.
ولكن عموما، انها تعتبر تقنية أفضل
لوضع المهمة الرئيسية الخاصة بك في غاية أعلى حتى أن الإنسان قراءة التعليمات البرمجية
يعرف ما يقوم به البرنامج، لالرئيسي هو عدم دفن جميع
الطريق في الجزء السفلي أو في الوسط.
انها في أعلى جدا.
بحيث لا يشعر المثالي.
ويمكنك الحصول على الواقع في الحالات التي يكون فيها
إذا المكالمات وظيفة واحدة آخر مما يستدعي آخر،
يمكنك الحصول في مشكلة حيث لا يمكن أن تذهب فوق الأخرى، منطقيا.
انها مجرد غير ممكن.
>> وبالتالي فإن الطريقة للعمل حول هذا لتأخذ فقط
توقيع وظيفة، لذلك لspeak-- السطر الأول حيث انها declared--
ومجرد نسخ ولصق عليه في أعلى، ولكن ليس مع braces-- مجعد
فقط بفاصلة منقوطة.
انها مثل قليلا تلميح ما هو آت.
في واقع الأمر، كل هذا الوقت عندما كنا لقد رأينا أشياء مثل io.h القياسية
وcs50.h، وبالمثل، في تلك النقطة ملفات ح وهناك نماذج أخرى.
وسنرى أنه قبل فترة طويلة.
>> هكذا وباختصار، عندما يكون لديك برنامج في ملف مع وظائف متعددة
إلى جانب رئيسي، كنت تقريبا دائما نريد أن يعلن لهم
فقط عن طريق أولهم الخط، تليها فاصلة منقوطة،
في أعلى جدا من الملف.
كان ذلك كثيرا في كل مرة.
أي أسئلة؟
حسنا.
>> لذلك دعونا ننتقل بعد ذلك إلى شيء مثل السعال.
اه.
كيف المناسب.
حسنا.
السعال.
حتى هنا هو ج تنفيذ برنامج
فعلنا ذلك اليوم في الصفر التي ببساطة شديدة فقط
يقول السعال والسعال والسعال.
حسنا.
وقال أحدهم قليلة قبل أيام أن هناك
طريقة لتنظيف هذا الرمز تصل بالفعل.
حسنا؟
في أقرب وقت كما كنت نسخ و لصق التصميم ربما سيئة.
مرة واحدة على الأقل نصل إلى أربعة أو خمسة أو 20 السعال، فإنه يشعر ممارسة سيئة.
نحن فقط نأخذ نسخة، اللصق.
ما هو الحل واضح لتنظيف هذا البرنامج يصل؟
>> الحضور: حلقة.
>> رئيس 1: نعم.
وذلك باستخدام حلقة.
ويمكننا استخدام حلقة ل، حين حلقة، أي عدد من النهج.
والواقع، وهذا ما نقوم به في إصدار واحد هنا.
لقد بدلا إعادة كتابة عليه في إصدار واحد من cough.c
أن يكون السعال عادل ضمن حلقة ل.
كل الحق، ولكن هناك ل الفرصة الآن لنوع من بداية
لتصميم هذا قليلا أشبه الدرس تعلمنا منذ لحظة،
وهو this-- نفترض أنني أريد إنشاء دالة يسمى السعال،
دعونا نتأمل لمجرد لحظة ما أريد لها أن تبدو.
حتى لو كنت تريد شيئا للسعال، أنا فقط بحاجة
استخدام الطباعة و داخل الدالة.
وبالفعل أنا.
في واقع الأمر، كل هذا الوقت، في أي وقت أنت
طباعة شيء ل الشاشة، وهو مبرمج
سيدعو أن الآثار الجانبية.
انها ليست لي تسليم شخص مرة أخرى قيمة.
انها لي اتخاذ بعض الإجراءات قد يكون واضحا بصريا.
ولكن هذه الوظيفة السعال، وأنها لا تعود أي شيء مبني على أول سطر فيها؟
لا، لأن نوع عودتها هو الفراغ، وهو ما يعني فقط
انها ليست لي أي شيء تسليم الظهر.
قد أن تفعل شيئا بصريا، ولكنها ليست تسليم لي
نسخ قطعة من الورق مثل الأسبوع الماضي.
>> هل تحتاج إلى أي الإدخال؟
لا.
وحتى انها باطلة هنا أيضا.
لذلك هذا هو أيضا نوع من الإفراط في هندسة هذه المشكلة.
الصحيح؟
لقد جعل البرنامج أكثر معقدة، والمزيد من خطوط للقانون،
أنا لم تقدم عليه أي أكثر وظيفية، ولكن هذا
سيكون نقطة انطلاق، ربما، على أوسع
السياق مع رمز أكثر تعقيدا.
ولكن ماذا عن هذا؟
ما لي done-- فقط بإلقاء نظرة خاطفة على هذا دون النظر في تعليق
في أعلى جدا من الملف-- ما يكون أنا في الأساس القيام به هنا مع السعال بلدي
تنفيذ هذا مختلفا؟
نعم، في الظهر؟
>> الحضور: جعله حتى تتمكن من لها طابع إيقاف.
رئيس 1: نعم.
لذلك هذا النوع من يشعر لطيف.
الصحيح؟
انها مثل إضافة ميزة لبك برنامج أو وظيفة الخاص بك، في هذه الحالة.
لا يزال يعود أي شيء.
قد يكون لها تأثير الجانب البصري، لأنه يدعو الطباعة و.
ولكن الآن لقد parametrized وظيفة، والتي
يعني لقد اتخذت محدد مدخلات من نوع int والذي يطلق عليه ن،
ولكن يمكن أن نسميها أي شيء أريد.
في الواقع، يمكن أن يكون مجرد مرة لتكون أكثر وضوحا.
ثم أتمكن من تغيير هذا فقط هنا.
ولكن النقطة المهمة هي أن هذه هي الطريقة I إنشاء دالة التي تأخذ المدخلات.
وإذا كنتم تذكرون التقليب من خلال الانترنت ربما في واحدة
من المشي الاقدام، و الرابع والمثال السعال النهائي،
ستلاحظ هنا لقد المعمم قانون بلدي نوع further-- من المستخرجة
أكثر من ذلك.
مثل السعال والعطس، وكلاهما عن مثل قول شيء أو اتخاذ
نوع من الصوت.
من شأنه أن يوفر يكون المقابلة كتلة خدش.
وذلك ما فعلته في هذا الإصدار، الذي نستطيع وهلة فقط في،
هو السعال هو مجرد مثل قوله، [السعال]، السعال، وفي الوقت نفسه، العطس هو
مثل قوله، [ACHOO].
وحتى لقد المعمم تنفيذ تلك
من خلال تنفيذ الآن هذه وظيفة عامة،
أقول، والتي هي مثيرة للاهتمام لأغراض اليوم
فقط لأنه لا يزال لايوجد نوع الإرجاع.
ولكن كم من المدخلات لا توجد لديها؟
الحضور: اثنان.
رئيس 1: اثنان.
وحتى إذا كنت تريد تأخذ في حجتين،
فقط تفصل بينها بفاصلة.
وإذا كنت ترغب في ذلك الحين استدعاء هذه الوظيفة،
لاحظت انك استدعاء مثلا، الاقتباس، نهاية الاقتباس،
بالنسبة للحجة الأولى، شائعة ن، للحجة الثانية.
ذلك مرة أخرى، لدينا فقط الآن اللبنات حتى نتمكن من الواقع
تنفيذ بعض المهام الخاصة بنا.
حسنا.
أي أسئلة حول هذه؟
>> حتى الآن دعونا قشر العودة طبقة إذا كان الأمر كذلك.
والهدف في نهاية المطاف، هو مجموعة مشكلة الاسبوع المقبل
سيكون على cryptogrophy-- فن الهرولة المعلومات.
وعلى وجه التحديد، فإن المعلومات سيكون عليك أن تشفير أو فك تشفير
سيكون النص.
وحتى هذا النوع من الدعوات السؤال اليوم مثل جيدا،
ما يجري تحت غطاء محرك السيارة مع النص خارج ASCII من الأسبوع الصفر،
وكيف يمكننا في الواقع البدء في التعامل مع ذلك؟
حتى هنا هو اسم Zamyla ل.
وفي النص، التي يمكن إدخالها في مثل الدالة سلسلة الحصول عليها.
وبدءا من الآن، عندما تشاهد سلسلة مثل this-- Z-A-M-Y-L-A--
نبدأ في التفكير في الأمر وكأن كل من تلك الأحرف في علبة لها
الخاصة.
وبالفعل، في الأسبوع أو نحو ذلك الوقت، كل من هذه الصناديق
سوف تمثل على وجه التحديد جدا كتلة من memory-- لدغة من الذاكرة.
لذلك كل من هذه الرسائل، في نهاية المطاف، سوف تمثل 8 بت.
وسنرى في الواقع ما يحدث تحت غطاء محرك السيارة في جهاز الكمبيوتر الخاص بي.
>> ولكن لعدم ويكفي فقط أن ننظر إلى Zamyla
من خلال هذه العدسة، حيث كل من هذه الرسائل هي في علبته الخاصة.
وبشكل جيد بما فيه الكفاية في C في وسعنا الوصول إلى كل من هذه الصناديق مباشرة.
لذلك إذا كنت ترغب في الحصول على أول خطاب اسمها، من السهل عظمى في C.
إذا كنت ترغب في الحصول على آخر الرسالة، سوبر سهلة فضلا
مع قطعة من جملة جديد.
>> لذلك أنا ذاهب إلى المضي قدما في CS50 IDE وفتح سلسلة صفر نقطة C.
وفي هذا المثال هنا، هناك بضعة أشياء جديدة مستمرة.
حتى في الخط الأول 19، لدينا شهدت هذه السلسلة الحصول على before--.
لذلك مثلما شيك التعقل سريع، اذا كان شخص ما يمكن أن توفر ما يصل لفظيا
شرح شخصا عاديا ل ما يجري في خط 19.
وكأنه مجرد ترجمة هذا إلى الإنجليزية أن الحجرة ليس في CS50
قد فهم.
نعم.
>> الحضور: هل للمستخدم إدخال سلسلة وتخزينها في الصورة متغير.
رئيس 1: جيد.
لديها إدخال المستخدم سلسلة وتخزينها في الصورة متغير.
هذا عظيم.
هلم جرا لليمين الجانب، فإننا ندعو سلسلة الحصول عليها.
وترجع قيمة ان لم تحصل على تعيينه
من الجانب الأيمن إلى الأيسر الجانب إلى ودعا الصورة متغير هذا
المصممة لتخزين السلسلة.
بالضبط.
>> حتى الآن خط 22، في التعليق في خط 21،
ومن الواضح أن يطبع هذه السلسلة حرف واحد في كل سطر.
ولكن كيف؟
لذلك قبل كل شيء، ونحن تهيئة I 0.
ثم كيف نصل الى نهاية اسم Zamyla ل؟
حسنا، في نهاية اسم Zamyla، وأنا يمكن
اكتب يدويا في الحرف الأخير من اسمها بطريقة أو بأخرى، أو عدد منها.
الصحيح؟
وإذا عدنا here-- Z-A-M-L-- Y-L-A-- حتى أتمكن من كتابة في.
ما هو الرقم القياسي ل الرسالة Zamyla الأخير؟
إذا كان هذا هو يتحدث 0-- مثل programmer-- 0، 1، 2، 3، 4، 5،
I heard-- ذلك بالفعل، والحرف الأخير في اسم Zamyla هو سادس،
ولكن إذا كنا عد من 0، انها سوف تكون رقم 5.
حتى أن تبقي في الاعتبار هنا.
>> اتضح ان هناك وظيفة في C دعا strlen، ومرة ​​في اليوم
وحتى يومنا هذا لا يزال، الكثير من المبرمجين
اختيار لمزامنة الأسماء الخاصة بهم الوظائف التي يبدو الكلمات
انهم يحاولون القول.
strlen ذلك هو طول السلسلة.
وماذا في ذلك شأن طول سلسلة من S العودة عندما Zamyla هو الإدخال؟
>> الحضور: خمسة.
>> رئيس 1: Z-A-M-Y-L. ستة.
الصحيح؟
ما هو طول اسم Zamyla ل؟
الصحيح؟
وفقط في واقع الأمر، ست رسائل.
الصحيح؟
وذلك ما يعني ذلك بالنسبة للحلقة لدينا؟
ونحن في طريقنا للذهاب من 0 تصل إلى ستة، والتي
سوف تعطينا خمس مرات التكرار.
ماذا نفعل في كل التكرار؟
حسنا، في المئة C، شخص خمنت في اليوم الآخر،
يعني عنصر نائب لماذا؟
>> الحضور: شار.
رئيس 1: مجرد حرف.
لذلك character-- واحدة لا شخصيات متعددة مثل سلسلة.
ثم هنا الخط الجديد أن لدينا طبع.
ثم ها هي جملة جديد.
إذا كنت ترغب في طباعة ط-ث حرف في السلسلة S، إذا جاز التعبير،
يمكنك ببساطة أقول اسم السلسلة S،
ثم فتح قوس مربع، و ثم أغلقت قوس مربع، وط
الوسط.
وانها نوع لطيف من في هذا أنه نوع من يشبه مربع
تماما مثل المربعات التي في Zamyla توجد الأحرف على تلك الصورة هناك.
>> حتى لو كنت فعلا تشغيل هذا الآن، دعونا نرى ما سيحدث.
جعل سلسلة 0 نقطة مائل سلسلة 0، ثم أنا
الذهاب إلى كتابة اسم Zamyla ل.
ليس هناك موجه، لأنني لم استخدام الطباعة و، ولكن هذا شيء طيب.
أنا أعرف ما يجب القيام به.
وبالفعل، فإنه يطبع خارج اسم Zamyla، واحدة في كل سطر.
>> الآن دعونا نكون متهور قليلا.
لنفترض أن لم أكن أعرف حول strlen و أنا أحسب،
كل الحق، لا أحد يذهب لديها اسم أكبر من مثل 50 حرفا.
دعونا نمضي قدما وإعادة ترجمة هذا ثم أعد تشغيل، ثم اكتب في Zamyla
ثانية.
منطقيا، ما هو البرنامج سوف محاولة الطباعة؟
Z-A-M-Y-L-A ثم مثل 45 بايت غير معروفة من الذاكرة.
وبالفعل، سوف نعود لهذه الفكرة من الذاكرة.
ولكن فقط منطقيا، إذا اسم Zamyla هو هذا الوقت الطويل،
كما في الصورة هنا، ما نقوله
هو الحفاظ الطباعة، والحفاظ على الطباعة، والحفاظ على الطباعة، والحفاظ على الطباعة، والحفاظ على الطباعة،
على طول الطريق إلى الحرف ال50، الذي يعرف ما الذي سيحدث.
لذلك دعونا نلقي نظرة في الواقع.
دعونا اكتب في Zamyla.
مثيرة للاهتمام.
وصلنا محظوظ.
مجرد حفنة كاملة من المساحة البيضاء.
اه.
هناك طابع غير تقليدي واحد.
يبدو وكأنه نوع من سؤال غريب بمناسبة هناك، ولكن هناك اسم Zamyla ل.
دعنا متهور حقا.
كيف يمكننا طباعة 500 كتل إلى المجهول؟
دعونا نمضي قدما وجعل هذا كذلك ومن ثم إعادة التشغيل.
ودعونا كامل الشاشة، وذلك لأن نحن بحاجة الى ان نرى المزيد من المساحة.
Zamyla.
حصلت محظوظ مرة أخرى.
>> يجرؤ نحصل على أكثر المتهورة؟
دعونا الحصول على أكثر المتهور.
50000 حرفا.
هذا هو الأكثر بالتأكيد ليست فكرة جيدة.
حسنا.
جعل سلسلة 0.
هذا وسوف يكون لدينا الماضي التجريبي.
Zamyla.
قرف.
حسنا.
حتى ذاكرتي فارغة حقا الآن، الذي هو في الواقع نوع من مريحة.
ما أحاول الحصول على to-- كل الحق.
والآن أنا ذاهب لمجرد الحصول على التهور.
500،000.
Make-- دعونا ملء الشاشة ذلك.
أدخل.
Zamyla.
هناك نذهب.
ليس لدي أي فكرة عما ذلك هو، ولكن يبدو سيئا.
حسنا.
في واقع الأمر، في وقت قريب، إذا كنت من بين قلة محظوظة في ساعات العمل
والمشكلة مجموعة واحدة، كنت قد تواجه هذه بشكل جيد للغاية.
خطأ تجزئة في الواقع لا لها معنى واضحة المعالم.
وهو ما يعني نوعا من الخطأ تتعلق شريحة الذاكرة.
وشروط للشخص العادي، هذا يعني أننا لمسها
memory-- كنا RAM في جهاز الكمبيوتر الخاص بي أنني لا ينبغي أن كان الوصول إليها.
وهذا ما على حد سواء قوية وأيضا خطورة
حول C هو أنك فعلا يكون الوصول غير المقيد
لمجمل ذاكرة البرنامج الخاص بك أو بايت RAM أو بشكل أكثر تحديدا.
>> ذلك بالرغم من أن اسم Zamyla ل هو ستة أحرف فقط منذ فترة طويلة،
لا يزال يمكنني أن أذهب إلى أي مكان في الذاكرة أريد.
وبوصفها جانبا، إذا كنت قد من أي وقت مضى قراءة بعض المقال
على مر السنين عن بعض ملقم أو بعض البرامج
الحصول على متصدع أو اختراق هذا استغل شيء
يسمى تجاوز سعة المخزن المؤقت استغلال ذلك وسوف نقوم في الواقع
الحديث عنها في غضون أسابيع قليلة، وهذا تشير بصورة عامة إلى خداع بطريقة أو بأخرى
كمبيوتر في تسير على ما يرام ما وراء حدود الذاكرة
أنه ينبغي أن يكون، و العثور على شيء العصير
في هذا memory-- ل كلمة السر، وربما، وسيلة
للتحايل بعض الرقم التسلسلي تحقق، أو مجرد قادرة عموما
لخداع الكمبيوتر المنفذة التعليمات البرمجية التي لم يكن القصد.
ولكن دعونا نعود إلى حقيقة لمجرد لحظة
حيث كان هذا البرنامج نفذت مع strlen،
وإدخال شيء واحد هنا.
ما هو الجديد بين هذه أعلى ثلاثة أسطر؟
>> لذلك سلسلة نقطة ح.
اتضح هناك هذا يسمى مكتبة سلسلة دوت H، أو مكتبة السلسلة،
الذين ملف الرأس، إذا جاز التعبير، هي سلسلة نقطة ح أن يعطيني
الوصول إلى هذه الوظيفة strlen.
إذا كنت تجاهل ذلك، والمترجم هو الذهاب إلى الصراخ في وجهي بشكل أو بآخر.
ولكن هل تعرف لماذا؟
الآن دعونا الحصول على دقة حقا.
في السطر 22، وهناك شيء النوع من inefficient-- سيئة التصميم،
arguably-- حول هذا سطر من التعليمات البرمجية.
فكر في العودة إلى كيف تنفذ عن حلقة
وما هي الخطوات التي يحدث مرة أخرى و مرة أخرى وagain-- التهيئة،
الشرط، فإن التعليمات البرمجية التي يحصل تنفيذها، ثم الزيادة
أو التغيير، ثم الشرط، ثم رمز، ثم التغيير، ثم
الشرط، ثم رمز، ثم التغيير، وهكذا دواليك.
ولكن ماذا قد يكون قليلا ومما يثير القلق أو سوء القيام به هنا؟
نعم، في الزرقاء.
الجمهور: هو Strlen دعا مرات عديدة.
رئيس 1: نعم.
strlen لذلك يطلق مرات عديدة، ولكن ما هو
طول اسم Zamyla في أول مرة ينفذ حلقة؟
>> الحضور: ستة.
>> رئيس 1: ستة.
حسنا، ما هو طول اسمها للمرة الثانية تنفيذ التعليمات البرمجية؟
>> الحضور: ستة.
>> رئيس 1: كل الحق.
انها لا تزال ستة.
الصحيح؟
اسم Zarla لديه لا تغير، حتى لو أنا أبحث
في جزء فقط من الحروف في اسمها.
وهكذا حقيقة أنني فعال طرح هذا السؤال، ما هو
طول Zamyla، ما هو طول من Zamyla، ما هو طول Zamyla،
ست مرات منفصلة، ​​أو سبعة من ذلك، هو مجرد غبي،
لأن هذا لا يتغير هذا الجواب.
وذلك ما بوسعي في الواقع القيام به هو this-- في سلسلة واحدة
لدي نسخة أفضل قليلا هنا.
There-- سلسلة whoops-- اثنين لدي نسخة أفضل قليلا حيث
أفعل this-- بدلا من مجرد تهيئة ط 0، وأنا أيضا مع فاصلة
تعريف متغير الثاني يسمى n-- أنا لا يجب أن أقول الباحث مرة أخرى.
أنا لا ينبغي، في الواقع.
ولكن أقول ن.
وبعد ذلك تهيئة ن ل وstrlen ن، حتى الآن
كم مرة لا strlen الحصول على تنفيذها في مجموعه؟
مرة واحد فقط.
وهكذا وهذا هو ما نعنيه في وقت سابق عن تصميم أفضل.
في الواقع مرة واحدة كود الخاص بك هو الصحيح، عودة الى الوراء والتفكير من خلال،
أنا باستخدام أقل قدر الذاكرة أو قليلة كما ثواني
أو ميلي ثانية من وقت الكمبيوتر كما ممكن لتنفيذ بعض المشكلة؟
وانا ذاهب للتمرير يصل وأذكر فقط
أن هناك هذه الإشارة من اغيا في هذا الإصدار،
ولكننا سوف نعود لذلك قبل فترة طويلة.
لأن الآن، دعونا نلقي نظرة في هذا المكان سوف يؤدي بنا.
حتى واحد، اتضح أن الآن أن لدينا القدرة
للنظر في الأحرف الفردية، يمكننا الاستفادة شيء
من أسبوع 0 التي كانت غامضة جدا و نوع من رتيبا في ذلك الوقت.
ولكن الآن، وخصوصا عندما كنا وصول الى الترميز في الأسبوع،
انها سوف تكون قوية جدا.
اتضح أنه مع بعض [إينتس] البيانات types-- وعوامات
وحرف وسلاسل و البعض things-- بعضهم
يمكن تحويلها بسهولة بالغة إلى آخر.
>> على سبيل المثال، عندما تحدثنا حول ASCII بعض الوقت هو ago-- هنا
حروف A من خلال M، نقطة، نقطة،
dot-- قلنا أن هناك رسم الخرائط بين هذه الحروف والأرقام.
في واقع الأمر، فإنه ينطبق لأحرف صغيرة أيضا.
صغيرة لهو 97، ورأس المال هو 65.
وهناك عدد في ASCII، الذي هو مجرد هذا التعيين
النظام لجميع تلك الرسائل الأخرى.
فماذا يعني ذلك؟
حسنا، أنا ذاهب إلى المضي قدما وفتح يصل الحقيقي بسرعة ما يسمى
ASCII 0، معظمها التعليقات.
ومرة أخرى على الانترنت يمكنك دائما نظرة سريعة على التعليقات.
>> ونلقي نظرة ما وهذا ما تنوي القيام به.
حتى انها حصلت على وظيفة الرئيسية.
لقد الصعب ترميز أرقام فقط لل الآن، لأنني أعرف ما أفعله.
أنا أعرف ما أريد أن أرى هنا.
ولقد تهيئة I إلى 65.
وأنا أعول حتى خلال 26 مجموع الرسائل.
وما أنا ذاهب ل طباعة سطر واحد في وقت واحد
إذا كنت تستطيع تفسير هذه أبرز الخط؟
ما يحصل المطبوعة؟
نعم.
>> الحضور: هل أنت ذاهب لطباعة الرسالة التي
يتوافق مع خريطة لل قيمة الرسالة وقيمة عدد صحيح؟
رئيس 1: بالضبط.
انا ذاهب لطباعة الرسالة المقابلة لقيمة عددية،
والعكس بالعكس، على النحو التالي.
كذلك قال هذا، شخص ما في وقت سابق، هو مجرد نائبا لشار.
فإنه لا يزال.
هذا، بطبيعة الحال، هو عنصر نائب لint-- لا سطر جديد.
والآن نلاحظ، أول قيمة بلدي أن أنا توصيل لذلك نائبا
ليست مجرد I. أقوله، بين قوسين، شار الأول،
وشار اعتراضي هو يقول المترجم، علاج I
ليس ما هو عليه، وهو الرقم.
التعامل معها على أنها ذات الطابع الفعلي.
في حين أن القيمة الثانية أنا يسد in-- I-- ينبغي أن يكون مجرد رقم.
>> حتى لو كنت تجميع هذه program-- لذلك هذا هو جعل ASCII 0،
دوت مائل ASCII 0-- أنا مجرد الحصول على هذا الرسم البياني مفيد قليلا أن
يظهر لي كل ما هو ممكن تعيينات دون الحاجة إلى أعتقد أنه
من خلال أو الرقم بها بمفردي.
وأنا طباعة أيضا، لاحظ الأحرف الصغيرة،
بسبب بضعة أسطر في وقت لاحق، وأنا أيضا طباعة هذا التعيين
كذلك، والذي هو فقط ل يقول أنه بمجرد فهم
ما يحدث تحت غطاء محرك السيارة، يمكنك
تحويل تلقائيا ذهابا وإيابا.
وفي الواقع، إذا كان أي منكم فعلت هذا من أي وقت مضى في المدارس الابتدائية
أو سمعت عن شخص ما أخذ أسطوريا مذكرة
وتمريرها إلى بلده أو صديقاتها في الصف،
ولكنك سارعت ل خطابات من قبل مثل A يصبح B،
وB يصبح C، أو شيء أكثر تعقيدا من ذلك، حسنا،
كيف يمكنك أن تذهب نحو تنفيذ ذلك عندما كنت طفلا؟
حسنا، أنت مجرد نوع من أعرف A يصبح B، B يصبح C،
ولكن رياضيا، ما كان ذلك الطفل تفعل؟
ماذا كنت مضيفا أن كل حرف؟
على نحو فعال، 1.
>> حتى عندما قمت بتغيير A إلى B، هذا نوع من مثل تغيير 65-66،
وهو ما يعني حسابيا فقط إضافة 1.
وحتى لو كنت لتنفيذ تقنية الخادعة التي قليلا
لمعلمك في التعليمات البرمجية، لك قد تفعل بالضبط ذلك تماما
وذلك بإضافة حرف واحد معا.
لذلك قبل فترة طويلة، ونحن الذهاب لنرى كيف
يمكن الاستفادة من ذلك في الواقع ل التدافع بصدق وحل الرموز
المعلومات.
في غضون ذلك، نعلم أننا قد بدأت ل لإدخال بضع مكتبات أخرى
here-- في سلسلة واحدة اليوم.
وموقع مفيد جدا نأمل أن تجد
ويسمى reference.cs50.net، التي وأعضاء هيئة التدريس وضعت معا،
بحيث إذا كنت تريد بحث عن كيف يعمل strlen،
يمكنك البدء في الكتابة اسم الدالة،
انقر strlen هناك، ومن ثم شرح أقل راحة
سوف تظهر.
أو إذا كنت تريد المسؤول شرح لينكس على أساس،
يمكنك النقر على أكثر مريح في أعلى اليمين، وذلك
سيقدم نفس المعلومات، ولكن من حيث أكثر تعقيدا.
هذا موردا مفيدا لل تعرف فعلا ما يفعل كل شيء.
>> في المرة القادمة ونحن في طريقنا ل نلقي نظرة على فالتين
وأكثر من ذلك، وأعرض عن انفسنا في عالم التشفير.
قبل ذلك، وسنرى في وقت لاحق هذا الاسبوع.
والآن، كولتون أوغدن.
اراك يوم الاربعاء.
>> [عزف الموسيقى]
>> رئيس 1: ما [بليب] تفعلون؟
>> رئيس 1: أنا أكل بلدي الحلوى؟
كيف يمكنك أكله؟
بيديك؟
>> [عزف الموسيقى]