1 00:00:00,000 --> 00:00:04,664 2 00:00:04,664 --> 00:00:05,580 DOUG LLOYD: Baiklah. 3 00:00:05,580 --> 00:00:08,877 Jadi sekarang mari kita hadapi cabaran topik yang benar-benar besar, fungsi. 4 00:00:08,877 --> 00:00:11,460 Setakat ini dalam perjalanan, semua program yang kita telah menulis 5 00:00:11,460 --> 00:00:12,969 telah ditulis dalam utama. 6 00:00:12,969 --> 00:00:14,260 Mereka program agak mudah. 7 00:00:14,260 --> 00:00:16,940 Anda tidak perlu mempunyai semua ini cawangan dan perkara yang berlaku. 8 00:00:16,940 --> 00:00:18,773 Kami hanya boleh memuatkan semua dalam utama dan ia 9 00:00:18,773 --> 00:00:20,407 tidak mendapat terlalu hangat. 10 00:00:20,407 --> 00:00:22,990 Tetapi padang itu berterusan dan yang mana anda mula membangunkan program 11 00:00:22,990 --> 00:00:26,260 secara bebas, mereka mungkin akan untuk memulakan untuk mendapatkan lebih banyak daripada 10 12 00:00:26,260 --> 00:00:27,200 atau 15 baris. 13 00:00:27,200 --> 00:00:31,400 Anda mungkin mendapat beratus-ratus atau beribu-ribu atau puluhan ribu baris kod. 14 00:00:31,400 --> 00:00:34,690 Dan ia benar-benar tidak yang gila pemikiran. 15 00:00:34,690 --> 00:00:39,720 Oleh itu, ia mungkin bukan idea yang baik untuk memastikan segala-galanya dalam utama. 16 00:00:39,720 --> 00:00:43,240 Ia boleh mendapatkan sedikit sukar untuk mencari apa yang anda cari jika anda berbuat demikian. 17 00:00:43,240 --> 00:00:47,040 >> Nasib baik, walaupun C, dan cukup banyak setiap bahasa pengaturcaraan lain yang 18 00:00:47,040 --> 00:00:50,386 mungkin bekerja dengan, membolehkan kita menulis fungsi. 19 00:00:50,386 --> 00:00:52,260 Dan saya hanya akan mengambil cepat yang mengetepikan sini 20 00:00:52,260 --> 00:00:54,971 untuk menyebut bahawa fungsi adalah satu bidang sains komputer. 21 00:00:54,971 --> 00:00:57,970 Dan anda akan melihat banyak lagi daripada mereka pada pelbagai mata sepanjang perjalanan 22 00:00:57,970 --> 00:00:59,290 dan jika anda meneruskan. 23 00:00:59,290 --> 00:01:02,280 Di mana ada banyak sinonim untuk perkataan yang sama. 24 00:01:02,280 --> 00:01:03,390 Jadi, kita harap fungsi. 25 00:01:03,390 --> 00:01:05,980 Tetapi anda juga mungkin mendengar mereka dirujuk sebagai prosedur, 26 00:01:05,980 --> 00:01:09,570 atau kaedah, terutamanya, jika anda telah pernah melakukan apa-apa pengaturcaraan berorientasikan objek 27 00:01:09,570 --> 00:01:11,950 sebelum itu dan jangan bimbang jika anda tidak mempunyai, tidak 28 00:01:11,950 --> 00:01:14,280 yang deal-- besar tetapi dalam bahasa audit berorientasikan 29 00:01:14,280 --> 00:01:16,129 sering dipanggil kaedah. 30 00:01:16,129 --> 00:01:17,670 Kadang-kadang mereka dipanggil subrutin. 31 00:01:17,670 --> 00:01:20,690 Tetapi mereka benar-benar semua merujuk kepada idea asas yang sama. 32 00:01:20,690 --> 00:01:22,480 >> Mari kita lihat apa idea yang. 33 00:01:22,480 --> 00:01:23,310 Apakah fungsi? 34 00:01:23,310 --> 00:01:26,470 Well fungsi adalah benar-benar tidak lebih daripada satu kotak hitam. 35 00:01:26,470 --> 00:01:31,430 Kotak hitam yang mempunyai satu set sifar atau lebih masukan dan satu keluaran. 36 00:01:31,430 --> 00:01:33,420 Jadi, sebagai contoh, ini mungkin fungsi. 37 00:01:33,420 --> 00:01:35,510 Ini adalah fungsi yang dipanggil func. 38 00:01:35,510 --> 00:01:39,330 Dan ia mengambil masa tiga input a, b, dan c. 39 00:01:39,330 --> 00:01:42,580 Dan di dalam kotak yang hitam, kita tidak tahu apa yang berlaku, 40 00:01:42,580 --> 00:01:45,100 tetapi ia memproses input dalam beberapa cara dan kemudian ia 41 00:01:45,100 --> 00:01:48,680 memberikan output tunggal, dalam kes ini, z. 42 00:01:48,680 --> 00:01:50,504 Sekarang untuk membuat ia sedikit kurang abstrak, kita 43 00:01:50,504 --> 00:01:52,420 boleh mengatakan bahawa mungkin kita mempunyai fungsi yang dipanggil 44 00:01:52,420 --> 00:01:58,750 menambah yang mengambil tiga input a, b, dan c dan proses pengeluaran dalam beberapa cara 45 00:01:58,750 --> 00:02:01,010 dalam kotak hitam untuk menghasilkan output tunggal. 46 00:02:01,010 --> 00:02:05,190 Jadi dalam kes ini, jika menambah mengambil masa 3, 6, dan 7. 47 00:02:05,190 --> 00:02:07,020 Di suatu tempat di dalam menambah fungsi, yang kami lakukan 48 00:02:07,020 --> 00:02:09,750 mengharapkan mereka yang akan ditambah bersama-sama untuk menghasilkan keluaran yang 49 00:02:09,750 --> 00:02:13,220 adalah 3 campur 6 tambah 7 atau 16. 50 00:02:13,220 --> 00:02:17,940 >> Begitu juga, anda mempunyai fungsi yang dipanggil mult yang mengambil dua input, a dan b, 51 00:02:17,940 --> 00:02:21,070 memproses mereka dalam beberapa cara seperti output fungsi 52 00:02:21,070 --> 00:02:22,920 adalah hasil daripada kedua-dua input. 53 00:02:22,920 --> 00:02:25,080 Kedua-dua input didarab bersama-sama. 54 00:02:25,080 --> 00:02:29,150 4 dan 5 yang diluluskan ke dalam mult, sesuatu berlaku, pengeluaran kami menjangka 55 00:02:29,150 --> 00:02:31,090 adalah 20. 56 00:02:31,090 --> 00:02:32,507 Mengapa kita memanggilnya kotak hitam? 57 00:02:32,507 --> 00:02:34,840 Baik jika kita tidak menulis berfungsi diri kita sendiri, yang 58 00:02:34,840 --> 00:02:36,869 yang telah kami lakukan agak sedikit setakat ini cs50. 59 00:02:36,869 --> 00:02:39,910 Kami telah melihat cetak f, sebagai contoh, yang adalah fungsi yang kita tidak menulis 60 00:02:39,910 --> 00:02:42,305 diri kita, tetapi kita gunakan sepanjang masa. 61 00:02:42,305 --> 00:02:44,180 Jika kita tidak menulis Fungsi diri kita sendiri, 62 00:02:44,180 --> 00:02:48,450 kita tidak benar-benar perlu tahu bagaimana ia sebenarnya dilaksanakan di bawah hood. 63 00:02:48,450 --> 00:02:51,710 >> Jadi, sebagai contoh kotak yang saya hitam hanya menunjukkan anda untuk pendaraban, 64 00:02:51,710 --> 00:02:53,740 Mult a, b boleh menjadi defined-- dan ini hanyalah 65 00:02:53,740 --> 00:02:57,902 beberapa pseudocode-- boleh menjadi ditakrifkan sebagai masa pengeluaran yang b. 66 00:02:57,902 --> 00:02:58,860 Yang masuk akal, betul. 67 00:02:58,860 --> 00:03:01,370 Jika kita mempunyai fungsi yang dipanggil mult yang mengambil masa dua input. 68 00:03:01,370 --> 00:03:04,750 Kita akan menjangkakan bahawa output akan menjadi dua input didarab bersama-sama, 69 00:03:04,750 --> 00:03:06,240 kali b. 70 00:03:06,240 --> 00:03:09,170 Tetapi mult juga boleh menjadi dilaksanakan seperti ini, 71 00:03:09,170 --> 00:03:13,150 kita mempunyai pembolehubah bertentangan dengan mendapatkan set di dalam mult kepada 0. 72 00:03:13,150 --> 00:03:18,000 Dan kemudian kita mengulangi proses ini b kali menambah ke kaunter. 73 00:03:18,000 --> 00:03:24,270 Sebagai contoh, jika kita darabkan 3a oleh 5b, kita boleh mengatakan menetapkan kaunter kepada 0, 74 00:03:24,270 --> 00:03:27,700 mengulangi lima kali, menambah 3 ke kaunter. 75 00:03:27,700 --> 00:03:34,490 Oleh itu, kita bermula dari 0 dan maka kita lakukan ini lima kali 3, 6, 9, 12, 15. 76 00:03:34,490 --> 00:03:37,500 Ia adalah keputusan yang sama. Kami masih mendapat 3 kali 5 sahaja 77 00:03:37,500 --> 00:03:39,500 pelaksanaan adalah berbeza. 78 00:03:39,500 --> 00:03:41,490 >> Itulah apa yang kita maksudkan apabila kita mengatakan kotak hitam. 79 00:03:41,490 --> 00:03:44,406 Ia hanya bermakna kita tidak benar-benar mengambil berat bagaimana ia dilaksanakan di bawah hood 80 00:03:44,406 --> 00:03:46,170 selagi keluaran adalah apa yang kita harapkan. 81 00:03:46,170 --> 00:03:49,045 Malah, itu sebahagian daripada kontrak menggunakan fungsi, terutamanya 82 00:03:49,045 --> 00:03:50,630 fungsi-fungsi yang lain menulis. 83 00:03:50,630 --> 00:03:53,980 Tingkah laku yang sentiasa akan menjadi biasa, tidak menentu 84 00:03:53,980 --> 00:03:55,420 berdasarkan nama fungsi. 85 00:03:55,420 --> 00:03:57,500 Dan itulah sebabnya ia benar-benar penting apabila anda menulis fungsi 86 00:03:57,500 --> 00:04:00,020 atau apabila orang lain menulis fungsi yang anda boleh gunakan, 87 00:04:00,020 --> 00:04:03,590 bahawa orang-orang fungsi mempunyai jelas, nama-nama yang agak jelas, 88 00:04:03,590 --> 00:04:04,990 dan didokumentasikan dengan baik. 89 00:04:04,990 --> 00:04:08,560 Yang sudah pasti kes untuk fungsi seperti cetak f. 90 00:04:08,560 --> 00:04:09,860 >> Jadi mengapa kita menggunakan fungsi-fungsi? 91 00:04:09,860 --> 00:04:14,220 Dan seperti yang saya katakan sebelum ini, jika kita menulis semua kod kami di dalam perkara-perkara utama 92 00:04:14,220 --> 00:04:17,120 boleh mendapatkan benar-benar rumit dan benar-benar rumit. 93 00:04:17,120 --> 00:04:19,980 Fungsi membolehkan kita keupayaan untuk menganjurkan sesuatu dan memecahkan 94 00:04:19,980 --> 00:04:24,540 masalah yang sangat rumit ke dalam banyak sub bahagian yang lebih terkawal. 95 00:04:24,540 --> 00:04:28,130 Fungsi ini juga membolehkan kita untuk memudahkan proses pengekodan. 96 00:04:28,130 --> 00:04:33,080 Ia adalah lebih mudah untuk debug 10 fungsi garis berbanding baris 100 97 00:04:33,080 --> 00:04:35,890 fungsi atau fungsi 1000 garis. 98 00:04:35,890 --> 00:04:38,400 Jika kita hanya perlu debug kepingan kecil pada satu masa, 99 00:04:38,400 --> 00:04:42,110 atau menulis kepingan kecil pada masa itu, ia membuatkan pengalaman pengaturcaraan 100 00:04:42,110 --> 00:04:43,070 lebih baik. 101 00:04:43,070 --> 00:04:44,910 Percayalah pada yang satu. 102 00:04:44,910 --> 00:04:48,400 >> Akhir sekali, jika kita menulis fungsi kita boleh menggunakan semula orang-orang pelbagai bahagian. 103 00:04:48,400 --> 00:04:49,880 Fungsi boleh dikitar semula. 104 00:04:49,880 --> 00:04:51,880 Mereka boleh digunakan dalam satu program atau yang lain. 105 00:04:51,880 --> 00:04:53,713 Anda sudah menulis majlis itu, semua yang anda 106 00:04:53,713 --> 00:04:56,530 perlu anda lakukan adalah memberitahu program yang di mana untuk mencari fungsi itu. 107 00:04:56,530 --> 00:04:59,680 Kami telah mengitar semula dan menggunakan mencetak f selama lebih 40 tahun. 108 00:04:59,680 --> 00:05:02,150 Tetapi ia hanya ditulis satu masa. 109 00:05:02,150 --> 00:05:04,270 Cukup berguna, betul. 110 00:05:04,270 --> 00:05:04,830 Baiklah. 111 00:05:04,830 --> 00:05:06,040 Jadi fungsi yang besar. 112 00:05:06,040 --> 00:05:06,860 Kita tahu bahawa. 113 00:05:06,860 --> 00:05:08,700 Sekarang mari kita mula menulis mereka. 114 00:05:08,700 --> 00:05:10,830 Mari kita mula mendapat mereka ke dalam program kami. 115 00:05:10,830 --> 00:05:13,869 Dalam usaha untuk melakukan itu, yang pertama perkara yang kita lakukan adalah mengisytiharkan fungsi. 116 00:05:13,869 --> 00:05:16,160 Apabila anda mengisytiharkan fungsi apa yang anda lakukan pada dasarnya 117 00:05:16,160 --> 00:05:18,900 memberitahu pengkompil, hey, supaya anda tahu, 118 00:05:18,900 --> 00:05:20,850 Saya akan menulis fungsi di kemudian hari 119 00:05:20,850 --> 00:05:22,987 dan di sini adalah apa yang ia akan kelihatan seperti. 120 00:05:22,987 --> 00:05:24,820 Sebab untuk ini adalah kerana penyusun boleh 121 00:05:24,820 --> 00:05:27,900 melakukan beberapa perkara pelik jika mereka melihat satu set simbol-simbol 122 00:05:27,900 --> 00:05:29,560 bahawa mereka tidak biasa dengan. 123 00:05:29,560 --> 00:05:33,000 Oleh itu, kita hanya memberikan pengkompil yang mengetuai, saya mewujudkan fungsi 124 00:05:33,000 --> 00:05:35,492 dan ia akan melakukan ini. 125 00:05:35,492 --> 00:05:38,450 Pengisytiharan fungsi umumnya jika anda menganjurkan kod anda dengan cara yang 126 00:05:38,450 --> 00:05:41,872 bahawa orang lain akan dapat memahami dan menggunakan, 127 00:05:41,872 --> 00:05:44,330 biasanya anda mahu meletakkan semua pengisytiharan fungsi anda 128 00:05:44,330 --> 00:05:48,220 di bahagian paling atas kod anda, betul-betul sebelum anda mula menulis utama walaupun. 129 00:05:48,220 --> 00:05:50,770 Dan mudah, ada bentuk yang sangat standard 130 00:05:50,770 --> 00:05:53,500 bahawa setiap akuan fungsi berikut. 131 00:05:53,500 --> 00:05:56,090 Mereka semua cukup banyak kelihatan seperti ini. 132 00:05:56,090 --> 00:06:01,440 Terdapat tiga bahagian ke fungsi perisytiharan, jenis pulangan, nama, 133 00:06:01,440 --> 00:06:03,420 dan senarai hujah. 134 00:06:03,420 --> 00:06:07,180 >> Sekarang jenis pulangan adalah apa jenis pembolehubah output fungsi hati. 135 00:06:07,180 --> 00:06:10,710 Jadi, sebagai contoh, jika kita berfikir kembali minit yang lalu dengan mendarabkan dua 136 00:06:10,710 --> 00:06:15,690 fungsi nombor, apa yang kita harapkan jika kita darab integer dengan integer 137 00:06:15,690 --> 00:06:18,502 output akan menjadi mungkin integer, betul. 138 00:06:18,502 --> 00:06:20,710 Didarab dua integer bersama-sama, anda akan mendapat integer. 139 00:06:20,710 --> 00:06:24,167 Jadi jenis pulangan yang fungsi akan menjadi int. 140 00:06:24,167 --> 00:06:26,000 Nama adalah apa yang anda mahu untuk memanggil fungsi anda. 141 00:06:26,000 --> 00:06:29,330 Ini mungkin yang paling penting sebahagian daripada akuan majlis itu, 142 00:06:29,330 --> 00:06:30,827 dari segi fungsi. 143 00:06:30,827 --> 00:06:33,160 Tetapi sebenarnya mungkin salah satu bahagian yang paling penting 144 00:06:33,160 --> 00:06:36,243 akuan fungsi dari segi mengetahui apa fungsi sebenarnya 145 00:06:36,243 --> 00:06:37,120 tidak. 146 00:06:37,120 --> 00:06:40,474 Jika anda menamakan f fungsi atau g atau h atau rahsia atau sesuatu seperti itu, 147 00:06:40,474 --> 00:06:42,765 anda mungkin akan mendapat sedikit tersandung cuba 148 00:06:42,765 --> 00:06:44,650 ingat apa fungsi-fungsi itu lakukan. 149 00:06:44,650 --> 00:06:47,880 Jadi ia adalah penting untuk memberikan anda nama-nama yang bermakna fungsi ini. 150 00:06:47,880 --> 00:06:51,030 >> Akhir sekali, senarai argumen senarai dipisahkan oleh koma yang 151 00:06:51,030 --> 00:06:55,260 semua input kepada fungsi anda, setiap yang mempunyai jenis dan nama. 152 00:06:55,260 --> 00:06:57,840 Jadi bukan sahaja yang anda perlu menentukan jenis pembolehubah apa 153 00:06:57,840 --> 00:07:00,760 output fungsi hati, anda juga ingin menentukan 154 00:07:00,760 --> 00:07:07,694 jenis dan jenis pembolehubah yang fungsi akan menerima sebagai input. 155 00:07:07,694 --> 00:07:08,860 Jadi mari kita buat contoh di sini. 156 00:07:08,860 --> 00:07:10,220 Mari kita melihat dengan pada satu-satu yang lebih konkrit. 157 00:07:10,220 --> 00:07:13,130 Jadi di sini adalah satu contoh fungsi pengisytiharan untuk fungsi yang 158 00:07:13,130 --> 00:07:14,925 akan menambah dua integer bersama-sama. 159 00:07:14,925 --> 00:07:17,800 Jumlah bagi dua integer akan integer juga, kerana kita hanya 160 00:07:17,800 --> 00:07:18,450 dibincangkan. 161 00:07:18,450 --> 00:07:21,610 Dan sebagainya jenis pulangan, di sini di hijau, akan menjadi int. 162 00:07:21,610 --> 00:07:25,190 Yang hanya memberitahu kita bahawa menambah dua ints akan, pada akhir hari, 163 00:07:25,190 --> 00:07:28,799 output, atau meludah semula keluar kepada kami, integer. 164 00:07:28,799 --> 00:07:31,590 Memandangkan apa fungsi ini tidak kita mahu memberikan nama yang bermakna. 165 00:07:31,590 --> 00:07:33,630 Tambah dua ints kelihatan sesuai, memandangkan 166 00:07:33,630 --> 00:07:37,574 kami mengambil dua integer sebagai input dan mudah-mudahan menambah mereka bersama-sama. 167 00:07:37,574 --> 00:07:40,240 Ia mungkin sedikit rumit nama dan terus-terang fungsi ini 168 00:07:40,240 --> 00:07:42,430 mungkin tidak perlu kerana kita mempunyai tambahan 169 00:07:42,430 --> 00:07:46,310 operator, jika anda ingat dari kami perbincangan operator, sebelum ini. 170 00:07:46,310 --> 00:07:49,650 Tetapi mari kita hanya mengatakan dengan demi Hujah bahawa fungsi ini adalah berguna 171 00:07:49,650 --> 00:07:52,860 dan dengan itu kita akan memanggilnya menambah dua ints. 172 00:07:52,860 --> 00:07:55,230 Akhir sekali, fungsi ini mengambil masa dua input. 173 00:07:55,230 --> 00:07:56,960 Setiap yang integer. 174 00:07:56,960 --> 00:07:59,900 Jadi kita mempunyai koma ini senarai dipisahkan input. 175 00:07:59,900 --> 00:08:02,830 Sekarang kita umumnya mahu memberi nama kepada setiap daripada mereka 176 00:08:02,830 --> 00:08:05,070 supaya mereka boleh digunakan dalam majlis itu. 177 00:08:05,070 --> 00:08:07,180 Nama-nama yang tidak terlalu penting. 178 00:08:07,180 --> 00:08:11,400 >> Dalam kes ini, kita tidak semestinya mempunyai apa-apa makna yang menyertainya. 179 00:08:11,400 --> 00:08:13,140 Jadi kita hanya boleh memanggil mereka a dan b. 180 00:08:13,140 --> 00:08:14,257 Itu betul-betul halus. 181 00:08:14,257 --> 00:08:16,090 Jika bagaimanapun, anda mendapati diri anda dalam keadaan 182 00:08:16,090 --> 00:08:19,497 di mana nama-nama pembolehubah sebenarnya mungkin penting, 183 00:08:19,497 --> 00:08:21,830 anda mungkin mahu untuk memanggil mereka sesuatu yang lain daripada a dan b 184 00:08:21,830 --> 00:08:24,701 untuk memberi mereka sesuatu yang lebih simbolik bermakna. 185 00:08:24,701 --> 00:08:27,700 Tetapi dalam kes ini, kita tidak benar-benar tahu apa-apa lagi mengenai majlis itu. 186 00:08:27,700 --> 00:08:29,320 Kami hanya mahu menambah dua integer. 187 00:08:29,320 --> 00:08:32,429 Oleh itu, kita hanya akan memanggil mereka bulat a dan b. 188 00:08:32,429 --> 00:08:33,990 Itulah salah satu contoh. 189 00:08:33,990 --> 00:08:36,287 >> Mengapa tidak anda mengambil kedua untuk berfikir tentang satu ini, 190 00:08:36,287 --> 00:08:38,870 bagaimana anda akan menulis fungsi pengisytiharan untuk fungsi yang 191 00:08:38,870 --> 00:08:42,940 mendarab dua terapung nombor titik? 192 00:08:42,940 --> 00:08:45,910 Adakah anda ingat apa yang nombor titik terapung adalah? 193 00:08:45,910 --> 00:08:48,120 Apa yang akan fungsi ini pengisytiharan kelihatan seperti? 194 00:08:48,120 --> 00:08:53,330 Saya benar-benar mengesyorkan anda menjeda video sini dan mengambil berapa banyak masa yang anda perlukan. 195 00:08:53,330 --> 00:08:55,521 Fikirkan tentang apa yang ini pengisytiharan fungsi tersebut? 196 00:08:55,521 --> 00:08:56,770 Apa yang akan jenis pulangan menjadi? 197 00:08:56,770 --> 00:08:58,103 Apa yang akan nama yang bermakna menjadi? 198 00:08:58,103 --> 00:08:59,580 Apa yang akan menjadi input? 199 00:08:59,580 --> 00:09:03,190 Jadi mengapa tidak anda menjeda video di sini dan menulis-up akuan fungsi 200 00:09:03,190 --> 00:09:07,640 untuk sesuatu fungsi yang akan membiak dua nombor titik terapung bersama-sama. 201 00:09:07,640 --> 00:09:09,330 Mudah-mudahan anda berhenti video. 202 00:09:09,330 --> 00:09:12,950 >> Oleh itu, mari kita lihat pada contoh satu pengisytiharan mungkin. 203 00:09:12,950 --> 00:09:17,340 Float mult dua sahih terapung x, apungan y. 204 00:09:17,340 --> 00:09:19,090 Hasil daripada dua nombor titik terapung, 205 00:09:19,090 --> 00:09:21,710 yang ingat adalah bagaimana kita mewakili nombor nyata 206 00:09:21,710 --> 00:09:26,770 atau nombor dengan nilai-nilai perpuluhan dalam c, akan menjadi nombor titik terapung. 207 00:09:26,770 --> 00:09:28,570 Apabila anda mendarab perpuluhan dengan perpuluhan, 208 00:09:28,570 --> 00:09:30,460 anda mungkin akan mendapat nombor perpuluhan. 209 00:09:30,460 --> 00:09:31,960 Anda mahu memberikan nama yang berkaitan. 210 00:09:31,960 --> 00:09:33,810 Darab dua sahih kelihatan halus. 211 00:09:33,810 --> 00:09:36,620 Tetapi anda benar-benar boleh memanggil ia mult dua pelampung, atau terapung mult. 212 00:09:36,620 --> 00:09:39,540 Apa-apa seperti itu, selagi ia memberikan beberapa makna sebenar untuk apa 213 00:09:39,540 --> 00:09:41,469 kotak hitam ini akan lakukan. 214 00:09:41,469 --> 00:09:44,260 Dan sekali lagi, dalam kes ini, kita tidak seolah-olah mempunyai apa-apa makna yang dilampirkan 215 00:09:44,260 --> 00:09:46,390 kepada nama-nama yang pembolehubah kita lulus dalam, 216 00:09:46,390 --> 00:09:48,645 jadi kita hanya memanggil mereka x dan y. 217 00:09:48,645 --> 00:09:51,020 Sekarang jika anda memanggil mereka sesuatu lagi, itu betul-betul halus. 218 00:09:51,020 --> 00:09:53,310 Malah, jika anda lakukan pengakuan ini bukannya 219 00:09:53,310 --> 00:09:55,450 menggunakan beregu sebaliknya daripada terapung, jika anda masih ingat 220 00:09:55,450 --> 00:09:59,100 yang beregu adalah berbeza cara untuk lebih tepat 221 00:09:59,100 --> 00:10:02,330 nyatakan nombor nyata atau terapung pembolehubah mata. 222 00:10:02,330 --> 00:10:03,620 Itu betul-betul halus juga. 223 00:10:03,620 --> 00:10:04,670 Salah seorang daripada mereka akan menjadi baik. 224 00:10:04,670 --> 00:10:06,711 Malah, terdapat beberapa kombinasi yang berbeza 225 00:10:06,711 --> 00:10:08,410 cara untuk mengisytiharkan fungsi ini. 226 00:10:08,410 --> 00:10:10,884 Tetapi ini adalah dua yang cukup baik. 227 00:10:10,884 --> 00:10:12,550 Kami telah mengisytiharkan fungsi, yang hebat. 228 00:10:12,550 --> 00:10:15,700 Kami telah memberitahu pengkompil apa yang ia ini, apa yang kita akan lakukan. 229 00:10:15,700 --> 00:10:17,630 Sekarang mari kita benar-benar menulis fungsi itu. 230 00:10:17,630 --> 00:10:20,750 Mari kita memberikan definisi, supaya di dalam kotak hitam 231 00:10:20,750 --> 00:10:22,840 tingkah laku boleh diramal yang berlaku. 232 00:10:22,840 --> 00:10:26,270 Malah, kita sedang berganda dua sebenar nombor bersama-sama, atau menambah nombor 233 00:10:26,270 --> 00:10:29,760 bersama-sama, atau melakukan apa sahaja yang kami ajukan fungsi kita lakukan. 234 00:10:29,760 --> 00:10:32,780 >> Jadi sebenarnya, mari kita cuba dan menentukan membiak dua sahih yang kita hanya 235 00:10:32,780 --> 00:10:35,350 bercakap tentang kedua yang lalu. 236 00:10:35,350 --> 00:10:38,560 Sekarang awal definisi fungsi 237 00:10:38,560 --> 00:10:41,720 kelihatan hampir sama sebagai suatu perisytiharan fungsi. 238 00:10:41,720 --> 00:10:43,170 Saya mempunyai kedua-dua mereka di sini. 239 00:10:43,170 --> 00:10:47,770 Di bahagian atas adalah akuan majlis itu, jenis, nama, dipisahkan oleh koma hujah 240 00:10:47,770 --> 00:10:49,410 senarai, koma bertitik. 241 00:10:49,410 --> 00:10:53,800 Koma bertitik ini menunjukkan bahawa iaitu pengisytiharan fungsi. 242 00:10:53,800 --> 00:10:57,060 Permulaan majlis itu definisi kelihatan hampir sama 243 00:10:57,060 --> 00:11:03,790 yang sama, jenis, nama, dipisahkan oleh koma senarai hujah, tiada koma bertitik, 244 00:11:03,790 --> 00:11:05,206 membuka pendakap kerinting. 245 00:11:05,206 --> 00:11:07,580 The kerinting terbuka, sama seperti kita telah lakukan dengan utama, 246 00:11:07,580 --> 00:11:09,540 bermakna bahawa kita sekarang bermula untuk menentukan 247 00:11:09,540 --> 00:11:14,567 apa yang berlaku di dalam kotak hitam yang kami telah membuat keputusan untuk memanggil mult dua sahih. 248 00:11:14,567 --> 00:11:15,900 Berikut adalah salah satu cara untuk melaksanakannya. 249 00:11:15,900 --> 00:11:20,370 Kita boleh berkata, kita boleh mengisytiharkan yang baru ubah jenis apungan dipanggil produk 250 00:11:20,370 --> 00:11:24,020 dan menetapkan pembolehubah yang dengan nilai x kali y. 251 00:11:24,020 --> 00:11:27,306 Dan kemudian kembali produk. 252 00:11:27,306 --> 00:11:28,430 Apakah pulangan bermakna di sini. 253 00:11:28,430 --> 00:11:31,090 Well pulangan adalah cara kita menunjukkan bahawa cara 254 00:11:31,090 --> 00:11:33,400 kita lulus output menarik diri. 255 00:11:33,400 --> 00:11:38,160 Jadi kembali sesuatu, adalah sama seperti, ini adalah keluaran dari kotak hitam. 256 00:11:38,160 --> 00:11:40,732 Jadi itulah bagaimana anda melakukannya. 257 00:11:40,732 --> 00:11:42,190 Berikut adalah satu lagi cara untuk melaksanakannya. 258 00:11:42,190 --> 00:11:45,050 Kami hanya dapat kembali x kali y. 259 00:11:45,050 --> 00:11:45,870 x ialah apungan. 260 00:11:45,870 --> 00:11:46,660 y ialah apungan. 261 00:11:46,660 --> 00:11:48,490 Jadi x kali y juga apungan. 262 00:11:48,490 --> 00:11:50,750 Kita tidak perlu mencipta pembolehubah lain. 263 00:11:50,750 --> 00:11:56,750 Jadi itulah cara yang berbeza untuk melaksanakan kotak hitam yang sama yang tepat. 264 00:11:56,750 --> 00:11:58,570 >> Sekarang mengambil seketika, jeda video sekali lagi, 265 00:11:58,570 --> 00:12:01,680 dan cuba dan menentukan menambah dua ints, yang merupakan fungsi lain yang kami 266 00:12:01,680 --> 00:12:03,090 bercakap tentang masa yang lalu. 267 00:12:03,090 --> 00:12:06,440 Sekali lagi di sini, saya telah meletakkan fungsi perisytiharan, dan sebagainya koma bertitik, 268 00:12:06,440 --> 00:12:08,420 dan kerinting terbuka dan kerinting tertutup 269 00:12:08,420 --> 00:12:12,080 pendakap untuk menunjukkan di mana kita akan memenuhi dalam kandungan menambah dua ints, 270 00:12:12,080 --> 00:12:15,530 supaya kita menentukan tertentu tingkah laku dalam kotak hitam. 271 00:12:15,530 --> 00:12:16,380 Jadi jeda video. 272 00:12:16,380 --> 00:12:18,790 Dan mengambil masa sebanyak anda perlu cuba dan menentukan 273 00:12:18,790 --> 00:12:25,040 yang pelaksanaan menambah dua ints, seperti yang apabila fungsi output nilai, 274 00:12:25,040 --> 00:12:29,209 ia tidak, sebenarnya, kembali yang jumlah kedua-dua input. 275 00:12:29,209 --> 00:12:32,000 Jadi seperti contoh sebelum ini, terdapat beberapa cara yang berbeza 276 00:12:32,000 --> 00:12:34,210 bahawa anda boleh melaksanakan menambah dua ints. 277 00:12:34,210 --> 00:12:35,130 Berikut adalah satu. 278 00:12:35,130 --> 00:12:37,172 Di sini dalam oren saya telah hanya mempunyai beberapa comments-- 279 00:12:37,172 --> 00:12:38,880 Saya baru sahaja menambah beberapa komen untuk menunjukkan 280 00:12:38,880 --> 00:12:41,400 apa yang berlaku pada setiap baris kod. 281 00:12:41,400 --> 00:12:45,430 Jadi saya mengisytiharkan pembolehubah dipanggil jumlah jenis int. 282 00:12:45,430 --> 00:12:47,279 Aku berkata jumlah sama tambah b. 283 00:12:47,279 --> 00:12:50,070 Itulah di mana kita sebenarnya melakukan kerja menambah dan b bersama-sama. 284 00:12:50,070 --> 00:12:51,850 Dan saya kembali jumlah. 285 00:12:51,850 --> 00:12:56,460 Dan yang masuk akal kerana jumlah adalah pembolehubah jenis int. 286 00:12:56,460 --> 00:13:00,180 Dan apa yang data jenis ini fungsi memberitahu saya ia akan output? 287 00:13:00,180 --> 00:13:00,680 Int. 288 00:13:00,680 --> 00:13:03,072 Jadi, saya kembali sejumlah wang, yang adalah pembolehubah integer. 289 00:13:03,072 --> 00:13:06,030 Dan yang masuk akal memandangkan apa yang kita ada diisytiharkan dan ditakrifkan fungsi kami 290 00:13:06,030 --> 00:13:07,320 yang perlu dilakukan. 291 00:13:07,320 --> 00:13:09,700 >> Kini anda juga boleh menentukan fungsi dengan cara ini, 292 00:13:09,700 --> 00:13:15,260 int jumlah sama tambah b-- skip yang pertama step-- dan kemudian, kembali jumlah. 293 00:13:15,260 --> 00:13:17,760 Sekarang, anda boleh mempunyai juga dilaksanakan dengan cara ini, 294 00:13:17,760 --> 00:13:19,180 yang Saya sangat tidak mengesyorkan. 295 00:13:19,180 --> 00:13:22,540 Ini adalah gaya buruk bagi satu perkara dan reka bentuk yang benar-benar buruk, 296 00:13:22,540 --> 00:13:24,420 tetapi ia tidak, sebenarnya, kerja. 297 00:13:24,420 --> 00:13:30,199 Jika anda mengambil kod ini, yang merupakan int menambah buruk penambah dot c, dan menggunakannya. 298 00:13:30,199 --> 00:13:31,990 Ia sebenarnya tidak menambah dua integer bersama-sama. 299 00:13:31,990 --> 00:13:37,632 Ia adalah satu pelaksanaan yang sangat miskin tingkah laku tertentu. 300 00:13:37,632 --> 00:13:38,340 Tetapi ia bekerja. 301 00:13:38,340 --> 00:13:41,200 Ia hanya di sini untuk menggambarkan titik bahawa kita tidak benar-benar 302 00:13:41,200 --> 00:13:44,530 peduli apa yang berlaku di dalam kotak hitam, selagi 303 00:13:44,530 --> 00:13:46,510 kerana ia mempunyai output yang kita harapkan. 304 00:13:46,510 --> 00:13:48,870 Ini adalah kotak hitam direka dengan buruk. 305 00:13:48,870 --> 00:13:53,801 Tetapi pada akhir hari, ia output masih hasil tambah + b. 306 00:13:53,801 --> 00:13:54,300 Baiklah. 307 00:13:54,300 --> 00:13:56,320 Oleh itu, kita telah diisytiharkan fungsi. 308 00:13:56,320 --> 00:13:57,490 Dan kita telah ditakrifkan fungsi. 309 00:13:57,490 --> 00:13:58,540 Jadi, itu benar-benar baik. 310 00:13:58,540 --> 00:14:03,020 Sekarang mari kita mulakan untuk menggunakan fungsi-fungsi bahawa kita telah diisytiharkan dan kami telah ditakrifkan. 311 00:14:03,020 --> 00:14:05,960 Untuk memanggil function-- ia sebenarnya cantik easy-- semua yang perlu anda lakukan 312 00:14:05,960 --> 00:14:09,070 adalah lulus hujah-hujah yang sesuai, hujah-hujah jenis data 313 00:14:09,070 --> 00:14:11,600 bahawa ia menjangka, dan kemudian memberikan pulangan 314 00:14:11,600 --> 00:14:15,190 nilai fungsi yang dan alasan this-- me-- 315 00:14:15,190 --> 00:14:19,390 memberikan nilai pulangan fungsi yang kepada sesuatu jenis yang betul. 316 00:14:19,390 --> 00:14:22,410 >> Jadi mari kita lihat ini dalam amalan dalam fail 317 00:14:22,410 --> 00:14:27,730 dipanggil penambah 1 dot c, yang Saya ada dalam IDE cs50 saya. 318 00:14:27,730 --> 00:14:31,042 Jadi di sini adalah penambah 1 dot c. 319 00:14:31,042 --> 00:14:33,500 Pada mulanya anda melihat saya mempunyai saya termasuk, pound termasuk, 320 00:14:33,500 --> 00:14:35,460 standard IO, dan cs50 dot h. 321 00:14:35,460 --> 00:14:37,700 Dan kemudian saya mempunyai akuan fungsi saya. 322 00:14:37,700 --> 00:14:39,570 Ini adalah di mana saya memberitahu pengkompil Saya 323 00:14:39,570 --> 00:14:42,850 akan menulis fungsi dipanggil menambah dua ints. 324 00:14:42,850 --> 00:14:45,780 Ia akan output integer jenis pembolehubah. 325 00:14:45,780 --> 00:14:47,360 Itulah yang bahagian ini adalah di sini. 326 00:14:47,360 --> 00:14:51,950 Dan kemudian saya mempunyai dua input kepadanya yang dan b, setiap yang integer. 327 00:14:51,950 --> 00:14:58,250 Dalam utama, saya meminta pengguna untuk input dengan berkata, berilah integer. 328 00:14:58,250 --> 00:15:01,040 Dan mereka digesa untuk lupa int, yang merupakan fungsi yang 329 00:15:01,040 --> 00:15:03,240 termasuk dalam perpustakaan CS50. 330 00:15:03,240 --> 00:15:07,660 Dan itu akan disimpan dalam x, pembolehubah integer. 331 00:15:07,660 --> 00:15:09,886 >> Kemudian kami meminta mereka untuk integer lain. 332 00:15:09,886 --> 00:15:13,070 Kita mendapat integer lain dan menyimpan bahawa dalam y. 333 00:15:13,070 --> 00:15:17,990 Dan kemudian, di sini pada baris 28, adalah di mana kita membuat panggilan fungsi kami. 334 00:15:17,990 --> 00:15:23,770 Kami katakan, setaraf z int menambah 2 ints x koma y. 335 00:15:23,770 --> 00:15:25,980 Adakah anda melihat mengapa ini masuk akal? 336 00:15:25,980 --> 00:15:29,710 x ialah pembolehubah jenis integer dan y adalah pembolehubah jenis integer. 337 00:15:29,710 --> 00:15:31,220 Jadi itulah yang baik. 338 00:15:31,220 --> 00:15:34,570 Yang masuk akal dengan apa fungsi kami pengisytiharan di talian 17 kelihatan seperti. 339 00:15:34,570 --> 00:15:38,300 Yang dipisahkan oleh koma senarai input menjangka dua integer, a dan b. 340 00:15:38,300 --> 00:15:40,300 Dalam kes itu, kita boleh memanggil mereka apa sahaja yang kita mahu. 341 00:15:40,300 --> 00:15:42,300 Ia hanya menjangka dua integer. 342 00:15:42,300 --> 00:15:44,930 Dan x ialah integer dan y ialah integer. 343 00:15:44,930 --> 00:15:45,640 Yang bekerja. 344 00:15:45,640 --> 00:15:48,680 >> Dan kita tahu fungsi yang akan untuk output bilangan bulat juga. 345 00:15:48,680 --> 00:15:51,290 Dan supaya kita menyimpan output fungsi, 346 00:15:51,290 --> 00:15:56,050 menambah dua ints, dalam jenis integer berubah-ubah, yang kita panggil z. 347 00:15:56,050 --> 00:16:01,980 Dan kemudian kita boleh berkata, jumlah peratus i dan i adalah peratus peratus i. 348 00:16:01,980 --> 00:16:06,210 x, y dan z masing-masing mengisi mereka peratus i-kanak. 349 00:16:06,210 --> 00:16:08,334 Apa yang dimaksudkan dengan menambah dua ints kelihatan seperti? 350 00:16:08,334 --> 00:16:09,125 Ia agak mudah. 351 00:16:09,125 --> 00:16:11,270 Ia adalah salah satu yang kami hanya melihat kedua yang lalu, 352 00:16:11,270 --> 00:16:14,390 jumlah int sama sejumlah + b kembali. 353 00:16:14,390 --> 00:16:15,420 Ini berfungsi? 354 00:16:15,420 --> 00:16:17,270 Mari kita menyimpan fail. 355 00:16:17,270 --> 00:16:22,080 Dan kemudian turun di sini di terminal saya Saya akan membuat penambah 1, 356 00:16:22,080 --> 00:16:23,000 dan saya mengosongkan skrin saya. 357 00:16:23,000 --> 00:16:25,791 Saya akan zum masuk kerana saya tahu ia sedikit sukar untuk melihat. 358 00:16:25,791 --> 00:16:31,520 359 00:16:31,520 --> 00:16:33,770 >> Oleh itu, kita menyusun program ini sebagai penambah 1. 360 00:16:33,770 --> 00:16:37,910 Oleh itu, kita boleh lakukan dot mengurangkan penambah 1. 361 00:16:37,910 --> 00:16:40,060 Berikan saya integer, 10. 362 00:16:40,060 --> 00:16:42,380 Berikan saya integer lain, 20. 363 00:16:42,380 --> 00:16:45,200 Jumlah 10 dan 20 adalah 30. 364 00:16:45,200 --> 00:16:47,615 Oleh itu, kita panggilan fungsi yang berjaya. 365 00:16:47,615 --> 00:16:55,820 Anda boleh menjalankan fungsi lagi, negatif 10, 17 jumlah negatif 10 dan 17 adalah 7. 366 00:16:55,820 --> 00:16:57,120 Fungsi ini berfungsi. 367 00:16:57,120 --> 00:16:59,240 Ia mempunyai tingkah laku yang kita mengharapkan ia. 368 00:16:59,240 --> 00:17:03,610 Dan dengan itu kita telah membuat yang berjaya fungsi, definisi, perisytiharan, 369 00:17:03,610 --> 00:17:07,288 dan panggilan fungsi yang berjaya. 370 00:17:07,288 --> 00:17:09,079 Pasangan pelbagai mata tentang fungsi 371 00:17:09,079 --> 00:17:10,611 sebelum kita membuat kesimpulan seksyen ini. 372 00:17:10,611 --> 00:17:12,319 Ingat dari kami perbincangan mengenai jenis data, 373 00:17:12,319 --> 00:17:16,109 sebelum ini, yang berfungsi kadang-kadang boleh mengambil input. 374 00:17:16,109 --> 00:17:17,930 Jika itu berlaku, kita mengisytiharkan fungsi 375 00:17:17,930 --> 00:17:19,788 sebagai mempunyai senarai hujah tidak sah. 376 00:17:19,788 --> 00:17:21,579 Adakah anda masih ingat apa yang fungsi yang paling biasa 377 00:17:21,579 --> 00:17:25,036 kita lihat setakat ini yang mengambil senarai hujah tidak sah itu? 378 00:17:25,036 --> 00:17:27,300 Ia adalah utama. 379 00:17:27,300 --> 00:17:30,850 Ingat juga fungsi yang kadang-kadang sebenarnya tidak mempunyai output. 380 00:17:30,850 --> 00:17:34,210 Dalam kes itu, kita mengisytiharkan fungsi sebagai mempunyai jenis pulangan tidak sah. 381 00:17:34,210 --> 00:17:37,880 Mari kita membuat kesimpulan seksyen ini oleh menangani masalah amalan. 382 00:17:37,880 --> 00:17:39,900 >> Jadi di sini adalah masalah diletakkan. 383 00:17:39,900 --> 00:17:43,630 Saya mahu anda untuk menulis fungsi digelar Segi tiga yang sah. 384 00:17:43,630 --> 00:17:47,410 Apa fungsi ini perlu dilakukan yang mengambil masa tiga nombor nyata 385 00:17:47,410 --> 00:17:51,930 yang mewakili panjang tiga belah segi tiga sebagai parameternya, 386 00:17:51,930 --> 00:17:54,550 atau hujah, atau mana- inputs-- satu lagi set sinonim 387 00:17:54,550 --> 00:17:57,340 yang mungkin anda hadapi. 388 00:17:57,340 --> 00:18:01,120 Fungsi ini perlu sama ada output benar atau palsu 389 00:18:01,120 --> 00:18:04,960 bergantung kepada sama ada ketiga-tiga panjang mampu membuat segi tiga. 390 00:18:04,960 --> 00:18:09,930 Adakah anda masih ingat jenis data yang kita digunakan untuk menunjukkan benar atau salah? 391 00:18:09,930 --> 00:18:11,436 Sekarang bagaimana anda melaksanakan ini? 392 00:18:11,436 --> 00:18:13,810 Juga tahu ada pasangan peraturan mengenai segi tiga 393 00:18:13,810 --> 00:18:15,480 yang sebenarnya berguna untuk mengetahui. 394 00:18:15,480 --> 00:18:18,292 Segitiga A boleh mempunyai pihak dengan panjang yang positif. 395 00:18:18,292 --> 00:18:19,000 Yang masuk akal. 396 00:18:19,000 --> 00:18:21,432 Anda mungkin berkata, duh. 397 00:18:21,432 --> 00:18:23,390 Perkara lain yang perlu diambil perhatian walaupun, adalah bahawa jumlah wang yang 398 00:18:23,390 --> 00:18:25,484 daripada panjang mana-mana kedua-dua pihak segitiga 399 00:18:25,484 --> 00:18:27,650 telah menjadi lebih besar daripada panjang sisi ketiga. 400 00:18:27,650 --> 00:18:28,690 Itulah sebenarnya benar. 401 00:18:28,690 --> 00:18:34,150 Anda tidak boleh mempunyai segi tiga sisi 1, 2 dan 4, sebagai contoh, kerana 1 + 2 402 00:18:34,150 --> 00:18:36,270 tidak lebih besar daripada 4. 403 00:18:36,270 --> 00:18:38,870 Jadi mereka adalah peraturan yang menentukan sama ada tiga 404 00:18:38,870 --> 00:18:42,740 input difikirkan boleh membentuk segi tiga. 405 00:18:42,740 --> 00:18:46,360 Oleh itu, mengambil beberapa minit dan mengisytiharkan dan kemudian menentukan 406 00:18:46,360 --> 00:18:49,810 fungsi ini dipanggil sah segitiga, supaya ia benar-benar 407 00:18:49,810 --> 00:18:51,650 mempunyai tingkah laku yang dinyatakan di sini. 408 00:18:51,650 --> 00:18:57,030 >> Ia akan mengeluarkan kenyataan jika ketiga-tiga pihak mampu terdiri daripada segi tiga, 409 00:18:57,030 --> 00:19:01,950 dan palsu jika tidak, Bersedia untuk melihat bagaimana anda lakukan? 410 00:19:01,950 --> 00:19:04,650 Berikut adalah satu pelaksanaan segi tiga yang sah. 411 00:19:04,650 --> 00:19:05,770 Ia bukan satu-satunya. 412 00:19:05,770 --> 00:19:07,770 Anda mungkin berbeza sedikit. 413 00:19:07,770 --> 00:19:11,040 Tetapi yang satu ini tidak, sebenarnya, mempunyai tingkah laku yang kita harapkan. 414 00:19:11,040 --> 00:19:14,450 Kami mengisytiharkan fungsi kami di paling atas, bool segi tiga yang sah 415 00:19:14,450 --> 00:19:16,630 terapung apung x y apungan z. 416 00:19:16,630 --> 00:19:18,930 Jadi sekali lagi, fungsi ini mengambil masa tiga nombor nyata 417 00:19:18,930 --> 00:19:22,280 sebagai hujah, terapung pembolehubah nilai mata, 418 00:19:22,280 --> 00:19:26,510 dan output yang benar atau palsu nilai, yang merupakan Boolean, ingat. 419 00:19:26,510 --> 00:19:28,660 Jadi itulah sebabnya jenis pulangan adalah bool. 420 00:19:28,660 --> 00:19:30,016 Kemudian kita menentukan fungsi. 421 00:19:30,016 --> 00:19:33,140 Perkara pertama yang kami lakukan adalah periksa untuk memastikan bahawa semua pihak adalah positif. 422 00:19:33,140 --> 00:19:37,010 Jika x kurang daripada atau sama kepada 0, atau jika y = 0, 423 00:19:37,010 --> 00:19:41,050 atau jika z adalah kurang daripada atau sama dengan 0, yang tidak mungkin menjadi segi tiga. 424 00:19:41,050 --> 00:19:42,380 Mereka tidak mempunyai sisi positif. 425 00:19:42,380 --> 00:19:45,790 Dan supaya kita boleh kembali palsu dalam keadaan itu. 426 00:19:45,790 --> 00:19:49,010 Seterusnya, kami periksa untuk memastikan bahawa setiap pasangan input 427 00:19:49,010 --> 00:19:51,830 adalah lebih besar daripada yang ketiga. 428 00:19:51,830 --> 00:19:54,530 >> Jadi, jika x campur y kurang daripada atau sama dengan z, 429 00:19:54,530 --> 00:19:57,060 atau jika x tambah z adalah kurang daripada atau sama dengan y, 430 00:19:57,060 --> 00:20:01,730 atau jika y tambah z adalah kurang daripada atau sama dengan x, yang juga tidak boleh menjadi segi tiga yang sah. 431 00:20:01,730 --> 00:20:03,800 Oleh itu, kita kembali palsu lagi. 432 00:20:03,800 --> 00:20:06,900 Dengan andaian kita lulus kedua-cek walaupun, maka kita boleh kembali benar. 433 00:20:06,900 --> 00:20:09,440 Oleh kerana ketiga-tiga pihak mampu returning-- 434 00:20:09,440 --> 00:20:11,647 mewujudkan segi tiga yang sah. 435 00:20:11,647 --> 00:20:12,230 Dan itu sahaja. 436 00:20:12,230 --> 00:20:13,830 Anda kini telah diisytiharkan dan ditakrifkan. 437 00:20:13,830 --> 00:20:17,330 Dan anda mungkin boleh kini digunakan dan memanggil fungsi ini. 438 00:20:17,330 --> 00:20:19,470 Bagus. 439 00:20:19,470 --> 00:20:20,650 Saya Doug Lloyd. 440 00:20:20,650 --> 00:20:22,820 Ini adalah cs50. 441 00:20:22,820 --> 00:20:24,340