1 00:00:00,000 --> 00:00:04,664 2 00:00:04,664 --> 00:00:05,580 DOUG لويد: حسنا. 3 00:00:05,580 --> 00:00:08,877 حتى الآن دعونا التصدي ل موضوع كبير حقا، وظائف. 4 00:00:08,877 --> 00:00:11,460 حتى الآن في الدورة، كل البرامج التي كنا الكتابة 5 00:00:11,460 --> 00:00:12,969 قد كتب داخل الرئيسي. 6 00:00:12,969 --> 00:00:14,260 انهم برامج بسيطة جدا. 7 00:00:14,260 --> 00:00:16,940 أنت لا تحتاج إلى كل هذه الفروع والأمور مستمرة. 8 00:00:16,940 --> 00:00:18,773 نحن يمكن أن يصلح فقط كل شيء داخل منزل و 9 00:00:18,773 --> 00:00:20,407 لا تحصل الساحقة رهيب. 10 00:00:20,407 --> 00:00:22,990 ولكن كما يقول بالطبع على و عندما تبدأ في تطوير البرامج 11 00:00:22,990 --> 00:00:26,260 بشكل مستقل، وانهم على الارجح لتبدأ في الحصول على أكثر بكثير من 10 12 00:00:26,260 --> 00:00:27,200 أو 15 خطوط. 13 00:00:27,200 --> 00:00:31,400 هل يمكن الحصول على مئات أو آلاف أو عشرات الآلاف من الأسطر من التعليمات البرمجية. 14 00:00:31,400 --> 00:00:34,690 وانها حقا ليست هذا الجنون التفكير. 15 00:00:34,690 --> 00:00:39,720 على هذا النحو، هو على الأرجح ليست فكرة جيدة للحفاظ على كل شيء داخل الرئيسي. 16 00:00:39,720 --> 00:00:43,240 فإنه يمكن الحصول على قليلا من الصعب العثور على ما كنت تبحث عنه اذا كنت تفعل ذلك. 17 00:00:43,240 --> 00:00:47,040 >> لحسن الحظ، على الرغم C، والى حد كبير كل لغة برمجة أخرى 18 00:00:47,040 --> 00:00:50,386 قد عمل مع، ويسمح لنا لكتابة المهام. 19 00:00:50,386 --> 00:00:52,260 وأنا ذاهب لمجرد نلقي سريعة جانبا هنا 20 00:00:52,260 --> 00:00:54,971 أن نذكر أن وظائف هي منطقة واحدة لعلوم الكمبيوتر. 21 00:00:54,971 --> 00:00:57,970 وسترى غيرها الكثير منهم في نقاط مختلفة في جميع أنحاء بالطبع 22 00:00:57,970 --> 00:00:59,290 وإذا كنت على تواصل. 23 00:00:59,290 --> 00:01:02,280 حيث هناك الكثير من مرادفات لنفس الكلمة. 24 00:01:02,280 --> 00:01:03,390 لذلك فإننا ندعو الوظائف. 25 00:01:03,390 --> 00:01:05,980 ولكن قد تسمع لهم أيضا يشار إلى إجراءات، 26 00:01:05,980 --> 00:01:09,570 أو الأساليب، بشكل خاص، إذا كنت من أي وقت مضى تفعل أي كائن البرمجة الموجهة 27 00:01:09,570 --> 00:01:11,950 before-- ولا تقلق إذا كان لديك لا، لا 28 00:01:11,950 --> 00:01:14,280 وdeal-- كبيرة ولكن في اللغات التدقيق الموجهة لل 29 00:01:14,280 --> 00:01:16,129 وعادة ما يطلق الأساليب. 30 00:01:16,129 --> 00:01:17,670 أحيانا كنت أسموه الوظائف الفرعية. 31 00:01:17,670 --> 00:01:20,690 لكنها في الحقيقة تشير جميعها لنفس الفكرة الأساسية. 32 00:01:20,690 --> 00:01:22,480 >> دعونا نرى ما هي هذه الفكرة. 33 00:01:22,480 --> 00:01:23,310 ما هي وظيفة؟ 34 00:01:23,310 --> 00:01:26,470 كذلك وظيفة هو حقا لا شيء أكثر من مجرد صندوق أسود. 35 00:01:26,470 --> 00:01:31,430 الصندوق الأسود الذي يحتوي على مجموعة من الصفر أو أكثر المدخلات وانتاج واحد. 36 00:01:31,430 --> 00:01:33,420 هكذا على سبيل المثال، هذا قد تكون وظيفة. 37 00:01:33,420 --> 00:01:35,510 هذه هي وظيفة تسمى ظائفها. 38 00:01:35,510 --> 00:01:39,330 ويستغرق ثلاثة مدخلات أ، ب، ج. 39 00:01:39,330 --> 00:01:42,580 وداخل هذا الصندوق الأسود، ونحن لا أعرف بالضبط ما تقوم به، 40 00:01:42,580 --> 00:01:45,100 ولكن يقوم بمعالجة المدخلات في بعض الطريق، وبعد ذلك 41 00:01:45,100 --> 00:01:48,680 يعطي الناتج واحد، في هذه الحالة، ض. 42 00:01:48,680 --> 00:01:50,504 الآن لجعله قليلا أقل مجردة، ونحن 43 00:01:50,504 --> 00:01:52,420 يمكن القول أنه ربما نحن لها وظيفة تسمى 44 00:01:52,420 --> 00:01:58,750 أضيف أن يأخذ ثلاثة مدخلات أ، ب، و ج وعمليات الانتاج في بعض الطريق 45 00:01:58,750 --> 00:02:01,010 داخل الصندوق الأسود ل إنتاج إخراج واحد. 46 00:02:01,010 --> 00:02:05,190 حتى في هذه الحالة، إذا إضافة يستغرق 3 و 6 و 7. 47 00:02:05,190 --> 00:02:07,020 في مكان ما داخل إضافة وظيفة، فإننا 48 00:02:07,020 --> 00:02:09,750 نتوقع منهم أن تضاف معا لإنتاج الإخراج، الذي 49 00:02:09,750 --> 00:02:13,220 هو 3 زائد 6 زائد 7 أو 16. 50 00:02:13,220 --> 00:02:17,940 >> وبالمثل، لديك وظيفة تسمى المزيد الصورة التي تأخذ اثنين من المدخلات، أ و ب، 51 00:02:17,940 --> 00:02:21,070 العمليات لهم بطريقة أو بأخرى مثل هذه أن الإخراج وظيفة 52 00:02:21,070 --> 00:02:22,920 هو نتاج للمدخلات اثنين. 53 00:02:22,920 --> 00:02:25,080 تضاعفت المدخلات اثنين معا. 54 00:02:25,080 --> 00:02:29,150 4 و 5 يتم تمريرها إلى المزيد الصورة، حدث شيء ما، وإخراج نتوقع 55 00:02:29,150 --> 00:02:31,090 20. 56 00:02:31,090 --> 00:02:32,507 لماذا نحن نسميها الصندوق الأسود؟ 57 00:02:32,507 --> 00:02:34,840 حسنا إذا كنا لا كتابة يعمل أنفسنا، التي 58 00:02:34,840 --> 00:02:36,869 فعلناه لا بأس به حتى cs50 بكثير. 59 00:02:36,869 --> 00:02:39,910 لقد رأينا الطباعة و، على سبيل المثال، والتي هي وظيفة التي لم يكتب لنا 60 00:02:39,910 --> 00:02:42,305 أنفسنا، لكننا لا تستخدم في كل وقت. 61 00:02:42,305 --> 00:02:44,180 إذا كنا لا تكتب وظائف أنفسنا، 62 00:02:44,180 --> 00:02:48,450 نحن لا حقا بحاجة الى معرفة كيف أنها نفذت فعلا تحت غطاء محرك السيارة. 63 00:02:48,450 --> 00:02:51,710 >> هكذا على سبيل المثال الصندوق الأسود للI أظهر فقط لأنك لإكثار، 64 00:02:51,710 --> 00:02:53,740 المزيد الصورة لذلك، يمكن أن يكون ب defined-- وهذا هو مجرد 65 00:02:53,740 --> 00:02:57,902 بعض pseudocode-- يمكن أن يكون تعريف مرات إخراج ب. 66 00:02:57,902 --> 00:02:58,860 هذا معقول، أليس كذلك. 67 00:02:58,860 --> 00:03:01,370 اذا كان لدينا وظيفة تسمى المزيد الصورة التي تأخذ اثنين من المدخلات. 68 00:03:01,370 --> 00:03:04,750 فإننا نتوقع التي من شأنها إخراج تضاعفت تكون المدخلات اثنين معا، 69 00:03:04,750 --> 00:03:06,240 مرات ب. 70 00:03:06,240 --> 00:03:09,170 ولكن ... المزيد الصورة يمكن أن يكون أيضا تنفذ مثل هذا، 71 00:03:09,170 --> 00:03:13,150 لدينا متغير مضادة ل الحصول على مجموعة داخل ... المزيد الصورة إلى 0. 72 00:03:13,150 --> 00:03:18,000 ثم نكرر هذه العملية ب مرات تضيف إلى العداد. 73 00:03:18,000 --> 00:03:24,270 على سبيل المثال، إذا ضربنا 3A من قبل 5B، يمكننا القول تعيين العداد إلى 0، 74 00:03:24,270 --> 00:03:27,700 كرر خمس مرات، إضافة 3 إلى العداد. 75 00:03:27,700 --> 00:03:34,490 حتى نبدأ في 0 ثم نقوم به هذا خمس مرات 3، 6، 9، 12، 15. 76 00:03:34,490 --> 00:03:37,500 انها نفس النتيجة. نحن لا يزال الحصول على 3 مرات 5 فقط 77 00:03:37,500 --> 00:03:39,500 تنفيذ مختلف. 78 00:03:39,500 --> 00:03:41,490 >> هذا ما نعنيه عندما نقول مربع أسود. 79 00:03:41,490 --> 00:03:44,406 بل يعني فقط أننا لا نهتم حقا كيف انها تنفذ تحت غطاء محرك السيارة 80 00:03:44,406 --> 00:03:46,170 طالما أن الإخراج هو ما نتوقعه. 81 00:03:46,170 --> 00:03:49,045 في الواقع، وهذا جزء من العقد استخدام وظائف، وخاصة 82 00:03:49,045 --> 00:03:50,630 وظائف أن الآخرين الكتابة. 83 00:03:50,630 --> 00:03:53,980 سلوك يجري دائما لتكون نموذجية، لا يمكن التنبؤ بها 84 00:03:53,980 --> 00:03:55,420 استنادا إلى اسم الدالة. 85 00:03:55,420 --> 00:03:57,500 وهذا هو السبب في انها حقا المهم عند كتابة وظائف 86 00:03:57,500 --> 00:04:00,020 أو عندما الآخرين إرسال الوظائف التي قد تستخدم، 87 00:04:00,020 --> 00:04:03,590 أن هذه الوظائف لها واضحة، وأسماء واضحة نسبيا، 88 00:04:03,590 --> 00:04:04,990 وموثقة توثيقا جيدا. 89 00:04:04,990 --> 00:04:08,560 وهذا هو الحال بالتأكيد من أجل وظيفة مثل الطباعة و. 90 00:04:08,560 --> 00:04:09,860 >> فلماذا لا نستخدم وظائف؟ 91 00:04:09,860 --> 00:04:14,220 حسنا كما قلت في وقت سابق، إن نكتب كل من نظامنا داخل الأشياء الرئيسية 92 00:04:14,220 --> 00:04:17,120 يمكن الحصول على مرهقة حقا ومعقدا حقا. 93 00:04:17,120 --> 00:04:19,980 وظائف تسمح لنا القدرة لتنظيم الأمور وتفريق 94 00:04:19,980 --> 00:04:24,540 مشكلة معقدة للغاية في الكثير أجزاء فرعية أكثر قابلية للإدارة. 95 00:04:24,540 --> 00:04:28,130 وظائف تسمح لنا أيضا ل تبسيط عملية الترميز. 96 00:04:28,130 --> 00:04:33,080 انها أسهل كثيرا لتصحيح 10 وظيفة خط مقابل خط 100 97 00:04:33,080 --> 00:04:35,890 وظيفة أو وظيفة 1000 خط. 98 00:04:35,890 --> 00:04:38,400 اذا كان لدينا فقط لتصحيح قطع صغيرة في وقت واحد، 99 00:04:38,400 --> 00:04:42,110 أو إرسال قطع صغيرة في ذلك الوقت، يجعل تلك التجربة البرمجة 100 00:04:42,110 --> 00:04:43,070 أفضل بكثير. 101 00:04:43,070 --> 00:04:44,910 ثق بي على أن واحدا. 102 00:04:44,910 --> 00:04:48,400 >> وأخيرا، إذا نكتب وظائف نحن يمكن إعادة استخدام تلك الأجزاء المختلفة. 103 00:04:48,400 --> 00:04:49,880 يمكن إعادة تدويرها وظائف. 104 00:04:49,880 --> 00:04:51,880 أنها يمكن أن تستخدم في برنامج واحد أو آخر. 105 00:04:51,880 --> 00:04:53,713 كنت قد كتبت بالفعل وظيفة، كل ما عليك 106 00:04:53,713 --> 00:04:56,530 عليك القيام به هو معرفة أن برنامج أين تجد تلك الوظيفة. 107 00:04:56,530 --> 00:04:59,680 لقد تم إعادة تدوير واستخدام طباعة و لأكثر من 40 عاما. 108 00:04:59,680 --> 00:05:02,150 ولكنها كانت مكتوبة مرة واحدة فقط. 109 00:05:02,150 --> 00:05:04,270 مفيدة جدا، أليس كذلك. 110 00:05:04,270 --> 00:05:04,830 حسنا. 111 00:05:04,830 --> 00:05:06,040 حتى ظائف كبيرة. 112 00:05:06,040 --> 00:05:06,860 نعلم أن. 113 00:05:06,860 --> 00:05:08,700 الآن دعونا نبدأ الكتابة لهم. 114 00:05:08,700 --> 00:05:10,830 دعونا نبدأ لهم في برامجنا. 115 00:05:10,830 --> 00:05:13,869 من أجل القيام بذلك، أول شيء نقوم به هو بتعريف الدالة. 116 00:05:13,869 --> 00:05:16,160 عندما تقوم بتعريف وظيفة ما تفعلونه الأساس 117 00:05:16,160 --> 00:05:18,900 هو قول المترجم، مهلا، فقط لكي تعرف، 118 00:05:18,900 --> 00:05:20,850 وانا ذاهب الى أن الكتابة وظيفة في وقت لاحق 119 00:05:20,850 --> 00:05:22,987 وهنا ما أريد لها أن تبدو. 120 00:05:22,987 --> 00:05:24,820 والسبب في ذلك هو لأن المجمعين يمكن 121 00:05:24,820 --> 00:05:27,900 القيام ببعض أشياء غريبة إذا يرون مجموعة من الرموز 122 00:05:27,900 --> 00:05:29,560 انهم ليسوا على دراية. 123 00:05:29,560 --> 00:05:33,000 لذلك نحن مجرد إعطاء مترجم ل يرأس، أنا خلق وظيفة 124 00:05:33,000 --> 00:05:35,492 وانها تسير للقيام بذلك. 125 00:05:35,492 --> 00:05:38,450 الإعلانات ظيفة عموما إذا كنت تنظيم التعليمات البرمجية الخاصة بك بطريقة 126 00:05:38,450 --> 00:05:41,872 أن الآخرين سوف تكون قادرة على فهم والاستفادة من، 127 00:05:41,872 --> 00:05:44,330 تريد عموما لوضع كل الإعلانات الدالة 128 00:05:44,330 --> 00:05:48,220 في أعلى جدا من التعليمات البرمجية الخاصة بك، والحق قبل البدء في كتابة الرئيسي حتى. 129 00:05:48,220 --> 00:05:50,770 وملائم، هناك نموذج قياسي جدا 130 00:05:50,770 --> 00:05:53,500 أن كل تعريف الدالة يتبع. 131 00:05:53,500 --> 00:05:56,090 أنهم جميعا الى حد كبير تبدو هذه. 132 00:05:56,090 --> 00:06:01,440 هناك ثلاثة أجزاء إلى وظيفة الإعلان نوع المقابل، الاسم، 133 00:06:01,440 --> 00:06:03,420 وقائمة الوسيطة. 134 00:06:03,420 --> 00:06:07,180 >> الآن نوع الإرجاع هو أي نوع من متغير الإخراج وظيفة الإرادة. 135 00:06:07,180 --> 00:06:10,710 هكذا على سبيل المثال، إذا كنا نعتقد الوراء دقيقة لضرب اثنين 136 00:06:10,710 --> 00:06:15,690 وظيفة الأرقام، ماذا نتوقع إذا ضربنا عددا صحيحا من قبل عدد صحيح 137 00:06:15,690 --> 00:06:18,502 سوف يكون الإخراج ربما كان صحيحا، والحق. 138 00:06:18,502 --> 00:06:20,710 ضرب عددين معا، وتحصل على عدد صحيح. 139 00:06:20,710 --> 00:06:24,167 حتى نوع عودة ذلك أن وظيفة تكون كثافة العمليات. 140 00:06:24,167 --> 00:06:26,000 الاسم هو ما تريد استدعاء الدالة. 141 00:06:26,000 --> 00:06:29,330 وربما هذا هو الأقل أهمية جزء من إعلان وظيفة، 142 00:06:29,330 --> 00:06:30,827 من حيث الأداء الوظيفي. 143 00:06:30,827 --> 00:06:33,160 ولكن هو في الواقع على الارجح واحدة من أهم أجزاء 144 00:06:33,160 --> 00:06:36,243 للإعلان وظيفة من حيث لمعرفة ما وظيفة في الواقع 145 00:06:36,243 --> 00:06:37,120 هل. 146 00:06:37,120 --> 00:06:40,474 إذا قمت بتسمية وظيفة و أو ز أو ح أو سر أو شيء من هذا القبيل، 147 00:06:40,474 --> 00:06:42,765 ربما كنت ذاهب للحصول على تعثرت قليلا عن محاولة 148 00:06:42,765 --> 00:06:44,650 لنتذكر ما تفعله تلك الوظائف. 149 00:06:44,650 --> 00:06:47,880 لذلك فمن المهم أن تعطي طفلك أسماء الدالة ذات مغزى. 150 00:06:47,880 --> 00:06:51,030 >> وأخيرا، القائمة الحجة قائمة مفصولة بفواصل 151 00:06:51,030 --> 00:06:55,260 جميع المدخلات إلى وظيفة الخاص بك، كل منها يحتوي على نوع واسم. 152 00:06:55,260 --> 00:06:57,840 وذلك ليس فقط لديك ل تحديد نوع متغير 153 00:06:57,840 --> 00:07:00,760 الإخراج وظيفة الإرادة، تحتاج أيضا إلى تحديد 154 00:07:00,760 --> 00:07:07,694 ما نوع وأنواع المتغيرات سيتم ظيفة قبول كمدخلات. 155 00:07:07,694 --> 00:07:08,860 لذلك دعونا نفعل مثالا هنا. 156 00:07:08,860 --> 00:07:10,220 دعونا مجرد إلقاء نظرة في واحدة أكثر واقعية. 157 00:07:10,220 --> 00:07:13,130 حتى هنا مثالا من وظيفة إعلان عن وظيفة أن 158 00:07:13,130 --> 00:07:14,925 سيضيف عددين معا. 159 00:07:14,925 --> 00:07:17,800 مجموع عددين هو الذهاب الى ان يكون عدد صحيح كذلك، ونحن فقط 160 00:07:17,800 --> 00:07:18,450 مناقشتها. 161 00:07:18,450 --> 00:07:21,610 وهكذا نوع الإرجاع، هنا باللون الأخضر، سيكون الباحث. 162 00:07:21,610 --> 00:07:25,190 أن يقول لنا فقط أن إضافة اثنين [إينتس] سوف، في نهاية المطاف، 163 00:07:25,190 --> 00:07:28,799 الإخراج، أو يبصقون عليه مرة أخرى من لنا، وهو صحيح. 164 00:07:28,799 --> 00:07:31,590 وبالنظر إلى ما تفعله هذه الوظيفة نحن تريد أن تعطيه اسما ذا معنى. 165 00:07:31,590 --> 00:07:33,630 إضافة إلى اثنين من [إينتس] يبدو الاقتضاء، النظر 166 00:07:33,630 --> 00:07:37,574 نتخذها عددين كمدخلات ونأمل إضافتها معا. 167 00:07:37,574 --> 00:07:40,240 قد يكون قليلا من مرهقة اسم وبصراحة هذه الوظيفة 168 00:07:40,240 --> 00:07:42,430 وربما ليس من الضروري لأن لدينا إضافة 169 00:07:42,430 --> 00:07:46,310 المشغل، إذا كنت تذكر من وجهة نظرنا مناقشة المشغلين، في وقت سابق. 170 00:07:46,310 --> 00:07:49,650 ولكن دعنا نقول فقط من أجل ل الحجة القائلة بأن هذه هي وظيفة مفيدة 171 00:07:49,650 --> 00:07:52,860 ولذا فإننا سوف نسميها إضافة اثنين [إينتس]. 172 00:07:52,860 --> 00:07:55,230 وأخيرا، هذه الدالة تأخذ اثنين من المدخلات. 173 00:07:55,230 --> 00:07:56,960 كل منها عددا صحيحا. 174 00:07:56,960 --> 00:07:59,900 لذلك لدينا هذا فاصلة قائمة مفصولة من المدخلات. 175 00:07:59,900 --> 00:08:02,830 الآن نريد عموما ل إعطاء اسم لكل واحد منهم 176 00:08:02,830 --> 00:08:05,070 بحيث يمكن استخدامها ضمن الدالة. 177 00:08:05,070 --> 00:08:07,180 أسماء ليست مهمة بشكل رهيب. 178 00:08:07,180 --> 00:08:11,400 >> في هذه الحالة، ونحن نفعل ليس بالضرورة لديك أي معنى تعلق عليها. 179 00:08:11,400 --> 00:08:13,140 حتى نتمكن من مجرد دعوة لهم أ و ب. 180 00:08:13,140 --> 00:08:14,257 وهذا جيد تماما. 181 00:08:14,257 --> 00:08:16,090 ولكن، إذا كنت تجد نفسك في حالة 182 00:08:16,090 --> 00:08:19,497 حيث أسماء المتغيرات قد يكون في الواقع مهم، 183 00:08:19,497 --> 00:08:21,830 قد ترغب في الاتصال بهم شيء آخر من أ و ب 184 00:08:21,830 --> 00:08:24,701 لمنحهم شيئا أكثر معنى رمزيا. 185 00:08:24,701 --> 00:08:27,700 ولكن في هذه الحالة، ونحن لا حقا أعرف أي شيء آخر عن وظيفة. 186 00:08:27,700 --> 00:08:29,320 نحن نريد فقط إضافة إلى اثنين من الأعداد الصحيحة. 187 00:08:29,320 --> 00:08:32,429 ولذا فإننا سوف ندعو فقط تلك الأعداد الصحيحة أ و ب. 188 00:08:32,429 --> 00:08:33,990 هذا مثال واحد. 189 00:08:33,990 --> 00:08:36,287 >> لماذا لا تأخذ ثانية لنفكر في هذا واحد، 190 00:08:36,287 --> 00:08:38,870 كيف تكتب وظيفة إعلان عن وظيفة أن 191 00:08:38,870 --> 00:08:42,940 يضاعف اثنين من أرقام النقطة العائمة؟ 192 00:08:42,940 --> 00:08:45,910 هل تذكر ما العائمة رقم النقطة هو؟ 193 00:08:45,910 --> 00:08:48,120 ما من شأنه هذه الوظيفة إعلان تبدو وكأنها؟ 194 00:08:48,120 --> 00:08:53,330 أنا فعلا ننصح إيقاف الفيديو هنا وتأخذ كم من الوقت تحتاج إليها. 195 00:08:53,330 --> 00:08:55,521 التفكير في ما هو هذا أن وظيفة إعلان يكون؟ 196 00:08:55,521 --> 00:08:56,770 ماذا سيكون نوع العودة تكون؟ 197 00:08:56,770 --> 00:08:58,103 ماذا سيكون اسما ذا معنى؟ 198 00:08:58,103 --> 00:08:59,580 ما من شأنه أن تكون المدخلات؟ 199 00:08:59,580 --> 00:09:03,190 لذلك لماذا لا يتم إيقاف الفيديو هنا والكتابة المتابعة إعلان وظيفة 200 00:09:03,190 --> 00:09:07,640 لوظيفة التي من شأنها أن تتضاعف اثنين من أرقام النقطة العائمة معا. 201 00:09:07,640 --> 00:09:09,330 نأمل أن توقف الفيديو مؤقتا. 202 00:09:09,330 --> 00:09:12,950 >> لذلك دعونا نلقي نظرة على مثال إعلان واحد ممكن. 203 00:09:12,950 --> 00:09:17,340 تطفو ... المزيد الصورة اثنين من ريال تطفو خ، ذ تعويم. 204 00:09:17,340 --> 00:09:19,090 نتاج لاثنين أرقام الفاصلة العائمة، 205 00:09:19,090 --> 00:09:21,710 وأذكر هي كيف يمكننا تمثيل الأعداد الحقيقية 206 00:09:21,710 --> 00:09:26,770 أو أرقام بقيم عشرية في ج، سيكون عدد النقطة العائمة. 207 00:09:26,770 --> 00:09:28,570 عند تتضاعف العشرية التي عشري، 208 00:09:28,570 --> 00:09:30,460 ربما كنت ذاهب للحصول على عشري. 209 00:09:30,460 --> 00:09:31,960 كنت تريد أن تعطي اسما ذات الصلة. 210 00:09:31,960 --> 00:09:33,810 ضرب اثنين من معتقليها يبدو على ما يرام. 211 00:09:33,810 --> 00:09:36,620 ولكن هل يمكن استدعاء حقا المزيد الصورة اثنين من العوامات، يطفو أو ... المزيد الصورة. 212 00:09:36,620 --> 00:09:39,540 أي شيء من هذا القبيل، طالما أنه أعطى بعض المعنى الفعلي لما 213 00:09:39,540 --> 00:09:41,469 هذا الصندوق الأسود كان على وشك القيام به. 214 00:09:41,469 --> 00:09:44,260 ومرة أخرى، في هذه الحالة، ونحن لا يبدو أن لديها أي معنى تعلق 215 00:09:44,260 --> 00:09:46,390 إلى أسماء المتغيرات نحن يمر في، 216 00:09:46,390 --> 00:09:48,645 لذلك نحن ندعو لهم فقط x و y. 217 00:09:48,645 --> 00:09:51,020 الآن إذا كنت تسميها شيئا آخر، وهذا جيد تماما. 218 00:09:51,020 --> 00:09:53,310 في الواقع، إذا كنت فعلت هذا الإعلان بدلا من ذلك 219 00:09:53,310 --> 00:09:55,450 باستخدام الزوجي بدلا العوامات، إذا كنتم تذكرون 220 00:09:55,450 --> 00:09:59,100 أن الزوجي هي مختلفة طريقة أكثر دقة ل 221 00:09:59,100 --> 00:10:02,330 تحديد الأعداد الحقيقية أو العائمة المتغيرات نقطة. 222 00:10:02,330 --> 00:10:03,620 هذا شيء طيب تماما أيضا. 223 00:10:03,620 --> 00:10:04,670 أي واحد من هؤلاء سيكون على ما يرام. 224 00:10:04,670 --> 00:10:06,711 في الواقع، هناك العديد من تركيبات مختلفة 225 00:10:06,711 --> 00:10:08,410 من الطرق لإعلان هذه الوظيفة. 226 00:10:08,410 --> 00:10:10,884 ولكن هذه هي اثنين منها جيدة. 227 00:10:10,884 --> 00:10:12,550 لقد أعلن وظيفة، وهذا عظيم. 228 00:10:12,550 --> 00:10:15,700 لقد قال للمترجم ما هو، ما نحن ذاهبون الى أن تفعله. 229 00:10:15,700 --> 00:10:17,630 الآن دعونا فعلا كتابة تلك الوظيفة. 230 00:10:17,630 --> 00:10:20,750 دعونا نعطي تعريفا، بحيث داخل الصندوق الأسود 231 00:10:20,750 --> 00:10:22,840 السلوك يمكن التنبؤ يحدث. 232 00:10:22,840 --> 00:10:26,270 في الواقع، نحن بضرب اثنين حقيقية الأرقام معا، أو أرقام مضيفا 233 00:10:26,270 --> 00:10:29,760 معا، أو القيام بكل ما هو أن طلبنا لدينا وظيفة للقيام به. 234 00:10:29,760 --> 00:10:32,780 >> وذلك في الواقع، دعونا نحاول وتحديد ضرب اثنين من معتقليها التي نحن فقط 235 00:10:32,780 --> 00:10:35,350 تحدثت قبل ثانية واحدة حول. 236 00:10:35,350 --> 00:10:38,560 الآن بداية تعريف وظيفة 237 00:10:38,560 --> 00:10:41,720 تبدو بالضبط تقريبا نفس بمثابة إعلان وظيفة. 238 00:10:41,720 --> 00:10:43,170 لدي كل منهم هنا. 239 00:10:43,170 --> 00:10:47,770 في الجزء العلوي هو إعلان وظيفة، نوع والاسم ومفصولة بفواصل الحجة 240 00:10:47,770 --> 00:10:49,410 القائمة منقوطة. 241 00:10:49,410 --> 00:10:53,800 الفاصلة المنقوطة تشير إلى أن هذا هو تعريف الدالة. 242 00:10:53,800 --> 00:10:57,060 بداية وظيفة تعريف تبدو بالضبط تقريبا 243 00:10:57,060 --> 00:11:03,790 نفس أو النوع أو الاسم، مفصولة بفواصل قائمة حجة، لا منقوطة، 244 00:11:03,790 --> 00:11:05,206 فتح متعرج. 245 00:11:05,206 --> 00:11:07,580 متعرج مفتوحة، تماما كما كنا نفعل مع رئيسي، 246 00:11:07,580 --> 00:11:09,540 يعني أننا الآن بداية لتعريف 247 00:11:09,540 --> 00:11:14,567 ما يحدث داخل مربع أسود قررنا استدعاء المزيد الصورة اثنين ريال. 248 00:11:14,567 --> 00:11:15,900 هنا هو أحد السبل لتنفيذه. 249 00:11:15,900 --> 00:11:20,370 يمكننا القول، يمكننا أن نعلن جديدة متغير من نوع تعويم دعا المنتج 250 00:11:20,370 --> 00:11:24,020 وتعيين هذا المتغير إلى أمثال القيمة X Y. 251 00:11:24,020 --> 00:11:27,306 ثم يعود المنتج. 252 00:11:27,306 --> 00:11:28,430 ماذا تعني العودة هنا. 253 00:11:28,430 --> 00:11:31,090 حسنا عودة هي السبيل تبين لنا ان هذه هي الطريقة 254 00:11:31,090 --> 00:11:33,400 نحن تمرير الناتج العودة. 255 00:11:33,400 --> 00:11:38,160 حتى يعود شيء، هو نفسه، هذا هو الإخراج من الصندوق الأسود. 256 00:11:38,160 --> 00:11:40,732 ولهذا كيف يمكنك أن تفعل ذلك. 257 00:11:40,732 --> 00:11:42,190 وإليك طريقة أخرى لتنفيذ ذلك. 258 00:11:42,190 --> 00:11:45,050 نحن فقط يمكن أن يعود مرة X Y. 259 00:11:45,050 --> 00:11:45,870 x هو عدد عشري. 260 00:11:45,870 --> 00:11:46,660 ذ هو تعويم. 261 00:11:46,660 --> 00:11:48,490 حتى خ ذ مرات أيضا تعويم. 262 00:11:48,490 --> 00:11:50,750 نحن لا تحتاج حتى ل إنشاء متغير آخر. 263 00:11:50,750 --> 00:11:56,750 لذلك هذا هو وسيلة مختلفة ل تنفيذ نفس الصندوق الاسود المحدد. 264 00:11:56,750 --> 00:11:58,570 >> الآن نتوقف لحظة، وقفة الفيديو مرة أخرى، 265 00:11:58,570 --> 00:12:01,680 ومحاولة تحديد إضافة اثنين [إينتس]، وهي وظيفة أخرى أننا 266 00:12:01,680 --> 00:12:03,090 تحدث عن قبل لحظة. 267 00:12:03,090 --> 00:12:06,440 مرة أخرى هنا، لقد وضعت وظيفة الإعلان، وذلك الفاصلة المنقوطة، 268 00:12:06,440 --> 00:12:08,420 ومتعرج مفتوحة ومجعد مغلقة 269 00:12:08,420 --> 00:12:12,080 هدفين للإشارة إلى أين نحن سوف تملأ في محتويات إضافة اثنين [إينتس]، 270 00:12:12,080 --> 00:12:15,530 بحيث نحدد على وجه الخصوص السلوك داخل مربع أسود. 271 00:12:15,530 --> 00:12:16,380 حتى إيقاف الفيديو. 272 00:12:16,380 --> 00:12:18,790 وتأخذ الكثير من الوقت كما تحتاج إلى محاولة وتحديد 273 00:12:18,790 --> 00:12:25,040 تنفيذا لإضافة اثنين [إينتس]، مثل أنه عندما إخراج وظيفة قيمة، 274 00:12:25,040 --> 00:12:29,209 فعلت ذلك، في الواقع، عودة مجموع المدخلات اثنين. 275 00:12:29,209 --> 00:12:32,000 لذلك تماما مثل المثال السابق، هناك عدة طرق مختلفة 276 00:12:32,000 --> 00:12:34,210 هل يمكن أن تنفذ إضافة إلى اثنين من [إينتس]. 277 00:12:34,210 --> 00:12:35,130 هنا واحد. 278 00:12:35,130 --> 00:12:37,172 هنا في البرتقال لدي فقط كان بعض comments-- 279 00:12:37,172 --> 00:12:38,880 واضاف لقد فقط بعض تعليقات تشير إلى 280 00:12:38,880 --> 00:12:41,400 ما يحدث في كل سطر من التعليمات البرمجية. 281 00:12:41,400 --> 00:12:45,430 لذلك أنا بتعريف متغير دعا مبلغ من نوع int. 282 00:12:45,430 --> 00:12:47,279 أقول مبلغ يساوي زائد ب. 283 00:12:47,279 --> 00:12:50,070 هذا هو المكان الذي نقوم به في الواقع عمل إضافة أ و ب معا. 284 00:12:50,070 --> 00:12:51,850 وأعود المبلغ. 285 00:12:51,850 --> 00:12:56,460 وهذا يجعل الشعور ل المبلغ هو متغير من نوع int. 286 00:12:56,460 --> 00:13:00,180 وما هو نوع البيانات التي هذا وظيفة يقول لي انه سيكون لإخراج؟ 287 00:13:00,180 --> 00:13:00,680 الباحث. 288 00:13:00,680 --> 00:13:03,072 لذلك أعود المبلغ الذي هو متغير عدد صحيح. 289 00:13:03,072 --> 00:13:06,030 وأنه من المنطقي إعطاء ما لدينا أعلنت ومحددة لدينا وظيفة 290 00:13:06,030 --> 00:13:07,320 لكى يفعل. 291 00:13:07,320 --> 00:13:09,700 >> الآن يمكنك أيضا تحديد وظيفة بهذه الطريقة، 292 00:13:09,700 --> 00:13:15,260 الباحث مبلغ يساوي زائد b-- تخطي ذلك أولا step-- وبعد ذلك، يعود المبلغ. 293 00:13:15,260 --> 00:13:17,760 الآن هل يمكن أن يكون أيضا تنفيذه بهذه الطريقة، 294 00:13:17,760 --> 00:13:19,180 الذي أنا جدا لا أنصح. 295 00:13:19,180 --> 00:13:22,540 هذا هو نمط سيئة واحدة شيء وتصميم سيء حقا، 296 00:13:22,540 --> 00:13:24,420 ولكنها، في الواقع، والعمل. 297 00:13:24,420 --> 00:13:30,199 إذا كنت تأخذ هذا الرمز، وهو الباحث إضافة السيئة الأفعى نقطة مئوية، واستخدامها. 298 00:13:30,199 --> 00:13:31,990 في الواقع لا تضيف عددين معا. 299 00:13:31,990 --> 00:13:37,632 انها سيئة للغاية تنفيذ هذا سلوك معين. 300 00:13:37,632 --> 00:13:38,340 ولكنه عمل. 301 00:13:38,340 --> 00:13:41,200 انها مجرد هنا لتوضيح درجة أننا لا حقا 302 00:13:41,200 --> 00:13:44,530 يهمني ما يحدث داخل الصندوق الأسود، طالما 303 00:13:44,530 --> 00:13:46,510 كما أنه يحتوي على الإخراج الذي نتوقع. 304 00:13:46,510 --> 00:13:48,870 هذا هو الصندوق الاسود سوء تصميم. 305 00:13:48,870 --> 00:13:53,801 ولكن في نهاية اليوم، فإنه لا الناتج يزال مبلغ زائد ب. 306 00:13:53,801 --> 00:13:54,300 حسنا. 307 00:13:54,300 --> 00:13:56,320 لذلك قمنا أعلنت الوظائف. 308 00:13:56,320 --> 00:13:57,490 ولقد وظيفة محددة. 309 00:13:57,490 --> 00:13:58,540 لذلك هذا امر جيد حقا. 310 00:13:58,540 --> 00:14:03,020 الآن دعونا نبدأ استخدام وظائف بعد أن قمنا المعلنة والتي حددناها. 311 00:14:03,020 --> 00:14:05,960 الدعوة إلى function-- انها فعلا easy-- كبير كل ما عليك القيام به 312 00:14:05,960 --> 00:14:09,070 غير تمريرها الحجج المناسبة، حجج من نوع البيانات 313 00:14:09,070 --> 00:14:11,600 أنها تتوقع، و ثم تعيين العودة 314 00:14:11,600 --> 00:14:15,190 قيمة تلك الوظيفة وthis-- عذر me-- 315 00:14:15,190 --> 00:14:19,390 تعيين القيمة عودة تلك الوظيفة إلى شيء من النوع الصحيح. 316 00:14:19,390 --> 00:14:22,410 >> لذلك دعونا ننظر لها في هذا من الناحية العملية في ملف 317 00:14:22,410 --> 00:14:27,730 دعا الأفعى 1 نقطة ج، التي لدي في بلدي IDE cs50. 318 00:14:27,730 --> 00:14:31,042 حتى هنا هو الأفعى 1 نقطة مئوية. 319 00:14:31,042 --> 00:14:33,500 في بداية ترون لي بلدي يشمل جنيه تشمل، 320 00:14:33,500 --> 00:14:35,460 مستوى IO، وcs50 نقطة ح. 321 00:14:35,460 --> 00:14:37,700 ثم لدي وظيفة الإعلان. 322 00:14:37,700 --> 00:14:39,570 هذا هو المكان الذي أنا يقول المترجم أنا 323 00:14:39,570 --> 00:14:42,850 ستكون كتابة وظيفة تسمى إضافة اثنين [إينتس]. 324 00:14:42,850 --> 00:14:45,780 انه سيكون لإخراج ل نوع عدد صحيح متغير. 325 00:14:45,780 --> 00:14:47,360 هذا ما هو هذا الجزء هنا. 326 00:14:47,360 --> 00:14:51,950 ثم لدي اثنين من المدخلات اليها وب، كل منها هو عدد صحيح. 327 00:14:51,950 --> 00:14:58,250 داخل الرئيسي، أطلب من المستخدم ل إدخال بالقول، أعطني صحيح. 328 00:14:58,250 --> 00:15:01,040 وطلب منهم أن ينسوا الباحث، والتي هي وظيفة هذا 329 00:15:01,040 --> 00:15:03,240 يتم تضمينها في مكتبة cs50. 330 00:15:03,240 --> 00:15:07,660 وأن يحصل المخزنة في س، متغير عدد صحيح. 331 00:15:07,660 --> 00:15:09,886 >> ثم نحن تدفعهم لعدد صحيح آخر. 332 00:15:09,886 --> 00:15:13,070 نحصل على عدد صحيح آخر وتخزينها أنه في ذ. 333 00:15:13,070 --> 00:15:17,990 ومن ثم، وهنا على خط 28، هو أين نحن إجراء مكالمة وظيفتنا. 334 00:15:17,990 --> 00:15:23,770 ما نقوله، متساوين ض كثافة العمليات إضافة 2 [إينتس] س فاصلة ذ. 335 00:15:23,770 --> 00:15:25,980 هل ترى لماذا هذا الأمر يبدو معقولا تماما؟ 336 00:15:25,980 --> 00:15:29,710 x هو متغير نوع عدد صحيح و ذ هو متغير نوع عدد صحيح. 337 00:15:29,710 --> 00:15:31,220 لذلك هذا امر جيد. 338 00:15:31,220 --> 00:15:34,570 هذا معقول مع ما لدينا وظيفة إعلان بشأن خط 17 يبدو. 339 00:15:34,570 --> 00:15:38,300 ومفصولة بفواصل قائمة المدخلات وتتوقع عددين، أ و ب. 340 00:15:38,300 --> 00:15:40,300 في هذه الحالة، يمكن أن نطلق لهم كل ما نريد. 341 00:15:40,300 --> 00:15:42,300 وتتوقع اثنين فقط صحيحة. 342 00:15:42,300 --> 00:15:44,930 و x هو عدد صحيح و y هو عدد صحيح. 343 00:15:44,930 --> 00:15:45,640 يعمل. 344 00:15:45,640 --> 00:15:48,680 >> ونحن نعلم أن وظيفة تسير لإخراج أحد الأعداد الصحيحة أيضا. 345 00:15:48,680 --> 00:15:51,290 وهكذا نحن تخزين الناتج من وظيفة، 346 00:15:51,290 --> 00:15:56,050 إضافة إلى اثنين من [إينتس]، في نوع صحيح المتغير الذي نحن نطلق ض. 347 00:15:56,050 --> 00:16:01,980 ومن ثم يمكننا القول، مجموع أنا في المئة والمئة ط ط هو في المئة. 348 00:16:01,980 --> 00:16:06,210 س، ص و z على التوالي ملء تلك بالمئة ط ل. 349 00:16:06,210 --> 00:16:08,334 ما هو تعريف إضافة إلى اثنين من [إينتس] تبدو وكأنها؟ 350 00:16:08,334 --> 00:16:09,125 انها بسيطة جدا. 351 00:16:09,125 --> 00:16:11,270 انها واحدة من تلك التي كنا فقط رأيت قبل الثانية، 352 00:16:11,270 --> 00:16:14,390 الباحث مبلغ يساوي مبلغ زائد ب العودة. 353 00:16:14,390 --> 00:16:15,420 هل هذا العمل؟ 354 00:16:15,420 --> 00:16:17,270 دعونا حفظ الملف. 355 00:16:17,270 --> 00:16:22,080 ثم إلى هنا في محطة بلدي انا ذاهب الى جعل الأفعى 1، 356 00:16:22,080 --> 00:16:23,000 ويمكنني مسح شاشتي. 357 00:16:23,000 --> 00:16:25,791 انا ذاهب للتكبير لأنني أعرف من الصعب قليلا لنرى. 358 00:16:25,791 --> 00:16:31,520 359 00:16:31,520 --> 00:16:33,770 >> لذلك نحن تجميع هذا البرنامج كما الأفعى 1. 360 00:16:33,770 --> 00:16:37,910 حتى نتمكن من القيام نقطة مائل الأفعى 1. 361 00:16:37,910 --> 00:16:40,060 أعطني عددا صحيحا، 10. 362 00:16:40,060 --> 00:16:42,380 أعطني صحيح آخر، 20. 363 00:16:42,380 --> 00:16:45,200 مجموع 10 و 20 30. 364 00:16:45,200 --> 00:16:47,615 حيث قدمنا ​​استدعاء دالة ناجحة. 365 00:16:47,615 --> 00:16:55,820 يمكنك تشغيل الدالة مرة أخرى، سلبية 10، 17 مجموع سلبي 10 و 17 هو 7. 366 00:16:55,820 --> 00:16:57,120 تعمل هذه الوظيفة. 367 00:16:57,120 --> 00:16:59,240 لديه السلوك أننا نتوقع أن. 368 00:16:59,240 --> 00:17:03,610 وهكذا حققنا ناجحة وظيفة، تعريف، الإعلان، 369 00:17:03,610 --> 00:17:07,288 ودعوة وظيفة ناجحة. 370 00:17:07,288 --> 00:17:09,079 زوجين المتنوعة نقاط عن وظائف 371 00:17:09,079 --> 00:17:10,611 وقبل أن نختم هذا القسم. 372 00:17:10,611 --> 00:17:12,319 أذكر من وجهة نظرنا مناقشة أنواع البيانات، 373 00:17:12,319 --> 00:17:16,109 في وقت سابق، أن وظائف يمكن في بعض الأحيان اتخاذ أي المدخلات. 374 00:17:16,109 --> 00:17:17,930 إذا كان هذا هو الحال، ونحن بتعريف الدالة 375 00:17:17,930 --> 00:17:19,788 كما وجود قائمة حجة باطلة. 376 00:17:19,788 --> 00:17:21,579 هل تتذكر ما معظم ظيفة مشتركة 377 00:17:21,579 --> 00:17:25,036 رأيناه حتى الآن أن يأخذ قائمة حجة باطلة هي؟ 378 00:17:25,036 --> 00:17:27,300 انها الرئيسي. 379 00:17:27,300 --> 00:17:30,850 أذكر أيضا أن وظيفة أحيانا لم يكن لديك فعلا الإخراج. 380 00:17:30,850 --> 00:17:34,210 في هذه الحالة، فإننا نعلن من وظيفة وجود نوع إرجاع الفراغ. 381 00:17:34,210 --> 00:17:37,880 دعونا نختتم هذا القسم من قبل معالجة مشكلة الممارسة. 382 00:17:37,880 --> 00:17:39,900 >> حتى هنا المشكلة التي وضعت. 383 00:17:39,900 --> 00:17:43,630 أنا أريد منك أن إرسال بريد ظيفة دعا مثلث صالح. 384 00:17:43,630 --> 00:17:47,410 ما هذه الوظيفة ينبغي القيام به ويستغرق ثلاثة أرقام حقيقية 385 00:17:47,410 --> 00:17:51,930 التي تمثل أطوال ثلاثة أضلاع مثلث كما معالمها، 386 00:17:51,930 --> 00:17:54,550 أو حججه، أو ما inputs-- مجموعة أخرى من المرادفات 387 00:17:54,550 --> 00:17:57,340 التي قد تواجهها. 388 00:17:57,340 --> 00:18:01,120 هذه الوظيفة ينبغي إما إخراج صحيحة أو خاطئة 389 00:18:01,120 --> 00:18:04,960 اعتمادا على ما إذا كانت تلك الأطوال الثلاثة هي قادرة على جعل مثلث. 390 00:18:04,960 --> 00:18:09,930 هل تذكر نوع البيانات التي نحن تستخدم للإشارة صحيحة أو خاطئة؟ 391 00:18:09,930 --> 00:18:11,436 الآن كيف يمكن تنفيذ ذلك؟ 392 00:18:11,436 --> 00:18:13,810 كذلك نعرف أن هناك زوجين من القواعد المتعلقة مثلثات 393 00:18:13,810 --> 00:18:15,480 التي هي في الواقع من المفيد معرفته. 394 00:18:15,480 --> 00:18:18,292 مثلث يمكن أن يكون فقط الجانبين مع طول إيجابي. 395 00:18:18,292 --> 00:18:19,000 منطقي. 396 00:18:19,000 --> 00:18:21,432 ربما كنت تقول، دوه. 397 00:18:21,432 --> 00:18:23,390 الشيء الآخر أن نلاحظ رغم ذلك، هو أن المبلغ 398 00:18:23,390 --> 00:18:25,484 من أطوال أي اثنين من أضلاع المثلث 399 00:18:25,484 --> 00:18:27,650 يجب أن يكون أكبر من طول الضلع الثالث. 400 00:18:27,650 --> 00:18:28,690 وهذا صحيح في الواقع. 401 00:18:28,690 --> 00:18:34,150 لا يمكن أن يكون مثلث من الجانبين 1، 2 و 4، على سبيل المثال، ل1 زائد 2 402 00:18:34,150 --> 00:18:36,270 ليس أكبر من 4. 403 00:18:36,270 --> 00:18:38,870 حتى تلك هي القواعد التي تحديد ما إذا كان أو لم يكن ثلاثة 404 00:18:38,870 --> 00:18:42,740 يمكن أن تشكل مدخلات تصور مثلث. 405 00:18:42,740 --> 00:18:46,360 حتى تأخذ بضع دقائق وتعلن وثم تعريف 406 00:18:46,360 --> 00:18:49,810 هذه الوظيفة تسمى صالحة مثلث، مثل أنه في الواقع 407 00:18:49,810 --> 00:18:51,650 لديه السلوك المحددة هنا. 408 00:18:51,650 --> 00:18:57,030 >> وسوف الناتج صحيح إذا كانت تلك الأطراف الثلاثة هي قادرة على يتألف من مثلث، 409 00:18:57,030 --> 00:19:01,950 وكاذبة غير ذلك على استعداد لرؤية كيف فعلت؟ 410 00:19:01,950 --> 00:19:04,650 وهنا تطبيق واحد مثلث صالح. 411 00:19:04,650 --> 00:19:05,770 انها ليست واحدة فقط. 412 00:19:05,770 --> 00:19:07,770 لك قد تختلف قليلا. 413 00:19:07,770 --> 00:19:11,040 ولكن هذا واحد لا، في الواقع، لدينا السلوك الذي نتوقعه. 414 00:19:11,040 --> 00:19:14,450 نعلن وظيفتنا في أعلى جدا، منطقي مثلث صحيح 415 00:19:14,450 --> 00:19:16,630 تعويم تعويم خ ذ ض تعويم. 416 00:19:16,630 --> 00:19:18,930 ذلك مرة أخرى، هذه الوظيفة يأخذ ثلاثة أرقام حقيقية 417 00:19:18,930 --> 00:19:22,280 كما حججها، العائمة المتغيرات قيمة النقطة، 418 00:19:22,280 --> 00:19:26,510 وإخراج صحيحة أو خاطئة القيمة، وهي منطقية، أذكر. 419 00:19:26,510 --> 00:19:28,660 ولهذا السبب نوع الإرجاع غير منطقي. 420 00:19:28,660 --> 00:19:30,016 ثم نحدد وظيفة. 421 00:19:30,016 --> 00:19:33,140 أول شيء نقوم به هو التحقق للتأكد من ان كل من الجانبين إيجابية. 422 00:19:33,140 --> 00:19:37,010 إذا كان x أقل من أو يساوي 0، أو إذا ذ يساوي 0، 423 00:19:37,010 --> 00:19:41,050 أو إذا ض أقل من أو يساوي 0، هذا لا يمكن أن يكون مثلث. 424 00:19:41,050 --> 00:19:42,380 لم يكن لديهم الجوانب الإيجابية. 425 00:19:42,380 --> 00:19:45,790 وحتى نتمكن من العودة كاذبة في هذا الوضع. 426 00:19:45,790 --> 00:19:49,010 المقبل، ونحن تحقق للتأكد من أن كل زوج من المدخلات 427 00:19:49,010 --> 00:19:51,830 أكبر من الثلث. 428 00:19:51,830 --> 00:19:54,530 >> لذلك إذا كان x بالإضافة إلى ذ أقل من أو يساوي إلى z، 429 00:19:54,530 --> 00:19:57,060 أو إذا كان x بالإضافة إلى Z أقل من أو يساوي ذ، 430 00:19:57,060 --> 00:20:01,730 أو إذا ذ بالإضافة إلى Z أقل من أو يساوي س، وهذا أيضا لا يمكن أن يكون مثلث صالح. 431 00:20:01,730 --> 00:20:03,800 حتى نعود مرة أخرى كاذبة. 432 00:20:03,800 --> 00:20:06,900 على افتراض تجاوزنا كل من الشيكات رغم ذلك، وبعد ذلك يمكننا العودة صحيح. 433 00:20:06,900 --> 00:20:09,440 لأن تلك الاطراف الثلاثة هي قادرة على returning-- 434 00:20:09,440 --> 00:20:11,647 إنشاء مثلث صالح. 435 00:20:11,647 --> 00:20:12,230 وهذا كل شيء. 436 00:20:12,230 --> 00:20:13,830 لقد أعلن الآن ومحددة. 437 00:20:13,830 --> 00:20:17,330 وكنت قد تكون قادرة على الآن استخدام واستدعاء هذه الدالة. 438 00:20:17,330 --> 00:20:19,470 عمل عظيم. 439 00:20:19,470 --> 00:20:20,650 أنا دوغ ويد. 440 00:20:20,650 --> 00:20:22,820 هذا هو cs50. 441 00:20:22,820 --> 00:20:24,340