[Powered by Google Translate] DAVID مالان: هذا هو CS50، وهذا هو بداية أسبوع 1. ما كنا نظن أننا سوف نفعل اليوم نلقي نظرة إلى الوراء على شيء كثير منكم قد سار على الأرجح لبعض الماضية الوقت الآن قد تبدو وقليلا مألوفة. هذا الشيء هنا، وهذا بالطبع هو في - AUDIENCE: العلوم. DAVID مالان: مركز العلوم. لذلك هذا هو في الواقع واحدة من أولى أجهزة الكمبيوتر نسخ من 1940s. كان واحدا من أجهزة الكمبيوتر الكهروميكانيكية 1 كان قادرا على أن الطويل خاصة، الاكتفاء الذاتي الحسابية، وما نراه فعلا في مركز العلوم ليست سوى قطعة صغيرة من هذا الشيء. ما كنا نظن أننا سوف نفعل ذلك هو إلقاء نظرة إلى الوراء في شريط فيديو تم منذ بعض الوقت أن قدم هذا شيء للعالم. وسترى من الموسيقى والصوت الذي في الواقع تلك كانت أوقات سعيدة للغاية. [تشغيل الفيديو] -A انتصار المهارات الرياضية والميكانيكية هو هذا آلة حاسبة كبيرة التلقائي جديد في جامعة هارفارد. مشاكل معقدة في الرياضيات، من خلال وضع آلة في شكل مشفرة على الشريط، يتم حلها بدقة في جزء دقيقة من الوقت اللازم لالإنسان الحساب. تهدف إلى الإسراع جميع أشكال الرياضية والعلمية البحوث، وسوف الدماغ العملاقة الميكانيكية العمل من أجل المتحدة الدول البحرية حتى نهاية الحرب. DAVID مالان: ذلك ما كنت قد لا يعرفه هو أنه كان في هذا الجهاز نفسه الذي نحن جميعا مصطلح تتخذ الآن الى حد كبير وقد صاغ لمنح، وذلك من خلل. ذلك واحد من المهندسين العاملين في هذا الكمبيوتر وجد حرفيا عثة صغيرة في الجهاز الذي أدى في بعض الحسابات غير صحيحة. وكما تقول القصة أن كانت مسجلة لعثة هذا السجل مجلة هنا، مرة أخرى من سبتمبر 9 في شيء-1940، وهكذا ولدت للعالم مصطلح "علة". من الآن فصاعدا نعتبر ذلك الخلل أن هناك أي نوع من الأخطاء في برامج، سواء من صنع الإنسان أو، في هذه الحالة، والحشرات. حتى بعض الإعلانات، ونحن والمضي قدما. حتى CS50 لديها تقليد تقديم وجبات غداء من نوع ما على معظم أيام الجمعة خلال الفصل الدراسي، حيث نأخذ من 30 إلى 40 طالبا إلى النار والثلج في ساحة لعارضة لغو، والحديث عن علوم الكمبيوتر، الحديث عن المستقبل. ندعو الخريجين وأصدقاء من الصناعة لتصل الدردشة الطلاب أيضا. حقا نحو إنهاء ما جعل فئة كبيرة إلى حد ما كل أكثر حميمية، على الأقل مرة واحدة في حين ل مجموعات فرعية من الطلاب. حتى إذا كنت ترغب في الانضمام إلينا هذه الجمعة، 1:15 PM، انتقل إلى CS50.net/lunch لRSVP. وسنفعل هذا recurringly، لذلك لا داعي للقلق إذا لم تكن بين أول 30 أو نحو ذلك هذا الاسبوع. لذلك يلاحظ الكاتب. A Word على الموارد التي ستبدأ الآن يتم المتوفرة للطلاب في الصف. بحيث رؤوسكم لا يلزم أن يكون انخفض خلال المحاضرات الخربشة أسفل كل شيء أقول وهكذا دواليك، ما نقوم به وبدلا من تقديم أعضاء هيئة التدريس ل الكنسي مجموعة من الملاحظات. لذلك لدينا واحدة من الزملاء التدريس لدينا، أندرو Sellergren، الذي يجلس في كل أسبوع، ويستعرض الفيديو، وبعد ذلك الكتابة عن ما نفكر به هو إلى حد ما حجية مجموعة من الملاحظات. وأندرو مولعا، أيضا، وضع الحواشي في snarky القاع. لذلك عليك أن تتمتع هذه كما نأمل كتاب مرجعي لل المرح، وأيضا، وتأتي مسابقة الوقت، وفرصة لاستعراض ما حدث في المحاضرات الفردية. لذلك ترتبط هذه المحاضرات على الصفحة. مجموعة مشكلة 0، وفي الوقت نفسه، هو خارج. ومن حيث الموارد المتاحة لك - الإرشادات التفصيلية. أدى ميلو أول يوم الجمعة. تم تصوير ذلك، وضعت على الانترنت يوم السبت. وتحقيق ذلك، إذا كنت غير متأكد حقا من أين نبدأ، لهذا أو المستقبل ف مجموعات، قم دائما في المقام الأول إلى تجول منه أو الفيديو. باجتزاء في التقدم، وفي cs50.net/section هو المكان الذي أن يقدم تفضيلاتك، إذا كان لديك لا بالفعل، من خلال اليوم. لأن هذه الأجزاء تبدأ الأحد المقبل، الاثنين، والثلاثاء. نفعل أقسام تلك الأيام الثلاثة، كل أسبوع لل الفصل الدراسي بالنسبة للجزء الاكبر. ونحن نقدم أيضا، مرة أخرى، والمسارات المختلفة. سوف يطلب منك ذلك في هذا النموذج تقطيع، إذا كنت لم يطلعوا عليه مسبقا، إذا كنت من بين أولئك الأقل مريحة، أكثر راحة، أو في مكان ما بينهما. وإذا كنت على نوع من السياج، في مكان ما في عام ما بين معظم الطلبة في نهاية المطاف التحقق. ساعات العمل تبدأ الليلة. حتى خدش هو مفتاح منخفضة إلى حد ما، على الرغم من أنها من الطبيعي جدا لتشغيل في مختلف البق، أو يكون غير مؤكد بشأن كيفية تنفيذ شيء ما. ندرك بحيث سنبدأ الدوام الرسمي هذا الاسبوع. وأنها سوف تكون على أننبرغ الاثنين، الثلاثاء، الأربعاء، الخميس، 20:00 حتي 11:00 خلال العطلة الدماغ. يمكن الحصول على classmen العليا في، والحصول على إذا كان لديك أي وقت مضى مشكلة في الباب، لأنهم سوف الضرب، مجرد كلام في طريقك وشرح في كنت مع CS50. عادة سيكون 20 إلى 30 من منا على الموظفين أن تكون هناك للمساعدة أنت واحد على واحد. ولدى وصول الفكرة هي هذه: عليك إحضار الكمبيوتر المحمول الخاص بك، سيكون لديك شاحن الخاص بك، سيكون لدينا أسلاك الكهرباء اضافية، خاصة على طول الجدار الجنوبي من حيث أننبرغ هناك الكثير من المنافذ الكهربائية. ونقطة الدخول الرئيسية لمكتب ساعة Q & A هي التوجه لل ونشر cs50.net/discuss سؤالك هناك. وتسميته مع 0 pset أو pset 1، أيا كان الأسبوع قد يحدث أن تكون. ثم ما سنقوم به هو لديها جدول الزملاء التدريس بالطبع المساعدين، وبشكل عام 8 أو 10 أو حتى واحد منا، تمر، وحفظ العين الساهرة على المجلس، و نتف من الأسئلة حقا بأسرع ما نستطيع، إحالتك إلى الوظائف ذات الصلة إذا كان لديك لم يتم العثور على تلك أنفسكم والمراجع على الانترنت، حسب الاقتضاء. ومن ثم إذا كان هناك مشاكل، وهناك حتما سوف يكون، أو أنه فقط يجعل أكثر منطقية للجلوس احد على واحد، العمل من خلال المشاكل مع شخص ما. أو كنت للتو في ساعات العمل حقا تحتاج إلى هذه العقلية. كنت لا تريد أن تذهب من خلال شكل إلكتروني، يمكنك تريد حقا للقاء شخص ما. التواصل التي لدينا، وسوف يحدث ما هو عندما الخاص بك وقد شوهد السؤال من أحد الموظفين، ونحن تحديد، نعم، ينبغي إرسال هذه إلى واحدة من 20 أو غادر أعضاء الفريق محليا 30 هنا، سترى في أعلى هذه أدخل قليلا على زر قائمة انتظار يبدأ وامض على cs50.net / مناقشة. وهذا هو قول أنك الآن وقد وجهت الدعوة، لذلك في الكلام، للدخول في قائمة الانتظار. وبالنقر على هذا الزر، سيظهر اسمك ثم على جهاز iPad أن موظف الاستقبال CS50، واحدة من رؤوس بالطبع، وسوف يتم عقد بالقرب من مدخل أننبرغ، الذي سوف ثم انظر كما هو مبين هنا، والطلاب الذين لديهم أسئلة حول اليسار، الموظفين الموجودين على اليمين. وبنقرة من اليسار واليمين، يقوم متصفح الويب الخاص بك بدء امض في أقرب وقت، على سبيل المثال، أستاذ McGonnagal على استعداد لرؤيتك في جدول معين في أننبرغ. فعلت ذلك لدينا بعض من هذا العام الماضي. لقد أعيد تشغيل ساعات العمل ونحن إعادة تنفيذ الكثير من البرامج. حتى ندرك أن هذا سيتم الاحماء هذا الاسبوع. ولكن ندرك أيضا أيضا، في السنوات الماضية، كما كنت قد سمعت من الأصدقاء وكان الدوام الرسمي الواقع بين 50 و 150 طالبا في وقت واحد. وهذا ببساطة غير ممكن بالنسبة لنا للتعامل مع هذا على نحو فعال، واحد على واحد، طوال المساء. وذلك ما نحن ذاهبون حقا أن تحاول أن تفعل هذا العام الاستفادة من حقيقة أن الكثير من الأسئلة المتداولة وكثيرا ما يمكن الإجابة بشكل أفضل بشكل غير متزامن. لذلك يمكنك التفكير في نوع من رد الموظفين، ويمكن أن نفكر من خلال التعليمات البرمجية، دون ساخنة ضغط تكافح بالضرورة من خلال ذلك جنبا إلى جنب. لذلك نحن نقدر أن حوالي ثلث أو نصف الأسئلة سيتم إرسال شخصيا، وسنحاول نتف قبالة كما يصل إلى نصف أو أكثر إلكترونيا، خلال ساعات الدوام. وسوف نستمر في استخدام ناقش على مدار الأسبوع أيضا. وأخيرا، ندرك أن يمكن أن تتخذ هذه الدورة تمرير / تفشل. حتى إذا كنت على الحياد أو مجرد التفكير ان كنت حقا لست متأكدا إذا كان هذا هو العالم بالنسبة لك، أو هذا هو حقا الخارجية تماما لكم، ندرك أن هذا هو وسيلة رائعة لكسب بعض الثقة التي الخطوة إلى الطبقة، كما فعلت بصراحة، منذ سنوات. وبعد ذلك خمسة أسابيع لفرز من الرقم من اصل ل نفسك إذا كنت ترغب في البقاء تمرير / تفشل، والتحول إلى بريد إلكتروني الصف، أو ما شابه ذلك. وعادة ما تمر / لا تفشل، كما أعتقد، هو للطلاب أنه إذا كنت وضعت في هذا 10 ساعة، 20 ساعة، أيا كان قد يكون على بعض المشاكل، وكنت ضجيجا رأسك ضد الجدار، وكنت حقا لا تستطيع مطاردة شيء إلى أسفل، وأنت لديك أشياء أخرى كثيرة عليك القيام به، وبصراحة، ما كنت أعتقد تمرير / تفشل هو، فإنه يأخذ على حافة الخروج من حالات من هذا القبيل. حيث كنت قد اتخذت الشيء 90٪ من الطريق. تعلمون، انها ليست مثالية تماما. ولكن حصلت لك الكثير للخروج منه، مع ذلك. والنظر في ذلك تمرير / تفشل كما أن يعطيك نموذج العقلية، ربما. كل الحق، في الأسبوع الماضي حتى أننا حمامة في سكراتش، ونحن تحدث عن البرمجة على مستوى عال نسبيا الرسومية. واليوم ونحن على الانتقال إلى لغة ودعا C، وهو مستوى أدنى البرمجة اللغوية على رأس التي يتم بناؤها الآن اللغات الحديثة كثيرة، بما في ذلك بعض من هم سنكون باستخدام نحو نهاية المصطلح. وبناء جملة، ما تبدو عليه هو كل مماثلة تماما. لذلك دعونا نبدأ لجعل هذا الانتقال هنا. لذلك كان هذا البرنامج الاسبوع الماضي ان كان أبسط من مرحبا البرامج العالم. انها ببساطة المطبوعة إلى الشاشة مرحبا العالم، مع قليلا فقاعة الكلام يخرج من القط. حسنا، إذا كان علينا أن نبدأ الآن في ترجمة هذا إلى أخرى اللغة، ندرك أن الأفكار اليوم ويوم الاربعاء متطابقة، ولكن بناء الجملة يبدأ التغيير. حتى الأسبوع الماضي بينما كان لدينا، عندما علم أخضر النقر عليها، ويقول مرحبا العالم. اليوم ونحن في طريقنا لديك، الباحث الرئيسي، الفراغ، printf، مقابل ذلك، مع بعض بناء جملة أخرى في هناك أيضا. مجعد الأقواس، والأقواس، واستشهادا، وغيرها. ولكن ندرك أن جوهر الفكرة هنا هي الطباعة، وفي نهاية المطاف حقيقة أن الرئيسي هو سيكون الان مرادفا لبدء برنامج. الرئيسية ستكون فيها علم أخضر جزاء أمور قبالة. حتى الآن دعونا ندف بصرف النظر بعض اللبنات هنا قبل أن يغوص في بعض الأمثلة الملموسة. دعا لذلك نحن هذا الاسبوع بيانا آخر، حيث انها مجرد تعليمات. القيام بذلك - في هذه الحالة، ويقول مرحبا العالم. بشكل جيد في C، إذا نظرنا إلى خط ذلك تماما، هذه هي الطريقة التي نحن سوف تبدأ معتبرا ان قطعة اللغز خاصة: printf ("مرحبا العالم")؛ والآن سنقوم بصرف النظر ندف هذه أكثر وأكثر مع مرور الوقت، ولكن ندرك أن هناك نمطا هنا. حتى واحد، لدينا هذا الشيء يسمى printf، والذي هو أساسا مماثلة لكلمة قل. هذا ما يحدث للقيام به. Printf، وو هنا تعني "تنسيق". لذلك يعني فقط يمكنك إدراج تفاصيل جمالية مختلفة. حتى نهاية الاقتباس الاقتباس هو بداية ما نحن ذاهبون لبدء استدعاء سلسلة. كلمة، عبارة، جملة. سلسلة في لغة البرمجة هو سلسلة من الصفر أحرف أو أكثر. حتى ح-E-L-L-O، فاصلة، وهكذا دواليك، نهاية الاقتباس اقتباس، سلسلة. والآن مائل ن، قليلا غريبة ذو بناء جملة، ولكننا تعريف بالفعل أن الأسبوع الماضي أنها تعني ماذا؟ انها مجرد سطر جديد. انها مجرد وسيلة لنقل إلى جهاز الكمبيوتر الذي تريد يعادل ضرب أدخل هناك، ولكن لم تقم بذلك تريد ضرب فعلا أدخل وبالتالي فوضى الاحتياطي لكافة تنسيق البرنامج الفعلي. الآن الأقواس أرفق هذه السلسلة، وفتح PAREN PAREN وثيق، وداخل ذلك هو سلسلة لدينا. لأن هذا هو لأنه في C، والبرمجة الأخرى اللغات، أشياء مثل printf اتخاذ الحجج، أو اتخاذ المعلمات. حتى يبدأ التفكير الآن من هذه الكتلة قل باعتبارها الأرجواني وظيفة، كوسيلة من وسائل، وذلك الإجراء. يمكنك استدعاء حقا ما تريد في الوقت الراهن، ولكن انها نوع من برنامج مصغر التي لا واحد فقط شيء، في خط واحد، ولا أقل. ذلك هو أيضا ما printf ونحن في طريقنا للبدء استدعاء وظيفة، وظائف نفعل شيئا - في هذه الحالة طباعة سلسلة منسقة إلى الشاشة - ولكن أيضا أن تأخذ وظائف الوسائط أو معلمات. والحجج أو المعلمات، وشكرا لكم، ونحن هنا نتحدث يمكن أن يتأثر سلوكهم من خلال ما قمت بتمرير في داخل الأقواس. حتى في هذه الحالة، يقال احتياجات printf لطباعة ما، ونحن يمر في، في علامات اقتباس مزدوجة هنا، السلسلة التي نحن فعلا تريد طباعتها. والفاصلة المنقوطة في نهاية جدا من هذا الخط هو مجرد ازعاج التاريخية التي في نهاية معظم الأسطر من التعليمات البرمجية، كنت وضعت فاصلة منقوطة لجعل سوبر واضحة إلى الكمبيوتر أن هذا السطر من التعليمات البرمجية ينتهي هنا. الآن هذا أمر جيد لأنه كما سنرى إلى برامج الحصول على المزيد من معقدة، والفاصلة المنقوطة جعل سوبر البشر واضحا لنا، وأيضا جهاز الكمبيوتر، حيث خطوط بداية رمز ونهاية. ندرك أن بعض اللغات لم يكن لديك بعض من هذه التفاصيل نفسها. في واقع الأمر، في جافا سكريبت، لا تحتاج دائما شيء مثل الفاصلة المنقوطة. ولكن أكثر على ذلك في المستقبل. حلقات بذلك. كان لدينا شيئا من هذا القبيل، حدسي جدا، واضحة، القيام شيء مرة أخرى ومرة ​​أخرى ومرة ​​أخرى. مثل وضع على الجوارب، أو قول مرحبا، في هذه الحالة. حسنا، ابتداء من اليوم في C، يمكننا التعبير عن هذا سكراتش كما منع في حين أن (صحيح) printf ("مرحبا العالم"). لذلك تلاحظ بدأنا بناء على اللغز وحرفيا قطعة من قبل. لدينا كتلة نفس الأرجواني، ولكن من داخل هذه بين قوسين كتلة للأبد، وأفضل وسيلة لترجمة ذلك لC هي كما يلي. ليس هناك كلمة رئيسية للأبد. لا يمكنك كتابة فقط و-O-R-E-V-E-R في C. وبالتالي فإن أقرب التناظرية هو الوقت. الآن، في حين أن (صحيح) يبدو قليلا غبي لأن لا قيمة من أي وقت مضى التغيير الحقيقي؟ لا يفترض. انها مثل قوله في حين واحد، بينما على، في حين صحيح. الأمر كله نفس الشيء، صحيح هو الحال دائما. لذلك هذا هو الأمر الذي أدى في الواقع حلقة أي نوع من حلقة؟ مجرد حلقة لا نهائية، أليس كذلك. حلقة للأبد أو كما أطلق عليها في الأسبوع الماضي، مجرد حلقة لا نهائية. حتى في بعض الأحيان فهذا أمر سيئ. في بعض الأحيان وهذا هو الخطأ، وهذا هو السبب في بعض الأحيان تحصل الكرة الشاطئية الغزل أو الساعة الرملية أو ما شابه ذلك. لكن في هذه الحالة، ونحن عمدا، لأي السبب، تريد الطباعة نفس الشيء مرة أخرى ومرة أخرى ومرة ​​أخرى. أو في حالة مثل ساعة، وتريد أن تفعل شيء مرة أخرى ومرة ​​أخرى ومرة ​​أخرى. قد لا نهائية حتى الحلقات معنى. وهذه هي الطريقة التي يمكننا C في ترجمة للأبد إلى رمز. هذا واحد حتى الآن هو أكثر من ذلك بقليل محددة. كان لدينا 10 مرات تكرار العبارة التالية. ذلك بينما (صحيح) لا يعمل تماما هناك، لأن الصحيح هو صحيحا دائما. لذلك إذا نظرنا بدلا من ذلك في النسخة C، والآن يحصل على بناء الجملة أكثر من ذلك بقليل خفي. ولكن لنكون صادقين بمجرد أن تبدأ لمعرفة هذا، فإنه يحصل على كل مألوفة جدا بسرعة. لذلك هذا هو ما يسمى حلقة For. A للحلقة هو ذاهب لاقول من الكمبيوتر أن يفعل شيئا مرة أخرى ومرة ​​أخرى ومرة ​​أخرى لطالما هذه الأمور صحيحة. الآن ماذا نعني بذلك؟ حسنا، هناك ثلاثة أجزاء لللحلقة، ونحن في طريقنا لل نعود إلى هذا في سياق الفعلية أمثلة في لحظة. لذلك لا تقلق إذا لم تغرق تماما في مرة واحدة على الإطلاق. ولكن كثافة العمليات ط = 0 هو، قصة قصيرة طويلة، وقال تعطيني متغير عدد صحيح من هذا النوع، حتى تعطي لي عدد دعوت، وتهيئة إلى 0. هذا هو تعطيني مثل X متغير جبري و تهيئة إلى 0. لكن في هذه الحالة أطلق عليها أنا. ثم في الوسط، تقول أنا أقل من 10. أن ذلك يوضح الكمبيوتر هل الاشياء التالية طالما وأنا أقل من 10. ومن الواضح أن يبدأ أقل من 10 لأن ويبدأ عند 0. وأخيرا ثم، يمكنك تخمين ربما ما كنت + + وسيلة. انها قليلا من بناء جملة هذا يعني فقط زيادة ط. إضافة لذلك 1 إلى الأول، مرارا وتكرارا وتكرارا. وذلك كما سنرى هذه الحلقة، وهذا لغوي، وبدلا من ذلك، تنفذ بالضبط نفس الشيء وبصراحة، في خدش لذلك فقط أسهل بكثير للتعبير عنه. تكرار 10، والانتهاء من ذلك. في C، وفي معظم لغات البرمجة، علينا أن نكون على أكثر من ذلك بقليل مفيدة للكمبيوتر والواقع تحديد شيئا من هذا القبيل. ولكن سوف نعود إلى هذا وبناء الجملة الأخرى. ماذا عن المتغيرات؟ كان لدينا في خدش شيء من هذا القبيل هذه الكتل البرتقال، حيث يمكن تعريف متغير I. ولنطلق عليه تعسفا العداد. دعونا تهيئة إلى 0، ثم دعونا نفعل شيئا إلى الأبد. في هذه الحالة في سكراتش أقوله العداد، وبالتالي فإن القط ستكون لدينا فقاعة الكلام القليل الذي يتحدث انها الرقم الذي في هذا المتغير. ثم لدينا لمكافحة تغير بمقدار 1. حتى يتم تغليف كل ذلك من داخل قفل للأبد. لذلك نحن بالفعل الآن لبنات البناء في C مع التي لترجمة هذا. طريقة واحدة يمكن أن نفعل ما هو هذا. أعطني عددا صحيحا، يطلق عليه صفة طبية. تهيئة إلى 0 في السطر الأول هناك. بينما (صحيح)، لذلك أنا من سرقة هذه الفكرة لحظة فقط قبل المضي قدما والقيام بما يلي. طباعة العداد، ومن ثم زيادة العداد، مرة أخرى، ومرة ​​أخرى، ومرة ​​أخرى. أو مرة أخرى، + + يعني فقط إضافة 1 إلى شيء. ولكن هناك قطعة جديدة من بناء جملة هنا. ما القفز وليس بين الأمثلة السابقة لدينا؟ نعم، هذا د٪. حتى تتمكن من الاستدلال ربما هذا ما تقوم به، وبصراحة، استنادا على ما تقوم به كتلة الصفر. ولكن مرة أخرى في C، لدينا لمجرد أن يكون أكثر من ذلك بقليل خاصة عندما يتعلق الأمر بالتعبير عن أنفسنا. حتى printf ("٪ د \ ن"). كذلك معظم يمكن أن نلقي بعيدا كما مألوفة. ونقلت يعني فقط انها السلسلة، مائل ن هو مجرد سطر جديد. وبالتالي فإن الشيء الوحيد الجديد هو هنا د٪. وكل ما هو عنصرا نائبا. د٪ سوف للدلالة على رقم عشري. والكمبيوتر وسائل د٪، وطرح عدد عشري هنا. حسنا، ما هو الرقم الذي تريد وضع هناك؟ حسنا، كما يمكنك استنتاج ربما، بعد الفاصلة نقول العداد، هذا هو اسم المتغير الذي أعلنا أو إنشاء سطرين في وقت سابق. لذلك هذا هو مجرد وسيلة لتوصيل C في متغير في سلسلة حيوي. لأن النقيض من ذلك، إذا كنت قد فعلت شيئا من هذا القبيل بدلا هذا، printf ("مكافحة")، ما هذا برنامج القيام بدلا من ذلك، يفترض؟ وأنها سوف طباعة حرفيا "مكافحة". وهي ليست التأثير الذي أريد. ولست بحاجة إلى استبدال في بعض قيمة رقمية. لذا فإننا سوف نرى أن المهام ثم، مثل printf، يمكن اتخاذ لا فقط مجرد حجج واحدة، مثل "مرحبا العالم". فإنها يمكن أن تأخذ اقتباس فاصلة نهاية الاقتباس، وبعد ذلك بعض المتغيرات والتي تحصل موصول، كما سنرى السلسلة السابقة عن طريق هذه العناصر النائبة علامة٪. كذلك ماذا عن التعبيرات المنطقية؟ كانت التعبيرات المنطقية هذه القيم، صحيحة أو خاطئة. نعم أو لا. 1 أو 0. أو إيقاف تشغيله. حتى في خدش أنها تبدو مثل هذا، وتلاحظ أن كتلة أسفل هنا هو في الواقع بالتعاون اثنين من كتل صغيرة. لذلك أنا نوع من سحب وإسقاط قطع اللغز 3 معا لجعل هذا اللغز قطعة يعد هناك لدرجة أنني يمكن أن ينقل فكرة التي أريد أن تكون X أقل من y و ذ أن تكون أقل من Z. وحتى أتمكن من ترجمة هذه الخطوط منفصلين على النحو التالي. يمكن رأس واحد مسلي جدا ترجم إلى C، فقط مع X <ذ. ربما مع بعض الأقواس لحسن التدبير. ثم في C، أنت لا تكتب ودلالة على بالتزامن لشيء ما. تكتب بدلا &&. وكما سنرى في نهاية المطاف، والعطف واحد يحدث لل يعني شيئا مختلفا. ذلك يدل && فقط فكرة AND. ذلك مرة أخرى، على الرغم من هذا يبدأ تبدو معقدة إلى حد ما، واحدة من أغراض إدخال الصفر، إلى جانب مجرد وجود نوع من المرح على الطريق المنحدر حيث يمكنك القيام به هذا شيء الرسومية جدا، والرسوم المتحركة، و وللمشاركة وما شابه ذلك، كما أن أنقل فكرة أن كل الأفكار نبدأ الغوص في اليوم وما بعده وقد تتجسد في أنه حتى بسيطة واجهة منذ اليوم الأول. ماذا عن هذا واحد هنا؟ حتى الظروف. وبالتالي فإن كتلة الصفر على اليسار هناك يبدو قليلا أكثر تعقيدا. ولكن انها مجرد سحب وبعض إسقاط القطع مألوفة. إذا كانت x أقل من Y، يقول ذلك. الا اذا X أكبر من Y، يقول ذلك. آخر، يمكننا أن نفترض منطقيا انه استنتاج أن يجب أن تكون على قدم المساواة. لذلك يقولون انهم متساوون. الآن في C على الشيء الصحيح، بالضبط نفس. وتلاحظ أن الأقواس المتعرجة وستكون سمة من سمات C وغيرها من اللغات التي لا هذا النوع من التغليف. تماما مثل كتلة إذا هو هذا الشيء الأصفر وهذا النوع من الاستيلاء على كتلة الأرجواني داخل منه. وبالمثل هي هذه الأقواس - هذه الأقواس المتعرجة - من المفترض أن تستحضر هذه الفكرة نفسها من تبني واحدة أو أكثر الأسطر من التعليمات البرمجية التي يتم تحريكها داخل منهم. حتى على الجانب الأيمن هنا، إذا كان x أقل من Y، printf ("X أقل من Y"). والا اذا X أكبر من Y، وطباعة واحدة. طباعة آخر إلى أن تكون على قدم المساواة. لذلك باختصار، هناك رسم الخرائط مباشرة إلى حد ما أو الترجمة للغة شاهدنا حتى الآن، بما في ذلك بعض من ميزات أكثر تطورا. لذلك قد لا تستخدم هذا للمشروع الخاص بك، أو قد لا يمكن استخدام هذا لمشروعك هذا الاسبوع. لكننا ودعت هذه الأمور صفائف في C. في سكراتش، انهم يسمى القوائم. ورأينا مع هذه RPG Fruitcraft الاسبوع الماضي. الرجل الصغير الأزرق الذي كان يتجول، والتقاط الكرز والبرتقال وما شابه ذلك. كذلك في خدش، تم تنفيذ ذلك مع هذا البرتقال منع الكلمات التي تحتوي، في هذه الحالة، نحن حرفيا مضيفا "البرتقالي" ل متغير يسمى المخزون. حتى في C، بناء الجملة هذا هو الذهاب الى الحصول على أكثر من ذلك بقليل خفي. وسوف نعود إلى هذا في الأسبوع القادم وبذل المزيد من الجهد مثيرة للاهتمام الأشياء في عالم التشفير معها. ولكن في أسفل هنا، هذين الخطين أساسا تترجم إلى ما نقوم به في واحدة خدش منع هناك. ولكن أكثر على ذلك في المستقبل. وضع لذلك معا، وهنا هو برنامج C. في ذلك دعونا وبصرف النظر بسرعة ندف بعض القطع من جملة هنا، ولكن ثم دعونا تبدأ فعلا كتابة بعض التعليمات البرمجية، تعريف كنت مع بعض الأدوات سنكون باستخدام، ونرى ما اذا كنا يمكن البناء على هذه الآن بعض من اللبنات الأساسية الأسبوع الماضي، والآن في بناء جملة C. لذا في الجزء العلوي هنا، وهذا ربما يكون واحدا من أكثر البرامج مملة يمكن لكم الكتابة في لغة البرمجة الأكثر وجدت. ولكن بشكل ما أن من لديه معنى خاص لأنها الكنسي البرنامج الذي يكتب أي عالم الكمبيوتر عندما تعليم لغة برمجة شخص - برنامج مرحبا العالم. حتى في أعلى جدا، ونحن نرى هذه الفكرة من # تشمل وبعد ذلك، بين قوسين الزاوية، stdio.h. ونحن في طريقنا للعودة إلى ذلك، ولكن في الحقيقة أن ما يعني أن هناك ملف في هذا العالم دعا القياسية I / O، stdio ونقطة ح، وهذا مجرد ملف نصي كتب شخص سنوات. وداخل هذا الملف النص هي مجموعة كاملة من وظائف، أو طرق، أو الإجراءات، أن شخصا آخر كتب أننا المستفيدين من أننا ويمكن الآن استخدام التعليمات البرمجية التي الشخص. وظائف كتب هو أو هي. في هذه الحالة، هو printf يست شيئا كتبت، انها لا شيء CS50 كتب. انه شيء أن شخصا ما كتب سنة مضت، وضعها في دعا stdio.h الملف ومن ثم، بوصفها جانبا، وطرح جزء آخر من وظيفة في ملف آخر. ولكن سوف نصل الى هناك. حتى تشمل # هو مجرد وسيلة لدينا من القول، في C، أعطني الوصول إلى الوظائف التي كتب شخص آخر. وفي هذه الحالة يهمني لأنني أريد printf. الآن نحصل على كثافة العمليات الرئيسية (الفراغ). لذلك هذا هو واحد من هذه الأشياء، بصراحة، أن في يوم 0، الى حد كبير لقد قمت لنوع من الخروج المنطقة، لأنه فقط لا للاهتمام فكريا، وبعض من بناء الجملة. لكن في الوقت الراهن نعلم أن وظائف، والمعروف باسم الإجراءات أو أساليب، إنتاج عموما بعض القيمة. يفعلون شيئا. أنها تأتي مع جوابا. أنها تنتج الانتاج. الباحث ذلك إلى جانب الطريق الرئيسي هو مجرد اختزال لدينا من القول أن هذه الوظيفة، هذا الإجراء، يجري في نهاية المطاف لتعطيك عودة عدد. وهذا هو السبب، سوف نعود إلى. الرئيسي هو فقط مستوى العالم الافتراضي الافتراضي لل الدالة التي يجري تنفيذها في الحصول على برنامج C عندما تشغيله. الفراغ يعني فقط هذا الشيء، الرئيسي، لا يأخذ الحجج، في هذه الحالة. لذلك أنا يجري السوبر صريحة. ليس هناك سلاسل في هناك، وليس هناك فواصل. الفراغ يعني عدم وجود الحجج الى الأصل. وأخيرا الآن، والحمد لله، وكان آخر سطرين معتادا. داخل الأقواس المتعرجة لدينا printf وليس لدينا العودة. وعودة هو نوع من المؤسف أن علينا أن وضعه هناك، لأنه في هذه الحالة انها ليست بكل ما الكثير من الاهتمام. ولكن في برنامج كمبيوتر، عندما ترجع الدالة 0، وهذا يعني كل شيء على ما يرام. ذهب حرج. على النقيض من ذلك، إذا كان الدالة بإرجاع 1 أو 1 سلبي، أو سلبية 1337، أو بعض الأرقام العشوائية من هذا القبيل، أن يعني عموما أن خطأ قد حدث فعلا. إذا كان الأمر كذلك كنت على جهاز ماكنتوش أو الكمبيوتر الخاص بك، إذا كنت قد رأيت من أي وقت مضى رسالة مزعجة بسبب بعض جهاز الكمبيوتر الخاص بك قد تحطمت أو جمدت، وهناك رسالة خطأ خفي، وبعد ذلك بعض رمز، رمز النظام مثل 1،2،3،4، بعض الأرقام، هذا هو عموما التفاصيل التي لا داعي لها لأقول معظمنا البشر، ولكن هذا هو ما وظيفة بعض أو بعض عاد برنامج الواقع، قيمة غير الصفر. والاستفادة من ذلك هو أن جميع 0 يعني أيضا، و ثم لديك عدد لا حصر له أساسا من الأشياء التي يمكن ان تتعرض له. وهذا هو السبب أنهم اختاروا 0 للجيد وقيمة غير الصفر لل سيئة، كما سنرى قريبا. لذلك دعونا المضي قدما في الكتابة هذه. أذكر ذلك اليوم الآخر أن كنت بلدي ماك لفتح نافذة طرفية، وبعد ذلك فتحت برنامج النص، مثل بدأ برنامج TextEdit، وأنا أكتب بعض التعليمات البرمجية. كذلك هذا شيء طيب. ولكن تجربتك ستكون مختلفة على جهاز ماكنتوش، أو على جهاز كمبيوتر سولاريس، وجهاز كمبيوتر لينكس، مهما التشغيل النظام الذي يحدث ليكون باستخدام. وذلك في سياق ما نحن بدلا من ذلك استخدام شيء ودعا الجهاز CS50. وبالتالي فإن الأجهزة CS50 هو قطعة من البرمجيات القابلة للتنزيل التي تسمح لك بتشغيل نظام تشغيل لينكس دعا، فيدورا لينكس على وجه التحديد، على ماك الخاص بك أو بجهاز الكمبيوتر. والقيام بذلك عن طريق تحميل برنامج مراقبة الأجهزة الافتراضية شيء يسمى. لذلك سيتم توثيق كل هذا في مجموعة مكونة المشكلة 1. وسوف تسترشد لك نحو ما تحتاج لتحميل. ولكن النتيجة النهائية، إذا كان لديك جهاز ماكنتوش أو كمبيوتر شخصي، هو أنت تحميل بعض البرمجيات الحرة. قمت بتحميل ثم الجهاز CS50، وكنت أقول أن البرمجيات الحرة - وهبرفيسر - لتشغيل جهاز CS50 في إطار على جهاز الكمبيوتر الخاص بك. وهذا هو ما يحدث. لقد الآن، لاحظ هنا، على ما يبدو سطح المكتب البيئة. واسمحوا لي أن يتقلص هذا الواقع نافذة واحدة. لذلك هذا هو بلدي الآن ماك، مع نافذة صغيرة هنا، وداخل من هذه النافذة يحدث أن تكون تماما نظام التشغيل المختلفة. في الواقع هناك بداية هذه القائمة هنا إلى أسفل، تذكرنا النوافذ، والذي يحتوي على مجموعة كاملة من القوائم الفرعية، بما في ذلك رابط لدليل CS50، دروببوإكس، وما شابه ذلك. وما هذه البيئة هي بيئة معيار الآن أن كل واحد منا يمكن الآن استخدام، حتى بغض النظر عن ما لديك الكمبيوتر، ما كنت قد قمت بتثبيت عليها، أي إصدار من OS ماك أو ويندوز الذي تقوم بتشغيله، ونحن الآن نملك كل نفس البيئة. والآن في هذه البيئة يمكن أن نبدأ كتابة بعض التعليمات البرمجية. لذلك أنا ذاهب الى المضي قدما وفتح برنامج يسمى gedit. هذا هو مماثل لNOTEPAD.EXE، أو برنامج TextEdit على ماك. وهذا هو مجرد سوبر تحرير نص بسيط برنامج يشبه هذا لأول وهلة. الآن في أعلى جدا، لدي لوحة بيضاء، في أسفل I لديك هذه النافذة السوداء التي تقول jharvard @ الأجهزة. وذلك لأن حساب المستخدم الذي تم إنشاؤه مسبقا نحن للجميع ويسمى جون هارفارد. لديه مجلد حيث كل ملفاته في سبيلنا للذهاب، و هنا حيث يمكننا البدء في كتابة بعض التعليمات البرمجية. لذلك اسمحوا لي المضي قدما هنا وتكبير قليلا فقط، وأنا ابن تنوي القيام به # تشمل ، الباحث الرئيسي (الفراغ)، و ثم انا ذاهب الى القيام printf ("مرحبا العالم") ؛ العودة 0. الآن هذا هو كل الأسود والأبيض تماما. اسمحوا لي أن نمضي قدما ونفعل شيئا واحدا لتعليم gedit ما أنا القيام بالفعل. اسمحوا لي أن انتقل إلى حفظ باسم. انا ذاهب الى اختيار في الجانب الأيسر هنا jharvard. ذلك مرة أخرى، حتى لو كنت لا تستخدم لينكس من قبل، بصراحة في هذه الأيام، كل منهم تسند أساسا إلى نفس النوع من واجهة - ماك OS، ويندوز، ولينكس. لذا اخترت مجلد jharvard منزل هنا. وانا ذاهب لحفظ هذا الملف كما hello.c. حتى في أعلى جدا، وأنا كتبته hello.c؛ تسمية C برنامج مع ملحق ج. هو ما هو ممارسة شائعة. وأنا ضربت حفظ. والآن ما هو جميل هو أنني قمت بتدريسها بشكل فعال gedit، أن هذا هو برنامج C. لاحظ أنه يتم الآن لون النص بلدي أبيض وأسود مشفرة، أو بناء جملة ذو أهمية خاصة، والتي تلفت انتباهي فقط إلى الدلالية أجزاء مختلفة من البرنامج. في أعلى يسار هناك، كما بلدي الحصول على برامج أكثر تعقيدا، وأنا ستكون لدينا ملخص لجميع الأشياء كنت قد كتبت. هذا كل شيء حتى تصل إلى هناك. لذلك اسمحوا لي الآن من تكبير والنزول الى هذه النافذة الطرفية. لذلك هذا هو ربما جديدة لكثير من الناس. إذا كنت لم تستخدم بيئة سطر الأوامر، وكنت قد أبدا استخدام DOS، أو كنت لا تستخدم لينكس، أو كنت قد فتحت أبدا جهاز Mac OS إطار المحطة الطرفية، وهناك الكثير من الأشياء التي يمكن أن تفعله مع واجهة المستخدم الرسومية، مثل الإشارة والنقر، و السحب، وإسقاط، وما شابه ذلك، ولكن بصفة عامة - بالتأكيد في العالم في علوم الحاسب الآلي - باستخدام سطر الأوامر، حيث لم يكن لديك الماوس عموما، لديك فقط لوحة المفاتيح، هو في الواقع الكثير أقوى من واجهة، ومرة ​​واحدة الحصول على تأقلم لك مختلف الأوامر. وكنت نوع من تحرير نفسك من الحاجة إلى نقطة وانقر في كل شيء. حتى في gedit سنقوم فرز من الحصول على أفضل ما في العالمين. يمكننا سحب وإسقاط النص، يمكننا أن نرى ذلك لطيفة وترميز اللون. ولكن عندما يأتي الوقت لتشغيل برنامجنا، سنقوم في بعض الأحيان مجرد استخدام هذه النافذة الصغيرة هنا. لذلك أنا ذاهب لنمضي قدما ونفعل ذلك. في النافذة السفلى أبيض وأسود، وأنا ذاهب إلى المضي قدما والكتابة رنة. ورنة هو اسم مترجم. إنه برنامج الذي يحول قانون بلدي مصدر في، رمز كائن ذلك. و 0s 1s، التي شهدناها الاسبوع الماضي لفترة وجيزة. وعد نذكر من الأسبوع الماضي، وأننا ذاهبون إلى الانتقال من شيء من هذا القبيل - ونحن بحاجة إلى أن تكون شيء من هذا القبيل - وهذا بالتأكيد ليس ما يحدث من حقوق الإنسان للقيام يدويا. وذلك بدلا نحن في طريقنا لاستخدام البرنامج، وهذا البرنامج في وتسمى هذه الحالة ضجيج. واسم البرنامج هو بلدي hello.c. في ذلك من أجل تجميع hello.c من التعليمات البرمجية المصدر إلى رمز الكائن، أو 0S و1S، ينبغي أن تكفي لمجرد القيام هذا وهاهنا. حسنا، لا يبدو أن شيئا حدث. لكنني أعرف الآن، أو من الأسبوع الماضي، أن الاسم الافتراضي ويسمى برنامج بحماقة، عندما كتب في C، a.out. الاسم الأكثر رتيبا هل يمكن أن تصل. A هو الحرف الأول من الأبجدية، هو ما كان أنتج، ولكن فليكن ذلك. هذا هو برنامجي، والآن نقطة مائل، كما سنرى هو، في الواقع مجرد نوع من ميزة أمان، لأن a.out هو برنامج كتبت. فإنه لم يأت مع جهاز الكمبيوتر الخاص بي، انها لا في ملفات البرنامج. انها ليست في مجلد التطبيقات لنظام التشغيل Mac OS. ولست بحاجة إلى أن تكون صريحة فائقة مع جهاز الكمبيوتر، ويقول هذا البرنامج، a.out، في المجلد الحالي، الدليل الحالي. والطريقة أنت ممثل هذا في بيئة مثل هذه ويمثل نقطة أي المجلد الذي تتواجد فيه حاليا. وهكذا. / a.out يعني فقط تشغيل في المجلد الحالي. وأنا أدخل مع تشغيل هذا، وفويلا، برنامجي الأولى. والآن اسمحوا لي اتخاذ خطوة إلى الوراء. هذه النافذة الصغيرة قليلا، وندرك أن أسفل تبقى من الأجهزة هنا هو رمز آخر. واحد هو الكروم، التي ينبغي أن تكون على دراية تامة، فقط على شبكة الإنترنت متصفح من داخل الجهاز. وهذا الرمز هو أبيض وأسود فقط أكبر محطة النافذة. إذا كان الأمر كذلك فإنه يحصل على مزعج قليلا لفرز من لديها فقط هذه شريحة صغيرة قليلا من نافذة للتفاعل مع التي مع البرامج، يمكننا أن نفعل هذا بدلا. واسمحوا لي أن أبدأ الآن كتابة عدد قليل قريبا أن تكون أوامر مألوفة. LS. ذلك هو الأمر LS للإدراج. حتى في نظام التشغيل Mac OS أو Windows، وكنت عادة نقرا مزدوجا فوق مجلد ثم، فويلا، تشاهد كافة الملفات المختلفة والمجلدات. في أمر البيئة الخط، حيث يمكنك كتابة فقط أوامر أو النص، هو ما يعادل ليرة سورية. تظهر لي ذلك ما في هذا الدليل. الآن هناك حفنة من الاشياء التي على حد سواء هنا قليلا مألوفة وغير مألوفة قليلا. ولكن لاحظ أن مجرد مثل ويندوز وماك OS، jharvard لديه مجلد سطح المكتب. لذلك أي رموز الموجودة على سطح المكتب يحدث أن تكون في هذا المجلد. هناك مجلد التنزيلات، الاشياء التي قد الكروم وضع هناك. صندوق إسقاط. وبالتالي فإن الأجهزة يأتي مع المدمج في دعم لدروببوإكس ذلك أنه على مدى فصل دراسي، يمكنك مزامنة مع Dropbox الخاص بك حساب بحيث يتم دعم كافة البرامج حتى. انهم يمكن الوصول إليها على جهاز الكمبيوتر الأخرى الخاصة بك. إذا كان أي شيء يذهب على الإطلاق الخطأ مع الجهاز، يمكنك جدا بسهولة استعادة من دروببوإكس. بحيث المجلد هناك لذلك. هناك ملفين الذي كنت قد طرحته - hello.c وa.out. ثم إلى اليمين هناك بعض المجلدات الأخرى التي سنقوم وصول الى قرب نهاية الفصل الدراسي، مع شبكة الإنترنت البرمجة. حتى عندما أفعل /، a.out، أدخل، وهذا القول يذهب في الدليل أنا في، الدليل الحالي، وتشغيل دعا برنامج a.out هناك. كل الحق، لذلك من الجيد أن وجيدة، ولكن هذا ليس كل ما مقنعة لكتابة برنامج يساعد دعا a.out. حتى نتمكن من القيام به في الواقع هذه بشكل مختلف قليلا. وذلك بدلا من مجرد رنة على التوالي، hello.c، دعونا نضيف ما يسمى سيطة سطر الأوامر. ذلك حجة سطر الأوامر، أو التبديل في هذه الحالة، هو مجرد آخر الكلمة أو العبارة التي تكتب في موجه بعد البرنامج الذي تريد تشغيله. حتى في هذه الحالة، هو البرنامج رنة I تريد تشغيله،، س خرج سائل ملف هذا لم يعد يسمى a.out. دعا الناتج ملف مرحبا، وذلك من خلال تجميع مشاركة كلمة على سطر، hello.c. لذلك باختصار، هذا هو تحسن هامشي للغاية، حيث بدلا من وجود هذا الملف المسمى a.out بغباء، يمكنني أن أفعل الآن رنة-O مرحبا، ثم hello.c، و ثم ضرب أدخل. لا شيء يبدو أن يحدث، ولكن مرة أخرى، مثل الكثير مع 0 - عندما لا شيء يبدو أن يحدث هذا يعني حرج حدث - لذلك دعونا نفعل ليرة سورية الآن، أدخل، وبالفعل أنا الآن لديك برنامج مرحبا. حتى لو كنت اكتب مرحبا الآن، الأمر غير موجود. OK،. /. بالضبط الحق في ذلك. ذلك لأن هذا البرنامج كتبت، وأنها لم تأتي مع الكمبيوتر، / مرحبا، أدخل، يعني أنا على التوالي الآن مرحبا. لذلك هذا كل شيء هناك. الآن ما سنقوم في نهاية المطاف إلى سطر الأوامر أكثر وأكثر الحجج التي تسمح لنا أن نفعل أكثر من ذلك، ولكن فقط لأولئك ل منهم هذا قد يكون قبعة قديمة، اسمحوا لي أن تذهب في الواقع إلى الدليل هنا وفقط تعطيك دعابة من وإلا كيف نحن يمكن أن تذهب نحو تنفيذ مرحبا العالم. اسمحوا لي أن انتقل إلى هنا، وأنا ذاهب لفتحه. في الواقع كان الأمر كذلك، انا ذاهب الى شرح ما أقوم به، لذلك هذا هو مفيد. اسمحوا لي أن احتياطي. حتى لقد فعل هذا لفترة طويلة. لاحظت ذلك على أساس أن الحق هناك عددا من الدلائل التي تتم تسمية الغريب source1m وsource1w. هذا هو مجرد سخيفة الاتفاقية التي نستخدمها. المصدر يعني فقط شفرة المصدر، 1 يعني هذا هو أسبوع واحد، و م يعني انها الاثنين، وث يعني انها الاربعاء. لا شيء حتى خفي هناك. انها مجرد تدوين الاختزال. هذه الأشياء الزرقاء هي المجلدات، والمعروف باسم الدلائل. أريد أن أذهب إلى هذا المجلد الآن، وعلى جهاز كمبيوتر عادي يمكن أنا فقط على أيقونة المجلد وانقر نقرا مزدوجا هناك كل ما عندي من الملفات. ولكن في أمر البيئة الخط، لا أستطيع أن أفعل تماما أنه، بدلا من ذلك، لا بد لي من تغيير الدلائل يدويا. حتى لو كنت اكتب CD ثم source1m، أدخل، لاحظ أن موجه بلدي، والشيء باللون الأبيض في اليسار، تغيرت فقط. وبالفعل كان الأمر كذلك، عندما قالت قوسين فقط وبعد ذلك تمايل قليلا، رمز تيلدا، وهذا يعني فقط كنت في الدليل الرئيسي جون هارفارد، له المستندات، الملفات الشخصية له. ولكن الآن بين قوسين تقول ~ / source1m. هذا يعني فقط أنا في مجلد يسمى source1m هذا في الدليل الرئيسي جون هارفارد. إذا كان الأمر كذلك أريد الآن إلى قائمة الملفات في هذا المجلد، وسهلة سؤال، اكتب I LS فقط. والآن أرى كل من الملفات التي تم إنشاؤها مسبقا I لهذا اليوم محاضرة، وكلها، أو معظمها، يحدث أن تنتهي في. ج. لذلك اسمحوا لي الآن المضي قدما وتشغيل gedit من برنامج يسمى holloway.c، الذي هو مكتوب من قبل بعض القراصنة عشوائي على شبكة الإنترنت، التي تبدو قليلا مثل هذا. ونحن لن تذهب من خلال هذا واحد في أي التفاصيل، ولكن لتلك أكثر راحة، على وجه الخصوص، إذا كنت تريد أن تأخذ تخمين على ما يفعل هذا البرنامج هنا. تطمئن، سواء كنت أقل أو أكثر راحة، نحن لا حتى الحصول على هذا النوع من الاشياء بحلول نهاية في هذا الفصل الدراسي. هذا هو ما مثال لمسابقة C غموض، والتي وسائل كتابة البرنامج الأكثر خفي ربما كنت أبحث يمكن التفوق على الناس الذكية الأخرى، الذين هم بالمثل محاولة كتابة الأشياء واظهار أن يكتبوا أكثر الأشياء خفي مما كنت. وهذا ليس مثالا على برنامج مكتوب بشكل جيد من منظور أسلوب، وهذا هو مثال على برنامج يفوز في مسابقة لالناس الذين يحاولون تكون غامضة ومجردة. حتى إذا كنا تشغيل هذا شيء، اسمحوا لي أن أذهب إلى بلدي نافذة طرفية، إذا جاز التعبير. لذلك وهذا ما يسمى البيئة بالأبيض والأسود ل نافذة طرفية عموما. اسمحوا لي أن تمضي قدما وترجمة عليه. أنا لا أذهب لاستخدام رنة، وذلك لأن هذا البرنامج هو خفي قليلا ويحتاج الى مختلف مترجم، واحد يسمى مجلس التعاون الخليجي. ولكنه يفعل الشيء نفسه. فإنه يأخذ التعليمات البرمجية المصدر إلى رمز الكائن. والآن إذا قمت بتشغيل a.out، أن البرنامج الذي فقط رأيت يفعل هذا. بحيث فاز مواطنه ذلك العام أن المسابقة. على أية حال، نحن لا تسير في هذا الاتجاه، في حد ذاتها. لذلك دعونا نحاول فعلا لندف بصرف النظر الآن ما يمكننا القيام به مع هذه اللبنات الأساسية لجعل المزيد والمزيد مثيرة للاهتمام البرامج. لذلك قمنا بكتابة برنامج، لقد قمنا بتشغيل البرنامج. الآن يمكننا تبسيط الواقع وأنه لم يعد لديك لكتابة ورنة الكلمة في موجه. كما اتضح برامجنا الحصول على المزيد من خفي، ما في وسعنا، أو أكثر تعقيدا نوعا ما، يمكننا تشغيل هذا الأمر الواقع. لذلك اسمحوا لي أن أعود إلى بيتي الدليل، لذلك التحدث إلى، اسمحوا لي إزالة - RM هو الأمر إزالة - أنا ذاهب لإزالة يسمى ملف a.out ومرحبا. وتلاحظ الآن في أمر البيئة الخط، يشبه إلى حد كبير في واجهة المستخدم الرسومية، وتحصل على المطالبة. لا أستطيع فوق زر على الرغم من، وأنا يجب أن اكتب Y للنعم، نعم نعم لل. والآن إذا كنت اكتب ليرة سورية مرة أخرى، لاحظ أن هذه الأخضر برامج - a.out ومرحبا - ولت. حذار RM. يمكن أن تفعل أشياء سيئة، تماما مثل ما تستطيع عن طريق سحب أشياء يمكن القمامة الخاص بك. حتى الآن دعونا المضي قدما - وأنا يمكن أن أعمل هذا - رنة-O مرحبا، مرحبا - أنا سبق لي كتابة بالملل هذا الأمر. على الرغم من أنني كتبته قليلا بسرعة. حتى نتمكن من القيام بدلا من ذلك جعل مرحبا. لذلك ليست مترجم. انها مجرد صديقة البرنامج الذي يأتي مع لينكس، في هذا حالة - نظام التشغيل - بأتمتة عملية تجميع البرامج. وذلك بدلا من تذكر رنة-O اسم الملف و ثم هكذا دواليك، مرة واحدة وخاصة تلك الخطوط لفترة أطول والحصول على يعد، ويمكنني أن تجعل مجرد كتابة. وهذا هو الذهاب الى بصق في مجمله مجموعة من الاشياء التي سنرى في نهاية المطاف هذا الفصل الدراسي. ولكن لاحظ الآن إذا ليرة سورية من النوع الأول، هو العودة مرحبا بي في الدليل. والواقع يمكنني تشغيله مع / مرحبا. لذلك بأتمتة مجرد عملية تشغيل ما كان، في هذه الحالة، أطول من ذلك بكثير، الأمر أكثر تعقيدا. لذلك نحن في طريقنا للبدء في استخدام جعل، لأن مجرد انها الكثير أكثر ملاءمة للمستخدمين. ولكن الآن دعونا نفعل أكثر إثارة للاهتمام برنامج من أقول مرحبا. حتى في برامج لقد كتبنا حتى الآن هناك الرئيسي. هذا مجرد شيء الافتراضي الذي يبدأ كل شيء من. ولكن هناك وظائف أخرى الى هناك كذلك، و stdio.h هو الشيء الذي رأيناه في الجزء العلوي من لدينا الملف قبل، وهذا ما يعرف مكتبة القياسية. داخل المكتبة هو معيار مجموعة كاملة من وظائف كتب أن شخص آخر، ويمكننا البدء في استخدام هذه وظائف لكتابة المزيد مثيرة للاهتمام برامج أنفسنا. لذلك اسمحوا لي أن أعود إلى الجهاز. أنا ذاهب إلى إغلاق هذه النافذة الطرفية. أنا ذاهب لإغلاق الأشياء التي كتبت في وقت سابق، وتذهب فقط في hello.c، وتلاحظ الآن يمكنني أن أفعل ما يلي. مرحبا العالم ليس كل ما مثيرة للاهتمام، أود أن تخصيص هذا البرنامج لنفسي. لذلك بدلا من أن تقول العالم، وأنا ذاهب إلى المضي قدما ويقول - ويمكنني أن اكتب ديفيد - ولكن هذا هو حقا نوع من من حيث الجوهر. ولكن دعونا تجربة هذه الفكرة نائبا. كان لدينا في التذكير بأن C، وليس في printf، وهذه النائبة، وهناك أكثر من٪ د فقط. لذلك كان د٪ وسريعة الاختيار التعقل. حسنا، رقم عشري، هذا كل شيء. أرقام عشرية، هذا كل شيء. حتى ج٪، ونحن سوف تواجه، ستكون حرف. وضع حرف هنا، رسالة من A إلى Z، أو علامات الترقيم الرمز. حرف واحد، و٪، أحد يعرف من لغات أخرى؟ لذلك قيمة النقطة العائمة. عدد حقيقي. حتى لا رقم عشري - وهذا هو في الواقع الرقم الحقيقي مع علامة عشرية، وبعض عدد من الأرقام إلى اليسار والحق منه. ٪ S، السلسلة. أن واحدا ونحن في طريقنا لرؤية كثير من الأحيان. سلسلة، مرة أخرى، هو مجرد كلمة، عبارة، سلسلة من فرد حرفا. وأخيرا، بكالوريوس في القانون؟ لذلك هذا هو أكثر من قضية الزاوية. طويلة، طويلة العشرية. حتى إذا كنت تريد ليس فقط عدد هذا بهذا الحجم، كنت تريد اكبر عدد، وأنت تسير لدينا لتحديد ل الكمبيوتر أنها ذات حجم معين. لذلك دعونا قرص بت هذا قليلا. بدلا من رمز فقط الثابت في ديفيد، اسمحوا لي قليلا يقول حيوي ليالي٪. لذلك وضع٪ S هنا، وهو نائب عن سلسلة. ثم اسمحوا لي أن تفعل فاصلة، ثم "ديفيد" أكثر من هنا. الآن هذا ليس كل ما مثيرة للاهتمام فكريا، لأن كل ما قمت به الآن هو خلق المزيد من العمل لحقا الكمبيوتر. بدلا من قول لا هذا الكمبيوتر في كل مرة، وأنا الآن قائلا قيام بذلك وإدراج سلسلة هنا في نهاية المطاف، فاصلة، هنا هو أن السلسلة. وهذا ليس أفضل تحسن، لكنه على الأقل خطوة نحو برنامج أكثر إثارة للاهتمام. لأنه الآن، اسمحوا لي أن تمضي قدما وجعل هذه النافذة قليلا أكبر، اسمحوا لي أن تمضي قدما وتشغيل جعل مرحبا. والآن،. / a.out لا يعمل، لماذا؟ حسنا، الآن انه دعا مرحبا. ذلك مرة أخرى جعل، وأيضا رنة مع O-، إعادة تسمية برنامج ليكون شيئا أكثر إثارة للاهتمام. وفويلا: الآن تقول مرحبا ديفيد. حسنا، لا يزال برنامج غبي. حتى الآن دعونا نذهب فعلا إلى هنا وإدخال مفهوم من متغير. لن يكون ذلك جميلا إذا كان بإمكاني تعريف متغير الذي هو نوع السلسلة؟ وقيمة للمتغير تأتي في الواقع من المستخدم نفسه أو نفسها. تعسفا ذلك، انا ذاهب الى بلدي ليالي استدعاء المتغير، والذي هو دعا مجرد اتفاقية مشتركة عندما يكون لديك متغير واحد السلسلة. انا ذاهب الى القيام علامة المساواة، ومن ثم أنا ذاهب إلى استدعاء استدعاء الدالة GetString. حتى GetString ليست شيئا يأتي في صلب انها C. وظيفة أن الموظفين CS50 كتب، فقط حقا لل هذه الأسبوعين الأولين، لتبسيط عملية الحصول على مدخلات المستخدم والحصول على مدخلات المستخدم في شكل من السلاسل، أو أرقام، ومثل هذا. ذلك هو مثل GetString printf، ولكن بدلا من الواضح طباعة انها سوف تفعل ما اسمها وتقول، والحصول على السلسلة. ولكن لاستخدام GetString، ونحن ستكون لدينا لإجراء تغيير هنا، وراء هذا. حدسي ذلك، وهذا البرنامج، كما نأمل، على نحو ما هو الذهاب الى الحصول على سلسلة من المستخدم، ومن ثم فإنه ما تنوي القيام به مع هذه السلسلة، ودعا ق؟ انها مجرد الذهاب الى طباعته، أليس كذلك؟ لم برنامج تحفيز لكل ما يحدث القيام به هو سد العجز في تلك القيمة إلى٪ S حيث تقول انها يجب ان تذهب. لذلك دعونا على الأقل نرى في هذا العمل. اسمحوا لي حفظ والتصغير. الآن في إطار المحطة الطرفية إلى أسفل هنا، شريحة صغيرة من واحد، اسمحوا لي أن تفعل مرة أخرى جعل مرحبا. حسنا، وآه، لعنة؛ حصلت في مجمله مجموعة من الأخطاء. اسمحوا لي أن انتقل لأعلى، ونحن نرى أولا لدينا - لذلك دعونا نفعل هذا الواقع في إطار برنامج أكبر لذلك أنت يمكن أن نرى مدى الضرر I ثمل - لذلك مرحبا. حسنا، هذا كارثة، أليس كذلك؟ لقد كتبت ثلاثة أسطر من التعليمات البرمجية، و أعطاني هذا 12 أخطاء. فلماذا هذا؟ لحسن الحظ ذلك، في كثير من الأحيان عندما تشاهد العديد من العديد من الأخطاء بصق في آن واحد، انها مجرد حقا لأنك الخلط الكمبيوتر هنا. وأنها لا تزال مشوشة في الوقت الذي انخرطت هنا. وهكذا يبدأ فقط التعثر، وعثرة، و البصق على المزيد من الاشياء مخيف فعلا ينطبق. ذلك بشكل عام، تبدأ دائما مع رأس واحد. وبالتالي فإن معظم المثال أعلى جدا من اللون الأحمر، في رسالة الخطأ هذه. استخدام سلسلة معرف غير معروفة، لم أكن يعني المعيار في؟ لم أكن. يعني أنا السلسلة، ولكن هذا هو لأنه، أيضا، سلسلة كلمة أن أظل في الواقع باستخدام شفهيا غير موجود في C أيضا. انه شيء سنستخدم فقط في الأسبوع الأول أو اثنين هنا، ولكنه موجود في ملف يسمى cs50.h. حتى الآن، ونعرف أن هناك هذه المكتبة الأخرى التي كتب الموظفين، لذلك قد كتب أكثر من مؤخرا stdio.h. ولكن داخل cs50.h هو التعريف، مرادف لل أنواع، التي تخلق هذه السلسلة الكلمة. لذلك اسمحوا لي أن أعود الآن إلى إطار المحطة الطرفية بلدي. أنا ذاهب لمسح هذه الفوضى كلها من السيطرة-L. سنقوم فقط يمسح كل شيء نظيف، وانا ذاهب الى المضي قدما وجعل مرحبا مرة أخرى، أدخل. فما الذي حدث الآن؟ ذهب الآن كل هذه الأخطاء بعيدا. وذلك ما فعلت حقا؟ لقد علمت للتو أن سلسلة الكمبيوتر موجودا، وهذا كل شيء في هذا الملف يسمى cs50.h. حتى يوقفوا الشكوى، لأن الآن أنت تعرف أين تجد الإعلان الذي الدالة إذا جاز التعبير. حيث كان موجودا في العالم. حتى الآن انا ذاهب الى المضي قدما وتشغيل مرحبا. ويبدو لي أن يكون هناك حلقة لا نهائية، لا شيء يحدث في. لذلك أنا بحاجة إلى كتابة شيء هنا، أليس كذلك. والسطر الأول من التعليمات البرمجية في برنامجي GetString. حتى انها تنتظر حرفيا بالنسبة لي للحصول على السلسلة. حتى في هذا المعنى نعم، هو حلقة لا نهائية. على ما يبدو في GetString هو السلوك الافتراضي الذي نحن كتب - الموظفين - تقول فقط الانتظار والانتظار والانتظار والانتظار والانتظار، حتى يقوم المستخدم يتيح لك بكتابة سلسلة شيء فيه. لذلك اسمحوا لي المضي قدما ونوع في D-A-V - I-D، أدخل. وهناك هو عليه، مرحبا ديفيد. الآن هل هذا يبدو وكأنه انها مجرد فعل؟ اسمحوا لي أن تمضي قدما واكتب في تومي. أدخل، حسنا، يبدو أن العمل. يعمل لروب، يعمل لZamyla، يعمل ل- حسنا. لذلك يجري العمل، على الأرجح. لذلك ينبغي أن تطبع كل ما نعطي فعلا، ويمكننا أن يكون من الصعب قليلا هنا. دعونا نرى ما اذا كنا نفعل شيئا مثل مرحبا. يمكن أن تذهب إلى هنا، دعونا نرى والنسخ واللصق. أنا لن تكون قادرة على لصق ذلك مرات عديدة هنا. لصق، حسنا، وتحول + + V. السيطرة ذلك ما يمكن يحدث هذا هنا سيئة؟ حسنا، لذلك، segfaults. لذلك سوف بعضكم من ذوي الخلفيات قبل أن تعرف عموما، وإعطاء الكثير من أجهزة الكمبيوتر المدخلات عندما يكونون ربما لا يعني الحصول على أسماء طويلة مثل هذا - باد الأمور. في الواقع، في العالم على شبكة الإنترنت، أيضا، وهذا يحدث قليلا جدا، حيث عندما كنت تصميم موقع على شبكة الانترنت، عندما كنت تصميم الفيسبوك، لديك لاتخاذ قرارات تعسفية تصل الجبهة، مثل كم من الوقت لشخص ما الفيسبوك اسم المستخدم يكون؟ أو متى اسم شخص ما يكون أول؟ متى عدد شخص ما يكون الهاتف وما شابه ذلك. وإذا المبرمجين افتراضات سيئة، كسر البرامج لأنك تحاول منحهم المزيد من الانتاج، المزيد من المدخلات بدلا من ذلك، لديهم من الذاكرة. أو تخصيص RAM لذلك، وإذا كان الأمر كذلك الآن أنا هاهنا، هذا البرنامج يعمل فعلا، لأننا كنا في المكتبة وكنا نتوقع فعلا هذه الحالة بالذات. ولكن مما لا شك فيه في هذا الفصل الدراسي، سوف تكتب واحد على الأقل البرنامج الذي سوف يقول هذه الكلمات. نتذكر هذا أسابيع من الآن، وربما يومين من الآن. خطأ تجزئة أمر سيئ. وسوف أشير إلى شيء تقوم به أن الكمبيوتر لم تتوقع. وفي هذه الحالة، أنت، مبرمج، لم تتوقع. يشبه إلى حد كبير ما هذا كومة من الجوارب، كان هناك العديد من قضايا الركن قد واجهنا. وبالمثل في برامج إذا كنت لا تتوقع متى هو اسم شخص ما سيكون. أو ما إذا كان لدي المتطفلين، واسمه أو اسمها في الواقع قصيرة جدا، لكنها تحاول فقط لتعبث معي؟ ما يحدث أن يكون سلوك البرنامج؟ حسنا، في هذه الحالة، قد يتلف شيئا في الواقع. لذلك دعونا نفعل ذلك. في 90 دقيقة، وهذا هو وقتا طويلا جدا للقيام علوم الكمبيوتر. لماذا لا نصل إلى هذه العادة من اتخاذ خمس دقائق كسر هنا، وعندما نعود، ونحن سوف يغوص في بعض برامج أكثر تعقيدا وإلحاحا؟ خمس دقائق. حسنا. حتى تعليق واحد سريع. قيل لي أنه على الرغم من هذا كان على الشاشة من قبل، ما خرج من فمي كان cs50.net/rsvp. هذا هو الصحيح. cs50.net/lunch. حتى الآن قد حاولت RSVPing لهذا في / تناول طعام الغداء. ولكن دعونا نفعل هذا الآن. لذلك كان هذا بسرعة فائقة، سوبر جديدة لكثير من الناس. قبعة قديمة لبعض الناس. لذلك دعونا الترجيع لمجرد لحظة، ونرى كيف وصلنا إلى هذا الناتج العالمي مرحبا فقط قبل لحظة. أولا حتى، هناك هذا الجهاز CS50. مرة أخرى، قطعة من المشكلة، والبرمجيات تعيين 1 يحدث أن أقول لك كيفية تحميل البرنامج، حيث لتحميل البرنامج، ما فوق وهكذا دواليك. ثم مرة واحدة كنت تتبع هذه التعليمات، عليك أن تكون قادرا لتحقيق أقصى قدر نافذتك، وماك أو بجهاز الكمبيوتر سوف تبدو يذكر شيئا من هذا القبيل. A خلفية سوداء، مجلد في أعلى الصفحة الرئيسية فيها جميع تذهب ملفاتك، وسلة المهملات في اعلى اليسار، قائمة في الأسفل. ذلك مرة أخرى، على غرار جميلة في الروح لOS ماك أو ويندوز، على الرغم من أنه يحدث أن تكون لينكس. وذلك ما لم نفعل بعد ذلك؟ حسنا، بدأنا كتابة البرامج. ونذكر من الاسبوع الماضي ان كل ما يلزم لإرسال بريد البرنامج عبارة عن محرر نصوص بسيط، مثل المفكرة أو TextEdit. بصراحة، يمكنك حتى استخدام Microsoft Word. ولكن سوف تحدث أمور سيئة في نهاية المطاف، لأن هذا هو غاية الخرقاء حل لكتابة برنامج، بالإضافة إلى أنها سوف حفظه في تنسيق الملف غير صحيح. ولكن انها مجرد محرر نصوص، معالج النصوص، هو كل ما اللازمة لكتابة برنامج. حتى في الأجهزة CS50، يمكننا أن نفعل هذا بطريقة بسيطة. يمكننا فقط انقر على هذه الأيقونة في أسفل اليسار. ومرة أخرى، على المشكلة 1 سوف ننصح من هذا، وفويلا - تحصل هذه الواجهة السوداء والبيضاء حيث يمكننا البدء كتابة التعليمات البرمجية. لذلك دعونا نبدأ كتابة برنامج سوبر بسيطة مرة أخرى. أنا ذاهب لترتفع إلى ملف، حفظ، وأنا ذاهب للاتصال هذا، دعنا نقول، hello2.c. وأنا أقول فقط عن طريق النقر على jharvard، ووضعها في الدليل وطنه، لا يهمني حقا حيث يذهب هذا واحد. ووفر ذلك الحين. والآن أستطيع أن أبدأ كتابة برنامجي. وأذكر في وقت سابق من أن لدي لكتابة الباحث الرئيسية (الفراغ). التكبير في أعلى اليسار. ثم أريد أن أقول printf، واتخاذ اثنين. والآن سطر جديد، واقتبس إغلاق، إغلاق أقواس، منقوطة. ثم أذهب الى هنا لبلدي نافذة طرفية هذا جزءا لا يتجزأ من gedit، فقط للراحة. وانا ذاهب الى المضي قدما في الكتابة تجعل مرحبا، ولكن ليس مرحبا وحده، hello2. حتى انه دعا ملفي hello2.c. ملفي ذلك ينبغي أن تسمى hello2، في هذه الحالة. اللعنة، ماذا أفعل الخطأ؟ كل الحق، لذلك أنا حذفت بوضوح خط، إذا كنت أذكر ما البرامج السابقة تبدو وكأنها. ولكن دعونا نرى ما اذا كنا لا ندف هذا على حدة. للأسف، فإن معظم الناس الذين يكتبون البرامج التي نكتب البرامج لا تبسيط الأمور كل ذلك جيدا. لذلك علينا أن نوع من المقشود على ما لا تجعل تماما الشعور هنا ونرى اذا كنا نستطيع معرفة ما هو الخطأ. السطر الأول جدا هناك إعلان يقول ضمنا C مكتبة ظيفة printf مع نوع int. OK، فهمت جزءا من ذلك. ولكن يبدو أن منوها إلى أن كنت printf خطأ، بطريقة أو بأخرى. وبأي معنى هو الخطأ؟ أنا فقط لا تعلم الكمبيوتر الذي هو في ملف دعا stdio.h. الآن ليس لدي سوى أن أحفظ الآن فقط وهذا هو printf في stdio.h، بل سوف يكون هناك غيرها وظائف في هذا الملف نفسه الذي اعتدت علينا أن. لذلك اسمحوا لي الآن المضي قدما واضغط Ctrl-L لمسح فقط أن بعيدا، أعد تشغيل جعل hello2، وفويلا. وهذا الأمر مرة أخرى، أكثر تعقيدا من سوف نشرح لل اليوم الأغراض. إلا أنها رنة تشغيل، ورنة يأخذ شفرة المصدر و يبصق و 0s 1s. وتسمى تلك 0S و1S في هذه الحالة ماذا؟ حسنا، التعليمات البرمجية الهدف. ويسمى الملف الذي انهم في، لذلك، hello2، في هذه الحالة. لأن النص كان ملفي hello2.c، أدخل. والآن لقد يستغرق عامين تعجب، تعجب نقطة، نقطة التعجب. كل الحق، لذلك لدينا الآن القدرة على الحصول على السلاسل، على ما يبدو. حسنا، ماذا يمكن أن نحصل من المستخدمين؟ كذلك في مكتبة CS50، وهناك وظائف أخرى تسير لتبسيط حياتنا في هذه الأيام القليلة الأولى. GetChar، GetDouble، GetFloat، GetInt، GetLongLong، GetString. حسنا، دعونا نتف قبالة أسهل من هذه الأولى. لا GetString حرفيا ذلك. انها فقط يجلس هناك، والانتظار للمستخدم لكتابة شيء ما في، وسرعان ما اكتب شيئا في وهاهنا، فإنه لا شيء مع تلك القيمة. لذلك دعونا نعود إلى هذا المثال لمعرفة بالضبط ما وGetString به. اسمحوا لي أن تمضي قدما وفتح في gedit، hello.c، وأذكر هذا الحق قبل نهاية الشوط الاول، وهذا هو المكان الذي توقفت. لذلك دعونا الآن ندف هذا بصرف النظر بالتفصيل أكثر من ذلك بقليل. إلى ذلك السطر 6، وهناك شيئين يحدث في الوقت الراهن. علامة المساواة وفصل النصف الأول والنصف الثاني. حتى على الجانب الأيسر من علامة المساواة، ونحن قائلا سلسلة ق. وبعد ذلك، في شروط للشخص العادي فقط، ما هو سلسلة ليالي القيام، هل تعتقد؟ انها ما خلق؟ حتى انها دعت خلق سلسلة ق. الآن ماذا يعني ذلك حقا؟ حسنا، انها لحجز مساحة لسلسلة تسمى ق. هذا ليس صحيحا تماما. ما هو هذا العمل؟ أجهزة الكمبيوتر حسنا، كما تعلمون، لقد محركات الأقراص الصلبة، وهذا هو حيث يتم تخزين الملفات الخاصة بك. أجهزة الكمبيوتر لديها RAM، وذلك حيث يتم تحميل البرامج بينما هم على التوالي. لذلك عند النقر المزدوج فوق رمز ومايكروسوفت وورد يفتح حتى، مايكروسوفت وورد قيد التشغيل، إذا جاز التعبير، في RAM، وهو الجزء الإلكترونية من جهاز الكمبيوتر الخاص بك. لا المادية، الجزء الميكانيكي هذا ما الغزل، حيث يتم تخزين البيانات عموما على المدى الطويل. لذلك سلسلة S هو الى حد كبير قول كمبيوتر تعطيني يكفي RAM لتناسب سلسلة. الآن هذا هو قليلا من التبسيط، لأن ما هو حجم السلسلة ستكون؟ كذلك نحن في الواقع لا نعرف حتى الآن، وذلك في الأسابيع المقبلة سنقوم فعلا سحب عودة الطبقة التي هي سلسلة و سنقوم اقول لكم ما هو عليه حقا. سلسلة، في الوقت الراهن، هو مجرد تبسيط لطيفة من عالمنا. ولكن سلسلة ليالي تعلن سلسلة تسمى ثانية، في الوقت الراهن. تعلن سلسلة. انها تحتفظ بعض المساحة في ذاكرة الوصول العشوائي عن السلسلة المستخدم على وشك اكتب. الآن دعونا ننظر في حق علامة المساواة. لذلك يقول GetString (). والتعقل قليلا الوصول. حقيقة أن هناك شيء داخل الأقواس يعني ماذا عن GetString؟ فإنه يأخذ بدون وسائط. وهذا هو، لا يمكنك التأثير على السلوك في أي شكل من الأشكال. في كل مرة كنت تستخدم ذلك، فإنه سيتم الحصول على سلسلة وهذا كل شيء. على النقيض من ذلك، printf، ونأمل سلوكها لا تغيير في كل مرة. خلاف ذلك، انها وظيفة الطباعة غير مجدية جدا إذا يفعل نفس الشيء. إذا كان يطبع دائما ديفيد أو شيء التعسفي في كل وقت. حتى يجعل printf المنطقي أن يكون حجة. GetString لا تحتاج حقا حجة، لأنني أردت للحصول على سلسلة من المستخدم وانها المستخدم الذي يجري لتوفير دينامية بكتابة أحرف مختلفة في في كل مرة على لوحة المفاتيح. فماذا GetString لا في نهاية المطاف؟ كما أنها تفكر في مربع أسود هذا قليلا. وهذا الصندوق الأسود يأخذ أي إدخال، ولكن عند الانفجار على ذلك، فإنه يبصق سلسلة من أن المستخدم قد كتبته فيه. وحقيقة أن هناك علامة المساواة يعني أن هناك ما بصق على اليمين وتخزينها داخل ما هو على اليمين. حتى هنا علامة المساواة، فإنه في الواقع لا يعني والمساواة، وذلك من الناحية الفنية وليس يعني الاحالة. تأخذ قيمة على اليمين، ووضعها في متغير على اليمين. ذلك أن كل ما يحدث هناك. الآن في السطر 7، فنحن نطالب printf. نأمل ذلك printf هو الحصول على مملة قليلا الآن. طباعة حتى سلسلة منسق. ما السلسلة؟ طباعة، "H-E-L-L-O،٪ S ! \ N ". كل الحق، لذلك ما أريد أن المكونات في ل٪ s؟ حرفيا، يتم تخزين كل ما في ليالي. حتى في هذه الحالة، والتحقق من سلامة العقل قليلا، كم من حجج لا تأخذ printf؟ حسنا، سمعت واحد. سمعت أحد مرة أخرى. اثنين، سمعت اثنين. وماذا عن الثلاثة؟ حسنا، ثلاثة؟ ممتازة. ثلاثة أجوبة ممكنة، واحدة منها فقط هو الصحيح. لذلك الحجج تؤثر مرة أخرى على سلوك وظيفة. في الماضي، لم يستغرق سوى printf وسيطة واحدة. كان "مرحبا العالم" حجة واحدة. ومع ذلك، الآن، لاحظ فيها هذا هو فاصلة. هذا هو فاصلة خارج الاقتباس / نهاية الاقتباس، وهو ما يعني يا printf، وهنا يأتي حجة الثانية. حتى الفواصل في معظم لغات البرمجة متعددة الوسائط منفصلة. وبالتالي فإن الجواب هو هنا بالتأكيد ليست واحدة، لأن هناك هذه الفاصلة. الحد الأدنى من ذلك، على ما يبدو تتخذ printf 2 الحجج هذا الوقت. ولكن الفرصة لسؤال خدعة هنا هو ما حول هذه الفاصلة؟ هل هذا يعني أن هناك في الواقع ثلاث حجج؟ هذا، وهذا، وهذا. لا بذلك، لأن هذا هو فاصلة داخل ونقلت والذي يعني انها حقا مجرد الجمالية للغة الإنجليزية. فإنه لا علاقة له مع عدد من الحجج في هذا البرنامج. لذلك هذا هو فاصلة خارج علامات الاقتباس المزدوجة. ثم يعود 0. في الوقت الراهن دعونا مجرد نوع من اتخاذ هذا واحد على الإيمان ل اليوم، ويعرف ذلك تماما عندما تنتهي مهام تنفيذ الأسطر من التعليمات البرمجية، يجب أن يعود عموما بعض القيمة. في هذه الحالة، فقط لأنه يجب إرجاع الباحث الرئيسي، هذا مجرد الطريقة التي يعمل C لغة. لأن ذلك شيء على ما يرام، وكأننا في هذا البرنامج غرامة، وأنا الثابت ترميز فقط مقابل 0. ولكن في المقابل، وأنا ذاهب لكتابة هذا في رمز زائف الآن، فعل الكثير مثل جوزيف عندما فعلنا جورب المثال الاسبوع الماضي. إذا حدث خطأ ما - هذا ليس الرمز الفعلي - ذهب خطأ، ثم تعود، دعنا نقول، 1. العودة آخر 0. لذلك هذا هو المكان الذي نحن ذاهبون مع هذا. هذه ليست الفعلية C البرمجية، شبة الكود فقط. ولكن هذه هي الطريقة التي كنت قد العودة ممكن قيم مختلفة. لكن في الوقت الراهن أنا مجرد الذهاب الى المضي قدما والعودة 0. حسنا، على أية أسئلة حتى الآن على وظيفة، لغوي، أو ما شابه ذلك؟ نعم، في الخلف. AUDIENCE: [غير مسموع] DAVID مالان: هل يمكنك التحدث بصوت أعلى قليلا و؟ لماذا هذا 0 عودة البرنامج، و؟ AUDIENCE: [غير مسموع] DAVID مالان: أوه، هذا لأنني حصلت كسول، آسف. لا استجابة جيدة الأكاديمية، والعودة 0. يمكنني انقاذ هذا النوع من، بالقول تقنيا C، إذا الرئيسية لا يرجع قيمة صراحة، سيتم إرجاع 0 تلقائيا لك. وهو صحيح، أنا لا تغطي فقط ما يصل. ولكن، كان ينبغي أن فعلت ذلك بهذه الطريقة. لا الوجبات الجاهزة إثارة للاهتمام من غير أن خطأي. نعم؟ AUDIENCE: عادة عند كتابة في الفراغ، وهذا يعني انك لا شيء يعود. DAVID مالان: تصحيح. إذا بدلا من ذلك، يمكنك تحديد قبل اسم وظيفة، ل المثال هنا، الفراغ، ثم وظيفة لا يرجع أي شيء. وبالتالي أود أن أقول فقط، وعودة أو لا شيء على الإطلاق، والتي من شأنها أن تكون متسقة. وسوف نعود إلى ذلك. وFYI فقط، واحدة من المصيد مع التعلم البرمجة في العالم التي لديها مئات من الكتب و مئات من المواقع هناك هو صح دائما انظر بناء الجملة مختلفة في كتب مختلفة من قبل مختلف الناس. ندرك أننا سوف نبذل قصارى جهدنا في الفروع والمحاضرات لتكون متسقة. لكن في بعض الأحيان سترى الجملة متضاربة. لذلك كلما في شك، نطلب فقط. وبشكل عام، سوف نهتم في المحاضرات وأقسام لل دائما تقريبا تقديمه في الطريق الصحيح. وأنا أقول دائما تقريبا، لأن مثال على ذلك. أسئلة أخرى؟ AUDIENCE: هل توجد خارج٪ S الجهاز؟ DAVID مالان: هل توجد خارج٪ S من الأجهزة؟ نعم. حتى٪ S له علاقة مع C. وحقيقة أننا تستخدم في الجهاز لديه أساسا لا علاقة مع ملامح اللغة التي تستخدمها. في الواقع، الأسبوع الماضي كتبت عندما كنا بلدي ماك، C التعليمات البرمجية على بلدي ماك. يمكن أن تستخدم I٪ s على بلدي ماك، ويمكن أن استخدامها على الكمبيوتر الخاص بك ويندوز إذا قمت بتثبيت مترجم، مثل ستوديو البصرية من Microsoft. حتى٪ S. كل شيء نقوم به داخل هذا الإطار أن اليوم علاقة شيئا جوهريا وC. علاقة نظام التشغيل في السؤال. على النقيض من ذلك، إطار المحطة الطرفية أبيض وأسود - عندما أنا كتابة أشياء مثل ليرة سورية، وجمهورية مقدونيا، ومؤتمر نزع السلاح - أن له علاقة مع نظام التشغيل و التنقل حولها. نعم. AUDIENCE: قصدته المكتبة، مكتبة CS50. DAVID مالان: حسنا، إذا كان الأمر كذلك كنت تعني الكلمة السلسلة، التي موجود فقط في مكتبة CS50، الصحيح. غير موجود في C نفسها، بل في بضع من أسابيع ونحن نرمي مكتبة والبدء في CS50 القيام بأشياء من الصفر أنفسنا، إذا جاز التعبير. أسئلة أخرى؟ نعم. AUDIENCE: [غير مسموع] DAVID مالان: سؤال جيد. هي حالة الأوامر الحساسة؟ واسمحوا لي أن نميز هنا. حتى الأوامر عادة ما تكون الأشياء التي ستكتب في الجزء السفلي من النافذة، في إطار المحطة الطرفية. وهنا يكون أي شيء أو رمز C البيانات. ولكن في كلتا الحالتين، فإن الجواب هو نفسه، نعم. كل من هذه البيئات، رمز C في أعلى وعلى تعمل سطر الأوامر في نظام القاع، حساسة لحالة الأحرف. لذلك يجب الاستفادة GetString مع G العاصمة العاصمة S. يجب كتابة printf في جميع صغيرة. يجب عليك كتابة LS في جميع صغيرة. لذلك في كل حالة تقريبا سوف هذا الفصل الدراسي، الحالة، في الواقع، المسألة. نعم. AUDIENCE: [غير مسموع] DAVID مالان: آه، حسنا حتى، ماذا لو كان لدينا ملف دعا hello.d. لذلك تبين D هي لغة برمجة. وذلك في بعض الحالات، يمكن أن نكتب في الواقع برنامج هذا الملف، وأنها جمعت على هذا النحو. نستطيع، وفعلا، الجواب القصير هو، لا أعرف. لذلك نحن في طريقنا للقيام بذلك. اسمحوا لي أن تمضي قدما وإنشاء ملف جديد. وتدور هنا، وبصراحة بشكل عام، هو كلما أي شك في هذا الفصل الدراسي، وكان لديك جهاز أو الكمبيوتر فتح، والمضي قدما ومحاولة شيء. لذلك أنا ذاهب لحفظ ملف يسمى hello.d. حفظ هذا. وانا ذاهب الى جعل تشغيل أدخل مرحبا. يبدو أن نستنتج أن ج كان أكثر عرضة من د، في هذه الحالة. غيرها من المسائل. نعم. AUDIENCE: [غير مسموع] DAVID مالان: حسنا، أقول إن من جديد. AUDIENCE: [غير مسموع] DAVID مالان: كيف يمكنك أن تذهب نحو تشخيص أو أن استكشاف الأخطاء وإصلاحها؟ لذلك على الأرجح، لأنهم لغات مختلفة، على الأرجح لن تحصل على كامل أنتج برنامج مختلف. سوف تحصل على رسائل خطأ مختلفة تماما. وأيضا فقط من حيث التصميم، فإنه يمكن القول أن قرار تصميم الفقراء إلى كتابة مختلفين اللغات مع الملفات تحمل اسما مشابها، في الدليل بالضبط نفس، وذلك باستخدام التلقائي أداة مثل القيام بها. حتى أتمكن من دفع أيضا إلى الوراء ونقول منذ 15 عاما للقيام بذلك، لم يقل هذا الخطأ. يمكن أن يحدث. ولكن هناك فقط مختلف، كما أعتقد، اللوجستية الدفوع في المكان. بالإضافة إلى رسائل الخطأ التي من شأنها أن تترتب على ذلك، من شأنه أن تكشف في نهاية المطاف ما هو القضية. ولكن قضية الزاوية ممكن. كل الحق، لذلك دعونا أعرض بضع الأخرى ميزات الآن هنا، حتى نتمكن من البدء في بناء ما يصل الى أكثر وأكثر من ذلك البرنامج المعقدة. أولا حتى من كل شيء، الرياضيات. لذلك أمثلة الرياضيات هي مجرد نوع من السهل في الأسبوع الأول. هذا لا يعني أن جميع البرامج على وشك الرياضيات. بالتأكيد، فهم ميزات مختلفة من الرياضيات، والجبر على وجه الخصوص، هو ذات الصلة للغاية هنا. في مستوى أعلى الطبقات CS، الجبر الخطي، حساب التفاضل والتكامل، وما شابه ذلك. ولكن ندرك معظم ما سنقوم به في هذا الفصل الدراسي يقلل لا لالرياضيات، وبالتأكيد ليس لحسابي، في حد ذاتها، ولكن في الحقيقة لمنطق عادل ودقيق للتفكير. وحتى هذا الربط التي تمت زيارتها علوم الكمبيوتر البعيد، خاصة على مستوى المدارس الثانوية، مع الرياضيات، هو مضللة قليلا. لأن معظم البرامج التي سنقوم الكتابة، حقا، هي نوع من مستوى أعلى والتركيز على حل المشكلات التي، تأكد، قد تستخدم بعض الجمع والطرح، ومختلف الصيغ الرياضية أو ما شابه ذلك، ولكن في نهاية اليوم، ولكن عن التفكير وليس تنفيذ فقط ما قد كنت قد فعلت مثل TI على آلة حاسبة في المدرسة الثانوية. حتى مع أن قال، دعونا نفعل شيئا الآن مع هذه الرياضية مشغلي التي لا توجد حتى نتمكن رحلة على بعض الجوانب الأساسية للبرمجة، أو في هذه الحالة C. لذلك هناك، ومكتبة CS50 المقترحة، واليوم نحن نستخدم فقط GetString - وفي لحظة ربما يكون واحدا وظيفة أخرى - ولكن هناك أنواع مختلفة من البيانات في جهاز الكمبيوتر. في نهاية اليوم، لا يعرفون سوى أجهزة الكمبيوتر و 0s 1s. ولكن أذكر أنه في الأسبوع الماضي تحدثنا عن نظام ثنائي في تمثيل الأرقام، مثل الرقم 0، و 1، و 2، على طول الطريق على ما يصل إلى 8، كما في الفيديو نيت. وبعد ذلك يمكننا الاعتماد أعلى من ذلك بكثير ونحن على خشبة المسرح فعل هنا. ولكن إذا كنت تريد أن تمثل ليس فقط الأرقام ولكن الرسائل، نحن، البشر، لا بد أن يأتي مع بعض التعسفي الاتفاقيات، حيث إن في نهاية اليوم كل ما عندي من الكمبيوتر وهي القدرة على التعبير عن 0S و1S، كذلك كنا أفضل بدء توحيد أنماط و 0s 1s التي تمثل أشياء مختلفة. وهناك نمط من 0S و1S الذي يمثل رسالة. أنماط و 0s 1s التي تمثل Z الرسالة. أنماط و 0s 1s التي تمثل اللون الأزرق، أو أحمر، أو ما شابه ذلك. نحن بحاجة إلى استخدام كل هذه 0S و1S للتعبير عن أنفسنا في مختلف السياقات، بطرق مختلفة ليست رقمية بالضرورة. وذلك من حيث التمثيل، C وأنواع البيانات المختلفة، ولقد رأينا واحدة من هذه حتى الآن. شاهدنا كثافة العمليات، وإشعار ما هو ليس على الشاشة الآن هو السلسلة. سلسلة لا، في الواقع، موجودة في C. مرة أخرى، انها تبسيط نحن لأول عرض بضعة أسابيع. A شار هو الطابع الفردي. A تعويم هو العدد الحقيقي، مع الفاصلة العشرية والأرقام إلى اليسار واليمين منه. A مزدوج هو ما، بالنسبة لأولئك مع الخلفية قبل العودة؟ ذلك هو ضعف مزدوج شيء. يضيف ضعف الدقة بكثير. فماذا يعني هذا؟ لذلك في كل من هذه الحالات، العالم لديه نوع من المعيارية وتستخدم كم بت لتمثيل كل من هذه الأشياء. إذا كان الأمر كذلك كنت قد شاهدت الفيديو نيت ASCII بالفعل لجزء من pset 0، أو في وقت لاحق هذا الاسبوع سوف، ربما عليك أن تعرف أن ASCII - حرف تمثيلات - استخدام عدد البتات؟ وربما تتذكر حتى من العرض التوضيحي لدينا في الأسبوع الماضي عن كيفية كان كثير من الناس على خشبة المسرح. حتى 7 أو 8، وعادة. حتى 8 عموما، وليس هناك شيء يسمى بالصيغة التي مددت ASCII يستخدم كل 8 بت، بدلا من 7. ولكن بصفة عامة، ونحن نتحدث في قوى 2، لذلك في هذه الحالة، 8. لذلك شار في لغة برمجة هي عادة 8 بت. لذلك فإن الباحث عموما 32 بت. A تعويم عموما 32 بت. A المزدوجة عموما 64 بت. وماذا يعني ذلك؟ فهذا يعني أنك يمكن أن تمثل أكبر الأرقام، أو في حالة من الأعداد الحقيقية، هل يمكن أن يكون أكثر بكثير الأرقام بعد العشري مكان. وهناك الكثير أكثر دقة، في هذه الحالة. الآن للأسف يدعى طويلة طويلة. ولذلك لا يوجد لكثافة العمليات التي هي 32 بت. هناك الطويل الذي هو، كلا، 32 بت. ومنذ فترة طويلة طويلة وهو 64 بت. لكن بعض هذه هي السياق الحساسة، بل يعتمد أي نوع من الكمبيوتر لديك. في ذلك العام، سنقوم تحديد الواجبات المنزلية أو في في مسابقة عندما يهم فعلا. ولكن النقطة هي أن هناك كل هذه مختلفة التمثيل هنا. لذلك دعونا الغوص في الواقع إلى البرنامج. بدلا من كتابة هذا واحد من الصفر، اسمحوا لي أن المضي قدما وفتح شفرة المصدر من اليوم - والتي هي على الإنترنت - إذا كنت تريد العبث في جميع أنحاء شبكة الإنترنت، أو العائد على الاربعاء مع الجهاز على جهاز الكمبيوتر الخاص بك، تعليمات والتي ربط على الصفحة الرئيسية لمسار. وهنا برنامج سوبر بسيطة. ولكن انها حصلت على شيئا قليلا جديدة على رأس ذلك لم يكن لدينا من قبل. وهناك الكثير من الخطوط الزرقاء من النص. لذلك فان هذه الخطوط الزرقاء تمثل التعليقات. لذلك فمن المفيد جدا في البرنامج ليكون قادرا على الكتابة بعض التعليقات لنفسك، أو للزملاء، أو أصدقاء، أو زملاء التدريس، هذا النوع من وصف ما يجري في هذا الملف، ولكن لا علاقة لها مع رمز C نفسها. لا علاقة لبرنامج وظيفيا، انها مجرد الجماليات. وبالتالي فإن طريقة القيام بذلك في C هو أن تبدأ عموما الخاص التعليقات مع / *، وكنت في نهاية تعليقاتك مع * /. وإذا كنت حقا الشرج وأود أن ألفت نوع من الصور، ثم كنت وضعت مجموعة كبيرة من النجوم، كنت جعل يذكر مربع مثل هذا. ولكن لا شيء من ذلك المسائل. الشيء الوحيد الذي يهم هو أول جدا و. مشاركة جدا هذا هو ما يسمى تعليقا متعدد الخطوط. وانها مجرد الاتفاقية البشرية للقيام كثير من الأحيان النجوم ومربع الأشياء في مثل هذا إذا كان لديك الكثير من وقت الفراغ. حتى بعد أن كنت قد كتبت في بعض التعليقات، عموما، وتأتي الشجاعة الفعلي للبرنامج. وهنا لدينا دراية وتشمل # . وسريعة فقط، وهذا أمر ضروري أو غير ضروري؟ AUDIENCE: ضروري. DAVID مالان: حتى انها في الواقع ليست ضرورية. فلماذا، رغم ذلك، هو أنه ليس من الضروري؟ لذلك ليس هناك printf. في الواقع. كل ما تفعلونه في هذا البرنامج هو الرياضيات. حتى أتمكن من حذف فعلا ذلك. لذلك لم يكن لديك دائما ليشمل أي شيء على الجزء العلوي من البرنامج. لذلك دعونا تبسيط هذا قليلا. وتلاحظ الآن ما يفعل هذا البرنامج. ليس كثيرا من الاهتمام. الباحث س = 1. حسنا، ما هو هذا العمل؟ حسنا، اعتقد مرة أخرى إلى نموذج النفسية من قبل. الجانب الأيسر من هذا التعبير يفعل ما؟ خلق مساحة للعدد صحيح. كيف الكثير الفضاء؟ حسنا، نحن نعلم الآن يحدث لأنه 32 بت. في السابق، كان سلسلة من الناحية الفنية 32 بت، ولكن أكثر على أنه في المستقبل. لكن الباحث هو 32 بت. ولذلك فإن هذا التعبير على اليسار هنا، وكثافة العمليات X فقط يقول يا نظام التشغيل، أعطني 32 بت من ذاكرة الوصول العشوائي - والمعروف باسم 4 بايت من ذاكرة الوصول العشوائي - بحيث يمكنني وضع عدد صحيح في هذا الفضاء. صحيح ما لم ترغب في وضع؟ حسنا، مجرد رقم 1. الباحث ذ يحصل 2، يفعل الشيء نفسه بالضبط على الرغم من أن عدد أكبر من حيث حجمها. الرقم نفسه لا يزال 32 بت فقط. انها مجرد نمط بت يختلف عن تمثل 1 مقابل 2. الباحث Z تقول الآن أن تعطيني آخر 32 بت، الذي يطلق عليه Z، ووضع الجمع من 1 و 2 في هناك. بحيث يتم تخزين Z الآن يفترض أن قيمة 3، ثم يعود 0. الآن هذا البرنامج، وأنها لا تفعل أي شيء من الفائدة؟ لذلك في الواقع لا تفعل أي شيء للاهتمام، في أي المعنى، لأن ماذا؟ انها تفعل بعض الرياضيات. لكنه لا يعود الجواب، أليس كذلك. انها العودة 0. انها ليست طباعة الجواب. لذلك هذا البرنامج هو في الأساس لا قيمة لها، لأنها يقف الآن. انها تفعل بعض الأعمال. انها سوف يستغرق بعض عدد من ثانية، أو ميكروثانية، إلى تشغيل، لكنه لا يفعل أي شيء في الواقع مفيدة للإنسان. لذلك دعونا الآن فعلا فتح math2، حيث أنا الآن في الواقع طباعة النتيجة. لذلك هذا يمكن أيضا أن يستدل من الأمثلة لدينا السابقة. إذا كنت تريد أن تفعل بعض الرياضيات البسيطة، وكثافة العمليات س = 1، ص = 2. Z هو 1 زائد 2 الآن. ما هو هذا الذهاب الى طباعة الواضح؟ فقط 3. حتى تحقق التعقل السريع. اسمحوا لي الانتقال إلى هذا الدليل. حتى source1m CD. اسمحوا لي أن تمضي قدما واكتب جعل math2. لا توجد رسائل خطأ خرج، لذلك اسمحوا لي تشغيل - لا a.out-اسمحوا لي أن تشغيل math2. دخول. وبالفعل، وطبع بها 3. وأيضا دعنا نلقي نظرة على البديل من ذلك. في math3.c، لدينا الآن هذا المثال هنا. لذلك هذا النوع من واحد للاهتمام. حتى في هذا واحد هنا، الجواب هو الذهاب الى الحصول على 1 مقسوما على 10، ولقد لاحظت أعلنت أنها تطفو. لماذا أريد أن يكون عدد عشري؟ حسنا، انها جزء. انها ستكون العدد الحقيقي. لذلك ستكون 0.1، نأمل - 10٪، في هذه الحالة. وماذا أريد بعد ذلك لطباعة؟ حسنا، هذا الجواب. حسنا، دعونا ندف هذه أول إربا. حتى على الجانب الأيمن، أن يعلن تطفو، الذي يطلق عليه الإجابة. على الجانب الأيمن، لا 1 مقسوما على 10 ووضع هذا الإجابة داخل المتغير. الآن، يبدو هذا الخط أكثر من ذلك بقليل خفي. ولكن لاحظت بعض الملامح المألوفة. ٪ يعني هنا يأتي العنصر النائب. و يعني هنا هو قيمة النقطة العائمة، فقط حقيقي عدد، شيء مع الفاصلة العشرية. 0،2 يعني ما؟ أحد يعرف من خبرة سابقة؟ منزلتين عشريتين. لذلك قمنا لم أر هذا من قبل، لكنه مجرد وسيلة لل ممارسة مزيد من السيطرة ويزيد قليلا عن printf يقول لا تعطيني 30 نقطة بعد العلامة العشرية، تعطي بدلا من ذلك لي فقط 2. وثم دعونا نمضي قدما وتشغيل هذا. لذلك الرياضيات 3، والآن اسمحوا لي تشغيل الرياضيات 3، أدخل. وهذا ليس حق. يبدو أننا قد واجهت الشوائب لدينا حقيقية الأول. حسنا، ربما أنا فقط لا تبحث قريبة بما فيه الكفاية. لذلك اسمحوا لي أن انتقل إلى هنا، واسمحوا لي وضع 20 عشري أماكن نقطة هناك. واسمحوا لي أن تجميع هذه، وجعل math3، تشغيل. متأكد من 1 مقسوما على 10 هو ليس 0. فما الذي يحدث؟ حسنا حسنا، في الواقع لذلك لا يجب أن نفعل مع هذا. وهذا هو فكرة جيدة. هذا هو في الحقيقة مجرد صدفة اننا نفعل ذلك. ولكن فقط لإثبات أن هذا ليس هو، وسوف أكون العودة شيء عشوائي. لا تفعل ذلك في المنزل، لأنه مجرد خطأ. ولكن جعل math3، اسمحوا لي تشغيله. وذلك لا علاقة له ما أنا العودة، فما عليه إلا أن تفعل مع ما أنا الطباعة. ولكن سمعت عليه هنا. ماذا؟ AUDIENCE: لذلك نحن بحاجة إلى كتابة الأرقام في شعبة و- DAVID مالان: حسنا جيد. لذلك نحن بحاجة لكتابة المشاركة في أرقام شعبة هنا النقطة العائمة القيم نفسها. وبالتالي فإن المشكلة هنا هي كما في السابق: C، كما هو الحال مع الكثير من اللغات، وأنواع بيانات مختلفة. وتلك الأنواع من البيانات، على سبيل المثال، هي هذه هنا. وأنواع البيانات في السؤال هنا، عندما كنت اكتب 1 ثم I نوع 10، وربما ما أنواع البيانات؟ لذلك فمن المحتمل أن يكون الباحث، أليس كذلك؟ انها بالتأكيد ليست تعويم لأنه ليس هناك العشرية نقطة أو أي شيء من هذا القبيل. حقا كان الأمر كذلك، لدي الباحث مقسوما على عدد صحيح. وبالتالي فإن الشيء المثير للاهتمام حول الرياضيات والكمبيوتر هو أن إذا كنت تفعل تقسيم الأعداد الصحيحة باستخدام - 1 مقسوما على 10، هو نعم 0.1. ومع ذلك، عندما كنت تقسيم عدد صحيح من عدد صحيح، في الجواب يجب أن يكون أيضا عددا صحيحا لمجرد، في الوقت الراهن. وما هو المعنى الضمني بعد ذلك؟ حسنا، إذا ينقسم (1) والجواب بنسبة 10 يساوي 0.1، ما الكمبيوتر هو الذهاب الى القيام به هو ليس لدي أي فكرة عن كيفية تمثل 0.1، لأن هذا هو قيمة النقطة العائمة، وليس صحيح، بل سوف يقطعون كل شيء بعد عشري نقطة وتظهر لك فقط 0 في البداية. وحقيقة انه الطباعة كنقطة العائمة قيمة، انها مجرد شيء الجمالية. هذا لأنني فرض الكمبيوتر لطباعة هذا على أنه قيمة النقطة العائمة. وبالفعل لقد أعلنت أنني اعتبرتها وتطفو، ولكن هو الرياضيات يحدث أكثر من هنا. لذلك اسمحوا لي إصلاح هذا الواقع في واحد طريقة سهلة جدا. لماذا لا أفعل فقط 10.0 و 1.0، على الرغم من من الناحية الفنية يمكن أن تفلت من القيام مجرد واحدة من تلك. والآن اسمحوا لي المضي قدما وجعل math3. اسمحوا لي أن تمضي قدما وتشغيل math3 الآن، أدخل. والآن، يا صبي. الآن لدينا مشكلة جديدة تماما. أفضل ذلك، والحق، ونحن كنت أقرب إلى 0.1، ولكن ما هو واضح الخطأ هنا؟ إلا إذا كنا يكذب عليك لسنوات، أليس كذلك؟ 1 مقسوما على 10 هو في الواقع ليست تماما 0،1، لذلك ما هو يحدث في الواقع هنا؟ يمكن أيضا كنت نوع من السبب من خلال هذا منطقيا. إذا كان الكمبيوتر لديه سوى كمية محدودة من ذاكرة الوصول العشوائي لبدء مع، بل وجهاز كمبيوتر يستخدم فقط 32 بت ل قيمة النقطة العائمة، من البديهي أنه مع عدد محدد من البتات، 32 في هذه الحالة، نعم، يمكنك تمثل الكثير من الاشياء. هو في الواقع 4000000000 قيم مختلفة يمكن أن تكون ممثلة مع 32 بت، 2 إلى 32، لكنه ما زال محدودا. وبالتالي فإن المشكلة هي ان هناك عدد لا حصر له من واقع الأرقام، أليس كذلك. إذا كنت تعطيني الرقم الحقيقي، يمكن أن أجد دائما أنت واحد أكبر قليلا، وأقل قليلا، من التغيير والتبديل فقط الأرقام التي بعد العلامة العشرية. إذا كان الأمر كذلك لم يكن لديك عدد لا حصر له من البتات، لكم لا تمثل ربما لانهائية عدد من الأرقام الحقيقية. ولذلك لا يوجد هذا عدم الدقة المتأصلة في أجهزة الكمبيوتر، و يحصل هذا مع مرور الوقت تعثرت جميع حتى في أبسط برامج من هذا القبيل. ولكن أيضا في بعض مشاكل العالم الحقيقي جدا كذلك. في الواقع، دعونا نتوقف لحظة لمجرد إلقاء نظرة على وهو ما حدث بالفعل في الواقع. سوف نشاهد فقط أول زوجين من دقيقة، ثم سنقوم بعد على الانترنت الرابط. ولكن هذا هو دليل على ما يمكن ان تتعرض له فقط، تماما بصراحة، بطريقة مأساوية جدا عندما تكون هذه الأمور ليست أو مجرد تقدير نحن البشر يخطئون عندما يتعلق الأمر هذه الأنواع من تفاصيل التنفيذ من أجهزة الكمبيوتر الحديثة. [تشغيل الفيديو] نعود الآن، للكوارث على الأعاجيب الهندسية الحديثة. أجهزة الكمبيوتر. وصلنا جميعا إلى قبول المشاكل محبطة في كثير من الأحيان التي تذهب معهم. البق، والفيروسات، والبرمجيات هي مواطن الخلل صغيرة لأسعار دفع ثمن الراحة. ولكن في سرعة عالية التكنولوجيا العسكرية والفضاء وعالية تطبيقات البرنامج، يمكن تكون المشكلة أصغر تضخيم إلى كارثة. في 4 حزيران، 1996، أعد العلماء لإطلاق بدون طيار صاروخ اريان 5. وكانت الطائرة تقل السواتل العلمية تهدف إلى تحديد كيفية بالضبط مجال المغناطيسي للأرض يتفاعل مع الرياح الشمسية. تم بناء صاروخ لوكالة الفضاء الأوروبية و انطلق من منشأتها على ساحل غيانا الفرنسية. قرابة الساعة حوالي 37 ثانية فقط من بداية الرحلة، لهم أولا وقد لاحظت شيئا تسير بشكل خاطئ، أن فوهات كانت الدوران في الطريقة التي ينبغي حقا لا. حوالي 40 ثانية فقط من بداية الرحلة، من الواضح أن السيارة وكان في ورطة، وهذا عندما اتخذ هذا القرار ل تدميره. الضغط على ضابط السلامة مع مجموعة هائلة من الشجاعة زر، فجر الصاروخ قبل أن تصبح الخطر على السلامة العامة. هذا ما رحلة الاولى من آريان 5، ولها استغرق تدمير المكان بسبب وجود عيب جزءا لا يتجزأ من الصاروخ البرمجيات. وكان المشكلة، على أريان أن هناك الرقم الذي يتطلب 64 بت للتعبير عن وأرادوا تحويلها لعدد 16 بت. يبدو أنهم افترضوا أن العدد كان أبدا ستكون كبيرة جدا، التي كانت معظم هذه الأرقام في عدد 64 بت 0S. كانوا مخطئين. و-عجز برنامج حاسوبي واحد لقبول هو نوع من عدد المتولدة عن آخر في جذور الفشل. وتطوير البرمجيات تصبح جزءا من مكلفة جدا تكنولوجيا جديدة. وكان صاروخ اريان ال 4 كانت ناجحة جدا. كما تم استخدام الكثير من البرامج لأنه خلق في آريان 5. كان-المشكلة الأساسية أن آريان 5 كان أسرع، تسارعت بشكل أسرع. وكان البرنامج لا تمثل ذلك. وكان-تدمير الصاروخ مالية ضخمة الكوارث، وكلها نتيجة لخطأ في برنامج دقيقة. لكن هذا لم يكن أول مرة مشاكل تحويل البيانات كان تعاني الحديثة تكنولوجيا الصواريخ. DAVID مالان: أننا سوف نترك الامر عند هذا الحد. ولكن هذا هو دليل على مدى ينطبق حتى بعض هذه التفاصيل أدنى مستوى بعد أن قمنا بدأت استكشاف اليوم. وذلك حتى تحصل على القليل يصرف ربما عن طريق بعض بناء الجملة وarcaneness هنا، ندرك أن على سوف يتم المدى ركزنا فقط على كيفية ينطبق هذا هو عوالم أبعد CS. سوف نرى لك يوم الاربعاء.