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 mengatasi topik yang sangat besar, fungsi. 4 00:00:08,877 --> 00:00:11,460 Sejauh ini dalam kursus, 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 cukup sederhana. 7 00:00:14,260 --> 00:00:16,940 Anda tidak perlu memiliki semua ini cabang dan hal yang terjadi. 8 00:00:16,940 --> 00:00:18,773 Kami hanya dapat cocok semua dalam utama dan 9 00:00:18,773 --> 00:00:20,407 tidak mendapatkan sangat luar biasa. 10 00:00:20,407 --> 00:00:22,990 Tapi seperti kursus berjalan dan Anda mulai mengembangkan program 11 00:00:22,990 --> 00:00:26,260 independen, mereka mungkin akan untuk memulai untuk mendapatkan lebih banyak dari 10 12 00:00:26,260 --> 00:00:27,200 atau 15 baris. 13 00:00:27,200 --> 00:00:31,400 Anda mungkin mendapatkan ratusan atau ribuan atau puluhan ribu baris kode. 14 00:00:31,400 --> 00:00:34,690 Dan itu benar-benar tidak yang gila pikiran. 15 00:00:34,690 --> 00:00:39,720 Dengan demikian, itu mungkin bukan ide yang baik untuk menjaga semuanya dalam utama. 16 00:00:39,720 --> 00:00:43,240 Hal ini dapat mendapatkan sedikit sulit untuk menemukan apa yang Anda cari jika Anda melakukan itu. 17 00:00:43,240 --> 00:00:47,040 >> Untungnya, meskipun C, dan cukup banyak setiap bahasa pemrograman lain yang 18 00:00:47,040 --> 00:00:50,386 mungkin bekerja dengan, memungkinkan kita untuk menulis fungsi. 19 00:00:50,386 --> 00:00:52,260 Dan aku hanya akan mengambil cepat sebuah selain di sini 20 00:00:52,260 --> 00:00:54,971 menyebutkan bahwa fungsi adalah satu bidang ilmu komputer. 21 00:00:54,971 --> 00:00:57,970 Dan Anda akan melihat banyak dari mereka di berbagai titik di seluruh kursus 22 00:00:57,970 --> 00:00:59,290 dan jika Anda melanjutkan. 23 00:00:59,290 --> 00:01:02,280 Di mana ada banyak sinonim untuk kata yang sama. 24 00:01:02,280 --> 00:01:03,390 Jadi kita sebut fungsi. 25 00:01:03,390 --> 00:01:05,980 Tapi Anda mungkin juga mendengar mereka disebut sebagai prosedur, 26 00:01:05,980 --> 00:01:09,570 atau metode, terutama, jika Anda sudah pernah melakukan pemrograman berorientasi objek 27 00:01:09,570 --> 00:01:11,950 before-- dan jangan khawatir jika Anda belum, tidak 28 00:01:11,950 --> 00:01:14,280 sebuah deal-- besar tapi di bahasa berorientasi Audit 29 00:01:14,280 --> 00:01:16,129 adalah metode yang sering disebut. 30 00:01:16,129 --> 00:01:17,670 Kadang-kadang mereka disebut subrutin. 31 00:01:17,670 --> 00:01:20,690 Tapi mereka benar-benar semua merujuk dengan ide dasar yang sama. 32 00:01:20,690 --> 00:01:22,480 >> Mari kita lihat apa ide itu. 33 00:01:22,480 --> 00:01:23,310 Apa fungsi? 34 00:01:23,310 --> 00:01:26,470 Nah fungsi benar-benar tidak lebih dari sebuah kotak hitam. 35 00:01:26,470 --> 00:01:31,430 Sebuah kotak hitam yang memiliki seperangkat nol atau lebih input dan satu output. 36 00:01:31,430 --> 00:01:33,420 Jadi misalnya, ini mungkin fungsi. 37 00:01:33,420 --> 00:01:35,510 Ini adalah fungsi yang disebut func. 38 00:01:35,510 --> 00:01:39,330 Dan dibutuhkan tiga input a, b, dan c. 39 00:01:39,330 --> 00:01:42,580 Dan di dalam kotak hitam, kita tidak tahu persis apa yang dilakukannya, 40 00:01:42,580 --> 00:01:45,100 tetapi proses input dalam beberapa cara dan kemudian 41 00:01:45,100 --> 00:01:48,680 memberikan output tunggal, dalam hal ini, z. 42 00:01:48,680 --> 00:01:50,504 Sekarang untuk membuatnya sedikit kurang abstrak, kita 43 00:01:50,504 --> 00:01:52,420 bisa mengatakan bahwa mungkin kita memiliki fungsi yang disebut 44 00:01:52,420 --> 00:01:58,750 menambahkan bahwa mengambil tiga input a, b, dan c dan proses output dalam beberapa cara 45 00:01:58,750 --> 00:02:01,010 dalam kotak hitam untuk menghasilkan satu output. 46 00:02:01,010 --> 00:02:05,190 Jadi dalam hal ini, jika menambahkan mengambil 3, 6, dan 7. 47 00:02:05,190 --> 00:02:07,020 Suatu tempat di dalam menambahkan fungsi, kita akan 48 00:02:07,020 --> 00:02:09,750 mengharapkan mereka untuk ditambahkan bersama-sama untuk menghasilkan output yang 49 00:02:09,750 --> 00:02:13,220 adalah 3 ditambah 6 ditambah 7 atau 16. 50 00:02:13,220 --> 00:02:17,940 >> Demikian pula, Anda memiliki fungsi yang disebut mult yang mengambil dua input, a dan b, 51 00:02:17,940 --> 00:02:21,070 proses mereka dalam beberapa cara seperti bahwa output dari fungsi 52 00:02:21,070 --> 00:02:22,920 adalah produk dari dua input. 53 00:02:22,920 --> 00:02:25,080 Dua input dikalikan bersama-sama. 54 00:02:25,080 --> 00:02:29,150 4 dan 5 yang masuk ke mult, sesuatu terjadi, output yang kita harapkan 55 00:02:29,150 --> 00:02:31,090 adalah 20. 56 00:02:31,090 --> 00:02:32,507 Mengapa kita menyebutnya kotak hitam? 57 00:02:32,507 --> 00:02:34,840 Nah jika kita tidak menulis fungsi diri kita sendiri, yang 58 00:02:34,840 --> 00:02:36,869 kami telah melakukan cukup sedikit sejauh CS50. 59 00:02:36,869 --> 00:02:39,910 Kami telah melihat cetak f, misalnya, yang adalah fungsi yang kita tidak menulis 60 00:02:39,910 --> 00:02:42,305 diri kita sendiri, tapi kita menggunakan semua waktu. 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 itu benar-benar dilaksanakan di bawah tenda. 63 00:02:48,450 --> 00:02:51,710 >> Jadi misalnya kotak hitam saya hanya menunjukkan Anda untuk perkalian, 64 00:02:51,710 --> 00:02:53,740 mult a, b bisa defined-- dan ini hanya 65 00:02:53,740 --> 00:02:57,902 beberapa pseudocode-- bisa didefinisikan sebagai output kali b. 66 00:02:57,902 --> 00:02:58,860 Itu masuk akal, benar. 67 00:02:58,860 --> 00:03:01,370 Jika kita memiliki fungsi yang disebut mult yang mengambil dua input. 68 00:03:01,370 --> 00:03:04,750 Kami akan berharap bahwa output akan menjadi dua input dikalikan bersama-sama, 69 00:03:04,750 --> 00:03:06,240 kali b. 70 00:03:06,240 --> 00:03:09,170 Tapi mult juga bisa menjadi diimplementasikan seperti ini, 71 00:03:09,170 --> 00:03:13,150 kita memiliki variabel counter untuk bisa diatur dalam mult ke 0. 72 00:03:13,150 --> 00:03:18,000 Dan kemudian kita ulangi proses ini b kali menambahkan ke counter. 73 00:03:18,000 --> 00:03:24,270 Sebagai contoh, jika kita kalikan 3a oleh 5b, kita bisa mengatakan mengatur counter untuk 0, 74 00:03:24,270 --> 00:03:27,700 ulangi lima kali, tambahkan 3 ke meja. 75 00:03:27,700 --> 00:03:34,490 Jadi kita mulai dari 0 dan kemudian kita lakukan ini lima kali 3, 6, 9, 12, 15. 76 00:03:34,490 --> 00:03:37,500 Ini hasil yang sama. Kita masih mendapatkan 3 kali 5 hanya 77 00:03:37,500 --> 00:03:39,500 pelaksanaannya berbeda. 78 00:03:39,500 --> 00:03:41,490 >> Itulah yang kita maksud ketika kita mengatakan kotak hitam. 79 00:03:41,490 --> 00:03:44,406 Ini hanya berarti kita tidak benar-benar peduli bagaimana hal itu dilaksanakan di bawah tenda 80 00:03:44,406 --> 00:03:46,170 asalkan output adalah apa yang kita harapkan. 81 00:03:46,170 --> 00:03:49,045 Bahkan, itu bagian dari kontrak menggunakan fungsi, terutama 82 00:03:49,045 --> 00:03:50,630 fungsi yang lain menulis. 83 00:03:50,630 --> 00:03:53,980 Perilaku selalu akan menjadi khas, tak terduga 84 00:03:53,980 --> 00:03:55,420 berdasarkan nama fungsi. 85 00:03:55,420 --> 00:03:57,500 Dan itulah mengapa itu benar-benar penting ketika Anda menulis fungsi 86 00:03:57,500 --> 00:04:00,020 atau ketika orang lain menulis fungsi yang mungkin Anda gunakan, 87 00:04:00,020 --> 00:04:03,590 bahwa fungsi-fungsi memiliki jelas, nama-nama yang relatif jelas, 88 00:04:03,590 --> 00:04:04,990 dan didokumentasikan dengan baik. 89 00:04:04,990 --> 00:04:08,560 Yang pasti terjadi untuk fungsi seperti cetak f. 90 00:04:08,560 --> 00:04:09,860 >> Jadi mengapa kita menggunakan fungsi? 91 00:04:09,860 --> 00:04:14,220 Yah seperti yang saya katakan sebelumnya, jika kita menulis semua kode kita dalam hal utama 92 00:04:14,220 --> 00:04:17,120 bisa benar-benar rumit dan benar-benar rumit. 93 00:04:17,120 --> 00:04:19,980 Fungsi memungkinkan kita kemampuan untuk mengatur hal-hal dan putus 94 00:04:19,980 --> 00:04:24,540 masalah yang sangat rumit dalam banyak sub bagian yang lebih mudah dikelola. 95 00:04:24,540 --> 00:04:28,130 Fungsi juga memungkinkan kita untuk menyederhanakan proses coding. 96 00:04:28,130 --> 00:04:33,080 Ini jauh lebih mudah untuk debug 10 fungsi baris versus garis 100 97 00:04:33,080 --> 00:04:35,890 fungsi atau fungsi 1.000 garis. 98 00:04:35,890 --> 00:04:38,400 Jika kita hanya memiliki untuk debug potongan-potongan kecil pada suatu waktu, 99 00:04:38,400 --> 00:04:42,110 atau menulis potongan-potongan kecil pada saat itu, itu membuat pengalaman pemrograman 100 00:04:42,110 --> 00:04:43,070 jauh lebih baik. 101 00:04:43,070 --> 00:04:44,910 Percayalah yang satu itu. 102 00:04:44,910 --> 00:04:48,400 >> Terakhir, jika kita menulis fungsi kami dapat menggunakan kembali mereka berbagai bagian. 103 00:04:48,400 --> 00:04:49,880 Fungsi dapat didaur ulang. 104 00:04:49,880 --> 00:04:51,880 Mereka dapat digunakan dalam satu program atau yang lain. 105 00:04:51,880 --> 00:04:53,713 Anda sudah menulis fungsi, semua yang Anda 106 00:04:53,713 --> 00:04:56,530 perlu lakukan adalah memberitahu program yang di mana untuk menemukan fungsi yang. 107 00:04:56,530 --> 00:04:59,680 Kami telah daur ulang dan menggunakan mencetak f selama lebih dari 40 tahun. 108 00:04:59,680 --> 00:05:02,150 Tapi itu hanya ditulis satu kali. 109 00:05:02,150 --> 00:05:04,270 Cukup berguna, benar. 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 bahwa. 113 00:05:06,860 --> 00:05:08,700 Sekarang mari kita mulai menulis mereka. 114 00:05:08,700 --> 00:05:10,830 Mari kita mulai mendapatkan mereka ke dalam program kami. 115 00:05:10,830 --> 00:05:13,869 Untuk melakukan itu, pertama hal yang kita lakukan adalah mendeklarasikan fungsi. 116 00:05:13,869 --> 00:05:16,160 Ketika Anda mendeklarasikan sebuah fungsi apa yang Anda lakukan pada dasarnya 117 00:05:16,160 --> 00:05:18,900 memberitahu compiler, hey, supaya kau tahu, 118 00:05:18,900 --> 00:05:20,850 Saya akan menulis fungsi nanti 119 00:05:20,850 --> 00:05:22,987 dan inilah apa yang akan terlihat seperti. 120 00:05:22,987 --> 00:05:24,820 Alasan untuk ini adalah karena compiler bisa 121 00:05:24,820 --> 00:05:27,900 melakukan beberapa hal aneh jika mereka melihat satu set simbol 122 00:05:27,900 --> 00:05:29,560 bahwa mereka tidak terbiasa dengan. 123 00:05:29,560 --> 00:05:33,000 Jadi kami hanya memberikan compiler mengepalai, saya menciptakan fungsi 124 00:05:33,000 --> 00:05:35,492 dan itu akan melakukan hal ini. 125 00:05:35,492 --> 00:05:38,450 Deklarasi fungsi umumnya jika Anda mengatur kode Anda dengan cara 126 00:05:38,450 --> 00:05:41,872 bahwa orang lain akan dapat memahami dan memanfaatkan, 127 00:05:41,872 --> 00:05:44,330 Anda biasanya ingin menempatkan semua deklarasi fungsi Anda 128 00:05:44,330 --> 00:05:48,220 di bagian paling atas dari kode Anda, tepat sebelum Anda mulai menulis utama bahkan. 129 00:05:48,220 --> 00:05:50,770 Dan nyaman, ada bentuk yang sangat standar 130 00:05:50,770 --> 00:05:53,500 bahwa setiap deklarasi fungsi berikut. 131 00:05:53,500 --> 00:05:56,090 Mereka semua cukup banyak terlihat seperti ini. 132 00:05:56,090 --> 00:06:01,440 Ada tiga bagian untuk fungsi deklarasi, kembali jenis, nama, 133 00:06:01,440 --> 00:06:03,420 dan daftar argumen. 134 00:06:03,420 --> 00:06:07,180 >> Sekarang kembali jenis adalah jenis variabel output fungsi kehendak. 135 00:06:07,180 --> 00:06:10,710 Jadi misalnya, jika kita berpikir kembali menit yang lalu ke mengalikan dua 136 00:06:10,710 --> 00:06:15,690 nomor fungsi, apa yang kita harapkan jika kita kalikan bilangan bulat oleh integer 137 00:06:15,690 --> 00:06:18,502 output akan mungkin integer, benar. 138 00:06:18,502 --> 00:06:20,710 Dikalikan dua bilangan bulat bersama-sama, Anda mendapatkan sebuah integer. 139 00:06:20,710 --> 00:06:24,167 Jadi jenis kembalinya yang Fungsi akan int. 140 00:06:24,167 --> 00:06:26,000 Nama adalah apa yang Anda inginkan untuk memanggil fungsi Anda. 141 00:06:26,000 --> 00:06:29,330 Ini mungkin yang paling penting bagian dari deklarasi fungsi, 142 00:06:29,330 --> 00:06:30,827 dalam hal fungsi. 143 00:06:30,827 --> 00:06:33,160 Tapi sebenarnya mungkin salah satu satu bagian yang paling penting 144 00:06:33,160 --> 00:06:36,243 dari deklarasi fungsi dalam hal 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 nama fungsi f atau g atau h atau misteri atau sesuatu seperti itu, 147 00:06:40,474 --> 00:06:42,765 Anda mungkin akan mendapatkan sedikit tersandung mencoba 148 00:06:42,765 --> 00:06:44,650 untuk mengingat apa yang mereka lakukan fungsi. 149 00:06:44,650 --> 00:06:47,880 Jadi penting untuk memberikan Anda nama-nama bermakna fungsi ini. 150 00:06:47,880 --> 00:06:51,030 >> Terakhir, daftar argumen adalah daftar dipisahkan koma 151 00:06:51,030 --> 00:06:55,260 dari semua masukan untuk fungsi Anda, yang masing-masing memiliki jenis dan nama. 152 00:06:55,260 --> 00:06:57,840 Jadi tidak hanya Anda harus menentukan apa jenis variabel 153 00:06:57,840 --> 00:07:00,760 output fungsi kehendak, Anda juga ingin menentukan 154 00:07:00,760 --> 00:07:07,694 jenis dan jenis variabel Fungsi akan menerima sebagai masukan. 155 00:07:07,694 --> 00:07:08,860 Jadi mari kita lakukan contoh di sini. 156 00:07:08,860 --> 00:07:10,220 Mari kita kita lihat di satu lebih konkret. 157 00:07:10,220 --> 00:07:13,130 Jadi di sini adalah contoh fungsi deklarasi untuk fungsi yang 158 00:07:13,130 --> 00:07:14,925 akan menambah dua bilangan bulat bersama-sama. 159 00:07:14,925 --> 00:07:17,800 Jumlah dari dua bilangan bulat akan integer juga, karena kami hanya 160 00:07:17,800 --> 00:07:18,450 dibahas. 161 00:07:18,450 --> 00:07:21,610 Dan jenis kembali, di sini di hijau, akan menjadi int. 162 00:07:21,610 --> 00:07:25,190 Itu hanya memberitahu kita bahwa menambahkan dua int akan, pada akhir hari, 163 00:07:25,190 --> 00:07:28,799 output, atau meludah kembali kepada kita, integer. 164 00:07:28,799 --> 00:07:31,590 Mengingat apa fungsi ini tidak kita ingin memberikan nama yang bermakna. 165 00:07:31,590 --> 00:07:33,630 Menambahkan dua ints tampaknya tepat, mengingat 166 00:07:33,630 --> 00:07:37,574 kami mengambil dua bilangan bulat sebagai masukan dan mudah-mudahan menambahkan mereka bersama-sama. 167 00:07:37,574 --> 00:07:40,240 Mungkin sedikit rumit Nama dan terus terang fungsi ini 168 00:07:40,240 --> 00:07:42,430 mungkin tidak diperlukan karena kita memiliki penambahan 169 00:07:42,430 --> 00:07:46,310 operator, jika Anda ingat dari kami pembahasan operator, sebelumnya. 170 00:07:46,310 --> 00:07:49,650 Tapi mari kita katakan saja untuk kepentingan argumen bahwa fungsi ini berguna 171 00:07:49,650 --> 00:07:52,860 dan jadi kita akan menyebutnya menambahkan dua int. 172 00:07:52,860 --> 00:07:55,230 Terakhir, fungsi ini mengambil dua input. 173 00:07:55,230 --> 00:07:56,960 Yang masing-masing adalah bilangan bulat. 174 00:07:56,960 --> 00:07:59,900 Jadi kita memiliki koma ini daftar dipisahkan dari input. 175 00:07:59,900 --> 00:08:02,830 Sekarang kita umumnya ingin memberi nama untuk masing-masing 176 00:08:02,830 --> 00:08:05,070 sehingga mereka dapat digunakan dalam fungsi. 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 hal ini, kita tidak perlu memiliki makna yang melekat pada mereka. 179 00:08:11,400 --> 00:08:13,140 Jadi kami hanya dapat memanggil mereka a dan b. 180 00:08:13,140 --> 00:08:14,257 Itu benar-benar baik-baik saja. 181 00:08:14,257 --> 00:08:16,090 Namun, jika Anda menemukan diri Anda dalam situasi 182 00:08:16,090 --> 00:08:19,497 di mana nama-nama variabel mungkin benar-benar penting, 183 00:08:19,497 --> 00:08:21,830 Anda mungkin ingin memanggil mereka sesuatu selain a dan b 184 00:08:21,830 --> 00:08:24,701 untuk memberi mereka sesuatu yang lebih simbolis yang berarti. 185 00:08:24,701 --> 00:08:27,700 Tapi dalam kasus ini, kita tidak benar-benar tahu apa-apa lagi tentang fungsi. 186 00:08:27,700 --> 00:08:29,320 Kami hanya ingin menambahkan dua bilangan bulat. 187 00:08:29,320 --> 00:08:32,429 Jadi kami hanya akan menelepon mereka bilangan bulat a dan b. 188 00:08:32,429 --> 00:08:33,990 Itu salah satu contoh. 189 00:08:33,990 --> 00:08:36,287 >> Mengapa Anda tidak mengambil kedua untuk berpikir tentang yang satu ini, 190 00:08:36,287 --> 00:08:38,870 bagaimana Anda akan menulis fungsi deklarasi untuk fungsi yang 191 00:08:38,870 --> 00:08:42,940 mengalikan dua angka floating point? 192 00:08:42,940 --> 00:08:45,910 Apakah Anda ingat apa angka floating point adalah? 193 00:08:45,910 --> 00:08:48,120 Apa yang akan fungsi ini deklarasi terlihat seperti? 194 00:08:48,120 --> 00:08:53,330 Aku benar-benar merekomendasikan Anda berhenti video di sini dan mengambil berapa banyak waktu yang Anda butuhkan. 195 00:08:53,330 --> 00:08:55,521 Pikirkan tentang apa ini deklarasi fungsi akan? 196 00:08:55,521 --> 00:08:56,770 Apa yang akan jenis kembali menjadi? 197 00:08:56,770 --> 00:08:58,103 Apa yang akan menjadi nama yang berarti? 198 00:08:58,103 --> 00:08:59,580 Apa yang akan menjadi input? 199 00:08:59,580 --> 00:09:03,190 Jadi kenapa tidak Anda berhenti video di sini dan menulis-up deklarasi fungsi 200 00:09:03,190 --> 00:09:07,640 untuk fungsi yang akan berkembang biak dua angka floating point 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 >> Jadi mari kita lihat contoh satu deklarasi mungkin. 203 00:09:12,950 --> 00:09:17,340 Mengapung mult dua real mengapung x, float y. 204 00:09:17,340 --> 00:09:19,090 Produk dari dua angka floating point, 205 00:09:19,090 --> 00:09:21,710 yang ingat adalah bagaimana kita mewakili bilangan real 206 00:09:21,710 --> 00:09:26,770 atau angka dengan nilai-nilai desimal di c, akan menjadi angka floating point. 207 00:09:26,770 --> 00:09:28,570 Ketika Anda mengalikan desimal oleh desimal, 208 00:09:28,570 --> 00:09:30,460 Anda mungkin akan mendapatkan desimal. 209 00:09:30,460 --> 00:09:31,960 Anda ingin memberikan nama yang relevan. 210 00:09:31,960 --> 00:09:33,810 Kalikan dua real tampaknya baik-baik saja. 211 00:09:33,810 --> 00:09:36,620 Tapi Anda benar-benar bisa menyebutnya mult dua mengapung, atau mengapung mult. 212 00:09:36,620 --> 00:09:39,540 Sesuatu seperti itu, asalkan memberi makna sebenarnya untuk apa 213 00:09:39,540 --> 00:09:41,469 kotak hitam ini akan melakukan. 214 00:09:41,469 --> 00:09:44,260 Dan lagi, dalam hal ini, kita tidak tampaknya memiliki makna yang melekat 215 00:09:44,260 --> 00:09:46,390 untuk nama-nama variabel kita lewat di, 216 00:09:46,390 --> 00:09:48,645 jadi kami hanya menyebut mereka x dan y. 217 00:09:48,645 --> 00:09:51,020 Sekarang jika Anda memanggil mereka sesuatu lain, itu benar-benar baik-baik saja. 218 00:09:51,020 --> 00:09:53,310 Bahkan, jika Anda melakukan deklarasi ini bukan 219 00:09:53,310 --> 00:09:55,450 menggunakan ganda sebagai gantinya dari mengapung, jika Anda ingat 220 00:09:55,450 --> 00:09:59,100 yang ganda yang berbeda cara untuk lebih tepatnya 221 00:09:59,100 --> 00:10:02,330 menentukan bilangan real atau floating variabel titik. 222 00:10:02,330 --> 00:10:03,620 Itu benar-benar baik juga. 223 00:10:03,620 --> 00:10:04,670 Salah satu dari mereka akan baik-baik saja. 224 00:10:04,670 --> 00:10:06,711 Bahkan, ada beberapa kombinasi yang berbeda 225 00:10:06,711 --> 00:10:08,410 cara untuk menyatakan fungsi ini. 226 00:10:08,410 --> 00:10:10,884 Tapi ini dua yang cukup bagus. 227 00:10:10,884 --> 00:10:12,550 Kami telah menyatakan fungsi, itu hebat. 228 00:10:12,550 --> 00:10:15,700 Kami telah mengatakan kepada kompiler apa adalah, apa yang kita akan lakukan. 229 00:10:15,700 --> 00:10:17,630 Sekarang mari kita benar-benar menulis fungsi yang. 230 00:10:17,630 --> 00:10:20,750 Mari kita memberikan definisi, sehingga dalam kotak hitam 231 00:10:20,750 --> 00:10:22,840 perilaku diprediksi terjadi. 232 00:10:22,840 --> 00:10:26,270 Bahkan, kita mengalikan dua nyata nomor bersama-sama, atau nomor menambahkan 233 00:10:26,270 --> 00:10:29,760 bersama-sama, atau melakukan apa pun itu bahwa kami meminta fungsi kita lakukan. 234 00:10:29,760 --> 00:10:32,780 >> Jadi sebenarnya, mari kita coba dan mendefinisikan kalikan dua real yang kita hanya 235 00:10:32,780 --> 00:10:35,350 berbicara tentang kedua lalu. 236 00:10:35,350 --> 00:10:38,560 Sekarang awal definisi fungsi 237 00:10:38,560 --> 00:10:41,720 terlihat hampir persis sama sebagai deklarasi fungsi. 238 00:10:41,720 --> 00:10:43,170 Saya memiliki kedua mereka di sini. 239 00:10:43,170 --> 00:10:47,770 Di bagian atas adalah deklarasi fungsi, jenis, nama, dipisahkan dengan koma argumen 240 00:10:47,770 --> 00:10:49,410 daftar, titik koma. 241 00:10:49,410 --> 00:10:53,800 Titik koma menunjukkan bahwa yang merupakan deklarasi fungsi. 242 00:10:53,800 --> 00:10:57,060 Awal dari fungsi Definisi terlihat hampir persis 243 00:10:57,060 --> 00:11:03,790 sama, jenis, nama, dipisahkan dengan koma daftar argumen, tidak ada titik koma, 244 00:11:03,790 --> 00:11:05,206 membuka penjepit keriting. 245 00:11:05,206 --> 00:11:07,580 Penjepit keriting terbuka, seperti kami sudah melakukan dengan utama, 246 00:11:07,580 --> 00:11:09,540 berarti bahwa kita sekarang mulai mendefinisikan 247 00:11:09,540 --> 00:11:14,567 apa yang terjadi di dalam kotak hitam yang kami telah memutuskan untuk memanggil mult dua real. 248 00:11:14,567 --> 00:11:15,900 Berikut adalah salah satu cara untuk menerapkannya. 249 00:11:15,900 --> 00:11:20,370 Kita bisa mengatakan, kita bisa mendeklarasikan baru variabel tipe float disebut produk 250 00:11:20,370 --> 00:11:24,020 dan menetapkan variabel 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 Apa kembali maksud di sini. 253 00:11:28,430 --> 00:11:31,090 Nah kembali adalah jalan kami menunjukkan bahwa cara 254 00:11:31,090 --> 00:11:33,400 kita melewati output mundur. 255 00:11:33,400 --> 00:11:38,160 Jadi kembali sesuatu, sama dengan, ini adalah output 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 cara lain untuk menerapkannya. 258 00:11:42,190 --> 00:11:45,050 Kami hanya bisa kembali x kali y. 259 00:11:45,050 --> 00:11:45,870 x adalah pelampung. 260 00:11:45,870 --> 00:11:46,660 y adalah pelampung. 261 00:11:46,660 --> 00:11:48,490 Jadi x kali y juga pelampung. 262 00:11:48,490 --> 00:11:50,750 Kami bahkan tidak perlu membuat variabel lain. 263 00:11:50,750 --> 00:11:56,750 Jadi itulah cara yang berbeda untuk mengimplementasikan kotak hitam yang sama persis. 264 00:11:56,750 --> 00:11:58,570 >> Sekarang luangkan waktu, jeda video lagi, 265 00:11:58,570 --> 00:12:01,680 dan mencoba dan mendefinisikan menambahkan dua int, yang merupakan fungsi lain yang kita 266 00:12:01,680 --> 00:12:03,090 berbicara tentang beberapa saat yang lalu. 267 00:12:03,090 --> 00:12:06,440 Lagi di sini, aku telah menempatkan fungsi deklarasi, dan titik koma, 268 00:12:06,440 --> 00:12:08,420 dan brace keriting terbuka dan keriting tertutup 269 00:12:08,420 --> 00:12:12,080 penjepit untuk menunjukkan di mana kita akan mengisi di isi menambahkan dua int, 270 00:12:12,080 --> 00:12:15,530 sehingga kita mendefinisikan tertentu perilaku dalam kotak hitam. 271 00:12:15,530 --> 00:12:16,380 Jadi menghentikan video sementara. 272 00:12:16,380 --> 00:12:18,790 Dan mengambil waktu sebanyak Anda perlu mencoba dan mendefinisikan 273 00:12:18,790 --> 00:12:25,040 implementasi menambahkan dua int, seperti bahwa ketika fungsi output nilai, 274 00:12:25,040 --> 00:12:29,209 tidak, pada kenyataannya, kembali jumlah dari dua input. 275 00:12:29,209 --> 00:12:32,000 Jadi seperti contoh sebelumnya, ada beberapa cara yang berbeda 276 00:12:32,000 --> 00:12:34,210 Anda bisa menerapkan menambahkan dua int. 277 00:12:34,210 --> 00:12:35,130 Berikut ini salah satu. 278 00:12:35,130 --> 00:12:37,172 Di sini di orange Saya baru hanya memiliki beberapa comments-- 279 00:12:37,172 --> 00:12:38,880 Saya baru saja menambahkan beberapa komentar untuk menunjukkan 280 00:12:38,880 --> 00:12:41,400 apa yang terjadi pada setiap baris kode. 281 00:12:41,400 --> 00:12:45,430 Jadi saya mendeklarasikan variabel disebut jumlah tipe int. 282 00:12:45,430 --> 00:12:47,279 Saya mengatakan jumlah sama plus b. 283 00:12:47,279 --> 00:12:50,070 Di situlah kita benar-benar melakukan pekerjaan menambahkan dan b bersama-sama. 284 00:12:50,070 --> 00:12:51,850 Dan aku kembali sum. 285 00:12:51,850 --> 00:12:56,460 Dan itu masuk akal karena sum adalah variabel bertipe int. 286 00:12:56,460 --> 00:13:00,180 Dan apa tipe data yang ini Fungsi memberitahu saya itu akan output? 287 00:13:00,180 --> 00:13:00,680 Int. 288 00:13:00,680 --> 00:13:03,072 Jadi aku kembali sum, yang adalah variabel integer. 289 00:13:03,072 --> 00:13:06,030 Dan itu masuk akal mengingat apa yang kita sudah menyatakan dan mendefinisikan fungsi kita 290 00:13:06,030 --> 00:13:07,320 melakukan. 291 00:13:07,320 --> 00:13:09,700 >> Sekarang Anda juga dapat mendefinisikan fungsi cara ini, 292 00:13:09,700 --> 00:13:15,260 int sum sama plus b-- melewatkan bahwa pertama step-- dan kemudian, kembali sum. 293 00:13:15,260 --> 00:13:17,760 Sekarang Anda bisa juga diimplementasikan dengan cara ini, 294 00:13:17,760 --> 00:13:19,180 yang saya sangat tidak menyarankan. 295 00:13:19,180 --> 00:13:22,540 Ini adalah gaya buruk untuk satu hal dan desain benar-benar buruk, 296 00:13:22,540 --> 00:13:24,420 tetapi tidak, pada kenyataannya, pekerjaan. 297 00:13:24,420 --> 00:13:30,199 Jika Anda mengambil kode ini, yang int menambahkan buruk penambah dot c, dan menggunakannya. 298 00:13:30,199 --> 00:13:31,990 Ini sebenarnya tidak menambah dua bilangan bulat bersama-sama. 299 00:13:31,990 --> 00:13:37,632 Ini adalah implementasi sangat miskin perilaku tertentu. 300 00:13:37,632 --> 00:13:38,340 Tapi itu bekerja. 301 00:13:38,340 --> 00:13:41,200 Ini hanya di sini untuk menggambarkan titik bahwa kita tidak benar-benar 302 00:13:41,200 --> 00:13:44,530 peduli apa yang terjadi di dalam kotak hitam, selama 303 00:13:44,530 --> 00:13:46,510 karena memiliki output yang kita harapkan. 304 00:13:46,510 --> 00:13:48,870 Ini adalah kotak hitam yang dirancang buruk. 305 00:13:48,870 --> 00:13:53,801 Tetapi pada akhir hari, itu tidak Output masih jumlah plus b. 306 00:13:53,801 --> 00:13:54,300 Baiklah. 307 00:13:54,300 --> 00:13:56,320 Jadi kita sudah menyatakan fungsi. 308 00:13:56,320 --> 00:13:57,490 Dan kita sudah didefinisikan 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 mulai untuk menggunakan fungsi bahwa kami telah menyatakan dan kami telah didefinisikan. 311 00:14:03,020 --> 00:14:05,960 Untuk memanggil function-- itu sebenarnya cukup easy-- semua yang perlu Anda lakukan 312 00:14:05,960 --> 00:14:09,070 adalah lulus argumen yang tepat, argumen dari tipe data 313 00:14:09,070 --> 00:14:11,600 bahwa mereka mengharapkan, dan kemudian menetapkan pengembalian 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 menetapkan nilai kembali fungsi yang sesuatu dari jenis yang tepat. 316 00:14:19,390 --> 00:14:22,410 >> Jadi mari kita lihat ini dalam praktek dalam file 317 00:14:22,410 --> 00:14:27,730 disebut adder 1 dot c, yang Saya miliki 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 awalnya Anda lihat saya punya saya termasuk, pound termasuk, 320 00:14:33,500 --> 00:14:35,460 IO standar, dan CS50 dot h. 321 00:14:35,460 --> 00:14:37,700 Dan kemudian saya harus deklarasi fungsi saya. 322 00:14:37,700 --> 00:14:39,570 Ini adalah di mana aku memberitahu compiler saya 323 00:14:39,570 --> 00:14:42,850 akan menulis fungsi yang disebut menambahkan dua int. 324 00:14:42,850 --> 00:14:45,780 Ini akan keluaran sebuah variabel integer jenis. 325 00:14:45,780 --> 00:14:47,360 Itulah yang bagian ini di sini. 326 00:14:47,360 --> 00:14:51,950 Dan kemudian saya memiliki dua masukan untuk itu dan b, yang masing-masing adalah bilangan bulat. 327 00:14:51,950 --> 00:14:58,250 Dalam utama, saya meminta pengguna untuk masukan dengan mengatakan, memberikan saya integer. 328 00:14:58,250 --> 00:15:01,040 Dan mereka diminta untuk melupakan int, yang merupakan fungsi yang 329 00:15:01,040 --> 00:15:03,240 termasuk di perpustakaan CS50. 330 00:15:03,240 --> 00:15:07,660 Dan itu akan disimpan di x, variabel 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 Kami mendapatkan bilangan bulat lain dan menyimpan bahwa dalam y. 333 00:15:13,070 --> 00:15:17,990 Dan kemudian, di sini on line 28, adalah di mana kita membuat panggilan fungsi kita. 334 00:15:17,990 --> 00:15:23,770 Kami katakan, equals z int tambahkan 2 int x koma y. 335 00:15:23,770 --> 00:15:25,980 Apakah Anda melihat mengapa hal ini masuk akal? 336 00:15:25,980 --> 00:15:29,710 x adalah variabel tipe integer dan y merupakan variabel tipe integer. 337 00:15:29,710 --> 00:15:31,220 Jadi itu bagus. 338 00:15:31,220 --> 00:15:34,570 Itu masuk akal dengan apa fungsi kita deklarasi on line 17 terlihat seperti. 339 00:15:34,570 --> 00:15:38,300 Koma daftar dipisahkan masukan mengharapkan dua bilangan bulat, a dan b. 340 00:15:38,300 --> 00:15:40,300 Dalam hal ini, kita dapat memanggil mereka apa pun yang kita inginkan. 341 00:15:40,300 --> 00:15:42,300 Itu hanya mengharapkan dua bilangan bulat. 342 00:15:42,300 --> 00:15:44,930 Dan x adalah bilangan bulat dan y adalah bilangan bulat. 343 00:15:44,930 --> 00:15:45,640 Itu bekerja. 344 00:15:45,640 --> 00:15:48,680 >> Dan kita tahu fungsi yang akan untuk output sebuah bilangan bulat juga. 345 00:15:48,680 --> 00:15:51,290 Dan jadi kita menyimpan output fungsi, 346 00:15:51,290 --> 00:15:56,050 menambahkan dua int, di tipe integer variabel, yang kita panggil z. 347 00:15:56,050 --> 00:16:01,980 Dan kemudian kita dapat mengatakan, jumlah persen saya dan saya adalah persen persen i. 348 00:16:01,980 --> 00:16:06,210 x, y dan z masing-masing mengisi mereka persen i. 349 00:16:06,210 --> 00:16:08,334 Apa definisi dari menambahkan dua ints terlihat seperti? 350 00:16:08,334 --> 00:16:09,125 Ini cukup sederhana. 351 00:16:09,125 --> 00:16:11,270 Ini salah satu yang kita hanya melihat kedua lalu, 352 00:16:11,270 --> 00:16:14,390 int sum sama jumlah ditambah b kembali. 353 00:16:14,390 --> 00:16:15,420 Apakah pekerjaan ini? 354 00:16:15,420 --> 00:16:17,270 Mari kita menyimpan file. 355 00:16:17,270 --> 00:16:22,080 Dan kemudian turun di sini di terminal saya Aku akan membuat penambah 1, 356 00:16:22,080 --> 00:16:23,000 dan aku membersihkan layar saya. 357 00:16:23,000 --> 00:16:25,791 Aku akan memperbesar karena saya tahu itu agak sulit untuk melihat. 358 00:16:25,791 --> 00:16:31,520 359 00:16:31,520 --> 00:16:33,770 >> Jadi kita mengkompilasi program ini sebagai penambah 1. 360 00:16:33,770 --> 00:16:37,910 Jadi kita bisa melakukan dot slash penambah 1. 361 00:16:37,910 --> 00:16:40,060 Beri aku integer, 10. 362 00:16:40,060 --> 00:16:42,380 Beri aku bilangan bulat 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 Jadi kami membuat panggilan fungsi yang sukses. 365 00:16:47,615 --> 00:16:55,820 Anda dapat menjalankan fungsi lagi, negatif 10, 17 jumlah negatif 10 dan 17 adalah 7. 366 00:16:55,820 --> 00:16:57,120 Fungsi ini bekerja. 367 00:16:57,120 --> 00:16:59,240 Ini memiliki perilaku bahwa kita harapkan. 368 00:16:59,240 --> 00:17:03,610 Dan jadi kami telah membuat sukses fungsi, definisi, deklarasi, 369 00:17:03,610 --> 00:17:07,288 dan fungsi panggilan sukses. 370 00:17:07,288 --> 00:17:09,079 Pasangan lain-lain poin tentang fungsi 371 00:17:09,079 --> 00:17:10,611 sebelum kita menyimpulkan bagian ini. 372 00:17:10,611 --> 00:17:12,319 Ingat dari kami pembahasan jenis data, 373 00:17:12,319 --> 00:17:16,109 sebelumnya, yang berfungsi kadang-kadang bisa tidak mengambil input. 374 00:17:16,109 --> 00:17:17,930 Jika itu yang terjadi, kita mendeklarasikan fungsi 375 00:17:17,930 --> 00:17:19,788 sebagai memiliki daftar kekosongan argumen. 376 00:17:19,788 --> 00:17:21,579 Apakah Anda ingat apa yang paling umum fungsi 377 00:17:21,579 --> 00:17:25,036 kita lihat sejauh yang mengambil daftar argumen kekosongan adalah? 378 00:17:25,036 --> 00:17:27,300 Ini utama. 379 00:17:27,300 --> 00:17:30,850 Ingat juga bahwa kadang-kadang fungsi tidak benar-benar memiliki output. 380 00:17:30,850 --> 00:17:34,210 Dalam hal ini, kita mendeklarasikan fungsi sebagai memiliki tipe void kembali. 381 00:17:34,210 --> 00:17:37,880 Mari kita menyimpulkan bagian ini dengan mengatasi masalah praktik. 382 00:17:37,880 --> 00:17:39,900 >> Jadi, inilah masalah ditata. 383 00:17:39,900 --> 00:17:43,630 Saya ingin Anda menulis fungsi disebut segitiga valid. 384 00:17:43,630 --> 00:17:47,410 Apa fungsi ini harus melakukan adalah mengambil tiga bilangan real 385 00:17:47,410 --> 00:17:51,930 yang mewakili panjang dari tiga sisi segitiga sebagai parameter, 386 00:17:51,930 --> 00:17:54,550 atau argumen, atau yang inputs-- set sinonim 387 00:17:54,550 --> 00:17:57,340 Anda mungkin mengalami. 388 00:17:57,340 --> 00:18:01,120 Fungsi ini harus baik keluaran benar atau salah 389 00:18:01,120 --> 00:18:04,960 tergantung pada apakah mereka tiga panjang mampu membuat segitiga. 390 00:18:04,960 --> 00:18:09,930 Apakah Anda ingat jenis data yang kita digunakan untuk menunjukkan benar atau salah? 391 00:18:09,930 --> 00:18:11,436 Sekarang bagaimana Anda menerapkan ini? 392 00:18:11,436 --> 00:18:13,810 Nah tahu ada beberapa aturan tentang segitiga 393 00:18:13,810 --> 00:18:15,480 yang benar-benar berguna untuk mengetahui. 394 00:18:15,480 --> 00:18:18,292 Sebuah segitiga hanya dapat memiliki sisi 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 mengatakan, duh. 397 00:18:21,432 --> 00:18:23,390 Hal lain yang perlu diperhatikan meskipun, adalah bahwa jumlah tersebut 398 00:18:23,390 --> 00:18:25,484 dari panjang dari setiap dua sisi segitiga 399 00:18:25,484 --> 00:18:27,650 harus lebih besar dari panjang sisi ketiga. 400 00:18:27,650 --> 00:18:28,690 Itu benar-benar benar. 401 00:18:28,690 --> 00:18:34,150 Anda tidak dapat memiliki segitiga dari sisi 1, 2 dan 4, misalnya, karena 1 ditambah 2 402 00:18:34,150 --> 00:18:36,270 tidak lebih besar dari 4. 403 00:18:36,270 --> 00:18:38,870 Jadi mereka adalah aturan yang menentukan apakah atau tidak tiga 404 00:18:38,870 --> 00:18:42,740 input dibayangkan dapat membentuk segitiga. 405 00:18:42,740 --> 00:18:46,360 Jadi mengambil beberapa menit dan menyatakan dan kemudian menentukan 406 00:18:46,360 --> 00:18:49,810 fungsi ini disebut valid segitiga, sehingga itu benar-benar 407 00:18:49,810 --> 00:18:51,650 memiliki perilaku yang ditentukan di sini. 408 00:18:51,650 --> 00:18:57,030 >> Itu akan menampilkan benar jika tiga sisi mampu terdiri segitiga, 409 00:18:57,030 --> 00:19:01,950 dan palsu sebaliknya Siap untuk melihat bagaimana Anda melakukannya? 410 00:19:01,950 --> 00:19:04,650 Berikut ini salah satu implementasi segitiga valid. 411 00:19:04,650 --> 00:19:05,770 Ini bukan satu-satunya. 412 00:19:05,770 --> 00:19:07,770 Anda mungkin sedikit berbeda. 413 00:19:07,770 --> 00:19:11,040 Tapi yang satu ini tidak, pada kenyataannya, memiliki perilaku yang kita harapkan. 414 00:19:11,040 --> 00:19:14,450 Kami menyatakan fungsi kami di paling atas, bool segitiga valid 415 00:19:14,450 --> 00:19:16,630 mengapung x mengambang y mengapung z. 416 00:19:16,630 --> 00:19:18,930 Jadi sekali lagi, fungsi ini mengambil tiga bilangan real 417 00:19:18,930 --> 00:19:22,280 sebagai argumen, mengambang variabel nilai titik, 418 00:19:22,280 --> 00:19:26,510 dan output benar atau salah nilai, yang merupakan Boolean, recall. 419 00:19:26,510 --> 00:19:28,660 Jadi itu sebabnya jenis kembali bool. 420 00:19:28,660 --> 00:19:30,016 Kemudian kita mendefinisikan fungsi. 421 00:19:30,016 --> 00:19:33,140 Hal pertama yang kita lakukan adalah memeriksa untuk memastikan bahwa semua sisi positif. 422 00:19:33,140 --> 00:19:37,010 Jika x kurang dari atau sama dengan 0, atau jika y sama dengan 0, 423 00:19:37,010 --> 00:19:41,050 atau jika z kurang dari atau sama dengan 0, yang tidak mungkin menjadi sebuah segitiga. 424 00:19:41,050 --> 00:19:42,380 Mereka tidak memiliki sisi positif. 425 00:19:42,380 --> 00:19:45,790 Dan sehingga kita dapat kembali palsu dalam situasi itu. 426 00:19:45,790 --> 00:19:49,010 Berikutnya, kita periksa untuk memastikan bahwa setiap pasangan input 427 00:19:49,010 --> 00:19:51,830 lebih besar dari yang ketiga. 428 00:19:51,830 --> 00:19:54,530 >> Jadi jika x ditambah y kurang dari atau sama dengan z, 429 00:19:54,530 --> 00:19:57,060 atau jika x ditambah z kurang dari atau sama dengan y, 430 00:19:57,060 --> 00:20:01,730 atau jika y ditambah z kurang dari atau sama dengan x, yang juga tidak bisa menjadi segitiga valid. 431 00:20:01,730 --> 00:20:03,800 Jadi kita kembali palsu lagi. 432 00:20:03,800 --> 00:20:06,900 Dengan asumsi kami melewati kedua cek meskipun, maka kita bisa kembali benar. 433 00:20:06,900 --> 00:20:09,440 Karena tiga sisi mampu returning-- 434 00:20:09,440 --> 00:20:11,647 menciptakan segitiga yang valid. 435 00:20:11,647 --> 00:20:12,230 Dan hanya itu. 436 00:20:12,230 --> 00:20:13,830 Anda sekarang telah dinyatakan dan ditetapkan. 437 00:20:13,830 --> 00:20:17,330 Dan Anda mungkin dapat sekarang menggunakan dan memanggil fungsi ini. 438 00:20:17,330 --> 00:20:19,470 Kerja bagus. 439 00:20:19,470 --> 00:20:20,650 Aku Doug Lloyd. 440 00:20:20,650 --> 00:20:22,820 Ini adalah CS50. 441 00:20:22,820 --> 00:20:24,340