1 00:00:00,000 --> 00:00:04,664 2 00:00:04,664 --> 00:00:05,580 DOUG LLOYD: Tất cả các quyền. 3 00:00:05,580 --> 00:00:08,877 Vì vậy, bây giờ chúng ta giải quyết một chủ đề thực sự lớn, chức năng. 4 00:00:08,877 --> 00:00:11,460 Vì vậy, đến nay trong khóa học, tất cả các chương trình mà chúng tôi đã viết 5 00:00:11,460 --> 00:00:12,969 đã được viết bên trong của chính. 6 00:00:12,969 --> 00:00:14,260 Họ đang chương trình khá đơn giản. 7 00:00:14,260 --> 00:00:16,940 Bạn không cần phải có tất cả những ngành, điều đang xảy ra. 8 00:00:16,940 --> 00:00:18,773 Chúng tôi chỉ có thể phù hợp với nó tất cả bên trong của chính nó và 9 00:00:18,773 --> 00:00:20,407 không nhận được kinh khủng quá. 10 00:00:20,407 --> 00:00:22,990 Tuy nhiên, như nhiên đi và khi bạn bắt đầu phát triển các chương trình 11 00:00:22,990 --> 00:00:26,260 độc lập, họ đang có lẽ sẽ để bắt đầu để có được nhiều hơn 10 12 00:00:26,260 --> 00:00:27,200 hoặc 15 dòng. 13 00:00:27,200 --> 00:00:31,400 Bạn có thể nhận được hàng trăm hoặc hàng ngàn hoặc hàng chục ngàn dòng mã. 14 00:00:31,400 --> 00:00:34,690 Và nó thực sự không mà điên một ý nghĩ. 15 00:00:34,690 --> 00:00:39,720 Như vậy, đây có thể không phải là một ý tưởng tốt để giữ cho mọi thứ bên trong của chính. 16 00:00:39,720 --> 00:00:43,240 Nó có thể có được một chút khó khăn để tìm thấy những gì bạn đang tìm kiếm nếu bạn làm điều đó. 17 00:00:43,240 --> 00:00:47,040 >> May mắn thay, mặc dù C, và khá nhiều mọi ngôn ngữ lập trình khác 18 00:00:47,040 --> 00:00:50,386 có thể làm việc với, cho phép chúng ta viết các chức năng. 19 00:00:50,386 --> 00:00:52,260 Và tôi chỉ cần đi tới hãy nhanh chóng sang một bên ở đây 20 00:00:52,260 --> 00:00:54,971 đề cập đến đó là chức năng một lĩnh vực của khoa học máy tính. 21 00:00:54,971 --> 00:00:57,970 Và bạn sẽ thấy nhiều hơn nữa của họ tại điểm khác nhau trong suốt khóa học 22 00:00:57,970 --> 00:00:59,290 và nếu bạn vẫn tiếp tục. 23 00:00:59,290 --> 00:01:02,280 Nơi có rất nhiều từ đồng nghĩa của cùng một từ. 24 00:01:02,280 --> 00:01:03,390 Vì vậy, chúng ta gọi là các chức năng. 25 00:01:03,390 --> 00:01:05,980 Nhưng bạn cũng có thể nghe thấy chúng gọi là thủ tục, 26 00:01:05,980 --> 00:01:09,570 hoặc các phương pháp, đặc biệt, nếu bạn đã từng thực hiện bất kỳ lập trình hướng đối tượng 27 00:01:09,570 --> 00:01:11,950 before-- và không lo lắng nếu bạn có không, không 28 00:01:11,950 --> 00:01:14,280 một deal-- lớn, nhưng trong ngôn ngữ kiểm toán theo định hướng 29 00:01:14,280 --> 00:01:16,129 là thường được gọi là phương pháp. 30 00:01:16,129 --> 00:01:17,670 Đôi khi chúng được gọi là chương trình con. 31 00:01:17,670 --> 00:01:20,690 Nhưng họ thực sự tất cả tham khảo với ý tưởng cơ bản giống nhau. 32 00:01:20,690 --> 00:01:22,480 >> Hãy xem những gì ý tưởng đó là. 33 00:01:22,480 --> 00:01:23,310 Một chức năng là gì? 34 00:01:23,310 --> 00:01:26,470 Vâng một chức năng thực sự là không có gì nhiều hơn một hộp đen. 35 00:01:26,470 --> 00:01:31,430 Một hộp đen có một tập hợp các số không hoặc nhiều đầu vào và một đầu ra duy nhất. 36 00:01:31,430 --> 00:01:33,420 Vì vậy, ví dụ, điều này có thể là một hàm. 37 00:01:33,420 --> 00:01:35,510 Đây là một chức năng gọi là func. 38 00:01:35,510 --> 00:01:39,330 Và phải mất ba đầu vào a, b, và c. 39 00:01:39,330 --> 00:01:42,580 Và bên trong hộp đen, chúng tôi không biết chính xác những gì nó làm, 40 00:01:42,580 --> 00:01:45,100 nhưng nó xử lý các yếu tố đầu vào một cách nào đó và sau đó nó 41 00:01:45,100 --> 00:01:48,680 cung cấp cho một đầu ra duy nhất, trong trường hợp này, z. 42 00:01:48,680 --> 00:01:50,504 Bây giờ để làm cho nó một chút ít trừu tượng, chúng tôi 43 00:01:50,504 --> 00:01:52,420 có thể nói rằng có lẽ chúng ta có một chức năng gọi là 44 00:01:52,420 --> 00:01:58,750 thêm rằng có ba yếu tố đầu vào a, b, và c và xử lý đầu ra một cách nào đó 45 00:01:58,750 --> 00:02:01,010 bên trong hộp đen để sản xuất một đầu ra duy nhất. 46 00:02:01,010 --> 00:02:05,190 Vì vậy, trong trường hợp này, nếu thêm mất 3, 6, và 7. 47 00:02:05,190 --> 00:02:07,020 Một nơi nào đó bên trong thêm chức năng, chúng tôi sẽ 48 00:02:07,020 --> 00:02:09,750 mong đợi họ được thêm vào với nhau để tạo đầu ra, mà 49 00:02:09,750 --> 00:02:13,220 là 3 cộng với 6 cộng 7 hoặc 16. 50 00:02:13,220 --> 00:02:17,940 >> Tương tự như vậy, bạn có một chức năng gọi là mult mà phải mất hai yếu tố đầu vào, a và b, 51 00:02:17,940 --> 00:02:21,070 xử lý chúng một cách nào đó là đầu ra của hàm 52 00:02:21,070 --> 00:02:22,920 là sản phẩm của hai đầu vào. 53 00:02:22,920 --> 00:02:25,080 Hai yếu tố đầu vào nhân với nhau. 54 00:02:25,080 --> 00:02:29,150 4 và 5 được thông qua vào mult, một cái gì đó xảy ra, sản lượng chúng tôi mong đợi 55 00:02:29,150 --> 00:02:31,090 là 20. 56 00:02:31,090 --> 00:02:32,507 Tại sao chúng ta gọi nó là một hộp đen? 57 00:02:32,507 --> 00:02:34,840 Vâng, nếu chúng ta không có văn bản chức năng chính mình, mà 58 00:02:34,840 --> 00:02:36,869 chúng tôi đã thực hiện khá một chút cho đến nay CS50. 59 00:02:36,869 --> 00:02:39,910 Chúng tôi đã nhìn thấy in f, ví dụ, là một chức năng mà chúng tôi đã không viết 60 00:02:39,910 --> 00:02:42,305 chính chúng ta, nhưng chúng tôi sử dụng tất cả các thời gian. 61 00:02:42,305 --> 00:02:44,180 Nếu chúng ta không phải viết các chức năng chính mình, 62 00:02:44,180 --> 00:02:48,450 chúng ta không thực sự cần phải biết làm thế nào nó thực sự thực hiện dưới mui xe. 63 00:02:48,450 --> 00:02:51,710 >> Vì vậy, ví dụ hộp đen tôi chỉ cho thấy bạn có cho phép nhân, 64 00:02:51,710 --> 00:02:53,740 Mult a, b có thể là defined-- và điều này chỉ là 65 00:02:53,740 --> 00:02:57,902 một số pseudocode-- thể định nghĩa như lần đầu ra một b. 66 00:02:57,902 --> 00:02:58,860 Điều đó làm cho tinh thần, phải. 67 00:02:58,860 --> 00:03:01,370 Nếu chúng ta có một chức năng gọi là mult mà phải mất hai yếu tố đầu vào. 68 00:03:01,370 --> 00:03:04,750 Chúng tôi hy vọng rằng sản lượng sẽ là hai yếu tố đầu vào nhân với nhau, 69 00:03:04,750 --> 00:03:06,240 một lần b. 70 00:03:06,240 --> 00:03:09,170 Nhưng cũng có thể là mult thực hiện như thế này, 71 00:03:09,170 --> 00:03:13,150 chúng ta có một biến đếm để được thiết lập bên trong mult 0. 72 00:03:13,150 --> 00:03:18,000 Và sau đó chúng ta lặp lại quá trình này b lần thêm một phản. 73 00:03:18,000 --> 00:03:24,270 Ví dụ, nếu chúng ta nhân 3a bởi 5b, chúng ta có thể nói rằng thiết lập đếm từ 0, 74 00:03:24,270 --> 00:03:27,700 lặp lại năm lần, thêm 3 để truy cập. 75 00:03:27,700 --> 00:03:34,490 Vì vậy, chúng tôi bắt đầu từ 0 và sau đó chúng tôi làm này năm lần 3, 6, 9, 12, 15. 76 00:03:34,490 --> 00:03:37,500 Đó là kết quả tương tự. Chúng tôi vẫn có được 3 lần 5 chỉ 77 00:03:37,500 --> 00:03:39,500 việc thực hiện là khác nhau. 78 00:03:39,500 --> 00:03:41,490 >> Đó là những gì chúng tôi có nghĩa khi chúng ta nói một hộp đen. 79 00:03:41,490 --> 00:03:44,406 Nó chỉ có nghĩa là chúng ta không thực sự quan tâm làm thế nào nó được thực hiện dưới mui xe 80 00:03:44,406 --> 00:03:46,170 miễn là đầu ra là những gì chúng tôi mong đợi. 81 00:03:46,170 --> 00:03:49,045 Trong thực tế, đó là một phần của hợp đồng của việc sử dụng các chức năng, đặc biệt 82 00:03:49,045 --> 00:03:50,630 chức năng mà người khác viết. 83 00:03:50,630 --> 00:03:53,980 Các hành vi là luôn luôn đi là điển hình, không thể đoán trước 84 00:03:53,980 --> 00:03:55,420 dựa vào tên của hàm. 85 00:03:55,420 --> 00:03:57,500 Và đó là lý do tại sao nó thực sự quan trọng khi bạn viết chức năng 86 00:03:57,500 --> 00:04:00,020 hoặc khi người khác viết chức năng mà bạn có thể sử dụng, 87 00:04:00,020 --> 00:04:03,590 rằng những chức năng có rõ ràng, tên tương đối rõ ràng, 88 00:04:03,590 --> 00:04:04,990 và cũng là tài liệu. 89 00:04:04,990 --> 00:04:08,560 Mà chắc chắn là trường hợp cho chức năng như in f. 90 00:04:08,560 --> 00:04:09,860 >> Vì vậy, tại sao chúng ta sử dụng chức năng này? 91 00:04:09,860 --> 00:04:14,220 Cũng như tôi đã nói trước đó, nếu chúng ta viết tất cả các mã của chúng tôi bên trong của sự vật chính 92 00:04:14,220 --> 00:04:17,120 có thể có được thực sự cồng kềnh và thực sự phức tạp. 93 00:04:17,120 --> 00:04:19,980 Chức năng cho phép chúng ta khả năng để tổ chức mọi thứ và chia tay 94 00:04:19,980 --> 00:04:24,540 một vấn đề rất phức tạp thành rất nhiều các bộ phận phụ dễ quản lý hơn. 95 00:04:24,540 --> 00:04:28,130 Chức năng này cũng cho phép chúng tôi đơn giản hóa quá trình mã hóa. 96 00:04:28,130 --> 00:04:33,080 Nó dễ dàng hơn rất nhiều để gỡ lỗi một 10 chức năng dòng so với dòng 100 97 00:04:33,080 --> 00:04:35,890 chức năng hoặc một chức năng 1.000 dòng. 98 00:04:35,890 --> 00:04:38,400 Nếu chúng ta chỉ phải debug miếng nhỏ tại một thời điểm, 99 00:04:38,400 --> 00:04:42,110 hoặc viết những miếng nhỏ vào thời điểm đó, nó làm cho rằng kinh nghiệm lập trình 100 00:04:42,110 --> 00:04:43,070 tốt hơn rất nhiều. 101 00:04:43,070 --> 00:04:44,910 Tôi tin tưởng rằng một ngày. 102 00:04:44,910 --> 00:04:48,400 >> Cuối cùng, nếu chúng ta viết các chức năng chúng tôi có thể tái sử dụng những bộ phận khác nhau. 103 00:04:48,400 --> 00:04:49,880 Chức năng có thể được tái chế. 104 00:04:49,880 --> 00:04:51,880 Chúng có thể được sử dụng trong một chương trình hay cách khác. 105 00:04:51,880 --> 00:04:53,713 Bạn đã viết chức năng, tất cả các bạn 106 00:04:53,713 --> 00:04:56,530 cần phải làm là nói với chương trình nơi để tìm thấy chức năng đó. 107 00:04:56,530 --> 00:04:59,680 Chúng tôi đã được tái chế và sử dụng in f trong hơn 40 năm. 108 00:04:59,680 --> 00:05:02,150 Nhưng nó chỉ được viết một lần. 109 00:05:02,150 --> 00:05:04,270 Khá hữu ích, phải. 110 00:05:04,270 --> 00:05:04,830 Được rồi. 111 00:05:04,830 --> 00:05:06,040 Vì vậy, chức năng là rất lớn. 112 00:05:06,040 --> 00:05:06,860 Chúng ta biết rằng. 113 00:05:06,860 --> 00:05:08,700 Bây giờ chúng ta hãy bắt đầu viết cho họ. 114 00:05:08,700 --> 00:05:10,830 Hãy bắt đầu nhận được thành các chương trình của chúng tôi. 115 00:05:10,830 --> 00:05:13,869 Để làm được điều đó, đầu tiên điều chúng ta làm là khai báo hàm. 116 00:05:13,869 --> 00:05:16,160 Khi bạn khai báo một hàm những gì bạn đang làm cơ bản 117 00:05:16,160 --> 00:05:18,900 là nói cho các trình biên dịch, hey, chỉ để bạn biết, 118 00:05:18,900 --> 00:05:20,850 Tôi sẽ viết một chức năng sau này 119 00:05:20,850 --> 00:05:22,987 và đây là những gì nó sẽ giống như thế. 120 00:05:22,987 --> 00:05:24,820 Lý do cho điều này là vì trình biên dịch có thể 121 00:05:24,820 --> 00:05:27,900 làm một số những điều kỳ lạ nếu họ nhìn thấy một tập hợp các ký hiệu 122 00:05:27,900 --> 00:05:29,560 mà họ không quen thuộc với. 123 00:05:29,560 --> 00:05:33,000 Vì vậy, chúng tôi chỉ cung cấp cho các trình biên dịch một đứng lên, tôi là tạo ra một chức năng 124 00:05:33,000 --> 00:05:35,492 và nó sẽ làm điều này. 125 00:05:35,492 --> 00:05:38,450 Tờ khai chức năng nói chung nếu bạn đang tổ chức mã của bạn trong một cách 126 00:05:38,450 --> 00:05:41,872 mà những người khác sẽ có thể hiểu và sử dụng, 127 00:05:41,872 --> 00:05:44,330 bạn thường muốn đặt tất cả tờ khai chức năng của bạn 128 00:05:44,330 --> 00:05:48,220 ở đầu rất của mã của bạn, phải trước khi bạn bắt đầu viết chính ngay cả. 129 00:05:48,220 --> 00:05:50,770 Và thuận tiện, có một hình thức rất chuẩn 130 00:05:50,770 --> 00:05:53,500 mà mỗi chức năng khai báo sau. 131 00:05:53,500 --> 00:05:56,090 Họ tất cả khá nhiều giống như thế này. 132 00:05:56,090 --> 00:06:01,440 Có ba phần để một chức năng kê khai, kiểu trả về, tên, 133 00:06:01,440 --> 00:06:03,420 và danh sách đối số. 134 00:06:03,420 --> 00:06:07,180 >> Bây giờ các kiểu trả về là những loại biến các chức năng sẽ đầu ra. 135 00:06:07,180 --> 00:06:10,710 Vì vậy, ví dụ, nếu chúng ta nghĩ lại một phút trước đây để các nhân hai 136 00:06:10,710 --> 00:06:15,690 số chức năng, những gì chúng tôi mong đợi nếu làm chúng ta nhân một số nguyên của một số nguyên 137 00:06:15,690 --> 00:06:18,502 sản lượng sẽ được có thể là một số nguyên, phải. 138 00:06:18,502 --> 00:06:20,710 Nhân hai số nguyên với nhau, bạn sẽ có được một số nguyên. 139 00:06:20,710 --> 00:06:24,167 Vì vậy, các kiểu trả về của đó chức năng sẽ là int. 140 00:06:24,167 --> 00:06:26,000 Tên là những gì bạn muốn để gọi chức năng của bạn. 141 00:06:26,000 --> 00:06:29,330 Đây có lẽ là quan trọng nhất phần khai báo hàm, 142 00:06:29,330 --> 00:06:30,827 về chức năng. 143 00:06:30,827 --> 00:06:33,160 Nhưng trên thực tế có lẽ là một trong những phần quan trọng nhất 144 00:06:33,160 --> 00:06:36,243 khai báo hàm trong thuật ngữ biết những gì thực tế hàm 145 00:06:36,243 --> 00:06:37,120 hiện. 146 00:06:37,120 --> 00:06:40,474 Nếu bạn đặt tên hàm f hoặc g hoặc h hoặc bí ẩn hay một cái gì đó như thế, 147 00:06:40,474 --> 00:06:42,765 có lẽ bạn đang đi để có được một chút lấn cấn cố gắng 148 00:06:42,765 --> 00:06:44,650 nhớ những gì những chức năng làm. 149 00:06:44,650 --> 00:06:47,880 Vì vậy, điều quan trọng để cung cấp cho bạn tên có ý nghĩa chức năng của. 150 00:06:47,880 --> 00:06:51,030 >> Cuối cùng, danh sách đối số là dấu phẩy tách ra danh sách 151 00:06:51,030 --> 00:06:55,260 của tất cả các yếu tố đầu vào chức năng của bạn, mỗi trong số đó có một loại và một tên. 152 00:06:55,260 --> 00:06:57,840 Vì vậy, không chỉ làm bạn phải định rõ kiểu của biến 153 00:06:57,840 --> 00:07:00,760 hàm ý đầu ra, bạn cũng muốn xác định 154 00:07:00,760 --> 00:07:07,694 loại và loại biến các chức năng sẽ được chấp nhận như là đầu vào. 155 00:07:07,694 --> 00:07:08,860 Vì vậy, chúng ta hãy làm một ví dụ ở đây. 156 00:07:08,860 --> 00:07:10,220 Hãy chỉ có một cái nhìn tại một cụ thể hơn. 157 00:07:10,220 --> 00:07:13,130 Vì vậy, đây là một ví dụ của một hàm khai cho một chức năng mà 158 00:07:13,130 --> 00:07:14,925 sẽ thêm hai số nguyên với nhau. 159 00:07:14,925 --> 00:07:17,800 Tổng của hai số nguyên được sắp là một số nguyên là tốt, vì chúng tôi chỉ 160 00:07:17,800 --> 00:07:18,450 thảo luận. 161 00:07:18,450 --> 00:07:21,610 Và do đó, các kiểu trả về, ở đây trong xanh, sẽ là int. 162 00:07:21,610 --> 00:07:25,190 Điều đó chỉ cho chúng ta biết thêm hai ints sẽ đi, vào cuối ngày, 163 00:07:25,190 --> 00:07:28,799 đầu ra, hoặc nhổ nó trở lại ra cho chúng tôi, một số nguyên. 164 00:07:28,799 --> 00:07:31,590 Với những gì chức năng này hiện chúng tôi muốn cung cấp cho nó một cái tên đầy ý nghĩa. 165 00:07:31,590 --> 00:07:33,630 Thêm hai ints vẻ thích hợp, xem xét 166 00:07:33,630 --> 00:07:37,574 Ta xét hai số nguyên liệu đầu vào và hy vọng thêm chúng với nhau. 167 00:07:37,574 --> 00:07:40,240 Nó có thể là một chút của một cồng kềnh Tên và thẳng thắn chức năng này 168 00:07:40,240 --> 00:07:42,430 có lẽ là không cần thiết vì chúng tôi có sự bổ sung 169 00:07:42,430 --> 00:07:46,310 điều hành, nếu bạn nhớ lại từ chúng tôi thảo luận của các nhà khai thác, trước đây. 170 00:07:46,310 --> 00:07:49,650 Nhưng chúng ta hãy chỉ nói vì lợi ích của lập luận rằng chức năng này rất hữu ích 171 00:07:49,650 --> 00:07:52,860 và vì vậy chúng tôi sẽ gọi nó thêm hai ints. 172 00:07:52,860 --> 00:07:55,230 Cuối cùng, chức năng này có hai đầu vào. 173 00:07:55,230 --> 00:07:56,960 Mỗi trong số đó là một số nguyên. 174 00:07:56,960 --> 00:07:59,900 Vì vậy, chúng tôi có dấu phẩy này danh sách tách các yếu tố đầu vào. 175 00:07:59,900 --> 00:08:02,830 Bây giờ chúng ta thường muốn đặt tên cho mỗi người 176 00:08:02,830 --> 00:08:05,070 để họ có thể được sử dụng bên trong hàm. 177 00:08:05,070 --> 00:08:07,180 Các tên này không đề quan trọng. 178 00:08:07,180 --> 00:08:11,400 >> Trong trường hợp này, chúng ta không nhất thiết phải có bất kỳ ý nghĩa gắn liền với chúng. 179 00:08:11,400 --> 00:08:13,140 Vì vậy, chúng tôi chỉ có thể gọi họ là a và b. 180 00:08:13,140 --> 00:08:14,257 Điều đó hoàn toàn tốt. 181 00:08:14,257 --> 00:08:16,090 Tuy nhiên, nếu bạn tìm thấy mình trong một tình huống 182 00:08:16,090 --> 00:08:19,497 nơi mà các tên của các biến thực sự có thể là quan trọng, 183 00:08:19,497 --> 00:08:21,830 bạn có thể muốn gọi cho họ một cái gì đó khác hơn là a và b 184 00:08:21,830 --> 00:08:24,701 để cung cấp cho họ một cái gì đó nhiều hơn biểu tượng có ý nghĩa. 185 00:08:24,701 --> 00:08:27,700 Nhưng trong trường hợp này, chúng ta không thực sự biết bất cứ điều gì khác về các chức năng. 186 00:08:27,700 --> 00:08:29,320 Chúng tôi chỉ muốn thêm hai số nguyên. 187 00:08:29,320 --> 00:08:32,429 Vì vậy, chúng tôi sẽ gọi điện những số nguyên a và b. 188 00:08:32,429 --> 00:08:33,990 Đó là một ví dụ. 189 00:08:33,990 --> 00:08:36,287 >> Tại sao bạn không mất một giây để suy nghĩ về việc này, 190 00:08:36,287 --> 00:08:38,870 làm thế nào bạn có thể viết một hàm khai cho một chức năng mà 191 00:08:38,870 --> 00:08:42,940 sẽ nhân hai số điểm nổi? 192 00:08:42,940 --> 00:08:45,910 Bạn có nhớ những gì một nổi số điểm là? 193 00:08:45,910 --> 00:08:48,120 Sẽ những gì chức năng này khai báo như thế nào? 194 00:08:48,120 --> 00:08:53,330 Tôi thực sự khuyên bạn tạm dừng video ở đây và mất bao nhiêu thời gian bạn cần. 195 00:08:53,330 --> 00:08:55,521 Hãy suy nghĩ về điều này khai báo hàm sẽ là gì? 196 00:08:55,521 --> 00:08:56,770 Điều gì sẽ là kiểu trả về được? 197 00:08:56,770 --> 00:08:58,103 Điều gì sẽ là một tên có ý nghĩa là gì? 198 00:08:58,103 --> 00:08:59,580 Những gì các yếu tố đầu vào sẽ là gì? 199 00:08:59,580 --> 00:09:03,190 Vì vậy, tại sao bạn không tạm dừng video ở đây và viết lên một chức năng khai báo 200 00:09:03,190 --> 00:09:07,640 cho một chức năng mà sẽ nhân hai số dấu chấm động với nhau. 201 00:09:07,640 --> 00:09:09,330 Hy vọng rằng bạn tạm dừng video. 202 00:09:09,330 --> 00:09:12,950 >> Vì vậy, chúng ta hãy xem một ví dụ của một tờ khai có thể. 203 00:09:12,950 --> 00:09:17,340 Float mult hai tập số thực float x, float y. 204 00:09:17,340 --> 00:09:19,090 Các sản phẩm của hai số dấu chấm, 205 00:09:19,090 --> 00:09:21,710 mà nhớ lại là làm thế nào chúng tôi đại diện cho các số thực 206 00:09:21,710 --> 00:09:26,770 hoặc số điện thoại với các giá trị thập phân trong c, là có được một số điểm nổi. 207 00:09:26,770 --> 00:09:28,570 Khi bạn nhân một thập phân của một số thập phân, 208 00:09:28,570 --> 00:09:30,460 có lẽ bạn đang đi để có được một số thập phân. 209 00:09:30,460 --> 00:09:31,960 Bạn muốn cung cấp cho nó một cái tên có liên quan. 210 00:09:31,960 --> 00:09:33,810 Nhân hai số thực có vẻ tốt đẹp. 211 00:09:33,810 --> 00:09:36,620 Nhưng bạn thực sự có thể gọi nó mult hai phao, phao nổi hoặc mult. 212 00:09:36,620 --> 00:09:39,540 Bất cứ điều gì như thế, miễn là nó đưa ra một số ý nghĩa thực tế với những gì 213 00:09:39,540 --> 00:09:41,469 hộp đen này đã được đi làm. 214 00:09:41,469 --> 00:09:44,260 Và một lần nữa, trong trường hợp này, chúng tôi không dường như có bất kỳ ý nghĩa gắn liền 215 00:09:44,260 --> 00:09:46,390 đến tên của các biến chúng ta đang đi trong, 216 00:09:46,390 --> 00:09:48,645 vì vậy chúng tôi chỉ cần gọi họ x và y. 217 00:09:48,645 --> 00:09:51,020 Bây giờ nếu bạn gọi cho họ một cái gì đó khác, điều đó hoàn toàn tốt. 218 00:09:51,020 --> 00:09:53,310 Trong thực tế, nếu bạn đã làm Tờ khai này thay vì 219 00:09:53,310 --> 00:09:55,450 sử dụng thay vì tăng gấp đôi của phao, nếu bạn gọi lại 220 00:09:55,450 --> 00:09:59,100 đó là một đôi khác nhau cách chính xác hơn 221 00:09:59,100 --> 00:10:02,330 xác định số thực hoặc nổi biến điểm. 222 00:10:02,330 --> 00:10:03,620 Điều đó hoàn toàn tốt quá. 223 00:10:03,620 --> 00:10:04,670 Hoặc là một trong những người sẽ là tốt. 224 00:10:04,670 --> 00:10:06,711 Trong thực tế, có một số kết hợp khác nhau 225 00:10:06,711 --> 00:10:08,410 cách để khai báo chức năng này. 226 00:10:08,410 --> 00:10:10,884 Nhưng đây là hai người khá tốt. 227 00:10:10,884 --> 00:10:12,550 Chúng tôi đã tuyên bố một chức năng, đó là tuyệt vời. 228 00:10:12,550 --> 00:10:15,700 Chúng tôi đã nói với các trình biên dịch những gì nó được, những gì chúng ta sẽ làm được. 229 00:10:15,700 --> 00:10:17,630 Bây giờ chúng ta hãy thực sự viết chức năng đó. 230 00:10:17,630 --> 00:10:20,750 Hãy cung cấp cho nó một định nghĩa, vì thế bên trong hộp đen 231 00:10:20,750 --> 00:10:22,840 hành vi dự đoán đang xảy ra. 232 00:10:22,840 --> 00:10:26,270 Trong thực tế, chúng tôi được nhân hai thực số với nhau, hoặc thêm số 233 00:10:26,270 --> 00:10:29,760 với nhau, hoặc làm bất cứ điều gì nó là chúng tôi hỏi chức năng của chúng tôi để làm. 234 00:10:29,760 --> 00:10:32,780 >> Vì vậy, trong thực tế, chúng ta hãy cố gắng và xác định nhân hai số thực mà chúng ta vừa 235 00:10:32,780 --> 00:10:35,350 nói về một giây trước đó. 236 00:10:35,350 --> 00:10:38,560 Bây giờ đầu một định nghĩa chức năng 237 00:10:38,560 --> 00:10:41,720 trông gần như giống hệt nhau như là một khai báo hàm. 238 00:10:41,720 --> 00:10:43,170 Tôi có cả hai của họ ở đây. 239 00:10:43,170 --> 00:10:47,770 Trên cùng là khai báo hàm, loại, tên, dấu phẩy tách ra lập luận 240 00:10:47,770 --> 00:10:49,410 danh sách, dấu chấm phẩy. 241 00:10:49,410 --> 00:10:53,800 Các dấu chấm phẩy chỉ ra rằng đó là một khai báo hàm. 242 00:10:53,800 --> 00:10:57,060 Sự khởi đầu của chức năng định nghĩa trông gần như giống 243 00:10:57,060 --> 00:11:03,790 như nhau, loại, tên, dấu phẩy tách danh sách đối số, không có dấu chấm phẩy, 244 00:11:03,790 --> 00:11:05,206 mở ngoặc móc. 245 00:11:05,206 --> 00:11:07,580 Các ngoặc móc mở, giống như chúng ta đã làm với chính, 246 00:11:07,580 --> 00:11:09,540 có nghĩa là chúng ta bây giờ bắt đầu để xác định 247 00:11:09,540 --> 00:11:14,567 những gì xảy ra bên trong hộp đen chúng tôi đã quyết định gọi mult hai tập số thực. 248 00:11:14,567 --> 00:11:15,900 Dưới đây là một cách để thực hiện nó. 249 00:11:15,900 --> 00:11:20,370 Chúng ta có thể nói, chúng ta có thể khai báo một mới biến kiểu float gọi sản phẩm 250 00:11:20,370 --> 00:11:24,020 và gán biến đó với giá trị x lần y. 251 00:11:24,020 --> 00:11:27,306 Và sau đó trả lại sản phẩm. 252 00:11:27,306 --> 00:11:28,430 Không trở lại có ý nghĩa gì ở đây. 253 00:11:28,430 --> 00:11:31,090 Cũng trở lại là con đường chúng tôi chỉ ra đó là cách 254 00:11:31,090 --> 00:11:33,400 chúng ta đang đi qua các đầu ra trở ra. 255 00:11:33,400 --> 00:11:38,160 Vì vậy, trở về một cái gì đó, cũng giống như, đây là sản lượng của hộp đen. 256 00:11:38,160 --> 00:11:40,732 Vì vậy, đó là cách bạn làm điều đó. 257 00:11:40,732 --> 00:11:42,190 Dưới đây là một cách khác để thực hiện nó. 258 00:11:42,190 --> 00:11:45,050 Chúng tôi chỉ có thể trở lại lần x y. 259 00:11:45,050 --> 00:11:45,870 x là một phao. 260 00:11:45,870 --> 00:11:46,660 y là một phao. 261 00:11:46,660 --> 00:11:48,490 Vì vậy, x lần y cũng là một phao. 262 00:11:48,490 --> 00:11:50,750 Chúng tôi thậm chí không cần phải tạo ra một biến khác. 263 00:11:50,750 --> 00:11:56,750 Vì vậy, đó là một cách khác nhau để thực hiện chính xác các hộp đen cùng. 264 00:11:56,750 --> 00:11:58,570 >> Bây giờ lấy một khoảnh khắc, tạm dừng các video một lần nữa, 265 00:11:58,570 --> 00:12:01,680 và cố gắng và xác định thêm hai ints, đó là các chức năng khác mà chúng tôi 266 00:12:01,680 --> 00:12:03,090 nói về một thời điểm trước đây. 267 00:12:03,090 --> 00:12:06,440 Một lần nữa ở đây, tôi đã đặt các chức năng kê khai, và do đó, các dấu chấm phẩy, 268 00:12:06,440 --> 00:12:08,420 và một ngoặc móc mở và xoăn kín 269 00:12:08,420 --> 00:12:12,080 nẹp để chỉ ra nơi mà chúng ta sẽ điền trong nội dung thêm hai ints, 270 00:12:12,080 --> 00:12:15,530 để chúng tôi xác định cụ thể hành vi bên trong hộp đen. 271 00:12:15,530 --> 00:12:16,380 Vì vậy, tạm dừng video. 272 00:12:16,380 --> 00:12:18,790 Và mất nhiều thời gian như bạn cần phải cố gắng và xác định 273 00:12:18,790 --> 00:12:25,040 một thực hiện thêm hai ints, chẳng hạn rằng khi các chức năng xuất ra một giá trị, 274 00:12:25,040 --> 00:12:29,209 nó, trên thực tế, trở lại tổng của hai đầu vào. 275 00:12:29,209 --> 00:12:32,000 Vì vậy, giống như các ví dụ trước, có nhiều cách khác nhau 276 00:12:32,000 --> 00:12:34,210 mà bạn có thể thực hiện thêm hai ints. 277 00:12:34,210 --> 00:12:35,130 Dưới đây là một. 278 00:12:35,130 --> 00:12:37,172 Tại đây tôi đã cam chỉ có một số comments-- 279 00:12:37,172 --> 00:12:38,880 Tôi chỉ cần thêm một số bình luận để chỉ ra 280 00:12:38,880 --> 00:12:41,400 những gì đang xảy ra trên mỗi dòng mã. 281 00:12:41,400 --> 00:12:45,430 Vì vậy, tôi tuyên bố một biến gọi là tổng của kiểu int. 282 00:12:45,430 --> 00:12:47,279 Tôi nói số tiền tương đương với một cộng b. 283 00:12:47,279 --> 00:12:50,070 Đó là nơi mà chúng tôi đang thực sự làm việc bổ sung thêm một và b với nhau. 284 00:12:50,070 --> 00:12:51,850 Và tôi trả lại tiền. 285 00:12:51,850 --> 00:12:56,460 Và điều đó có ý nghĩa vì tổng hợp là một biến kiểu int. 286 00:12:56,460 --> 00:13:00,180 Và những gì nhập dữ liệu rằng điều này chức năng cho tôi biết nó sẽ ra? 287 00:13:00,180 --> 00:13:00,680 Int. 288 00:13:00,680 --> 00:13:03,072 Vì vậy, tôi trở lại tiền mà là một biến số nguyên. 289 00:13:03,072 --> 00:13:06,030 Và điều đó có ý nghĩa cho những gì chúng tôi đã khai báo và xác định chức năng của chúng tôi 290 00:13:06,030 --> 00:13:07,320 làm. 291 00:13:07,320 --> 00:13:09,700 >> Bây giờ bạn cũng có thể định nghĩa các chức năng theo cách này, 292 00:13:09,700 --> 00:13:15,260 int sum bằng một cộng b-- bỏ qua đầu tiên step-- và sau đó, trở về sum. 293 00:13:15,260 --> 00:13:17,760 Bây giờ bạn có thể có cũng thực hiện nó theo cách này, 294 00:13:17,760 --> 00:13:19,180 mà tôi rất không khuyên. 295 00:13:19,180 --> 00:13:22,540 Đây là phong cách xấu cho một điều và thiết kế thực sự xấu, 296 00:13:22,540 --> 00:13:24,420 nhưng nó, trên thực tế, làm việc. 297 00:13:24,420 --> 00:13:30,199 Nếu bạn đưa mã này, mà là int thêm xấu bộ cộng dot c, và sử dụng nó. 298 00:13:30,199 --> 00:13:31,990 Nó thực sự không thêm hai số nguyên với nhau. 299 00:13:31,990 --> 00:13:37,632 Đó là một thực hiện rất kém các hành vi cụ thể này. 300 00:13:37,632 --> 00:13:38,340 Nhưng nó không làm việc. 301 00:13:38,340 --> 00:13:41,200 Nó chỉ là để minh họa điểm mà chúng ta không thực sự 302 00:13:41,200 --> 00:13:44,530 quan tâm những gì xảy ra bên trong hộp đen, miễn 303 00:13:44,530 --> 00:13:46,510 vì nó có đầu ra mà chúng ta mong đợi. 304 00:13:46,510 --> 00:13:48,870 Đây là một hộp đen được thiết kế kém. 305 00:13:48,870 --> 00:13:53,801 Nhưng ở cuối ngày, nó đầu ra vẫn là tổng của một cộng b. 306 00:13:53,801 --> 00:13:54,300 Được rồi. 307 00:13:54,300 --> 00:13:56,320 Vì vậy, chúng tôi đã tuyên bố chức năng. 308 00:13:56,320 --> 00:13:57,490 Và chúng tôi đã xác định chức năng. 309 00:13:57,490 --> 00:13:58,540 Vì vậy, đó là thực sự tốt. 310 00:13:58,540 --> 00:14:03,020 Bây giờ chúng ta hãy bắt đầu sử dụng các chức năng mà chúng tôi đã tuyên bố và chúng tôi đã xác định. 311 00:14:03,020 --> 00:14:05,960 Để gọi một function-- nó thực sự khá easy-- tất cả các bạn cần làm 312 00:14:05,960 --> 00:14:09,070 là vượt qua nó lập luận thích hợp, đối số của các kiểu dữ liệu 313 00:14:09,070 --> 00:14:11,600 mà nó hy vọng, và sau đó giao cho sự trở lại 314 00:14:11,600 --> 00:14:15,190 giá trị của chức năng đó và this-- cớ me-- 315 00:14:15,190 --> 00:14:19,390 gán giá trị trả về của hàm một cái gì đó của đúng loại. 316 00:14:19,390 --> 00:14:22,410 >> Vì vậy, chúng ta hãy có một cái nhìn tại này trong thực tế ở một tập tin 317 00:14:22,410 --> 00:14:27,730 gọi là bộ cộng 1 dot c, mà Tôi có trong IDE CS50 của tôi. 318 00:14:27,730 --> 00:14:31,042 Vì vậy, đây là bộ cộng 1 dot c. 319 00:14:31,042 --> 00:14:33,500 Lúc đầu bạn thấy tôi có tôi bao gồm, pound bao gồm, 320 00:14:33,500 --> 00:14:35,460 chuẩn IO, và CS50 dot h. 321 00:14:35,460 --> 00:14:37,700 Và sau đó tôi có chức năng khai báo của tôi. 322 00:14:37,700 --> 00:14:39,570 Đây là nơi tôi đang nói với trình biên dịch tôi 323 00:14:39,570 --> 00:14:42,850 sẽ viết một chức năng gọi thêm hai ints. 324 00:14:42,850 --> 00:14:45,780 Nó sẽ ra một biến kiểu số nguyên. 325 00:14:45,780 --> 00:14:47,360 Đó là những gì phần này là đúng ở đây. 326 00:14:47,360 --> 00:14:51,950 Và sau đó tôi có hai đầu vào cho nó một và b, mỗi trong số đó là một số nguyên. 327 00:14:51,950 --> 00:14:58,250 Bên trong chính, tôi yêu cầu người dùng cho đầu vào bằng cách nói, đưa cho tôi một số nguyên. 328 00:14:58,250 --> 00:15:01,040 Và họ đang nhắc nhở để quên int, mà là một chức năng mà 329 00:15:01,040 --> 00:15:03,240 được bao gồm trong thư viện CS50. 330 00:15:03,240 --> 00:15:07,660 Và đó được lưu trữ trong x, một biến số nguyên. 331 00:15:07,660 --> 00:15:09,886 >> Sau đó, chúng tôi nhắc nhở họ cho số nguyên khác. 332 00:15:09,886 --> 00:15:13,070 Chúng tôi nhận được số nguyên khác và lưu trữ trong y. 333 00:15:13,070 --> 00:15:17,990 Và sau đó, ở đây trên đường 28, là nơi mà chúng tôi thực hiện cuộc gọi chức năng của chúng tôi. 334 00:15:17,990 --> 00:15:23,770 Chúng tôi đang nói, equals z int thêm 2 ints x y dấu phẩy. 335 00:15:23,770 --> 00:15:25,980 Bạn có thấy tại sao điều này có ý nghĩa? 336 00:15:25,980 --> 00:15:29,710 x là một biến kiểu số nguyên và y là một biến kiểu số nguyên. 337 00:15:29,710 --> 00:15:31,220 Vì vậy, đó là tốt. 338 00:15:31,220 --> 00:15:34,570 Đó có ý nghĩa gì với chức năng của chúng tôi khai trên dòng 17 trông như thế nào. 339 00:15:34,570 --> 00:15:38,300 Các dấu phẩy tách ra danh sách đầu vào hy vọng hai số nguyên a và b. 340 00:15:38,300 --> 00:15:40,300 Trong trường hợp đó, chúng ta có thể gọi họ bất cứ điều gì chúng ta muốn. 341 00:15:40,300 --> 00:15:42,300 Nó chỉ trông mong hai số nguyên. 342 00:15:42,300 --> 00:15:44,930 Và x là một số nguyên và y là một số nguyên. 343 00:15:44,930 --> 00:15:45,640 Điều đó làm việc. 344 00:15:45,640 --> 00:15:48,680 >> Và chúng ta biết chức năng đó là đi để ra một số nguyên là tốt. 345 00:15:48,680 --> 00:15:51,290 Và vì vậy chúng tôi đang lưu trữ sản lượng chức năng, 346 00:15:51,290 --> 00:15:56,050 thêm hai ints, trong một kiểu số nguyên biến, mà chúng ta đang gọi điện thoại z. 347 00:15:56,050 --> 00:16:01,980 Và sau đó chúng ta có thể nói, tổng của trăm phần trăm và i i là phần trăm i. 348 00:16:01,980 --> 00:16:06,210 x, y, z tương ứng điền vào những phần trăm của tôi. 349 00:16:06,210 --> 00:16:08,334 Định nghĩa là gì thêm hai ints như thế nào? 350 00:16:08,334 --> 00:16:09,125 Nó khá đơn giản. 351 00:16:09,125 --> 00:16:11,270 Đó là một trong những người chúng tôi chỉ thấy một giây trước đó, 352 00:16:11,270 --> 00:16:14,390 int sum bằng một khoản tiền cộng với b trở lại. 353 00:16:14,390 --> 00:16:15,420 Làm việc này? 354 00:16:15,420 --> 00:16:17,270 Hãy lưu tập tin. 355 00:16:17,270 --> 00:16:22,080 Và sau đó xuống đây trên thiết bị đầu cuối của tôi Tôi sẽ làm cho bộ cộng 1, 356 00:16:22,080 --> 00:16:23,000 và tôi rõ ràng màn hình của tôi. 357 00:16:23,000 --> 00:16:25,791 Tôi sẽ để phóng to bởi vì tôi biết đó là một chút khó khăn để xem. 358 00:16:25,791 --> 00:16:31,520 359 00:16:31,520 --> 00:16:33,770 >> Vì vậy, chúng tôi biên dịch chương trình này như bộ cộng 1. 360 00:16:33,770 --> 00:16:37,910 Vì vậy, chúng ta có thể làm chấm slash bộ cộng 1. 361 00:16:37,910 --> 00:16:40,060 Hãy cho tôi một số nguyên, 10. 362 00:16:40,060 --> 00:16:42,380 Hãy cho tôi số nguyên khác, 20. 363 00:16:42,380 --> 00:16:45,200 Tổng của 10 và 20 là 30. 364 00:16:45,200 --> 00:16:47,615 Vì vậy, chúng tôi đã thực hiện một cuộc gọi chức năng thành công. 365 00:16:47,615 --> 00:16:55,820 Bạn có thể chạy các chức năng một lần nữa, tiêu cực 10, 17 tổng của âm 10 và 17 là 7. 366 00:16:55,820 --> 00:16:57,120 Chức năng này hoạt động. 367 00:16:57,120 --> 00:16:59,240 Nó có hành vi mà chúng ta mong đợi nó. 368 00:16:59,240 --> 00:17:03,610 Và vì vậy chúng tôi đã thực hiện thành công chức năng, định nghĩa, kê khai, 369 00:17:03,610 --> 00:17:07,288 và một cuộc gọi chức năng thành công. 370 00:17:07,288 --> 00:17:09,079 Couple linh tinh điểm về chức năng 371 00:17:09,079 --> 00:17:10,611 trước khi chúng tôi kết thúc phần này. 372 00:17:10,611 --> 00:17:12,319 Nhớ lại từ chúng tôi thảo luận về các kiểu dữ liệu, 373 00:17:12,319 --> 00:17:16,109 trước đây, mà chức năng đôi khi có thể mất không có đầu vào. 374 00:17:16,109 --> 00:17:17,930 Nếu đó là trường hợp, chúng tôi khai báo các chức năng 375 00:17:17,930 --> 00:17:19,788 như có một danh sách khoảng trống đối số. 376 00:17:19,788 --> 00:17:21,579 Bạn có nhớ lại những gì chức năng phổ biến nhất 377 00:17:21,579 --> 00:17:25,036 chúng tôi đã nhìn thấy cho đến nay mà mất một danh sách đối số là khoảng trống? 378 00:17:25,036 --> 00:17:27,300 Đó là chính. 379 00:17:27,300 --> 00:17:30,850 Nhớ lại cũng chức năng mà đôi khi không thực sự có một đầu ra. 380 00:17:30,850 --> 00:17:34,210 Trong trường hợp đó, chúng ta khai báo các chức năng như có một kiểu void trở lại. 381 00:17:34,210 --> 00:17:37,880 Chúng ta hãy kết thúc phần này bằng cách giải quyết một vấn đề thực tế. 382 00:17:37,880 --> 00:17:39,900 >> Vì vậy, đây là vấn đề đặt ra. 383 00:17:39,900 --> 00:17:43,630 Tôi muốn bạn viết một hàm gọi là tam hợp lệ. 384 00:17:43,630 --> 00:17:47,410 Hàm này nên làm được mất ba số thực 385 00:17:47,410 --> 00:17:51,930 đại diện cho độ dài của ba hai mặt của một tam giác như các thông số của nó, 386 00:17:51,930 --> 00:17:54,550 hoặc đối số của nó, hoặc nó inputs-- một tập hợp các từ đồng nghĩa 387 00:17:54,550 --> 00:17:57,340 mà bạn có thể gặp phải. 388 00:17:57,340 --> 00:18:01,120 Chức năng này nên hoặc là đầu ra đúng hay sai 389 00:18:01,120 --> 00:18:04,960 tùy thuộc vào việc những người ba chiều dài có khả năng làm cho một hình tam giác. 390 00:18:04,960 --> 00:18:09,930 Bạn có nhớ những loại dữ liệu mà chúng tôi sử dụng để cho biết đúng hay sai? 391 00:18:09,930 --> 00:18:11,436 Bây giờ làm thế nào để bạn thực hiện điều này? 392 00:18:11,436 --> 00:18:13,810 Cũng biết có một cặp vợ chồng các quy tắc liên quan đến tam giác 393 00:18:13,810 --> 00:18:15,480 đó là thực sự hữu ích để biết. 394 00:18:15,480 --> 00:18:18,292 Một tam giác chỉ có thể có bên với chiều dài dương. 395 00:18:18,292 --> 00:18:19,000 Điều đó có ý nghĩa. 396 00:18:19,000 --> 00:18:21,432 Có thể là bạn đang nói, duh. 397 00:18:21,432 --> 00:18:23,390 Một điều khác cần lưu ý mặc dù, là tổng 398 00:18:23,390 --> 00:18:25,484 phương chiều dài của bất kỳ hai cạnh của tam giác 399 00:18:25,484 --> 00:18:27,650 phải lớn hơn chiều dài của các bên thứ ba. 400 00:18:27,650 --> 00:18:28,690 Đó là thực sự đúng. 401 00:18:28,690 --> 00:18:34,150 Bạn không thể có một hình tam giác cạnh 1, 2 và 4, ví dụ, vì 1 cộng 2 402 00:18:34,150 --> 00:18:36,270 không được lớn hơn 4. 403 00:18:36,270 --> 00:18:38,870 Vì vậy, những người đang có những luật lệ mà xác định có hay không ba 404 00:18:38,870 --> 00:18:42,740 đầu vào conceivably có thể hình thành một hình tam giác. 405 00:18:42,740 --> 00:18:46,360 Vì vậy, phải mất một vài phút và kê khai, sau đó xác định 406 00:18:46,360 --> 00:18:49,810 Chức năng này được gọi là hợp lệ tam giác, như vậy mà nó thực sự 407 00:18:49,810 --> 00:18:51,650 có hành vi quy định ở đây. 408 00:18:51,650 --> 00:18:57,030 >> Nó sẽ ra đúng nếu những ba mặt có khả năng bao gồm một hình tam giác, 409 00:18:57,030 --> 00:19:01,950 và sai khác Sẵn sàng để xem làm thế nào bạn đã làm? 410 00:19:01,950 --> 00:19:04,650 Đây là một trong những thực tam giác của sự hợp lệ. 411 00:19:04,650 --> 00:19:05,770 Nó không phải là người duy nhất. 412 00:19:05,770 --> 00:19:07,770 Yours có thể thay đổi chút ít. 413 00:19:07,770 --> 00:19:11,040 Nhưng điều này không có gì, trên thực tế, có các hành vi mà chúng ta mong đợi. 414 00:19:11,040 --> 00:19:14,450 Chúng tôi tuyên bố chức năng của chúng tôi tại rất đỉnh, bool tam hợp lệ 415 00:19:14,450 --> 00:19:16,630 float x float y float z. 416 00:19:16,630 --> 00:19:18,930 Vì vậy, một lần nữa, chức năng này mất ba số thực 417 00:19:18,930 --> 00:19:22,280 như các đối số của nó, nổi các biến giá trị điểm, 418 00:19:22,280 --> 00:19:26,510 và đầu ra là đúng hay sai giá trị, mà là một Boolean, thu hồi. 419 00:19:26,510 --> 00:19:28,660 Vì vậy, đó là lý do tại sao các kiểu trả về là bool. 420 00:19:28,660 --> 00:19:30,016 Sau đó, chúng tôi xác định các chức năng. 421 00:19:30,016 --> 00:19:33,140 Điều đầu tiên chúng tôi làm là kiểm tra để đảm bảo rằng tất cả các bên đang tích cực. 422 00:19:33,140 --> 00:19:37,010 Nếu x là nhỏ hơn hoặc bằng 0, hoặc nếu y là bằng 0, 423 00:19:37,010 --> 00:19:41,050 hoặc nếu z là nhỏ hơn hoặc bằng 0, đó không thể là một hình tam giác. 424 00:19:41,050 --> 00:19:42,380 Họ không có mặt tích cực. 425 00:19:42,380 --> 00:19:45,790 Và vì vậy chúng tôi có thể trở lại sai trong tình huống đó. 426 00:19:45,790 --> 00:19:49,010 Tiếp theo, chúng ta hãy kiểm tra để chắc chắn là mỗi cặp đầu vào 427 00:19:49,010 --> 00:19:51,830 là lớn hơn một phần ba. 428 00:19:51,830 --> 00:19:54,530 >> Vì vậy, nếu x cộng với y là ít hơn hoặc bằng z, 429 00:19:54,530 --> 00:19:57,060 hoặc nếu x cộng với z là ít hơn hoặc bằng y, 430 00:19:57,060 --> 00:20:01,730 hoặc nếu y cộng với z là nhỏ hơn hoặc bằng x, mà cũng không thể là một tam hợp lệ. 431 00:20:01,730 --> 00:20:03,800 Vì vậy, chúng tôi quay trở lại sai một lần nữa. 432 00:20:03,800 --> 00:20:06,900 Giả sử chúng ta đã thông qua cả hai séc Mặc dù vậy, sau đó chúng ta có thể trở thành sự thật. 433 00:20:06,900 --> 00:20:09,440 Bởi vì những ba mặt có khả năng returning-- 434 00:20:09,440 --> 00:20:11,647 của việc tạo ra một tam giác hợp lệ. 435 00:20:11,647 --> 00:20:12,230 Và đó là nó. 436 00:20:12,230 --> 00:20:13,830 Bây giờ bạn đã khai báo và định nghĩa. 437 00:20:13,830 --> 00:20:17,330 Và bạn có thể đến nay sử dụng và gọi chức năng này. 438 00:20:17,330 --> 00:20:19,470 Lam tôt lăm. 439 00:20:19,470 --> 00:20:20,650 Tôi Doug Lloyd. 440 00:20:20,650 --> 00:20:22,820 Đây là CS50. 441 00:20:22,820 --> 00:20:24,340