DOUG لويد: حسنا.
حتى الآن دعونا التصدي ل موضوع كبير حقا، وظائف.
حتى الآن في الدورة، كل البرامج التي كنا الكتابة
قد كتب داخل الرئيسي.
انهم برامج بسيطة جدا.
أنت لا تحتاج إلى كل هذه الفروع والأمور مستمرة.
نحن يمكن أن يصلح فقط كل شيء داخل منزل و
لا تحصل الساحقة رهيب.
ولكن كما يقول بالطبع على و عندما تبدأ في تطوير البرامج
بشكل مستقل، وانهم على الارجح لتبدأ في الحصول على أكثر بكثير من 10
أو 15 خطوط.
هل يمكن الحصول على مئات أو آلاف أو عشرات الآلاف من الأسطر من التعليمات البرمجية.
وانها حقا ليست هذا الجنون التفكير.
على هذا النحو، هو على الأرجح ليست فكرة جيدة للحفاظ على كل شيء داخل الرئيسي.
فإنه يمكن الحصول على قليلا من الصعب العثور على ما كنت تبحث عنه اذا كنت تفعل ذلك.
>> لحسن الحظ، على الرغم C، والى حد كبير كل لغة برمجة أخرى
قد عمل مع، ويسمح لنا لكتابة المهام.
وأنا ذاهب لمجرد نلقي سريعة جانبا هنا
أن نذكر أن وظائف هي منطقة واحدة لعلوم الكمبيوتر.
وسترى غيرها الكثير منهم في نقاط مختلفة في جميع أنحاء بالطبع
وإذا كنت على تواصل.
حيث هناك الكثير من مرادفات لنفس الكلمة.
لذلك فإننا ندعو الوظائف.
ولكن قد تسمع لهم أيضا يشار إلى إجراءات،
أو الأساليب، بشكل خاص، إذا كنت من أي وقت مضى تفعل أي كائن البرمجة الموجهة
before-- ولا تقلق إذا كان لديك لا، لا
وdeal-- كبيرة ولكن في اللغات التدقيق الموجهة لل
وعادة ما يطلق الأساليب.
أحيانا كنت أسموه الوظائف الفرعية.
لكنها في الحقيقة تشير جميعها لنفس الفكرة الأساسية.
>> دعونا نرى ما هي هذه الفكرة.
ما هي وظيفة؟
كذلك وظيفة هو حقا لا شيء أكثر من مجرد صندوق أسود.
الصندوق الأسود الذي يحتوي على مجموعة من الصفر أو أكثر المدخلات وانتاج واحد.
هكذا على سبيل المثال، هذا قد تكون وظيفة.
هذه هي وظيفة تسمى ظائفها.
ويستغرق ثلاثة مدخلات أ، ب، ج.
وداخل هذا الصندوق الأسود، ونحن لا أعرف بالضبط ما تقوم به،
ولكن يقوم بمعالجة المدخلات في بعض الطريق، وبعد ذلك
يعطي الناتج واحد، في هذه الحالة، ض.
الآن لجعله قليلا أقل مجردة، ونحن
يمكن القول أنه ربما نحن لها وظيفة تسمى
أضيف أن يأخذ ثلاثة مدخلات أ، ب، و ج وعمليات الانتاج في بعض الطريق
داخل الصندوق الأسود ل إنتاج إخراج واحد.
حتى في هذه الحالة، إذا إضافة يستغرق 3 و 6 و 7.
في مكان ما داخل إضافة وظيفة، فإننا
نتوقع منهم أن تضاف معا لإنتاج الإخراج، الذي
هو 3 زائد 6 زائد 7 أو 16.
>> وبالمثل، لديك وظيفة تسمى المزيد الصورة التي تأخذ اثنين من المدخلات، أ و ب،
العمليات لهم بطريقة أو بأخرى مثل هذه أن الإخراج وظيفة
هو نتاج للمدخلات اثنين.
تضاعفت المدخلات اثنين معا.
4 و 5 يتم تمريرها إلى المزيد الصورة، حدث شيء ما، وإخراج نتوقع
20.
لماذا نحن نسميها الصندوق الأسود؟
حسنا إذا كنا لا كتابة يعمل أنفسنا، التي
فعلناه لا بأس به حتى cs50 بكثير.
لقد رأينا الطباعة و، على سبيل المثال، والتي هي وظيفة التي لم يكتب لنا
أنفسنا، لكننا لا تستخدم في كل وقت.
إذا كنا لا تكتب وظائف أنفسنا،
نحن لا حقا بحاجة الى معرفة كيف أنها نفذت فعلا تحت غطاء محرك السيارة.
>> هكذا على سبيل المثال الصندوق الأسود للI أظهر فقط لأنك لإكثار،
المزيد الصورة لذلك، يمكن أن يكون ب defined-- وهذا هو مجرد
بعض pseudocode-- يمكن أن يكون تعريف مرات إخراج ب.
هذا معقول، أليس كذلك.
اذا كان لدينا وظيفة تسمى المزيد الصورة التي تأخذ اثنين من المدخلات.
فإننا نتوقع التي من شأنها إخراج تضاعفت تكون المدخلات اثنين معا،
مرات ب.
ولكن ... المزيد الصورة يمكن أن يكون أيضا تنفذ مثل هذا،
لدينا متغير مضادة ل الحصول على مجموعة داخل ... المزيد الصورة إلى 0.
ثم نكرر هذه العملية ب مرات تضيف إلى العداد.
على سبيل المثال، إذا ضربنا 3A من قبل 5B، يمكننا القول تعيين العداد إلى 0،
كرر خمس مرات، إضافة 3 إلى العداد.
حتى نبدأ في 0 ثم نقوم به هذا خمس مرات 3، 6، 9، 12، 15.
انها نفس النتيجة. نحن لا يزال الحصول على 3 مرات 5 فقط
تنفيذ مختلف.
>> هذا ما نعنيه عندما نقول مربع أسود.
بل يعني فقط أننا لا نهتم حقا كيف انها تنفذ تحت غطاء محرك السيارة
طالما أن الإخراج هو ما نتوقعه.
في الواقع، وهذا جزء من العقد استخدام وظائف، وخاصة
وظائف أن الآخرين الكتابة.
سلوك يجري دائما لتكون نموذجية، لا يمكن التنبؤ بها
استنادا إلى اسم الدالة.
وهذا هو السبب في انها حقا المهم عند كتابة وظائف
أو عندما الآخرين إرسال الوظائف التي قد تستخدم،
أن هذه الوظائف لها واضحة، وأسماء واضحة نسبيا،
وموثقة توثيقا جيدا.
وهذا هو الحال بالتأكيد من أجل وظيفة مثل الطباعة و.
>> فلماذا لا نستخدم وظائف؟
حسنا كما قلت في وقت سابق، إن نكتب كل من نظامنا داخل الأشياء الرئيسية
يمكن الحصول على مرهقة حقا ومعقدا حقا.
وظائف تسمح لنا القدرة لتنظيم الأمور وتفريق
مشكلة معقدة للغاية في الكثير أجزاء فرعية أكثر قابلية للإدارة.
وظائف تسمح لنا أيضا ل تبسيط عملية الترميز.
انها أسهل كثيرا لتصحيح 10 وظيفة خط مقابل خط 100
وظيفة أو وظيفة 1000 خط.
اذا كان لدينا فقط لتصحيح قطع صغيرة في وقت واحد،
أو إرسال قطع صغيرة في ذلك الوقت، يجعل تلك التجربة البرمجة
أفضل بكثير.
ثق بي على أن واحدا.
>> وأخيرا، إذا نكتب وظائف نحن يمكن إعادة استخدام تلك الأجزاء المختلفة.
يمكن إعادة تدويرها وظائف.
أنها يمكن أن تستخدم في برنامج واحد أو آخر.
كنت قد كتبت بالفعل وظيفة، كل ما عليك
عليك القيام به هو معرفة أن برنامج أين تجد تلك الوظيفة.
لقد تم إعادة تدوير واستخدام طباعة و لأكثر من 40 عاما.
ولكنها كانت مكتوبة مرة واحدة فقط.
مفيدة جدا، أليس كذلك.
حسنا.
حتى ظائف كبيرة.
نعلم أن.
الآن دعونا نبدأ الكتابة لهم.
دعونا نبدأ لهم في برامجنا.
من أجل القيام بذلك، أول شيء نقوم به هو بتعريف الدالة.
عندما تقوم بتعريف وظيفة ما تفعلونه الأساس
هو قول المترجم، مهلا، فقط لكي تعرف،
وانا ذاهب الى أن الكتابة وظيفة في وقت لاحق
وهنا ما أريد لها أن تبدو.
والسبب في ذلك هو لأن المجمعين يمكن
القيام ببعض أشياء غريبة إذا يرون مجموعة من الرموز
انهم ليسوا على دراية.
لذلك نحن مجرد إعطاء مترجم ل يرأس، أنا خلق وظيفة
وانها تسير للقيام بذلك.
الإعلانات ظيفة عموما إذا كنت تنظيم التعليمات البرمجية الخاصة بك بطريقة
أن الآخرين سوف تكون قادرة على فهم والاستفادة من،
تريد عموما لوضع كل الإعلانات الدالة
في أعلى جدا من التعليمات البرمجية الخاصة بك، والحق قبل البدء في كتابة الرئيسي حتى.
وملائم، هناك نموذج قياسي جدا
أن كل تعريف الدالة يتبع.
أنهم جميعا الى حد كبير تبدو هذه.
هناك ثلاثة أجزاء إلى وظيفة الإعلان نوع المقابل، الاسم،
وقائمة الوسيطة.
>> الآن نوع الإرجاع هو أي نوع من متغير الإخراج وظيفة الإرادة.
هكذا على سبيل المثال، إذا كنا نعتقد الوراء دقيقة لضرب اثنين
وظيفة الأرقام، ماذا نتوقع إذا ضربنا عددا صحيحا من قبل عدد صحيح
سوف يكون الإخراج ربما كان صحيحا، والحق.
ضرب عددين معا، وتحصل على عدد صحيح.
حتى نوع عودة ذلك أن وظيفة تكون كثافة العمليات.
الاسم هو ما تريد استدعاء الدالة.
وربما هذا هو الأقل أهمية جزء من إعلان وظيفة،
من حيث الأداء الوظيفي.
ولكن هو في الواقع على الارجح واحدة من أهم أجزاء
للإعلان وظيفة من حيث لمعرفة ما وظيفة في الواقع
هل.
إذا قمت بتسمية وظيفة و أو ز أو ح أو سر أو شيء من هذا القبيل،
ربما كنت ذاهب للحصول على تعثرت قليلا عن محاولة
لنتذكر ما تفعله تلك الوظائف.
لذلك فمن المهم أن تعطي طفلك أسماء الدالة ذات مغزى.
>> وأخيرا، القائمة الحجة قائمة مفصولة بفواصل
جميع المدخلات إلى وظيفة الخاص بك، كل منها يحتوي على نوع واسم.
وذلك ليس فقط لديك ل تحديد نوع متغير
الإخراج وظيفة الإرادة، تحتاج أيضا إلى تحديد
ما نوع وأنواع المتغيرات سيتم ظيفة قبول كمدخلات.
لذلك دعونا نفعل مثالا هنا.
دعونا مجرد إلقاء نظرة في واحدة أكثر واقعية.
حتى هنا مثالا من وظيفة إعلان عن وظيفة أن
سيضيف عددين معا.
مجموع عددين هو الذهاب الى ان يكون عدد صحيح كذلك، ونحن فقط
مناقشتها.
وهكذا نوع الإرجاع، هنا باللون الأخضر، سيكون الباحث.
أن يقول لنا فقط أن إضافة اثنين [إينتس] سوف، في نهاية المطاف،
الإخراج، أو يبصقون عليه مرة أخرى من لنا، وهو صحيح.
وبالنظر إلى ما تفعله هذه الوظيفة نحن تريد أن تعطيه اسما ذا معنى.
إضافة إلى اثنين من [إينتس] يبدو الاقتضاء، النظر
نتخذها عددين كمدخلات ونأمل إضافتها معا.
قد يكون قليلا من مرهقة اسم وبصراحة هذه الوظيفة
وربما ليس من الضروري لأن لدينا إضافة
المشغل، إذا كنت تذكر من وجهة نظرنا مناقشة المشغلين، في وقت سابق.
ولكن دعنا نقول فقط من أجل ل الحجة القائلة بأن هذه هي وظيفة مفيدة
ولذا فإننا سوف نسميها إضافة اثنين [إينتس].
وأخيرا، هذه الدالة تأخذ اثنين من المدخلات.
كل منها عددا صحيحا.
لذلك لدينا هذا فاصلة قائمة مفصولة من المدخلات.
الآن نريد عموما ل إعطاء اسم لكل واحد منهم
بحيث يمكن استخدامها ضمن الدالة.
أسماء ليست مهمة بشكل رهيب.
>> في هذه الحالة، ونحن نفعل ليس بالضرورة لديك أي معنى تعلق عليها.
حتى نتمكن من مجرد دعوة لهم أ و ب.
وهذا جيد تماما.
ولكن، إذا كنت تجد نفسك في حالة
حيث أسماء المتغيرات قد يكون في الواقع مهم،
قد ترغب في الاتصال بهم شيء آخر من أ و ب
لمنحهم شيئا أكثر معنى رمزيا.
ولكن في هذه الحالة، ونحن لا حقا أعرف أي شيء آخر عن وظيفة.
نحن نريد فقط إضافة إلى اثنين من الأعداد الصحيحة.
ولذا فإننا سوف ندعو فقط تلك الأعداد الصحيحة أ و ب.
هذا مثال واحد.
>> لماذا لا تأخذ ثانية لنفكر في هذا واحد،
كيف تكتب وظيفة إعلان عن وظيفة أن
يضاعف اثنين من أرقام النقطة العائمة؟
هل تذكر ما العائمة رقم النقطة هو؟
ما من شأنه هذه الوظيفة إعلان تبدو وكأنها؟
أنا فعلا ننصح إيقاف الفيديو هنا وتأخذ كم من الوقت تحتاج إليها.
التفكير في ما هو هذا أن وظيفة إعلان يكون؟
ماذا سيكون نوع العودة تكون؟
ماذا سيكون اسما ذا معنى؟
ما من شأنه أن تكون المدخلات؟
لذلك لماذا لا يتم إيقاف الفيديو هنا والكتابة المتابعة إعلان وظيفة
لوظيفة التي من شأنها أن تتضاعف اثنين من أرقام النقطة العائمة معا.
نأمل أن توقف الفيديو مؤقتا.
>> لذلك دعونا نلقي نظرة على مثال إعلان واحد ممكن.
تطفو ... المزيد الصورة اثنين من ريال تطفو خ، ذ تعويم.
نتاج لاثنين أرقام الفاصلة العائمة،
وأذكر هي كيف يمكننا تمثيل الأعداد الحقيقية
أو أرقام بقيم عشرية في ج، سيكون عدد النقطة العائمة.
عند تتضاعف العشرية التي عشري،
ربما كنت ذاهب للحصول على عشري.
كنت تريد أن تعطي اسما ذات الصلة.
ضرب اثنين من معتقليها يبدو على ما يرام.
ولكن هل يمكن استدعاء حقا المزيد الصورة اثنين من العوامات، يطفو أو ... المزيد الصورة.
أي شيء من هذا القبيل، طالما أنه أعطى بعض المعنى الفعلي لما
هذا الصندوق الأسود كان على وشك القيام به.
ومرة أخرى، في هذه الحالة، ونحن لا يبدو أن لديها أي معنى تعلق
إلى أسماء المتغيرات نحن يمر في،
لذلك نحن ندعو لهم فقط x و y.
الآن إذا كنت تسميها شيئا آخر، وهذا جيد تماما.
في الواقع، إذا كنت فعلت هذا الإعلان بدلا من ذلك
باستخدام الزوجي بدلا العوامات، إذا كنتم تذكرون
أن الزوجي هي مختلفة طريقة أكثر دقة ل
تحديد الأعداد الحقيقية أو العائمة المتغيرات نقطة.
هذا شيء طيب تماما أيضا.
أي واحد من هؤلاء سيكون على ما يرام.
في الواقع، هناك العديد من تركيبات مختلفة
من الطرق لإعلان هذه الوظيفة.
ولكن هذه هي اثنين منها جيدة.
لقد أعلن وظيفة، وهذا عظيم.
لقد قال للمترجم ما هو، ما نحن ذاهبون الى أن تفعله.
الآن دعونا فعلا كتابة تلك الوظيفة.
دعونا نعطي تعريفا، بحيث داخل الصندوق الأسود
السلوك يمكن التنبؤ يحدث.
في الواقع، نحن بضرب اثنين حقيقية الأرقام معا، أو أرقام مضيفا
معا، أو القيام بكل ما هو أن طلبنا لدينا وظيفة للقيام به.
>> وذلك في الواقع، دعونا نحاول وتحديد ضرب اثنين من معتقليها التي نحن فقط
تحدثت قبل ثانية واحدة حول.
الآن بداية تعريف وظيفة
تبدو بالضبط تقريبا نفس بمثابة إعلان وظيفة.
لدي كل منهم هنا.
في الجزء العلوي هو إعلان وظيفة، نوع والاسم ومفصولة بفواصل الحجة
القائمة منقوطة.
الفاصلة المنقوطة تشير إلى أن هذا هو تعريف الدالة.
بداية وظيفة تعريف تبدو بالضبط تقريبا
نفس أو النوع أو الاسم، مفصولة بفواصل قائمة حجة، لا منقوطة،
فتح متعرج.
متعرج مفتوحة، تماما كما كنا نفعل مع رئيسي،
يعني أننا الآن بداية لتعريف
ما يحدث داخل مربع أسود قررنا استدعاء المزيد الصورة اثنين ريال.
هنا هو أحد السبل لتنفيذه.
يمكننا القول، يمكننا أن نعلن جديدة متغير من نوع تعويم دعا المنتج
وتعيين هذا المتغير إلى أمثال القيمة X Y.
ثم يعود المنتج.
ماذا تعني العودة هنا.
حسنا عودة هي السبيل تبين لنا ان هذه هي الطريقة
نحن تمرير الناتج العودة.
حتى يعود شيء، هو نفسه، هذا هو الإخراج من الصندوق الأسود.
ولهذا كيف يمكنك أن تفعل ذلك.
وإليك طريقة أخرى لتنفيذ ذلك.
نحن فقط يمكن أن يعود مرة X Y.
x هو عدد عشري.
ذ هو تعويم.
حتى خ ذ مرات أيضا تعويم.
نحن لا تحتاج حتى ل إنشاء متغير آخر.
لذلك هذا هو وسيلة مختلفة ل تنفيذ نفس الصندوق الاسود المحدد.
>> الآن نتوقف لحظة، وقفة الفيديو مرة أخرى،
ومحاولة تحديد إضافة اثنين [إينتس]، وهي وظيفة أخرى أننا
تحدث عن قبل لحظة.
مرة أخرى هنا، لقد وضعت وظيفة الإعلان، وذلك الفاصلة المنقوطة،
ومتعرج مفتوحة ومجعد مغلقة
هدفين للإشارة إلى أين نحن سوف تملأ في محتويات إضافة اثنين [إينتس]،
بحيث نحدد على وجه الخصوص السلوك داخل مربع أسود.
حتى إيقاف الفيديو.
وتأخذ الكثير من الوقت كما تحتاج إلى محاولة وتحديد
تنفيذا لإضافة اثنين [إينتس]، مثل أنه عندما إخراج وظيفة قيمة،
فعلت ذلك، في الواقع، عودة مجموع المدخلات اثنين.
لذلك تماما مثل المثال السابق، هناك عدة طرق مختلفة
هل يمكن أن تنفذ إضافة إلى اثنين من [إينتس].
هنا واحد.
هنا في البرتقال لدي فقط كان بعض comments--
واضاف لقد فقط بعض تعليقات تشير إلى
ما يحدث في كل سطر من التعليمات البرمجية.
لذلك أنا بتعريف متغير دعا مبلغ من نوع int.
أقول مبلغ يساوي زائد ب.
هذا هو المكان الذي نقوم به في الواقع عمل إضافة أ و ب معا.
وأعود المبلغ.
وهذا يجعل الشعور ل المبلغ هو متغير من نوع int.
وما هو نوع البيانات التي هذا وظيفة يقول لي انه سيكون لإخراج؟
الباحث.
لذلك أعود المبلغ الذي هو متغير عدد صحيح.
وأنه من المنطقي إعطاء ما لدينا أعلنت ومحددة لدينا وظيفة
لكى يفعل.
>> الآن يمكنك أيضا تحديد وظيفة بهذه الطريقة،
الباحث مبلغ يساوي زائد b-- تخطي ذلك أولا step-- وبعد ذلك، يعود المبلغ.
الآن هل يمكن أن يكون أيضا تنفيذه بهذه الطريقة،
الذي أنا جدا لا أنصح.
هذا هو نمط سيئة واحدة شيء وتصميم سيء حقا،
ولكنها، في الواقع، والعمل.
إذا كنت تأخذ هذا الرمز، وهو الباحث إضافة السيئة الأفعى نقطة مئوية، واستخدامها.
في الواقع لا تضيف عددين معا.
انها سيئة للغاية تنفيذ هذا سلوك معين.
ولكنه عمل.
انها مجرد هنا لتوضيح درجة أننا لا حقا
يهمني ما يحدث داخل الصندوق الأسود، طالما
كما أنه يحتوي على الإخراج الذي نتوقع.
هذا هو الصندوق الاسود سوء تصميم.
ولكن في نهاية اليوم، فإنه لا الناتج يزال مبلغ زائد ب.
حسنا.
لذلك قمنا أعلنت الوظائف.
ولقد وظيفة محددة.
لذلك هذا امر جيد حقا.
الآن دعونا نبدأ استخدام وظائف بعد أن قمنا المعلنة والتي حددناها.
الدعوة إلى function-- انها فعلا easy-- كبير كل ما عليك القيام به
غير تمريرها الحجج المناسبة، حجج من نوع البيانات
أنها تتوقع، و ثم تعيين العودة
قيمة تلك الوظيفة وthis-- عذر me--
تعيين القيمة عودة تلك الوظيفة إلى شيء من النوع الصحيح.
>> لذلك دعونا ننظر لها في هذا من الناحية العملية في ملف
دعا الأفعى 1 نقطة ج، التي لدي في بلدي IDE cs50.
حتى هنا هو الأفعى 1 نقطة مئوية.
في بداية ترون لي بلدي يشمل جنيه تشمل،
مستوى IO، وcs50 نقطة ح.
ثم لدي وظيفة الإعلان.
هذا هو المكان الذي أنا يقول المترجم أنا
ستكون كتابة وظيفة تسمى إضافة اثنين [إينتس].
انه سيكون لإخراج ل نوع عدد صحيح متغير.
هذا ما هو هذا الجزء هنا.
ثم لدي اثنين من المدخلات اليها وب، كل منها هو عدد صحيح.
داخل الرئيسي، أطلب من المستخدم ل إدخال بالقول، أعطني صحيح.
وطلب منهم أن ينسوا الباحث، والتي هي وظيفة هذا
يتم تضمينها في مكتبة cs50.
وأن يحصل المخزنة في س، متغير عدد صحيح.
>> ثم نحن تدفعهم لعدد صحيح آخر.
نحصل على عدد صحيح آخر وتخزينها أنه في ذ.
ومن ثم، وهنا على خط 28، هو أين نحن إجراء مكالمة وظيفتنا.
ما نقوله، متساوين ض كثافة العمليات إضافة 2 [إينتس] س فاصلة ذ.
هل ترى لماذا هذا الأمر يبدو معقولا تماما؟
x هو متغير نوع عدد صحيح و ذ هو متغير نوع عدد صحيح.
لذلك هذا امر جيد.
هذا معقول مع ما لدينا وظيفة إعلان بشأن خط 17 يبدو.
ومفصولة بفواصل قائمة المدخلات وتتوقع عددين، أ و ب.
في هذه الحالة، يمكن أن نطلق لهم كل ما نريد.
وتتوقع اثنين فقط صحيحة.
و x هو عدد صحيح و y هو عدد صحيح.
يعمل.
>> ونحن نعلم أن وظيفة تسير لإخراج أحد الأعداد الصحيحة أيضا.
وهكذا نحن تخزين الناتج من وظيفة،
إضافة إلى اثنين من [إينتس]، في نوع صحيح المتغير الذي نحن نطلق ض.
ومن ثم يمكننا القول، مجموع أنا في المئة والمئة ط ط هو في المئة.
س، ص و z على التوالي ملء تلك بالمئة ط ل.
ما هو تعريف إضافة إلى اثنين من [إينتس] تبدو وكأنها؟
انها بسيطة جدا.
انها واحدة من تلك التي كنا فقط رأيت قبل الثانية،
الباحث مبلغ يساوي مبلغ زائد ب العودة.
هل هذا العمل؟
دعونا حفظ الملف.
ثم إلى هنا في محطة بلدي انا ذاهب الى جعل الأفعى 1،
ويمكنني مسح شاشتي.
انا ذاهب للتكبير لأنني أعرف من الصعب قليلا لنرى.
>> لذلك نحن تجميع هذا البرنامج كما الأفعى 1.
حتى نتمكن من القيام نقطة مائل الأفعى 1.
أعطني عددا صحيحا، 10.
أعطني صحيح آخر، 20.
مجموع 10 و 20 30.
حيث قدمنا ​​استدعاء دالة ناجحة.
يمكنك تشغيل الدالة مرة أخرى، سلبية 10، 17 مجموع سلبي 10 و 17 هو 7.
تعمل هذه الوظيفة.
لديه السلوك أننا نتوقع أن.
وهكذا حققنا ناجحة وظيفة، تعريف، الإعلان،
ودعوة وظيفة ناجحة.
زوجين المتنوعة نقاط عن وظائف
وقبل أن نختم هذا القسم.
أذكر من وجهة نظرنا مناقشة أنواع البيانات،
في وقت سابق، أن وظائف يمكن في بعض الأحيان اتخاذ أي المدخلات.
إذا كان هذا هو الحال، ونحن بتعريف الدالة
كما وجود قائمة حجة باطلة.
هل تتذكر ما معظم ظيفة مشتركة
رأيناه حتى الآن أن يأخذ قائمة حجة باطلة هي؟
انها الرئيسي.
أذكر أيضا أن وظيفة أحيانا لم يكن لديك فعلا الإخراج.
في هذه الحالة، فإننا نعلن من وظيفة وجود نوع إرجاع الفراغ.
دعونا نختتم هذا القسم من قبل معالجة مشكلة الممارسة.
>> حتى هنا المشكلة التي وضعت.
أنا أريد منك أن إرسال بريد ظيفة دعا مثلث صالح.
ما هذه الوظيفة ينبغي القيام به ويستغرق ثلاثة أرقام حقيقية
التي تمثل أطوال ثلاثة أضلاع مثلث كما معالمها،
أو حججه، أو ما inputs-- مجموعة أخرى من المرادفات
التي قد تواجهها.
هذه الوظيفة ينبغي إما إخراج صحيحة أو خاطئة
اعتمادا على ما إذا كانت تلك الأطوال الثلاثة هي قادرة على جعل مثلث.
هل تذكر نوع البيانات التي نحن تستخدم للإشارة صحيحة أو خاطئة؟
الآن كيف يمكن تنفيذ ذلك؟
كذلك نعرف أن هناك زوجين من القواعد المتعلقة مثلثات
التي هي في الواقع من المفيد معرفته.
مثلث يمكن أن يكون فقط الجانبين مع طول إيجابي.
منطقي.
ربما كنت تقول، دوه.
الشيء الآخر أن نلاحظ رغم ذلك، هو أن المبلغ
من أطوال أي اثنين من أضلاع المثلث
يجب أن يكون أكبر من طول الضلع الثالث.
وهذا صحيح في الواقع.
لا يمكن أن يكون مثلث من الجانبين 1، 2 و 4، على سبيل المثال، ل1 زائد 2
ليس أكبر من 4.
حتى تلك هي القواعد التي تحديد ما إذا كان أو لم يكن ثلاثة
يمكن أن تشكل مدخلات تصور مثلث.
حتى تأخذ بضع دقائق وتعلن وثم تعريف
هذه الوظيفة تسمى صالحة مثلث، مثل أنه في الواقع
لديه السلوك المحددة هنا.
>> وسوف الناتج صحيح إذا كانت تلك الأطراف الثلاثة هي قادرة على يتألف من مثلث،
وكاذبة غير ذلك على استعداد لرؤية كيف فعلت؟
وهنا تطبيق واحد مثلث صالح.
انها ليست واحدة فقط.
لك قد تختلف قليلا.
ولكن هذا واحد لا، في الواقع، لدينا السلوك الذي نتوقعه.
نعلن وظيفتنا في أعلى جدا، منطقي مثلث صحيح
تعويم تعويم خ ذ ض تعويم.
ذلك مرة أخرى، هذه الوظيفة يأخذ ثلاثة أرقام حقيقية
كما حججها، العائمة المتغيرات قيمة النقطة،
وإخراج صحيحة أو خاطئة القيمة، وهي منطقية، أذكر.
ولهذا السبب نوع الإرجاع غير منطقي.
ثم نحدد وظيفة.
أول شيء نقوم به هو التحقق للتأكد من ان كل من الجانبين إيجابية.
إذا كان x أقل من أو يساوي 0، أو إذا ذ يساوي 0،
أو إذا ض أقل من أو يساوي 0، هذا لا يمكن أن يكون مثلث.
لم يكن لديهم الجوانب الإيجابية.
وحتى نتمكن من العودة كاذبة في هذا الوضع.
المقبل، ونحن تحقق للتأكد من أن كل زوج من المدخلات
أكبر من الثلث.
>> لذلك إذا كان x بالإضافة إلى ذ أقل من أو يساوي إلى z،
أو إذا كان x بالإضافة إلى Z أقل من أو يساوي ذ،
أو إذا ذ بالإضافة إلى Z أقل من أو يساوي س، وهذا أيضا لا يمكن أن يكون مثلث صالح.
حتى نعود مرة أخرى كاذبة.
على افتراض تجاوزنا كل من الشيكات رغم ذلك، وبعد ذلك يمكننا العودة صحيح.
لأن تلك الاطراف الثلاثة هي قادرة على returning--
إنشاء مثلث صالح.
وهذا كل شيء.
لقد أعلن الآن ومحددة.
وكنت قد تكون قادرة على الآن استخدام واستدعاء هذه الدالة.
عمل عظيم.
أنا دوغ ويد.
هذا هو cs50.