[Powered by Google Translate] [♪ ♪ الأز]
ذلك أن أعرض لكم ما عندي على الشاشة؛
انها واحدة من الأدوات التي قمنا بتطويرها خلال الصيف؛
انه دعا CS50 المسافات،
وانها لدينا التعاونية تطبيق الترميز
أننا في طريقنا للاستخدام في الفروع.
انها باردة جدا.
لديك أي من CS50 هل رأيت المدى حتى الآن؟
اسمحوا لي سحب ما يصل في علامة تبويب أخرى.
Run.cs50.net
هكذا
إذا ذهبت إلى run.cs50.net،
يمكنك ان ترى هذا هو الطريق في المتصفح ل
كود الواقع - كتابة التعليمات البرمجية C،
وثم تشغيله،
لذلك يجمع كل ذلك، يعمل عليه، ثم إرجاع الناتج لكم،
لذلك هذا هو نوع من بارد طريقة لتجربة
مع بعض من التعليمات البرمجية التي ديفيد يذهب أكثر في المحاضرات
ونعطي للكم على مجموعات على المشكلة
دون الحاجة فعلا لاطلاق النار حتى الجهاز.
>> فما المسافات يفعل ذلك يختلف عن ذلك
إذا كنت التبديل إلى علامة التبويب هذه،
المساحات غير CS50 المدى، مثل التي تراها هنا،
ولكن إذا كنا على التمرير وإلقاء نظرة على الجانب الآخر من النافذة،
ترى الحق أنا الشخص الوحيد في هذا الفضاء،
ولكن ما أنا بصدد القيام به هو يطلب منك الرجال للانضمام إلى هذا الفضاء معي
وسوف نحصل على كل إلى رمز في نافذة القليل نفسه،
مشاركة التعليمات البرمجية مع بعضها البعض،
والحديث عن الفروق بين رمز لنا.
لذلك نوع من شيء بارد -
حتى للانضمام، إذا كنت زيارة هذا الرابط هنا في أعلى
لقد أبرزت أن الأول،
يمكنك كتابة فقط في apps.cs50.net/spaces/vqcspSnO.
>> كل الحق، لذلك لتبدأ،
انا ذاهب الى ان نعطيكم قليلا من جولة في هذا.
نحن gonna القيام ببعض الترميز سخيفة قليلا مع ذلك في البداية،
فقط بحيث يحصل الجميع كيندا على ما نرى لانها مثل،
ولكن ما قمت به -
أو ما أنا على وشك القيام به هنا هو الحق -
انا ذاهب الى اتخاذ التعليمات البرمجية التي قمت بكتابة هنا،
التي كما ترون الآن هو فارغ؛
لا تفعل أي شيء.
انها مجرد رمز لوحة المرجل، سوف نطلق عليه.
مع قليل تأليف لتعليق.
أنا ذاهب لحفظه من خلال ضرب هذا الزر حفظ.
وما أن يفعله هو أن
وأبرز أنه حتى هنا لفترة وجيزة - أن مربع حفظ مراجعة الخضراء،
والآن، إذا كنت تبحث عن لي في الفضاء،
النقر فوق اسمي،
يمكنك أن ترى أن أنا عندي هذا التنقيح هنا،
وإذا نقرت على ذلك التنقيح،
انها سوف تحميل هذا الرمز في الفضاء الخاص، أيضا.
>> لذلك فقد الجميع تحميل هذا الرمز في الفضاء الخاصة بهم؟
حسنا، إذا كنت لم تقم بعد، والمضي قدما ونفعل ذلك،
ثم ما أريد يا رفاق يجب القيام به في هذا القليل تأليف لقسم
وهنا قليلا باستخدام printf عن نفسك،
ذلك على سبيل المثال، أود أن أكتب
printf ("اسمي نيت")؛
ثم كنت أنا أكتب
"تخرجت في عام 2009
من جامعة ستانفورد "
وأحب أن يسمع عن
أي عام كنت في المدرسة،
سواء كنت في الكلية أو كلية إدارة الأعمال
أو آخر مدرسة هارفارد،
ما إذا كنت تدرس يعرف حتى الآن؛
إذا لم يكن معروفا، وهذا بارد تماما.
لم أكن حتى تقرر كنت في وقت متأخر من السنة الثانية بلدي.
ثم أحب أن تعرف أيضا
مجنون كل ما تريد أن تقول لي أو
شيئا عن الطبقة أو أي شيء آخر فقط.
عند الانتهاء من كتابة ذلك مع printf الخاص بك قليلا،
إذا عليك مراجعة حفظ أو بالأحرى
تأكد أولا من أن تتمكن من تشغيله
وأنه يطبع بالضبط ما تريده لطباعة،
ثم إذا ذهبت إلى الأمام وحفظ ذلك التنقيح
باستخدام زر حفظ مراجعة، وهذا ما يزيد قليلا عن الرجل الأول هنا،
وسوف نذهب من خلال كيندا والقيام مقدمة قليلا على هذا النحو.
لذلك يجب عليك أن تضغط على زر التشغيل،
وهو هنا على اليسار الأعلى،
لذلك هذا الزر تشغيل على أعلى اليسار سوف
إرسال التعليمات البرمجية قبالة لخادمنا حيث يحصل تجميعها وثم تشغيل.
فما من الجنون كيندا عن هذا هو
هذا الرمز في الواقع ليست قيد التشغيل على جهاز الكمبيوتر الخاص بك؛
في الواقع فإنه يتم إرسالها عبر الإنترنت.
>> كيف تسير الأمور، شارلوت؟
>> I - حسنا. أنا - أنا أعتقد
صعوبات حفظه
على الملقم بحيث يمكن ذلك - لا أستطيع تشغيل البرنامج.
ثم عندما أحاول تشغيله، فإنه يقول أن هناك خطأ.
أعلن ك فيروس، وهي ليست في وجود بعد الآن.
أوه، دعونا نرى، ويمكن أن تصل حفظ مرة أخرى؟
أراه على الشاشة.
الحق >>، حسنا، حتى ما لدي.
وأنا لا أعرف لماذا لا يسمح لي تشغيله.
أوه، حسنا، آسف.
هل يمكن ان توضح لماذا - ما هو الخطأ - ما لم يكن يعمل معها؟
نعم >>، لأنني لم أر أن هناك السطر الأخير حيث لا يزال هناك متغير
أن لم أكن قد أعلن، والذي لم أكن أنوي لأنه يجري هناك.
نعم، والكمال!
الآن إذا كنت >> حفظه، وأعتقد أنه يجب أن تعمل.
والآن بعد أن كنت قد حفظه، فإنه يعمل؛ رهيبة.
>> لذلك نعم، ونحن نمضي من خلال -
لذلك كان ما يجري،
انا فقط لتكرار هذا للكاميرا.
ما يحدث هو أن هذا المتغير ليالي
ولم يبق في بعد - أفترض أنك حذف بعض الأشياء الأخرى
حيث أعلن لكم و،
وهكذا كان هذا رمي الأشياء قبالة وعدم السماح تشغيله.
لذلك هذا هو بالضبط ما نريد أن نفعله في القسم
ولقد شخص حاول كتابة قطع مختلفة من التعليمات البرمجية،
تجميع ذلك، ونرى ما يعمل، ونرى ما يحدث ذلك،
ومن ثم التحدث عن هذه الأمور كيندا، لأن هذه هي نقطة بثلاثة اضعاف أن
I لا تزال تواجه،
ما زلت - أن أفعل الكثير من الأشياء السخيفة في كل وقت،
وأنا لا أعرف لماذا كان لا يعمل،
لذلك دعونا سحب ما يصل مراجعة شارلوت 3،
وسنقوم بتشغيل عليه.
>> لذلك عند تشغيل، الآن أنا عندي رمز لها هنا،
يمكنني تكبير، اضغط على زر تشغيل،
تحميل ذلك، ويبني عليه، يعمل عليه،
تقول انها تدير بنجاح، وإذا كنت انتقل لأسفل
انظر شارلوت هو جديد في البيت آدامز،
علم النفس والثانوي في الاقتصاد؛ رهيبة.
عظيم أن ألتقي بكم!
رهيبة.
حسنا، الانتقال، دعونا نذهب لدانيال،
انتقل إلى التنقيح 3،
تجميع، تشغيل؛
لماذا لا تخبرنا قليلا عن نفسك، ودانيال؟
اتصل بي >> دان.
أنا ذاهب إلى المدرسة التجارية عبر من يا رفاق،
وكنت في مشاة البحرية قبل هنا،
وهذا هو كل شيء جديد بالنسبة لي، لذلك نعم.
لا تظن السوء، وأنا ابن 30 و لا أعرف أي من هذه الاشياء.
ممتاز؛ بفضل دان!
حسنا، وصلنا آخر دانيال.
تذهب بقلم دانيال - سوف أعرض نفسك، دانيال؟
>> >> بالتأكيد، أنا دانيال.
أنا طالبة في ماثر في الوقت الحالي.
أركز على الحكومة،
ولكن أردت أن تأخذ CS50 لأنني قد سمعت ملاحظات كبيرة حول الفئة
ولم أحاول CS من قبل.
انتقل لأسفل وهنا تظهر هذه - بارد.
الانتقال، جاريد.
كيف تسير الأمور؟
>> جيد، كيف حالك؟
كما ترون، أنا الأصغر في الفلسفة المكثف إليوت،
أصلا من جنوب كاليفورنيا،
وأنا مهتم في اتخاذ CS50 لأنني أحب منطق منه،
ويبدو رائع حقا أن تفعل أشياء على الكمبيوتر، لذلك.
ممتاز؛ في جنوب كاليفورنيا حيث أنت؟
>> حوالي ساعة من [غير مسموع]، مدينة صغيرة [غير مسموع].
أوه، نعم، والدي من ريدلاندز.
بارد الاشياء.
>> كل الحق، جيمي، وكيف تسير الأمور، جيمي؟
>> جيد، كيف حالك؟
بعمل جيد جدا!
أخبرنا عن نفسك.
>> أنا طالبة، وأنا لست متأكدا تماما ما أنا تخصص في
ولكن أنا يميل نحو كيندا الاقتصاد.
مثل دانيال قبلي، أنا لم تفعل أي CS، ولكن يبدو كيندا باردة.
أنا أصلا من شيكاغو.
رهيبة. حتى تحقق من النسخة المطبوعة له هنا.
أردت أن أسأل، هل هذا من الطباعة كما هو متوقع؟
>> لا، لقد نسيت لطباعة سطر جديد.
لقد نسيت فعلا أنه عندما كنت أكتب لي شيء
للمرة الأولى أيضا.
انها نوع من الألم لتذكر لوضع هذه في يدويا.
انها تريد ان تكون جميلة إذا كان يعرف فقط هذا ما أردت.
>> حسنا، كيلي.
نجاح باهر، لدينا 2 Kellys، 2 دانيلز، 2 Kellys.
حتى كيلي - هل يذهب بها رن كيلي؟
حسنا، ممتاز.
أو كيلي يعني.
لذا نعم >>، لذلك أنا كيلي.
أنا طالبة في Pfoho.
حصلت على البريد الإلكتروني اليوم أن لا يزال لدي 7 أسابيع لإعلان تركيزي،
لذلك أنا أحاول عدم التفكير في الامر،
وأود الخبز، وتشغيل، وCraisins.
ليس لدي خبرة مع معظم CS؛
علمت نفسي بنفسي لبناء المواقع على شبكة الانترنت عندما كنت صغيرا حقا،
ولكن أعتقد أنني علمت نفسي ربما الخطأ في الكثير من الأحيان.
نأمل سوف تتعلم أكثر قليلا
و- نعم.
>> ممتاز؛ حسنا، شكرا لكم.
دعونا نذهب إلى كيلي الأخرى؛
ليس لدي أي شيء - هل تقول شيئا في هذا المجال؟
>> [غير مسموع]
هناك هو!
حلوة!
>> حسنا، لذلك أنا كيلي.
أنا طالب دراسات عليا في السنة الأولى.
أنا تخصص في، العقل الدماغ، والتعليم.
تخرجت في كلية فرانكلين ومارشال في عام 2008
مع تخصص في علم النفس وعلم الاجتماع
وقاصر في الفرنسية.
أنا أخذ CS50
لأنني مهتمة في الحصول على درجة الدكتوراه في العلوم العصبية
وأشعر هذا سيساعدني على فهم التقنيات المستخدمة.
رهيبة.
الانتقال، ميكيلا.
هو أن النطق الصحيح؟
حسنا، ممتاز.
>> أنا Mikhaila >>.
أنا طالبة في البيت كيركلاند،
وأركز في الهندسة الميكانيكية.
أنا أحب ركوب الدراجات، دراجة بنيت هذا الصيف.
أنا أخذ CS، في الواقع،
كشرط التركيز،
لكن كما تعلمون، وأعتقد أنه ما زال الفرز بارد من فئة الهندسة.
ممتاز - بنيت لك دراجة هذا الصيف؟
نعم >>.
نجاح باهر، مثل الإطار وهذا كل شيء؟
اه >>-hunh (الإيجابي).
نجاح باهر، وهذا رائع حقا.
>> [غير مسموع بعيدا عن الكاميرا قنوات]
[ضحك]
نعم، لقد كان وقتا طويلا.
أنت لا تعرف أبدا، أليس كذلك؟
حسنا، بارد، بفضل حسنا، Mikhaila.
>> كل الحق، ميسي.
اسمي >> ميسي؛ أنا طالبة،
وهذا يعني أنا لا أعرف أي شيء!
أريد أن التركيز في الفيزياء الفلكية.
في CS50،
أشعر سوف تساعد بالتأكيد على ذلك.
حقيقة غريبة عني هو ابن رجل اطفاء المعتمدة وطنيا.
نجاح باهر!
كيف حدث ذلك؟
حضر >> I أكاديمية
وذهب إلى الجحيم لكثير من أسابيع
وحصلت شهادة بلدي.
نجاح باهر، تهانينا!
ان ذلك ليس بالأمر الهين، لعلى يقين.
حسنا، لذلك الآن سوف نقوم به لي.
أنا واحد القادم في الصف.
أنا - تشغيله.
>> حتى اسمي نيت.
كنت فئة من عام 2009 في جامعة ستانفورد.
كنت أنظمة رمزية كبرى،
وهو يشبه إلى تركيز العقل الدماغ والسلوك، هنا،
ولكن هذا النوع من مزيج من
علوم الحاسب الآلي، واللغويات، وعلم النفس، والفلسفة.
نوع من - نعم، الكثير من الاشياء الغريبة، ولكن كان كبيرا،
وفعلت ثم I بلدي الماجستير في علوم الحاسب الآلي هناك، أيضا.
لذلك أنا جديدة لهذا العام في جامعة هارفارد.
أردت حقا أن ندخل في التدريس.
قضيت 4 سنوات في الماضي TA-ING الطبقات ستانفورد علوم الحاسب الآلي
وذلك اسمحوا لي ديفيد هيا،
وأنا ستعمل يكون مع مساعدة من CS50،
لذلك أفعل ذلك دوام كامل، وأنا لست في المدرسة غراد.
انها كانت متعة.
نأمل أنها سوف تستمر في أن تكون ممتعة، وأنا متأكد من أنها ستفعل ذلك.
>> كل الحق، وسام.
اسمي >> سام؛ أنا طالبة في الكلية، في القانون على وجه التحديد.
وسوف يكون بلدي الرئيسية تاريخ العلم، على الأرجح، وVES الثانوية،
واللون الأصفر هو المفضل لدي.
لا حاجة لاصدار حكم أو أي شيء، ولكن هذا اللون جيدة!
وستيلا.
>> مرحبا، أنا ستيلا؛ أنا طالبة في غرايز.
ليس لدي أدنى فكرة عما كنت تتركز في بعد،
كان ذلك CS50 مجرد نوع من العشوائية،
التي هي مثيرة للاهتمام.
معلومة طريفة، كان جيمي صديق هارفارد الأول من الألغام،
لأننا على حد سواء من شيكاغو.
بارد، ونعمة - من المفترض أن تكون واحدة لطيف، أليس كذلك؟
يعتقد >> I [غير مسموع].
أوه، نعم.
[غير مسموع / دردشة الكاميرا خارج]
حسنا، أنا لا تزال التعلم، والتعلم لا يزال.
>> لذلك لدينا شيء آخر وهذا النوع من اهتمام هنا.
نعم، أنا أتساءل فقط، هل لديك فكرة أن يجري هنا؟
كنت تعرف كيفية تفسير هذا؟
>> كان من المفترض أن يتم وضع الفاصلة المنقوطة بعد كل سطر واحد.
وهذا النوع من الألم.
في بعض الأحيان يمكن أن تلك الفواصل المنقوطة يكون الألم الحقيقي لتعقب.
لذلك تبين أن
البرنامج الخاص الذي نستخدمه لهذا العام
تجميع لدينا رمز C ويسمى ضجيج،
والسبب في أننا قد بدأت في استخدام ضجيج هذا العام -
لأننا لم تستخدم هذا البرنامج في الماضي؛
لقد كنا واحد آخر يسمى دول مجلس التعاون الخليجي التي تحظى بشعبية حقا -
رنة فعلا يعطيك رسائل الخطأ التي تجعل معنى.
هذا واحد يقول "يتوقع"، "بعد عبارة"،
وتروي لك حتى بعد التعبير الذي كنت في حاجة فاصلة منقوطة.
بحيث يتم تحديد ذلك لك؟
نعم >>، في الوقت الحالي.
ممتاز؛ اسمحوا لي أن أعرف، ونحن سوف تسحب عنه، وسنقوم بتشغيل عليه.
ولكن نعم، وضع هذه الفواصل المنقوطة في هو نوع من الألم.
I >> ثابتة، لذلك أعتقد أنه ينبغي أن تعمل.
ممتاز - المراجعة 3.
التي تبدو مثل ذلك.
كل الحق، وحتى الآن إذا كنا تشغيله،
هناك تذهب.
بارد الاشياء.
>> حسنا.
وبفضل ذلك للقيام بذلك.
انه لشيء رائع أن ألتقي بكم الرجال.
ما سنفعله الآن هو قضاء بعض الشيء القليل المقبل
الغوص في مشاكل كيندا القسم
التي تأتي من مجموعة من مشكلة هذا الأسبوع
وسوف نفعل ذلك لأكثر من المقاطع
لبقية هذا المصطلح،
ثم سنقوم بحفظ ال 15 الماضية، 20 دقيقة او نحو ذلك
للحديث عن هذه المشكلة حددت لنفسها
وبعد ذلك فقط أي أسئلة أخرى لديك بشكل عام حول الفئة.
قلت ذلك، ما أريد أن تفعل حقا
ولقد الجميع المشاركة
باستخدام الاشياء المسافات،
رمي في التعليمات البرمجية، ورمي في الاقتراحات،
وعندما نتحدث عن مثل هذه الامور انقطاع
أو لا تعمل، لمجرد هذه هي الأشياء التي
وأنا أعلم أنني صادفت
عندما بدأت الترميز،
وكانت محبطة حقا في بعض الأحيان كيندا
لأنه إذا كان هذا مثل 2 صباحا قبل مجموعة الخاص بك المشكلة بسبب،
لذلك - فقط للإفصاح،
لم أكن حتى بدء البرمجة كنت طالبة في الكلية.
كان هذا النوع من الشيء، غريب غير معروف
سمعت أن كان باردا كيندا
وسمعت أيضا أنه يمكن أن يكون الألم الحقيقي في بعقب
إذا كنت أفتقد فاصلة منقوطة وهذا هو الخطأ الوحيد الذي حفظ برنامجك من العمل
ويمنعك من النوم،
بالتأكيد كان الأمر كذلك،
إذا كانت لديك أسئلة من هذا القبيل،
إذا كان لديك مخاوف من هذا القبيل، واسمحوا لي أن أعرف،
لأنني أريد أن تكون هذه تجربة جيدة لليا رفاق.
>> وحتى يا رفاق تحميل جميع مشكلة يتحدد بعد؟
تعرف كيندا حيث هو؟ حسنا.
وهكذا لن نذهب إلى cs50.net، لأنني لم يكن لديك على هذا الحساب،
سحب ما يصل مجموعات المشكلة،
سحب ما يصل مجموعة مشكلة 2، وسوف نبحث في الإصدار القياسي اليوم.
سنقوم سحب ما يصل مواصفات هنا.
انتقل لأسفل.
لذلك نحن ستعمل تبدأ في النظر في هذا القسم من الأسئلة.
لقد شاهد يا رفاق هذه السراويل حتى الآن؟
حسنا.
لذلك هناك السراويل على حلقات،
ويتم ذلك عن طريق تومي التي، واحدة من الزملاء التدريس الرأس.
هناك واحد على نطاق،
يعتقد فعلت من قبل زميل آخر يدعى ديفيد التدريس
وبعد ذلك واحدة على التشفير قيصر القيام به أيضا من قبل ديفيد.
انهم رائع.
هل كان يراقب اللاعبين السراويل حتى الان؟
How've أنها لم تكن؟
مفيدة؟ حسنا، جيد أن نعرف.
لو لم يكن، يمكنك أن تقول ذلك.
ولكن قبل أن تفعل،
لقد نظرت الرجال في هذه المسائل
على الإطلاق؟
>> دعونا نتحدث عن هذا قليلا.
حتى لقد قدمنا ​​خلال الاسبوعين الماضيين
في محاضرة
عدد من الحلقات المختلفة.
هناك في لحلقة،
حلقة من الوقت، ثم حلقة افعل حين،
وفي محاضرة، كنا نتحدث كثيرا عن
كيف أن هذه الحلقات كلها
مماثلة إلى حد ما في الكثير من الطرق،
ويمكنك أن تفعل الكثير من الأشياء نفسها مع حلقة بينما
أن يمكنك مع حلقة ل.
لديك فقط لنوع من استخدام تركيبات الحق من المتغيرات وكذا.
وذلك حقا
الفرق الحقيقي بين جميع الحلقات هو أن
في بعض الأحيان أنهم أكثر فائدة
لاستخدامها في وقت واحد مما كانت عليه في وقت آخر.
>> ذلك على سبيل المثال،
حلقة في حين تختلف عن حلقة افعل الوقت.
هل الجميع يشعر وكأنه لديهم مؤشر جيد على حين
وحين تفعل حلقة أكثر
مفيدة أو ما هو الفرق؟
>> أعتقد أن الفرق هو حلقة في حين افعل
يدير - أنا لا أعرف تماما ما هي المصطلحات،
لكن سلسلة من المهام داخل الحلقة.
أنهم تلقائيا - فإنه يدير لها على الأقل
قبل أن يتحقق الشرط، أو حلقة في حين سيتم تشغيل فقط عندما
أنه يعمل بشكل مستمر - وجود أو عدم ويجري استيفاء الشرط.
نعم، هل هذا معقول؟
>> دعونا نلقي نظرة على بعض الشيء من التعليمات البرمجية.
فقط حتى لتكرار السؤال،
أو الجواب، إلى حد ما؛
كان الجواب أن
وحلقة بينما تحقق لمعرفة ما إذا كان الشرط
الذي تحدده هو التقى
قبل تشغيل الجسم من الحلقة للمرة الأولى،
في حين أن افعل حين سيتم تشغيل تلقائيا حلقة الجسم من الحلقة،
هو ما نطلق عليه - انها غريبة المصطلحات،
ولكن إذا قلت أي شيء لا معنى له، اسمحوا لي أن أعرف -
حلقة الجسم هو أن الأشياء التي كنت وضعت في فترة ما بين الأقواس المتعرجة.
في حلقة وافعل حين،
الحصول على تشغيل تلك الهيئة على الأقل مرة واحدة،
ومن ثم يحصل على التحقق من حالة قبل تشغيله في كل مرة متتالية.
>> في الواقع كان الأمر كذلك، سام،
هل تمانع كتابة بسيطة أثناء حلقة
في فضاءات؟
كيف >> نوع من مثل
جعل جديدة ...؟
I فقط حذف كل ما لديك هناك.
نعم، امسح بها فقط.
>> حسنا، أعتقد أواجه هذا -
أي واحد تريد، فترة من الوقت، أو لا تريد أنت ...؟
نعم، فقط حين لا صحيحا، طباعة شيء ما.
ودعونا نرى.
الكسندر، أدركت أننا لم يقدم لك.
>> أوه، هذا شيء طيب.
هل - يمكنك حتى رمز حلقة افعل بينما بالنسبة لنا؟
نعم >>، سأحاول.
كل الحق، سنقوم فقط سحب هذه على الشاشة،
حتى يتسنى لك نوع من يكون على التعامل مع ما هي الاختلافات.
>> حتى هنا هو ما فعله سام.
انه حصل على عدد صحيح يسمى ط
هذا ما كان تهيئة إلى 17.
ثم يقول في حين أن (كثافة العمليات ط = 17)
printf ("اسمي سام")؛
ذلك ما يحدث عندما نقوم بتشغيل هذا الرمز؟
هناك خطأ؛ ماذا أقول الخطأ؟
دعونا سحب منه والحديث عن ذلك.
حدث خطأ، تقول.
دعونا انتقل لأسفل.
وقدم لنا ذلك هذا الخطأ، وقالت انها،
"مهلا، كنت أتوقع تعبير."
هذا خفي كيندا.
نعم، ذلك بالضبط - ومرة ​​أخرى،
سيكون هناك علة أخرى القليل الذي سوف نلحق في الثانية فقط.
ولكن هذا هو آخر واحد من هذا النوع من الأشياء مصطلحات غريبة،
ولذلك فإن هذا الباحث = 17 ط
ليس التعبير.
ما يبدو أنه يفعل هو أنه
إعلان عدد صحيح يسمى ط
ووضعه على قدم المساواة إلى 17
أو، بدلا من ذلك، وضع الباحث أن 17 في دعوت.
وهذا لا معنى له
في سياق هذه الحلقة من الوقت.
فإنه لا معنى له، كما سنرى،
في سياق حلقة For، لأن للإعلانات حلقة لا تبدأ
مع ذلك لكثافة العمليات ط يساوي شيئا
وتطول.
>> وكذلك فعل لك -
اصلاح شيء، كل الحق.
هنا يذهب؛ رهيبة.
حتى الآن تبدو الأمور مختلفة قليلا.
تغيرت زوجان من الأشياء.
يمكن لك أن تقول لنا ما هي الأشياء قد تغيرت؟
I >> أخرج الباحث، لذلك ليس هناك إعلان (غير مسموع) بدلا من التعيين.
ويوقع على قدم المساواة، وطرح علامات I 2 المساواة، والتي تعني قدم المساواة.
رهيبة.
نعم، ما كان لذلك لم سام حتى اخرج كثافة العمليات
كان ذلك هنا في وقت سابق،
وقال أنه هذا هو ما كان عليه في وقت سابق، وكثافة العمليات، - حتى لو كنت مجرد إلقاء نظرة على هذا
والتي تعلن ذلك - حتى أخذنا من هذا النوع.
هناك، شار الباحث، سلسلة، وباختصار،
ويطلق على هذه الأنواع.
استغرق حتى تتمكن من نوع
وسبق ذلك الحين،
وقال انه مجرد واحد يساوي علامة
وما قال انه كان حول هذه الإشكالية
عندما لديك 1 علامة التساوي،
وهذا عامل التعيين.
هذا ليس اختبار أم لا 2 الأشياء متساوية.
هذا ما وضع في الواقع شيئا يساوي شيئا.
اننا وضع رقم 17 في ط متغير.
للقيام بذلك هذا النوع من المقارنة،
لديك لاستخدام مزدوج يساوي،
وهو نوع من شيء غريب
ولكن هو خطأ شائع الى حد كبير.
حتى واحد الشيء الآخر أنا أشير، إذا كنت لا تمانع،
هو أنه في
لدينا هنا في وظيفة الباحث الرئيسي،
ترى أن الجسم من وظيفتنا
ويقابل من الجانب الأيسر
بنسبة 4 مسافات أو علامة الجدولة.
السبب في أننا نفعل ذلك
هو فقط من أجل قراءة.
كما ترون في حلقة بينما سام هنا،
وقال انه لا البادئة في كل شيء،
وهذا لا يؤثر على الأداء الوظيفي للرمز.
فستعمل بالضبط نفس الشيء.
>> ذلك على سبيل المثال، إذا كنا الخروج إلى الأعلى هنا
واضغط على زر التشغيل لدينا، وسوف نبني عليه،
انها سوف تشغيله،
وماذا سيحدث؟
لماذا لا يزال يقول تشغيل؟
لأنه >> سوف تبقي تكرار مرحبا.
بالضبط، ولماذا لا تبقي تكرار مرحبا؟
لأن >> صحيحا أبدا التغييرات، لذلك دائما 17.
نعم، بالضبط، لذلك
دعونا نرى، وبعد - يذكرني اسمك مرة أخرى؟
جيمي. وقال جيمي ذلك أن
والسبب في هذا وتبقي تكرار مرحبا مرارا وتكرارا
لأن هذا الشرط هو دائما صحيحا.
نحن لا تغيير قيمة ط.
نحن لا تغيير محتويات ما المخزنة في هذا المتغير.
حتى في هذه المرحلة وصلنا هذا خطأ
ولدت البرنامج الانتاج أكثر من اللازم،
وإذا كان لنا أن انتقل لأسفل ونوع من نظرة على ما يجري هنا،
تستطيع أن ترى أنه من مرحبا، مرحبا، مرحبا، مرحبا، مرحبا، مرحبا، مرحبا على طول الطريق من خلال.
رهيبة.
>> ذلك النوع من العودة إلى النقطة الأصلية
أن وجود المسافة البادئة هنا
في الجسم من الحلقة في حين لم يؤثر شيئا.
البرنامج لا يزال يدير على ما يرام.
عادة لاسلوب جيد -
وهذا هو الشيء الذي نبحث عنه في مجموعات مشكلتك -
نطلب لك بمحاذاة أطراف هذه المساحات بنسبة 4، والتي يمكنك القيام به
فقط عن طريق الضغط على المفتاح TAB
أو يدويا عن طريق وضع نفسك في 4 مساحات.
بارد، حسنا لذلك دعونا نعود وننظر في
الكسندر تفعل بعض الوقت.
فقط وجود >> كيندا صعوبة تذكر.
حسنا، وأيضا دعنا نعمل من خلال ذلك.
هو أن تبرد؟
نعم >>.
>> حسنا، حتى هنا نذهب.
هذه هي الشفرة التي كتب الكسندر.
تذهب بواسطة Alex - حسنا.
حتى هنا التعليمات البرمجية التي قد كتب اليكس.
لذلك، لقد حصلنا على إعلان لدينا الرئيسي هنا،
ومن ثم فإننا قد حصلت على عدد صحيح يسمى هذا المتغير الأول
أعلنت يجري هنا.
لدينا بيان دو
ثم مرة أخرى في الجسم مع هذه الأقواس،
لذلك هذا هو جسد حين افعل ل-
اسمحوا لي أن التكبير في هذا لذلك فمن أكثر قابلية للقراءة -
وفي الجسم، نحاول طباعة "هذا هو الجسد"،
أنا + +،
زيادة وبالتالي فإن محتويات الأول والقيام بذلك
حتى أنا يحصل أن يكون 3،
ثم ينتهي برنامجنا.
>> ذلك ما يحدث عندما نقوم بتشغيل هذا البرنامج؟
يتوقع >> I معرف.
حسنا، وبناء لذلك، تشغيل، يحدث خطأ.
ماذا يحدث؟
نحن هنا انتقل لأسفل،
نحصل على هذا الشيء نوعا ما خفي النظر،
يتوقع منقوطة بعد إعلان أعلى مستوى.
هذا غريب كيندا.
هل لدى أي شخص فكرة عن ما يمكن أن يحدث؟
غريبة كيندا، نعم.
>> [غير مسموع] يعلن خارج الأقواس؟
لذلك لا أن يتم تطبيق ثم عند استخدام الأقواس؟
أعلن ذلك انه هذا الرجل خارج الأقواس التي؟
أوه، هؤلاء الرجال - الأقواس المتعرجة؟
نعم >>.
نعم، بالضبط.
لذلك تبين أن
لا يمكنك فعلا أن يعلن متغير هنا مثل هذا.
ما كنت قد تحاول القيام به هو -
قطع عليه من هناك -
يمكنك وضع إما داخل الأقواس المتعرجة هنا
أو بديل آخر
هي وضعه خارج تماما.
وحتى هذه - اعتمادا على المكان الذي وضعت فعلا إعلان
هذا المتغير عدد صحيح،
يمكنك الحصول على 2 أنواع مختلفة جدا من المتغيرات؛
عندما يكون خارج الرئيسي،
هذا ما نسميه متغير عمومي.
انها خارج نطاق أي من وظائف -
انها ليست ضمن وظيفة -
في حين أننا لو وضعها داخل الرئيسي،
أود هنا، ثم انه دعا متغير محلي،
لأنه المحلي إلى نطاق الرئيسي.
وسوف نتحدث قليلا المزيد عن ما هي الاختلافات
بين أنواع 2 و لماذا كنت تستخدم أنواع مختلفة من المتغيرات،
لكن في الوقت الراهن،
يمكنك الاحتفاظ فقط كل المتغيرات المحلية،
لأننا لم يكن لديك أي حاجة للمتغيرات العالمية.
>> حسنا، لذلك هذا شيء واحد هناك.
دعونا نحاول تشغيل هذا مرة أخرى، نرى ما سيحدث.
تشغيل، والحصول على خطأ آخر.
تكبير قليلا، ماذا حصلنا عليه؟
نحصل على هذا قوسين المتوقع بعد القيام / الوقت.
أي أفكار ما الذي يحدث؟ دان؟
هل >> حين قوسين ثم وبعد ذلك -
أنا لا أعرف إذا كنت بحاجة إلى redeclare الباحث،
ولكن حين تفعل (ط <3).
بالضبط، نعم.
لذلك تبين أن دان صحيح تماما.
نحن لسنا بحاجة لوضع هذا النوع هنا مرة أخرى.
يمكننا قتل بدلا من ذلك النوع
وتفعل ذلك تماما.
حسنا.
أنا من إعادة تكبير، انها محاولة لمرة واحدة أكثر من ذلك.
ننظر في ذلك، بل يمتد ناجحة.
إذا كان لنا أن انتقل لأسفل، "هذا هو الجسد" تطبع 3 مرات.
هذا الحلو جدا.
أحسنت، أحسنت، والرجال.
إضافة إلى عمله.
كيف يحدث هذا؟ حتى الآن؟
وتيرة لائقة؟
حسنا، باردة.
>> لذلك، ونحن نوع من العودة إلى السؤال الأصلي،
ونحن - والآن إذا نظرنا إلى الفرق،
ترى أن في هذه الحلقة افعل حين،
الشرط يأتي الماضي.
وذلك يقرأ الكمبيوتر برنامج
منذ يتم تنفيذها برامج C نوع من ترتيب تسلسلي في هذا،
حيث تبدأ حرفيا مع السطر الأول من الرئيسي،
ومن ثم تنفيذ خط 6، السطر 7، السطر 8، السطر 9،
السطر 10، السطر 11،
كل هذه الأشياء في الجزء العلوي هنا
يجري تنفيذ مرة واحدة
قبل أن اختبار أي وقت مضى لرؤية هذا الشرط
أنا أم لا - أو محتويات ط، إلى حد ما -
هي أقل من عدد 3.
وإذا كان مرة واحدة فقط نصل الى السطر 12،
محتويات ط أقل من 3
هل نحن فعلا القفز مرة أخرى إلى السطر 7
ثم كرر هذه العملية،
وبعد ذلك اختبار حالة مرارا وتكرارا وتكرارا.
>> حتى نتمكن من النقيض من هذا
مع - التكبير التراجع،
انتقل لأسفل إلى الإصدار سام،
نحن ننظر إلى هذا ستعمل، تغيرت قليلا بحيث لم يعد حلقة لا نهائية -
حيث إذا كنا تكبير،
ونحن نرى أن هذا البرنامج ينفذ كما،
انه سيكون ل، أولا، بالإعلان كثافة العمليات ط،
تعيين محتويات أكون إلى 0،
وبعد ذلك يضرب حالة من أول حلقة في حين،
حتى في هذه الحالة، هذه الهيئة، وهذا printf ("مرحبا") وأنا + +
لن تعدم حتى
وما لم هو في الواقع أقل من أو تساوي 2.
حتى لو كنت على بعد 3، على سبيل المثال،
إذا وضعنا هذا الحق هنا
يساوي 4 - أو سأفعل 3، لأنني وقال 3 -
وثم تشغيله،
وأنها سوف بناء وتشغيل انها سوف بخير تماما،
لكنه لن طباعة أي شيء فعلا،
لأن فشل اختبار لأن الحالة الأولى.
حتى في الصف، ونحن تحدث عن نوع من السبب في هذه الحلقات بينما تفعل
هي مفيدة أحيانا
ولماذا نستخدمها بدلا من حلقة من الوقت.
>> هناك - لا يا رفاق لديك أي اقتراحات
لماذا تفعل حين حلقة قد تكون أكثر فائدة؟
>> حسنا، أعتقد تفعل حين الحلقات هو إذا كنت تريد إدخال المستخدم،
لأن بهذه الطريقة يمكنك السماح لهم
وضع شيء في مرة واحدة، وإذا كان صحيحا،
يمكن أن ننتقل إلى بقية البرنامج،
ولكن إذا كان غير صحيح، ثم عليك أن تبقي على مطالبة المستخدم
حتى يمكنك وضع الإدخال الصحيح.
نعم، بالضبط - بالضبط،
لذلك افعل حين حلقة مفيد
لأنه عندما المطالبة إدخال المستخدم
لأنك بحاجة للحصول على مدخلات المستخدم قبل أن تتمكن من التحقق فعلا.
حتى في pset 1، في pset 2،
أين أنت المطالبة إدخال المستخدم كثيرا،
هذا شيء مفيد لاستخدام
بدلا من مجرد حلقة في حين بسيطة.
إذا كنت تستخدم حلقة من الوقت، يمكنك أن تفعل الشيء نفسه -
يمكنك أن تفعل الشيء نفسه مع حلقة بينما
كما تفعل مع حلقة افعل الوقت.
عليك أن يكون نوع من هذه العملية مكررة
حيث تحصل على الإدخال الأول ثم تبدأ حلقة الخاص بك الوقت.
في حين أن افعل حين حلقة، لديك فقط لأنه يكتب مرة واحدة
وأنه هو أنظف كثيرا.
>> حسنا.
أي أسئلة؟
معنى؟
عودة >> 0 - هذا هو مجرد نوع من المماطلة أو غير ذلك -؟
نعم، يمكن ذلك نحن -
حسنا، سنقوم تغطية هذا أكثر قليلا في وقت لاحق
ولكن تبين أن
هذا 0 عودة أن نضع
في نهاية كل وقت الرئيسية -
يمكنك كيندا تأخذ فقط من ونفعل شيئا
في الوقت الحالي.
ما بدأنا الحديث عن وظائف
نوع من في نهاية الأسبوع الماضي، ثم مرة أخرى هذا الأسبوع
هو أن وظيفة
يأخذ المدخلات التي هي هذه الأشياء داخل قوسين؛
هذه هي 2 المدخلات، حججنا أو المعلمات،
ما كنت كما دعا لهم وظيفة هدفنا الرئيسي،
ثم وظيفة ينتج أحد المخرجات
الذي نسميه قيمة الإرجاع.
وقيمة الإرجاع في حالة الرئيسي هو هذا الباحث،
هذا صحيح،
والطريقة التي تحكي وظيفة، "مهلا، هذا هو ما خرج الخاص
ستكون "هو بهذه الكلمة" العودة "،
تلك الكلمة الرئيسية، بدلا من ذلك،
وحتى عودته الرئيسي 0
أو إخراج الرئيسية 0
هو المعيار في برامج C
لأن عودته 0 من الوسائل الرئيسية التي
"مهلا، كل شيء مع تنفيذ برنامجي على ما يرام."
إذا كان لنا أن وضع شيء آخر غير 0،
مثل 1، على سبيل المثال،
هذا ما كان يقول لمن يدير هذا البرنامج
ذهب أن شيئا خاطئا.
وذلك نحصل على مزيد من المشاركة مع الاشياء على مدى فصل دراسي،
إذا كنت من أي وقت مضى الحاجة أن أقول،
"عفوا، أنت تعرف، لقد حصل خطأ مع هذا البرنامج،"
بدلا من الاضطرار تحطم بلدي البرنامج، أريد أن تخطر
عداء من برنامجي أن شيئا ما حدث من خطأ،
يمكنك استخدام قيمة الإرجاع،
كما نسميها، وهذا ليس 0.
>> لذلك سنقوم تغطية ذلك أكثر قليلا
مرة واحدة ونحن ندخل في الوظائف.
هذا النوع من المنطقي؟
حسنا.
وظائف غريبة هي نوع من -
أعتقد بالنسبة للأشخاص الذين لديهم الكثير من المعلومات الأساسية الرياضيات،
يتعلق الأمر بسهولة أكثر من ذلك بقليل،
وخاصة إذا كان لديك قليلا الخلفية الرياضيات أكثر تجريدا
وكنت تستخدم ليتحدث عن وظائف
وجميع هذا النوع من الاشياء.
ولكن سنحاول وتغطيتها
وتذهب لطيفة وبطيئة لأنها تأتي.
وبالمثل، وهذا كله argc الباحث،
تشار * argv []،
لفي الوقت الحالي، يمكنك أن تأخذ أيضا أن لوحة المراجل و.
لقد بدأنا لتغطية تلك بت قليلا في محاضرة
عندما نتحدث عن الحجج التي تحصل على تمريرها إلى البرامج على سطر الأوامر،
ولكن في مجموعات مشكلتك والبرامج الخاصة بك،
أنه بخير تماما فقط لكتابة باطل ويبقيه بسيط.
وماذا يعني هذا الفراغ هو أن
"مهلا، الرئيسي لن تقبل أي المدخلات؛
هذا هو مجرد برنامج نحن سوف جري فقط.
نحن لا رائعا اعطائها أي معلومات اضافية
في كل مرة نبدأ عنه قيد التشغيل. "
حتى الآن، يمكنك أن تفعل ذلك؛
يمكنك أيضا حذف حتى ال 0 عودة
في نهاية البرامج وأنها سوف تعمل على ما يرام،
ولكن أوصي حفظ فقط أن فيها
في بضعة أسابيع، سوف نبدأ في نوع من
سحب الغطاء قليلا وفهم المزيد عن
كل هذه الأجزاء المتحركة مختلفة قليلا.
>> حسنا، الآن دعونا نتحدث عن سؤالنا الثاني هنا.
فماذا "معرف غير معروفة" تشير عادة
إذا أنتج من قبل ضجيج؟
وأعتقد أننا قد شهدت بالفعل أن اليوم.
يمكن إعطاء شخص ما من خلاصة ماذا يعني ذلك؟
دعونا نرى، كيلي - واحدة من Kellys.
لذا >> -
نعم، ماذا -
أعتقد >> عند، مثل، لا تعلن المتغيرات ومحاولة لاستخدامها.
نعم، بالضبط، بالضبط.
لذلك إذا كنت ترى أي وقت مضى هذا الإخراج
عند محاولة وتجميع برنامجك،
مثلما قال كيلي،
فهذا يعني أنك تستخدم متغير الذي لم تعلن،
إذا كان الأمر كذلك أعود إلى الفضاء لدينا،
وأنا لا شيء من هذا القبيل
printf (
"مرحبا٪ S")
وحاول وملء في هذا٪ S
مع ليالي متغير أنني لم تعلن أي مكان
وأنا أحاول أن تشغيله،
سترى ما يمكنني الحصول عليها في هذا القاع هنا:
"استخدام معرف غير معروفة 'S'"؛
هذا يعني فقط لأنك لم تعلن متغير الخاص بك.
نفس الشيء يحدث إذا
لديك x و حاولت وتخزين 7 في ذلك
وأنا لم تعلن X.
أن أحصل على نفس الخطأ:
"استخدام 'س' معرف غير معروفة".
>> كل الحق،
وبالتالي فإن التشفير قيصر، وعدم آمنة جدا،
أنا سأترك يا رفاق مشاهدة هذا باختصار، نوع من فهم لماذا،
ونأمل بعد القيام مشكلة هذا الأسبوع تعيين
حيث يمكنك الكتابة فعلا والشفرات قيصر، فسوف نفهم أكثر قليلا
حول ما يعنيه أن تكون آمنة وغير آمنة -
أو غير آمنة، وأنا أعتقد - غير آمنة مختلف قليلا.
وكان الشيء الآخر لدينا هذه أسئلة أخرى هنا
عن وظائف
وما هي وظيفة،
ونحن نوع من تحدثت عن ذلك لفترة وجيزة عندما تحدثنا عن القيم العودة؛
لشخص ما كان لإلقاء محاضرة،
باختصار يمكنك من كان لإلقاء محاضرة اليوم؟
حسنا.
دعونا نرى، دعونا - شخص ما يمكن أن تقول لنا ما هو وظيفة؟
كيلي؟
>> في الأساس >> شيء ترسمه على شيء مكتوب في مكتبة هذا
أكثر تعقيدا هناك، ثم تكتب مجرد شكل قصيرة من ذلك،
مثل لذلك كنت مع الإشارة إلى أن مكتبة، وذلك باستخدام
كل ما رمز طويلة و[غير مسموع].
نعم، بالضبط، ثم كنت أريد أن أضيف شيئا إلى ذلك؟
نعم >>، أفكر في ذلك مماثلة للمفهوم صيغة في الرياضيات
حيث يمكنك مجرد كتابة الصيغة ثم يمكنك توصيل المتغيرات في
وهذا ما هو وظيفة (غير مسموع).
>> نعم، لذلك نحن قد حصلت على زوجين من الإجابات هنا
التي هي على حد سواء جيدة وعلى حق.
هناك اشارة الى المدونة قد كتب أن في مكان ما في المكتبة
وهذا هو أكثر تعقيدا
وبعد ذلك يمكنك أن تستفيد من رمز
وفعلا استخدام ذلك من خلال كتابة فقط شكل قصيرة من ذلك -
أو، بدلا من ذلك، اسمها -
ثم هناك أيضا هذه المقارنة إلى صيغة في الرياضيات
أو الفيزياء، وجميع هذا النوع من الاشياء
حيث لديك صيغة
ويمكنك توصيل ثم في
المتغيرات لهذه الصيغة
لثم الحصول على نتيجة الصيغة،
لذلك كنت تفكر في ذلك كما مثل معادلة من الدرجة الثانية.
تخيل لو بدلا من الاضطرار لمعرفة المزيد عن
ما الصيغة التربيعية في درس الرياضيات،
هل كان مجرد آلة حاسبة برنامج القليل الذي فعل ذلك بالنسبة لك.
لم أي شخص استخدام برامج الحاسبة في فصول الرياضيات في المدرسة الثانوية؟
نعم، الطبقات الفيزياء؟
حيث يمكنك فقط أن أقول، "يا، الصيغة التربيعية.
هذه هي المتغيرات التي أريد أن المدخلات.
الآن اعطني الجواب. "
وهذا النوع من ما هو وظيفة.
انها وسيلة بالنسبة لنا ل
نوع من الكتابة مثل برنامج صغير قليلا الفرعية
في إطار برنامج أكبر لدينا
واستخدامها مرارا وتكرارا
بحيث لم يكن لدينا لنسخ ولصق رمز،
يمكننا اعطائها المدخلات المختلفة والحصول على نواتج مختلفة،
انها فائقة مفيد
عندما كنت في محاولة لكتابة برامج مختلفة في أوقات مختلفة.
>> ذلك على سبيل المثال، وهي وظيفة التي كنا باستخدام مرارا وتكرارا وتكرارا
طوال هو printf.
هو نفسه Printf وظيفة
وتبين أنه في الواقع طويلة جدا ومعقدة،
أبحث سيئة، تعمل في الكتابة.
حتى بسيطة كما يبدو لنا
لطباعة الاشياء إلى الشاشة،
لأننا جميعا لم يفعلوا ذلك في بداية اليوم القسم،
اتضح أنه في الواقع، كما تعلمون،
بضع مئات من الخطوط جيدة من التعليمات البرمجية.
انها ليست شيئا اريد من أي وقت مضى في الكتابة، على وجه اليقين،
ولكن نصل الى استخدامها كل يوم، وهذا هو نوع من باردة،
حتى نصل الى تقاسمها مع بعضها البعض،
مع البرامج المختلفة،
لذلك سنكون أكثر الغوص في الوظائف؛
في الوقت الحاضر، ونحن لسنا -
وظيفة فقط ونحن في طريقنا إلى أن الكتابة هي الرئيسية.
الرئيسية نفسها هو أيضا وظيفة،
ويمكنك ان ترى انها حصلت على انتاجها،
تحدث مدخلاته وكأننا عنه،
ومن ثم اسمها، والتي هي الرئيسية.
الرئيسي هو نوع من - هو وظيفة خاصة هناك.
في برنامج C الخاص بك، يجب أن يكون هناك وظيفة رئيسية،
وذلك في الوقت الراهن، لدينا نوع من الكتابة حذف
النموذج الأولي، أو إعلان، الرئيسية.
لقد أعطيت لنا أن لكم،
ولقد كان مجرد تكتب نوع من الفراغات.
>> لذلك >> لمجموعة المشكلة الثانية، ونحن لسنا في حاجة إلى
اكتبها في وظيفة ثانية؟
لا أعتقد ذلك.
وأعتقد أنه كل شيء هنا.
نعم، لذلك قيصر الصفر،
لم يكن لديك لذلك، فإنه لا تبدو،
وVigenere، كنت لا سواء،
لذلك - وكما تبين من أي وقت مضى كنت لا فعلا لكتابة
وظيفة، أليس كذلك؟
استدعاء دائما وضع كل من التعليمات البرمجية الخاصة بك في غضون الرئيسي،
والعديد من المبرمجين القيام بذلك.
ونحن نتحرك على،
نبدأ ظائف إدخال كوسيلة
لتنظيف التعليمات البرمجية،
لجعلها أكثر أناقة،
في حال كان لديك المهام - نوع من مثل عندما تحدثنا عن الحلقات،
كيف أحيانا هناك أشياء تريد القيام به مرارا وتكرارا وتكرارا،
وكان لديك نوع من السذاجة الطريق -
أو ما نسميه في كثير من الأحيان "رجل القش" الحل،
هو مجرد نسخ ولصق مرارا وتكرارا -
يمكنك أن تفعل الشيء نفسه مع وظائف حيث يمكنك مجرد نسخ ولصق
رمز نفسه مرارا وتكرارا،
ولكن هذا ينفخ التعليمات البرمجية -
ينتهي يشكلون التعليمات البرمجية طويلة حقا -
ويحصل أيضا قليلا مربكة،
ومن ثم فهذا يعني أنك لا تستطيع أن تحب -
إذا كنت تريد من أي وقت مضى لاستخدام هذا الرمز مرة أخرى في برنامج آخر،
كنت عالقا لك أيضا نسخ ولصق مرة أخرى،
ذلك واحد من الأشياء سنتحدث عنه هو
نوع من التصميم وأسلوب البرامج الخاصة بك،
وذلك عندما يكون من المنطقي نوع من
حزمة شيء ما ووضعها بوصفها وظيفة منفصلة،
نحن نشجعك على فعل ذلك،
وهذا شيء، ومرة ​​أخرى،
ليس هناك قاعدة جامدة وسريعة.
نادرا ما نقول أنه يجب كتابة دالة يسمى هذا،
ولكن من أكثر من واحدة من تلك الأشياء التي فقط تطوير مع مرور الوقت
كما كنت كتابة برامج أكثر وأكثر.
>> أي أسئلة أخرى؟
حسنا، لذلك دعونا الآن
العودة إلى هذا الرجل هنا،
لذلك أنا لا تزال في هذا القسم من الأسئلة.
لقد تحدثنا عن تلك كل هذه مختلفة،
ما هو وظيفة، لماذا لكتابة وظائف،
عندما يمكنك مجرد نسخ ولصق؟
نأمل لقد كنت مقتنعون أن كتابة الوظائف هو شيء جيد.
حتى الآن دعونا ننتقل إلى هذا البرنامج ماي سبيس،
وسوف نقضي قليلا من الوقت في القيام بذلك.
>> لذلك، دعونا نرى،
هل يمكنني الحصول على شخص قراءة هذا بالنسبة لي؟
دعونا Mikhaila - سوف تقرأ هذا بالنسبة لنا؟
هل تعني عودة >> عندما ماي سبيس -
ماي سبيس الى الوراء عندما كان باردا.
>> "ماي سبيس العودة عندما كان باردا،
كان كل الغضب إلى نوع من هذا القبيل.
ربما ما زال؟ لست متأكدا حقا.
في أي حال، وذلك باستخدام جهاز CS50،
CS50 تشغيل، أو مسافات CS50،
كتابة برنامج الذي يطالب المستخدم لرسالة
وإخراج ثم الرسالة مع الرسالة الأولى رسملتها،
مع كل الخطابات الأخرى في حالة بالتناوب،
وفقا لإخراج نموذج أدناه،
حيث يمثل النص boldfaced إدخال بعض المستخدم.
لبساطة، قد تفترض أن المستخدم
سوف الرسائل المدخلات الصغيرة فقط ومسافات.
النظر في هذه المشكلة فرصة لممارسة؛
لن يطلب منك أن تقدم هذا البرنامج. "
>> ممتاز، شكرا لك.
وذلك قال Mikhaila،
نحن نذهب لكتابة البرنامج الذي MySpaces التعليمات البرمجية.
لذلك لم أي من يا رفاق استخدام ماي سبيس؟
أي من لديك حسابات ماي سبيس؟
أوه، نعم، نعم!
كان باردا جدا.
[ضحك]
وأنا أعلم.
تعود نفسي.
ذلك ما نحاول القيام به هو كتابة برنامج
الذي يمر
وتستفيد الحرف الأول
ثم بعد ذلك كل حرف -
كل حرف أو غيرها بعد ذلك، أنا آسف.
>> لذلك - ويمكنك ان ترى في هذا المثال،
هذه هي الطريقة التي تشغيل البرنامج،
وحتى هذا يقول فقط، وقال "نحن تشغيل برنامج يسمى a.out.
مدخلات أننا ذاهبون الى يعطيها
سوف تتم مطالبتك.
نحن لا توريد المدخلات ستعمل على سطر الأوامر. "
إذا كنت قد تم بعد كل المحاضرات
ونسمع عن وسائط سطر الأوامر،
وهذا النوع من حيث تلك - ذلك التركيب غير تقليدي
في الرئيسي يأتي في argc مع الباحث، وجميع تلك الأشياء،
حتى هنا نحن لا تستخدم هذا الحد، نحن لا نتعامل مع أي من ذلك.
نحن فقط ستعمل الحصول على هذه المطبوعة في من قبل المستخدم،
ثم هذا السطر الثاني مع رأس المال جبان
هو ما نريد برنامجنا لإخراج.
>> لذلك بدلا من استخدام الأجهزة أو تشغيل، سنستخدم المسافات،
لأننا قد حصلت على مساحات،
وإذا كان الأمر كذلك يا رفاق سوف
الحصول على التعليمات البرمجية لننظر بشيء من هذا القبيل،
لذلك أنا ذاهب لإنقاذ هذا التنقيح
فقط حتى كنت قد حصلت على لوحة المرجل هنا
يشبه هذا، وكثافة العمليات الرئيسية (الفراغ)، لا شيء في ذلك.
في الواقع، ما سنقوم به هو أننا سوف فقط حذف كل شيء معا.
نريد لائحة فارغة،
لأننا لسنا ستعمل البدء في كتابة التعليمات البرمجية؛
بدلا من ذلك، نحن سأحاول كتابة بعض شبة الكود
الذي يعني فقط حقا ونحن في طريقنا لأكتب شيئا هذا ليس رمز
هذا النوع من يصف ما نريد القيام به،
لم كيندا مثل ديفيد في اليوم الأول من المحاضرة،
أو انا اعتقد ان هذا هو اليوم الثاني من المحاضرة عندما فعل التجريبي الجوارب كلها.
يا رفاق نتذكر أن - رؤية الجوارب؟
وكان جوزيف الى هناك نوع من الكتابة في اللغة الإنجليزية؟
لذلك نحن ستفعل الشيء نفسه.
>> لذلك عندما أبدأ الكتابة شبة الكود،
أود أن أبدأ من خلال النظر في ما الإدخال ستكون.
وأعطي نفسي حالة العينة،
ذلك مثل "شكرا للإضافة!"
وبعد ذلك أيضا كتابة ما أريد أن يكون الإخراج،
وهو في هذه الحالة هو شيء من هذا القبيل.
وهذا النوع من يعطيني مكان جيد، مثل البدء في التفكير،
"حسنا، أود أن أغتنم السطر 1
وأريد تحويلها إلى خط 2 "
ويساعد هذا النوع من توجيه تفكيري.
هذا مكان جيد للبدء.
طريقة أخرى للتفكير في الامر، أيضا، ونحن ننتقل كيندا
وكما كنت تفعل هذا في البرامج الخاصة بك، هو
التفكير في نوع من مثل ما هي الحالات الحافة إلى هذا؟
ما هي نوع من السيناريوهات غريبة؟
ما هي المدخلات غريب أننا قد تحصل؟
وماذا يجب أن تبدو مثل هذه النواتج؟
على سبيل المثال، مدخل واحد غريب
سيكون هذا واحد،
لا شيء على الإطلاق خلق،
أود إخراج ما في هذه الحالة؟
شيء نريد أن نفكر أيضا.
>> وذلك مجرد سؤال،
قد ما نريد أن الناتج؟
إذا لم نحصل على أي مساهمة في كل شيء، ينبغي أن برنامجنا ما إخراج؟
لا شيء >>.
لا شيء؟ يبدو كبيرا.
لذلك نحن نريد أن نتأكد من أننا لا أكتب أي شيء
إذا لم نحصل على أي شيء فيه.
بارد. حسنا.
هكذا
أنا ذاهب لدعوة اثنين من الناس ونحن نمضي من خلال
والرقم للتو نوع من مثل ما هو خوارزمية العام
وسوف نبدأ العمل من خلال هذا النوع معا.
>> لذلك، دعونا نرى. ميسي.
كيف تعتقد أننا سوف نبدأ؟
ماذا سيكون مكانا جيدا لتبدأ هنا
إذا كنا نريد لتحويل، ويقول، السطر 1
في السطر 2؟
يمكنك فقط نوع من شرح لي، باللغة الإنجليزية، ما كنت أفكر؟
لا تقلق حتى عن التعليمات البرمجية.
و>> أول شيء أود أن تفعل لتكون
نوع من المستخدم مباشرة لنقول لهم ما تريد.
حسنا، لذلك، ويقول،
"يا، دليل. أريد
سلسلة "- رائع.
لذلك دعونا أكتب هذا لأسفل.
مطالبة المستخدم سلسلة.
هذا يبدو وكأنه بداية جيدة.
حسنا.
دعونا نسأل كيلي رن هذا الوقت.
ماذا نريد بعد ذلك أن تفعل بعد ذلك؟
ما هو نوع من لدينا المقبل -؟
جمع >> مدخلاتها وتخزينها كمتغير.
كبيرة.
جمع حتى السلسلة،
تخزينه في متغير.
فهل هناك أي شيء خاص نريد القيام به هنا؟
نريد أن تحقق مدخلاتها
قبل -؟
نعم >>.
قد ما نريد للتحقق من؟
>> حسنا، قلت ليس لدينا للتحقق ما اذا كان عدد، أليس كذلك؟
لأن ذلك سوف نفترض انه صغيرة؟
نعم.
>> لذلك تبين أن - نعم.
بحيث يتم ضمان getString للعودة لنا سلسلة.
انها لن تعود لنا عددا أو أي شيء من هذا القبيل.
قد يكون هناك أحرف أرقام داخل هذه السلسلة، وإن كان.
وتلك، لا يمكننا تجاهل كما فعلنا في رأس المال.
ولكن سلسلة فارغة على ما يرام تماما،
وبالتالي فإن القضية هنا على خط 4 و 5،
الحق، حيث لا يوجد إدخال،
ولقد وضعنا شيئا ونحن الانتاج.
ليس لدينا ما يدعو للقلق والتأكد من أن هناك شيء في السلسلة
أو أن السلسلة لا يقل عن 4 حروف؛
أي شيء على ما يرام.
ذلك يتناقض هذا، على سبيل المثال، مع برامج مثل البنسات التي كتبت
حيث كان لديك للتأكد من أنك تحصل على وغير سالب الأرقام؛
هل كان لديك للتأكد من أن كنت الحصول على العدد الصحيح من أيام في الشهر.
وكيف يتم فعل ذلك يا رفاق؟
كيف يمكنك أن تفعل ذلك الاختبار؟
ماذا التي تتطلب منك استخدام؟
إفعل حين >> الحلقات.
بينما تفعل الحلقات؛ أنواع أخرى من الحلقات، وأيضا، نعم.
لذلك تبين أننا لا نملك لاستخدام حلقة في هذه الحالة،
في وقت نواجه فيه المطالبة سلسلة، والذي هو نوع من لطيفة.
>> كل الحق، والانتقال.
لذلك، ستيلا.
يمكن لك أن تخبرنا قليلا عن ما ينبغي لنا أن نفعل بعد ذلك؟
حتى الآن لدينا سلسلة، ونحن قد حصلت عليه المخزنة في متغير؛
ماذا يتعين علينا القيام به مع سلسلة؟
نحن بحاجة إلى >> -
تحديد 2 -
نعم، أقول ذلك باللغة الإنجليزية، وهذا رائع.
تحديد و>> [غير مسموع] عواصم - أو كبيرة.
نعم، لذلك كنت تعرف تلك التي هي الكبيرة والصغيرة.
لا يمكننا أحرف كبيرة أو صغيرة لهم حتى لقد حددت تلك التي.
وهكذا لن نضع ذلك في هنا.
>> لذلك، مجرد التفكير حول هذه العملية،
كيف نفعل هذا التحديد؟
هل تعرف، دان؟
نوع من ما نحن - ما كنا أداة لديك لاستخدام الأدوات من لدينا؟
فما استقاموا لكم فاستقيموا >> وضعها في مثل بطريقة ما في صفيف أو خط كل
علبته هو القليل الخاصة،
وأحرف كبيرة ثم من هناك أم لا.
حسنا، لذلك أداة واحدة يمكننا استخدام عبارة عن صفيف.
ماذا علينا أن ننظر في السلسلة،
رغم ذلك، لمعرفة - كان علينا أن ننظر إلى الأحرف.
لذا >> كنت قد حصلت على أن ننظر إلى طول السلسلة؟
نعم، لذلك جزء من ذلك هو الحصول على طول السلسلة.
فقط بدافع الفضول، ماذا نستخدم للحصول على طول سلسلة؟
التوابع strlen >>؟
نعم، التوابع strlen، ونحن نسمي هذا "التوابع strlen"
كل هذه وظائف سلسلة، لذلك التوابع strlen وظيفة،
وانها السوبر مفيد، لأننا يمكن استخدامه لنقول فقط،
مهلا، التوابع strlen: هنا سلسلة، قل لي متى هو عليه.
في محاضرة اليوم، تحدث ديفيد الكثير عن كيفية تنفيذ التوابع strlen،
ما يحدث في الواقع وراء الكواليس.
ولكن هذا هو واحد من تلك مفيد للغاية عظمى.
هناك هي تلك الأخرى التي هي أيضا في مكتبة سلسلة،
مثل strcmp، والذي ينص "strcmp"،
والتي تستخدم لمقارنة السلاسل مع بعضها البعض.
بعضها الآخر سوف تستخدم مثل strstr،
وهو أمر جيد للعثور على سلاسل فرعية، وهلم جرا.
بالنسبة للجزء الأكبر، وأنهم جميعا مع بدء شارع ثم انتقل ليكون شيئا آخر.
السبب أنها في الواقع لا توضح لهم مثل سلسلة وهلم جرا
لأن العودة في مثل الأيام الأولى من C،
عندما كان الناس الكتابة الأولى والتي كل شيء،
كان لديهم قيود على عدد الأحرف التي يمكنك استخدامها
لأسماء وظيفة وأسماء المتغيرات،
حيث كل شيء مثل مكثف عظمى.
ولكن في أي وقت ترى شيء يبدأ شارع،
وهذا يعني عادة هذه لديها ما تفعله مع سلسلة.
>> حسنا، لذلك كنت قد حصلت على الحصول على طول السلسلة،
وبعد ذلك، ماذا نفعل مع شخصيات؟
هل تعرف، وسام؟
>> ليس لدي فكرة، كنت أحاول أن الرقم بها.
أنا حقا لا أعرف - أود أن هناك طريقة ما ل-
أعني، وأعتقد أننا يمكن أن ربما تفعل شيئا مع الصعاب ويسوي،
ولكن لا أعرف أي وظيفة من هذا القبيل.
نعم.
>> ولكن هذا - انها لن تنجح بالضرورة،
لأن ثم سوف تحصل على مسافات لتكون -
سيكون لديك لديك مساحة للحصول على نصائح حول كيفية -
حسنا.
>> لا أعرف - I صباحا نوع من خسر في هذه المرحلة.
نعم - لا، لا، لا، هذه هي النقاط الجيدة.
وذلك ما يتعين علينا القيام به هو، مثل سام قال:
نحن بحاجة لتتبع الرسائل التي هي خطابات ونيف،
وتلك التي هي الحروف حتى.
ولكننا نريد أن نتأكد من أننا لا تبحث فقط
في الفردية والزوجية
مؤشرات في السلسلة،
ولكن بدلا يبحث في الرسائل الفردية والزوجية في السلسلة،
لذلك نحن في حاجة الى هذا التمييز بين كيندا
رسائل - مثل ما هو في الواقع A، B، C، D، أو غير ذلك،
وما الأمور ليست خطابات ولكن لا يزال لدينا في سلسلة.
على سبيل المثال هنا، مثل علامة تعجب هذا ليس رسالة،
لكنه ما زال جزءا من سلسلة لدينا، انها لا تزال شار.
وبالمثل، فإن كل هذه المساحات -
فإنه لا معنى للاستفادة مسافة، أليس كذلك؟
لذلك نحن نريد أن نتأكد من أننا تخطي تلك بطريقة أو بأخرى
في حين لا تزال تتبع الصعاب ويسوي.
>> ذلك النوع من الأدوات في برامجنا
حتى الآن، اذا صح التعبير،
لدينا عدد من الأدوات المختلفة التي تحدثنا عنها.
حتى واحد، على سبيل المثال، من المتغيرات،
مثل التي تحدثنا عنها هنا.
أداة أخرى تحدثنا عن وظائف.
حتى لقد تحدثنا عن المتغيرات في شبة الكود لدينا هنا
كما ما نحن ذاهبون الى استخدامها لتخزين سلسلة لدينا.
لقد تحدثنا عن وظائف للحصول على طول سلسلة، مثل التوابع strlen.
كنا نتحدث عن شيء آخر، وتحدثنا عن ذلك
لكثير في وقت سابق اليوم في القسم: حلقات.
>> ماذا يا رفاق التفكير باستخدام حلقة في هذا البرنامج؟
جاريد، ما رأيك؟
ونحن نستخدم حلقة في هذا البرنامج؟
>> ربما لا، لا، لأنك لم يكن لديك للذهاب من خلال ذلك أكثر من مرة.
حسنا، لم يكن لديك للذهاب من خلال ما أكثر من مرة؟
>> السلسلة بأكملها.
الحق، لذلك لم يكن لديك للذهاب من خلال السلسلة بأكملها مرة واحدة.
آسف أن قدمت على الاطلاق لا معنى له!
لم يكن لديك للذهاب من خلال السلسلة بأكملها أكثر من مرة.
حسنا.
ما رأيك؟
>> أعتقد أنه من الأفضل لاستخدامها
لذلك يمكننا أن نفعل مثل الاستفادة بينما
موقع من عدد [غير مسموع].
كبيرة، والاستفادة ماذا في ذلك؟
حسنا، لذلك نحن نقول أن
يجب أن نستخدم حلقة لأننا نريد أن
الاستفادة رسالة في حين انها ليست عدد.
لذلك - عذرا، هل تريد أن تضيف؟
>> كنت أريد أن أقول إن الطريقة التي تعامل السلسلة
و[غير مسموع] فصل [غير مسموع] على الحروف؟
نعم.
وبعد ذلك >> يمكننا تعيين أرقام ل-
أو استنادا إلى موقع للحروف في السلسلة؟
نعم.
وتحديد ما إذا كانت >> انها غريبة أو حتى وللاستفادة الرسالة نفسها
في حين أن موقع إلكتروني هو (غير مسموع) - عذرا.
كبيرة.
>> حتى مجرد خلاصة.
يمكنك يذكرني اسمك مرة أخرى - وأنا آسف.
شارلوت >>.
شارلوت، حسنا.
فما تقول شارلوت،
الذي هو حق تماما - يا إلهي، هذا يحب لصناعة السيارات على مسافة بادئة لي -
هو أنه إذا نظرنا إلى سلسلة
مثل هذا واحد في الجزء العلوي -
"شكرا للإضافة" -
كما تتابع من الأحرف
حيث هو في موقف 0،
ح هو في الموضع 1.
A هو في 2، ثم حصلت لدينا 3 و 4 و 5؛
الفضاء هو في الموضع 6.
في حين - ما هو موقف و؟
7!
O؟ 8.
R؟ 9.
ثم لدينا 10، ومن ثم لا أستطيع أن أكتب حقا دون ذلك
الحصول على الفوضى كيندا على الشاشة.
ولكن هذا هو في الواقع كيف يمكننا الحديث عن السلاسل في الذاكرة.
هو سلسلة
هو سلسلة من الأحرف،
وعندما نشير إلى الطابع الفردي في سلسلة،
ونحن نفعل ذلك في كثير من الأحيان من خلال الإشارة إلى أن موقف الحرف
ضمن السلسلة،
ربما بنفس الطريقة التي نتحدث عن سبتمبر
كونها الشهر التاسع من السنة
أو الاثنين يجري في اليوم الأول من الأسبوع.
ولذلك فإن هذا يوفر لنا وسيلة ل
معرفة تلك التي هي غريبة مقابل حتى
لأن يمكنك ان ترى هنا،
إذا كان لنا أن يطابق هذا الامر مع هذا T،
يمكنك أن ترى أن كل من هم رأس المال
هي في المناصب حتى،
على الأقل في أول كلمة،
وألقيت ثم الحصول على الأشياء من مرة واحدة ونحن ضرب هذه المساحة،
لأننا لا نعول هذا الفضاء، ورسالة،
لذلك كما لو بدأنا
وذهب 0، 1، 2، 3، 4، 5،
الفضاء، 6، 7، 8، الفضاء،
9 ثم 10، 11، 12، وهلم جرا.
>> باردة، ولذا فإننا سوف بالتأكيد نريد لاستخدام نوع من حلقة
للذهاب على كل من الأحرف في المقابل.
حتى في هذه المرحلة،
سوف نعود إلى شبة الكود لدينا القديمة هنا.
وكجزء من هذا تحديد أي منها
هي الكبيرة وتلك التي هي صغيرة،
سوف نريد أن نفعل هذا في نوع من الحلقة.
حلقة والقولون.
أي نوع من حلقة، من أنواع الحلقات التي لدينا،
ويبدو أن فكرة جيدة لاستخدامها في هذه الحالة؟
كنت أفكر >> للحصول على الحلقة.
ولماذا كنت تفكر في حلقة ل؟
لأن >> يبدأ من الصفر، ومن ثم
عندما نصل إلى طول السلسلة،
ثم كل التكرار يمكنك [غير مسموع]، أيضا؟
نعم، بالضبط.
لذلك، للخروج من الخيارات المختلفة من الحلقات،
لدينا حلقات، في حين الحلقات، وحين تفعل الحلقات.
حيث لحلقة مفيدة بشكل خاص
عندما كنت تريد أن تعرف
نوع من حيث كنت في في حلقة،
كم مرة تم تنفيذ حلقة حتى الآن.
وهو بالضبط ما نريد أن نعرف في هذه الحالة،
وقال كيلي مثل،
يعتمد الخروج من تعليق شارلوت في وقت سابق ان نريد أن نعرف موقف
للحرف داخل السلسلة،
وسوف تعطينا حلقة لمجرد أن،
لأنه إذا بدأنا نوع من نظرنا إلى الوراء في سلسلة لدينا،
إذا بدأنا حلقة لدينا في 0،
ونذهب من خلال طول السلسلة بأكملها،
ثم يمكننا ربط الحرف T
مع 0 في حلقة لدينا،
H الرسالة مع 1 في حلقة لدينا، وهلم جرا،
السير في هذا الطريق حتى نهاية السلسلة.
>> لذلك دعونا بداية الترميز هذا قليلا فقط
لذلك يا رفاق فقط التعود على هذا ما يبدو.
أنا ذاهب لحفظ هذا،
لذلك نحن لدينا قد حصلت على رمز الزائفة هنا،
وانا ذاهب الى حذف كل شيء.
لذلك لدي لائحة بيضاء.
أنا ستعمل بدء بكتابة الباحث الرئيسي (الفراغ)
{
أنا ستعمل وضع ال 0 عودة في
وبعد ذلك.}
لذلك عندما أبدأ عادة إلى برنامج، وهذا هو ما تبدأ.
أنا حفظها بحيث يكون ذلك يا رفاق.
لذلك كان واحدا من أول الأشياء تحدثنا عن
الحصول على مدخلات من المستخدم
وتخزينها في سلسلة.
كيف يمكننا الحصول على المدخلات من مستخدم؟
GetString >>.
GetString، كل الحق.
إذا كان الأمر كذلك النوع الأول GetString ()
وفاصلة منقوطة.
دعونا نحاول تشغيل هذا؛ سيتم تشغيل هذا، أولا وقبل كل شيء؟
وسوف تعمل هذه لماذا لا؟
لديك ل>> بتعريف المتغير.
ولا بد لي من تعريف متغير. حسنا.
>> فكيف أفعل ذلك؟
هل تمانع كتابة شيء، وتقاسم ذلك؟
وبعد ذلك يمكننا سحب عنه.
دعونا نرى، دان، أليس كذلك، حسنا.
أو دانيال. نسخ هذا في، إدخال سلسلة = GetString ().
رهيبة.
سيتم تشغيل هذا؟
دعونا نحاول ذلك.
ضرب المدى، تحميل شفرة المصدر، وبناء، حدث خطأ.
حسنا.
ماذا يكون ذلك يجري هنا؟
استخدام 'سلسلة' معرف غير معروفة.
لدينا >> لتشمل المكتبات؟
نعم، لذلك دان قائلا لدينا لتشمل المكتبات.
هو أن ما كنت سأقوله، ستيلا؟ رهيبة.
هذا رائع، لذلك ستيلا، يمكن لك
نسخ هذا الرمز إلى الفضاء دانيال؟
إذا نقرت على دانيال رولاند كي، نسخه،
وعندئذ يمكنك وضع خط تدرج في، ثم قم بحفظ بها؟
اسمحوا لي أن أعرف عندما تكون مستعدا.
لذلك هذا هو أيضا بناء الجملة تشمل نوع من غير تقليدي؛
هناك مثل هذه العلامة التجزئة،
وهناك التضمين، وبعد ذلك هناك هذه أقواس زاوية.
هل تذكرين كيف يعمل هذا، أو ينبغي أن طرحها على هذا الرمز هنا أليس كذلك؟
أنا >> جيدة.
حسنا.
I >> طبعت ذلك - لم أكن متأكدا من مكتبة، وإن كان.
أوه، حسنا - نعم، لذلك فمن مكتبة CS50.
أوه >>، أنا وضعت مكتبة stdio و.
>> أوه، حصلت عليه - نعم، لا، that's -
لذلك تبين أن سلسلة هو في الواقع ما هو خاص لCS50.
هناك في الواقع ليست نوع سلسلة صحيح
لأن الحق هنا، هو سلسلة في نوع الوظيفة، -
نحن اعلان مدخلات متغير يسمى من نوع السلسلة -
ونحن نضع داخل المدخلات
القيمة التي يحصل عاد لنا: إخراج هذا استدعاء دالة GetString.
يمكن أن أقول لكم هذا هو استدعاء دالة لانها حصلت على الأقواس، تماما مثل printf لا،
فقط مثل التوابع strlen لا.
ولكن هو في الواقع سلسلة لا نوع الحقيقي
في اللغة C.
لقد قمنا قبل أن تتحول إلى النوع، ونحن سوف تتخذ المزيد عن ما هو عليه في الواقع
في C، وذلك لأن هناك طريقة للعمل مع السلاسل؛
لقد فعلنا شيئا لجعلها تبدو أجمل قليلا.
>> حتى هنا نذهب.
وهنا رمز لستيلا.
انها حصلت على تضمين # .
أشخاص آخرين سيدعو هذا مثل تجزئة أو في بعض الأحيان تشمل تشمل حادة.
الآن يمكننا أن نبدأ به، تشغيله،
ونحن لا يزال الحصول على خطأ.
دعونا نرى ما يحدث.
"متغير غير المستخدمة" المدخلات ".
حسنا، حتى تبرد، وهذا بارد.
أعني، انها ليست حقا بارد،
لأننا نحصل على خطأ وانها تعمل لا،
ولكن ما هو هذا القول هو أن
ونحن لم تستخدم متغير لدينا، الأمر الذي يجعل الشعور.
أننا لم نحاول أن تفعل أي شيء معه.
هذه هي الطريقة التي
رنة يحاول مساعدتنا تأكد من أننا لسنا فقط باستخدام المتغيرات
ومن ثم يدعو لهم دون قصد شيئا آخر في وقت لاحق في الكود،
مساعدتنا تجنب الأخطاء على هذا النحو.
>> كل الحق، لذلك لدينا مدخلات من المستخدم،
نحن تخزينها في متغير.
وكانت الخطوة التالية لثم
تبدأ في النظر في كافة الأحرف في السلسلة
وتحديد أي منها أن تكون كبيرة
وتلك التي هي أن تكون صغيرة.
وجلبت مثل كيلي وحتى شارلوت،
نحن القيام بذلك باستخدام حلقة for.
لذلك لا أحد يتذكر بناء جملة حلقة For
وأود أن أغتنم طعنة في كتابة فقط
السطر الأول من لحلقة، لمجرد بت؟
كيلي، كنت أريد أن محاولة إعطائها؟
نعم >>، بحيث يكون لديك لتهيئة الأولى،
لذلك أنا أضع = 0،
وفعلت ثم أنني <التوابع strlen ().
هل هو في المساحة الخاصة بك - لا استطيع سحب عنه؟
نعم >>، I مشدود قليلا قليلا، ولكن نعم.
>> حسنا، دعونا سحب عنه.
رهيبة.
ولكن بعد ذلك >> لم أكن أعرف إذا كان لديك ذلك -
نعم، حسنا.
حتى هنا ما حصلت كيلي: دعونا ننظر في الأمر بسرعة.
حتى انها شملت أنها مكتبة CS50 في الأعلى.
هو مدرج مكتبة IO أنها في أعلى مستوى،
وIO معيار وظائف مثل printf،
حتى إذا كنت تريد من أي وقت مضى لاستخدام printf، تحتاج هذا الخط.
وشملت بعد ذلك انها سلسلة مكتبة،
والتي سوف نحتاج إليه،
لأن لديه مكتبة سلسلة التوابع strlen وظيفة،
التي سوف نحصل عليها في بت واحد فقط.
إذا كان الأمر كذلك ننظر إلى ما فعله كيلي هنا،
يمكنك المشي لنا من خلال ما فعلت؟
نعم >>، لذلك - أعني، حصلت أخطاء، لذلك -
نعم، لا، it's -
لذا >> أردت أن الكلمة السلسلة التي وصلت للتو "السلسلة".
أردت لطباعة السلسلة
وبعد ذلك -
أردت أن مثل تعيين سلسلة كما مثل مجموعة من كل حرف
يجري مختلفة (غير مسموع)، أليس كذلك؟
وثم أردت أن تبدأ في الموضع 0
وبعد ذلك كل المساحات 2،
كنت ذاهبا للاستفادة،
حتى وصفت بأنها مجرد 23، لأنني كنت أبحث في الجدول ASCII.
وهذا ما كنت أفكر - وأنا أعلم أنه ليس صحيحا.
>> حصلت عليه، لذلك هذا هو بداية رائعة.
اعتقد ان الكثير من الإطار هو في مكان هنا.
دعنا نذهب من خلال نوع من سطرا سطرا ونرى ما يحدث.
وبالتالي فإن الطريقة التي أحب القيام بذلك هو البدء فقط عن طريق ترجمة التعليمات البرمجية
والسماح للمترجم قل لي مثل ما هو الخطأ في قانون بلدي،
لأن المترجم هو جيد حقا أقول لك في ما هو الخطأ في التعليمات البرمجية.
إذا كان الأمر كذلك لعبنا عليه، وبناء، وأنه لا بناء لا.
تقول كان هناك خطأ،
إذا كان الأمر كذلك فإننا بالتمرير لأسفل وانظر إلى الخطأ الأول،
قال ذلك -
نحن تمرير ما يصل الى القمة،
يمكننا أن نرى هناك 5 الأخطاء الناتجة إلى هنا في الأسفل.
عفوا، لخفض حقا أن الخروج.
انا اعتقد ان هذا فقط لن تحصل على أي أفضل.
>> هنا نذهب.
لذلك هناك 5 أخطاء مجموع إنشاؤها.
هنا لا يسعني الا ان انظر 2 الأولى،
حتى أتمكن من نقل هذا قليلا قليلا ثم تصل نوع التمرير.
هذا هو الأمر الذي تم تشغيل ترجمة التعليمات البرمجية،
وكان الخطأ الأول ثم في file.c هنا:
"من المتوقع تحديد أو '('"، وكان على هذا الخط
حيث قلنا سلسلة = GetString ().
يمكنك ان ترى هنا أنه كان على خط 8 من file.c،
ومن ثم أعتقد أن هذا هو الطابع 12 - هذا هو الخطأ.
ذلك ما يحدث خطأ في السطر 8 - كيلي؟
أنت تحتاج فقط >> أن نسميها، مثل رسالة أو شيء ما،
مثل سلسلة ثانية أو شيء؟
نعم، لذلك تبين أن هذه الأسماء نوع خاص،
لذلك، وكثافة العمليات السلسلة، شار، وباختصار،
انهم جميع الكلمات الرئيسية الخاصة،
ولا يمكنك استخدام في الواقع منهم كأسماء للمتغيرات الخاصة بك،
لأن المترجم يبدو في ذلك ويقول:
"أوه، أنا أعرف أن هذا نوع،"
لذلك لا يمكن أن يكون في الواقع متغير سلسلة تسمى سلسلة،
مثل أنا أحاول القيام به هنا، وهذا لن ينجح.
ولكن بدلا من ذلك، يمكن أن نسميها شيء من هذا القبيل ليالي أو شارع أو شارع.
نحن لا يمكن أن يطلق عليه أيضا الباحث.
يمكن يكن لدينا سلسلة دعا الباحث.
يمكن يكن لدينا سلسلة تسمى شار؛ أيا من تلك ستعمل.
>> لذلك سنقوم مجرد دعوة ليالي في الوقت الحالي.
رهيبة.
فما المقبل يجري في هذا الخط؟
سلسلة - هذا الخط تبدو جيدة؟
دعونا المحاولة مرة أخرى، دعونا تشغيله.
حسنا، لذلك نحن لا يزال الحصول على أخطاء.
هذه المرة، نحن أسفل إلى 4 أخطاء.
حتى وصلنا واحد منهم.
دعونا نقل ما يصل.
"غير متوقع اسم نوع 'سلسلة': التعبير المتوقعة،" نعم؟
>> نعم، هذا لأنني حاولت أن اسم السلسلة.
نعم، لذلك يبدو أننا الآن أيضا للذهاب الإصلاح
كل هذه الإشارات إلى سلسلة.
يمكنك ان ترى ان هناك اشارة الى سلسلة هنا، واحد هنا، واحد هنا،
حتى نتمكن من نقل كافة هذه ليالي.
كبيرة. حسنا، تشغيله مرة أخرى.
بناء - حدث خطأ آخر.
>> حسنا، الآن نحن وصولا الى خطأ واحد،
حتى كثافة العمليات ط = ق ثم الأقواس المربعة.
يمكن لك أن تخبرنا بذلك قليلا عن ما كنت تفعل هنا، كيلي؟
نعم >>.
كان على الخط 10.
>> أنا لا أعرف ما إذا كنا بحاجة أنه كل شيء،
ولكن أعتقد كنت أحاول أن -
أنا حفظه حتى تتمكن من متابعة على طول.
>> أعتقد أنني كنت
يحاول أن يقول أن يبدأ العمل 0 موقف
في بداية بلدي لحلقة،
لذلك أعتقد أنه ربما كان يقول لا لزوم لها.
حتى لمجرد باختصار،
وأنت تقول أن هذا - كنت تحاول أن تبدأ في هذا الموضع 0
والحصول على هذا - نعم،
لذلك اعتقد في وقت سابق، أيضا، عندما كنت المشي من خلال الرمز،
كنت أتحدث عن كيفية كنت تريد لعلاج سلسلة كصفيف
حتى نتمكن من الوصول إلى كل حرف على حدة.
أعتقد صفائف دان المذكورة، أيضا، في محاولة لتحويل السلاسل إلى صفائف.
>> اتضح هذا النوع من تحت غطاء محرك السيارة،
يتم تخزين في الواقع سلسلة كصفيف بالفعل،
ويمكنك الوصول إليه مثل مجموعة؛
ليس هناك التحويل التي عليك القيام به.
أليس سلسلة A - حتى -
سلسلة ليست في الحقيقة مجموعة،
ولكن يمكنك الوصول إليه على هذا النحو، لأنه يتم تخزين كافة الأحرف
بجوار بعضها البعض في ذاكرة واحدة،
حتى إذا كنت ترغب في الحصول على الحرف الأول من السلسلة،
انها نفس الحصول على عدد صحيح الأول في صفيف صحيحا.
لذلك نحن في كثير من الأحيان - we'll
الرجوع إلى 2 هل أعجبتك
أوه، باعتباره سلسلة، باعتبارها مجموعة،
على الرغم من أنها حقا - they're أشياء مختلفة جدا،
ولكن يمكنك التعامل معها كثيرا هي نفسها.
لذلك تبين أن هذا الخط في الواقع -
نحن لسنا بحاجة للقيام بأي تحويل،
في واقع الأمر،
هذا هو في الواقع ليس تعبيرا صحيحا،
وهو ما لدينا مترجم يقول لنا.
انها قائلا: "مهلا، انها تتوقع تعبير،
وما أنا عندي هنا هو الشيء الذي ليس تعبير. "
أن تعلن مجموعة،
كل ما عليك القيام به هو شيء من هذا القبيل مع فاصلة منقوطة،
ثم نقول للمجموعة المدة التي تريد أن تكون،
مثل 5، وحتى هذا السطر 10
وسوف تعلن مجموعة تسمى ط ب 5 أعداد صحيحة في ذلك.
>> هذا هو جانبا، وهذا ليس من الضروري لرمز،
ولكن هذا هو - وهذا هو نوع من الإعلان ما يبدو.
>> كيف لا تستخدم حرف ط [التوابع strlen (ق)]؟
أنا شار [التوابع strlen (ق)]؟
ط شار >>، ومن ثم داخل الأقواس، التوابع strlen (ق).
نعم، يمكن ذلك نحن -
يمكن أن نفعل ذلك،
وهذا من شأنه أن تعلن - ما يمكن أن تفعل هذا؟
>> اعتقد انه سيعلن مجموعة
من مثل - من -
أوه، لا تحتاج ط - أوه،
نعم، أنت بالتأكيد لا تحتاج إلى ط.
تقوم بتعريف مجموعة من الشخصيات
من ليالي طول.
وذلك ما نقوله هو أن سام
هذا الخط 10 - اسمحوا لي بعض المساحة في وضع بينه وبين بقية حتى نتمكن من عزلها -
هذا من شأنه أن تعلن السطر 10 مجموعة
من حرف، التوابع strlen (ق) بقيمة منهم،
لكننا في الواقع لا تحتاج إلى ط،
والسبب في أننا في حاجة إلى ط لأننا بحاجة لإعطاء اسم مجموعة؛
خلاف ذلك، فإننا لا نملك وسيلة للإشارة إلى مجموعة لاحقا في التعليمات البرمجية.
>> لذلك هذا الحق هنا هو اسم مجموعة
وداخل هو طول.
هذا سيتيح لنا صفيف،
ولكن هذا هو - مرة أخرى، وهذا هو الإعلان.
انها ليست مهمة، بل ليست التهيئة.
إذا نعلن هذه المجموعة من هذا القبيل،
هناك في الواقع أي شيء في محتويات الصفيف.
انها مجرد خردة - كل ما هو في هناك.
ومثل قلنا،
ونحن في الواقع لا تحتاج حتى للقيام بذلك التحويل،
لأنه يمكن بالفعل نتعامل مع سلسلة ليالي كصفيف.
وأنا أعلم أننا تقوم بتشغيل طويلة بعض الشيء في الوقت المناسب،
ولكن فقط أريد أن بسرعة حقا الحصول على هذه لحلقة
وتظهر لك كيفية الوصول إلى الأحرف الفردية في الصفيف،
لأن هذا هو المفتاح لدينا الاحالة.
ومن ثم سنقوم السماح لك بالرحيل من هناك.
>> حتى هنا، لدينا حلقة For
التي تبدو جيدة تقريبا.
ما هو ليس تماما تقريبا هناك؟
What's - ما ليس صحيحا تماما عن هذا لحلقة؟
لا >> الأقواس المتعرجة؟
لا الأقواس المتعرجة، لأحد.
أريد أن تأكد من أن لدينا هيئة للحلقة مع الأقواس المتعرجة.
عفوا، لا قوس مربع!
وما هو الشيء التالي الذي يتعين علينا القيام به مع هذه الحلقة؟
إذا حاولت وتشغيله،
ما هذا الخطأ أن أحصل عليها؟
أحصل على كل هذه الأخطاء - لا بد لي من تهيئة ط.
كبيرة.
لذلك سوف تكون هذه حلقة - وهذا هو ليس تماما،
لكنه الاقتراب حقا.
هذا الرمز نستطيع تشغيل الآن،
بناء، حدث خطأ ما زال يحدث.
لماذا هو لا يزال يشكو،
قائلا ان التعبير غير مستخدم،
وذلك لأن هذا الخط لا تفعل أي شيء.
لم نكن في أي مكان تخزين، ونحن لم حفظ النتيجة.
أين علينا أن نكون إنقاذ هذه النتيجة؟
ق >> أم أنا؟
بالضبط، وهذا بناء جملة غير تقليدي،
هذه الصورة مع المعقوفتين
يعني الوصول إلى حرف ال I-من ليالي.
وهذا سوف يكون شيء مهم حقا لهذه المهمة.
للأسف، نحن ستكون لدينا لوقف هنا،
بحيث يمكن سيباستيان تأتي في القسم،
ولكن أنا سعيد للبقاء خارج بعد، وسوف تتخذ أي سؤال.
لذا شكرا يا رفاق على حضوركم.
يجب الآن تحميل هذا، وبناء، تشغيل.
يمكننا إدخال سلسلة مثل "مرحبا"
ويطبع "QOX".
[ضحك]
>> حتى لا نصل، ولكن الانتقال، والحصول على تلك الحلقات نحو!
سوف أشكركم على الحضور، وأكون خارج.