[عزف الموسيقى] DAVID مالان: حسنا. نرحب مرة. هذا هو CS50، وهذا هو أسبوع واحد، استمرار. ذلك واحد من الأسباب كنا يمر حول التقنيات مثل جوجل الزجاج هو أنها تأتي مع شيء المعروفة باسم API، و واجهة برمجة التطبيق. وما يعنيه هذا هو أنه مع ملفات والحق مع الحق وثائق، يمكنك الكتابة فعلا برنامج لحتى مثل هذه الأجهزة. وذلك ما لدينا في الاعتبار نحو فصول النهاية هو، إذا كان المشروع تشمل، على سبيل المثال، قد جوجل زجاج استئناف، وسنرى ما يمكننا القيام به في حيث ربط لكم مع بعض الأجهزة القمري فضلا عن API عام يمكن الوصول إليه بحيث يمكنك تبدأ فعلا خلق البرمجيات أن يعمل على أن نفس جوجل الزجاج. جهاز آخر التي كنا اللعب مع الراحل الذي كنا نظن قد تكون متعة في نهاية الفصل الدراسي هو هذا الشيء القليل هنا. انه دعا قفزة الحركة، وما كنت على وشك أن نرى من الناحية الفنية و الإعلان عن الجهاز، لكنها لا تتحدث إلى ما سيما هذا الجهاز قادر على. وذلك، أيضا، يأتي مع API عبر والتي يمكنك كتابة البرامج ل السيطرة على جهاز الكمبيوتر الخاص بك بطريقة تماما مثل هذا الفيلم مدته دقيقة واحدة هنا. [تشغيل الفيديو] [END تشغيل الفيديو] حتى الآن، وهذا يحدث الجهاز ل كما سيتم تنفيذ القليل من USB الرابط الذي يمكنك وصله إلى الخاص الكمبيوتر، لكنني لن يفاجأ إذا قبل فترة طويلة لدينا هذه الأنواع من التقنيات في الدفعة التالية من أجهزة الكمبيوتر وأجهزة ماكينتوش بحيث يمكنك، في الواقع، تتفاعل معها في بطريقة من هذا القبيل. في الواقع، ما ظننت أنني كنت تفعل، أيضا، هو أنا سحبت مظاهرة صغيرة البرنامج الذي يأتي مع هذا البرنامج. حتى لقد وضعت أجهزة الاستشعار قليلا أمام جهاز الكمبيوتر المحمول. وكما ترون، إلا أنها تدرك بالفعل أن يدي هناك السيطرة عليها. وهذا كله لا يتم تطبيق الأشياء الصغيرة بنجاح من هذا القبيل. ولكن يمكنك أن ترى أن، في الواقع، لدي خمسة أصابع هناك. اذا كنا نستطيع الحصول عليها أن تفعل كل 10، يمكنك أن تتخيل بيانو أنيق التطبيق أو ما شابه ذلك. حتى إذا كنت ترغب في الخروج بعد انتهاء اليوم الدراسي اليوم واللعب مع أنه حسنا، أنتم مدعوون ل. أكثر من ذلك على أن نحو نهاية الفصل الدراسي. حتى بضع الإدارية إعلانات. واحد، لا من قبل القسم هذا اليوم الجمعة عند الظهر في cs60.net/section. هذا العنوان هو على ملعب ل صفحة الرئيسية كذلك. في غضون ذلك، على الرغم من supersections لاول مرة هذا الأحد. Supersections هي شيء مرة واحدة، لأنه يأخذ منا بعض الوقت للعمل من الذي يوجد في القسم الذي وأين. لذلك هذا الأحد المقبل، سوف يكون هناك واحد قسم لأولئك أقل راحة، مقطع واحد بالنسبة لأولئك أكثر راحة. وتلك التي كنت في مكان ما هي موضع ترحيب للذهاب إلى ما بين أحدهما أو كليهما أو أي منهما. سيتم تصوير كل من هذه. أنها سوف تكون في قاعة أكبر من قسم عادة أن تكون فيه. ولكن الهدف هنا هو تزويد لكم مع بعض الراحة مع المشكلة مجموعة واحدة، مع C، مع الأجهزة CS50، وهذا عطلة نهاية الأسبوع، حتى قبل أن معرفة الخاص بك القسم الرسمي الاحالة. لذلك عليك تلبية TF الخاص بك، وأصغر الخاص مجموعة من sectionmates في حوالي بعد نحو اسبوع. ساعات العمل، وفي الوقت نفسه، وقد يجري. لا تستفيد منها هذه الليلة أو ليلة الغد إذا كنت ترغب. مشكلة تعيين 0 ومن المقرر يوم الجمعة. هذا هو في وقت لاحق من اليوم مواعيد منتظمة الخميس. ولكن مع مشكلة تعيين 1، سترى أنه يتضمن بعض الاحماء التمارين التي أنت نفسك يمكن أن تمتد الخاص الموعد النهائي الخميس والجمعة. المشكلة مجموعة 1، وفي الوقت نفسه، سوف لاول مرة على الموقع الإلكتروني للدورة القادمة لهذا الجمعة إذا كنت ترغب في عقص مع ذلك كما فعلت مرة واحدة عند كل مرة في وقت متأخر ليلة الجمعة في غرفتك. حتى cs50.net/appliance هو المكان الذي يمكنك الحصول على الجهاز CS50 أن بدأنا باستخدام يوم الاثنين. سنستخدم ذلك أكثر قليلا اليوم. ولكن تطمئن إلى أن المشكلة مجموعة 1 وسوف المشي لكم من خلال مواصفات بالضبط الخطوات التي تحتاج للحصول على هذا وتشغيلها. لذلك لا تقلق بشأن القيام بذلك قبل Pset 1 إذا كنت تفضل ذلك. حسنا. لذلك بحثنا يوم الاثنين في شفرة المصدر، ولكن في سياق جديد لغة البرمجة، وهما جيم وC، خلافا للخدش، ليس رسومية. انها ليست قطعة اللغز. انها اكثر جملة الإنجليزية مثل. وهناك بضع خطوات المشاركة في الواقع الكتابة وتشغيل البرنامج في C، وذلك لأن المصدر إلى جانب كود مثل هذا، كنت بحاجة الى شيء دعا مترجم. وفي شروط للشخص العادي، ما يفعل مترجم بالنسبة لنا؟ نعم. الطالب: كان تحويل رمز أن تكتب لو 0s 1S. DAVID مالان: جيد. لذلك تحويل التعليمات البرمجية التي نكتب لو 0s 1S. كان تحويل ما يسمى شفرة المصدر ل رمز الكائن، وهذه الأخيرة التي تبدو شيئا قليلا من هذا القبيل. وانها وحدة المعالجة المركزية الخاصة بك، والعقول داخل جهاز الكمبيوتر الخاص بك، وهذا بسبب الناس الذين خلقوا هذه الحواسيب، أعرف ما هي تلك متواليات و 0s 1S يعني. ربما يعني الطباعة. ربما كان يعني إضافة. ربما يعني الطرح. ربما يعني عرض الرسوم البيانية. هناك أنماط محددة مسبقا من البتات أن العالم قد قررت متوسط أشياء معينة. ولكن بالنسبة للجزء الأكبر في هذه الدورة، سنعمل على مستوى أعلى، و سنقوم أمرا مفروغا منه ان هناك أشياء مثل المجمعين التي يمكن أن جعل لدينا وظيفة شفرة المصدر في الطريقة التي تنوي. وبالتالي فإن البرنامج كتبنا الأولى الأسبوع الماضي وبدأت بعد ذلك في الميناء، وذلك ل الكلام، لC هذا الماضي الاثنين، كان هذا. عند النقر الراية الخضراء، ويقول مرحبا. وكان هذا، بطبيعة الحال، كتب في خدش. وأنا ادعى أن ما يعادل البرنامج في C بدا قليلا شيء من هذا القبيل. فما اعتقد اننا كنا نفعل في البداية غير، دعونا ندف عدا ما يبدو، في البداية وهلة، باعتراف الجميع، وغامضة إلى حد ما بناء الجملة، ولكن عليك أن تبدأ لإشعار أنماط بسرعة. ما سنقوم به هو توفير أيضا اليوم كنت مع نموذج العقلية لبعض الكنسي، وبعض التركيبات القياسية في البرمجة. وبعد ذلك سنقوم في الواقع الحصول على أيدينا قذرة مع بعض الأمثلة كذلك. حتى بالنسبة لأولئك منكم أكثر راحة، ندرك أن هذا الأسبوع ثم المقبل قد يكون جيدا الاسبوع قليلا من الاستعراض. ولكن بصفة خاصة عندما الطبعة القراصنة مجموعة من المشكلة 1 يخرج على بالطبع موقع يوم الجمعة، وأنا لا أعتقد ستجد أن حتى تكتب بعض الفراغات خلال الاسبوع او الاسبوعين المقبلين، عليك أن تبدأ في الحصول على أكثر من أي وقت مضى تحدى وقاء أشياء جديدة وأحدث. لذلك دعونا ندف هذا البرنامج بصرف النظر بضعة أسطر في كل مرة. في أعلى جدا، لدينا ما هو دعا تقنيا التوجيه المعالج. هذا هو مجرد سطر من التعليمات البرمجية التي تقول لتشمل محتويات الملف، دعا القياسية I / N، الإدخال القياسي - أو، آسف، ومعيار I / O، ومعيار الإدخال / الإخراج، ح، داخل برنامج بلدي. لذلك وبعبارة أخرى، إذا كتبت هذا برنامج مع محرر نص بسيط مثل gedit، أي ما يعادل أكثر بساطة من شيء مثل مايكروسوفت وورد، الذي التعليم، # تشمل stdio.h، هو مجرد سوف نقول للمترجم، والاستيلاء على محتويات هذا الملف أخرى، stdio.h، ولصقها هنا. الآن، لماذا أهتم؟ ماذا ندعي داخل هذا الملف دعا stdio.h، والتي يتم تخزينها في مكان ما على القرص الصلب، أو في هذه القضية، في مكان ما في الجهاز CS50؟ وضع شخص آخر كان هناك بالنسبة لي. ولكن ما هو عليه؟ نعم، لذلك هو إعلان وظيفة تسمى printf. لذلك printf تذكر أن وظيفة يعرض الكلمات والأحرف و أرقام على الشاشة في العطاءات بلدي. ولكن أنا لم أكتب ذلك. لم CS50 لا يكتب عليه. قبل سنوات شخص كتب عليه، وأنها أعطى أساسا لنا وصفة لذلك في ملف يسمى stdio.h. بحيث السطر الأول يعطيني فقط الوصول إلى وظائف أن شخصا آخر كتب قبل سنوات، بين التي هي printf. الآن، السطر التالي انا ذاهب الى موجة بلدي يدوية على، على الأقل حتى الاسبوع المقبل. لكنه الآن، ونعرف أن كثافة العمليات الرئيسية (الفراغ) هو أساسا ما يعادل هذا الأصفر قطعة اللغز عندما النقر العلم الأخضر. العالم، منذ سنوات، قررت أنه إذا كنت كتابة برنامج في اللغة يسمى C، عليك أن تبدأ البرنامج مع خط يشبه ذلك. فقط في غضون اسبوع، وأنها سوف تجعل بمعنى ما هو كثافة، ما هو باطل. لكنه الآن، مجرد التفكير في الأمر لأن هذا اللغز قطعة الأصفر. الآن المقبل، لدينا متعرج يتبع بواسطة متعرج وثيقة أخرى، إذا جاز التعبير. وسنرى هذه في جميع أنحاء البرامج في C، فضلا عن جافا سكريبت و PHP. وهذه مجرد تغليف خطوط ذات الصلة من التعليمات البرمجية. متعرج مفتوحة أساسا يقول، وهنا يأتي بعض التعليمات البرمجية. ومتعرج مغلقة، وهو الزاوية في الاتجاه الآخر، فقط الوسائل، هذا كل شيء ل رمز ذات الصلة. وبالتالي فإن خط العصير في هذا أولا البرنامج هو الماضي، printf، اقتباسات نهاية الاقتباس، مرحبا العالم. ودعوت الشيء بين ونقلت ما آخر مرة؟ لذلك فمن سلسلة. وسلسلة هو مجرد فني عبارة عن سلسلة من حرفا، كلمة، عبارة. يمكن حتى حرف واحد تكون نقلت مزدوجة. ولكن من سلسلة من الصفر أحرف أو أكثر. مائل ن، رغم ذلك، يبدو غريبة بعض الشيء. ولكنه ببساطة يعني شيئا بسيطة إلى الكمبيوتر. ما هو مائل ن؟ سطر جديد. لذلك هذا مجرد تسلسل خاص من أحرف أن العالم قد قررت وضع وسائل كسر خط الحق هناك، لأن المترجم سوف تحصل في الواقع الخلط، وعادة، إذا كنت، جدا المفهوم، ولكن بشكل غير صحيح، فقط بدء ضرب أدخل لوضع خطوط جديدة في التعليمات البرمجية. عليك أن تكون أكثر من ذلك بقليل صريحة مع مائل ن. وسنرى هناك عدد قليل آخر من هذا القبيل أنماط الأحرف الخاصة. على سبيل المثال، إذا أردت السماح الخاصة بك مانع يهيمون على وجوههم في قضية الزاوية، لنفترض أنني أريد أن طباعة اقتباس مزدوجة على الشاشة ل أيا كان السبب، فإن ذلك يبدو أن تكون إشكالية قليلا، أليس كذلك؟ لأنه إذا أضع اقتباس مزدوجة في وسط "مرحبا، العالم،" لأيا كان السبب، لماذا لا يبدو أن يحتمل أن تكون إشكالية؟ فإنه يكسر السلسلة. المترجم هو مجرد برنامج. برنامج مثل المترجم هو مجرد الذهاب لقراءة التعليمات البرمجية أعلى إلى أسفل، من اليسار إلى اليمين. وإذا كان يرى ثلاث علامات الاقتباس المزدوجة بدلا اثنين، انها لن تعرف إذا كنت تقصد أن الشيء إلى اليسار يجب أن تكون السلسلة، أو شيء ل الحق، أو كل شيء. انها غامضة، وذلك ما نموذجي مترجم أن لا يتم نزوة للتو، وتعطيك بعض رسالة خطأ، و تجعلك تعامل مع هذه المشكلة. ذلك بالنظر إلى أن مائل ن يعني جديدة الخط، ما من شأنه بحدسك الآن بدء ليكون إذا أردت أن تشمل شيء الشاذة مثل مزدوجة أقتبس داخل هذا نقلت خلاف ذلك، سلسلة؟ -المائلين الاقتباس. وهكذا سنرى هذا نوع من نمط أيضا. إذا كنت تريد أن تفعل شيئا قليلا غريبة، وستجد أن الحلول غالبا ما تتبع نمطا، ومائل يدل على تسلسل هروب. وهذا يعني شيئا مميزا أننا بحاجة إلى تمثل في بطريقة مختلفة. أما بالنسبة كيف يمكن تمثيل مائل، حسنا، سنقوم أعود إلى ذلك. لكن الجواب، أيضا، هو في الواقع قليلا واضحة. لذلك دعونا الآن إدخال بعض الآخر بنيات البرمجة التي رأيتها في خدش. ربما كنت قد أمرا مفروغا منه بالفعل إذا كنت قد انخفض بالفعل في مشكلة تعيين 0. ولكن دعونا الآن أعرض بناء الجملة في C لهذه بديهية إلى حد ما غير ذلك الأفكار، وبعض منهم على الأقل. لذلك هذا مفهوم شرط أو فرع، في حين أننا في السابق مثلت مع التعليمات البرمجية التي بدا مثل هذا على اليسار في خدش - إذا كان x هو أقل من ذ، ثم يقول ذلك - بدلا من ذلك الآن في C - اسمحوا لي شحذ في أبسط الحالات على - نحن ببساطة أريد أن أقول، إذا، مفتوحة قوس، وهو أمر غير صحيح - وهو التعبير منطقية ستذهب حيث قلت حالة - قوس إغلاق، ثم لا ما هو داخل هذه الأقواس المتعرجة. حتى هنا، أيضا، والأقواس المتعرجة هي نوع من مثل خدش لل قطع اللغز على شكل حرف U. تفعل ما هو داخل هذه الأقواس المتعرجة. في هذه الحالة، خفض مائلة. وتلاحظ هذا هو الأمام خفض، وليس مائل. مائل، مائل، بالنسبة لأولئك الذين قد المبرمجة من قبل، يعني فقط - انها مجرد تعليق. A تعليق ليس خط من التعليمات البرمجية، في حد ذاتها. انها خط للغة الإنجليزية التي و الإنسان، وقد كتبت لنفسك ل ربما أذكر لك أن تفعل شيئا، ل شرح لنفسك، لشرح ل شخص آخر، ما التعليمات البرمجية الخاصة بك يقوم به. انها مجرد تعليق وصفي. الآن، وبطبيعة الحال، فإننا يمكن أن يكون في اتجاهين مفترق طرق فقط من خلال القيام بذلك، و شوكة ثلاثية في الطريق عن طريق القيام هذا، وإذا كنت لا تزال هذه نمط، هل يمكن أن يكون رباعية، خماسية وشوك السداسية في الطريق إذا تحتاج إلى معالجة، في الواقع، أن العديد من الظروف. ومن ثم لاحظ التوازي هنا - اذا (شرط)، الا اذا (شرط)، واحد فقط وهذا قليلا غريب هو الأخير، والذي هو فقط أن آخر. ولكن مرة أخرى، وهذا هو متطابقة، من الناحية النظرية، على ما فعلناه بالفعل، على الرغم من إرادة بناء الجملة تأخذ قليلا التعود. الآن، في هذا المثال، هناك بعض بناء الجملة غريبة أخرى. نرى printf مرة أخرى، أقواس مفتوحة، وقوس إغلاق. وداخل هناك سلسلة مقتبسة. الأقواس، في سياق من printf، انتقل على اليسار والحق ما؟ ماذا وصفنا التي نقلت السلسلة ك أعم؟ لذلك فمن حجة. أي وقت لديك وظيفة، مثل printf، وبعد ذلك PAREN مفتوحة و PAREN قريبة وشيء داخل ذلك، سواء كان ذلك في سلسلة، أو صحيح، أو أي شيء آخر، والشيء في بين تلك الأقواس يسمى حجة. وحجة يؤثر فقط سلوك الدالة. في هذه الحالة، فإنه من الواضح تماما كيف. س <ذ هو ما يتم تمريرها في، إذا جاز التعبير، كوسيطة. وprintf هو الذهاب الى طباعة هذا بالضبط. لأن بالتأكيد، وخلال السنوات شخص منذ الذين نفذت زيارتها printf أي فكرة ما كنا خلفاء الإنسان تنوي استخدام printf ل. ولهذا السبب توجد الحجج، ل السلوك النفوذ بعد الدالة قد كتب. الآن، تعبير منطقي. رأيناه من قبل في هذه خدش. اتضح في C يمكنك أيضا "أو" معا، إذا جاز التعبير. اثنين من أشرطة عمودية يعني أن هذه الكتلة من التعليمات البرمجية، وهذا القيام بذلك، سوف تنفيذ إذا كان الشرط الأول هو صحيح أو الشرط الثاني هو الصحيح. وحتى لو كنت لا قد فعلت هذا في خدش، هل يمكن حقا القيام بذلك في خدش، ويمكنك أيضا التعبير عن نفسك بشكل مختلف - إذا كان الشرط الأول والثاني حالة صحيحة، ثم لا ما هو داخل الأقواس المتعرجة. ومثلما جانبا، والسبب انها والضم مزدوجة والمزدوجة شريط عمودي، وسنرى في نهاية المطاف أن شريط عمودي واحد و الضم واحدة فعلا مختلفة وهذا يعني في C. حتى الآن، أن ازدواجية الرموز غير مقصود. لذلك دعونا أعرض، لفترة وجيزة، هذا البت الأخرى من بناء الجملة. هذا لا يحمل تماما لأكثر من الصفر، ولكن أزعم أنني يمكن تنفيذ فكرة وجود إذا آخر، إذا آخر، إذا آخر، إذا بيان آخر باستخدام ما يسمى بيان التبديل. والسبب الوحيد وهذا موجود حقا هو مجرد اعطاء لك، مبرمج، و بطريقة مختلفة قليلا من حل بعض المشكلة، على الرغم من أنه من الناحية المنطقية لا يعطيك أي قدرات جديدة. أعني هذا. عندما تقول التبديل، ثم مسافة، ثم زوج من الأقواس، داخل من الذي يذهب تعبير - وهذا قد يكون قليلا غير واضحة في البداية، ولكن هذا ليس حجة، من الناحية الفنية، وذلك لأن التبديل ليس وظيفة. حتى الآن، مجرد افتراض أن نستخدمه الأقواس في أماكن مختلفة لأسباب مختلفة. ذلك التبديل على التعبير يعني استطيع وضع متغير داخل تلك أقواس حيث تقول التعبير. ثم إذا كان هذا المتغير - لنفترض انه دعا س، و انها مجرد عدد صحيح - أستطيع أن أعدد ثم في الشريحة بلدي هنا شيء من هذا القبيل. إذا كان x هو المتغير بلدي، وأنا تريد أن تفعل شيئا إذا كان x يساوي 1، أستطيع أن أفعل ذلك. لو كنت بدلا من ذلك تريد أن تفعل شيئا إذا كان x هو 2، أستطيع أن أفعل ذلك. آخر، إذا كنت تريد أن تفعل شيئا آخر تماما، وأنا يمكن أن يكون لها الحالة الافتراضية في هذه الحالة أن أفعل هذا الشيء الآخر. حتى في هذا المعنى، انها يعادل إذا كان x يساوي يساوي 1، والا اذا آخر، لكني أذكر هذا الآن فقط لأن سنرى ذلك مرة أخرى. لكنه الآن، ونعرف تماما أنه موجود. حسنا. وبالتالي فإن هذه القليلة الماضية هي أكثر من ذلك بقليل معقدة للوهلة الأولى، لكنها شيء اضحة إلى حد ما. A للحلقة في C هو قطعة من التعليمات البرمجية التي لا مجرد شيء مرة أخرى و مرارا وتكرارا. وشيء مزعج فقط عن ذلك هو هذا هو أنه خفي قليلا للتعبير عن نفسك في هذا الدوري النمط، ولكن العالم موحدة على على النحو التالي. عند استخدام للحلقة، وكنت قد حصلت على زوج من الأقواس مرة أخرى. وتلاحظ المنقوطة اثنين في هناك. هذين منقوطة فصل ثلاثة تعبيرات مختلفة داخل الأقواس. واحد هو ما يسمى التهيئة. واحد هو ما يسمى الشرط. واحد هو ما يسمى التحديثات. نظرت في المجرد، وهذا هو تماما غير واضحة، لذلك دعونا ننظر في مثال ملموس. في خدش كان لدينا كتلة تكرار. وقال هذه الكتلة كرر 10 مرات، ويقول "مرحبا، العالم". اسمحوا لي أن تدعي ل الآن، وسوف نعود إلى هذا، و هذا، أيضا، سوف تحصل على أكثر مألوفة ل كنت قبل فترة طويلة، أي ما يعادل C ويمكن أن يقال رمز لتكون هذه - وعلى هذا البيان والفضاء، وزوج من قوسين، لاحظ الفواصل المنقوطة في هناك، التي تفصل ثلاثة متميزة الأشياء، والتهيئة، و الشرط، والتحديث. واتخاذ تخمين ما أول يقوم به. كثافة العمليات ط = 0. في شروط للشخص العادي الخام، وما هو أن القيام بالنسبة لنا، وربما؟ لذلك نعم. انها تعلن متغير يسمى ط، وانها ما يعطيها قيمة؟ 0. حتى انها لإنشاء متغير يسمى ط، وتخزين القيمة 0 في ذلك. وهذا ما يسمى التهيئة. كل الحق، وأنا الآن وادعى قبل أن الشيء المتوسطة، ط <10، هو الشرط. ذلك ما تقوم به؟ حسنا، ما لحلقة يفعل عندما البرنامج مع حلقة for يتم تشغيل، هو كل مرة يتم فيها تشغيل الكمبيوتر من خلال هذه الحلقة، من أعلى إلى أسفل، وأعلى ل القاع، مثلما فعلت يا رفاق عندما عد أنفسكم والجلوس، مرة أخرى ومرة ​​أخرى ومرة ​​أخرى، الكمبيوتر هو الذهاب للتحقق هذا الشرط. وإذا كنت أقل من 10، انها سوف تفعل ذلك مرة أخرى. إذا كنت أقل من 10، انها سوف تفعل ذلك مرة أخرى. إذا كنت أقل من عشرة، انها سوف تفعل ذلك مرة أخرى. بحيث يبدو تشير إلى أن ط نأمل آخذ في التغير. خلاف ذلك، سيكون لدينا حلقة لا نهائية. والواقع أنني آخذ في التغير، وذلك لأن آخر شيء بعد الفاصلة المنقوطة هناك هو بناء الجملة خفي إلى حد ما من ط + +. ولكن أولئك منكم الذين قد فعلت هذا من قبل، وهذا يعني فقط بكل بساطة ماذا؟ الطلاب: [فاصلة VOICES]. DAVID مالان: 1 إضافة إلى i. زيادة ط. لذلك رأينا لغزا محيرا للخدش قطعة لذلك، في الواقع. أنها لم تبدو وكأنها ط + +، ولكن هذا فقط الوسائل، بكل بساطة، زيادة في ط القيمة بنسبة 1 في كل مرة تقوم بذلك. لذلك حرفيا، عليك أن تبدأ من قبل ط تهيئة إلى 0. ثم تحقق لك حالتك. 0 هو أقل من 10؟ نعم. نذهب من خلال الحلقة. والشيء التالي أزعم الكمبيوتر بصدد القيام به هو انها تسير لزيادة ط. لذلك أنا الآن 1. فإنه يتحقق الشرط. هو 1 أقل من 10؟ بالطبع. حتى يفعل ذلك مرة أخرى. ثم فإنه بزيادة ط + + إلى 2. 2 هو أقل من 10؟ نعم. ومرة أخرى ومرة ​​أخرى ومرة ​​أخرى. وفي نهاية المطاف، بسبب زائد plussing، ونصل الى ط يساوي 10. 10 إلى أقل من 10؟ حسنا، من الواضح أن لا. وهذا هو النقطة التي لحلقة يتوقف فقط. وإذا كان لديك أكثر رمز على الشاشة في الأسفل، الكمبيوتر العائدات لتشغيل تلك التعليمات البرمجية بدلا من ذلك. ذلك مرة أخرى، حتى وإن كان هذا هو الذهاب الى الشكل والمظهر الغريب قليلا في الأولى، وبالتأكيد بالنسبة لأولئك منكم الذين لم مبرمجة من قبل، و حرفيا يقلل من الناحية النظرية إلى ما هو خلاف ذلك جدا لغز مباشرة قطعة في خدش. كل الحق، وأنا وعدت أن هناك (الايرانيون) يكون النظير الأخرى في خدش. هناك هذا واحد أيضا. ورأينا ذلك لفترة وجيزة في المرة السابقة. ولكن تذكر إلى الأبد منع في خدش؟ انها مجرد لا شيء إلى الأبد؟ أنا ادعى أن تستطيع تنفيذ هذا في هذا السبيل. ويمكنك تنفيذ هذه التسديدة في حفنة من الطرق المختلفة. لكن حلقة بينما هو مجرد مختلفة الطريقة C للتعبير عن نفسك. في نهاية اليوم، لا يمكنك القيام به أي شيء مع حلقة في حين أن ل لا يمكن مع حلقة for. حتى انهم في نهاية اليوم ظيفيا نفسه. ولكنها تسمح لك للتعبير عن نفسك بشكل مختلف قليلا في على النحو التالي. مع حلقة في حين، وهذا ما هو في أقواس وهذا ما دققت مرة أخرى و مرارا وتكرارا. وبمجرد أن التعبير غير صحيح، ثم توقف تنفيذ حلقة، والكمبيوتر العائدات ل تشغيل أي كود آخر لك لديك في الملف الخاص بك. ولكن ما هو مثير للاهتمام هنا أنني كتبته حرفيا صحيح. وصحيح هو نوع من قيمة منطقية، قيمة صحيحة أو خاطئة. لذلك يمكن أن تصبح حقيقية من أي وقت مضى false إذا لقد حرفيا الثابت تلوينها عليه في برنامجي؟ لذلك لا. انها غريبة قليلا لأنني فعلت ذلك. ولكن صحيح هو الصحيح. ليس هناك زائد plussing. ليس هناك استخدام المتغيرات في هنا. ذلك لأنني من الصعب ترميز بينما الحقيقية، وهذا حلقة دائما ما تقييم مرة أخرى ومرة ​​أخرى ومرة ​​أخرى. فكيف مرات عديدة هو مرحبا العالم الذهاب للطباعة على الشاشة؟ إلى الأبد. عدد لا حصر له من المرات حتى البطارية يموت أو بعض الدول الأخرى الخارجية يحدث الحدث. لذلك هذا هو ربما لا يكون أفضل برنامج في الكتابة، لأنه إذا كان المستخدم لا يمكن أبدا إنهاء البرنامج الخاص بك، انها ربما لا ما تريده. لكن في بعض الأحيان، ينبغي برامج يكون حلقة لا نهائية. على سبيل المثال، إذا كان جهاز الكمبيوتر الخاص بك الساعة على ذلك، فإنه بالتأكيد سيكون جميلا لو ساعتك أنها لا تبقي التحديث نفسها إلى الأبد، ولو مرة واحدة في ثانية أو دقيقة أو مرة واحدة شيء من هذا القبيل. حلقات وذلك حتى لا حصر له لا يكون لها مكانها. حسنا. أخيرا، هذا واحد. وهذا واحد هو مختلفة قليلا وظيفيا، وسوف نعود ل وهذا ربما في Pset 1. ولكن هناك نوع آخر من حلقة دعا افعل حين حلقة. والفرق الوحيد هنا بين تفعل حين حلقة، ويقول، وهو حلقة في حين، غير أن الشرط لا يتم فحص قبل تنفيذ التعليمات البرمجية، ولكن بعد قمت بتنفيذ التعليمات البرمجية. حتى في أعلى لحين حلقة، في حين أن افعل حين يتحقق ذلك في الجزء السفلي. وهذا يعني فقط أن حلقة بينما سيتم تنفيذ عادة أكثر من مرة أو مرات أقل من حلقة while؟ يحتمل أكثر من مرة، لأن افعل بينما يقول بوضوح حلقة قيام بذلك، إلا بعد وهي النقطة التي تحقق إذا كان الشرط داخل قوسين هو الصحيح. لذلك سنرى هذا مرة أخرى ربما في Pset 1. إذا كنت تريد من أي وقت مضى أن تفعل شيئا في الأقل مرة واحدة وربما بعد ذلك بعض أكثر مرات، وهذا هو جيدة بناء للاستخدام. ولكن حلقة من الوقت، على النقيض من ذلك، سوف مراجعة حالته الأولى. وهذا كل شيء عن الحلقات في C، لا بينما، في حين، وعلى حلقات. ومرة أخرى، فإنها الخريطة لطيف جدا العودة الى نقطة الصفر، ما عدا هذا واحد لا لديهم تماما نفس التناظرية في خدش. حسنا، ماذا عن الآن، والمتغيرات؟ لذلك هذا هو كيف لي أن أعلن متغير بناء جملة في اليوم الآخر. كان لي عدد صحيح، وأنا ادعى هو عدد صحيح. ثم كان لي متغير يسمى العداد، ثم فاصلة منقوطة. فما هو هذا الخط لفعل الرمز؟ وهذا هو، بكل بساطة، معلنا متغير - وهذا هو، طرح جهاز الكمبيوتر، أعطني بعض الذاكرة، أعطني بعض بت - في وهو ما يمكن تخزين ما؟ عدد صحيح. والفاصلة المنقوطة يعني فقط نهاية سطر من التعليمات البرمجية. الآن، والخط الثاني هو الأرجح تخمينها جدا. ما هو العداد = 0؛ تفعل؟ انها تكليف 0 إلى العداد. وهكذا وهذا هو الشيء الآخر وهذا مزعج قليلا مقابل، ويقول، والجبر. أما في الجبر، وعلامة المساواة يعني يساوي، هنا في C، وعلى قدم المساواة علامة تعني الاحالة. لذلك يعني وضع ما هو على الحق إلى ما هو على اليسار. وسنرى رمزا آخر، يساوي يساوي، عندما نريد لاختبار الواقع للجودة، مزعج إلى حد ما. ولكن هذا غير فعالة قليلا. انها نوع من مزعج أن لدي لتعريف متغير و ثم إعطائها قيمة. بحيث يتيح C فعلا لنا تبسيط هذه ومجرد القيام بذلك في كل مرة. يمكنك تعريف المتغير على اليسار. لا يزال بإمكانك القيام الاحالة على الحق عن طريق وضع علامة المساواة التي في الوسط. ذلك في نهاية اليوم، وهذه هي اثنين ما يعادلها، ولكن هذا واحد، بصراحة، وربما هذه العادة أفضل للوصول الى لمجرد انها أقل قليلا رمز، انها أسهل قليلا لقراءة، وتشدد للتو التعليمات البرمجية الخاصة بك، إذا جاز التعبير. أي أسئلة حتى الآن على الحلقات، على المتغيرات، على الظروف، على القيم المنطقية، سواء من الناحية الفنية أو المفهوم؟ حسنا. وحتى الآن هذا واحد يحصل على القادم قليلا أكثر إثارة للاهتمام. وهذا هو المثال الأول طرح مشاركة الوقت الذي يعين مجرد مثال للخدش أكثر من C. حتى وظيفة. في شروط للشخص العادي، ما وظيفة؟ يجب أن يكون أكثر جرأة مع جوابك. ما هو وظيفة؟ الطالب: لا شيء. DAVID مالان: ما هذا؟ الطالب: لا شيء. DAVID مالان: هل شيء. موافق. سنبدأ هناك. لذلك وظيفة لا شيء. حتى انها قطعة من التعليمات البرمجية هذا نفذت أساسا في مكان آخر أن في الواقع لا شيء. الآن، ما هو مثير للاهتمام عن وظيفة غير أنه يمكن أن يستغرق المدخلات، ويمكن أن تنتج الانتاج. ودعونا نلقي الواقع لننظر إلى هذا. ذلك الرجل وراء الستار كان متعمدا قبل لحظة. هنا لدينا جدول. ولكن لنفترض أن هذا الواقع يمثل مربع كبير. لذلك هذا هو ما يسمى الصندوق الأسود. وبشكل عام، في التصميم، في جهاز الكمبيوتر العلوم، مربعات سوداء تشير فقط إلى قطعة من الوظائف التي شخص وقد نفذت، وكنت لا يعرف بالضرورة أو يهمني كيف انها نفذت تحت غطاء محرك السيارة. كنت مجرد الحرص على أن هذا الصندوق الأسود، التي سنقوم الآن بدء الدعوة ل وظيفة، لا شيء. لذلك، على سبيل المثال، إذا كان هذا الصندوق الأسود على مرحلة هنا يمثل printf، و وظيفة، وأنا أعلم من الأمثلة السابقة printf أن يأخذ واحدة أو أكثر الحجج، وأول تلك يجب أن تكون سلسلة الحجج، مثل "مرحبا، العالم". حسنا، إذا أنا الشخص كتابة البرنامج، وأريد لاستخدام printf، وأنا، على سبيل المثال، قد تأخذ قطعة من ورقة بيضاء هنا و علامة سوداء والكتابة عليه - أنا أخطأت "العالم" - H-E-L-L-O. ولذا فإنني سوف تتخذ بلادي علامة سوداء وسوف أكون الكتابة، كما كبيرة وبشكل مقروء ما أستطيع على هذه قطعة من الورق، "مرحبا، العالم"، و الآن أنا أدعي هذا هو حجتي. هذا هو سلسلة ممثلة مع قطعة من الورق الأبيض. وبلدي الإدخال الآن إلى وظيفة printf ستكون هذه. لذلك أدعو printf، ويمر هذه الحجة كمدخل لها. والآن، وأنا لا أعرف كيف يمكن للشخص الذي كتب printf فعل ذلك منذ سنوات، ولكن أنا أعرف من وثائقه التي هدفها في الحياة هو لطباعة ما تقدم إليها كمدخل. وهكذا، على الرغم من هذا التنفيذ هو دون علم مني تحت غطاء محرك السيارة، والآن أرى، يا، ويتم ذلك. تمت طباعته شيء على الشاشة. والآن السيطرة على البرنامج، إذا كان هناك كانت أكثر خطوط للقانون، من شأنه أن وقد عاد الآن بالنسبة لي. وبالتالي فإن حقيقة أن كولتون - يبارك قلبه، يختبئ هنا تحت جدول أمام كل واحد منكم - غير المتعمد في أنني لا أعرف وأنا لا يهمني كيف هو printf تنفيذها. أنا أعرف فقط، ومرة ​​أخرى، من ل الوثائق، وماذا يفعل وكيف أنا من المفترض أن استخدامه. الآن، أذكر أن printf يمكن الحصول على أكثر من ذلك بقليل متطورة. مرة أخرى، نحن فقط نتحدث عن يعادل الصفر نقول كتلة. ولكن أنا أيضا فعلت هذا آخر مرة. أردت أن أجعل مرحبا البرنامج قليلا أكثر حيوية وليس فقط من الصعب كود شيء من هذا القبيل "العالم"، و كود بالتأكيد ليس من الصعب شيئا تعسفي مثل D-A-V-I-D في البرنامج. أردت أن أسأل المستخدم له أو لها اسم، ثم تفعل شيئا مع هذه السلسلة التي يقدمونها. ولذلك لا يوجد شيء مختلف قليلا هنا. printf، قبل لحظة، لم، في الواقع، أن تفعل شيئا، لكنها لم يرجع أي شيء بالنسبة لي. أليس كذلك؟ لم كولتون لا يد لي أي شيء مرة أخرى، لا قطعة من الورق. كان هناك مجرد أثر جانبي. بلدي توفير "مرحبا، العالم" بوصفه أدى الجدل إلى كولتون في الآثار الجانبية للكلمة، وبعض الكلمات، التي تظهر على الشاشة. getstring، رغم ذلك، هو قليلا مختلفة. getstring هو أيضا يعمل، لكنه يعود بعض القيمة. فإنه لا يكون لها فقط الآثار الجانبية الجمالية. فعلا يعطيني، والشخص استدعاء أو باستخدام وظيفة، شيئا. حتى في هذه الحالة، هو getstring ودعا مع getstring مفتوحة PAREN، PAREN قريبة. لا getstring، لذلك، واتخاذ أي حجج أو المدخلات؟ لا، فإنه لا يبدو. هدفها في الحياة هو لمجرد الحصول على السلسلة. فإنه يحتاج التفصيل ليس أكثر من ذلك. لذلك اسمحوا لي المضي قدما والتظاهر بأن، مرة أخرى، هذا الصندوق الأسود ليس printf، ولكن getstring، واسمحوا لي، والشخص كتابة هذا البرنامج، أو استخدام الكلمة getstring فقط عن طريق الكتابة G-E-T-S-T-R-I-N-G، PAREN مفتوحة، على مقربة PAREN، getstring. الآن، ليس لدي أي فكرة عن كيفية الموظفين CS50 نفذت getstring، ولكن أنا أعلم أن إذا كنت تنتظر طويلا بما فيه الكفاية، انها لن تفعل ل شيء تحت غطاء محرك السيارة، وربما باستخدام بعض المتغيرات، وربما باستخدام بعض الظروف، وربما باستخدام بعض الحلقات، ربما باستخدام بعض الوظائف، ربما باستخدام - مجرد محاولة للمماطلة - ربما باستخدام بعض الميزات البرمجة الأخرى. ولكن إذا كنت تنتظر طويلا بما فيه الكفاية - في واقع الأمر، في الكمبيوتر، وهذا يحدث بسرعة فائقة - إذا كنت تنتظر طويلا بما فيه الكفاية، هذه الوظيفة getstring هو الذهاب الى الحصول على سلسلة من المستخدم الذي هو كتابة المفترض بها على لوحة المفاتيح الخاصة بهم، و ثم، ويتم ذلك عند الحصول على getstring تلك الأحرف من المستخدم وتخزينها في سلسلة، وهذا وظيفة، getstring، وستكون لدينا جاهزة لللي بعض الانتاج الذي أنا الذهاب الى استرداد من طريق عامل التعيين. وإذا ذهبت، في الواقع، إلى الإخراج هنا، Obosi له بسخاء شاركت، من دون معرفة هذا في تقدم، من خلال كتابة اسمه على هذا المتغير الذي يمثل سلسلة. الآن، عامل التعيين يعني، حتى على الرغم من أن هذا قد يشعر قليلا زائدة عن الحاجة، وأنا فعلا بحاجة لجعل نسختي الخاصة من هذا. لأن على اليد اليسرى الجانب - يصيح! - تلاحظ أن لدي أساسا سلسلة اسم على الجانب الأيسر. لذلك أنا ذاهب أيضا لجعل نسختي الخاصة من هذا. وهذا هو جزء من كذبة بيضاء، لأننا سنرى في غضون أسبوع أو اثنين ل الوقت الذي الجمل ليست في الواقع ما يبدو. لكنه الآن، وهنا هو قيمة الإرجاع. هنا هو نسختي الخاصة من بعد باستخدام عامل التعيين. والآن، ماذا أريد أن أفعل بعد ذلك؟ لدينا الآن ثاني من سطرين من التعليمات البرمجية. لذلك أريد الآن أن أعطي الكلمة printf. دعونا نتظاهر الآن أن الأسود مربع هو العودة مرة أخرى إلى كونه printf وليس getstring. Printf هذا الوقت هو الذهاب الى كيف تتخذ العديد من الحجج؟ حتى ننظر، انها مثل اثنين. هناك اثنين من الفواصل في هناك، ولكن واحدة من تلك الفواصل، انها داخل الاقتباس. وبالتالي فإن الحجة الأولى هي حرفيا ستكون هذه. H-E-L-L-O، فاصلة، في المئة ق، مائل ن. والآن أنا لا توفير وسيطة واحدة، ولكن اثنين من الحجج لprintf. وما يفترض القيام به مع printf هذه المدخلات اثنين بعد أن يمر عليها في كوسائط؟ أنه من المفترض أن تأخذ في الثاني من لهم، وهو ما يسمى اسم، وبالتالي فإن القطعة الثانية من ورقة كتبت خارج منذ لحظة ويسمى الاسم. انها تسير للسد من قيمة داخل هذا المتغير إلى العنصر النائب، ٪ ق، بحيث، مرة أخرى، في مجرد لحظة الوقت، وسوف نرى من الآثار الجانبية ل بعد أن دعا printf، حيث نحن الآن لا أرى "مرحبا، العالم"، ولكن "مرحبا، Obosi ". حتى جولة كبيرة من التصفيق لكلا المتطوعين لدينا، واحد فقط منهم يعرفون هذا من شأنه أن يحدث. حسنا. لذلك، ربما، بهذه البساطة التي كانت، بالتأكيد، إذا كنت بالفعل على دراية مع هذا، ونأمل أنك سوف لن تنساهم ننسى أن بصرية خاصة لكيفية العمل وظائف. لذلك هناك أكثر من مجرد getstring. داخل المكتبة CS50، هناك مجموعة كاملة من وظائف، وكلها يتم رسملتها فقط أن نوضح أن كتبنا هذه الوظائف. عادة، في C، كل الآخرين تقريبا الوظيفة التي سوف تستخدم هي صغيرة. لكننا عمدا استخدام حروف وأرقام فقط أن نوضح أن هذه يتم تدريب عجلات من نوع التي سنقوم استخدام لبضعة أسابيع فقط أن تبسيط عملية الحصول على مدخلات من المستخدم. مكتبة CS50 لا تفعل أي شيء التي أنفسكم لا تستطيع أن تفعل من قبل فقط باستخدام رمز C من كتاب تغذية RSS. ولكن، مرة أخرى، ونحن نستخدم منهم عن التدريب عجلات من نوع ما لبضع أسابيع حتى نتمكن من التخلص من التعقيد أن عليك أن تفهم قريبا نفسك على فعل شيء ما مباشرة نسبيا عن الحصول على مدخلات من المستخدم. حتى نعرف أن عليك الوصول لGetChar، GetDouble - مزدوجة. What's - ثم GetFloat. ما هو عدد عشري؟ دعونا نبدأ هناك. الطالب: [غير مسموع]. DAVID مالان: نعم. انها مع عدد العشرية. ذلك في حين أن كثافة العمليات هو عدد صحيح، والذي هو مجرد رقم مع 0 إلى 9، بعض عدد من حالات التكرار منها، تعويم شيء مع العلامة العشرية. وضعف، وفي الوقت نفسه، هو أيضا عدد بنقطة عشرية، ولكن أكثر أرقام بعد العلامة العشرية نقطة، ويحتمل أن تكون. ولذا فإننا سوف نعود إلى هذا قبل فترة طويلة. ولكن عادة، كل من هذه الأنواع من البيانات، ولكل من هذه الأنواع من المتغيرات أن المكتبة مثل بلدنا يمكن العودة إلى كنت، واستخدام أرقام مختلفة من البتات ل تخزين المعلومات. عادة، وشار، وهو ما يعني فقط حرف واحد، يستخدم 8 بت. وهذا يتفق مع الواقع لدينا بايت من المتطوعين الذين الأسبوع الماضي جاء واحد يمثل حرف ASCII في وقت واحد. لذلك شار هو 8 بت. A تعويم يحدث أن تكون 32 بت، وعادة. ومزدوجة، كما قد يتبادر إلى ذهنك، هو في الواقع 64 بت، الذي هو مجرد أكثر من ذلك، مما يعني أنك يمكن أن يكون لها أكبر أرقام أو أكثر دقة. ولكن مرة أخرى، المزيد عن هذا في وقت آخر. GetLongLong، وفي الوقت نفسه، على الرغم من بغباء اسمه، هو في الحقيقة مجرد صحيح أن هذا بمرتين، ضعف طويلة، ويحتمل، كما العادية صحيح، 64 بت بدلا من 32. وGetString لقد تم استخدام. لكن اتضح، في المكتبة CS50، الذي ينفذ، كما سنرى، في شكل الملفين، واحدة منها يسمى cs50.h، واثنين آخرين أنواع البيانات في ذلك. القيم المنطقية لا وجود لها في C. يمكنك محاكاة لهم فقط باستخدام 1S و 0s جميع برامج الخاصة بك. لكننا في المكتبة CS50 خلقت رموز "الحقيقية" و "كاذبة" لتمثيل 1 و 0 حتى لا يجب أن رمز القرص الثابت شيئا أحب حرفيا 1 و 0. ولكن سنرى تلك مرة أخرى. سلسلة، أيضا، غير موجود. وهذا هو السبب في أنني ذكرت انها قليلا من كذبة بيضاء في الوقت الراهن. ولكننا سوف قشر الظهر التي طبقة قبل فترة طويلة. لكن في الوقت الراهن، وهو عبارة عن سلسلة تسلسل من الأحرف. وفي الوقت نفسه، في C، كنت في الواقع تحتوي على أنواع بيانات مختلفة. تلاحظ هذه هي صغيرة. وبالتالي فإن الوظائف التي شهدت منذ لحظة وظائف كتبه التي CS50 سيعود لك القيمة التي تقع في واحدة من هذه الفئات. ورقة الغش الزوجين فقط لزرع البذرة هنا. printf لا فقط تتخذ٪ ق كعناصر نائبة. يستغرق٪ د عن الأعداد الصحيحة العشرية، أو٪ ط ستعمل كذلك. ٪ و يعوم القيم نقطة. ج٪ هي لل شار، إذا كنت ترغب في سد واحد فقط حرف في سلسلة المنسقة مسبقا مثل كنا نفعل، يمكنك استخدام٪ ج. ومن ثم، مزعج نوعا ما،٪ بكالوريوس في القانون هو لفترة طويلة، صحيح عشري طويلة، وهو ما يعني فقط إذا كنت بحاجة حقا عدد كبير وكنت تستخدم شيئا دعا منذ فترة طويلة طويلة، والتي سنأتي العودة إلى في pset، يمكنك استخدام٪ بكالوريوس في القانون ل اقول printf، والمكونات في كبيرة حقا عدد صحيح هنا عن طريق دورتها الثانية أو بعض حجة أخرى. وأخيرا، لقد وعدت أن هناك عدد قليل من فرار أخرى متواليات التي printf الدعم. رأيناه مائل ن. مائل-R قد ترى. انها نوع من الشيء القديم المدرسة. إذا كنت من أي وقت مضى تستخدم لسنوات آلة كاتبة حقيقية قبل وكنت سحبت على كرنك والتي لا استدارة العجلة ل نقل المباراة، انتقلت أيضا كل شيء كل في طريق العودة الى اليسار، حسنا، مائل-R فقط يتحرك المؤشر أساسا ظهرك إلى بداية السطر دون نقله إلى أسفل. ولكن مرة أخرى، أكثر على ذلك، ربما، في المستقبل. مائل الاقتباس،، المائلين الاقتباس، مائل مائل، هو حل للغز الصغير للغاية أنا ألمح في وقت سابق إلى. ومائل-0 هو في الواقع جدا للاهتمام. ولكننا سوف نعود ل أن قبل فترة طويلة. لذلك اسمحوا لي الخوض، والآن، وCS50 الأجهزة، ودعونا نفعل في الواقع تسخين سريع مع واحد من الأمثلة نحن لم بالفعل ثم الانتقال إلى شيء أكثر من ذلك بقليل معقدة. حتى لو كنت تفتح برنامجي دعا gedit - هذا هو بلدي محرر الرسوم البيانية. وأستطيع أن أفعل ذلك - اسمحوا لي أن إغلاق هذه النافذة هناك - عن طريق هذا الرمز إلى هنا، gedit، في أسفل اليسار الزاوية بجوار القائمة. انا ذاهب الى المضي قدما والتقدم، و حفظ هذا المثال في، ويقول، جون المجلد هارفارد. المجلد جون هارفارد هو مجرد منزله الدليل حيث كافة الملفات له العيش افتراضيا. وانا ذاهب لإنقاذ هذا النحو ملف يسمى مرحبا-0.c. ولقد اختار هذا الاسم فقط لذلك يصطف مع نموذج التعليمات البرمجية على موقع وبالطبع في يوتيوب أشرطة الفيديو على الانترنت. حتى الآن أنا ذاهب لبدء إرسال أول برنامج لي. اسمحوا لي أن التكبير في لوضوح. وانا ذاهب الى المضي قدما ويقول الباحث باطلة الرئيسي، والذي هو تماما مثل ذلك الأصفر قطعة اللغز الذي يبدأ البرنامج. لقد حصلت في العادة على سنوات من فتح بلدي متعرج، ثم إغلاق أيضا ثم تعود إلى حيث أريد أن أضع قانون بلدي، فقط لأنه يساعدني على الحفاظ على كل شيء متوازنة، خاصة أن بلدي يحصل برنامج طويل. والآن، هنا، انا ذاهب الى المضي قدما ويقول: printf، بين قوسي الإقتباس، مرحبا العالم، مائل ن، واقتبس وثيق، قوس إغلاق، منقوطة. لذلك أنا مجرد تكرار كل ما قمت تم اتخاذ أمرا مفروغا منه حتى الآن. الآن انا ذاهب للتصغير. وهذا إطار المحطة الطرفية إلى هنا، ما أنا سمحت القيام به في هذه الأسود ونافذة بيضاء؟ ماذا يمكنني استخدامه ل؟ لذلك هذا هو المكان الذي يمكنني تشغيل الأوامر و أين يمكنني تجميع الأشياء. وانا ذاهب الى يبقيه بسيط. انا ذاهب الى استخدام برنامج دعا الصنع، وهي ليست تقنيا مترجم. المترجم يسمى ضجيج، ولكن سوف نعود إلى ذلك في أسبوع أو اثنين في وقت. الآن، أنا مجرد الذهاب الى جعل اكتب مرحبا-0، ولكن أولئك منكم الذين كانوا مقارنة في عقولكم ما أنا فقط كتبته لما ينبغي أن يكون قد كتبته أعرف مسبقا أن فعلت شيء خاطئ هنا. الآن، هناك بعض الأخطاء بشكل واضح. قبل أن ننظر حتى في ما هي عليه، أي أفكار حول ما فعلته خطأ؟ الطلاب: [فاصلة VOICES]. DAVID مالان: نعم. أنا في عداد المفقودين الملف رأس المكتبة. أي من هذه ملفات ح تسمى رأس الملفات، وأنها جماعي تنتمي إلى الأشياء تسمى المكتبات. المكتبات ليست سوى أجزاء من التعليمات البرمجية كتب أن الناس الآخرين. وبالتالي فإن معيار [؟ ط؟] المكتبة هي مجموعة من الملفات التي تحتوي على شفرة كتب أن الناس الآخرين. لذلك أنا في عداد المفقودين ذلك. فلماذا أنا الحصول على خطأ؟ حسنا، اسمحوا لي أن انتقل احتياطي في بلدي محطة نافذة هنا. ولسوء الحظ، في C، كما هو الحال في الكثير من لغات البرمجة، وخاصة لو كان كل جديد لك، والخطأ الرسائل هي دقيقة، ولكنهم أيضا خفي تماما. والخطأ هنا، باللون الأحمر، هو "يعلن ضمنا وظيفة المكتبة printf مع نوع "، وبعد ذلك مخطوطات إلى السطر التالي، "الباحث شار كانت const *، ... "فإنه يحصل فقط حقا الساحقة بسرعة. ولكن ما يجب أن نبدأ في القيام به، إذا، مرة أخرى، جديدة إلى كل هذا، هو فقط ل تبدأ في البحث عن الكلمات الرئيسية. بشكل واضح، قد أكن أفهم نصف من الكلمات اراه فقط حتى الآن. صح التعبير، رغم ذلك، في غضون اسبوع. ولكن أرى printf. والتي ينبغي أن تبدأ، قبل وقت طويل، ل تنبيه ذاكرتك، كل الحق، printf. شيء هو الخطأ في printf. لم أكن توضيح ذلك الخطأ؟ لا، انها لا تبدو وكأنها - اه. أنا لا يمكن استخدامه إلا إذا أعلم المترجم أنه موجود. وهكذا، مرة أخرى، انتقل مع الغرائز الخاص بك، حتى لو كنت لا تفهم الواقع رسائل الخطأ الفعلي. وبالفعل، فإن الحل هنا هو فقط إدراجه في الجزء العلوي من الملف من هذا القبيل، إعادة حفظ الملف الخاص بي مع التحكم-S أو القائمة ملف. وإذا كنت الآن نعود إلى هنا، أنا ذاهب لمسح هذا. ضبط L هو مجرد وسيلة لطيفة لمسح الشاشة. ثم أنا ذاهب إلى كتابة "جعل مرحبا 0 "أدخل، وأنا الآن لا تزال ترى تسلسل خفي من الرموز، ولكن سوف نعود إلى ذلك. وهذا ما جعل يفعل لك. انها أتمتة عملية اتخاذ أمر مزعج إلى حد ما تنطوي رنة، المترجم الفعلي. ولكن الحقيقة أن حصلت على أي وسيلة أخطاء أن هذا الشيء يجب أن تعمل. لذلك أنا الآن ذاهب الى القيام به - اسمحوا لي أن التكبير مرة أخرى - أدخل ./hello-0، والواقع، وأرى "مرحبا، العالم". لذلك دعونا الآن تعزيز هذا من أي وقت مضى حتى قليلا فقط لتكرار الخطوات التي يقصد. أنا ذاهب إلى إعادة تسمية هذا مع أما بالنسبة لحفظ hello1.c. والآن انا ذاهب الى تعريف متغير دعا اسمه، لذلك اسم السلسلة، وانا ذاهب الى وضعت فيه و قيمة اقتباسات نهاية الاقتباس D-A-V-I-D قريبة الاقتباس منقوطة. والآن انا ذاهب ليحل محل "العالم" مع ما نائبا لسلسلة؟ ٪ ق. والآن، كيف ينبغي أن العديد من الحجج printf تأخذ هذا الوقت؟ حتى اثنين. حتى أذهب خارج الاقتباس. أنا اكتب "اسم" بعد فاصلة. ولكن لقد فعلت شيئا خطأ آخر في هذا الوقت. ولكن دعونا نفترض أن لم أكن ندرك أن حتى الآن. اسمحوا لي أن ترتفع هنا. والإشعار، أيضا، انني اتلقى قليلا بالملل من كتابة "مرحبا 0 جعل" جميع الوقت، "جعل" وهذا كله. لذلك، كما تبين، في ما يمكن لينوس غالبا ما تصل إلى ما يصل سهم على الخاص لوحة المفاتيح، ويمكنك التمرير الواقع من خلال كل من الأوامر التي لدي أعدم السابق للتو. حتى لو كنت تفعل ذلك، إلى أعلى، إلى أعلى، هناك جعل مرحبا 0. أنا لا أريد ذلك. أريد فقط أن تغيير ذلك ل مرحبا 1 هذا الوقت، أدخل. في نهاية المطاف، من شأنها أن يوفر لك بعض الوقت. حسنا. للأسف، هناك من خطأ. لذلك اسمحوا لي انتقل لأعلى. هذا يبدو وكأنه أنا حقا ذبح هذا البرنامج. أعني، يا إلهي، انها سطرين من التعليمات البرمجية، و10 خطوطها من الأخطاء. ولكن نظرة على رأس واحد أولا. استخدام سلسلة معرف غير معلنة. لم أقصد القياسية ط ن؟ لا لم أكن. قصدته السلسلة. ولكن أين هو متغير سلسلة اكتب أعلنت، دد نقول؟ لذلك هو في CS50 المكتبة. لذلك لا يكفي، في هذه الأولى بضعة أسابيع، لمجرد استخدام ما يعطينا C. انا ذاهب أيضا لترتفع هنا، وأنا يمكن وضعه فوق أو تحت، ولكن أنا تبقي فقط الأبجدي لابقاء الامور منظم. أنا ذاهب لتشمل cs50.h، وهي مثبتة مسبقا ل كنت على الأجهزة CS50. وانها مفتوحة المصدر، وذلك حتى الناس على شبكة الانترنت يمكن استخدامه على هم أجهزة الكمبيوتر الخاصة. لكنه يأتي مع الجهاز CS50. وحتى الآن اسمحوا لي أن أعود وإعادة ترجمة هذا مع جعل مرحبا 1. اللعنة. لا يزال خطأ آخر. اسمحوا لي أن انتقل لأعلى لأول، وإن كان. هذا واحد من مجمع قليلا. ثابت حرف متعددة حرف. هذا لا يساعدني. ولكن الإشعار، ضجيج على الأقل قليلا بت لائقة، حيث مع قليل رمز الإقحام الخضراء، انها قائلا هنا حيث أنا ثمل. لماذا هو لافتا، مع أن القليل السهم الأخضر، إلى اقتباس مفردة المقبل لاسمي؟ لذلك هذا هو واحد من الأشياء التي فقط تعتاد على، وخاصة إذا كنت قد تم البرمجة في بايثون، أو جافا سكريبت، أو لغات أخرى حيث هذه التفاصيل لا يهم. في C، ولكنه لا يهم. إذا كنت معلنا سلسلة، والذي هو سلسلة من 0 أو أكثر من الأحرف، كنت في الواقع يجب استخدام علامات التنصيص. لذلك أنا فعلا بحاجة إلى تغيير هذا مرة أخرى لفتح الاقتباس، واقتبس وثيق، مع علامات اقتباس مزدوجة. ونقلت واحد لديهم مكانهم، ولكن فقط عندما كنت تستخدم الفردية حرف، ولكن أكثر على ذلك في وقت آخر. في الوقت الراهن، علامة التنصيص ضرورية. وحتى الآن، واسمحوا لي أن أعود إلى بلدي المحطة نافذة، وجعل مرحبا 1. والذين واثق؟ وهذا البرنامج يجري الآن لتجميع بشكل صحيح؟ موافق. لذلك نحن الثلاثة أعتقد أن هذا. حسنا. دخول. وفعلت فعلا. لذلك ليس هناك أخطاء هذه المرة، حتى على الرغم من هذا البرنامج هي حصلت قليلا أكثر تعقيدا. إذا أنا الآن لا خفض نقطة مرحبا 1، أدخل، انها سوف يقول "مرحبا، ديفيد." ولكن دعونا نفعل التكرار الثالث هذا، حيث البرنامج هو ديناميكية حقا. اسمحوا لي أن تمضي قدما وتغيير الملف اسم، لمجرد الاتساق مع الملفات التي سوف يكون متاح لك بعد ذلك على الانترنت. دخول. والآن انا ذاهب للذهاب في ويست متجر "ديفيد" الثابت ترميز هنا. ماذا يمكن أن أفعل لببساطة شديدة تحسين هذا البرنامج؟ أنا يمكن أن نسميه getstring. قد يكون غير واضح ما الصغير على وشك أن يحدث، لذلك أنا ذاهب لإضافة خط آخر في الواقع، printf، ويقول اسم والقولون، واقتبس قريبة، فقط لإعطاء المستخدم موجه على الشاشة. والآن انا ذاهب للذهاب هنا، وأنا تنوي استخدام بلدي لوحة المفاتيح المختصرة. انا ذاهب للذهاب لأعلى، إلى أعلى، والتغيير مرحبا 1 إلى 2 مرحبا، أدخل. والحمد لله، أنا تحرز تقدما. والآن انا ذاهب لترتفع إلى نقطة مائلة مرحبا و تغيير ذلك إلى 2، أدخل. والآن برنامجي - أنا تكبير - هو الحصول على وأجمل قليلا. الاسم سيكون، دعنا نقول روب هذه المرة، أدخل، مرحبا، روب. يمكننا أن نفعل ذلك مرة أخرى. اسم، لورين، أدخل. اسم جوزيف، أدخل. اسم، دعونا نحاول أن نكون صعبة، أدخل. إيه. انها ليست حقا الشوائب. حتى انها مجرد قبيحة قليلا. لذلك ربما نتمكن من حل هذه في المستقبل، وليس الآن. ولكن كيف غريزي التوجه نحو معالجة هذا التحدي بالذات؟ يبدو أنها مجرد غبي. كيف يمكنك تجنب الأشياء أبحث غبي؟ حتى نتمكن من القيام به، حسنا، سمعت بضع من الأشياء، وهي حالة وحلقة. يمكن أن نستخدمها، واحد، شرط، للتحقق ما هو طول السلسلة أعطى لنا المستعمل؟ واذا كان 0، انها مجرد قوسي الإقتباس، أنها مجرد ضرب أدخل، ثم ربما ينبغي لي أن يصيح عليهم ويدفع لهم مرة أخرى. ولكن كيف موجه لهم مرة أخرى؟ حسنا، أنا أيضا سمعت حلقة، ويمكن أن أقوله تفعل ذلك مرارا وتكرارا وتكرارا مطالبة المستخدم لنفس الشيء. حسنا، دعونا نفعل المثال الآخر باستخدام مختلف يعمل في المكتبة CS50. اسمحوا لي أن يغلق هذا الملف. اسمحوا لي أن إنشاء واحدة جديدة. وسوف يطلق عليه adder.c، لمجرد فإنه من السهل القيام بعملية حسابية بسيطة، على الرغم من أن هذا سيكون تماما مخيب مع ما يمكن أن تفعله مع أي جهاز كمبيوتر حديث. ولكن اسمحوا لي أن تمضي قدما الآن و- تعلمت الدرس وقتي الماضي - وتشمل cs50.h، وتشمل stdio.h، وكثافة العمليات باطلة الرئيسي، والتي، حتى الآن، وسوف أكون فقط تأخذ على الإيمان الأعمى، لكننا سوف نفترض التي من شأنها أن نفهم ما وهذا يعني قبل فترة طويلة. وانا ذاهب أن أقول شيئا مثل "أعطني كثافة العمليات." والآن، كيف يمكنني الحصول على كثافة العمليات؟ أريد أن تعلن في نهاية المطاف متغير دعا العاشر من نوع int و تخزين في ذلك عدد صحيح من المستخدم. لذلك كان هذا الفم. ولكن إذا كان هناك من يريد أن يقترح، كيف أقوم بتعريف عدد صحيح يسمى س؟ الباحث العاشر. لذلك هو حقا بهذه البساطة. تعطيني كثافة العمليات. نسميها السينية. الآن يمكنني استخدام عامل التعيين. وكيف يمكنني تخزين من ترك قيمة للمستخدم؟ أنا لا أريد لدعوة getstring، من الواضح، بل getint. أي الحجج؟ لا. لذلك فمن PAREN مفتوحة، PAREN قريبة على الفور، وبعد ذلك منقوطة ينتهي الخط. الآن اسمحوا لي أن تفعل هذا مرة أخرى. أعطني كثافة آخر. هذه المرة سأفعل كثافة العمليات، دعونا نسميها ذ، يساوي getint. والآن اسمحوا لي أن تفعل شيئا فائقة بسيطة مثل بعض الرياضيات. لذلك printf، مجموع٪ d هو العنصر النائب لكثافة العمليات. و٪ d، الفترة، مائل ن. حسنا. ولهذا لم يكن في الواقع الرياضيات. ولكن إذا أريد أن أقول مجموع هذه بالإضافة إلى قيمة هذه القيمة تساوي هذه قيمة أخرى، وكيف العديد من الحجج في مجموعه يجب أن يكون إعطاء printf، في نهاية المطاف؟ حتى أربعة، أليس كذلك؟ هذه السلسلة ثم القيم الثلاث. بحيث x هو أول أريد أن أكون في الوتر أول من٪ د. ذ سوف يكون القادم. والآن أنا نوع من أريد أن أقول ض، ض ولكن لا وجود لها. ولكن هذا ليس مشكلة كبيرة. لأن ما يمكن أن تفعله غريزي، وخاصة إذا كان لديك الرسوم البيانية حاسبة، ماذا اكتب؟ كيف حول س بالإضافة إلى ذ؟ حتى انها ليست متغير الفعلية. انها مجرد مجموع اثنين المتغيرات الأخرى. وهذا المشروع تماما. C يفهم بالتأكيد بسيطة الحسابية مثل هذا. منقوطة، حفظ. الآن اسمحوا لي أن انتقل إلى هنا و اكتب جعل الأفعى، أدخل. أي خطأ، ذلك أن التقدم أيضا. اكتب الأفعى. واختصار لوحة المفاتيح آخر، إذا كنت تبدأ في الحصول على بالملل مع كافة الأوامر - إذا كنت تبدأ بكتابة الأوامر، مثل نقطة خفض الإعلانية، وحيث ان لديك الملل في ركلات، يمكنك عادة ضرب التبويب لديك الكمبيوتر إنهاء بقية العبارة بالنسبة لك إذا لم يكن ما غامضة يجب أن تأتي بعد الإعلان. لذلك اسمحوا لي المضي قدما الآن والنقر فوق أدخل. تعطيني كثافة العمليات، 1، 2، و لحسن الحظ، انها 3. ولكن كما هو الحال دائما، واختبار برامج لا ينبغي أن تقلل إلى مجرد محاولة ذلك مرة واحدة. اسمحوا لي أن أحاول قضية الزاوية، مثل السلبية 1، أعطني 1، وأنه واحد يتحقق بها كذلك. وأنا ربما تريد القيام ببعض أكثر اختبارات صارمة، ولكن أنا جميلة حيث مريحة مع هذا في. حسنا، دعنا الآن نحاول برنامج آخر هذه المرة يستخدم قليلا من جملة أخرى. اسمحوا لي أن إنشاء ملف جديد. سأتصل هذا conditions0.c إلى خط مع بعض نموذج التعليمات البرمجية على الانترنت. واسمحوا لي أن نمضي قدما ونفعل وتشمل cs50.h، وتشمل stdio.h، في باطلة الرئيسي - موافق. هناك نذهب. لدينا النمطي لدينا معيار. وهذه المرة أنا ذاهب لأقول printf، "أود عدد صحيح، من فضلك،" فقط ل جعل موجه قليلا أكثر ودية. والآن أريد أن الحصول على الباحث من المستخدم. أنا ذاهب إلى نسميها ن هذه المرة، فقط لأن ن يبدو وكأنه العدد. getint، والآن، ماذا تفعل أريد أن أفعل معها؟ حسنا، إذا كان n هو - وأنا التكبير - إذا كان n أكبر من 0، أريد للقيام بما يلي - printf "أنت التقطت عددا إيجابية." آخر، وأنا ذاهب إلى كتابة printf "أنت اختار السلبية العدد. "حسنا. لذلك هذا البرنامج، على الرغم من أنني فعلت ذلك بسرعة، يبدو الحق ذو بناء جملة. اسمحوا لي أن أحاول ذلك. جعل حالة 0. يبدو لتشغيل. حالة 0، أدخل. دعونا تعطيه كثافة من 50. التقطت عددا إيجابية. دعونا نحاول مرة أخرى. حالة 0. السلبية 50. التقطت رقما سالبا. ولكن الآن، اسمحوا لي اختيار ما سنستمر استدعاء حالة الزاوية، والتي هي أكثر حالة مثيرة للاهتمام التي تعتقد قد تعطيك بعض المتاعب، 0. الآن، وأنا متأكد من هذا هو واحد من تلك الحالات الزاوية حيث صفر هو لا إيجابية ولا سلبية، لذلك بلدي البرنامج، وإن كان في بناء جملة الصحيح - أنه يجمع، فإنه يعمل - غير صحيح منطقيا. فما هو الإصلاح بسيطة هنا إذا أريد للكشف، وإذا كنت ترغب في التعامل مع ن يساوي 0 على حدة؟ حتى إذا كان n يساوي 0، ثم أريد أن أقول شيء من هذا القبيل printf "أنت التقطت 0." اسمحوا لي أن أحاول هذا الآن. اسمحوا لي أن أعود هنا، واضحة نافذتي، وترجمة. جلالة. خطأ واحد تولد. لكنني كنت تريد أن تحقق إذا كان n يساوي 0. ذلك مرة أخرى، وشيء آخر غبي لتعتاد على، علامة المساواة هي عامل التعيين. لذلك هذا هو في الواقع خطأ في ذلك، من الناحية الفنية، على الرغم من أن المترجم حماية لي من نفسي، وكنا من الناحية الفنية يمكن نسخ 0 في ن، والتي ليس هو ما أريد. أريد لاختبار من أجل المساواة مع تساوي متساوين. وهكذا قد تكون الآن بلدي أفضل حل. اسمحوا لي بإعادة حفظ هذا الواقع كما يقولون، conditions1، لتكون جديدة ومحسنة. وحتى الآن ما إذا كنت إعادة ترجمة هذا، من شأنه أن يجعل الظروف - يصيح - جعل conditions1 نقطة مائلة conditions1، أدخل، "أود عدد صحيح، من فضلك. "انا ذاهب للذهاب قدما ونوع 50. انها لا تزال جيدة. السلبية 50، لا تزال جيدة. 0، وأنه، في الواقع، الكشف عن التي التقطت 0. لذلك أكثر ما يمكن أن أقوم به الآن مع هذا؟ حسنا، يمكننا بالتأكيد القيام على نحو متزايد الأمور معقدة. ولكن ما أود أن أقترحه هو أننا في نهاية هذه المذكرة على هنا. إذا كنا سحب ما يصل هذا، سترى، ربما، رسم كاريكاتوري من المفضل لك حتى اليوم كنت قد أبدا لقد فهمت. وهذا عن نوعية من الضحك يجب أن تحصل مع CS النكات. ذلك أن نحو الحق. ولكن أكثر مقنع، ظننت أنني كنت تعطينا دعابة قليلا ليوم الاثنين. ولذا فإننا قد بدأت باستخدام أعداد صحيحة. لقد المشار إليها العوامات. قمنا حتى المشار إليها الزوجي، والتي، مرة أخرى، تعطيك أرقام بعد نقطة العشرية. ولكن اتضح أن يطفو و الزوجي، و، حقا، وأجهزة الكمبيوتر، في الأساس، لا يمكن أن تعبر عن بعض القيم على وجه التحديد. ونحن نعلم من دروس الرياضيات التي يمكنك يكون أي عدد من الأرقام بعد العلامة العشرية. ويمكنك حتى وضع شريط عمودي أن أقول هذه تستمر إلى الأبد. للأسف، لا يمكنك حقا تفعل ذلك في جهاز الكمبيوتر. وهكذا تنشأ حالات الزاوية. على سبيل المثال، افترض أنك القيام بشيء المالية. كنت تفعل الرياضيات مع النسب المئوية، و مع الدولارات والسنتات. وتلك سنتا لا خط يصل بالضرورة. كذلك، اتضح أن أجزاء من يمكن بدء البنسات لتضيف ما يصل عند على غرار مع نظام الكمبيوتر في مثل هذه الطريقة التي ذكية البشر يمكن الاستفادة. وأولئك منكم الذين لم يروا، فما استقاموا لكم فاستقيموا أود أن أعطيك دعابة 30 ثانية من فيلم رائع والمعروفة باسم مكتب الفضاء، والتي سوف ترسم صورة ل المشكلة يجب أن نعالج أول شيء يوم الاثنين. لو تمكنا من رفع حجم قليلا، وأنا أعطيك 30 ثواني الفضاء مكتب. [تشغيل الفيديو] -I يعني، لك، لم تظهر وحتى تحصل على إبقاء وظيفتك. -في الواقع، أنا التي يجري الترويج لها. -I يمكن برمجة الفيروس الذي يهمني مزق ذلك المكان من وقت كبير. حسنا، كيف يعمل؟ في كل مرة هناك المعاملات المصرفية حيث يتم احتساب الفائدة، وهناك الآلاف يوميا، وينتهي الكمبيوتر حتى مع هذه أجزاء من المائة. ولكن أنا لا أذهب ل تفعل أي شيء غير قانوني. غير قانونية؟ سمير، وهذا هو أمريكا. ونحن يجب أن أقسم على الله. ، وإذا كان لا أحد يعرف عن هذا ولكن لنا كل الحق؟ لا أفراد الأسرة، لا الصديقات، لا أحد. -بطبيعة الحال. متفق عليه. لاتقلق، رجل. لن أقول أي شخص سواء. [END تشغيل الفيديو] DAVID مالان: ولهذا، إذن، هو CS50، التي كان مكتب الفضاء، وأنها سوف جميع معنى يوم الاثنين. أراك ثم. المعلق: في CS50 المقبل، روب يعدل إلى كونها قبالة خطة وجبة هارفارد.