J. DAVID مالان: لذلك هذا هو CS50. وكان هذا CS50 نفسه كولتون أوجدن، لأكثر من من هو الموسيقى التي يمكن تحميل في soundcloud.com/cs50. 

حتى اليوم ونحن نركز كل أكثر على فن البرمجة. ونحن نأخذ حيث غادرنا من الأسبوع الماضي، مع التركيز على خدش، والتي كانت هذه لغة برمجة رسومية. وتأخذ الأمور إلى مستوى أدنى، باستخدام البرمجة التقليدية اللغة المعروفة باسم C. ولكن على طول الطريق، وتحقيق أن نفس الأفكار نحن تحدث عن يوم الجمعة الماضي سوف تتكرر ليس فقط في هذا لغة C، ولكن في معظم كل الآخرين أن ننظر في هذا الفصل الدراسي. 

لذلك نحن دعا هذا الشيء هنا ما آخر مرة؟ هذا هو ممثل بيان. لذلك نحن دعا هذا البيان. وأنه لا شيء. انها تعليمة و قد تنفيذ الكمبيوتر أو خدش. والآن فصاعدا، دعونا نبدأ أيضا داعيا شيئا من هذا القبيل وظيفة، لأسباب سنرى قريبا. 

وفي الوقت نفسه، رأينا أشياء من هذا القبيل. وهذه هي عموما يعرف ما بناء؟ 

الجمهور: حلقة. 

J. DAVID مالان: حتى حلقة. لذلك واضحة جدا. حرفيا تفعل ما تقول. والصفر، وإذا كنت ترغب في الالزام أكثر من قطعة اللغز في هناك، قطعة سوف ينمو لأنها تناسب. وسنرى في ذلك C يمكننا أن نفعل نفس الشيء. 

نوع آخر من الحلقة، رغم ذلك، في خدش قد يكون إلى الأبد، أو هناك أي عدد من المناهج الأخرى. ولكن دعونا نلقي أكثر نظرة اختصاصي، مع وجه التي من المحتمل دراية تامة، في الحلقات بشكل عام. مارك زوكربيرج: واحد شيء أن أجهزة الكمبيوتر هي جيدة حقا في غير تكرار الأوامر. كشخص، وكنت الحصول على حقا إذا كنت بالملل كان عليها أن تفعل الشيء نفسه الكثير من مرات على التوالي. ولكن جهاز كمبيوتر يمكن أن تفعل الشيء نفسه ملايين أو حتى بلايين المرات، وليس الحصول على بالملل، وتكون قادرة لتنفيذ ذلك بشكل جيد حقا. 

هكذا على سبيل المثال، إذا كنت أردت أن أتمنى للجميع في الفيسبوك عيد ميلاد سعيد من خلال إرسالهم رسالة بريد إلكتروني، قد يستغرق مني أكثر من القرن لكتابة فعلا كل من هذه الرسائل للجميع. ولكن مع بضعة أسطر من التعليمات البرمجية، يمكنني لديها نظام ارسال بريد الكتروني الى الجميع الراغبين في الفيسبوك لهم عيد ميلاد سعيد. وهذا ما هي الحلقات والسبب انهم قيمة وشيء أن أجهزة الكمبيوتر يمكن القيام به بشكل جيد جدا. 

J. DAVID مالان: حتى إذا كنت قد تم المتلقي بعض من CS50 و الفضاء دروببوإكس للفي وقت متأخر، هذا هو الواقع بالضبط ما كنا تفعل، باستخدام رمز تماما مثل ذلك. لدينا أساسا كبيرة جداول البيانات التي في تم إدخال الناس بهم أسماء وعناوين البريد الإلكتروني. وكتبنا القليل من التعليمات البرمجية التي يمكن تكرار عبر هذه العناوين وبصق عناوين فريدة من نوعها في قدم حالة أي شخص عدة مرات. وبعد ذلك، نرسل ل الآلي البريد الإلكتروني من بوت CS50، و بما في ذلك رمز القسيمة. 

الآن نحن ننظر أيضا في هذا بناء آخر مرة. وهذا خاص مثال على ماذا؟ لذلك، نعم، وهو تعبير منطقي. والمقصود شكل لالتقاط ذلك أيضا. كل هذه الأسئلة ل تشكيل صحيحة أو خاطئة في سكراتش سوف ننظر شيئا قليلا من هذا القبيل. ونحن نسمي هذا تعبير منطقي. هذا هو في الواقع صحيحة أو خاطئة، نعم أو لا. انها وسيلة من الرد على السؤال. 

وفي الوقت نفسه، ويمكنك استخدام هذه منطقية تعبيرات داخل بنيات مثل هذه، والتي من بالطبع هناك شروط أو الفروع، والمثل الشوك في الطريق. ويمكن أن ننظر ليس فقط مثل هذا، ولكنها يمكن أيضا ويرتبط إلسس معهم. ويمكن أن يكون في الواقع وسيلة ثلاثة شوكة في الطريق أو شوكة رباعية في الطريق، وذلك ببساطة عن طريق تعشش هذه الأشياء، كما سترى في سكراتش إذا كنت لم تقم بذلك بالفعل. وكما يمكنك القيام به في C كذلك. 

دعونا نلقي اختصاصي آخر ننظر إلى alumnist، كذلك، الذين قد يقدم نهجا مختلفا دعت الظروف إلى هذه الأشياء. 

بيل غيتس: جعل الناس القرارات كل يوم. على سبيل المثال، قبل أن تذهب خارج لك نوع من بيان لها إذا أن يقول: إذا انها تمطر ثم أنا بحاجة للحصول على سترتي. وأجهزة الكمبيوتر مدهشة بمجرد تقرر تلك الأنواع من البيانات، يتمكنوا من تنفيذ موثوق تلك الأشياء بسرعة لا تصدق. وحتى برنامج كمبيوتر حقا هو قليلا من الرياضيات وبعض إذا البيانات حيث يحصل اتخاذ القرار. 

J. DAVID مالان: وذلك تعلمون، كان عليه الناس مثل بيل غيتس، بول آلن، وغيرها حقا أن ركل قبالة ما يسمى أجهزة الكمبيوتر الشخصية الثورة منذ بضع سنوات. فكرت، قبل أن يغوص في بعض administrivia، كنا يحكي قصة من البوكيرك، متحف نيو مكسيكو للتاريخ الطبيعي والعلم فيها بعض من بيل غيتس وأقرب قصص بول ألن وروى كيف لدينا الآن أجهزة الكمبيوتر وأجهزة ماكينتوش اليوم وأكثر من ذلك. لهذا، على الرغم من أننا نحتاج اثنين من المتطوعين الذين لديهم أصوات السرد جيدة جدا لقراءة السيناريو بصوت عال. 

حسنا، ماذا عن في العودة إلى هناك. تأتي على ما يصل. وماذا عن هنا أمام. هيا. اتخاذ الأماكن الخاصة بك هنا. كما يا رفاق الخروج، وزوجين الإعلانات الإدارية. باجتزاء، وعملية من اختيار القسم، ستبدأ هذا الأربعاء حتى الجمعة. أكثر على أن هذا القادمة الاربعاء في المحاضرة. 

أقسام السوبر، وفي الوقت نفسه، هي شيء التي نقدمها الأسبوع المقبل حيث فئة كاملة مدعو للمشاركة في نطاق واسع إلى حد ما أقسام، واحد أكثر مريح، واحد أقل راحة. وسنعلن تفاصيل لذلك، وكذلك، في وقت لاحق هذا الاسبوع. 

أقسام وفي الوقت نفسه، أنفسهم، وسوف يبدأ في الأسبوع الثالث من الدورة، مؤشر الصفر، وهو ما يعني تلك هي بضعة أسابيع الخروج. لذلك لا داعي للقلق. لم تكن قد غاب بعد أي شيء من هذا القبيل. وفي الوقت نفسه في غضون ذلك، إذا كنت لديك أي أسئلة إداريا، البريد الإلكتروني نفسي وديفون وغابي وروب في هذا العنوان هنا. 

وأخيرا، مشكلة مجموعة 0 هو، بطبيعة الحال، خارج. كنت قد لاحظت ذلك على الموقع الإلكتروني للدورة و. ينبغي أن توفر لك مع جميع الأجوبة على الأسئلة قد يكون لديك على طول الطريق ل الشروع في العمل مع مجموعة مشكلة. لكن إذا وجدت نفسك في حاجة إلى يد العون، بكل الوسائل حضور ساعات العمل، الاثنين، الثلاثاء، الأربعاء والخميس هذا الأسبوع في المساء في أربع قاعات لتناول الطعام. نرى أن هناك URL للتفاصيل من حيث تكون ساعات العمل. 

الآن دعونا نجتمع لدينا ضيفين هنا اليوم. ما اسمك؟ 

JAY PAUL: جاي بول. 

J. DAVID مالان: جاي بول، لطيف لمقابلتك. 

HIKARI: هيكاري. 

J. DAVID مالان: هيكاري؟ 

HIKARI: هيكاري. 

J. DAVID مالان: هيكاري. تشرفنا كذلك. جاي بول وهيكاري ديك في أمامهم على هذه الموسيقى تقف اثنين من النصوص أنني المطبوعة هذا الصباح من نيو مكسيكو متحف التاريخ الطبيعي والعلوم. وما ظننت كنت تفعل في النفقات العامة وتصاحب التلاوة الخاصة بك البرنامج النصي وهذا التاريخ مع بعض الصور المرئية، أي مفاجآت. 

وما فعلته مقدما وprehighlight على السيناريو الخاص بك ما يجب أن يقرأ، وماذا يجب أن تقرأ. وسنقوم أساسا الفقرات مجرد بديلة. لذلك فمن بكثير مثلك قد فعلت في الدرجة الإنجليزية. وهذا ما يجبر حقا الجمهور إلى الاعتقاد في قصة هنا. نحن العرب؟ حتى القصة هنا، لدينا BASIC، وتبدأ في كامبريدج. 

JAY PAUL: كان شتاء، 1974، في كامبريدج، ماساتشوستس حيث يمكن أن يكون الشتاء البارد. واللحية، طويل الشعر التسرب من الكلية اسمه بول ألين والكدح في هارفارد مربع، واستيعابها في أفكاره. له الشغل الشاغل في تلك الأيام وكيفية الحصول على صديقه بيل غيتس، إلى ترك المدرسة والذهاب في العمل معه. HIKARI: الاثنان قد ذهب بالفعل من خلال عدد من المشاريع التجارية معا، ابتداء من البحيرة المدرسة في سياتل حيث التي كانوا يتقاضونها في الوقت الكمبيوتر مجانا ل اختبار الحاسوب PDP-10 في وقت المحليين تقاسم الشركة. ان الخطة كانت الأخيرة لإنهاء المدرسة وتشكل شركة برمجيات. وكان ألين غادر واشنطن جامعة الدولة. ولكن في اللحظة الأخيرة، غيتس قررت التمسك هارفارد. 

JAY PAUL: في ذلك اليوم، عبور هارفارد مربع، رصدت ألين يناير، 1975 قضية للإلكترونيات الشعبية تحت عنوان وقف الأرض، الإسعافات الحاسبات المتوسطة في العالم لمنافسة النماذج التجارية. كان تحت عنوان صورة لمربع صغير تزين مع أضواء والتبديل. كان يسمى نسر MITS 8800. وعرف ألن هذا هو ما كان قد تبحث عنه. 

HIKARI: جاءت أيام المناقشة. ألن وغيتس يفهم أهمية نسر. قد تحدثوا في كثير من الأحيان حول المعالجات وكانوا ينتظرون لمعرفة ما سيتم القيام به معهم. الآن هناك عدة الكومبيوترات الصغيرة على غطاء للإلكترونيات الشعبية. وكان على ما يبدو أي برامج حتى الان. تصوروا أمة المبرمجين تنازلي على MITS. وهكذا وصفوه إد روبرتس، رئيس الشركة، يدعون أن لهم نسخة من لغة البرمجة الأساسية جاهزة تقريبا للنسر. لم يفعلوا. وروبرتس يجب أن يعرف أنهم لم يفعلوا ذلك. كان الحصول على 10 مكالمات يوميا من الناس الذين لديهم استعداد BASIC تقريبا. وله استجابة الأسهم كان "أول شخص الذي يظهر مع العمل BASIC يحصل على العقد ". 

JAY PAUL: غيتس وألن لم ير أحد نسر. انهم لم يسبق له مثيل حتى إنتل المعالج 8080 في قلب نسر. لكن بضع سنوات في وقت سابق وكان ألين مكتوبة برنامج على جهاز كمبيوتر المركزية أن يحتذى العملية من إنتل السابق المعالجات الدقيقة. وهذه المرة أنها أن تفعل الشيء نفسه. 

HIKARI: مع إنتل 8080 دليل إلى جانبه، جلس ألين أسفل في الكمبيوتر هارفارد PDP-10 وكتب المضاهاة والبرمجيات الأدوات اللازمة للقيام البرمجة. وفي الوقت نفسه توقفت غيتس يجري إلى الطبقات وكرس نفسه لتصميم BASIC، استخدام كل خدعة كان يعرف للحصول على الحجم نزولا تحت 4 كيلو بايت. 

JAY PAUL: خارج في البوكيرك، حصلت إد روبرتس مكالمة من غيتس طلب للحصول على تفاصيل حول كيفية و التعامل مع نسر الروتينية محددة. لم يكن أحد قد طلب من أي وقت مضى من قبل. وبدأت روبرتس للحصول على المهتمين. 

HIKARI: مع تطور الأدوات وتصميم جاهزة، كتب غيتس وألن رمز على PDP-10، تجنيد الطلاب في جامعة هارفارد آخر، مونتي دافيدوف، لكتابة الروتينية الرياضيات. بعد ليلة النهائية لل البرمجة، وحصلت ألين على متن طائرة لتقديم BASIC لMITS. أمضى ركوب الطائرة من القلق. ومرة أخرى في كامبريدج بوابات يثير القلق. قد اختبروا احتياجاتهم الأساسية و أنها عملت على المحاكي. ولكن ماذا لو كان المحاكي الخطأ؟ JAY PAUL: كما الطائرة اقترب البوكيرك، أدركت أن ألين لهم BASIC، الآن الوارد بدقة على لفة صغيرة من لكمات ورقة الشريط، فإن تكون عديمة الفائدة دون منفصلة برنامج، ودعا محمل، أن سيقول نسر كيف لقراءة الشريط ورقة الوجود تغذي آلة المبرقة. اخرج دفتر ملاحظاته وبسرعة خربش أسفل برنامج محمل في لغة التجميع، ثم يدويا ترجمة ذلك في 1S و 0s ان نسر فهم. 

HIKARI: ألين أتوقع نظيفة، قليلا، شركة التكنولوجيا العالية يديرها الرجال في الدعاوى التجارية. حتى انه فوجئ عندما التقى روبرتس له في المطار تبدو وكأنها مزرعة اليد. وكان روبرتس يفاجأ أيضا. عندما أسقطت هارفارد مبرمج في فندق باهظة الثمن، كان ألين على الاعتراف بأن فإنه لا يستطيع الغرفة. 

JAY PAUL: MITS، في حد ذاته، و تقع في مركز تجاري قطاع المتربة. داخل على تشوش كان على طاولة العمل نسر حملت مع 5 كيلو من الذاكرة ومتصلة بواسطة كابل إلى آلة المبرقة. روبرتس وكبير المهندسين، بيل ييتس، انتظرت بترقب كما مثبت ألين لودر له البرنامج إلى نسر. بدأت المبرقة الأزيز كما سحبت الشريط الورق من خلال قارئ الشريط. استغرق الأمر ربما 15 دقيقة لتحميل البرنامج. ثم المبرقة طباعة فجأة موجه الذاكرة، ثم موجه جاهز، وبدأت ألين كتابة أوامر قلة من الاختبار. ولدهشة الجميع، عمل البرنامج. كانت هناك البق، بطبيعة الحال. ولكن الشيء الرئيسي هو أنه يعمل. 

HIKARI: وفي وقت لاحق، في طريقهم إلى $ 3،00 طعام الغداء في بانشو، طار دبور في نافذة صغيرة الشاحنات واكتوى ألين على الذراع. ولكن في هذه النقطة لا شيء يمكن أن يفسد المزاج. كان نسر الآن BASIC لها، و الأول البرمجيات التجارية لشراء منزل الكمبيوتر، التي أدلى بها بول ألين وبيل البوابات، والتعامل ومايكروسوفت. 

J. DAVID مالان: كثير بفضل لدينا اثنين من القراء. 

[تصفيق] 

J. DAVID مالان: الآن لديك اختيارك، قبل أن تغادر، من سباركلي أو توهج في dark-- أوه، الانتظار ثانية واحدة، wait-- سباركلي وتوهج في الظلام الفيل من CS50 نفسه تشنغ قونغ. HIKARI: فصيل عبد الواحد، وشكرا لكم. J. DAVID مالان: جميع الحق، شكرا جزيلا. [تصفيق] J. DAVID مالان: القصة الحقيقية لذلك. وهذا يعني أن جميع هذه آلات والسهولة التي نحن استخدامها الآن واتخاذ أمرا مفروغا منه، حقا بدأت هنا، فقط بضع خطوات من هذا المسرح الفعلي. والآن اليوم، إذا كنت قد يكن، هذا هو ماكسويل دوركين، الكمبيوتر علوم البناء، أيضا قاب قوسين أو أدنى. وفي الطابق الثاني من هذا لا تعليق بناء ثلاث صفحات من شفرة المصدر الأصلي الذي كتب بيل غيتس وبول ألين. في الواقع، إذا كان استخدام لك تكبير في ترون ليس فقط أسمائهم في النوع الأصلي، ولكن أيضا توقيعاتهم التي تزين و بضع سنوات عندما زار الأخير. 

ولكن ما كان مقنعة خاصة حول هذا هو ما كانوا يقصدونه للقيام وكان لكتابة البرنامج الذي من شأنه تمكين الآخرين للكتابة برامج خاصة بهم. في ذلك الوقت كان هناك مع كل هذا الجهاز نسر التي أدلى بها MITS. وكل ما يلزم هو وسيلة لل مما يجعل من السهل للهواة والناس تريد منا في هذه القاعة لبرنامج الواقع أنه بدون فهم بالضرورة رمز التجميع، أو آلة رمز، أو لا سمح الله، 0S و1S. نحن المبرمجين، مثل تلك في هذه الغرفة، ونحن تريد أن تكون قادرة على التعبير عن أنفسنا أكثر بكثير مثل رمز زائف حتى لو انها أكثر قليلا أحمق من الصعب إرضاءه تحدثنا الأسبوع الماضي. نحن لا نريد لكتابة رمز مثل هذا، التي لم بول ألين وبيل جيتس. ونحن، بدلا من ذلك، تريد كتابة التعليمات البرمجية التي يبدو قليلا أكثر ملاءمة للمستخدمين. 

الآن هذه هي لغة تعرف باسم BASIC. وأرقام الأسطر هناك ما ببساطة استخدامها لترقيم الأسطر من التعليمات البرمجية أن كنت تكتب. ليس لدينا حتى ل فعل ذلك في هذه الأيام. لكن يمكنك أن ترى هنا كيف PRINT "مرحبا، العالم" أن الواقع يفترض أن طباعة فقط. وما بيل وبول فعلت ذلك كان تمكين الناس من كتابة التعليمات البرمجية مثل هذا بدلا of-- إذا كنت تأخذ نظرة على wall-- علوم الكمبيوتر قانون مثل هذا. 

في الواقع، CS50 مؤخرا كان فرصة للجلوس مع البروفيسور هاري لويس في قسم علوم الحاسوب، الذي تدرس الواقع بيل غيتس قبل بضع سنوات، ويقف هنا قبل تلك الصفحات الثلاث مقتطفات. دعونا نلقي نظرة. 

HARRY لويس: ماذا لديك هنا هو قائمة قطعة في وقت مبكر من البرمجيات كتبه بيل غيتس وبول ألين، مؤسسي مايكروسوفت. ذلك رمز مثير للاهتمام لسببين. أولا وقبل كل شيء، أصبح أول منتج مايكروسوفت، الذي كان مترجم ل لغة البرمجة الأساسية. وثانيا، كان هذا واحدة من المحاولات الأولى لخلق مترجم عادية جدا الناس يمكن استخدام أجهزة الكمبيوتر الشخصية. 

لذلك كان بيل غيتس و الجامعية في جامعة هارفارد. بدأت التدريس في جامعة هارفارد في عام 1974. وقد تم ذلك في عام 1975. لذلك كان من أوائل في مسيرته وفي وقت مبكر من حياتي المهنية. أنا في الواقع يدرس في بيل دورة حول هذا الوقت. وكان بول ألن ليس طالب في جامعة هارفارد، لكنه كانت مدرسة ثانوية زميل بيل غيتس. إذا كنت تأتي والبحث في القائمة، وعليك تجد في الواقع ثلث اسم ومونت دافيدوف، الذي كان زميل غيتس هنا في جامعة هارفارد. 

حسنا، هنا ل تعليق مثيرة للاهتمام هنا. تقول "في 4K تستطيع حذف الجذر التربيعي ولكن لأن الحلقات لا تزال تعمل ". حسنا، ماذا يعني ذلك هو أن هناك كانت طريقتان لتجميع هذا البرنامج. كان واحدا لتشغيل على نسخة من هذا الكمبيوتر نسر هذا فقط كان 4K كلمات الذاكرة، 4،096 الكلمات من الذاكرة. لكن النسخة كبيرة زيارتها 8K. وهكذا ما يقول هذا هو أنه في نسخة 4K كان عليك أن حذف بعض مدونة لجعله مناسبا. واحدة من الأشياء التي سيتم حذفها سيكون روتين الجذر التربيعي. ولكن يبدو أن للا يزال ينبغي الحلقات العمل حتى عندما كنت تجميع أسفل لمجرد نسخة 4K الكمبيوتر. J. DAVID مالان: حتى واحد من الموضوعات، كما سنرى في علوم الكمبيوتر، هذه هي فكرة طبقات والتجريد، وحقا يقف على أكتاف من الناس الذين جاؤوا قبلنا، لا خلافا لبعض من بيل غيتس وبول آلن السرد هنا. وما يعنيه هذا هو أننا اليوم يمكن أن تتخذ ل المسلم به أن الأشياء هي في الواقع أسهل بالنسبة لنا لكتابة التعليمات البرمجية. في الواقع رمز، كما قلنا في الجمعة، يعرف أكثر من الناحية الفنية كما شفرة المصدر. وهذا مثل اللغة الإنجليزية في بناء الجملة هذا هو أكثر السليم وتعريف أكثر جيدا من شيء مثل رمز زائف، ل التي لا يوجد تعريف رسمي. 

واليوم ما نحن ذاهبون التركيز على هو رمز المصدر يشبه هذا الذي المسلم لأول وهلة يبدو خفي تماما. وبصراحة، انها وسيلة أكثر جماليا تعقيدا من البرنامج الأساسي هو. يفعل كل هذا البرنامج، أذكر، وماذا نقول؟ فإنه يطبع فقط "مرحبا العالم". وبعد النظر في كل من الاشياء نحتاج للالتفاف حول هذه العبارة بسيطة جدا. ولكن قبل فترة طويلة كل هذه السطور وأكثر لن يكون له معنى أفضل بكثير لك. 

وتدفق على النحو التالي. ما نحتاجه في حوزتنا هو اتخاذ رمز، مثل مصدر التعليمات البرمجية التي رأينا فقط. ونحن بحاجة إلى برنامج جديد لتشغيله خلال. نحتاج الخوارزميات التي يمكن تحويل شفرة المصدر، ومثل هذا، إلى رمز الكائن، 0S و1S. وبعبارة أخرى، ما ونحن في طريقنا لمعرفة اليوم وكيفية القيام بذلك، والكتابة رمز المصدر في القمة، تمريرها كمدخل إلى خاص برنامج يعرف باسم مترجم، ونحن في طريقنا لإنتاج رمز الكائن. الذي هو مجرد وسيلة لنزوة قائلا سنتخذ شيء يشبه هذا، تمر عليه في برنامج يسمى مترجم، إنتاج رمز الكائن يشبه هذا. 

لذلك فان هذه هي حرفيا أنماط 0S و1S تكون مفهومة من قبل كمبيوتر إنتل في هذه الأيام، أنه إذا فسرت من قبل وحدة المعالجة المركزية، أدمغة داخل جهاز كمبيوتر، ستطبع حرفيا، بكل بساطة، "مرحبا العالم". الآن هناك طريقة أكثر 0S و1S مما كنت آمل قد تكون ضرورية لذلك. ولكن هذا لأننا بناء على قدر كبير من التعقيد أننا يمكن أن تتخذ من الآن فصاعدا أمرا مفروغا منه. وبعبارة أخرى، والكثير من الناس الذكية قدموا لنا الكثير من الأدوات باردة والبرامج القوية التي تربطنا ويمكن الآن تقديم مشاريع خاصة بنا. 

لذلك دعونا نبدأ. بينما يوم الجمعة الماضي، و لمشكلة تعيين 0 هذا الأسبوع، فسوف يكون اللعب في العالم الذي يبدو مثل هذا. ابتداء من اليوم ومشكلة مجموعة 1 في الاسبوع المقبل، رمز سوف ننظر قليلا أكثر خفي، ولكن وظيفيا سوف تكون هي نفسها. حتى اشعار أعلى هو خدش، أسفل هو C. بصراحة خدش هو الكثير من المستخدمين ودية وسهلة المنال. ولكن إذا قارنت الآن كبار بصريا ل أسفل، هناك نوع من 1-1 المراسلات بين قطع اللغز واللغة نحن على وشك أن تلعب معه. على وجه الخصوص، ويقول، و لغز الأزرق قطعة حتى اعلى، ما يعادل ما يبدو إلى ما الكلمة أو عبارة خاصة في هذه اللغة دعا C؟ الجمهور: Printf. J. DAVID مالان: Printf. وهذا يعني الطباعة تنسيقها. وهذا مجرد نزوة طريقة للقول في printf C سيكون بيان أو وظيفة التي تقوم بطباعة شيء على الشاشة. ماذا الطباعة إلى الشاشة؟ مهما كنت أقول ذلك لداخل من يقتبس، داخل قوسين. ذلك مرة أخرى، باعتراف الجميع، هناك الكثير من الاشياء أن لديك لنضع في اعتبارنا، قوسين، ونقلت والفاصلة المنقوطة، وكل هذا. ولكن كل ذلك هو نوع من جانب نقطة. الوجبات الجاهزة للاهتمام في الوقت الراهن هو أن كتلة رأي في خدش ما يعادل إلى حد كبير البيان printf في C. 

وفي الوقت نفسه، وقطعة اللغز الأصفر حتى اعلى، عند النقر عليها العلم الأخضر، ربما يعادل ما الكلمة الرئيسية هنا؟ الجمهور: الرئيسية. J. DAVID مالان: هكذا الرئيسية. ربما الباحث، ربما الفراغ. ولكن النوع الرئيسي من الأصوات مثل من المهم، بل هو عليه. لذلك عندما ينقر العلم الأخضر هو، مرة أخرى، وقطعة اللغز التي تنطلق في برنامج سكراتش بأكمله. ولكننا سنبدأ الآن الدعوة أن أهم، هذه الوظيفة المعروفة والرئيسية. 

الآن سنقوم في الوقت نفسه تعميم هذا على النحو التالي. يمكن أن نسميه أقول ظيفة. وأنه قد تبدو على وجه التحديد من هذا القبيل. حسنا، ماذا عن الحلقات؟ إذا كنا نريد لبدء تحويل أو ترجمة أكثر في خدش لC، هذا شيء هنا على ما يبدو فقط يقول "مرحبا العالم" إلى الأبد. حتى إذا كنت ربط هذه مخطوطات مع القط في خدش، انها مجرد الذهاب للحفاظ قائلا في نوع من فقاعة الكرتون، "مرحبا العالم، مرحبا العالم، مرحبا العالم "، nauseum الإعلانية، إلى الأبد. إذا كنا نريد أن نفعل شيئا من هذا القبيل في C، انها سوف ننظر قليلا خفي. ولكن يمكننا تحقيق نفس النتائج، كما سنقوم في نهاية المطاف معرفة، مع جملة من هذا القبيل. انا ذاهب الى استخدام printf مرة أخرى، لأنه في نهاية اليوم أريد أن طباعة "مرحبا العالم". وأنا على ما يبدو باستخدام الكلمة ليست إلى الأبد. انها بدلا كلمة الوقت. ولكن فقط لغويا في اللغة الإنجليزية، في حين نوع من يقترح نوعا من حلقة أو دورة. 

بحيث يحدث أن تكون الكلمة التي تستخدم C. وبينما صحيح، لماذا حين صحيح يعني فعليا إلى الأبد؟ حسنا، في حين، كما سنقوم قريبا نقدر كل أكثر، لديه هذا جملة محاطة بأقواس بجانبه حيث يمكنك وضع تعبير منطقي. وطالما أن التعبير هو الصحيح، هذا الرمز، كما تدل بين هذين الأقواس المعقوفة ونحن سوف ندعو لهم، سوف نستمر تشغيلها مرة أخرى ومرة ​​أخرى. 

ذلك صحيح هو الصحيح. وذلك في حين سيلة حقيقية مجرد القيام بذلك إلى الأبد. انها تقريبا غبي بناء للتعبير عن نفسك. لكن لم يكن هناك إلى الأبد الكلمة في C. بينما كان هناك. وكان هناك بسيط جدا التعبير منطقية مثل صحيح. وحتى هذا، وسنرى، يحقق نفس النتيجة. 

وإلا كيف يمكن أن تقوم بتنفيذ حلقة؟ حسنا، في خدش كنت قد رمز القرص الثابت عدد محدد التكرارات في حلقة هنا. وهكذا هذا هو بالضبط ما كنا قد تفعل في هذا الإصدار من C، حيث لدينا ما يسمى لحلقة. وللحلقة هنا يجري تكرار، بشكل غامض إلى حد ما، من القيمة 0 على ما يصل ولكن لأقل من 10. 

الآن المتغيرات في خدش. قد لا يكون لديهم مناسبة لاستخدام هذه. ولكن ما هي النقطة، بشكل عام، متغير لم نقول الأسبوع الماضي؟ ما هذا؟ 

الجمهور: نقاط. 

J. DAVID مالان: لنشير؟ أوه، نقطة. OK، تتبع من النقاط، على سبيل المثال، في لعبة. أو أكثر القيام عموما ما مع متغير؟ ما هي فائدة لهم؟ 

الجمهور: الذاكرة. 

J. DAVID مالان: نعم، حتى الذاكرة. انها لتخزين شيء. وهذا النوع من سخيفة أنا البصرية المستخدمة كانت آخر مرة مثل هذا عاء زجاجي. وإذا أردنا أن تخزين شيء داخل متغير، على سبيل المثال الآن ل القيمة هي ستة لأن هناك هي ست كرات بينغ بونغ هنا. انها مجرد نوع من التخزين الحاوية التي تحت غطاء محرك السيارة ويتم تنفيذ مع بت، 0S و1S، ولكن يحدث كمبيوتر للقيام بذلك. 

حتى في خدش، وإذا كنا تريد أن يكون متغير، يمكننا استخدام كتلة البرتقال من هذا القبيل. وسوف ندعو في هذا العداد في هذه الحالة بالذات. أنا تهيئة إلى 0. وما أنا ثم تفعل؟ إلى الأبد، ويقول العداد، التي إذا كنت تلعب مع أنه في خدش، عليك انظر فقط خدش. القط أو أيا كان زي كنت وضعت على له سيتحدث الرقم في السؤال. 

التغيير مكافحة بنسبة 1 هي مثل تزايد بنسبة 1. وهكذا هذا هو الذهاب الى عد من ما ماذا في ذلك؟ من 0 سمسم اللانهاية، أو حتى فواصل خدش، أو حتى نوع من يفقد الاهتمام في الفرجة كيف عالية فيستطيع فعلا. 

فكيف يمكن أن نقوم بتحويل هذا إلى C؟ انها سوف ننظر قليلا خفي. ولكن مرة أخرى، إذا نظرتم الى كل هذه الخطوط بشكل فردي أنها نوع من تشكيلة الفريق عموما. لذلك يبدو كثافة العمليات هو الذهاب الى لدينا بعض معنى خاص في C. سنرى ذلك مرة أخرى. بوصفها جانبا فهذا يعني عدد صحيح. ذلك يعني مجرد عدد. لذلك هذا هو نوع من الزجاج وعاء أريد، واحد التي يمكن تخزين أرقام، لا كرات بينغ بونغ. وانا ذاهب الى استخدام علامة المساواة هناك لتعيينه قيمة 0. ولهذا تماما مثل مجموعة مضاد ل0، ولكن في C. 

وفي الوقت نفسه، بينما صحيح، وكان ذلك ما يعادلها، بطبيعة الحال، إلى الأبد، على الرغم من انها خفي قليلا، ثم داخل الأقواس المعقوفة. ويمكنك التفكير في هذه الأقواس المعقوفة، حيث يمكنك كتابة على لوحة المفاتيح، كما يجري حقا مثل انحناء في هذه الكتل حلقة صفراء في خدش. تحتضن عدة أسطر من التعليمات البرمجية. 

Printf هو الحصول على مخيف قليلا لأنني الآن رؤية يقتبس ليس فقط بين قوسين. ولكن ماذا هو جديد بناء جملة في هذا المثال؟ هناك في المئة د. ثم مائل ن هناك. نحن لم نرى ذلك من قبل، حتى على الرغم من أنني لم أذكر ذلك. ثم هناك فاصلة. وبعد ذلك هناك عداد. 

ولكن سنرى في مجرد لحظة أن هذا هو مجرد وسيلة معيارية للقول طباعة "رقم عشري"، الاقتباس، نهاية الاقتباس، بعض رقم عشري. ولكن انا ذاهب لاقول لكم لاحقا ما هو عدد عشري. حتى أن هناك فاصلة في هذا الخط قائلا printf، يعني المضي قدما والطباعة بعض رقم عشري. أوه، وبالمناسبة، فإن العدد مهما كانت قيمة هذا المتغير. وذلك لجعل هذا أكثر واضح، سنرى مثالا قبل فترة طويلة تنطوي بالضبط printf في سياق برامج حقيقية C. 

الآن فقط لانهاء بعض من هذه التركيبات. التعبيرات المنطقية، قد لا يكون مناسبة لاستخدام هذه في البرنامج ولكن قد بشكل جيد للغاية، خاصة إذا استخدام الظروف. وذلك من هذين المثالين الصفر يعني إذا كان x أقل من ذ، أو إذا كان x أقل من ذ و y أقل من ض، كيف يمكن أن نترجم ذلك؟ 

حسنا، في C انها مجرد سوف تبدو هذه. وهناك القليل خفي، أكثر قوسين، بعض الوات غريبة، ولكن في الأساس أفكار بسيطة بقدر ما هي في قطعة اللغز العالم. نحن ببساطة فحص إذا كان هناك شيء أقل من شيء آخر. 

ماذا عن الشروط؟ باختصار باللغة الإنجليزية، ماذا يفعل هذا قطعة من التعليمات البرمجية خدش لا هل يقول؟ 

الجمهور: يقارن رقمين. 

J. DAVID مالان: يقارن اثنين أرقام، وإذا كان x أقل من ذ تقول قدر. إذا كان x أكبر من ذ كما تقول الكثير، وآخر إذا كان x يساوي Y تقول قدر. الآن أين x و y تأتي من؟ من يدري. هذه قطعة من خدش الكود هو خارج السياق. ولكن ما نريد القيام به الآن هو ترجمة هذا لمجرد لحظة لنرى. 

بحيث يمكنك الحصول على راحة هذا الأسبوع في مشكلة تعيين 0 اللعب في هذا العالم على اليسار، وتحقيق أن الأفكار لا تتغير هذا الأسبوع أو المقبل أو بعده. نحن ببساطة الذهاب الى البدء في كتابة الأشياء بطريقة مختلفة مع شركائنا لوحة المفاتيح بدلا من الماوس لدينا. 

حتى إذا كان x أقل من ذ، و هناك بعض قوسين هناك، ثم هناك بعض الأقواس المعقوفة مرة أخرى لأنه نوع من تغليف تماما مثل قطع اللغز الصفراء القيام به. وانا ذاهب الى printf س أقل من ذ وهكذا دواليك. 

ما هو لطيف حول C، كما ترون هنا، هو أنك لا تحصل على هذا التداخل، التعشيش، تعشش هذا بالضرورة الذهاب الى دفع التعليمات البرمجية إلى اليمين. هل يمكن أن يكون كل شيء بدلا تشكيلة مثل هذه بدقة. ولكن هذا مجرد جمالية التفاصيل سنرى مرة أخرى قبل فترة طويلة. 

كل الحق. بحيث يعيدنا إلى هذا البرنامج خفي المظهر. دعونا في الواقع كتابة بعض التعليمات البرمجية. الآن كيف يمكنك أن تذهب نحو كتابة التعليمات البرمجية؟ كل هذه السنوات التي كنت قد تملكها ماك أو PC، المكتبي أو المحمول، لقد كان لكم في الواقع القدرة للبدء في كتابة كود البرمجة. ولكن ربما كنت في عداد المفقودين نوع خاص من البرنامج. أنت بالتأكيد يمكن كتابة التعليمات البرمجية. ولكن لا يمكنك بالضرورة، من خارج منطقة الجزاء، تحويل هذا الكود إلى رمز الكائن، 0S و1S دون ما على جهاز الكمبيوتر الخاص بك؟ الجمهور: مترجم. J. DAVID مالان: لذا مترجم، والحق. الآن ربما معظمكم لا تملك مترجم، لم تحميلها مترجم. ولكن سترى يمكنك تحميل البرنامج مثل معظم أي قطعة أخرى من البرامج. في عالم ماك OS، كنت قد تحميل أو بتنزيلها بالفعل ما يسمى كسكودي أو مجلس التعاون الخليجي أو رنة. إذا كنت تأتي من قد النوافذ العالم لك تم تحميل البصرية ستوديو، فيجوال بيسك، البيئات من هذا القبيل. هناك العشرات من المجمعين في هذه الأيام التي قد تستخدمها. ولكن على المدى القصير من هنا غير أنه سيكون من الألم وبصراحة، والتكنولوجية كابوس لمئات من الناس مع مختلف تكوينات الكمبيوتر لجميع تكوين الأجهزة الخاصة بهم في بنفس الطريقة تماما حتى نتمكن جميعا أن نكون على نفس الصفحة. 

فماذا نحن، بدلا من ذلك، القيام في CS50 ونعطيك بيئة قياسية، و بيئة لينكس هذا سوف ننظر قليلا شيء من هذا القبيل. سترى أكثر من هذا في مشكلة تعيين 1 المواصفات التي سوف يذهب على الانترنت هذه الليلة الجمعة. 

وماذا يعني هذا هو أنك من الآن فصاعدا سوف تكون قادرة على تحميل وتثبيت برنامج ودعا الأجهزة CS50. وأنت تسير لتحميل و تثبيت برنامج آخر يسمى وهبرفيسر، الذي هو مجرد طريقة نزوة لتحقيق ذلك. سواء كنت تملك جهاز ماكنتوش أو كمبيوتر شخصي أو كمبيوتر لينكس أو سولاريس كمبيوتر، أو أيا كان التشغيل مجنون النظام الذي تقوم بتشغيل، وأنت تسير لتحميل البرنامج يسمى هذا هبرفيسر الذهاب لتشغيل CS50 الأجهزة على جهاز الكمبيوتر الخاص بك بغض النظر عن ما هو نظام التشغيل الخاص بك. وهبرفيسر وبعبارة أخرى تحويل الاشياء لدينا إلى أي لغة، مهما تعليماتكم يفهم الكمبيوتر الخاص. 

لذلك هذا هو طبقات. ومرة أخرى، وهذا هو النوع من مواضيعي في الكمبيوتر العلم، وبناء على رأس الأمور. قد يكون لديك ويندوز. قد يكون لديك نظام التشغيل Mac OS. ولكن اعتبارا من الاسبوع المقبل كنت الذهاب الى بتنزيلها قطعة من البرمجيات الحرة دعا مراقب أجهزة افتراضية. وأنت تسير لبتنزيلها قطعة من البرمجيات دعا الأجهزة CS50. 

ما يجري لتشغيل في هبرفيسر، التي سوف يتم تشغيلها على جهاز الكمبيوتر الخاص بك. والنتيجة النهائية هي أن كل واحد منا سوف لديك نافذة بسيطة مثل هذا على جهاز Mac أو PC أن يعطينا الوهم جميع تشغيل نظام التشغيل نفسه، دون أي شيء آخر التأثير على جهاز الكمبيوتر الخاص بك. ويمكنك ملء الشاشة انها تتصرف وأساسا كما لو كنت تقوم بتشغيل نظام التشغيل لينكس يسمى، وهو ما CS50 ويستند الجهاز على. 

لذلك دعونا فعلا استخدام هذا الآن لكتابة البرنامج. يمكنك كتابة برنامج باستخدام Microsoft Word. يمكنك كتابة برنامج باستخدام برنامج TextEdit، أو المفكرة، أو الدفتر، أو الى حد كبير أي كلمة برنامج معالجة كنت قد استخدمت من أي وقت مضى. ولكن الحقيقة هي أنك لا ينبغي حقا استخدام أي من تلك البرامج. أنت بالتأكيد لا ينبغي استخدام شيء مثل مايكروسوفت وورد، والتي لديه تواجه والمائل جريئة، و الخطوط أكبر وأصغر الخطوط، لأن الكمبيوتر لا نهتم أي من ذلك. كل الكمبيوتر الذهاب الى يهمني هو الإنجليزية مثل تعليمات مكتوبة في C. 

فماذا سنفعل داخل من الأجهزة CS50 يتم استخدام برنامج بحرية المتاحة، وانها مثبتة مسبقا في هذا الأجهزة، ودعا Gedit. وGedit هو مجرد السوبر بسيطة محرر نصوص مثل برنامج TextEdit ماك OS، و مثل ويندوز المفكرة أن يحدث ل ننظر شيئا قليلا من هذا القبيل. 

لذلك دعونا في الواقع لا ننظر إلى هذه الشرائح. ولكن دعونا ندخل في الواقع البيئة نفسها. انا ذاهب الى المضي قدما و تسجيل الدخول، في هذا الإطار الآخر، إلى بلدي CS50 الأجهزة التي لدي مثبتة مسبقا على جهاز الكمبيوتر المحمول هنا. 

لاحظ أنه، مثل ويندوز و ماك OS، انها حصلت بعض القوائم. مثل ويندوز أنه يضع عليه هناك بدلا من ذلك نظام التشغيل Mac OS، الأمر الذي يضع عليه هناك. ولكن الواقع هو انها كل نوع من الشيء نفسه. وهنا ككل مجموعة من البرامج. هناك دروببوإكس. هناك مجموعة كاملة من الملحقات، برامج الرسوم البيانية التي سنقوم استخدامها لاحقا في الأجل للمجموعات المشكلة. هناك متصفح الإنترنت المدمج في ذلك أن هذا هو جهاز كمبيوتر متكامل من داخل الكمبيوتر. 

ولكن انا ذاهب الى فوق هذا أقصى اليسار أيقونة الأبيض هنا، الذي هو رمز للGedit. وانها سوف تفتح نافذة الذي يحتوي على ثلاث لوحات إليها، واحدة الأيسر، ورأس واحد، واحد السفلي. 

الآن حان في هذا رأس واحد الصحيح الذي انا ذاهب فعلا لكتابة بعض التعليمات البرمجية. لذلك دعونا نفعل ذلك،. انا ذاهب للذهاب إلى ملف، حفظ. وأنت لا قد شهدت أي وقت مضى هذه النافذة معين من قبل. ولكن هذا هو مثل نظام التشغيل ماك أو ويندوز. انها مجرد نافذة مع كل من المجلدات أن لدي داخل هذا الكمبيوتر. 

وانا ذاهب لإنقاذ الملف كملف hello.c. وانا ذاهب للذهاب قدما وانقر فوق حفظ. وتلاحظ الآن لدي التبويب في أعلى اليسار يسمى hello.c. حتى ربما جميلة مألوفة حتى لو كنت لم يستخدم هذا البرنامج بالذات من قبل. 

والآن انا ذاهب الى اكتب في تلك تسلسل خفي إلى حد ما من الأوامر الذي رأيناه قبل لحظة. تشمل معيار I / O.h. أكثر على ذلك قريبا. الفراغ الرئيسي المترجم، مجعد مفتوح هدفين، أغلقت متعرج. ثم هناك داخل أعتقد أنه حيث كان لدينا "مرحبا العالم" منقوطة. وحفظ الآن. 

لذلك هذا هو برنامج مكتوب بلغة C، مكتوبة، لذلك، في التعليمات البرمجية المصدر. ولكن لا يمكنني فقط تشغيل هذا البرنامج. النوع الأول من تريد مضاعفة انقر على أيقونة في مكان ما، ولكن لا يوجد رمز البعض من ملف التعليمات البرمجية المصدر. ماذا، مرة أخرى، هو عملية الآن أن أحتاج لتشغيل هذا الملف من خلال؟ الجمهور: مترجم. J. DAVID مالان: لذا مترجم. حتى في أجهزة الكمبيوتر المختلفة التي القيام بذلك بطرق مختلفة. ولكن ما قمنا به هنا في الأجهزة CS50 هذا ممثل كيف يمكن القيام بذلك على العديد من أنظمة مختلفة، وأنا ببساطة الذهاب الى تشغيل أمر دعا جعل. وجعل حرفيا سيفعل ذلك. تجعلني برنامج. 

لذا تأكد يتم الانتقال إلى تشغيل مترجم بالنسبة لي. واسم البرنامج اريد ان يكون هو مرحبا. الآن هو جعل البرنامج. وجعل ذكي بما فيه الكفاية ل ندرك أن إذا قلت جعل مرحبا، انها سوف ننظر تلقائيا لملف يسمى hello.c لمجرد أن هذا هو الطريقة التي تكوينه. 

حتى عندما كنت هنا الآن هاهنا، وهذا خط خفي مجنون فقط حصلت على تنفيذها. والثقة لي، قبل منذ فترة طويلة، خلال أيام فقط، عليك فهم ما كل تلك الوسائل هراء. لكنه الآن، ونعرف تماما أن جعل تنفيذ مسبب للمترجم. وبعبارة أخرى، أنها وجدت مترجم على جهاز الكمبيوتر الخاص بي هذا قبل تثبيت على الأجهزة CS50 أننا سوف تسليم لكم في مشكلة تعيين 1. وبعد ذلك أخذ hello.c و المدخلات، وأنتجت على ما يبدو 0S و1S كإخراج. 

وافتراضيا ما يفعله هو أنه يوفر تلك 0S و1S في ملف يسمى مرحبا. وعلى الرغم بناء الجملة هذا قد جدا تكون جديدة بالنسبة لك، وذلك ببساطة بقوله نقطة خفض مرحبا ستكون ل الوسائل التي كنت تشغيل هذا البرنامج. 

الآن وعلى الأقل زوجين أسابيع، وتقريبا جميع البرامج نكتب ستكون في نوافذ النص بالأسود والأبيض. لا الفئران، لا النقر، ولا نوافذ ولا الأيقونات. نحن ذاهبون الى يبقيه بسيط والتركيز على الأفكار الأساسية في البداية قبل أن نصل إلى شيء مستوى أعلى، على سبيل المثال، مثل الخروج اللعبة التي تحدثنا حول المحاضرة الأولى في الأسبوع الماضي. 

حتى عندما كنت هاهنا هنا، انها ما يعادلها في نص البيئة فقط لمضاعفة النقر على أيقونة دعا مرحبا. ماذا تتوقع الإرادة يحدث عندما كنت هاهنا بعد ذلك؟ 

الجمهور: انها سوف طباعة "مرحبا العالم". 

J. DAVID مالان: نأمل فإنه سيتم طباعة "مرحبا العالم". وبالفعل فعلت. الآن هناك كان بعض تركيب خفي هنا. دعونا الترجيع للتو لحظة ونرى اذا كنا لا يمكن بدء استنتاج فقط عن طريق ترقيع، في محاولة والفشل، على ما يجري هنا. ماذا لو تخلص من مائل ن؟ الآن بعض منكم الذين قد ربما مبرمجة قبل تعرف على الفور ما يعنيه ذلك. لكن بالنسبة لأولئك منكم الذين قد أبدا مبرمجة من قبل، على الأقل اعتقد لنفسك ما يجري لتغيير عندما كنت إعادة تشغيل هذا البرنامج؟ لذلك أنا ذاهب الى العودة الى بلدي يذكر نافذة الأبيض والأسود، والتي هو الإطار الذي أستطيع أن تجميع هذه. انا ذاهب الى إعادة ترجمة مرحبا. نحن ذاهبون لرؤية نفسه تسلسل خفي من الأوامر. وانا ذاهب الى القيام مائل دوت مرحبا. والآن شخص ما، لو تفضلتم، من الذي لم مبرمجة من قبل، ما قد يكون مختلفا هذه المرة؟ نعم. 

الجمهور: انها لن تتوقف الطباعة "مرحبا العالم". 

J. DAVID مالان: انها تسير علي: آسف؟ 

الجمهور: لن تتوقف طباعته؟ 

J. DAVID مالان: لن وقف طباعة "مرحبا العالم". لذلك ليست فكرة سيئة. أفكار أخرى؟ نعم. 

الجمهور: رسالة خطأ؟ 

J. DAVID مالان: خطأ رسالة، حسنا، يمكن أن يكون. ماذا؟ الجمهور: قد طباعة قوس مع منقوطة كذلك؟ J. DAVID مالان: أمكن طباعة قوس مع الفاصلة المنقوطة أيضا. لذلك ربما هذا هو مائل ثم بعض نوع من terminous هذا هو المهم. أي أفكار أخرى؟ 

لذلك كل الأفكار الجيدة. وفي الواقع، انه سيكون لتكون رسالة خطأ. وهذا ربما على الأرجح ليكون الجواب بشكل عام خلال الأسابيع القليلة القادمة ونحن نتعلم هنا إلى رمز. 

ولكن لنتذكر الآن أن أجهزة الكمبيوتر فقط تفعل ما كنت أقول لهم القيام به. مثل الكثير من الفول السوداني سخيف الزبدة وجيلي سبيل المثال. كان من المفترض فقط لدينا أجهزة الكمبيوتر الإنسان أن تفعل ما طلب منهم القيام به. حتى في هذه الحالة، إذا كنت لا تخبر الكمبيوتر لنقل أن المؤشر الوامض إلى السطر التالي، انها لن تفعل ذلك. لذلك عند تشغيل هذا البرنامج الآن، لاحظ الفرق. 

يبدو وكأنه علة. انها علة الجمالي، ربما. ولكن ما هو مختلف عن هذا الناتج مقابل واحد آخر من الواضح؟ نعم. 

الجمهور: ولكنها لم تفعل سطر جديد. 

J. DAVID مالان: ولكنها لم تفعل سطر جديد. الآن أولئك منكم الذين لديهم صفحات الويب التي ربما من قبل، هل يمكن أن نعرف من BR علامة أو علامة الفقرة، مشابهة جدا في الروح. سوف متصفح ويب تجاهل لك حتى كنت اقول بالضبط ما يجب القيام به. وبالمثل، هي لغة مثل C فقط سوف تفعل ما أقول أن تفعله. 

ذلك السبب الذي كل هذه الأمثلة، حتى الآن، لدينا نوع من كان هذا عرضا مائل في هناك، وهذا هو وسيلة التي يمكن التعبير عن نفسك كحرف الخط الجديد، إذا جاز التعبير. ويمكن أن نقدر لكم نوع من، ربما، أن هذا سيبدو نوع من الغباء إذا أي شيء آخر. إذا أردت سطر جديد فقط ضرب أدخل ثم نوع من ذبح رمز من هذا القبيل يجب عدم فرك كنت حقا بالطريقة الصحيحة. وحتى لو كنت لا تهتم حقا في هذه المرحلة، سوف ندرك أن هذه ليست خاصة قطعة جيدة تبحث من التعليمات البرمجية. 

وهكذا ما في العالم قبل سنوات قرر هو أنه عندما تريد وضع المؤشر إلى سطر جديد صراحة، يجب القول صراحة خط جديد، مائل ن. وهناك بعض الدول الاخرى حرف من هذا القبيل. لكنه الآن سنقوم فقط التركيز على مائل ن. 

الآن دعونا جعل البرنامج قليلا أكثر إثارة للاهتمام. انا ذاهب الى المضي قدما و هذه المرة فتح ملف جديد. انا ذاهب لحفظ هذا كما مرحبا-1.C. وفقط لركلات، أنا ذاهب ل اذهب وضعها في مجلد Dropbox بلدي. 

كما سترى في CS50 وثائق الجهاز، في وقت لاحق هذا الاسبوع لمشكلة مجموعة 1، سنقوم تشجيع لك استخدام دروببوإكس أو بعض الخدمات ما يعادلها، لأن بعد ذلك كل من المدونة الخاصة بك سوف يكون احتياطيا تلقائيا. وولهذا السبب لدي ذهب إلى هذا المجلد هنا. 

والآن انا ذاهب الى إرسال بريد برنامج مختلف قليلا. تشمل معيار I / O.h، الفراغ الرئيسي كثافة العمليات. ثم هنا printf، مرحبا العالم، وهو بالضبط نفس قبل. 

ولكن الآن أريد أن طباعة شيء هذا هو مختلفة قليلا. أريد أن طباعة، يقول: "مرحبا، ديفيد." كل الحق، لذلك من الواضح، نأمل ذلك ينبغي يكون عليه الحال لو أن إعادة ترجمة هذا البرنامج، أعد ذلك، انها سوف يقول "مرحبا، ديفيد." 

ولكن ماذا لو أريد أن أعرض هذا النوع من متغير، فكرة وجود الحاوية التي يجري لتخزين D واحد في الخامس ط د ورمز أنه ليس من الصعب في برنامجي. حسنا ماذا لو أبدأ تفعل شيئا مثل هذا؟ 

سلسلة S، لذلك هذا هو متغير. إذا كنت ترغب في سلسلة، الملقب كلمة أو عبارة. سلسلة من الأحرف هو ما نحن في البرمجة استدعاء سلسلة. نحن ذاهبون لمجرد الدعوة بشكل عام ذلك ليالي، لأنه اسم بسيط لطيف. ولكن يمكن أن نسميها أي شيء. 

انا ذاهب الى القول متساوين سلسلة S قوسي الإقتباس، "ديفيد" منقوطة. والآن أريد أن إدراج D-A-V-I-D إلى ما أنا الطباعة. وقبل شاهدنا دعابة على الشاشة من بعض بناء جملة خاص التي سمحت لنا بديل في القيمة. ما هو خاص رمز قبل بضعة الشرائح؟ 

حتى في المئة. في ذلك الوقت كان في المئة د لرقم عشري. لا يبدو حقا ذات الصلة هنا. تبين هناك و رمز النسبة المئوية آخر، وهي في المئة، والتي تقف لنائب لسلسلة. 

وحتى الآن، ببساطة شديدة، أنا سيذهب جعل مرحبا-1، لأن يسمى هذا الملف مرحبا-1.C، وهاهنا. وثمل بي الأمر. ما الذي يحدث؟ حسنا، هنا حيث لدينا للبدء في نقدر أننا في هذا الأمر البيئة الخط، وهذا النص البيئة فقط. ليس هناك النقر على الأيقونات مثل المجلدات الآن. والتفكير مرة أخرى قبل لحظة. في ما فعله مجلد أقول كنت إنقاذ قانون بلدي؟ لذلك المجلد دروببوإكس. كان يمكن أن يسمى أي شيء. ولكن يحدث أن يسمى دروببوإكس. لذلك أنا بطريقة ما تحتاج إلى مضاعفة الضغط على هذا المجلد دروببوإكس من أجل الحصول على الى ذلك والحصول على بلدي دعا كود مرحبا-1.C. في الواقع، اسمحوا لي المضي قدما وتقليل هذه النافذة لمجرد لحظة. تماما مثل ويندوز وماك OS، هناك المجلدات في لينكس. هناك المجلدات في اجهزة CS50. انها مجرد الآن نحن مقيدة أنفسنا لهذه البيئة النص. 

ولكن إذا كنت انقر نقرا مزدوجا فوق على دروببوإكس، لاحظ هناك هو الملف الذي أريد ترجمة. ولكن انا بحاجة الى هذا بالأبيض والأسود نافذة الصالة، إذا جاز التعبير. ولكني في حاجة، بالتالي، إلى التحرك في هذا المجلد أو الدليل. حتى غامضة قليلا، ولكن عليك أن تعتاد على هذا أيضا. 

في عالم لينكس، مرة أخرى التي هي التشغيل نحن تشغيل النظام داخل CS50 الأجهزة، وهناك أمر يسمى CD. وهو ما يعني أنني يمكن أن تفعل CD، الفضاء، دروببوإكس. CD، دليل التغيير. الحق. مرة في اليوم عندما كان الناس اختراع أجهزة الكمبيوتر وتشغيل أنظمة من هذا القبيل، أرادوا اكتب أقل عدد ممكن ضربات المفاتيح. ولذلك فإن أسهل طريقة للقول كان تغيير الدليل CD. 

حتى إذا أنا ضربت CD، الفضاء دروببوإكس، تلاحظ ما الذي تغير هنا. داخل قوسين الجهاز هو نوع من humoring لي و تذكير لي أين أنا. لذلك المجلد المفتوح هو دروببوإكس. إذا أنا الآن اكتب ليرة سورية ل القائمة، مرة أخرى مختصرة و لأنه لم يكن الناس يريدون اكتب مرة في اليوم ليتر-I-S-T. حتى أنها بدلا من ذلك جعلها LS. 

دخول. لاحظ أرى أمرين، مرحبا-1.C، ثم هذا شيء خفي، 1M المصدر. هذا مجرد طريقي من القول الشفرة المصدرية لمدة أسبوع و1 الاثنين. هذا هو المجلد الأول تحميلها من موقع CS50 أن أدليت به في وقت سابق من اليوم وضعت للتو عليه في الأجهزة مقدما. 

لكنه الآن الشيء الوحيد الذي نهتم به هو جعل هذا البرنامج. حتى عندما كنت اكتب جعل مرحبا-1، أدخل. اللعنة. ذهب شيئا خاطئا. لذلك دعونا ندف هذا عدا. وللأسف هذا هو المكان الأشياء الحصول مرهقة قليلا في البداية، على الأقل إذا كنت قد أبدا مبرمجة من قبل. 

إلهي. كتبت في برنامج اثنين من خط و لدي أربعة أسطر من الأخطاء. فما الذي يحدث هنا. أولا وقبل كل شيء التمرير دائما العودة صعودا والعثور على رسالة الخطأ الأولى، لأن المجمعين في كثير من الأحيان فقط يحصل الخلط من قبل ما لكم، وأنا أفعل. المجمعين هي غبية جدا. وأنها سوف تفعل ما فقط كنت أقول لهم القيام به. وإذا كنت يربكهم، وانهم فقط الذهاب الى نوع من نفض أيديهم وربما رمي المزيد من رسائل الخطأ من هي ذات الصلة الواقع. 

لذلك دعونا ننظر في البداية. سوبر خفي في البداية. لكن إشعار، وهنا اسم الملف الذي أنا ثمل على ما يبدو. 5 القولون والقولون 5 يعني فقط على السطر 5 عند الحرف الخامس. لذلك الطابور الخامس من الشخصيات، اذا صح، خطأ. استخدام سلسلة معرف غير معلنة. هل تقصد ن القياسية؟ 

لا، أنا يعني السلسلة. ثم انها نوع من النسخ واللصق ما كتبته لرسم حقا بلدي الانتباه إلى حيث أنا ثمل. ذلك لسبب C، أو على الأقل المترجم لا يفهم سلسلة كلمة. وذلك لأن قدمنا ​​عنه. لذلك لا وجود سلسلة في C. CS50 ما يفعل، في الأسابيع القليلة الأولى فقط الطبقة، ونحن نقدم بعض التدريب عجلات، إذا جاز التعبير. ونضع هذه العجلات تدريب داخل ملف خاص يسمى CS50.h. 

لذلك هذا هو ثاني اثنين من ملف الأسماء التي تنتهي على ما يبدو في ساعة نقطة. دعونا الترجيع. Printf هو بيان أو وظيفة يبدو أن يطبع شيء إلى الشاشة. ولكنك لم تراني تنفيذ printf، والحق. سنوات شخص قبل تنفيذ printf. في ملف ما هل هو الرهان أو أنها وضعت تنفيذ لprintf، رمز printf؟ 

في ملف يسمى معيار I / O.h. في الواقع، هو على الأرجح في ملفين، ومعيار I / O.h، التي تقف على رأس الملف، ومعيار I / O.c، التي تقف على C شفرة المصدر. حتى انه أو انها قبل بضع سنوات ساقط التعليمات البرمجية التي كتبوا في هذا الملف حتى أن الناس مثلنا بعد سنوات يمكن أن تشمل ذلك، إذا جاز التعبير، في البرامج الخاصة بنا. 

وبالفعل، هذا ما الجنيه تلتها كلمة تشمل يفعل. يبدو على محرك الأقراص الثابت المحلي، تجد ملف يسمى معيار I / O.h، ثم نسخ بفعالية و يلصق عليه داخل ملف بلدي. وحتى الآن يعرف برنامجي كيفية طباعة على الشاشة. 

ذلك أن المنطق، حيث يتم تعريف سلسلة؟ 

الجمهور: CS50.h. 

J. DAVID مالان: CS50.h. وبالفعل، هذا ما نحن، الموظفين الأساسيين، قد فعلت. لقد اخترع بعض أنواع البيانات، إذا جاز التعبير، مثل سلسلة، بالإضافة إلى تلك التي الحصول عليها مجانا، مثل كثافة العمليات. وسنرى آخرين مثل شار لحرف وعدد قليل من أكثر. داخل CS50.h على ما يبدو هو على الأقل بعض ذكر من السلسلة. 

وحتى الآن اسمحوا لي المضي قدما وجعل أعد تشغيل مرحبا-1. سوف تكبير مرة أخرى وعبور أصابعي. الآن بعد أن جعلت واحدة تغيير I ثابتة معظم الأشياء. لكن اللعنة. المزيد من النسب المئوية من الحجج البيانات. ماذا فعلت خطأ هذه المرة؟ 

حتى انها لا تزال خفي جدا. ولكن هذا الخطأ هو في خط 7 و 21 شخصية. لذلك دعونا نذهب ننظر هنا. انها خفية قليلا. ولكن إذا كنت تفكر في ما الأفكار الأساسية هنا، ربما يمكننا أن ندف هذا عدا. 

حتى printf هو اسم الدالة. قوسين، حتى الآن، هو تماما مثل ما وضعنا حول الاشياء نقوم بتمرير كمدخلات في وظيفة. كل الحق، وهو فقط اتفاقية الإنسان التعسفي. استخدام الأقواس. داخل هذه الأقواس لقد تم وضع علامات اقتباس مزدوجة، ثم سلسلة مثل "مرحبا العالم". 

ولكن في هذا المثال السابق جدا لم ننظر لفترة وجيزة مع خدش. وكان لدينا في المئة في د، ماذا كان داخل تلك قوسين أن ناديت لفظيا؟ نعم. 

الجمهور: لذلك ما كنت تتناولين [غير مسموع] من خلال [غير مسموع] ما هذه (غير مسموع)؟ J. DAVID مالان: بالضبط. لذلك كان علينا في المئة د. ولكن بعد ذلك كان علينا قريبا الاقتباس، فاصلة، العداد. الحق. حددنا ما نريد للقيام باعتباره نائبا. ذلك ما أنا ذاهب الى القيام به هنا هو فاصلة، ماذا تريد مني أن أضع؟ الجمهور: S. J. DAVID مالان: S، لأن ق في هذه الحالة هو اسم حاوية التخزين. انها اسم ذلك عاء زجاجي. في حين قبل كان العداد في أن المثال خدش بسيط نظرنا. حتى الآن بعد أن صنع هدفين التغييرات، اسمحوا لي تكبير ثم حاول مرة أخرى ل تجميع هذا البرنامج. 

الآن أرى أن خط خفي. ولكن هذا الواقع اسم الجامع. رنة هو اسم المترجم. جعل هو مجرد إنقاذ لي الصداع من أي وقت مضى كتابة هذا الأمر منذ فترة طويلة مجنون بها. وحتى الآن لو لم خفض نقطة مرحبا-1، أنا يجب أن نرى "مرحبا، ديفيد." 

مخيب جدا، رغم ذلك، أليس كذلك؟ يمكننا القيام به هذا أكثر بكثير ببساطة دون الحديث عن المتغيرات وCS50.h وكل ذلك. لذلك دعونا تجعل من قليلا أكثر إثارة للاهتمام. 

بالإضافة إلى CS50.h، وجود أشياء مثل سلسلة أعلن والمكتبة CS50 لديها أيضا عدد قليل من الوظائف. منذ سنوات حتى مجرد مثل، كتب شخص printf ووضعها في مستوى I / O.h وبعض الملفات الأخرى. 

نحن الموظفين CS50، كتب وظيفة دعا GetChar، GetDouble، GetFloat، GetInt، GetLongLong، GetString، ونضع تلك داخل ملف دعا CS50.h وCS50.c. وضعنا لهم داخل من الأجهزة CS50. ويمكن للناس أيضا تحميلها على الانترنت إذا كانوا نريد ان نضع لهم على هم أجهزة الكمبيوتر الخاصة كذلك. وهو ما يعني أننا قد خلقت الوظائف التي تحصل على مدخلات من المستخدم. أنا لا أعرف ما كل هذه هي أنواع البيانات. GetInt هو نوع من واضحة، مثل الحصول على عدد صحيح بطريقة ما من المستخدم. وGetString هو على الارجح مثل الحصول على كلمة أو جملة من المستخدم. 

لذلك دعونا نركز على ذلك. وانا ذاهب للذهاب مرة أخرى في الأجهزة وانا ذاهب الى المضي قدما وحفظ هذا الملف ك، دعونا ندعو انها مرحبا-2.C كما بلدي النسخة الثانية. ودعونا جعل زوجين من التغييرات. 

هذه المرة بدلا من من الصعب الترميز ديفيد، التي يجعل متسقة بشكل لا يصدق لكن برنامج مخيب، ماذا لو كنت بدلا من ذلك القيام GetString؟ الآن نلاحظ GetString لديه قوس مفتوح، أقواس مغلقة، ل أنها لا تحتاج إلى أي إدخال. انها مجرد الذهاب الى الذهاب الحصول سلسلة من المستخدم. 

والآن كلمة عن جملة آخرين. الفاصلة المنقوطة فقط في نهاية سطر من التعليمات البرمجية. كنت لا حاجة إليها في كل مكان. ولكن هذا يعني فقط أنا القيام به مع هذا الخط من التعليمات البرمجية. اسمحوا لي أن تنتقل أخرى بيان أو وظيفة. سلسلة تعلن متغير. السلسلة مثل قوله تعطيني وعاء، من فضلك. واسمحوا لي أن وضع سلسلة في ذلك. 

والآن علامة المساواة. ما هو علامة المساواة أساسا ما يعادل؟ 

الجمهور: تعيين. 

J. DAVID مالان: نعم، تعيين القيمة. حتى لو كنت، على سبيل المثال، مكالمة هذه الوظيفة GetString، وسنرى في لحظة هذا الذهاب الى مطالبة المستخدم سلسلة. هذا هو مثل السماح لي ثم إرسال D-A-V-I-د على قطعة من الورق. وعندما أقول سلسلة ق يساوي GetString، يساوي لا يعني حقا متساوين في برمجة C. وهو ما يعني تعيين من الحق الجانب إلى الجانب الأيسر. 

حتى لقد حصلت على السلسلة. ويعني علامة المساواة وضعها في تخزين الحاويات تسمى ق. وثم تمرير هذا الخروج ل printf أن تفعل في الواقع شيء لها. 

حتى النتيجة النهائية ثم يجري لتبدو مختلفة قليلا. دعونا لا تجعل مرحبا-2. إما أن تعمل. كنت بعد طول. جعل عملت مرحبا-2. نقطة خفض مرحبا-2، أدخل. 

ويبدو لي أن يكون لانهائي حلقة أو شيء. لا شيء يحدث. لماذا؟ 

الجمهور: انها لجعل حلقة لا نهائية. J. DAVID مالان: وهي حلقة لا نهائية. انها نوع من ينتظرني ل توفر فعلا مع بعض المدخلات. لذلك اسمحوا لي المضي قدما واكتب في ديفيد، وهاهنا. والآن تقول "مرحبا، ديفيد." إذا أنا تشغيله مرة أخرى. دعونا اكتب في روب، "مرحبا، روب." 

الآن هذا هو الأسوأ واجهة المستخدم من أي وقت مضى. المستخدم على ما يبدو من المفترض أن يعرف ما يجب القيام به. ولكن لا يهم. باستخدام نفس هذه البناية كتل تماما كما في خدش، يمكننا حل هذه المشكلة ونقول شيء من هذا القبيل اسمك من فضلك، القولون، الفضاء، مغلقة الاقتباس، على مقربة قوسين، منقوطة. لذلك الكثير من ثانية سخف مع بناء الجملة. 

ولكن لاحظت واضاف لقد مجرد قطعة اللغز فوق هذا واحد وفوق هذا واحد. وحتى الآن ما إذا كنت إعادة تشغيل هذا، مرحبا-2، أدخل. انتظر لحظة. ما هو الخطأ؟ انها لا تتصرف بأي طريقة مختلفة. نعم. 

الجمهور: أنت لم تقم بتشغيل جعل مرة أخرى. 

J. DAVID مالان: لم أكن جعل تشغيل مرة أخرى، أليس كذلك. حتى لقد غيرت بلدي شفرة المصدر. لكن مرة أخرى، هناك أن التدفق. شفرة المصدر من خلال مترجم يعطي أنت رمز الكائن الجديد، أو 0S و1S. لذلك أنا بحاجة فعلا ل جعل أعد تشغيل مرحبا-2 أدخل. OK، شيء يبدو أنه قد حدث. نقطة خفض مرحبا-2. اسمك فضلك. وأن يكون واضحا الآن، لماذا المؤشر على نفس الخط؟ بالضبط. لم أكن وضع مائل ن هنا في قانون بلدي. حتى الآن أستطيع أن أكتب شيء من هذا القبيل Daven، أدخل. يمكنني تشغيله مرة أخرى واكتب شيء من هذا القبيل غابي، أدخل، ونحصل على برنامج مختلف مرارا وتكرارا وتكرارا. 

الآن في نهاية المطاف ونحن في طريقنا إلى حاجة لاستخدام بعض قدرات مختلفة. نحن بحاجة إلى إدخال بعض في نهاية المطاف الظروف أن تفعل أشياء مشروط. ربما حلقات حتى نتمكن من القيام الأشياء مرارا وتكرارا. 

ربما سيكون من الجميل إذا كنا يمكن تنفيذ المهام الخاصة بنا، كما يمكننا تنفيذ منطقتنا printf أو إصدار منطقتنا من GetString وGetFlow، لأن في نهاية المطاف حتى باستخدام هذه البيئة سطر الأوامر يمكننا أن نفعل حتى أكثر اهتمام بصريا من الأشياء. 

الواقع في الختام اسمحوا لي أن تفعل هذا. انا ذاهب الى المضي قدما وإغلاق هذه النوافذ وفتح هذا الرمز هنا، الذي هو مجرد أكبر نسخة من ذلك جزءا لا يتجزأ نافذة الصالة. حتى Gedit وليس فقط المكان لقانون بلدي، ولكن أيضا المدمج في نافذة الصالة، و أبيض وأسود نافذة حيث يمكنني تشغيل أوامر. 

أنا مجرد حدث لفتح نسخة أكبر من هذا. والآن انا ذاهب للذهاب الى المجلد الذي لدي بالفعل وضع مسبقا على الموقع الالكتروني للدورة و. وانا ذاهب الى المضي قدما و فتح ملف يسمى thadgavin.c، الذي كتبه شخص آخر. 

وإذا نظرنا إلى هذا، ليس هذا هو نوع من التعليمات البرمجية سنكون الكتابة منذ الهدف من هذا الرمز وكان لكتابة أجمل أبحث كود انه او انها يمكن، بغض النظر عن وجود أو عدم إنسان آخر يمكن من أي وقت مضى فهم هذا الرمز. 

في الواقع، كل عام هناك ما هو يسمى C مسابقة غموض، والتي غير حقيقي لالمهوسون الذين يكتبون التعليمات البرمجية التي لا أحد يستطيع قراءة، ولكن أن يفعل شيئا إما حقا بسيطة أو مدهش حقا. ونحن نظن أننا سوف أختم هذا البحث في شيء أن يكون مدهشا كنت قد رأيت من قبل. ولكننا سوف ينتهي في هذه ملاحظة، مائل نقطة، thadgavin. ثم هذا هو ما ينتظر. 

هذا كل شيء لCS50. سوف نرى لك يوم الاربعاء. 

[عزف الموسيقى]