سرور 1: حسنا. نرحب مرة. هذا هو الأسبوع الثاني من CS50، وليس لدينا حتى الآن تم استخدام وظائف ولكن اتخذت إلى حد كبير منهم أمرا مفروغا منه. استخدمنا printf التي لديها الآثار الجانبية للطباعة الأشياء التي تظهر على الشاشة. استخدمنا الحصول-int أو الحصول على تعويم. ولكن ماذا لو كنت فعلا تريد لخلق وظائف خاصة بك، حيث أن بعض كنت قد بدأت بالفعل في القيام به لمشكلة مجموعة واحدة، على الرغم من ليس مطلوبا بدقة؟ حسنا، دعونا نمضي قدما وإعادة النظر في ذلك مشكلة فقط يطلب المستخدم ل اسمهم والطباعة شيء على الشاشة، ولكن في محاولة لعامل من بعض من القواسم المشتركة التي قمنا ينظر في التعليمات البرمجية لدينا حتى الآن. لذلك أعني بذلك ما يلي. انا ذاهب الى المضي قدما وخلق برنامج جديد، والدعوة فقط فإنه hello.c كالمعتاد. انا ذاهب الى المضي قدما واعطاء نفسي وتشمل io.h القياسية في الأعلى. انا ذاهب لإعطاء نفسي أيضا استباقي المكتبة CS50 بحيث أنا لا تحصل صرخ في وبواسطة المترجم. والآن انا ذاهب الى المضي قدما وتعلن كثافة العمليات، الرئيسية، باطلة. ثم هنا، وهذا هو المكان الذي أريد للبدء في الاستعانة بمصادر خارجية وظائف ل بعض من وظيفة أخرى أنا نفسي أريد أن أكتب ولكن هذا لا توجد حاليا. على سبيل المثال، لنفترض أنني أريد أن إرسال ظيفة تسمح لي ل طباعة مرحبا، فاصلة، و ثم اسم المستخدم بعض. بدلا من الاستمرار في القيام printf مرحبا،٪ ليالي، لن يكون ذلك جميلا لو لم يكن هناك سوى وظيفة تسمى لا printf ولكن اسم المطبوعة؟ لذلك وبعبارة أخرى، أريد أن أكون قادرا على كتابة برنامج أن يفعل قليلا شيء من هذا القبيل. أولا، أنا ذاهب الى القول printf الخاص اسم، وبالتالي مطالبة المستخدم ل تعطيني اسمه أو اسمها، ثم أنا ذاهب الى استخدام مألوفة سلسلة ليالي ل تعلن سلسلة. أعطني متغير من نوع السلسلة، نسميها ليالي، وتخزينها في أن نتيجة استدعاء سلسلة GET. ولكن الآن في الأسابيع الماضية، وأود أن إلى حد ما مضجر به مرحبا،٪ ق / ن. وبعبارة أخرى، لقد رأيت هذا المثال حفنة من الأوقات، وانها المثال تافهة لأنه لا يوجد واحد فقط سطر من التعليمات البرمجية بحيث انها حقا ليس صفقة كبيرة للحفاظ على الكتابة في مرة أخرى. ولكن لنفترض أن هذا السطر من التعليمات البرمجية في الواقع أصبحت عبئا، و انها ليست سطر واحد من التعليمات البرمجية ولكنها ل10 الأسطر من التعليمات البرمجية بضعة أسابيع من الآن، وكنت مجرد تعب من النسخ واللصق أو إعادة كتابة التعليمات البرمجية نفسها. لن يكون ذلك جميلا بدلا من القيام printf مرحبا، ق٪ وهكذا دواليك، لن يكون ذلك جميلا إذا لم يكن هناك سوى وظيفة تسمى اسم الطباعة التي يأخذ حجة - وبعبارة أخرى، فإنه يأخذ المدخلات - ثم منقوطة. بحيث ظيفة، أليس كذلك يكون لطيفا إذا كانت موجودة؟ ثم أود أن لا داعي للقلق حول ما printf هو، ما٪ s و كل من هذه التعقيدات التي هي ليس كل ما مثيرة للاهتمام. أنها مفيدة. حتى اسم المطبوعة، للأسف، لم يكن اخترع منذ بعض السنوات ال 40 زائد. لا اعتقد لأنه يكتب واحدة. ولكن هذا هو الجمال من وجود لغة البرمجة، مثلما هو الحال في يمكنك تحديد نقطة الصفر كتل مخصصة، لذلك في C وأكثر من أي لغة، يمكنك تحديد وظيفة الخاص بك، يمكن أن تقوم بتعريف المهام الخاصة بك. حتى على الرغم من أننا الحصول الرئيسية التي تلقائيا مجانا، يمكننا أن نعلن وظائف منطقتنا. لذلك أنا ذاهب لجعل بعض الغرف هنا حتى اعلى، وانا ذاهب الى بلدي تعلن وظيفة الخاصة التي يحدث أن ننظر غريبا بعض الشيء في البداية ولكن سنأتي نسخ إلى هذا قبل فترة طويلة. انا ذاهب الى القول باطل، وبالتالي تشير هذه الوظيفة لا شيء ما، له تأثير جانبي، لكنها لا يعيد شيئا بالنسبة لي في بنفس الطريقة التي تحصل على الباحث أو الحصول على السلسلة نفسها لا. وانا ذاهب لإعطاء هذه المهمة ل اسم من اسم المطبوعة، وأنا ذاهب ل تحديد أن هذا الرجل هو ذاهب الى اتخاذ سلسلة، وانا ذاهب الى الدعوة التي اسم السلسلة. أنا يمكن أن نسميها أي شيء أريد، لكنني نريد قانون بلدي ليكون توثيق الذاتي. وبعبارة أخرى، إذا كان واحد منكم ل فتح هذا الملف وقراءته، هل يمكن نوع من الاستدلال من اسم ذلك إدخال ما هو الدور الذي يفترض أن تقوم به. والآن أقل من ذلك، وانا ذاهب لفتح متعرج ومتعرج مغلقة، وهكذا تلاحظ لقد اتبعت نفس نمط على أربعة أسطر من خلال سبعة كما لقد تم التالية لمدة أسبوع جيدة زائد الآن بين، على سبيل المثال، خطوط تسعة و 14 الذي يؤلف الرئيسي. وبعبارة أخرى، اسم الطباعة هو وظيفة أخرى. الآن، والمترجم لن تعرف لنسمي هذا الشيء تلقائيا لأنني حرفيا اخترع مجرد أنها، ولكنه سيعرف ما زال لاستدعاء الرئيسي تلقائيا، وبعد ذلك بالطبع في خط 13، وأنا وظيفة الدعوة بلدي. ولأن لقد أعلن أن وظيفة حتى على أربعة أسطر قبل الرئيسي، هذا هو ذاهب لتعليم المترجم ما الاقتباس، نهاية الاقتباس، "اسم الطباعة" ويعني ما ينبغي القيام به. لذلك أنا نوع من يعطيها مخصص جديد منع في السياق، ويقول، خدش. حتى هنا، لا أستطيع وضع هذا شائع جدا أو نمط متكرر من التعليمات البرمجية وأظل الكتابة في الصف، printf ٪ و مرحبا،٪ ق / ن "، - ماذا أريد أن أضع هنا؟ S؟ لذلك أريد أن أضع الاسم في هذا السياق. حتى إشعار قليلا من الانقسام هنا. لأنني إعلان وظيفة بلدي ولقد نوعا ما يسمى تعسفا فإنه طباعة اسم، ولأن لدي المحدد بين قوسين أن هذا وظيفة يأخذ وسيطة واحدة، نوع وهو سلسلة - حتى انها كلمة أو عبارة أو شيء من هذا القبيل - و ادعو هذا الاسم الحجة، التي يعني المتغير الوحيد الذي هو في نطاق، إذا جاز التعبير، هو الاسم. S موجود فقط بين ما اثنين الأقواس المتعرجة، وبطبيعة الحال؟ بشكل جيد، تماما مثل خط 10 عن طريق 14، لذلك تماما مثل يوم الاثنين لا يمكن استخدام S، ولكن ما يمكنني القيام به هو تمرير S إلى اسم الطباعة. اسم المطبوعة فقط حتى يحدث لاعطائها اسم مستعار، مرادف، كنية، واصفا إياه تسمية، والآن استخدامه في هذا الخط. وحتى الآن اسمحوا لي أن حفظ هذه، تصغير. اسمحوا لي المضي قدما وجعل مرحبا. تبدو جيدة. لم بصق أية أخطاء. . / مرحبا أدخل. ما هو اسمي؟ ديفيد. ومرحبا ديفيد. لذلك ليس كل ما مثيرة، ولكن مجرد التفكير الآن. لديك الآن أن العنصر نفسه كما فعلنا في خدش ل جعل المهام الخاصة بنا. ولكن هناك قليلا من مسكتك. لنفترض أنني لم أفكر حقا هذا من خلال وأنا في الواقع دون التفكير حقا عن ذلك كتب أن وظيفة هنا. يشعر معقولة تماما. في خدش ليس هناك فكرة الموقع في البرامج النصية الخاصة بك. كنت قد وضعت واحد هنا، واحد هنا، واحد هنا، وأنها قد تبدأ لننظر قليلا فوضوي إذا لم تقم بذلك يكمن ذلك بدقة، ولكن لم يحدث ذلك يهم أين جسديا البرامج النصية كانت على الشاشة. للأسف في C - وهذا هو على خلاف لغات مثل جافا وبايثون وغيرها التي قد تكون مألوفة مع - للأسف في C، لكي لا المسألة لمشاهدة ما هو يحدث الآن. وظيفة الافتراضية التي يجري لتنفيذ هو، بطبيعة الحال، الرئيسي. الرئيسي هو الذهاب الى استدعاء اسم الطباعة على خط الثمانية، ولكن للأسف، و سوف المترجم لا يعرفون حتى أن اسم الطباعة موجود حتى يحصل على خط 11، وهو للأسف سيكون متأخرا جدا. لذلك دعونا لا تجعل مرحبا. والآن لعنة، واثنين من الأخطاء الناتجة. وحتى الآن اسمحوا لي أن انتقل لأعلى إلى غاية أولا، كما ينبغي لنا أن نفعل دائما، و لاحظ أنه يصرخ في وجهي، "إعلان ضمني من وظيفة طباعة اسم ". لذلك رأيناه هذه الرسالة من قبل، إعلان ضمني من وظيفة. عندما رأينا هذا النوع من الخطأ؟ عندما لم أكن على مكتبة. إذا كنت قد نسيت cs50.h وأود أن أحصل صاح في لسلسلة الحصول على أو الحصول على كثافة العمليات. ولكن في هذه الحالة، وهذا وظيفة الطباعة الاسم ليس في مكتبة، أليس كذلك؟ انها حرفيا في هذا الملف، لذلك ما هو حقا مشكلة؟ كذلك للأسف في C، ولكنه يأخذك حتى لا يصدق حرفيا أنه إذا كنت تريد وظيفة تسمى اسم الطباعة ل موجودة، لديك إما لتنفيذ أن وظيفة في أعلى جدا من الخاص التعليمات البرمجية بحيث يمكن الوصول إليها لخفض وظائف، ولكن بصراحة، أن يصبح قذر بسرعة كبيرة. شخصيا، أنا أحب وضع الرئيسي الأول لأن ثم انه من الواضح جدا ما هو هذا لا البرنامج للوهلة الأولى. وبالاضافة الى ذلك، يمكن أن تحصل في زاوية غريبة الحالات التي يكون فيها إذا كان x يريد استدعاء ذ ذ ولكن يمكن أن نسميه خ، أنت فقط جسديا لا يمكن وضع في الواقع واحدة فوق الأخرى. ولكن اتضح في C، يمكننا حل هذه ببساطة شديدة. انا ذاهب الى وضع قليلا من الفضاء هنا، وأنا ذاهب لمجرد استباقي، ولو إلى حد ما و مكررين الا الذهاب الى تعليم المترجم أن هناك وظيفة ودعا اسم المطبوعة، فإنه يأخذ سلسلة، وانا ذاهب الى استدعاء انها تسمية منقوطة. لذلك هذا الآن في أربعة أسطر، ونحن لم أر من قبل، هو إعلان من اسم وظيفة الطباعة، لكنه فقط وعد أن هذه الوظيفة في نهاية المطاف أن تحدد، في نهاية المطاف أن تنفذ. هذا أنا الآن يمكن أن تترك وحدها ل الآن هذا هو تعريف و التنفيذ، نوع من الميل الأخير لتنفيذ هذا وظيفة معينة. لذلك بصراحة انها غبية، فإنه أمر مزعج، ولكن هذا هو الطريق C هو، وانها لأنه يأخذك حرفيا جدا و، كما ينبغي كمبيوتر بصراحة، فقط لا بالضبط ما كنت أقول ذلك ل القيام به، وذلك أن يأمر هو المهم. حتى أن تبقي في الاعتبار، ومرة ​​أخرى، تبدأ ل لاحظ تكرار أنماط. الاحتمالات هي شئتم، إذا كان لديك لا بالفعل، تبدأ تواجه رسائل مثل هذا الذي يبدو للوهلة الأولى خفي تماما، ولكن إذا كنت تبدأ للبحث عن هذه الكلمات الرئيسية مثل "إعلان الضمني"، ذكر ل تعمل في هذه الحالة - وبصراحة، كنت أحيانا حتى الحصول على القليل من الأخضر رمز الجزرة التي يخبرك أين القضية ربما هو - يمكنك أن تبدأ في العمل في طريقك من خلال رسائل الخطأ بعد الغيب. أي أسئلة حول كتابة الخاص وظيفة خاصة في هذا الطريق؟ دعونا نفعل شيئا وهذا هو أكثر قليلا مقنعة. بدلا من مجرد القيام بشيء ما لديه من الآثار الجانبية لوالطباعة، واسمحوا لي ان اذهب قدما وحفظ ملف جديد، وسنقوم نسمي هذا positive.c، على الرغم من انها ستكون مختلفة قليلا مقابل الوقت الماضي. وهذه المرة، أريد أن إعادة تنفيذ آخر مرة في positive.C سبيل المثال، والتي يتم إجبار المستخدم لإعطاء لي عدد صحيح موجب. ولكن اضطررت لاستخدام الحصول على كثافة آخر مرة. لن يكون لطيفا أنه إذا كان هناك الحصول على وظيفة ودعا الباحث إيجابية أن أتمكن من مجرد الاستعانة بمصادر خارجية لهذه قطعة من وظائف ل؟ وبالتالي فإن الفرق هنا هو أننا سوف أكون تنفيذ الحصول على كثافة العمليات الإيجابية، ولكن خلافا ل اسم المطبوعة التي كان لها أثر جانبي - أنه لم يعودوا شيئا بالنسبة لي مثل رقم أو سلسلة - الحصول على كثافة العمليات الإيجابية هو، بطبيعة الحال، والذهاب إلى العودة، ونأمل، وكثافة العمليات إيجابية. لذلك دعونا نفعل ذلك. وتشمل cs50.h، وتشمل io.h. القياسية باطلة الرئيسي كثافة العمليات. والآن هنا، انا ذاهب الى المضي قدما ودعونا نقول الباحث، الذي يطلق عليه ن، يساوي الحصول على كثافة العمليات إيجابية. وتماما مثل الحصول على كثافة العمليات موجود بالفعل لأن الموظفين كتب عليه، وانا ذاهب لنفترض للحظة أن تحصل وجود كثافة إيجابية، وأنا الآن ذاهب المضي قدما ويقول printf، شكرا لل٪ ط / ن "، ن. وحتى الآن ما إذا كنت تجميع هذا البرنامج، ما ما سيحدث في محطة بلدي نافذة في الجزء السفلي من الشاشة؟ انا ذاهب على الارجح الى الحصول على ذلك نفس الخطأ كما كان من قبل. لذلك دعونا نحاول هذا. جعل الإيجابية. ومرة أخرى، الإعلان الضمني من وظيفة، والحصول على كثافة العمليات إيجابية. حتى نتمكن من حل هذا في زوجين من الطرق. انا ذاهب الى يبقيه بسيط وعادل وضع الإعلان بلدي هنا والحصول على الباحث إيجابية. أنا في حاجة إلى ما يسمى التوقيع. التوقيع يشير فقط إلى جماليات السطر الأول من البرنامج. وذلك ما ينبغي أن يحصل الإيجابية الباحث العودة؟ لذلك فإن كثافة العمليات. أعني من الناحية المثالية، فإنه العودة شيء من هذا القبيل الباحث إيجابية، ولكن هذا غير موجود. لم نشهد أن من بين البيانات المتوفرة لدينا أنواع، لذلك علينا أن نتعامل مع حقيقة أن لدينا عدد قليل جدا أنواع البيانات للعمل مع. ولكن يمكننا إرجاع الباحث وعادل نثق أنه سيكون ايجابيا. انها تسير ليتم استدعاؤها الحصول على كثافة العمليات إيجابية. والآن ماذا عن حججه؟ يستغرق أي مساهمة؟ أنها لا تحتاج إلى أي إدخال؟ لذلك لا تحتاج إلى معرفة في أي شيء مسبقا. الحصول على سلسلة لا، والحصول على كثافة العمليات لا. Printf يفعل - فإنه يحتاج إلى بعض مدخلات تمريرها إلى ذلك - واسم المطبوعة في حاجة الى بعض المدخلات، ولكن الحصول على الباحث إيجابية لا. لذلك أنا ذاهب الى صراحة قول باطل مترجم. الفراغ هو غياب أي شيء آخر. حتى وسائل باطلة لا شيء يجري داخل تلك الأقواس، منقوطة. والآن في الجزء السفلي من الملف الخاص بي - و مرة أخرى، أنا كونها مجرد نوع من الشرج هنا يضع الرئيسي في القمة، التي هو ممارسة جيدة لهذه الطريقة، في أي وقت أنت أو أي شخص آخر يفتح الملف الخاص بك، و وظيفة هو حق هناك. يمكنك الغوص في من مربع واحد. حتى الآن انا ذاهب الى تكرار هذه، الحصول على إيجابية الفراغ كثافة، ولكن أنا لا الذهاب الى ضرب فاصلة منقوطة الآن. أنا ذاهب لفتح الأقواس المتعرجة، والآن أنا في حاجة للاقتراض بعض الأفكار من الاثنين. لذلك كما تذكرون، فعلنا شيئا مثل تفعل حين التالية شيئا ما كان صحيحا. وماذا أفعل؟ فعلت شيئا مثل العطاء لي عدد صحيح موجب، قليلا من موجه. أنا يمكن استخدام أي كلمات أريد. ثم اعتدت ماذا؟ ن الباحث يساوي الحصول على كثافة العمليات، لا الحجج لذلك. وتلاحظ الفرق. عند استدعاء دالة، عند استخدام وظيفة، وكنت لا تضع في الفراغ. لك فقط أن تفعل ذلك عندما يعلن وظيفة، وتدريس ما المترجم يجب أن تتوقع. لذلك لا تحتاج لوضع إفراغ هناك نفسك. والآن ما هو وضعي؟ كذلك، ن لا تساوي إيجابية، ولكن هذا مجرد رمز الزائفة. فكيف يمكنني التعبير عن هذا أكثر نظافة؟ حتى أقل من أو تساوي الصفر. ذلك مرة أخرى، لاحظ يمكنك القيام به أقل من أو يساوي. على الرغم من انها منفصلين الرموز، يمكنك أن تفعل ذلك على لوحة المفاتيح على هذا النحو. ولكن لا يزال هناك الخلل الذي أنا ثمل آخر مرة أيضا. لا بد لي من أن تعلن - بالضبط. لا بد لي من أن تعلن ن خارج الحلقة. لذلك أنا بحاجة لوضع ن هنا، وأنا لا ترغب في إعادة تعلن، فإنه هنا خشية أن الحصول على متغير جديد. أريد فقط أن تعيين قيمة هنا. والآن أنا لم تفعل تماما هنا. اسمحوا لي أن نسبق نفسي وأدعي أنني انتهيت. جعل الإيجابية، والآن هناك خطأ جديد. السيطرة يصل نهاية وظيفة غير باطلة. رسالة خطأ جديدة جدا، ولكن إذا كنت النوع من ندف عدا كل من الكلمات، و ربما يلمح إلى ما هو الخطأ. السيطرة. السيطرة يعني فقط أن النظام العمليات في البرنامج. الكمبيوتر هو في السيطرة و حدث خطأ ما. حتى يصل إلى نهاية وظيفة غير باطلة. ما هي وظيفة فإنه على ما يبدو في اشارة الى؟ ما هي وظيفة غير الفراغ؟ حتى الحصول على كثافة العمليات الإيجابية، وقليلا الخلط في ذلك جيدا، انها نوع من الفراغ. أنه يحتوي على مواصفات الفراغ لل الحجج، ولكن انتاجها هو الذهاب الى يكون من نوع ن. حتى الكلمة على اليسار هو يسمى نوع الإرجاع. كلمة في الداخل هنا هو الحجج صفر أو أكثر أن يأخذ وظيفة. فماذا يجب أن أفعل؟ عند هذه النقطة في قانون بلدي، حيث تصطف 21 موجه امض الآن، وأنا لديها كثافة إيجابي داخل المتغير يسمى ن. كيف يمكنني يعيدها إلى الرئيسية؟ حرفيا. العودة ن منقوطة. لذلك تماما كما عاد كولتون قطعة من ورقة مع جوابا لي من خلال إسقاط أن قطعة من الورق في الأسود الصغير مربع على الطاولة، على أن تفعل ذلك في الرمز، كنت حرفيا الكتابة فقط، وعودة ن، وانها كما لو كانت كولتون تسليم لي شيئا المادية الظهر. في هذه الحالة، ما يحدث هو الحصول على الباحث إيجابية هو الذهاب الى تسليم الظهر ما يفترض إيجابية صحيح لمن؟ وأين تنتهي تلك القيمة تصل؟ التي ينتهي بها المطاف في هذا المتغير، ن، و ثم ننطلق مع خط التسعة. لذلك وبعبارة أخرى، من أجل العمليات، يبدأ هذا البرنامج المنفذة، ويدرك المترجم، أوه، كنت ترغب في المكتبة؟ اسمحوا لي ان اذهب الاستيلاء على كل ما في داخل ذلك. أوه، وتريد مكتبة IO المعيار؟ اسمحوا لي ان اذهب الاستيلاء على كل ما في داخل ذلك. ماذا يقول المترجم لنفسه عندما يضرب أربعة أسطر؟ أوه، كنت وعدت لتنفيذ وظيفة تسمى الحصول إيجابية، ولكن وسوف نعود لذلك لاحقا، شيء من هذا القبيل. باطلة الرئيسي كثافة يعني هنا فقط ل الشجاعة من برنامجي. خط سبعة هو مجرد متعرج. خط الثمانية يقول على اليسار، وإعطاء لي 32 بت لعدد صحيح، الذي يطلق عليه ن. على الجهة اليمنى، انها قائلا حصول على كثافة العمليات إيجابية. الآن دعونا نتوقف تلك القصة لأنه الآن أنا لا تبقي تحريك المؤشر إلى أسفل. المؤشر بلدي يذهب الآن إلى هنا ل ينفذ الآن الحصول على كثافة العمليات إيجابية. وأعلن الباحث ن. القيام بما يلي. Printf يعطيني عددا صحيحا موجبا. الحصول على كثافة من المستخدم، واحفظها في ن، وربما تفعل ذلك مرارا وتكرارا. هذه الحلقة يعني أن هذا الرمز القوة تنفيذ صعودا وهبوطا مثل هذا مرة أخرى ومرة أخرى، ولكن عندما يقوم المستخدم أخيرا وتتعاون ويعطيني إيجابية الباحث، وأنا ضربت خط 21، وعند هذه النقطة يتم تسليم عدد ظهره، والتي واحدة يجب أن تبرز الآن؟ تسعة. السيطرة، إذا جاز التعبير، والعودة على خط التسعة. هذا هو الخط الذي هو الآن في هذا الاتهام. وهذا ما كان يحدث كل هذه المرة تحت غطاء محرك السيارة، ولكن عندما استخدمنا ظائف مثل printf أو حتى الحصول على السلسلة التي شخص آخر كتب لك، ومراقبة كان يجري سلم قبالة إلى سطر التعليمات البرمجية شخص آخر سطرا سطرا. انها مجرد أننا لا يمكن أن نرى ذلك ونحن لا يمكن تصور أنه حقا في هذا برنامج لأنه في بعض الدول الاخرى ملف على القرص الصلب غير معروف بالنسبة لنا. لذلك دعونا تجميع الواقع وتشغيل هذا الآن. جعل الإيجابية. تجميع، وهذا التقدم. . / إيجابية. أعطني عددا صحيحا موجبا. دعونا يكون صعبا. السلبية 1. صفر. دعونا إعطائها 50. شكرا لل50، وذلك السيطرة وقد عاد الآن. أي أسئلة، بعد ذلك، على ذلك؟ نعم؟ [غير مسموع]. أقول مرة أخرى. أوه، سؤال جيد. لذلك قد تلاحظ هنا أن موازية أنا نوع من قطع زاوية جرا. في السطر 12، أقوله، والحصول على كثافة العمليات الإيجابية بإرجاع عدد صحيح، ولكن في نفس المنطق، لأنها تقف الآن لسبب أنه في خط الستة، أنا أقول أن العائدات الرئيسي عدد صحيح، ولكن ما يتعين علينا أبدا كان في أي من برامجنا؟ لقد كان لدينا أبدا ذكر هذه العودة الكلمة المفتاح. لذلك تبين أنه في C، على الأقل إصدار أن نستخدمه المحرز في عام 1999، من الناحية الفنية، وهذا هو يحدث بالنسبة لك تلقائيا. في أي وقت تقوم بتنفيذ برنامج ولك تنفيذ دالة يسمى الرئيسي، وهذه الوظيفة بإرجاع صفر قبل التقصير إذا لم يكن ليقول خلاف ذلك، والصفر هو مجرد اتفاقية. العوائد العالم الصفر وبالتالي مشيرا إلى أن كل شيء على ما يرام، ترك لنا بشكل فعال مع أربعة مليارات الأشياء الممكنة التي يمكن أن تذهب الخطأ بحيث إذا نعود واحد، أن قد يعني رمز هذا يعني هذا ذهب شيء خاطئ. يمكن أن نعود اثنين، وهو ما يعني ذهب هذا الشيء الآخر خاطئ. يمكن أن نعود أربعة مليارات، والتي يعني ذهب هذا الشيء الآخر خاطئ. وإذا كنت تعتقد الآن حوالي بنفسك كمبيوتر شخصي أو ماكنتوش، قد نتذكر أن أحيانا تحصل رسائل الخطأ خفي من البرامج التي كنت استخدام، وأحيانا يكون لها الإنسان وصف ودية، ولكن هناك في كثير من الأحيان رمز أو رقم على الشاشة؟ إذا كان هذا لا يأتي إلى الذهن، مجرد ترقب لذلك. وهذا عادة ما هذه ويشير إلى رموز. كنت تضمينها في Microsoft Word و البرامج الأخرى بحيث إذا كان ملف تقرير الشوائب مع الشركة، يمكنك نقول لهم، يا، حصلت على رقم الخطأ 45. ويعود بعض مبرمج في الشركة يمكن أن ننظر إلى أن ما يصل في حياته رمز ويقول، يا، وهذا لأنني جعلت هذا الخطأ وهذا هو السبب المستخدم حصلت هذه الرسالة. ولكن بصراحة، انها مجرد قليلا وتشتيت قليلا مملة ل نخلص إلى أن، على الأقل لدينا البرامج القليلة الأولى، لذلك قمنا تم حذف عليه. ولكن كل هذا الوقت كل واحد من الخاصة بك زارها سرا وظائف رئيسية هذا الخط إضافتها تلقائيا للكم من قبل مترجم، فقط من خلال اتفاقية ل يوفر لك بعض الوقت. [غير مسموع]. أنت لا تحتاج إلى إدراجه في الرئيسية. هذا شيء طيب. كنت بحاجة لإدراجه لو كنت تنفيذ وظيفة من هذا القبيل. وإلا فإن وظيفة شقة أن من لا يعمل. ولكن في الرئيسية، انها ليست ضرورية. في غضون أسبوع أو اثنين، وسنبدأ الحصول على في هذه العادة مرة واحدة ونحن نريد أن تبدأ مما يدل على الأخطاء. سؤال جيد حقا. استراحة اللفظي سريعا جدا في الإشارة إلى أن هذا يوم الجمعة، ونحن لن يكون لها غداء في حد ذاتها، ولكننا سوف يتناول وجبة العشاء مع بعض الطلاب والموظفين. إذا كنت ترغب في الانضمام إلينا، ويشعر الحرة للذهاب إلى cs50.net/rsvp. 06:00 يوم الجمعة. الفضاء هو، كما هو الحال دائما، محدودة، ولكن سنقوم مواصلة القيام على هذه تقريبا أسبوعيا إذا الفضاء نفاد هذا الاسبوع. وبالتالي فإن التشويق التي توقفنا على كان يوم الاثنين أن سلاسل يمكن في الواقع يتم فهرستها في، مما يعني فقط لأنك يمكن الحصول على الحرف الأول، و الحرف الثاني، والحرف الثالث وهكذا دواليك، لأنه يمكنك أعتقد على نحو فعال من سلسلة، مثل مرحبا، كما يجري في هذه القضية خمسة رسائل داخل صناديق. ويمكنك الحصول على كل من تلك مربعات مع ما فعله جملة نحن يعرض يوم الاثنين؟ تلك الأقواس المربعة على لوحة المفاتيح. أن مجرد يعني تذهب إلى موقع الصفر. نبدأ العد من الصفر، لذلك قوس الصفر يعني ح، قوس واحدة يدل الإلكترونية، وهكذا دواليك. وهكذا في كل وقت عندما كنا استخدام سلاسل والكتابة في "مرحبا" و "العالم" وغيرها من الامور على الشاشة، وانه تم تخزينه في صناديق من هذا القبيل. واتخاذ تخمين. ماذا كل مربع تمثل جسديا داخل جهاز الكمبيوتر الخاص بك؟ [غير مسموع]. آسف؟ حرفا. حتى شخصية، وبالتأكيد في حالة سلاسل، والحرف هو فقط ثمانية بت أو بايت واحد. لذلك ربما كنت على الأقل غامضة دراية بحقيقة أن لديك الكمبيوتر لديه ذاكرة. كان لديه نوعين من الذاكرة على الأقل. واحد هو القرص الثابت حيث قمت بحفظ الاشياء بشكل دائم، وهذا عادة كبيرة حتى تتمكن من الأفلام والموسيقى وما إلى ذلك. ثم لديك نوع آخر من الذاكرة دعا RAM، R-A-M، الوصول العشوائي الذاكرة، وهذا هو نوع من الذاكرة يستخدم عندما يكون الكمبيوتر قيد التشغيل ولكن إذا فقدت السلطة أو الخاص البطارية يموت، أي شيء المخزنة في ذاكرة الوصول العشوائي يختفي إذا فقدت السلطة تماما لأنها ليست الثابتة. لديك عادة، في هذه الأيام، و أزعج منه، واثنين من العربات، وربما أكثر من ذلك. والصاعد من ذاكرة الوصول العشوائي هو أنه كثيرا من ذلك بكثير، أسرع بكثير من الأقراص الصلبة أو حتى في الحالة الصلبة يدفع في هذه الأيام، لكنها عادة ما تكون أكثر مكلفة جدا لديك أقل من ذلك. حتى محادثة اليوم يشير حقا لذاكرة الوصول العشوائي، وهذا النوع من الذاكرة التي موجود فقط في حين هناك قوة يجري إدخالها في جهاز الكمبيوتر الخاص بك. حتى عندما كنت اكتب في H-E-L-L-O، أدخل على لوحة المفاتيح، وH يجري في واحد بايت من ذاكرة الوصول العشوائي، وE يجري في آخر بايت من ذاكرة الوصول العشوائي، كما هو بقية الكلمة. لذلك نذكر ما استطعنا للقيام آخر مرة كان هذا. اسمحوا لي المضي قدما وفتح ملف التي كنا نسميها string.c، وأذكر أنه بدا قليلا شيء من هذا القبيل. اسمحوا لي لفة في الواقع مرة أخرى والتغيير ذلك بالضبط ما يشبه، طول سلسلة من ليالي. وذلك للبحث في البرنامج هنا. نحن وتشمل المكتبة CS50 ذلك أن نتمكن من استخدام سلسلة GET. ندرج io.h القياسية حتى نتمكن من استخدام printf. لماذا لم ندرج string.h؟ كان هذا الجديد يوم الاثنين. لذلك أردنا طول السلسلة. شارع ينغ. قرر الناس منذ سنوات، دعونا فقط تكون مقتضبة. بدلا من اصفا اياه بانه "طول السلسلة" دعنا نسميها "شارع ينغ"، والسماح لل العالم هذا الرقم، وذلك أن ما نحصل عليه مع الوصول إلى string.h. هذا هو مألوف. هذا هو مألوف. هذا هو مألوف. هذا هو الجديد قليلا. في السطر 22 - وسوف نعود لهذا، ولكن لنعلم الآن - وكنت أعرف هذا فقط من وجود قراءة الوثائق أو إذا كنت على علم بالفعل C - الحصول على سلسلة أحيانا يمكن أن المسمار. إذا كان المستخدم أو الخصومة حقا غير المتعاونة وانه أو انها فقط لا تكتب أي شيء في لوحة المفاتيح أو أنواع كثيرا في لوحة المفاتيح التي أنه يثقل كاهل ذاكرة الكمبيوتر، من الناحية النظرية، يمكن الحصول على سلسلة العودة شيء آخر غير سلسلة من الأحرف. ويمكن أن ترجع قيمة خاصة تسمى NULL في كل مباراة دولية، N-U-L-L، وهذا هو مجرد ما يسمى قيمة الحارس. انها قيمة خاصة أن يدل حدث شيء سيئ في هذه الحالة. ذلك هو عدم وجود سلسلة. فارغة لذلك أنا التحقق من ذلك ببساطة أن، قصة قصيرة طويلة، لينغ شارع و وظائف الأخرى التي تأتي مع C، إذا انهم يتوقعون سلسلة ولكن يمكنك تمرير لهم عدم وجود سلسلة، إذا كنت تمر لهم NULL، الكمبيوتر أو البرنامج فقط سوف تحطم تماما. سيكون معطلا. وسوف يلقي بعض رسالة خطأ. الأشياء السيئة سوف يحدث. ذلك على الرغم من هذا لا يزال لا يعرف جيدا - هذا سوف يكون أكثر منطقية في غضون أسبوع أو اثنين - في السطر 22، وهذا هو مجرد مثال على النفس تدقيق الأخطاء الدفاعية فقط في حالة واحدة من الوقت مليون شيء يذهب على نحو خاطئ، في سوف برنامجي الأقل لا تحطم الطائرة. إذا كان الأمر كذلك ق لا يساوي شيئا سيئا، لدي هذا لحلقة، وهذا كان حيث كان لدينا هذا الآخر قطعة جديدة من بناء الجملة. لدي لحلقة بالتكرار من صفر على ما يصل إلى طول ق. ثم هنا، كنت طبع ق قوس ط، ولكن لماذا لم أستخدم٪ ج جميع فجأة بدلا من٪ ق حتى على الرغم من ليالي هي سلسلة؟ انها شخصية، أليس كذلك؟ S هو سلسلة، ولكن ليالي قوس شيء، ق قوس ط ط حيث هو صفر أو واحد أو اثنين، وهذا الفرد حرف في السلسلة، وذلك ل يحتاج ذلك، printf أن تكون على علم بأن انها في الواقع شخصية يمكن توقعه. ثم أذكر، ما فعله هذا البرنامج فعلا؟ طباعته في الأعمدة. نعم، بالضبط. انها المطبوعة فقط الكلمة التي كنت اكتب في عمود، حرف واحد في كل سطر. لذلك دعونا نرى هذا مرة أخرى. لذا تأكد السلسلة. جمعت موافق. . / السلسلة. اسمحوا لي أن اكتب في H-E-L-L-O، أدخل، و في الواقع يمكنني الحصول عليه، خط لكل واحد. لذلك اسمحوا لي أن تفعل الأمثل واحدة هنا. إذا كنت تفكر في ذلك، وخاصة إذا كنت قد مبرمجة من قبل، هناك يمكن القول وعدم الكفاءة في خط 24. وبعبارة أخرى، انها ليست بالضرورة أفضل تصميم. واضحة، على الأقل مرة واحدة لك تذكر ما ينغ شارع هو، لكنه تفعل شيئا البكم يحتمل. ما يمكن أن يكون؟ [غير مسموع]. بالضبط. انها التحقق من طول ليالي كل مرة واحدة على الرغم من H-E-L-L-O دائما ما لتكون خمسة أحرف. في كل مرة من خلال هذه الحلقة، الخمسة لا تغيير. قد أكون أنا تزايد، ولكن ما هو طول من ليالي على كل التكرار من هذه الحلقة؟ انها خمسة، انها خمسة، انها خمسة، و بعد وأنا مع ذلك طرح هذا السؤال مرارا وتكرارا وتكرارا. الآن بصراحة، فإن الكمبيوتر هو لعنة سريع، لا أحد يذهب لاحظت وجود الفرق في هذه الحالة، ولكن هذه الأنواع قرارات التصميم من الفقراء يمكن بدء لتضيف ما يصل إذا كان المترجم نفسه لا تحاول إصلاح هذا بالنسبة لك الذي أنه سيكون عادة لا، في الأقل في الأجهزة. لذلك أنا ذاهب للقيام بذلك. انا ذاهب لإضافة فاصلة بعد أول متغير بلدي، وأنا. انا ذاهب لإعطاء نفسي آخر متغير، واصفا إياه ن، فقط عن طريق اتفاقية لأرقام، ثم أنا الذهاب الى تعيين ن قيمة السلسلة طول ق. ثم انا ذاهب الى التغيير وضعي ليكون ماذا؟ انا ذاهب الى تغيير وضعي إلى حين ط أقل من ن. وحتى الآن، كم مرة أنا التحقق من طول ق؟ مرة واحدة، لكنه موافق للتحقق ط ضد ن مرارا وتكرارا لأنه الآن تلك القيم لا تتغير فعلا. الآن في الوقت الراهن، ونعرف تماما أن في أي وقت كنت استدعاء دالة، وهناك القليل من النفقات العامة، لا يكفي ليثني عليك حقا من أي وقت مضى باستخدام وظائف، ولكن بالتأكيد عندما يكون هناك سطر من التعليمات البرمجية مثل ذلك - وسوف تحصل على خطوط أكثر إثارة للاهتمام قبل فترة طويلة - حيث هناك فرصة للتفكير، وإذا كنت اكتب هذا الرمز، كم مرات أنه سيتم تنفيذ؟ عليك أن تبدأ في رؤية بمرور الوقت أداء البرامج يمكن تغيير الواقع. في الواقع، واحدة للمشكلة يضع قمنا فعلت في السنوات الماضية ينطوي تنفيذ، كما تذكرون من الأسبوع الصفر، المدقق الإملائي، ولكن المدقق الإملائي التي تهدف إلى دعم قاموس من 150،000 زائد الكلمات التي نقدمها لكم الرجال. سيكون لديك لكتابة التعليمات البرمجية التي الأحمال تلك الكلمات إلى ذاكرة الوصول العشوائي، وذلك في صناديق مثل شاهدنا على الشاشة لحظة مضت، ثم أسرع وقت كما كنت يمكن، عليك أن تكون قادرا على الإجابة على مسألة شكل، هو هذه الكلمة أخطاء إملائية؟ وهذه الكلمة التي بها أخطاء إملائية؟ وهذه الكلمة التي بها أخطاء إملائية؟ وشيء من هذا القبيل ما كنا فعلت في السنوات الماضية وحولتها إلى، وإن كان ذلك على أساس اختياري التقيد في و المنافسة من نوع ما، حيث ل الطلاب الذين يستخدمون أقل من ذاكرة الوصول العشوائي وأقل الوقت، دورات CPU أقل، في نهاية المطاف محتدما حتى أعلى قليلا زعيم المجلس أو الترتيب الذي وضعنا على الصفحة الرئيسية للدورة كما قمنا فعلت في السنوات الماضية. ذلك مرة أخرى، واختياري تماما، لكن هذا يتحدث إلى الفرص تصميم التي هي مرة واحدة قبل أن نبدأ بناء على قمة بعض هذه اللبنات الأساسية. لذلك اسمحوا لي العودة إلى هذا الرسم البياني ل مجرد لحظة وتكشف قليلا شيء أكثر من ذلك. هذا هو في الواقع سلسلة، والتي اتخذناها الاستفادة من بعض المكتبات، io.h القياسية التي لديها - Printf. Printf، من بين أمور أخرى. cs50.h الذي يحصل الباحث والحصول على سلسلة وهكذا دواليك، string.h، التي كان شارع ينغ. ولكن اتضح أن هناك بعد آخر. بصراحة، هناك الكثير والكثير من رأس الملفات التي تعلن وظائف للمكتبات، ولكن هذا هو ctype.h في طريقها فعلا إلى حد ما من المفيد لأنني ذاهب على المضي قدما وتنفيذ واحد برنامج آخر هنا. اسمحوا لي المضي قدما وفتح شيء كتبت في وقت مبكر يسمى capitalize.c، ودعونا نلقي لننظر كيف يعمل هذا. لاحظت أن أنا باستخدام، في هذا الإصدار من ذلك، ثلاثة ملفات مألوفة. لاحظ أنه في خط 18، وأنا الحصول على سطر من النص. إشعار خط 21، وأنا مدعيا أن التعليمة البرمجية التالية هو الذهاب الى الاستفادة ثانية، أيا كان المستخدم بكتابتها في، وكيف أفعل ذلك؟ حسنا، أنا أخذ - الدروس المستفادة من المرة السابقة - أنا معلنا ط ن وبالتكرار و أكثر من الأحرف في السلسلة. ثم ما هو هذا كتلة من التعليمات البرمجية في خط 24 إلى 27 به في شروط للشخص العادي؟ رسالة صغيرة الى الوراء. بالضبط. إذا ق قوس ط - حتى إذا كان ط ال شخصية، والتي هي محددة شار في السلسلة، أكبر من أو يساوي إلى أحرف صغيرة لو- نذكر بأن العطف المزدوجة دلالة و- ونفس الحرف، ق ط قوس، هو أقل من أو يساوي إلى الياء صغيرة، وهذا يعني انها لأو ب أو ج أو نقطة، نقطة، نقطة، أو ض، الوسائل التي انها أحرف صغيرة فيه. ماذا أريد أن أفعل في هذه الحالة؟ حسنا، أستطيع أن أفعل ذلك إلى حد ما بغموض، ولكن دعونا ندف هذا إربا. انا ذاهب الى استدعاء printf والمطبوعات٪ ج لأنني أريد أن طبع هذا الحرف على الشاشة. أنا ثم ذاهب الى اتخاذ ق ط قوس، و حرف ط عشر في ليالي، ثم لماذا أفعل هذا قليل الحيلة هنا، أحرف صغيرة ناقص العاصمة A؟ ما هو ذاهب لإعطاء لي، بصفة عامة؟ [غير مسموع]. بالضبط. أنا لا أتذكر حقا - كان 65 ألف لرأس المال وأنا لا حقا تذكر ما أحرف صغيرة وغير، ولكن لا يهم. الكمبيوتر يعرف. لذلك بقوله، أحرف صغيرة ناقص العاصمة A، انها غريبة أن تكون يحذف حرف واحد من آخر، ولكن ما هي حروف تحت غطاء محرك السيارة؟ انهم مجرد أرقام. لذلك مهما كانت تلك الأرقام، دعونا نتذكر أنه الكمبيوتر بدلا من لي الإنسان. حتى أحرف صغيرة ناقص A العاصمة و سوف تعطيني الفرق. كان يحدث أن تكون 32، والتي من شأنها أن تكون الحال بالنسبة للصغيرة ورأس المال ب B وهكذا دواليك. يبقى متسقة، والحمد لله. لذلك أنا أقول أساسا، واتخاذ الحرف الصغير، طرح من أن الفرق القياسية، والتي يتغير بشكل فعال ق ط قوس من صغيرة ل، بطبيعة الحال، الكبيرة، بلدي حقا دون الحاجة إلى التفكير حول أو تذكر، فما هي تلك أرقام عندما تحدثنا عن الثمانية جاء المتطوعين على خشبة المسرح؟ الآن وفي الوقت نفسه، في آخر، إذا لم يكن بريد إلكتروني صغيرة كما هو محدد 24 سطرا، فقط طباعته. أريد فقط أن تلمس الأحرف التي كانت في الواقع أحرف صغيرة أصلا. لذلك دعونا نرى هذا. جعل الاستفادة. المترجمة، موافق. . / الاستفادة. واسمحوا لي أن اكتب في H-E-L-L-O في صغيرة، أدخل. وتلاحظ أن يتم تحويلها إلى أحرف كبيرة. اسمحوا لي أن تفعل هذا مرة أخرى مع كلمة مختلفة. ماذا عن D-A-V-I-D مع أول D رسملة كاسم هو عادة؟ دخول. لاحظت انها لا تزال صحيحة. انها مجرد أن أنتج أول D دون تغيير عبر آخر أن بناء. حتى تبقي في الاعتبار، ثم و بضعة أشياء هنا. واحد، إذا كنت تريد من أي وقت مضى للتحقق اثنين الظروف في آن واحد، ويمكنك لهم معا كما توقعنا. يمكنك مقارنة الأحرف بهذه الطريقة وعلاج الشخصيات على نحو فعال أرقام، ولكن بصراحة، وهذا هو لعنة خفي أنا لن تذكر كيفية الخروج مع هذا من الصفر دون المنطق من خلال ذلك لفترة طويلة قليلا من الوقت. لن يكون لطيفا أنه إذا كان شخص ما كتب من هناك وظيفة تسمى هو خفض التي يمكن الإجابة بالنسبة لي صحيحا أو كاذبة، وأحرف صغيرة هذه الشخصية؟ كذلك لحسن الحظ، من كتب لم ctype.h ذلك تماما. اسمحوا لي أن ترتفع هنا وإضافة ctype لج أنواع، والآن اسمحوا لي أن انتقل إلى هنا و إعادة كتابة هذا الخط على النحو التالي. إذا كان الأمر كذلك يطلق عليه هو أقل من ذلك، أزعم، ق قوس ط، ثم انا ذاهب الى حذف هذين الخطين تماما. وحتى الآن شخص آخر، وأنا على أمل، كتب وظيفة تسمى أقل، وذلك تبين فعلوه وأعلنوا ذلك داخل ctype.h. والآن أنا ذاهب إلى ترك سطر 27 وحدها، وأنا ذاهب إلى ترك سطر 31 وحدها، ولكن لاحظ كم عندي تشديد قانون بلدي. انها الآن أنظف. انها أقل صعوبة لننظر من خلال لأنه الآن وظيفة، علاوة على ذلك، هو حتى اسمه هو فقط رائعة تفعل ما تقول. حتى الآن أنا ذاهب لإنقاذ هذا. انا ذاهب للتصغير. وكما هو الحال في خدش هل يمكن أن يكون القيم المنطقية والقيم المنطقية صحيحة أو كاذبة، وهذا بالضبط ما هو يعود انخفاض فعالية. اسمحوا لي أن إعادة ترجمة. اسمحوا لي أن إعادة التشغيل. والآن دعونا نحاول مرة أخرى، H-E-L-L-O، أدخل. هذا امر جيد جدا. وحاول مرة أخرى، تأكد من أنني لم المسمار شيء ما. التي يتم رسملتها كذلك. ولكن هذا ليس جيدا بما فيه الكفاية لأن الشيء الآخر أنني لن تذكر ما لم أعمل من خلال ذلك حقا بعناية على، ويقول، ورقة غير هذا الخط لعنة. لن يكون ذلك جميلا إذا كانت هناك وظيفة ودعا إلى العلوي؟ كذلك اتضح هناك في ctype.h كذلك. انا ذاهب الى المضي قدما واكتب - اسمحوا لي أن تحقيق ذلك الخط الخلفي. بدلا من هذا هنا، اسمحوا لي أن المضي قدما ويقول، بديلا عن٪ ج و نتيجة لاستدعاء هذه الوظيفة ل العلوي على حرف ال ط ق. والآن لاحظ أنه يزداد متوازنة قليلا. لدي لتتبع كيفية العديد من قوسين لقد تفتح وتغلق. وحتى الآن، بل انها أكثر نظافة. الآن هذا البرنامج هو الحصول على أفضل و تصميم أفضل لأنه يمكن القول أكثر من هذا بكثير ولكن يمكن قراءتها فإنه ليس دعونا الصحيح. جعل الاستفادة. . / الاستفادة. H-E-L-L-O. دعونا تشغيله مرة أخرى، D-A-V-I-D. موافق، لذلك نحن ما زلنا في حالة جيدة جدا. ولكن الآن لالعليا. أقترح أن هناك واحد أكثر الصقل يمكن أن نجعل من شأنه أن يكون لطيف، يمكن أن تشديد حقا حتى هذا الرمز وتعطينا حقا خمسة من أصل خمسة لتصميم، على سبيل المثال. ما يمكن أن يكون لطيفا للتخلص من؟ حسنا، انظر كيف طويلة لعنة هذه الكتلة من الكود هو فقط أن تفعل شيئا بسيطا. الآن بوصفها جانبا، كما قد تكون لديكم ينظر في قسم السوبر هذا الماضي عطلة نهاية الأسبوع، لا تحتاج بدقة الأقواس المتعرجة عندما يكون لديك واحد فقط سطر من التعليمات البرمجية، على الرغم من أننا المقترحة ابقائها بحيث يجعل من ذلك بكثير أكثر وضوحا، كما هو الحال في خدش وعلى شكل حرف U كتل، ما هو داخل الفرع. ولكن لن يكون ذلك جميلا لو أن العلوي، عندما تعطى مدخلاته، حولتها أحرف كبيرة إذا لم تكن كذلك، وما من شأنه من الرائع في حالة العكس إذا انها أحرف كبيرة بالفعل؟ يمر من خلال وتترك وحدها. لذلك ربما يفعل ذلك. يمكن أن أحاول وآمل فقط أن تفعل ذلك، ولكن اسمحوا لي إدخال شيء آخر. بدلا من استخدام هذه المحطة التي بنيت في نافذة أسفل هنا، نذكر بأن هذا الرمز الأسود مربع يمنحك أكبر نافذة الطرفية التي استطيع الكامل الشاشة إذا أريد؟ حتى اتضح انهم نوع من الغريب اسمه، ولكن هناك أشياء تسمى هذه رجل صفحات وصفحات دليل، الرجل لفترة قصيرة، وأستطيع أن الوصول إلى هذه بواسطة الكتابة الرجل - ماذا أريد أن اكتب؟ رجل إلى العليا. والآن لاحظ إذا كان هناك وجود تعمل داخل جهاز الكمبيوتر، في هذه الحالة الجهاز، الذي هو مجرد نظام التشغيل لينكس، وانها تسير أن تعطيني مجموعة خفي إلى حد ما من الإخراج، ولكن عليك أن تجد أكثر من الوقت الذي دائما يتم تنسيق حد كبير نفس ذلك البدء في تعتاد على ذلك. تلاحظ في أعلى لالعلوي، و على ما يبدو هو نفس الوثائق للخفض. من كتب انها ستخفض بعض زوايا ووضع كل ذلك في صفحة واحدة. الغرض هذه الأشياء 'في الحياة هو أن تحويل رسالة إلى العلوي أو صغيرة. لاحظ أنه بموجب خلاصة، صفحة الرجل هو تعليم لي ما لدي ملف لتشمل لاستخدام هذا الشيء. انها إعطائي لهذه التوقيعات وظائف، وكلاهما، حتى على الرغم من أننا الآن فقط يهتمون واحد. هنا الآن وصفا. لتحويل العلوي الرسالة ج إلى أحرف كبيرة إذا كان ذلك ممكنا. لا يزال غير أن المفيد، ولكن اسمحوا لي ننظر الآن تحت قيمة الإرجاع، والشيء وهذا ما سلمت. حتى القيمة التي تم إرجاعها هو ان من الرسالة المحولة أو ج إذا كان كان التحويل غير ممكن. ما هو ج؟ الطابع الأصلي. الطابع الأصلي ونحن نعرف أنه من خلال، مرة أخرى، لتصل إلى ملخص، ولمن كتب هذا وظيفة فقط قررت أن مدخلات للالعلوي والسفلي لمجرد تسير بصورة تعسفية ليتم استدعاؤها ج. كان يمكن أن يطلق عليه أي شيء أكثر يريدون، ولكنهم استمروا في ذلك البساطة ج. حتى لقد تشاورت الصفحة رجل. هذه الجملة يطمئن لي أنه إذا انها ليست بريد إلكتروني صغيرة، انها الذهاب الى مجرد اعطاء لي مرة أخرى ج، الذي هو الكمال، وهو ما يعني أنني يمكن التخلص من حالتي آخر. لذلك اسمحوا لي العودة إلى GEdit، و الآن اسمحوا لي أن تفعل هذا. أنا ذاهب لنسخ بيان printf بلدي. انا ذاهب الى المضي قدما والحق داخل وللحلقة الطباعة التي بها، والحصول على التخلص من هذا كله الآن إذا بناء. ليست فكرة سيئة، وكان جدا الصحيح بكثير وبما يتفق مع كل ما قمنا بشر، ولكن ليس من الضروري فقط. بمجرد تحقيق بعض المكتبات وجود وظيفة أن شخصا آخر كتب، أو ربما كنت كتبت في أماكن أخرى ملف، يمكنك استخدامه وحقا البدء في تشديد التعليمات البرمجية. وعندما أقول أشياء مثل اسلوب جيد، حقيقة أن هذا الشخص يسمى وظيفة لالعلوي، أو سبق هو انخفاض مفيد رائعة ل انهم صفي للغاية. كنت لا ترغب في استدعاء وظائف الخاص x و y و z، التي لديها من ذلك بكثير، أقل بكثير معنى. أي أسئلة حول هذه السلسلة من التحسينات؟ لذلك يكفي أن نقول واحدا من الوجبات السريعة هو حتى مع المشكلة الخاصة بك تعيين - ربما المشكلة مجموعة واحدة، ولكن بالتأكيد تعيين P اثنين وما بعده، حتى عندما يكونون الصحيح لا يعني بالضرورة يعني أنها هي مثالية فقط بعد أو بشكل خاص مصممة تصميما جيدا. هذا هو المحور الآخر ل نبدأ في التفكير. لذلك كان هذا السلسلة داخل الخاص بك ذاكرة الكمبيوتر، ولكن إذا كان لديك مجمله مجموعة من الشخصيات مثل H-E-L-L-O داخل ذاكرة الوصول العشوائي، وافترض ان كنت في دعوة البرنامج الحصول على سلسلة عدة مرات بحيث كنت استدعاء الحصول على سلسلة واحدة، ثم ل استدعاء الحصول على سلسلة مرة أخرى. حسنا، ما الذي يحدث ل يحدث على مر الزمن؟ وبعبارة أخرى، إذا كان لديك خط رمز، وإن كان خارج السياق، مثل سلسلة ليالي يحصل - دعونا نفعل ذلك. اسم السلسلة يساوي الحصول على السلسلة. لذلك افترض هو المقصود أن سطر من التعليمات البرمجية ليطلب من المستخدم لاسمه أو اسمها. ويهدف هذا السطر التالي من التعليمات البرمجية لطرح المستخدم له أو لها المدرسة، و هذا السطر التالي، وهكذا دواليك. لنفترض أننا يتساءلون للمستخدم لآخر و آخر وسلسلة أخرى. انهم ذاهبون الى البقاء في الذاكرة في نفس الوقت. واحد لن هزم الآخر. المدرسة ليست الكتابة من جهة أخرى. ولكن أين هم جميعا في نهاية المطاف في الذاكرة؟ حسنا، إذا بدأنا رسم على الشاشة، والتي يمكننا استخدام هذا الشيء هنا مثل السبورة، إذا كان هذا الأسود يمثل المستطيل بلدي الكمبيوتر الذاكرة، وأنا ذاهب لبدء تعسفا تقسيمه يصل الى مربعات صغيرة، يمثل كل منها بايت واحد من الذاكرة. بصراحة، إذا كان لديك غيغابايت من ذاكرة الوصول العشوائي في هذه الأيام، لديك مليار بايت من الذاكرة في جهاز الكمبيوتر الخاص بك، لذلك مليار من هذه الساحات. لذلك يكفي أن نقول، وهذا ليست في الحقيقة على نطاق كبير. لكننا يمكن أن تبقي رسم كل هذه واضح ليس على نطاق الساحات، وهذا يمثل جماعي ذاكرة جهاز الكمبيوتر الخاص بي. الآن سنفعل مجرد نقطة، نقطة، نقطة. لذلك وبعبارة أخرى، عندما كنت الآن مطالبة المستخدم مع سلسلة الحصول على أن تعطيني سلسلة، ماذا يحدث؟ إذا أنواع المستخدم في "مرحبا"، التي ينتهي حتى في H-E-L-L-O. ولكن لنفترض أن مستخدم ثم في أنواع - في الواقع، لا ينبغي لي أن فعلت مرحبا لأننا نطلب لهم عن أسمائهم. لذلك دعونا نذهب مرة أخرى إذا أستطيع أن أفعل ذلك. حتى لو كنت اكتب في D-A-V-I-D لاسمي، ولكن أذكر أن السطر الثاني من كان رمز السلسلة الحصول مرة أخرى للحصول على مدرستهم. أين هي تلك الكلمة أن المستخدم أنواع في سبيلنا للذهاب في المرة القادمة؟ حسنا، ربما انها سوف تذهب الى H-A-R-V-A-R-D. حتى على الرغم من أنني قمت رسمها على أنها صفين، وهذا هو فقط مجموعة كاملة من وحدات البايت في حياتك ذاكرة الوصول العشوائي بالكمبيوتر. هناك مشكلة الآن لأنه الآن إذا أنا باستخدام ذاكرة الوصول العشوائي في هذا معقول جدا ولكن نوع من السذاجة الطريق، ما يمكنك لا يبدو التمييز؟ حيث تبدأ واحدة، وحيث ينتهي احدة، أليس كذلك؟ انهم نوع من عدم وضوح معا. حتى اتضح الكمبيوتر لا تفعل هذا. اسمحوا لي أن انتقل فعلا العودة في الوقت المناسب ل عدد قليل من الشخصيات، وبدلا من هارفارد الذهاب مباشرة بعد اسم المستخدم، يحصل المستخدم على الواقع، وراء الكواليس، حرف خاص إدراج من قبل الكمبيوتر بالنسبة له أو لها. / 0، والمعروف باسم الطابع NUL دعا مزعج N-U-L، وليس N-U-L-L، ولكن أن تكتب على أنها / 0. انها مجرد جميع البتات صفر هو علامة في بين الكلمة الأولى التي المستخدم كتبته والثانية. حتى هارفارد في الواقع ينتهي حتى الآن لأن هذا تسلسل الأحرف وأكثر واحد / 0. لذلك وبعبارة أخرى، من خلال وجود هذه القيم الحارس، وثمانية صفر متجاورة بت، يمكنك أن تبدأ الآن للتمييز حرف واحد من آخر. لذلك كل هذا الوقت ما كان "مرحبا" هي في الواقع "مرحبا" مع / 0، و وفي الوقت نفسه، هناك ربما بشكل جيد للغاية يكون قليلا جدا أكثر من ذاكرة الوصول العشوائي داخل الكمبيوتر. اسمحوا لي أن تفعل شيئا واحدا أخرى الآن. اتضح أن كل هذه الساحات لقد تم رسم، هم، نعم، سلاسل، ولكن بشكل عام، هذه الأمور هي المصفوفات. صفيف هو مجرد جزء من الذاكرة هذا هو العودة إلى الوراء إلى العودة إلى الوراء، والتي عادة ما تستخدم مجموعة عن طريق من هذه الرموز قوس مربع. لذلك نحن ذاهبون لرؤية هذه لا بأس به مع مرور الوقت، ولكن اسمحوا لي أن تمضي قدما و فتح، دعونا نسميها العصور. وتلاحظ ما يمكننا القيام به مع نفس هذه الحيل، قليلا أكثر قليلا جملة هنا. حتى في خط 17 من هذا البرنامج - في الواقع، اسمحوا لي أن تشغيل البرنامج لأول مرة حتى نتمكن من معرفة ما يفعل هذا الشيء. اسمحوا لي أن ندعو جعل الأعمار ل ترجمة هذا البرنامج. . / الأعمار. كيف كثير من الناس في الغرفة؟ نسميها الثلاثة. عمر الشخص الأول؟ 18، 19، و 20. والآن إلى حد ما يبعث على السخرية، أنا فقط وقد كان البرنامج الذي الأعمار تلك ثلاثة أشخاص. لذلك هناك فرصة بوضوح لبعض المرح الحسابي هنا. الحمد لله، والرياضيات هو الصحيح. 18 ذهب و 19 و 19 ذهب إلى 20 وهكذا دواليك. ولكن ما هو المقصود حقا أن تكون التوضيح هنا هو كيف نقوم بتخزين الأعمار هؤلاء الناس ثلاث ل. اسمحوا لي أن التكبير في ما يجري هنا. حتى الأولى، وينبغي لهذه الأسطر القليلة الأولى يكون الحصول على دراية جدا. أنا مجرد مطالبة المستخدم ل عدد الأشخاص في الغرفة. ثم أنا باستخدام الحصول على كثافة العمليات والقيام في حين أن القيام بذلك مرارا وتكرارا وتكرارا. شاهدنا هذا النمط من قبل، ولكن خط 27 هو جديد والواقع تماما مفيدة، وسوف تصبح مفيدة على نحو متزايد. لاحظ أن ما هو مختلف في خط 27 هو أنني يبدو أن إعلان و الباحث دعا الأعمار، ولكن الانتظار. انها ليست مجرد الباحث الأعمار. هناك هذه الأقواس المربعة، داخل الذي هو ن. وبالتالي فإن قوس ن في هذا السياق، لا داخل بيان printf هنا ولكن في هذا الخط الوحيد 27، وهذا الخط هو قائلا: أعطني ن رجات، كل منها هو من نوع int. لذلك هذا هو دلو، إذا جاز التعبير، من، في هذه الحالة، ثلاثة أعداد صحيحة إلى العودة إلى الوراء لدرجة أنني فعال لديهم ثلاثة متغيرات. البديل، لتكون واضحة، لن يكون هذا. إذا أردت الطالب الأول العمر، وأنا قد تفعل هذا. إذا أردت الطالب الثاني العمر أنا قد تفعل هذا. إذا أردت الطالب الثالث العمر، وأنا قد تفعل هذا. وسمح الله نحتاج الجميع العمر في هذه الغرفة - أعني، وهذا هو هيك من الكثير من نسخة، لصق مرة أخرى ومرة ​​أخرى ومرة ​​أخرى. وبالإضافة إلى مرة واحدة تجميع هذا البرنامج، إذا يمشي طالب آخر في أكثر من من هذا الباب، والآن لي عدد المتغيرات غير صحيح. فما هو لطيفة عن مجموعة هي كما بمجرد أن تبدأ الشعور نفسك النسخ واللصق، والاحتمالات هي وهذا ما ليس أفضل النهج. مجموعة ديناميكية محتملة. أنا لا أعرف مقدما كم من الناس ستكون في الغرفة، لكنني أعلم أنني بحاجة ن منهم، وسوف أكون معرفة ن عندما يحين الوقت. هذا السطر من التعليمات البرمجية يعني الآن، أعطني جزء من الذاكرة التي يبدو مثل هذا حيث بلغ عدد صناديق على الشاشة يعتمد كليا على ن أن المستخدم كتابتها في. وحتى الآن ما تبقى من هذا البرنامج هو في الواقع مشابهة جدا لماذا نحن فعلت فقط مع الأحرف. إشعار لدي للحلقة ابتداء من خط 30. ذلك الحق بعد أن أحصل على مجموعة، وأنا تكرار من ذ يساوي صفر على ما يصل إلى n. لدي فقط هذا printf المفيد رسالة فقط أقول، أعطني سن من شخص #٪ ط، لذلك رقم واحد، رقم اثنين ورقم ثلاثة. ولماذا لم أفعل هذا؟ بصراحة، والبشر يفضلون عد من واحد على ما يصل بينما علماء الكمبيوتر، صفر على ما يصل. علماء الكمبيوتر لا تسير على استخدام هذا النوع من البرامج، لذلك نحن سوف نبدأ العد في واحد مثل الناس العاديين. والآن في خط 33، لاحظ قليلا قطعة مختلفة من بناء الجملة. في سن ال ط في هذا المتغير من نوع مجموعة سوف تحصل على كثافة العمليات. والآن أخيرا، وهذا هو فقط الحسابي هنا. قررت في حلقة منفصلة لمطالبة بعض الوقت يمر، والآن في هذا حلقة منفصلة، ​​وهذه خطوط تنفيذه. بعد عام من الآن، وسوف أكون الشخص ط سنة، ولكن لاحظ ليست هذه هي ط متغير. هذا هو الآن ط٪ لكثافة العمليات. واشعار على النحو العنصر النائب الأول، سد العجز في ط زائد 1، لذلك نحن نعول مثل الشخص العادي. ثم لقيمة سنهم، ل ط سنة، أود أن أغتنم الأعمار قوس ط - وماذا أفعل زائد واحد هنا؟ هم الذين تتراوح أعمارهم فقط. انها خياري غبي من البرامج. هم الذين تتراوح أعمارهم بين سنة واحدة فقط. يمكنني أن اكتب في أي الرقم الذي أريد فعلا هناك. فما هو في الواقع كل من أهمية هنا؟ حسنا، اسمحوا لي أن انتقل فعلا إلى الوراء أكثر من هنا وترسم صورة ما ينتظرنا في المستقبل. ما سنقوم به مع شركائنا المقبل مشكلة تعيين اثنين يتم تجريب في عالم التشفير. لذلك هذا هو سلسلة من الأحرف، لذلك تسلسل حروف متعددة، وما يعني هذا القول؟ انها ليست في النسخة الإلكترونية من الشرائح. لذلك أزعم أن هذا يساوي هذا، الإعلان غبي من سنوات عديدة قبل أن أذكر في الواقع قد واحد من أصولها. لذلك هذا هو مثال على التشفير أو الترميز. اتضح أنه إذا كنت تريد ل في الواقع ترسل المعلومات أو حصة المعلومات مع شخص آمن، مثل رسالة من هذا القبيل، يمكنك يتبارى الحروف. ولكن عادة، والكلمات هي لا تدافعت بشكل عشوائي. انهم مبدل في بعض الطريق أو تغييرها بطريقة ما بحيث - عفوا. وهذا مفسد للمتعة في المرة القادمة. بحيث يمكنك تعيين ما هو على ما يبدو O لB. لاحظ أن يصطف رسملة الحكيم. يبدو يصبح ص ه. يبدو F-H-E-R يصبح S-U-R-E. هكذا اتضح أن هناك رسم الخرائط، و هذه الحالة هناك غبي جدا إذا كان أي شخص قد رسم الخرائط ترد عليها؟ وهذا هو ما يسمى تعفن 13، تدوير 13. هو أغبى من التشفير آليات لأنه حرفيا فقط يضيف 13 إلى كل واحد من الحروف، غبي بمعنى أنه إذا كنت فقط قليلا من الوقت الحر على يديك وقلم رصاص، أو كنت فقط أعتقد أنه من خلال في رأسك، قد تتمكن من محاولة جميع الإضافات ممكن - واحد، اثنان، ثلاثة، نقطة، نقطة، نقطة، من 25 إلى مجرد تدوير الأبجدية كلها، و في نهاية المطاف، سيكون لمعرفة ما هو هذا الرسالة. لذلك إذا كنت فعلت شيئا من هذا القبيل في المدرسة الابتدائية تمرير الرسائل إلى حسابك أفضل صديق، وإذا المدارس الابتدائية الخاصة بك المعلم قراءة ببساطة من خلال رسالة واضطر الغاشمة الحل، كنت قد حصلت على جوابا عن ذلك. الآن بطبيعة الحال، في العالم الحقيقي، التشفير هو أكثر تطورا. هذا هو مقتطف من نص من نظام كمبيوتر يحتوي على أسماء المستخدمين و كلمات السر، وكلها تقريبا من لنا به، و هذا هو ما قد كلمة السر إذا تبدو وكأنها مخزنة على القرص الثابت ولكن في شكل دفع مشفرة. هذه ليست مجرد دوران الحروف و A هي B و B هو C. وهذا هو أكثر تعقيدا بكثير، ولكنه يستخدم ما يعرف عموما بأنه المفتاح السري التشفير. هذه الصورة تحكي التالي قصة مع عدد قليل من الرموز. على اليسار، لدينا ما وسوف ندعو نص عادي. في عالم التشفير، عادي النص هو مجرد الرسالة الأصلية مكتوبة باللغة الإنجليزية أو الفرنسية أو أي لغة على الإطلاق. إذا كنت تريد تشفير ذلك، فإننا سوف تمر ذلك بالصور من خلال قفل، لذلك بعض نوع من الخوارزمية، بعض من وظيفة أو البرنامج الذي شخص كتب التي تكافح خطابات نأمل أكثر complicatedly من إضافة 13 فقط لكل واحد منهم. ما تحصل عليه من تلك العملية في الوسط يسمى هناك cyphertext. ذلك النوع من كلمة مثير. بل يعني فقط انها مشفرة نسخة من النص العادي. وفقط إذا كان لديك في نفس السرية، 13 أو ناقص 13، هل أنت قادرة على فك تشفير رسالة من هذا القبيل. حتى في مشكلة تعيين اثنين، من بين الأشياء عليك أن تفعل إذا في هاكر طبعة، سيكون لديك لكتابة رمز ل الكراك هذه كلمات السر، ومعرفة ما كانوا وكيف كانوا مشفرة، على الرغم من أننا لا تعطيك قليلا التوجيه على طول الطريق. في الإصدار القياسي، ونحن نقدم اثنين من الأصفار، والتشفير الآليات واحد يسمى قيصر، واحد دعا Vigenere، التي لا تزال الاصفار التناوب حيث يصبح شيء، B يصبح شيئا، ولكن عليك أن تفعل ذلك برمجيا لأنه سيكون هناك في الواقع سرا الرئيسية المعنية والتي هي عادة عددا أو الكلمات الرئيسية التي فقط المرسل والمتلقي لهذه يجب فهم الرسائل. الآن، وهذا له التجسيد في الواقع في العالم الحقيقي. هذا، على سبيل المثال، هو يتيم قليلا لآني سرية حلقة فك، وكنت يمكن تنفيذ هذه فعلا الاصفار التناوب - ويصبح شيئا، يصبح B شيء ما - مع اثنين من العجلات، و واحد في الخارج، واحدة في الداخل بحيث إذا قمت بتدوير العجلة أو الحلبة، يمكنك خط فعليا حتى الحروف مع حروف مختلفة، الحصول على شفرة سرية. وذلك في التشويق لهذا اليوم، ما ظننت أنني كنت تفعل قليلا من ارتداد أنه إذا كنت بدوره على التلفزيون يوم 24 ديسمبر، يمكنك مشاهدة nauseum الإعلان عن الفيلم 24 ساعة على التوالي. ولكن لهذا اليوم، وأنا فتحه هنا وتعطينا دقيقتين فقط من قصة عيد الميلاد ذات الصلة تربويا مع القليل من زميل اسمه الخاص Ralphie. [تشغيل الفيديو] -سواء كان ذلك معروفة للجميع من دون استثناء أن يتم تعيين رالف باركر بموجب هذا عضو في سرية ليتل اليتيم آني يحق دائرة وإلى جميع يكرم والفوائد تحدث عليها. التوقيع، ليتل اليتيم آني. بالعطف، بيار اندريه في الحبر. الأوسمة والفوائد بالفعل في سن التاسعة. [ON RADIO يصيحون] هيا، دعونا نتجاوز هذا الامر. أنا لا تحتاج الى كل ذلك الجاز حول المهربين والقراصنة. -استماع ليلة الغد ل مغامرة الختامية للأسود القراصنة السفينة. الآن، حان الوقت لسر آني رسالة لك أعضاء من دائرة السرية. نتذكر، والأطفال. فقط أعضاء الدائرة السرية آني يمكن فك شفرة رسالة سرية آني. تذكر، آني يعتمد عليك. تعيين دبابيس لB2. هنا هي الرسالة. 12، 11، 2 - ، أنا في أول اجتماع بلدي سرية. -25، 14، 11، 18، 16 - كان بيير بصوت عظيم الليلة. يمكنني أن أقول أن رسالة هذا المساء من المهم حقا. -3، 25. هذا هو رسالة من آني نفسها. تذكر، لا تخبر أحدا. -90 ثانية في وقت لاحق، وأنا في غرفة فقط في المنزل حيث صبي من تسعة يمكن أن نجلس في الخصوصية وفك شفرة. آها، B. ذهبت في اليوم التالي. هاء الكلمة الأولى هي "أن يكون." S. كانت قادمة أسهل الآن. U. 25. هذا R. تعال، الخاص Ralphie. أنا فلدي تذهب. -I'll يكون وصولا، ما. جي الازيز. -T. O. تأكد من. ومن المؤكد أن ما؟ ما كان اليتيم الصغير آني يحاول أن يقول؟ ومن المؤكد أن ما؟ -الخاص Ralphie، وقد حصلت راندي للذهاب. هل يرجى يخرج؟ حسنا، ما. سأكون من الحق. -I كان الحصول على أقرب إلى الآن. وكان التوتر الفظيع. ما كان عليه؟ مصير هذا الكوكب قد شنق في الميزان. -الخاص Ralphie، فلدي راندي نذهب. -I'll يكون الحق في الخروج ل البكاء بصوت عال. -تقريبا هناك. طار أصابعي. كان ذهني فخ الصلب. صدي كل مسام. كان من الواضح تقريبا. نعم، نعم، نعم، نعم، نعم. كن متأكدا من أن شرب فالتين الخاصة بك. فالتين؟ A التجارية تافه؟ ابن العاهرة. [END تشغيل الفيديو] سرور 1: هذا هو CS50، والتي ستكون مشكلة مجموعة الثانية. نراكم في الأسبوع القادم. المتحدث 2: في المقبل CS50، وهذا يحدث. سرور 1: لذلك موضوع واحد وليس لدينا نظرت حتى الآن هو ان من المؤشرات الدالة. الآن، مؤشر دالة فقط عنوان جمهور وظيفة، ولكن مثل الكثير - ابن -