[Powered by Google Translate] [ROCK MUSIC] [MUSIC - "HAPPY TOGETHER" السلاحف] DAVID مالان: اليوم، نبدأ استكشافنا لل أساسيات علوم الحاسب الآلي وإدخال لدينا، الآن، في فن البرمجة، منها ما هو مجرد مثال واحد. ولكن في نفس السياق من حل المشكلات، ونعرف أن يوم CS50 لغز التقليدية غدا. إذا كنت قد لا RSVPed بعد لهذا الحدث، يمكنك الذهاب إلى cs50.net/rsvp. يمكنك جلب فرق من اثنين أو ثلاثة أو أربعة. وسوف تواجه مشاكل لك مثل واحد رأيت هناك في البداية. جميع مشاكل جديدة هذا العام إذا كنت اشترك العام الماضي، وكنت سوف تكون هناك فرصة لكسب بعض ثم بجوائز فريدة قيمة. من بينها، وي وبعض شهادات الهدايا وما شابه، كل ذلك في الوقت شنقا مع الطلاب والزملاء CS50 والبيتزا والفيسبوك. أكثر من ذلك على أن غدا إذا كنت ترغب. ثم وهذا هو CS50، لأولئك منكم الانضمام إلينا لل أول مرة. ونعلم أن يتم تحديد هذه الدورة بشكل خاص للحصول على لكم من خلال هذه الدورة حتى نهايتها النهائي، وهي النقطة التي سيكون ليس فقط لفهم هذه أساسيات علوم الحاسب الآلي، ولكن سيكون لديك هذه مجموعة من المهارات العملية جدا التي يمكنك اتخاذها ثم العودة إلى قسم الخاص بك، سواء كان ذلك العلوم الهندسية، الرياضيات التطبيقية، والعلوم الفيزيائية، الطبيعية العلم، أو ما شابه ذلك. في الواقع، ما هو مثير جدا عن علوم الكمبيوتر هذه الأيام هو ان يكون عادلا ينطبق ذلك على جميع أنواع المجالات. وعلى الرغم من اليوم، ونحن سوف الصفر فقط سطح تقليدية جدا لغة البرمجة المعروفة باسم C، سنقوم ننظر بدلا من ذلك في ما يسمى خدش، مع شيء الذي تم تنفيذه أن قصة حب من جانب واحد من الكعكة الخاصة بك أسلافه في السنوات الماضية، لسرد القصص، لإنشاء الألعاب، لخلق الفن التفاعلي، والبدء فعليا التفاف لدينا العقول حول بعض من بنيات الأساسية التي تكمن وراء البرمجة ولكن في السياق، كما سترى، من أن ناهيك عن مخيف، وهذا أقل بكثير غامضة، من سترون قبل فترة طويلة. وندرك، أيضا، لأولئك منكم الانضمام لنا هذا فقط الفصل الدراسي، والعبارات التي انتهى بنا محاضرة يوم الاربعاء، أنها ليست في غاية الأهمية حيث ينتهي بك الأمر بالنسبة إلى الخاص زملاء الدراسة في هذه الفئة، ولكن أين كنت، في نهاية الفصل الدراسي لل في الأسبوع 11، في نهاية المطاف بالنسبة لنفسك الحق يومنا هذا. ذلك دون مزيد من اللغط، وهذا هو الجدير بالذكر أيضا أن تلك أقل راحة، في مكان ما بين هذه، هي أيضا، من خلال تصميم هذه الدورة، وليس في أي عيب وجها لتلك أكثر راحة فيما القادمة إلى هذه الفئة. كما سترى خلال الأسابيع القادمة، لدينا مختلفة المسارات المتباينة لخلفية عودة، لتلك المقاطع أقل راحة وأكثر راحة، وتلك في مكان ما بين بين. كما سترى في نهاية هذا الاسبوع والاسبوع المقبل، واثنين من إصدارات مجموعات الأكثر مشكلة في الإصدار القياسي، وذلك على حد سواء القراصنة يمكنك اختيار جميع الذاتي في الطريق الذي كنت هي الأكثر راحة. حتى اليوم، ونحن الغوص في هذه البرمجة دعا اللغة الصفر. انها لغة البرمجة الرسومية، ومع ذلك لديه نفس ملامح بعض من لغات المستوى العالي سنقوم استكشاف في وقت لاحق في فصل دراسي، من بينها وC جافا سكريبت وPHP. لكنه سيحتاج للسماح لنا لتجنب بعض الانحرافات في وقت مبكر يوم من لغوي، وأشياء مثل الفاصلة المنقوطة، الأقواس، وتفاصيل غامضة الأخرى التي، للوهلة الأولى، ليست مجرد في كل اهتمام فكريا وتميل إلى الحصول على على طول الطريق من بعض الفهم الأساسي. من حيث الهيكل الآن دعم قدما، أدرك هذا أداة، ناقش CS50، والتي سوف تكون مرتبطة على البرنامج الدراسي الموقع في وقت لاحق اليوم، هو منتدى للنقاش عبر الإنترنت في التي عليك أن تكون قادرا على طرح الأسئلة عن بعضها البعض و الموظفين، وانها أيضا أداة، كما سنرى الأسبوع المقبل، التي سوف نستخدمها في integratedly جدا ساعات العمل كذلك. في الواقع، ساعات العمل تبدأ يوم الاثنين، وبصراحة، أول أسبوع من ساعات العمل هو مفتاح منخفضة إلى حد ما. لا أعتقد أنك سوف تجد كل ما خدش غير قابلة للوصول. انها بالأحرى تحتاج إلى تفسير، كما سنرى، وذلك ما سنستخدم ذلك لهذا اليوم لاستخراج بعض الأساسية التي من شأنها أن الأفكار، ثم، لا تزال قائمة في جميع أنحاء بقية الفصل الدراسي. ولكن بداية من يوم الاثنين، الساعة 8:00 مساء 23:00 من خلال أن تكون ساعات العمل في أننبرغ على كسر الدماغ. وسوف يبدأ الاثنان باجتزاء هذا المساء، في وقت ما لذلك هذا عطلة نهاية الأسبوع، انتقل إلى cs50.net/section، وسوف يطلب عدد من الأسئلة. من بينها، كيف تصف الخاص بك مستوى الراحة اعتبارا من اليوم؟ ليس هناك الصلب، حكم سريع على النحو الذي هو فيه دلو. انها مجرد نوع من الشيء الذي ربما كنت أعرف إذا كنت من بين تلك التي أقل راحة أو خلاف ذلك. والآن، كثروو. مواصفات مجموعة المشكلة لهذا الأسبوع، وكلاهما القياسية والطبعة القراصنة على حد سواء، غير متواجد في cs50.net اعتبارا من الآن. وسترى أن أول هذه الطبعات، في ويرافق الإصدار القياسي في كل أسبوع، وذلك شيء نحن قاد الدورة الكلمة تجول الرمز، من قبل أحد زملاء التدريس بالطبع لتوجيه لكم من خلال، توفير نصائح على، وتحصل في السير على طريق خاص عندما يتعلق الأمر لبدء هذه المجموعات المشكلة. حتى مع كل من هذه المشكلة يحدد، إذا كنت ترغب في أي وقت لنفسك أين أبدأ، تبدأ مع هذه كثروو. في واقع الأمر، اسمحوا لي أن أعرض Zamyla تشان، وهذا زميل التدريس العام الذي سيقود كل واحدة من هذه المواضيع الإرشادية. Zamyla؟ [تصفيق] ZAMYLA CHAN: أوه، مرحبا، والجميع. اسمي Zamyla. أنا جديد الهندسة الذين يدرسون في البيت ينثروب. ولكن أحاول ويصلح ما يصل علوم الحاسب الآلي المقررات وأنا يمكن، وهذا هو السبب أنا متحمس جدا أن تقود هذه كثروو العام. كثروو، بالنسبة لي، كانت جزءا أساسيا من بلدي CS50 الخبرة. خلال الإرشادات التفصيلية لكل مجموعة-P، سوف نذهب من خلال المشكلة تعيين معا، تبدو أكثر المشاكل، نوع من تفرق بينهما يصل الى لدغ يمكن التحكم فيها. سأعطيك نصائح، وتقنيات، من أجل الحصول على من خلال الحصول على وبدأت. وآمل أن أراكم جميعا في المواضيع الإرشادية. إذا لم تتمكن من جعله في الشخص، ثم يرجى القيام لحن في الانترنت. DAVID مالان: ممتاز. شكرا لكم، Zamyla. بحيث يدرك كثروو هي، في الواقع، يوم الجمعة بعد الظهر، ولكن هذا هو عمدا حسب التصميم بحيث حتى لو كنت لا ترغب في حضور الطبقة يوم الجمعة بعد الظهر، وسوف يكون ما يصل الفيديو جميع بسرعة أكبر على مدى في عطلة نهاية الأسبوع. بحيث يدرك cs50.net سيكون كل من لZamyla كثروو. وأنه لا يوجد تاريخ اليوم والوقت، 3:00 PM، Harberd قاعة و 104. وأعدت بعض الزملاء التدريس أيضا بعض الملاحظات بالنسبة لك غيابيا لتعطيك قليلا من المنظور على ما خبرتهم والقادمة الى الخروج من CS50 كان مثل. حتى لو استطعنا تحت أضواء خافتة لمجرد لحظة، وأنا أعطيك بعض الموظفين في CS50. JACKSON STEINKAMP: أخذت CS50 العام الماضي كطالبة في تقع، وأنه فجر ذهني تماما. لم يسبق لي أن اتخاذ أي الطبقات البرمجة من قبل، وجاء في أبدا مع أي علم الحاسوب تجربة على الإطلاق. وعادل، سمعت ضجة حول الفئة و قررت أن أعتبر. JULIA MITELMAN: كان حقا متعة، وإشراك حقا. ما زلت، حتى يومنا هذا - I مؤخرا رأيت أن القرص المرن الذي قدم لنا ديفيد لدينا اليوم الأول من المحاضرة. كنت قد علقت على الجدار بلدي. هذا هو على الارجح قليلا نردي، لكنني تشبثت في على بلدي الجدار خلال فئة للتذكير كيف كان باردا. TRAVIS DOWNS: أنها محرجة جدا. JACKSON STEINKAMP: علم الحاسوب هو شيء أن تحاول حتى لو كنت ليست واحدة ل العلوم التقليدية. انها تجربة خاصة بها، وسوف CS50 تأكد من أنك دعما جيدا من خلال ذلك مع جيشها حقيقية من TFS. ALI NAHM: أنا أخذتها كطالبة، ولذا فإنني قدم الكثير من الأصدقاء الجدد. كما أنني حصلت على عرض لهذا التركيز كله و المدرسة بأكملها الهندسة، ولذا فإنني أوصي به وأرحب بكم في عائلتنا CS50. يانيف YACOBY: CS50 يعلم فقط كيفية استخدام أدوات التي يمكن الوصول إليها على نطاق واسع. كل ما تحتاجه هو جهاز كمبيوتر محمول، أنت بحاجة إلى متصفح ويب، ويمكنك بحاجة إلى أن نتعلم لكتابة بعض التعليمات البرمجية، ويمكنك حقا بناء الأشياء الرائعة. KAREN شياو: أنها مجرد حتى تبرد لتكون قادرة على تقديم شيء ويكون الناس استخدام اليها و ليرى الناس ذلك، وهذا الذي ما أحب حقا عن ذلك. TIM ماكلولين: - الإحساس بالانتماء للمجتمع، كما أعتقد، في هذا أكثر من أي دورة أخرى لقد اتخذت حتى الآن بالطبع. كنت لا مجرد أخذ آخر - كنت لا ملء وهناك شرط آخر. كنت لا مجرد الذهاب الى المحاضرات والذهاب إلى الباب. ولكن كنت تفعل طن من الاشياء التي هي كل شيء عن كل شيء عن البرمجة والتكنولوجيا، ولكن لم يحدث ذلك تشعر حقا مثل فئة أكثر من مرة. DOWNS TRAVIS: وفي اليوم الأول، وزعوا الكعكة، و على الفور تم بيعها I. JACOB بريت: الحلوى مجانا والبيتزا. ZAMYLA CHAN: - بغض النظر عن مستوى اهتمامك، وأعتقد أن CS50، سيكون لديك متعة، وعليك أن تكون فكريا حفز. MARK-SMITH GROZEN: انها دائما طرفا في الصف، وانها حزب كل ليلة تعمل على مجموعة ف الخاص بك. JACKSON STEINKAMP: في كل مرة الانتهاء من مجموعة المشكلة، عليك سوف تشعر وكأنك الانتهاء من المشروع. MELISSA NIU: كان طالبة سنة، وكنت فعلت التسوق. كان لي بلدي أربع فئات جاهزة، وكنت في أننبرغ. وأنا تصطدم بها صديق، ويقول إنه، مهلا، أنا التسوق ودعا هذه الفئة CS50، ويجب أن تأتي معي. انتهى مع أن سقوط، وبعد تلك الفئة، وأنا ربما يعتقد انا ذاهب الى طفيفة في CS. ولكن أنا هنا، بعد ثلاث سنوات، لا تزال تدرس الكمبيوتر العلم والقيام فعلا على أنها كبيرة، وأنا أحب كل لحظة من ذلك. ROB BOWDEN: ليس لدي فكرة. ALI NAHM: دعونا نرى. MELISSA NIU: الجنون. SPEAKER 1: أشعر أنني سأكون مبتذلة جدا. أود أن أقول فقط، مثل، رهيبة. يانيف YACOBY: سهولة. JACOB بريت: الحلوى مجانا والبيتزا. TRAVIS DOWNS: لا يمكن رفض فئة من أيدي الكعكة. TIM ماكلولين: الطاقوية. فيبول شيخاوات: الأساسية. ROB BOWDEN: اسمحوا لي أن التفكير في الجواب. أعتقد أنني حصلت على شيء. يا الله. نعم، اسمي روب بودين، وهذا هو CS50. [تصفيق] DAVID مالان: كل الحق، لذلك دعونا نبدأ لرسم صورة من الاتجاه الذي يمكننا أن نذهب، ودعونا نقدم هذا المفهوم هنا يعرف شبة الكود. حتى شبة الكود ليست البرمجة اللغة في حد ذاته. انها لا شيء التقنية في حد ذاتها، ولكنها لمجرد نوع من عام سيلة للتعبير عن نفسك على وجه التحديد إلى حد ما، حسابيا إلى حد ما، إلى حد ما إجرائيا، ولكن من دون الحاجة إلى القلق حول ما كنت معربا عن اللغة نفسك فيه. انها نموذج للبعض الإنجليزية ولغات البرمجة مع الذي يحدث ليكون على دراية، لذلك يمكننا أن نبدأ كتابة هذا النوع من الاشياء ونحن نمضي. وفي الواقع، يمكن أن جوزيف، I اقتراض ما يصل إلى أن يكون على خشبة المسرح الكاتب هنا؟ لقد ذهبت إلى الأمام وهنا مقدما نسيت لوضع على بعض الجوارب اليوم، وسوف يكون هذا من بين أكثر لدينا أمثلة سخيفة. الآن، وأنا بحاجة لكم أكثر من هنا. سأفعل الجزء الجوارب. حتى هنا لدينا لوحة الصفر قليلا. هذا هو حرفيا برنامج TextEdit فقط في نظام التشغيل Mac. نحن لن فعلا لكتابة برنامج runnable، ولكن ونحن في طريقنا فقط لبدء رسم معالم القائمة على شبة الكود على بعض محامي اللي تقدم لي هنا. حتى هنا بلدي كومة من الجوارب في البيت. ليس لدي الجوارب على عندما استيقظ في الصباح، ونحن الآن تحتاج إلى كتابة برنامج، خوارزمية من نوع ما، والتي للحصول على هذه الجوارب على قدمي. وعلى طول الطريق، دعونا نرى ما اذا كنا على رحلة، أو لقاء، بعض الأفكار التي كنت ستكون لدينا للبدء التفكير بجدية أكبر عندما البرمجة لئلا البرامج لا تتصرف تماما على النحو المنشود. لذلك أنا أجلس هنا. أنا عندي كومة من الجوارب بلدي. ما هو أول شيء كائنا من شأنه معقولة الإنسان القيام عندما يكون الهدف هو وضع على زوج من الجوارب؟ للشخص أن تعطيني خطوة واحدة، وخطوة واحدة فقط. نعم؟ AUDIENCE: الانحناء. DAVID مالان: الانحناء، حسنا. الخطوة الثانية. الخطوة الثانية. AUDIENCE: التقط جورب الخاص بك. DAVID مالان: التقط جورب الخاص بك. حسنا، حتى هنا غموض طفيف، وهذا هو واحد من أول حجر عثرة أن نحن من المفترض أن تعمد تواجه هنا. انها قليلا غامضة، بحيث تنتقي حتى جورب الخاص بك. غرامة، أنا سآخذ هذا واحد، ولكن جهاز كمبيوتر، وتحقيق في مجرد بت، لن يكون هذا النوع من غريزة الإنسان إلى مجرد اختيار أقرب واحد. ونحن في طريقنا إلى أن تبدأ، قبل وقت طويل، معربا عن أنفسنا أكثر دقة. كل الحق، لذلك الخطوة الثانية هي التقاط جورب الخاص بك. سنقوم أعتبر. الخطوة الثالثة. في ظهره. AUDIENCE: العثور على أزواج متماثلة. DAVID مالان: البحث عن أزواج متماثلة. حسنا، لذلك هذا أمر جيد. واضطررت الى اختيار هذا جورب. وبالتالي فإن الهدف هو العثور على جورب المطابقة، والآن، ولكن ما يعني ذلك؟ A معقولة الإنسان الراهن، يشبه إلى حد كبير يوم الاربعاء عندما أنا فقط يعرف كيفية العثور على مايك سميث في دفتر الهاتف، مجرد نوع من ذهبت مع غريزة. ولكن هنا، فإنه من الواضح أن هذا جورب هنا، ولكن في جهاز كمبيوتر لن تكون غريزية ذلك. A الكمبيوتر وستكون لدينا مجموعة من البتات، ونحن ناقش يوم الاربعاء، وهي تلك نظمت بطريقة ما في الذاكرة. ولكن النقطة هي أن الكمبيوتر لديه القدرة فقط لننظر إلى الأمور في وقت واحد، في واقع الأمر، حتى ونحن البشر - على الرغم من أنه يشعر وكأنه رميت نظرة أسفل وانقسام في وقت لاحق الثاني الذي نعرف أين هو جورب، ذهني وعيني يفترض سريعة لم المقشود من هذه الجوارب، ومغلق ثم إلى واحد في المسألة. إذا كان الأمر كذلك نكون جميعا أكثر المتعمد الآن على أنه كمبيوتر، كيف يمكنني العثور على هذا الزوج مطابقة؟ حسنا، لدينا تكرار. علينا أن حلقة ربما أكثر من هذه الفوضى من الجوارب على حيث الكلمة أقول شيء من هذا القبيل لكل جورب، استلامه يصل، وإذا كان نفس الشكل والحجم وغيرها من واحد، THEN نقطة، نقطة، نقطة، وسوف نواصل القصة. لذلك لكل جورب، ولذا فإنني التقاط هذه واحدة. I تحقق هذا يساوي هذا واحد. لم تكن كذلك، ولذلك وضعت جانبا إلى جنب. ثم I تكرار مرة أخرى. هذا واحد هو المساواة؟ لا، انها ليست، لذلك أنا وضعت جانبا. هذا هو واحد؟ لا. هذا واحد؟ لا، وهكذا دواليك. ثم أخيرا، ونأمل، وسوف تواجه هذه جورب هنا. إذا كان الأمر كذلك فإنه من نفس الشكل والحجم وأعتبر. والآن، ماذا سيكون خطوتنا التالية هنا؟ نعم؟ AUDIENCE: تحديد الحق من اليسار. DAVID مالان: حسنا، وتحديد اليمين واليسار، لذلك لحسن الحظ، هذا النوع من الأعمال. لقد تلبس A متماثل قليلا، أو أنا فقط منهم بهذه الطريقة. حسنا، حتى لقد حددت اليمين. والآن، قبل أن نشرع، اسمحوا لي أن أشير إلى ما يوسف كما تم القيام هنا نوع من مبرمج متمكن. ذلك مرة أخرى، وليس هناك طريقة واحدة للقيام بذلك، ولكن بعد فقط ترقيم الأسطر، بدأ جوزيف بالفعل للقيام بذلك نوع من المسافة البادئة. في الواقع، وهذا هو اصطلاح شائع جدا في البرمجة، حيث عندما تفعل شيئا متكررة، حلقات الاسلوب، كما مما يعني أننا مع العبارة الإنجليزية "FOR EACH جورب، "الاتفاقية في شبة الكود و، كما سنرى، لغات البرمجة العادية، هو بادئة للتو. ضرب شريط الفضاء عدة مرات، وضرب مفتاح Tab أو ما شابه ذلك، بحيث متداخلة تحت "لكل جورب" هو جزء من الاشياء التي عليك القيام به نتيجة لتلك الحلقة. ذلك أن كل ما نقل غويا. وفي الوقت نفسه الآن، "اذا كان نفس الشكل والحجم،" في والمقصود أن "أعتبر" يعني فقط المزيد هذا هو الشيء الوحيد الذي يجب عليك القيام به إذا كان هذا الشرط، إذا كان هذا الفرع، أن مفترق طرق، هو في الواقع صحيح. حتى الآن هنا، ونحن في الخطوة الرابعة، وتحديد اليمين واليسار. لقد حددت الحق. أعطني الخطوة الخامسة. وتقنيا، يمكن أن نسميه حقا للحصول على كل شيء - يجب ترقيم جميع خطوط ربما إذا ونحن في طريقنا للقيام بذلك. JOSEPH: [غير مسموع] DAVID مالان: (غير مسموع)؟ حسنا، حسنا، حسنا، سوف نفعل ذلك طريقك. كل الحق، لذلك الخطوة الخامسة، وكيف نفعل لبس اليمنى؟ كيف يمكننا المضي قدما المقبل، هنا؟ نعم؟ AUDIENCE: ارفع الساق اليمنى. DAVID مالان: ارفع الساق اليمنى، حسنا. الخطوة السادسة؟ بسرعة. نعم. AUDIENCE: إبحث عن نهاية مفتوحة للجورب. DAVID مالان: حسنا، ابحث عن نهاية مفتوحة للجورب. على ما يرام. حتى هنا، وبصراحة، فإن غريزة شائعة جدا أن يكون مجرد وضعت على لبس اليمنى، ولكن هذا هو أيضا غامض إلى حد ما. إلا إذا كان الكمبيوتر أو الإنسان يعرف تماما ما يعنيه ذلك، انها لن تكون لتنفيذ ذلك، حتى هنا، لقد العثور على افتتاح سهم. الخطوة السابعة؟ AUDIENCE: المس أصابع قدميك. DAVID مالان: أصابع اللمس. حسنا، لذلك نذهب الآن - حسنا، انا ذاهب الى اتخاذ بعض الحريات هنا. شكرا. الخطوة الثامنة؟ وضع على الجورب. حسنا، لذلك أنا الآن، أعتقد أننا نقترب بما يكفي لاتخاذ نوع من هذا واحد في المنزل. كل الحق، لذلك هذا ترتفع. أنا سآخذ بعض الحريات مع ما يعنيه، في الواقع. وضع جورب على. حسنا، الآن تسعة الخطوة؟ AUDIENCE: ضع القدم إلى أسفل. DAVID مالان: شكرا لك. الخطوة التاسعة، وضع القدم إلى أسفل، والآن، يمكن أن نكرر. يفترض ذلك، يمكننا أن نذهب الآن إلى الخطوة 10 ويقول تحديد غادر جورب، ولكن هذا يفترض القيام به بالفعل. وحتى ذلك الحين، لا أستطيع نوع من تكرار هذه الخطوات. ولكن هذا النوع من يطرح السؤال. من قبل، وآخر مرة أردنا أن يكرر ما، ونحن فعل ذلك تكرارا، مرارا وتكرارا، وFOR كل حلقة إذا جاز التعبير. فمن المنطقي لاستخدام حلقة من أجل التعامل مع كل من اليسار واليمين جورب؟ لأنه يشعر مثل هذه العمليات هي الى حد كبير متطابقة باستثناء حقيقة أن واحدا يبدأ من هنا واحد يبدأ من هنا؟ هل نحن حلقة، أم أننا نستمر خطوات الكتابة 10 و 11 و 12؟ AUDIENCE: حلقة. DAVID مالان: حسنا، لذلك حلقة. أنا قد فعلا وقال تبقي فقط على الذهاب. فلماذا هذا الحال؟ حسنا، هذا هو في الواقع أول من الواضح عدم دينا قرارات التصميم، والواقع، واحدة من المقاييس التي سوف نبدأ في تقييم، لأنفسنا ولكم، في جودة البرنامج هو مدى مصممة بشكل جيد هو عليه. فعلت كمية العمل الضروري الحد الأدنى من تتمكن من إنجاز المهمة بسرعة أكبر، سواء من حيث وقتك أو من حيث الوقت للكمبيوتر تشغيل؟ كم عدد عمليات لا يلزم لتنفيذ؟ يمكن القول بذلك، وهذا هو فرصة للحلقة بسبب بمجرد أن تبدأ النسخ واللصق، وجوزيف فعال سوف تبدأ في فعل في لحظة، وكنت نوع من إضاعة الخاص الوقت، وكنت كونها معبرة بشكل مضاعف. ولكن في نفس الوقت، وهذه هي في الحقيقة مجرد الخاصتين الحالات، اليسار واليمين. وحين قبل، وأنا قد يكون 10 أو 20 أو أكثر في الجوارب كومة، بمعنى أنه يجعل بالتأكيد ليس لديهم من 50 خطوط رمز التحقق من هذا القول جورب، ثم المرحلة التالية، ثم المرحلة التالية. هنا، انها قليلا أقل وضوحا، بل واقترحت أن يمكن أن نذهب في اي من الاتجاهين. يمكن لدينا إما أن حلقة، على الرغم من أنه فقط حلقات مرتين، أو يمكننا ببساطة نسخ ولصق قليلا هنا من أجل انجاز هذه المهمة. ولكن هذا البرنامج هو عربات التي تجرها الدواب، إذا جاز التعبير. قد تكون هناك بعض الأخطاء، أخطاء، أو حالات الزاوية، وذلك ل الكلام، وأننا لم نتوقع حقا. ذهب حرج هذه المرة، ولكن ما يمكن أن تقع فيه أخطاء أثناء تنفيذ هذا البرنامج؟ AUDIENCE: ليس لديك أي الجوارب. DAVID مالان: إذن لن يكون هناك أي الجوارب هناك على الإطلاق. لذلك دعونا النظر في هذه الحالة الزاوية. حتى لو تمكنا من تمرير ما يصل الى خطوة واحدة، خطوة حتى واحد كان الانحناء، بحيث يتحقق بها. الخطوة الثانية، والتقاط جورب، ولكن العثور على جورب ثم مطابقة، تحديد الصحيح. نحن نوع من جعل في مجمله مجموعة من الافتراضات، وهذا هو، بصراحة، لماذا تعطل برنامج في بعض الأحيان. إذا كنت قد قدمت، مبرمج، افتراضات معينة، مثل بالتأكيد هناك سيكون هناك بالتأكيد الجوارب أو يجري أن تكون الذاكرة المتبقية في الكمبيوتر، وبالتأكيد هناك يجري أن تكون مساحة القرص المتبقية على القرص الصلب - حسنا، إذا قمت بإجراء هذه الافتراضات، وهذا ليس، في الواقع، واقع، الذي يعرف أحيانا ما للكمبيوتر تنوي القيام به؟ وأحيانا، عندما تحصل على كرة الشاطئ أو الغزل المجمدة ويندوز أو ما شابه ذلك، وهذا بالضبط لبعض لم تكن تتوقع مبرمج هذه الحالات ما يسمى الزاوية. كان يمكن توجيهه ماذا الخطأ في هذا البرنامج؟ نعم؟ AUDIENCE: ليس لديك الحق في الساق والساق اليسرى. DAVID مالان: قد حسنا، لم يكن لديك كل من الساق اليمنى وعلى الساق اليسرى، وهكذا قد لا يكون هذا البرنامج عالميا المعمول بها. الآخرين؟ AUDIENCE: أنت قد التقطت جورب اليتيم. DAVID مالان: I قد التقطت جورب اليتيم، لذلك غير مطابقة جورب له فقط لا لأنني قمت الأشقاء فقدت، انها أمعن فيه، انها لا تزال في غسل، أو ما شابه ذلك. حتى هذا أيضا، لم حقا تم التعامل معها. نعم؟ AUDIENCE: قد يكون لديك بالفعل على الجوارب. DAVID مالان: I قد يكون بالفعل على الجوارب. لم أكن في الواقع تحقق. إذا لم يكن لديك على الجوارب، ثم المضي قدما للقيام خط واحد واثنين. ويمكن أن يحدث. كنت تغفو مع الجوارب الخاصة بك على وما شابه ذلك، حتى ذلك، أيضا، قضية الزاوية معقولة جدا. وربما الآخر؟ AUDIENCE: الخف هو الداخل الى الخارج. DAVID مالان: إذن هو جورب الداخل الى الخارج، وكذلك فعل ونحن لا خطأ التحقق، وباختصار. لم نكن معرفة ما اذا كان حالة العالم هو كما نتوقع. نحن لم تحقق مما إذا وجدنا فعلا ما تبحث عنه. وعلى الرغم من هذا هو نوع من مثال مثير للسخرية التي تنطوي على الجوارب، في نهاية المطاف، وهذا هو بالضبط نوع من عقلية تحتاج إلى أن يكون أثناء كتابة البرامج، حتى في خدش وكذلك في C، في جافا سكريبت، PHP في، لأن خلاف ذلك، سوف يحمل البرامج يعادل هذا الغزل كرة الشاطئ أو مجرد تسفر النتائج غير دقيقة. الكثير من الشكر هنا ليوسف الكاتب لدينا. [تصفيق] DAVID مالان: حسنا، فما هو، في الواقع، برنامج كمبيوتر؟ حسنا، دعونا نلقي نظرة سريعة على ممثل واحد هنا. لذلك هذا هو برنامج مكتوب بلغة C C. دعا هو يتم بناؤها القديم إلى حد ما هذه الأيام، ولكن العديد من أحدث لغات على أعلى من ذلك. في الواقع، PHP، واحدة من اللغات ذات الشبكة سنقوم استخدام نحو نهاية المدى، ونفسها ما يسمى مترجم، وهو برنامج مكتوب في C، ولكن أكثر على ذلك في عدة أسابيع من الآن. ولكن هذا البرنامج، وهذا هو ما يعنيه أن إرسال بريد البرنامج، وإن كان في غاية البساطة. لدينا بعض خفي إلى حد ما في بناء الجملة هنا، ولكن يمكنك تخمين ربما، حتى لو كنت لم مبرمجة من قبل، ما هذا البرنامج لا. في الواقع، أنا لا أعرف ما هو printf، ولكن بالتأكيد طباعة تستحضر فكرة طباعة شيء ما. ونعم ذلك، وهذا البرنامج هو الذهاب في نهاية المطاف لطباعة عبارة "مرحبا، العالم". الآن، إذا كان لديك جهاز ماكنتوش أو كمبيوتر شخصي أو جهاز كمبيوتر لينكس، خلاف هي، على الأقل إذا قمت بتحميل بعض بحرية البرامج المتاحة، كان يمكن لك كتابة البرامج على الكمبيوتر المحمول الخاصة لبعض الوقت الآن. على نظام التشغيل Mac OS، على سبيل المثال، هناك برنامج يسمى هذا محطة التي تأتي مع نظام التشغيل Mac، التي عادة ما تكون في الخاص المجلد المرافق، وأنه يفتح عموما سوداء و أبيض أو نافذة الأبيض والأسود الذي لديك يدفع التي يمكنك كتابة الأوامر. لذلك هذا هو في الواقع ما يذكرنا أجهزة الكمبيوتر اعتادت ان تكون قبل المستخدم الرسومية جاء اجهات، واجهات، جنبا إلى جنب. الآن، في ويندوز، لديك آلية مماثلة في شكل من موجه الأوامر. ولكن ما انا ذاهب الى القيام به هنا هو فتح، دعنا نقول، برنامج TextEdit مرة أخرى، وبالتالي فإن البرنامج نفسه كنا لاستخدام شبة الكود قبل لحظة، وانا ذاهب الى المضي قدما و كتابة برنامجي الأول. وتشمل stdio.h، أيا كان ذلك يعني، وكثافة العمليات الرئيسية الفراغ، أيا كان ذلك يعني، وبعد ذلك في منتصف هنا، printf ("مرحبا، العالم."). واقتبس فوق إغلاق، إغلاق PAREN، منقوطة. الآن انا ذاهب الى المضي قدما وضرب القيادة فقط-S. أنا ذاهب المضي قدما وكما حفظ هذا hello.c، وبالتالي فإن الاتفاقية في عالم البرمجة C هو اسم الملف نقطة ج. انا ذاهب الى وضعت للتو في الدليل الرئيسي جون هارفارد، هنا، انقر فوق حفظ، والآن أنا ذاهب للذهاب الى هذا نافذة طرفية، وهو مرة أخرى هذه المطالبة أبيض وأسود أين يمكنني تنفيذ الأوامر. لا أستطيع تشغيل البرامج عن طريق كتابة اسم، وليس من قبل النقر المزدوج فوق الرموز في بالمعنى المعتاد. ولكن الشيء هو حول C هو أن لغة C أود أولا ودعا شيء يأتي في هذا الشكل، وشفرة المصدر. شيء يبدو قليلا مثل الإنجليزية ولكن هو بالتأكيد أقل مثل الإنجليزية من شبة الكود يوسف منذ لحظة. انها أكثر من ذلك بقليل غامضة. يبدو أن تتبع بعض أنماط أو قواعد. حقيقة أن لدي الأقواس المتعرجة، الفاصلة المنقوطة، ونقلت، جاء الأقواس الزاوية، يبدو وكأنه جهاز كمبيوتر مع هذا نوع من اللغة. ولكن إذا ذهبت الآن إلى هذه النافذة الطرفية، هل يمكنني تشغيل الأمر الذي يحدث لتحويل هذا الرمز المصدر دعا شيئا رمز الكائن. أن يجري لتحويل اللغة الإنجليزية إلى بناء جملة مثل الأصفار ومنها، نفس أنواع الآحاد والأصفار ونحن تحدث عن الاربعاء. الآن، انا ذاهب لتشغيل أمر دعا ضجيج. المزيد عن هذا في الأسابيع المقبلة، ولكن هذا البرنامج مع والتي يمكن تحويل I hello.c في مجمله مجموعة من الآحاد والأصفار و. الآن، لقد كنت تشغيل هذا الأمر. لقد تشغيل ضجيج، ثم قال لي نفسك على تشغيل هذا الملف دعا hello.c، الذي خلقته قبل لحظة، و لا شيء يبدو أن يحدث. ولكن في الواقع، إذا كنت مطعون حول الدليل بيتي، وأرى أن هذا a.out برنامج يسمى بغباء موجود الآن. هذا هو مجرد الاسم الافتراضي لبرنامج عند كتابة في C. يمكننا تجاوز هذا في نهاية المطاف، ولكن هو في a.out اسم البرنامج I تحويلها إلى مجرد أصفار ومنها. والآن بعد أن الأصفار انها ومنها، ماك بلدي، في هذه الحالة، أو ويندوز الخاص بك PC، يمكن فهم هذه البتات، تلك والأصفار منها. وذلك عندما ضرب أدخل، أرى "مرحبا، العالم!" ولكن هذا قليلا عربات التي تجرها الدواب. أنا لم أقل جدا "مرحبا، العالم: هوائي: -! jharvard". الهواء اسم جهاز الكمبيوتر الخاص بي. Jharvard هو اسم حساب، وذلك ما لم بوضوح I حذفت من البرنامج؟ نوع من انقطاع الخط. لم أكن ضرب أو ما يعادل أدخل حرف إرجاع، وهذا هو، مرة أخرى، شهادة على حقيقة أن أجهزة الكمبيوتر يمكن تفعل إلا ما كنت اقول لهم القيام به. وحقيقة أنني لم يقل الكمبيوتر نقل المؤشر إلى السطر التالي - حسنا، انها بالتأكيد لن تفعل ذلك فقط بالنسبة لي بوقاحة. إذا كان الأمر كذلك أعود إلى برنامجي، ويقول I \ N - حتى \ ن، كما سنرى قريبا، هو طريق تمثل أشياء غريبة مثل حرف سطر جديد، وأشياء التي من شأنها أن يكون الأمر خلاف ذلك نتيجة ضرب المفتاح ENTER. لكن في الوقت الراهن، ونعرف فقط من شأنها أن تصل إلى المفتاح Enter جعل مجرد رمز لنا تبدو غريبة، لذلك قررت العالم، وانت تعرف ما، في إبقاء الأمور على أجمل، بهدف الحفاظ على خط واحد، دعونا نقول فقط \ n يمثل سطر جديد. اسمحوا لي أن إعادة حفظ الملف الخاص بي، والعودة إلى إطار المحطة الطرفية، و إعادة تشغيل a.out، أدخل. عربات التي تجرها الدواب لا تزال، ولكن لماذا؟ AUDIENCE: [غير مسموع] DAVID مالان: نعم، لذلك أنا بحاجة إلى إعادة ترجمة عليه. ذلك لترجمة برنامج يعني فقط تحويله من مصدر رمز لرمز الكائن شفرة المصدر، إلى أصفار ومنها. الآن، مجرد أن أنا ضربت حفظ في هذا لا يوجد لديه برنامج TextEdit تحمل على تلك الأصفار ومنها لأنني بحاجة أولا إلى تل ضجيج مهلا، لقد غيرت هذه الأسطر من التعليمات البرمجية، في مصدر التعليمات البرمجية. تحتاج إلى تجديد a.out. لا شيء يبدو أن يحدث، ولكن في الكمبيوتر، في سطر الأوامر، إذا جاز التعبير، عندما لا يحدث أي شيء، وهذا يعني عادة كل شيء على ما يرام. عندما يكون هناك شيء لا يحدث، وهذا يعني عابث لكم، عموما. لذلك دعونا نذهب الآن إلى a.out، بل والآن، وأنا "مرحبا، العالم ". والآن، ماذا عن هذه الأصفار ومنها؟ حيث، في الواقع، هي تلك؟ حسنا، أنا لا أستطيع حقا مجرد نوع من كزة حول جدا على نحو فعال. اسمحوا لي أن فتح برنامج TextEdit. وهنا a.out. اسمحوا لي أن تمضي قدما وفتح هذا، وهذا على ما يبدو ما بلدي برنامج يبدو. حتى لقد فتحت، hello.c لا، ولكن a.out. ولكن هذا هو في الواقع ليس ما هو برنامجي حقا. ومن الواضح أن هذا هو نوع من أنواع الحروف الأبجدية. لا أرى أي الآحاد والأصفار و، ولكن هل هذا لأن a.out هو برنامج. ومنها الأصفار - ولكن برنامج TextEdit، وكما يوحي اسمها، انها تماما مثل المفكرة على ويندوز، هو مجرد محرر نصوص، لذلك فمن الخلط بين كل تلك الأصفار ومنها ما على الرغم من أنها كانت، ما هي؟ ASCII حرفا. أذكر ذلك يوم الأربعاء، وصلنا للتو مع هذا تعيين التعسفي من الأرقام، أو بت، على رسائل من الأبجدية وعلامات الترقيم والرموز مثل. برنامج TextEdit ذلك، أنه من محرر النص هو إساءة قراءة هذه الأنماط من الآحاد والأصفار والتي من المفترض أن تكون الكلمات الطباعة، مثل "العالم، مرحبا". انها عرضها كما ASCII، وهذا هو السبب في أنها تبدو فوضوية قليلا. الآن، هناك بعض التلميحات من صحة هنا. إذا لاحظت أن أسلط الضوء، وهناك تلميح من الواقع "مرحبا، العالم، "لذلك في مكان ما في هذا البرنامج هو الجملة كتبت. ولكن دعونا نمضي قدما ونرى الآن مع برنامج آخر. هذه ليست واحدة سنستخدم التي في أغلب الأحيان، لكنه يأتي أيضا مع سوف يكون نظام التشغيل Mac والأجهزة داخل CS50. اسمحوا لي أن تمضي قدما وفتح مع برنامج يسمى XXD. مرة في اليوم، ومعظم البرامج بشكل غامض يدعى إلى حد ما، وهكذا استمر هذا الاتجاه. ولكن-B يعني يبصقون هذا البرنامج على النحو ثنائي. لا تشغيله. عرض لي والأصفار ومنها، وهذا هو C برمجة كتبنا فقط. الآن، I، كإنسان هنا، لا بد لي بصراحة أي فكرة عما هذه الأنماط المختلفة من الآحاد والأصفار وتمثل. مرة في اليوم، I، مع بطاقات لكمة بلدي أو ما شابه ذلك من شأنه، فعلا للبحث عن ما هي هذه أنماط مختلفة من 01111000، تمثل في الواقع. أو ما هو أسوأ، وأنا بحاجة للقيام اللكم أو إنشاء ل هذه الأنماط من الآحاد والأصفار و. لكن في الوقت الراهن، تأخذ على الإيمان بأن وحدة المعالجة المركزية، وإنتل في الداخل، حتى في الكلام، وداخل كل من أجهزة الكمبيوتر لدينا في هذه الأيام، يعرف كيفية تفسير هذه الأصفار ومنها. وبعض تلك الأصفار ويعني الطباعة. بعض الآحاد والأصفار ويعني تشغيل صوت. بعض الاصفار ومنها يعني اتخاذ إدخال المستخدم من لوحة المفاتيح. هناك كل أنواع أنماط مختلفة، ولكن لحسن الحظ نحن، كبشر، فقط تحتاج عادة ما يدعو للقلق في البرمجة هذا المستوى العالي إلى حد ما. ويمكن في صفوف CS الأخرى التي تغوص أعمق لأسفل والبحث في أشياء مثل تلك الأصفار ومنها، أو بعد أشياء أخرى لا تزال. حتى الآن دعونا تحويل هذا. دعنا ننتقل بسرعة كبيرة بعيدا عن C والانتقال إلى شيء مريح أكثر قليلا، قليلا أكثر إثارة، في هذا يمكننا العودة الرسوم المتحركة والأصوات لدينا ومثل ذلك بوضوح فروا لنا في هذا إلى حد ما واجهة البدائية. بحيث تكون ممثلة في هذا البرنامج نفس C الآن في هذا دعا لغة البرمجة سكراتش على النحو التالي. هذا هو ما يعادل هذا البرنامج مرحبا مكتوبة في العالم هذا النمط قطعة اللغز اللغة دعا الصفر. لذلك اسمحوا لي المضي قدما وفتح هذا البرنامج جدا. انه دعا مرة أخرى أنه خدش. لأنها متاحة بحرية، وهذا هو الشيء نفسه نحن بدأت اليوم على. لذلك هذا هو خدش هنا، وانها كسرت عنه في عدد قليل قطع مختلفة. في أعلى يمين جدا، لدينا ما يسمى المرحلة، و في الواقع، حيث ان ملفات تعريف الارتباط يقوم فقط قليلا قبل. وعلى تلك المرحلة تسمى الأشياء العفاريت، حرفا، أو الكائنات، أو الكيانات. لا يهم حقا كيف يفكر فيها، لكنها هي برمجة، الأشياء المنقولة، وهذا في هذه الحالة، البرنامج الذي كتب طلابنا وقد اثنين من الزنجبيل ملفات تعريف الارتباط، وزوجين من ملفات تعريف الارتباط دائري، في مجمله مجموعة من القلوب، في مجمله مجموعة من النظارات. وبسبب هذا، كان هو أو هي قادرة على برمجة كل من تلك الأحرف الفردية بشكل منفصل. الآن، ما يعني أن برمجة هذه الأحرف؟ حسنا، اسمحوا لي أن المضي قدما وانقر على ملف تعريف الارتباط هذا اليد اليسرى ثم انتقل الى اعلى اليسار هنا. في أعلى اليسار من الشاشة الآن هو بلدي ما يسمى البرامج النصية المنطقة. هذا هو نوع من لائحة بيضاء، في البداية، على الذي يمكنني سحب وإسقاط قطع اللغز وبصراحة، هل بالضبط ما يقولون. في أعلى جدا من هذا كومة من قطع اللغز هي الكلمة العلم الأخضر عندما النقر عليها، وإذا لم تكن قد لاحظت من قبل، كان الطريق بدأت تلك الأغنية الكعكة النقر، حرفيا، علم أخضر. بحيث قطعة اللغز في اليسار الأعلى لا يعني عندما شرع النقرات الإنسان العلم الأخضر، على أن تفعل الأشياء التالية. الآن، ماذا كانت الكعكة الشروع في القيام به؟ أنا لا أعرف حقا كيف لتفسير هذا الموضوع حتى الآن، ولكن كوكي ضبط ما يبدو الأخدود لصفر، ثم انتظر ذلك ثلاث ثوان، ثم تغير ذلك فريقها واحد، ثم انتظر ثانية، ثم تغير ذلك في الأخدود العودة إلى واحد. ثم هذا يبدو في الواقع وكأنه شيئا من الخطأ، لا ينبغي لديك لتغيير أخدود من جديد ومرة ​​أخرى إلا إذا كان يتم تغييرها في أي مكان آخر، ولكن هذه السلسلة من الخطوات هو ما إملاء سلوك هذه الكعكة خاصة. لذلك دعونا انتقل فعلا الى الوراء وننظر إلى شيء لا تماما على درجة من التعقيد حتى الان. اسمحوا لي أن تمضي قدما وانتقل إلى ملف، جديد، والحصول على صفحة جديدة. حتى الآن، ولدي بالفعل مساحة فارغة النصي، مرحلة فارغة، مع شركائنا في سكراتش الافتراضية العفريت، وعلى أعلى اليسار على الشاشة لا بد لي من البليت لجميع من قطع اللغز المتاحة. ونحن لن تذهب من خلال العديد من أن ما يقرب من هذه الأشياء اليوم ل، مرة أخرى، معظمها لا تحتاج إلى شرح، ولكن سنقوم محاولة تصنيفها ونشير إلى أوجه التشابه مع هذه اللغات المستقبل الذي سوف نقوم الغوص. وفي أعلى اليسار هنا هو الأول عندما العلم الأخضر النقر عليها، لذلك اسمحوا لي سحب هذا أكثر من هنا، تصغير قليلا. وإذا كنت فوق العلم الأخضر، لا يحدث أي شيء حقا ل أنا لم تعلق أي منطق، أي بيان حتى في الكلام، وإلى هذا العلم الأخضر، لذلك اسمحوا لي ان اذهب حتى فئات أكثر من هنا. أنا حاليا في فئة التحكم. أنا ذاهب بدلا من ذلك إلى النزول إلى الفئة يبدو، و هناك مجموعة كاملة من الاشياء التي تقول قل هنا، أعتقد، تغيير لون زي التبديل، و. لذلك يمكنك أن تفعل أشياء سخيفة مع الأزياء و الأصوات وما شابه ذلك. اسمحوا لي أن تمضي قدما وأقول قل، وتلاحظ الآن وأنا اسحب وإسقاط هذه القطعة اللغز، انها تريد الذهاب الى لتحط في شكل المقابلة. حتى عندما أذهب إلى الأمام وترك الماوس بلدي، فإنها قفل معا، والآن إذا ذهبت أكثر من هنا وانقر على العلم الأخضر، القط في الواقع لا أقول مرحبا لأن هذا هو ما هو داخل من هذا المربع الأبيض. سنرى قريبا أن هذا المربع الأبيض هو ما يسمى حجة، أو معلمة. انها وسيلة لتغيير سلوك، في هذه الحالة، لغز قطعة، ولكن إذا أريد أن أقول بالضبط ما قلت من قبل، ويقول مرحبا، العالم، يمكنني أن أذهب الآن إلى أكثر من هنا، انقر فوق تشغيل، و"مرحبا، العالم" هو ما قال. لذلك نحن الآن حرفيا البرمجة. انها ليست مقنعة كل ما من البرنامج، ولكن على الأقل انها شيئا قليلا أكثر إقناعا من تلك التي تبدو، في 1 محة، مثل هذا. ويمكننا بشكل سريع جدا الحصول على جميع أكثر تعبيرا لأنه في سكراتش، كما هو الحال في لغات أخرى، وهناك كل أنواع البيانات، وليس فقط أن أقول شيئا أو الطباعة، ولكن يمكنك أن تفعل أشياء مثل الانتظار، كما رأينا للتو مع ملف تعريف الارتباط، وبعض عدد الثواني. يمكنك تشغيل الأصوات في البيئة من الصفر فقط يمكنك في مثل صوت الكمبيوتر العادي اللعب البرنامج. يمكنك التحقق من ما يسمى التعبيرات المنطقية. حتى الآن، لنبدأ في إضافة لمجموعة أدوات لدينا بعض المصطلحات التي تتعلق في الواقع إلى المثال أن يوسف وفعلت هنا مع الجوارب. البيانات ليست سوى ذلك من البيانات الحقيقة. القيام بذلك. A التوجيه للشبح، أو لي الإنسان، أن تفعل شيئا. A التعبير منطقية هو الشيء الذي له قيمة، وهو ما يسمى القيمة الحقيقة، وهذا إما صفر أو واحد، أو كاذبة صحيح، أو إيقاف تشغيلها، لا أو نعم. لا يهم حقا كيف تفكر في هذا، ولكن كل شيء على ثنائي الدولة. كما نوقشت في الفيديو نيت يوم الاربعاء، وهما أشياء مختلفة. حتى في سكراتش، التعبيرات المنطقية يحدث للبحث مثل هذه الكائنات الزرقاء هنا، وفي هذه الحالة، فإن السؤال علامة تعني أن كنت طالبا في السؤال. هو القط، أو العفريت، ولمس مؤشر الماوس؟ لذلك هذا هو مجرد مثال واحد من كتلة الصفر التي يجري للسماح لنا للتحقق من نعم أو لا، هو لمس الماوس شبح على الشاشة؟ ويمكن أن يكون هذا مفيدا إذا كنت فعلا تريد أن تفعل أشياء مع الماوس. بالإضافة إلى التعبيرات المنطقية، لدينا أشياء هو مثل الماوس لأسفل، لذلك يمكنك الكشف عن هذا النوع من السؤال أيضا. يمكننا أن نفعل الرياضيات إذا كنت فعلا تريد، وهذا لا في الواقع أكثر إقناعا من الاستخدامات لهذا محض مجرد من الحسابية، كما سنرى. العشوائية الزائفة، وجعل البرنامج يظهر على التفكير أو تتصرف بشكل مختلف استنادا إلى بعض القيم عشوائي على ما يبدو، ثم لدينا أشياء مثل التعبيرات المنطقية مثل AND. حتى إذا كنت فعلا تريد ان تحقق قيمتين، وسنرى في الصفر نتمكن من اختبار الواقع إذا كان هذا هو صحيح، وهذا هو الصحيح. على سبيل المثال، في حالة من الجوارب بلدي، ويمكنني أن قمت في طلب النهاية مسألة إذا جورب الأيسر على ولبس اليمنى في وضع التشغيل، الإقلاع عن التدخين. الانتهاء من ذلك كل ما لهذا اليوم، لذلك أن يكون فرصة لذلك. لذلك دعونا نمضي قدما ومحاولة بعض هذه قطعة معا وتذهب إلى بضعة أمثلة أكثر قاهرة من هذا واحد. لذلك اسمحوا لي المضي قدما هنا وفتح بعض الأمثلة من شأنها أن تكون دائما على الموقع الإلكتروني للدورة أيضا، و فتح hello2. حتى في hello2 هنا، لدينا برنامج الذي يفعل عدد قليل الأشياء، لكنه لا يفعل ذلك على نحو فعال كما كنا قد. حتى هنا تقول "مرحبا، العالم" لثانية واحدة ثم ينتظر لثانية واحدة. ويقوم بعد ذلك مرة أخرى، ثم يفعل ذلك مرة أخرى. حتى لو كنت فوق العلم الأخضر، ويقول سكراتش "مرحبا، العالم. مرحبا، العالم. مرحبا، العالم "، وهذا هو الواضح الآن مرشح لل التحسين. ما هو التحسن الهامشي، ونأمل، ونحن يمكن أن الآن إذا جعل خدش يدعم هذه الفكرة؟ نوع من الحلقة. نوع من التكرار، الآن، سيكون من الرائع، لذلك اسمحوا لي في الواقع محاولة ذلك. اسمحوا لي أن تذهب في الواقع ونقل هذا. لذلك يمكن فصل الكتل إشعار بسهولة كما يمكنك إضافتها إلى إرفاقها. اسمحوا لي ان اذهب تحت السيطرة، انتقل لأسفل هنا، وبالفعل، هناك لغز هذه القطعة هنا، كرر وللأبد و إذا الأبد. لذلك هناك عدد من الطرق للتعبير عن بنيات حلقات في سكراتش. واحد أريد ربما هنا ليس للأبد لأنني فقط تريد لهذا أن يحدث ثلاث مرات، ولكن ربما كرر. لذلك اسمحوا لي اسحب كرر أكثر من هنا، اسحب وأسقطه، و الآن بدلا من أن تقول "مرحبا، العالم" ثلاث مرات منفصلة، اسمحوا لي أن سحب هذه القطعة اللغز هنا. وعلى الرغم من أنه لا يبدو لائقا، برنامج ذكي يكفي أن ندرك انها سوف تنمو لملء، لذلك هو الأشكال التي لا المسألة والحجم المطلق. اسمحوا لي أن تغيير التكرار إلى ثلاثة، والآن اسمحوا لي أن انتقل قبل واسحب انتظر ثانية واحدة في هناك أيضا. انه سيكون لالتقاط في أيضا، وحتى الآن أنا ذاهب لسحب هؤلاء الرجال إلى هنا وفقط رمي بها بعيدا لأنني لا حاجة لهم بعد الآن. اسمحوا لي تصغير وانقر على العلم الأخضر الآن، وليس لدينا نفس البرنامج ولكن كما توقعت من قبل، أفضل مصممة لأنك يمكن أن تتخيل مدى سوء هذا البرنامج ستحصل، جماليا بالتأكيد، إذا كان لديك ل بدء النسخ واللصق والنسخ واللصق، أو سحب وإسقاط الأشياء نفسها مرارا وتكرارا الرتق. الآن، قائلا ببساطة الاشياء التي تظهر على الشاشة، والطباعة على الشاشة، لا حقا كل ذلك مثيرة، لذلك دعونا فتح 3 الفرق هنا. والآن، كما سترى، سوف تحصل على هذا مزعج بسرعة - [MEOW] DAVID مالان: - لكنه أيضا نوع من لطيف. [MEOW] DAVID مالان: حسنا، أفضل ذلك، ويمكننا استخدام بالتأكيد أن نفس هذا الانتقال من chunking يصل الى حلقات هيكل، ولكن دعونا جعله أكثر إثارة للاهتمام حتى الآن. اسمحوا لي أن تمضي قدما وفتح التباين الرابعة الى هنا، حيث أنا نأخذ الأمور خطوة إلى الأمام. ذلك وفقا لذلك، رغم أن هذا هو سخيف في البداية وهلة، ما هو هذا البرنامج تنوي القيام به؟ انها سوف مواء مرة واحدة. لماذا؟ حسنا، هو واحد، بقدر ما أعرف، دائما أقل من اثنين. ليس هناك مفهوم العشوائية هنا. لقد قمت حرفيا الثابت ترميز واحد واثنين، ولكن هذا هو الآن فعلا سبيل المثال من استخدام تعبير منطقي. يشبه إلى حد كبير ما حدث في شبة الكود جوزيف له، والمسافة البادئة IF تجد مطابقة الجوارب ثم القيام بما يلي، لدينا هنا تعبير واحد هو IF أقل من عقدين من ثم - في واقع الأمر لدينا حتى قليلا من المسافة البادئة، حيث يتم تحريكها قليلا إلى اليمين الأرجواني - ثم وأنت تسير للعب مواء الصوت. الآن، في هذه الحالة، أن واحدا هو دائما أقل من اثنين، لذلك هذا هو نوع من مضيعة للحالة. ولكن سوف نكون قادرين، كما سنرى، من أجل سد أمور أخرى في هذه العناصر النائبة حيث واحد واثنين هي عليه الآن. لذلك دعونا الآن وتقدم سبيل المثال خمسة من هذه عدة مجلة هلو ونظرة على ما يجري هذا البرنامج القيام به. حتى الآن، وذلك في الجملة العربية، وكيف يفعل ذلك برنامج تتصرف؟ AUDIENCE: Meows نصف الوقت. DAVID مالان: نصف مواء من الوقت، لذلك هذا هو وسيلة من نقل فكرة بسيطة للغاية. على الرغم من أننا يحدث ليكون باستخدام بعض الفوارق هنا في بعض الأرقام، وهذا هو في الحقيقة مجرد programmatical الطريقة، طريقة دقة، للقول إن للعملة تأتي رؤساء، انتقل وقبل مواء. أو على العكس، إذا لعملة ويأتي ذيول، لا تموء. وفي هذه الحالة، كيف يمكننا التعبير عن ذلك؟ سنقوم اختيار عدد عشوائي من 1 إلى 10، وإذا كان هذا الرقم هو أقل من 6، والمضي قدما ومواء. وكيف هذا يحصل في هنا؟ مرة أخرى بشكل جيد، لاحظ مجرد سحب وإسقاط و المزالج الأشياء في مكانها. حتى الآن دعونا نرى ما اذا كان هذا يعمل العشوائية. اسمحوا لي أن المضي قدما وانقر على العلم الأخضر. [MEOW] DAVID مالان: حسنا. [MEOW] DAVID مالان: حسنا. حسنا، جيد، حتى وصلنا رؤساء، ورؤساء، والذيول على نحو فعال. ذيول. [MEOW] DAVID مالان: رؤساء. [MEOW] DAVID مالان: ممتاز. انها دائما محرجا فقط عندما تحصل على إحصائية سيئة تشغيل، وانها جميع رؤساء، وبرنامج الواقع لا لا العمل كما كنت آمل. ولكن هذه المرة، لأنها عملت، ويبدو أننا نعاني، إذا فعلنا وهذا العدد لا حصر له من المرات، خلاف 50٪. مرة أخرى الآن، وليس كل ما مثيرة للاهتمام، مجرد جعل القطط مواء، لذلك دعونا نرى ما اذا كنا لا يمكن تحقيق هذا قليلا المزيد هنا في الإصدار السادس. حتى الآن، لدينا نسخة مزعج حقا - [MEOWS كل بضع ثوان] DAVID مالان: - وهذا هو ما يعرف عامة، باعتباره حلقة لا نهائية. حلقة لا نهائية حتى في هذه الحالة يشعر سيئة. انها بالتأكيد لبدء سبر سيئة، وحتى الآن لا حصر له الحلقات ليست دائما سيئة. يمكنك التفكير في سياق برامج الكمبيوتر في حيث كنت فعلا تريد حلقة لا نهائية؟ نعم؟ AUDIENCE: عندما كنت تريد أن تحقق شرط. DAVID مالان: حسنا، إذا كنت ترغب في التأكد من الحفاظ على شرط؟ مثل ماذا؟ AUDIENCE: [غير مسموع] DAVID مالان: حسنا، جيد، إذا كان الأمر كذلك كان لديك بعض البرامج، وبعض النوع من الأشياء أتمتة المنزل، حيث تريد باستمرار رصد شيء في القضية. هي أضواء على؟ هي أضواء على ربما لديك جهاز توقيت، و تريد لها أن تنفجر، قد تحتاج لعمل شيء مرارا وتكرارا. وفي الواقع، الحديث عن توقيت، أي منكم الذين الساعات على جهاز الكمبيوتر الخاص بك أو الساعات الرقمية، وهذا على حلقة لا نهائية. واصلت لتحديث الوقت لأنه باستمرار فحص وتدقيق وفحص لديه الوقت تغير، وإذا كان الأمر كذلك، أوه، يا إلهي. الذي تغير أخيرا على مدار الساعة. انها تحتاج عرض تلك القيمة لك. في حين ذلك معظم حلقات لانهائية الوقت هي خطأ، أو على الأقل قرار سوء التصميم، وأحيانا يفعلون لها قيمتها. حسنا، دعونا المضي قدما هنا لhello7. حتى الآن فإن البرنامج الحصول على القليل أكثر تفاعلا. اسمحوا لي هنا في تكبير، ومرة ​​أخرى، هذا ما لطيف عن الصفر. وسنستخدم لها أن تكون واضحة، خدش، واليوم فقط في تعيين المشكلة الأسبوع القادم. ولكن يوم الاثنين، ونحن الغوص في C. في هذا البرنامج هنا، فإنه، إلى الأبد، ما يلي. IF لمس مؤشر الماوس - الآن، من هو السياق هنا؟ حسنا، ثم لاحظ أن اختيار من هو أسفل هنا في أسفل هو الحق القط، شبح واحد، لذلك فان هذه النصوص، وهذا البرنامج، ينطبق عليه على وجه التحديد. إذا كان الأمر كذلك أن القط لمس مؤشر الماوس، ثم انه سيكون للعب هذه أسفل والانتظار لمدة ثوان، و ثم كرر nauseum الإعلانية. لذلك دعونا نمضي قدما وضرب اللعب. لا يحدث أي شيء، ولكن إذا كنت تريد أن الحيوانات الأليفة في القط الآن، يمكنني بكل بساطة. [MEOW] DAVID مالان: رائعتين. [MEOW] DAVID مالان: حسنا، أقل مزعج، ولكن كما يحصل مملة، لذلك دعونا نمضي قدما ونرى ما اذا كنا لا يمكن حقن منطق أكثر قليلا. كان هذا المثال السبعة. هنا في المثال ثمانية، ونحن في طريقنا إلى إدخال شرط آخر. الكثير مثل شوكة في الطريق الحرفي، الذي يمكنك الذهاب إلى اليسار أو يمكنك الذهاب الحق، وهي حالة في البرمجة اللغة مثل الصفر، أو كما سنرى C يمكن، تسمح لك تذهب في اتجاه واحد أو لآخر عن طريق بناء IF ELSE ملف. ذلك بكل معنى الكلمة، IF لمس مؤشر الماوس، وهذا سوف تلعب بعض السليمة، عدا انها سوف تلعب هذه الأخرى الصوت، مواء. الآن، إذا كان يمكنك استنتاج من اسم هذه الأصوات، يمكنك تخمين ما يعني على الأرجح هذا البرنامج إلى الأذهان فكرة. هذا القط هو تموء لحسن الحظ. [MEOW] DAVID مالان: لحسن الحظ، ولكن لا أحب جدا أن يكون لمست. [تهدر] DAVID مالان: حتى الآن لدينا القط الذي سوف يصيح في أنت. حسنا، حسنا، مثال واحد آخر مع القطط هنا، و دعونا نسخة مفتوحة تسعة من هذا هنا. حتى الآن، لدينا صوت مزعج أن معظم المقبلة أستطع العثور عليها، لذلك لدينا الفظ أو أسد البحر الذي يحدث هنا ل قم بما يلي. [حاء SEAL] DAVID مالان: حسنا، لذلك هذا سيستمر حتى يتم معرفة كيفية هذا البرنامج يعمل. حتى هذا الوقت، هذا الحيوان لديه اثنين من مخطوطات، وهذا ما مثيرة للاهتمام هنا هو أن هذه النصوص تسير لتنفيذ في نفس الوقت. لأن ذلك النقر كلاهما مع بداية راية واحدة خضراء، انها مثل الذهاب من هذا القبيل، وكلا البرنامجين بدء تشغيله مرة واحدة حتى لو انهم حلقات الأبد. حتى في البرنامج النصي الأعلى، ولدي بعض المنطق. ما هي الميزات التي توفر ما يصل أن هناك؟ [حاء SEAL] AUDIENCE: [غير مسموع] DAVID مالان: إذا كان ما؟ [حاء SEAL] AUDIENCE: إذا كتم إلى الصفر، انه سيكون على الاستمرار في اللعب على الصوت. [حاء SEAL] DAVID مالان: حسنا، جيد. إذا كان الأمر كذلك صامتة، أيا كان هذا هو، هذا الشيء البرتقالي هو صفر، ثم لعب الصوت أسد البحر والتفكير "أوه، مرحبا، "لمدة ثانيتين. الآن، أنا لا أعرف ما هو الصامت، ولكن صفر تستحضر فكرة كاذبة أو إيقاف تشغيله. إذا كان الأمر كذلك كتم صوت باطل، لذلك إن لم يكن صامتة، الاستمرار في اللعب الصوت. حسنا، حسنا، كيف يمكننا تعطيل هذا الشيء؟ حسنا، دعونا ننظر إلى السيناريو الثاني الى هناك. والسيناريو الثاني يقول تعيين صامتة إلى الصفر. كما انها لاحظت البرتقال، وذلك ما يفعله هو أنه خدش الألوان كتل في الظل نفس النوع إذا حان من متعلق منطقيا. وذلك فقط صامتة أعلى حتى كان البرتقالي، وذلك هو كتم أسفل هنا المذكورة في كتلة البرتقال. ولكن هذا هو المتغير المهام، لذلك مثلما هو الحال في الجبر، لديك x و y و z، في البرمجة لديك المتغيرات، ولكنهم عموما - دعونا نتوقف لحظة وكيف الرقم لوقف هذا نباح. كيف أفعل ذلك؟ [حاء SEAL] DAVID مالان: حسنا. توقفت. حسنا. وذلك فقط في الجبر لديك المتغيرات X، Y، Z و، ولكن في البرمجة، وبعد المتغيرات مثل X، Y، Z وبشكل عام تثير الامتعاض لأنهم لا على الإطلاق معبرة. أنها ليس لها معنى على الإطلاق الدلالية، لذلك في معظم لغات البرمجة، يمكن أن المتغيرات الكامل أسماء العضوية أو كلمات أو عبارات، مثل صامتة، أن أقول ما يفعلونه. ولذلك فإن هذا السيناريو الثاني أيضا كان يستمع إلى الأبد، وقالت انها إذا كان مفتاح، ومفتاح لوحة المفاتيح الفضاء، هو المضغوط، علامة استفهام. ولذلك لا يوجد شرط مع تعبير منطقي هذا سوف تجيب على السؤال بصدق أو كاذبة، ثم لدي داخل منه إذا تم الضغط على المفتاح الفضاء و IF صامتة صفرا، على كتم واحد، ELSE تعيين صامتة إلى الصفر. لذلك هذا شوكة أخرى في الطريق، ولاحظ كيف عندي تداخل بين الاثنين إذا كانت الظروف، هو وسيلة للتحقق من هو الضغط على شريط المسافة لأنه إذا كان الأمر كذلك، أريد إما أن تذهب هذه بطريقة أو الطريقة التي. وكيف يمكنني عكس قيمة صامتة؟ لا بد لي من الاختيار هو الصفر؟ إذا كان الأمر كذلك، جعلها واحدة، وجعل آخر من صفر إلى تبديل ذلك في دولتين. كل الحق، لذلك علينا بعد ذلك بعض من هذه الأساسية يبني. لدينا التعبيرات المنطقية، وتحقيق، أيضا، وهذه هي ليس كل ما غير مألوفة. في الواقع، وهنا لقطة سريعة من البرنامج الدراسي في جامعة هارفارد CS50 أداة للتسوق، وأي موقع الى ان هناك لديه خانات والهبوط والانخفاض حقا، كل هذا الوقت، تم استخدام منطقي التعبيرات. في هذه الحالة هنا، إذا قمت بالنقر فوق مربع الاختيار الموجود بجوار أكبر من أو يساوي 4.5، أو القادمة من ملعب نفس أعضاء هيئة التدريس، كنت تحديد تعبير منطقي. تبين لي أن الدورات التي التعبير هو الصحيح. أو إلى اليمين، لا يتعارض مع الدورات أنا مع ذلك، إذا أن يتم فحص، ثم نعم، وتريد أن تحقق هذا الشرط، وإلا كنت ترغب في تجاهلها. التعبيرات المنطقية لذلك هي نوع من جميع أنحاء، ولكن عندما وضعنا لهم في ظروف، سواء إذا كانت الظروف، IF إلسس]، أو يمكننا محاكاة أعمق المستويات، IF ELSE IF ELSE - ولهذا النوع من حالة الثلاثي. يمكنك السير في هذا الطريق أو هذا الطريق أو هذا الطريق. يمكننا إبقاء الأمور على التعشيش للذهاب في اتجاهات مختلفة. حتى خدش وهذه الحلقات، مثل أبد. لديها ميزات مثل هذه كرر 10، بعض عدد مرات محدودة. لدينا القدرة الآن على تحديد المتغيرات، لذلك في هذه الحالة لقد أعلنت أنا، على سبيل المثال، وهو متغير يسمى الجوارب. لقد تهيئة I إلى 0، وهذا بعد اتجاه آخر أننا قد اتخذنا هنا مع يوسف، حيث ربما أنا تبقي فقط تتبع عدد الجوارب ولدي على إنهاء البرنامج عند قيمة هذا المتغير هو 2. من شأنه أن يكون وسيلة أخرى من نوع من التعميم أن المشكلة والقيام بشيء مرة أخرى ومرة ​​أخرى. حسنا، دعونا نمضي قدما ونقدم الآن بضعة أشياء جديدة. حتى تلك التي كنت من ذوي الخبرة برمجة مسبقة وسوف أعرف أن الكثير من اللغات لديها صفائف أو نواقل أو قوائم، وبالفعل، خدش لديه شيء من هذا القبيل أيضا. لذلك دعونا نرى ما اذا كنا لا نأخذ الأمور إلى المستوى التالي هنا. إذا كان لدي القدرة، الآن، مع هذه القطع اللغز ل إضافة شيء، مثل كلمة أو رقم، إلى متغير، يمكنني تبدأ تتراكم الأشياء. وهذا هو في الواقع بالمناسبه جميلة لأشياء مثل الألعاب، لعب الأدوار حيث كنت نوع من يتجول بعض الأشياء جمع عالم الخيال، واختيار الامور، كسب نقطة، أو ما شابه ذلك. قد ترغب في تتبع نوعا من المخزون، و في الواقع، وهذا ما أحد طلابنا السابقين هنا فعلت مع ودعا شيء Fruitcraft RPG. لذلك اسمحوا لي المضي قدما وفتح هذا الشيء هنا، وفي Fruitcraft، لدينا هذا العالم حتى في القمة. لذلك اسمحوا لي المضي قدما وانقر على العلم الأخضر. إشعار في أعلى اليسار هو نوع من أنواع المخزون. انها نفذت في خدش كما أن ما سنقوم الكلمة أو مجموعة قائمة، والآن لدينا هذه الرسوم المتحركة قليلا. وذلك فقط بدأنا في وقت سابق مع هذه الكعكة قصة حب، وتقدمت بعد ذلك علينا أن القطط وأسود البحر، ونحن الآن يمكن أن يكون الأشياء التي هي أكثر تفاعلية. وهذا الرجل قليلا الأزرق، ويمكنني أن تبدأ في التحرك في جميع أنحاء له الصفحة الرئيسية قليلا هنا. لذلك يبدو انه حصل على الخروج الى هنا، لذلك أنا باستخدام مفاتيح الأسهم أو لأعلى أو لأسفل، ترك الحق. والآن أنا خارج، لذلك دعونا ما عندي هنا. يشبه البرتقال، وبالفعل، سرعان ما لمس البرتقال، ويحصل على أنها ساقط في معرضي. إذا ذهبت أكثر من هنا إلى الكرز، والآن لدي شيء آخر في معرضي. وهذا هو كل شيء جميل ولطيف، ولكن التفكير في كيفية، والآن، وهذا وينفذ. حسنا، لدينا هذه الفكرة قائمة، وهذا على ما يبدو قطعة اللغز الذي كنت أقول ما تريد إضافة إلى ذلك، إضافة البرتقال والكرز إضافة. الآن، ما هو هذا الرجل الصغير الأزرق تفعل؟ حسنا، انه شبح. ويفترض، والبرتقال والكرز و- كانوا أنفسهم العفاريت منفصلة. واستخدام التعبيرات المنطقية في ظروف، في وكان الطالب ربما قادرة على التعبير عن IF الرجل هو الأزرق الكرز لمس ثم يضاف الكرز كلمة لصاحب المخزون، ومن ثم أيضا إخفاء شبح الكرز. حتى تحت غطاء محرك السيارة، وهناك ربما لا يزال الكرز شبح هناك. لقد قيل لنا فقط لأنها تصبح غير مرئية على نحو فعال. الآن، إذا كنت الحفاظ على المشي أكثر من هنا، يمكننا أن نفعل ذلك أيضا الشيء الأقرب، حيث يمكنني أن أذهب وقراءة علامة. لذلك إذا لمس الرجل الأزرق علامة، فإننا يمكن أن يكون هذه الكتلة قل مثلما القط تحدث لنا في الكلمات، مرحبا، في وقت سابق، "حصلت بعض الفاكهة؟ إحضاره إلى مكان الفاكهة. "حسنا، حتى الآن، على ما يبدو، لدي توجيهاتي. يمكنني أن أذهب أكثر من هنا إلى مكان الفاكهة، خط نفسي مع الباب. الآن، أنا هنا. يمكنني أن أذهب إلى الرجل في العداد. انه يكشف أنا قريب له، لذلك ليس من الضروري أن تكون مطابق تماما لمس، ولقد فاز بالمباراة. هناك لذلك لدينا Fruitcraft RPG. لذلك يمكننا أن نفعل أشياء حتى أكثر تقدما من هذا. يمكننا أن نضيف الأصوات. يمكننا أن نضيف العشوائية الزائفة. يمكننا أن نضيف التعقيد. اسمحوا لي أن المضي قدما هنا، وبدلا من القيام بذلك نفسي، اسمحوا لي أن تظهر لك واحدة من التقديمات أكثر تطورا وصلنا في العام الماضي من شخص معين اسمه بليك. لدينا واحدة يمكن أن المتطوعين الذين مريحة الظهور على الكاميرا ويعود للعب لعبة؟ ماذا عن حق هناك؟ تأتي على ما يصل. كل الحق، لذلك اللعبة التي لديك فقط تدري تطوع للعب - [تصفيق] DAVID مالان: - هو شيء من الماضي دعا "عبة Frogger." ما هو اسمك؟ RENDA: Renda. DAVID مالان: Redna؟ RENDA: انها مثل بريندا مع ب. DAVID مالان: حسنا، Renda. ديفيد. تشرفت بمقابلتك. حتى هنا في "عبة Frogger،" وإذا كان يمكننا رفع حجم فقط قليلا، أنت هذا القليل الضفدع الأخضر في القاع. يمكنك استخدام اليسار واليمين، صعودا وهبوطا، وهدفك هو عبور الشارع، عبور النهر، وتلمس منصات الزنبق في الأعلى. فصيل عبد الواحد. واحد أكثر ر - إعادة، كل الحق؟ دعونا نتوقف عن ضرب. لم يشاهد أحد ذلك. [تصفيق] [تصفيق] DAVID مالان: نعم. جيد جدا القيام به. ممتاز، شكرا لك. حتى إنه كان هناك عبة Frogger. والآن بعد أن تعرف ما كنت قد حصلت بأيديكم إلى، متطوع أكثر لمختلف لعبة المقدمة من طالب آخر. تريد أن تأتي على ما يصل؟ ما هو اسمك؟ RICHARD: ريتشارد. DAVID مالان: ريتشارد. كل الحق، ريتشارد، وتأتي على ما يصل. [تصفيق] DAVID مالان: لديك شيء سوف يبدو قريبا مألوفة، لذلك هنا التعليمات الخاصة بك. حتى في لحظة، وبعض قطع اللغز سوف انتقل لأعلى من الشاشة التي تبدو إما ترك أو حق أعلى أو لأسفل. وأنت تسير لدينا لضرب مفاتيح الأسهم في مثل هذه الطريقة أنه يتوافق مع تلك القطع اللغز يصطفون مع العناصر النائبة في الأعلى. لذلك عندما تشاهد السهم الأيسر، وخطوط هذا الامر مع اليسار سهم، وضرب السهم الأيسر. قد تبدأ. [MUSIC - "أقوى" كاين WEST] DAVID مالان: حسنا، الجولة الكبيرة من التصفيق لريتشارد. [تصفيق] DAVID مالان: جيد جدا القيام به. شكرا لك. [تصفيق] DAVID مالان: حتى متعة و، على ما يبدو، نوع من تخويف كما أنه قد يكون لتنفيذ شيء ما على ما يبدو أن هذا متطورة، ندرك أن الطالب لم المحددة والكتابة فقط كل هذا في آن واحد. بدلا من ذلك، يمكنك كسر مشكلة معقدة على ما يبدو لأن هذا إلى قطع أصغر من ذلك بكثير، وهذا، أيضا، هو ستكون أحد الموضوعات. أسوأ شيء يمكنك القيام به في كتابة برنامج في أكثر من أي اللغة هو الجلوس، والحصول على متحمس حقا، كتابة لعنة شيء كامل، ومن ثم نأمل فقط أن يعمل من قبل الوقت الانتهاء الكتابة. بدلا من ذلك، ينبغي لعملية البرمجة بشكل عام تكون متعمدة جدا ومتكررة جدا، حيث كنت للتو تعيين خطوات صغيرة جدا لقطع أنفسكم لدغة الحجم، تريد أن قضم، وبحيث يكون لديك هذه التعقل الشيكات، معالم القليل الذي يمكن أن تلبي. ثم بناء على رأس تلك لخلق المزيد من لا تزال الأمور معقدة. هكذا على سبيل المثال، كيف يمكن أن نذهب عن تنفيذ لعبة مثل هذا؟ حسنا، بصراحة، أود أن تبدأ بالتأكيد فقط من خلال دعم مفتاح واحد في كل مرة. دعونا فقط الدعم لتنفيذ السهم الأيسر. لذلك كان الطالب لخلق بطريقة ما في Photoshop، أو في نقطة الصفر نفسها باستخدام محرر رسومية قليلا، وهو اليسار مفتاح السهم الذي يبدو وكأنه واحد في الأعلى هناك، فقط العنصر النائب الرمادي. ثم كان الطالب لمعرفة ما X، Y لتنسيق وضعه، حيث وضعه في الإطار. 0، 0 هو هنا، ولذلك عليك لمعرفة عدد بكسل، أو النقاط، لتعويض ذلك من سهم الجزء العلوي من الشاشة. ثم مرة واحدة في هذا المكان، البرنامج لا فعلا فعل أي شيء حتى الآن، لذلك تحتاج بعد ذلك العفريت الثاني، ل المثال على شكل سهم أخضر وهذا أيضا ترك افتا، وكنت تحتاج بعد ذلك للبدء في كتابة بعض النصوص لذلك. وتلاحظ، ربما، أن هذه الامور بدأت القادمة في وسرعات مختلفة، وألوان مختلفة في المواقع، وذلك لأن الطالب المستخدمة قليلا من الزائفة عشوائية. والعشوائية الزائفة، يعني مجرد اختيار عدد بين شيء وشيء لأنك يمكن تبدأ الأمور الخريطة، مثل إذا كان الرقم واحد بين خمسة، حسنا، دعونا جعل الشيء الأخضر. اذا كان ما بين 6 و 10، دعونا جعل قطعة اللغز أحمر بدلا من ذلك. لذلك طالما لديك وسيلة لتوليد نوع من العشوائية، يمكنك ثم جعل القرارات على أساس أن العشوائية. وأظل الزائفة قائلا عشوائي بسبب وجود السر الصغير القذر. لا يمكن لأجهزة الكمبيوتر تأتي مع الأرقام العشوائية. فإنها يمكن أن تفعل إلا ما يقال لهم بسبب انهم من صنع الإنسان الأجهزة. فإنها لا يمكن تخمين مجرد رقم مثل نحن البشر أشعر بأن في وسعنا. A الكمبيوتر أن تفعل شيئا رياضية لتستحضر في وهم عدد الرياضية، وذلك باستخدام بعض الأحيان اليوم الحالي من الوقت كمدخل لمعرفة ما عدد من العودة، ولكن أكثر في الوقت المحدد آخر ذلك. في الوقت الراهن، ونعرف فقط أننا يمكن أن تولد العشوائية الزائفة. ذلك مرة واحدة لدي القدرة للالسهم الأيسر لبدء تظهر في أوقات مختلفة وبسرعات مختلفة، ثم يمكن أعود وإضافة بعض من هذه الشروط IF. إذا كانت هذه العفريت لمس الآخر، والسهم الأيسر وقد ضغطت مفتاح - لذلك ثلاثة شروط في هذه الحالة. يمكنني استخدام هذا وكتلة ربما، في هذه الحالة - ثم اريد ان تمضي قدما وزيادة النتيجة. وعلى رأس، لدينا نقاط، لدينا ممتاز، بارد، جيد، وبو. ولذلك لا يوجد على ما يبدو أن خمسة متغيرات هذا الطالب تستخدم لتتبع هذه المقاييس المختلفة. لذلك وباختصار، فإن النتيجة النهائية هي مدهشة. انها متعة، انها متعة للعب، وأنه جذاب ولكن هذا ليس حيث بدأ الطالب. بدأ هو أو هي في مجموعة أصغر بكثير من الخطوات. فما هي بعض اللبنات الأخرى التي نستطيع نسج في هذه البرامج؟ حسنا، هناك هذا المفهوم في معظم اللغات الأخرى، الصفر فيما بينها، والمعروفة باسم المواضيع. لذلك يمكن في الواقع ليست جهاز كمبيوتر حقا الأشياء متعددة في الوقت، على الأقل ليس عادة. بدلا من ذلك، جهاز كمبيوتر واحد فقط عموما CPU، وحتى على الرغم من أجهزة الكمبيوتر بسرعة فائقة يمكن، وبالتالي، خلق الوهم للقيام بهذه الأمور متعددة في وقت واحد - فحص البريد الخاص بك، والحصول على لحظة رسالة وطباعة وثيقة - حقا، هو القفز كمبيوتر فقط من الطباعة إلى يمينغ لإرساله عبر البريد الإلكتروني، والعودة إلى الوراء والعودة والتي عليها بسرعة لذلك نحن البشر البديهة بطيئة لا يدركون أنه في الواقع تشغيل هذه البرامج قليلا في كل مرة. الآن، وهذا قليلا من البيض تكمن في هذه الأيام ل، في الوقت الحاضر، لدينا العديد من أجهزة الكمبيوتر هي ما تسمى متعددة النواة، لذلك كنت واحد ولكن CPU متعددة النوى، والذي هو نوع من مثل وجود وحدات المعالجة المركزية متعددة. وحتى في بعض الأحيان، يمكن لأجهزة الكمبيوتر متعددة تفعل أشياء حقا في كل مرة، ولكن بصفة عامة ضمن برنامج، برامج الاعتماد على هذه الأمور تسمى المواضيع. لذلك الموضوع هو نوع من مثل برنامج مصغر يمكن أن إلى جانب وجود برنامج آخر يمكن تشغيل مصغر و في موازاة ذلك، أو على الأقل يمكن أن تعمل تحت وهم أن انهم تشغيل في وقت واحد. حتى خدش يدعم هذه الأمور تسمى المواضيع. هل يمكن أن يكون تنفيذ البرامج النصية متعددة في وقت واحد، تماما كما نحن فعلت مع أسد البحر، وهذا يسمح لنا بالفعل بعد ذلك التفاعلات بين هذه العفاريت. اسمحوا لي أن المضي قدما هنا وسحب ما يصل، دعنا نقول، المواضيع، و تلعب هذه على النحو التالي. لدينا اثنين من العفاريت، كل واحد منهم سنرى للتو برنامج نصي واحد. وتلاحظ يبدو أن هناك بعض المعلومات الاستخبارية في القط في هذا واحد لانه تقترب - [تهدر] DAVID مالان: - وأقرب إلى الطيور الصغيرة. فكيف هو التشغيل الطيور؟ حسنا، دعونا نلقي نظرة على الطيور أولا. وقال النصي الطيور عند النقر فوق العلم الأخضر، انتقل إلى X يساوي 115 و Y السلبية يساوي 150. لذلك أنا أحسب للتو موقع عشوائي حيث كنت تريد الطيور للبدء، وأنا ساقط له هناك فقط بشكل افتراضي. ثم إن لم يكن للأبد لمس القط، لذلك هذا هو مختلفة نوع من بناء حلقات، ولكن الفكرة نفسها، والقيام بذلك مرة أخرى مرارا وتكرارا. طالما أنك لا لمس القط، نقل ثلاث خطوات، و إذا كنت على ترتد، إيدج، حيث انها نوع من التفكير في معنى البلياردو. لذلك هذه هي الطريقة التي يتحرك الطيور نوع من على ما يبدو عشوائيا، ولكن هذا فقط لانها كذاب قبالة الجدران في هذه الحالة. الآن القط، وفي الوقت نفسه، هو نوع من الغش. القط، عند النقر فوق العلم الأخضر، نعم، ويبدأ في بعض الموقع، موقع عشوائي - جزئيا على الأقل وفقا لاختيار الأخضر كتلة عشوائية هناك - ثم أبد IF لمس الطيور، تشغيل الصوت الأسد، وثم توقف البرنامج النصي. لذلك عندما قلت إنهاء، أو الخروج من قبل، هناك لغزا محيرا قطعة في سكراتش التي من شأنها أن تقتل فقط في ذلك برنامج ويشير لأنه نوع من عمله منطقيا. لكن على خلاف ذلك، وهنا، لاحظ ما سيحدث. نقطة تجاه الطيور والتحرك خطوة واحدة. حتى هذه النقطة نحو الطيور هو نوع من ميزة القط حدث في أنه صاروخ موجه على الطيور في الحركة، ويمكننا الآن جعل هذا البرنامج أكثر إثارة للاهتمام جميع. بدلا من الانتقال خطوة واحدة في وقت واحد في كل دورة CPU، في ضرب عدد من الجرس، إذا جاز التعبير، اسمحوا لي أن المضي قدما في تحرك، دعنا نقول، خمس خطوات في وقت والقط. انقر فوق تشغيل، والآن يجد له حقا بسرعة. إذا ضاعفنا هذا المزيد من الخطوات إلى 10، انها نوع من يذهب الحق بالنسبة له. الآن، يمكننا إعطاء الطيور، ربما، قليلا من ميزة. دعونا نذهب إلى القول الطيور وبدلا من نقل ثلاث خطوات، دعنا ننتقل له 30 خطوة. لكنه لا يزال حصلت واقعة في نهاية المطاف. حتى هنا، لدينا اثنين المواضيع. انها في السجن مع اثنين من الصفر واثنين من مخطوطات العفاريت، ولكن الفكرة بلغات أخرى هو أنه يمكنك الكتابة، أساسا، العديد من البرامج مثل هذا ويكون حقا لهم تشغيل، أو imaginarily، في نفس الوقت. الآن، هناك أيضا هذا المفهوم في البرمجة المعروفة باسم الأحداث، وهذا شيء نحن لن ترى في C، في اللغة المعروفة باسم C. وسنرى ذلك نهاية الفصل الدراسي لنحو في برمجة الويب، عندما نقدم وجافا سكريبت فكرة بناء صفحات الويب الديناميكية التي تتفاعل و مع المستخدمين. حتى في هذه الحالة، لدينا مثال بسيط جدا من اثنين العفاريت، صبي وفتاة، كل واحد منهم يكون لكل منها المواضيع، ولكن ما هذه هما التواصل بين عن طريق من ما يسمى الأحداث. لذلك اسمحوا لي هنا والمضي قدما تكبير النصي الصبي، الذي يبدو مثل هذا. عندما علم أخضر النقر عليها، القيام بما يلي إلى الأبد. إذا تم الضغط على مفتاح الفضاء، أو على شريط المسافة، ويقول ماركو لمدة ثانيتين، وهذا جمالية بحتة على الشاشة، فقاعة الكلام قليلا، ولكن بعد ذلك على الهواء مباشرة. ذلك هو بث آخر قطعة خدش هذا ممثل فئة من الوظائف في البرمجة تسمح برامج مختلفة، مختلفة المواضيع، فيما بين التواصل، بطريقة أو بأخرى لإرسال رسائل، واحدة إلى أخرى. تمرير قطعة من الورق في الصف هو نوع من التكنولوجيا منخفضة ما يعادلها. بث ذلك الحدث. ويمكنني أن أرسل هذه الرسالة، والحدث كلمة هو إجراء تعسفي تماما. الصفر في بعض الأحيان هذه القوائم المنسدلة، لذلك جئت للتو بكلمة عشوائية مثل الحدث لأنه الآن، ما يفعل الصبي عند الضغط على المفتاح هو أن يبث هذا الحدث. وإذا كنت ننظر الآن في السيناريو الفتاة، النصي لها هو سوبر بسيطة لأن كل ما تحتاج القيام به هو التصرف عندما لا النقر فوق العلم الأخضر. تم تصميم أنها للعمل عندما يتلقى الاقتباس، نهاية الاقتباس، "الحدث"، وعند هذه النقطة، وانها بالتالي الاستماع لل الحدث ما يسمى مرارا وتكرارا. بمجرد أنها يستقبل هذا الحدث، انها سوف يصيح لعبة البولو لمدة ثانيتين. وحتى تتمكن من الاستدلال ربما بالضبط ما من هذا النتيجة التالية ستكون. اسمحوا لي فوق العلم الأخضر. لا يحدث أي شيء لأنني بحاجة لعمل ما؟ AUDIENCE: الفضاء بار. DAVID مالان: الفضاء بار. يقول ماركو صبي، فتاة تقول بولو. ولكن ليس من الثابت ترميز في حد ذاتها. هذا التواصل بين بين النصوص، وحتى الآن نحن لديها القدرة على جعل البرامج أكثر تعقيدا حيث هذه هما إلى حد ما بين الاتصال. لذلك يمكن في الاتجاهات ما أخذنا هذا؟ حسنا، في مجموعة مكونة المشكلة 0، حقا، والهدف من ذلك هو وقتا ممتعا مع سكراتش. للطبعة القراصنة، سيكون لديك متعة مع بدلا المزيد نسخة متطورة من الصفر دعا BYOB، وبناء هل لديك كتل، ولكن الفكرة هي نفسها. عليك أن تكون قادرا - نعم، كان ذلك متعمدا. جاء ذلك من بيركلي. BYOB هو إصدار الطبعة القراصنة من هذا، ولكن كل التركيبة السكانية، الإصدار القياسي، والإصدار القراصنة على حد سواء، في الهدف في متناول اليد للأسبوع القادم هو في الحقيقة مجرد الغوص في عميق، والحصول على أيديكم القذرة مع البرمجة، وجعل شيء مثير للاهتمام، وجعل شيء التفاعلية، وجعل شيء الفنية، يسخر شيء في الواقع التظاهر، بحيث في نهاية الأسبوع، سيكون لديك مشروع، ليس فقط لpset الخاص CS50 الأولى، ولكن سيكون لديك يذكر شيء يمكنك اظهار لفي أننبرغ الأصدقاء أو العائلة حتى من قبل تحميلها على الموقع معهد ماساتشوستس للتكنولوجيا. وهكذا كما قلت يوم الاربعاء، ونحن نتوقع 90٪ من الدرجة، عموما، للقيام الطبعات القياسية. ندرك أن هناك أيضا منفذ لهذا أولئك منكم الذين قد تجد نفسك إلا قليلا بالملل مع أساسيات وتريد حقا أن الغوص في صياغة رؤية وكنت بالفعل مع خلفية لها في مباراة ودية قبل أكثر هذه البيئة. لذلك اسمحوا لي سحب ما يصل مثال واحد آخر أن واحدا من السابق لدينا الطلاب هنا واقول فعل شيئا قليلا من خلال الأغنية. أن وبالمثل، لأن هذا يلعب، والتفكير حول كيفية يمكنك أن تذهب نحو تنفيذ هذا البرنامج بدقة باستخدام نفس هذه كتل بناء، وقليلا من العشوائية الزائفة، وعلى قليلا من أغنية مألوفة. لو استطعنا رفع حجم قليلا؟ [MUSIC - "انها تمطر MEN" THE WEATHER GIRLS] DAVID مالان: هذا كل شيء لCS50. سوف نرى لك يوم الاثنين. [تصفيق]