Doug LLOYD: Baiklah. Jadi sekarang mari kita mengatasi topik yang sangat besar, fungsi. Sejauh ini dalam kursus, semua program yang kita telah menulis telah ditulis dalam utama. Mereka program cukup sederhana. Anda tidak perlu memiliki semua ini cabang dan hal yang terjadi. Kami hanya dapat cocok semua dalam utama dan tidak mendapatkan sangat luar biasa. Tapi seperti kursus berjalan dan Anda mulai mengembangkan program independen, mereka mungkin akan untuk memulai untuk mendapatkan lebih banyak dari 10 atau 15 baris. Anda mungkin mendapatkan ratusan atau ribuan atau puluhan ribu baris kode. Dan itu benar-benar tidak yang gila pikiran. Dengan demikian, itu mungkin bukan ide yang baik untuk menjaga semuanya dalam utama. Hal ini dapat mendapatkan sedikit sulit untuk menemukan apa yang Anda cari jika Anda melakukan itu. Untungnya, meskipun C, dan cukup banyak setiap bahasa pemrograman lain yang mungkin bekerja dengan, memungkinkan kita untuk menulis fungsi. Dan aku hanya akan mengambil cepat sebuah selain di sini menyebutkan bahwa fungsi adalah satu bidang ilmu komputer. Dan Anda akan melihat banyak dari mereka di berbagai titik di seluruh kursus dan jika Anda melanjutkan. Di mana ada banyak sinonim untuk kata yang sama. Jadi kita sebut fungsi. Tapi Anda mungkin juga mendengar mereka disebut sebagai prosedur, atau metode, terutama, jika Anda sudah pernah melakukan pemrograman berorientasi objek before-- dan jangan khawatir jika Anda belum, tidak sebuah deal-- besar tapi di bahasa berorientasi Audit adalah metode yang sering disebut. Kadang-kadang mereka disebut subrutin. Tapi mereka benar-benar semua merujuk dengan ide dasar yang sama. Mari kita lihat apa ide itu. Apa fungsi? Nah fungsi benar-benar tidak lebih dari sebuah kotak hitam. Sebuah kotak hitam yang memiliki seperangkat nol atau lebih input dan satu output. Jadi misalnya, ini mungkin fungsi. Ini adalah fungsi yang disebut func. Dan dibutuhkan tiga input a, b, dan c. Dan di dalam kotak hitam, kita tidak tahu persis apa yang dilakukannya, tetapi proses input dalam beberapa cara dan kemudian memberikan output tunggal, dalam hal ini, z. Sekarang untuk membuatnya sedikit kurang abstrak, kita bisa mengatakan bahwa mungkin kita memiliki fungsi yang disebut menambahkan bahwa mengambil tiga input a, b, dan c dan proses output dalam beberapa cara dalam kotak hitam untuk menghasilkan satu output. Jadi dalam hal ini, jika menambahkan mengambil 3, 6, dan 7. Suatu tempat di dalam menambahkan fungsi, kita akan mengharapkan mereka untuk ditambahkan bersama-sama untuk menghasilkan output yang adalah 3 ditambah 6 ditambah 7 atau 16. Demikian pula, Anda memiliki fungsi yang disebut mult yang mengambil dua input, a dan b, proses mereka dalam beberapa cara seperti bahwa output dari fungsi adalah produk dari dua input. Dua input dikalikan bersama-sama. 4 dan 5 yang masuk ke mult, sesuatu terjadi, output yang kita harapkan adalah 20. Mengapa kita menyebutnya kotak hitam? Nah jika kita tidak menulis fungsi diri kita sendiri, yang kami telah melakukan cukup sedikit sejauh CS50. Kami telah melihat cetak f, misalnya, yang adalah fungsi yang kita tidak menulis diri kita sendiri, tapi kita menggunakan semua waktu. Jika kita tidak menulis fungsi diri kita sendiri, kita tidak benar-benar perlu tahu bagaimana itu benar-benar dilaksanakan di bawah tenda. Jadi misalnya kotak hitam saya hanya menunjukkan Anda untuk perkalian, mult a, b bisa defined-- dan ini hanya beberapa pseudocode-- bisa didefinisikan sebagai output kali b. Itu masuk akal, benar. Jika kita memiliki fungsi yang disebut mult yang mengambil dua input. Kami akan berharap bahwa output akan menjadi dua input dikalikan bersama-sama, kali b. Tapi mult juga bisa menjadi diimplementasikan seperti ini, kita memiliki variabel counter untuk bisa diatur dalam mult ke 0. Dan kemudian kita ulangi proses ini b kali menambahkan ke counter. Sebagai contoh, jika kita kalikan 3a oleh 5b, kita bisa mengatakan mengatur counter untuk 0, ulangi lima kali, tambahkan 3 ke meja. Jadi kita mulai dari 0 dan kemudian kita lakukan ini lima kali 3, 6, 9, 12, 15. Ini hasil yang sama. Kita masih mendapatkan 3 kali 5 hanya pelaksanaannya berbeda. Itulah yang kita maksud ketika kita mengatakan kotak hitam. Ini hanya berarti kita tidak benar-benar peduli bagaimana hal itu dilaksanakan di bawah tenda asalkan output adalah apa yang kita harapkan. Bahkan, itu bagian dari kontrak menggunakan fungsi, terutama fungsi yang lain menulis. Perilaku selalu akan menjadi khas, tak terduga berdasarkan nama fungsi. Dan itulah mengapa itu benar-benar penting ketika Anda menulis fungsi atau ketika orang lain menulis fungsi yang mungkin Anda gunakan, bahwa fungsi-fungsi memiliki jelas, nama-nama yang relatif jelas, dan didokumentasikan dengan baik. Yang pasti terjadi untuk fungsi seperti cetak f. Jadi mengapa kita menggunakan fungsi? Yah seperti yang saya katakan sebelumnya, jika kita menulis semua kode kita dalam hal utama bisa benar-benar rumit dan benar-benar rumit. Fungsi memungkinkan kita kemampuan untuk mengatur hal-hal dan putus masalah yang sangat rumit dalam banyak sub bagian yang lebih mudah dikelola. Fungsi juga memungkinkan kita untuk menyederhanakan proses coding. Ini jauh lebih mudah untuk debug 10 fungsi baris versus garis 100 fungsi atau fungsi 1.000 garis. Jika kita hanya memiliki untuk debug potongan-potongan kecil pada suatu waktu, atau menulis potongan-potongan kecil pada saat itu, itu membuat pengalaman pemrograman jauh lebih baik. Percayalah yang satu itu. Terakhir, jika kita menulis fungsi kami dapat menggunakan kembali mereka berbagai bagian. Fungsi dapat didaur ulang. Mereka dapat digunakan dalam satu program atau yang lain. Anda sudah menulis fungsi, semua yang Anda perlu lakukan adalah memberitahu program yang di mana untuk menemukan fungsi yang. Kami telah daur ulang dan menggunakan mencetak f selama lebih dari 40 tahun. Tapi itu hanya ditulis satu kali. Cukup berguna, benar. Baiklah. Jadi fungsi yang besar. Kita tahu bahwa. Sekarang mari kita mulai menulis mereka. Mari kita mulai mendapatkan mereka ke dalam program kami. Untuk melakukan itu, pertama hal yang kita lakukan adalah mendeklarasikan fungsi. Ketika Anda mendeklarasikan sebuah fungsi apa yang Anda lakukan pada dasarnya memberitahu compiler, hey, supaya kau tahu, Saya akan menulis fungsi nanti dan inilah apa yang akan terlihat seperti. Alasan untuk ini adalah karena compiler bisa melakukan beberapa hal aneh jika mereka melihat satu set simbol bahwa mereka tidak terbiasa dengan. Jadi kami hanya memberikan compiler mengepalai, saya menciptakan fungsi dan itu akan melakukan hal ini. Deklarasi fungsi umumnya jika Anda mengatur kode Anda dengan cara bahwa orang lain akan dapat memahami dan memanfaatkan, Anda biasanya ingin menempatkan semua deklarasi fungsi Anda di bagian paling atas dari kode Anda, tepat sebelum Anda mulai menulis utama bahkan. Dan nyaman, ada bentuk yang sangat standar bahwa setiap deklarasi fungsi berikut. Mereka semua cukup banyak terlihat seperti ini. Ada tiga bagian untuk fungsi deklarasi, kembali jenis, nama, dan daftar argumen. Sekarang kembali jenis adalah jenis variabel output fungsi kehendak. Jadi misalnya, jika kita berpikir kembali menit yang lalu ke mengalikan dua nomor fungsi, apa yang kita harapkan jika kita kalikan bilangan bulat oleh integer output akan mungkin integer, benar. Dikalikan dua bilangan bulat bersama-sama, Anda mendapatkan sebuah integer. Jadi jenis kembalinya yang Fungsi akan int. Nama adalah apa yang Anda inginkan untuk memanggil fungsi Anda. Ini mungkin yang paling penting bagian dari deklarasi fungsi, dalam hal fungsi. Tapi sebenarnya mungkin salah satu satu bagian yang paling penting dari deklarasi fungsi dalam hal mengetahui apa fungsi sebenarnya tidak. Jika Anda nama fungsi f atau g atau h atau misteri atau sesuatu seperti itu, Anda mungkin akan mendapatkan sedikit tersandung mencoba untuk mengingat apa yang mereka lakukan fungsi. Jadi penting untuk memberikan Anda nama-nama bermakna fungsi ini. Terakhir, daftar argumen adalah daftar dipisahkan koma dari semua masukan untuk fungsi Anda, yang masing-masing memiliki jenis dan nama. Jadi tidak hanya Anda harus menentukan apa jenis variabel output fungsi kehendak, Anda juga ingin menentukan jenis dan jenis variabel Fungsi akan menerima sebagai masukan. Jadi mari kita lakukan contoh di sini. Mari kita kita lihat di satu lebih konkret. Jadi di sini adalah contoh fungsi deklarasi untuk fungsi yang akan menambah dua bilangan bulat bersama-sama. Jumlah dari dua bilangan bulat akan integer juga, karena kami hanya dibahas. Dan jenis kembali, di sini di hijau, akan menjadi int. Itu hanya memberitahu kita bahwa menambahkan dua int akan, pada akhir hari, output, atau meludah kembali kepada kita, integer. Mengingat apa fungsi ini tidak kita ingin memberikan nama yang bermakna. Menambahkan dua ints tampaknya tepat, mengingat kami mengambil dua bilangan bulat sebagai masukan dan mudah-mudahan menambahkan mereka bersama-sama. Mungkin sedikit rumit Nama dan terus terang fungsi ini mungkin tidak diperlukan karena kita memiliki penambahan operator, jika Anda ingat dari kami pembahasan operator, sebelumnya. Tapi mari kita katakan saja untuk kepentingan argumen bahwa fungsi ini berguna dan jadi kita akan menyebutnya menambahkan dua int. Terakhir, fungsi ini mengambil dua input. Yang masing-masing adalah bilangan bulat. Jadi kita memiliki koma ini daftar dipisahkan dari input. Sekarang kita umumnya ingin memberi nama untuk masing-masing sehingga mereka dapat digunakan dalam fungsi. Nama-nama yang tidak terlalu penting. Dalam hal ini, kita tidak perlu memiliki makna yang melekat pada mereka. Jadi kami hanya dapat memanggil mereka a dan b. Itu benar-benar baik-baik saja. Namun, jika Anda menemukan diri Anda dalam situasi di mana nama-nama variabel mungkin benar-benar penting, Anda mungkin ingin memanggil mereka sesuatu selain a dan b untuk memberi mereka sesuatu yang lebih simbolis yang berarti. Tapi dalam kasus ini, kita tidak benar-benar tahu apa-apa lagi tentang fungsi. Kami hanya ingin menambahkan dua bilangan bulat. Jadi kami hanya akan menelepon mereka bilangan bulat a dan b. Itu salah satu contoh. Mengapa Anda tidak mengambil kedua untuk berpikir tentang yang satu ini, bagaimana Anda akan menulis fungsi deklarasi untuk fungsi yang mengalikan dua angka floating point? Apakah Anda ingat apa angka floating point adalah? Apa yang akan fungsi ini deklarasi terlihat seperti? Aku benar-benar merekomendasikan Anda berhenti video di sini dan mengambil berapa banyak waktu yang Anda butuhkan. Pikirkan tentang apa ini deklarasi fungsi akan? Apa yang akan jenis kembali menjadi? Apa yang akan menjadi nama yang berarti? Apa yang akan menjadi input? Jadi kenapa tidak Anda berhenti video di sini dan menulis-up deklarasi fungsi untuk fungsi yang akan berkembang biak dua angka floating point bersama-sama. Mudah-mudahan Anda berhenti video. Jadi mari kita lihat contoh satu deklarasi mungkin. Mengapung mult dua real mengapung x, float y. Produk dari dua angka floating point, yang ingat adalah bagaimana kita mewakili bilangan real atau angka dengan nilai-nilai desimal di c, akan menjadi angka floating point. Ketika Anda mengalikan desimal oleh desimal, Anda mungkin akan mendapatkan desimal. Anda ingin memberikan nama yang relevan. Kalikan dua real tampaknya baik-baik saja. Tapi Anda benar-benar bisa menyebutnya mult dua mengapung, atau mengapung mult. Sesuatu seperti itu, asalkan memberi makna sebenarnya untuk apa kotak hitam ini akan melakukan. Dan lagi, dalam hal ini, kita tidak tampaknya memiliki makna yang melekat untuk nama-nama variabel kita lewat di, jadi kami hanya menyebut mereka x dan y. Sekarang jika Anda memanggil mereka sesuatu lain, itu benar-benar baik-baik saja. Bahkan, jika Anda melakukan deklarasi ini bukan menggunakan ganda sebagai gantinya dari mengapung, jika Anda ingat yang ganda yang berbeda cara untuk lebih tepatnya menentukan bilangan real atau floating variabel titik. Itu benar-benar baik juga. Salah satu dari mereka akan baik-baik saja. Bahkan, ada beberapa kombinasi yang berbeda cara untuk menyatakan fungsi ini. Tapi ini dua yang cukup bagus. Kami telah menyatakan fungsi, itu hebat. Kami telah mengatakan kepada kompiler apa adalah, apa yang kita akan lakukan. Sekarang mari kita benar-benar menulis fungsi yang. Mari kita memberikan definisi, sehingga dalam kotak hitam perilaku diprediksi terjadi. Bahkan, kita mengalikan dua nyata nomor bersama-sama, atau nomor menambahkan bersama-sama, atau melakukan apa pun itu bahwa kami meminta fungsi kita lakukan. Jadi sebenarnya, mari kita coba dan mendefinisikan kalikan dua real yang kita hanya berbicara tentang kedua lalu. Sekarang awal definisi fungsi terlihat hampir persis sama sebagai deklarasi fungsi. Saya memiliki kedua mereka di sini. Di bagian atas adalah deklarasi fungsi, jenis, nama, dipisahkan dengan koma argumen daftar, titik koma. Titik koma menunjukkan bahwa yang merupakan deklarasi fungsi. Awal dari fungsi Definisi terlihat hampir persis sama, jenis, nama, dipisahkan dengan koma daftar argumen, tidak ada titik koma, membuka penjepit keriting. Penjepit keriting terbuka, seperti kami sudah melakukan dengan utama, berarti bahwa kita sekarang mulai mendefinisikan apa yang terjadi di dalam kotak hitam yang kami telah memutuskan untuk memanggil mult dua real. Berikut adalah salah satu cara untuk menerapkannya. Kita bisa mengatakan, kita bisa mendeklarasikan baru variabel tipe float disebut produk dan menetapkan variabel yang dengan nilai x kali y. Dan kemudian kembali produk. Apa kembali maksud di sini. Nah kembali adalah jalan kami menunjukkan bahwa cara kita melewati output mundur. Jadi kembali sesuatu, sama dengan, ini adalah output dari kotak hitam. Jadi itulah bagaimana Anda melakukannya. Berikut adalah cara lain untuk menerapkannya. Kami hanya bisa kembali x kali y. x adalah pelampung. y adalah pelampung. Jadi x kali y juga pelampung. Kami bahkan tidak perlu membuat variabel lain. Jadi itulah cara yang berbeda untuk mengimplementasikan kotak hitam yang sama persis. Sekarang luangkan waktu, jeda video lagi, dan mencoba dan mendefinisikan menambahkan dua int, yang merupakan fungsi lain yang kita berbicara tentang beberapa saat yang lalu. Lagi di sini, aku telah menempatkan fungsi deklarasi, dan titik koma, dan brace keriting terbuka dan keriting tertutup penjepit untuk menunjukkan di mana kita akan mengisi di isi menambahkan dua int, sehingga kita mendefinisikan tertentu perilaku dalam kotak hitam. Jadi menghentikan video sementara. Dan mengambil waktu sebanyak Anda perlu mencoba dan mendefinisikan implementasi menambahkan dua int, seperti bahwa ketika fungsi output nilai, tidak, pada kenyataannya, kembali jumlah dari dua input. Jadi seperti contoh sebelumnya, ada beberapa cara yang berbeda Anda bisa menerapkan menambahkan dua int. Berikut ini salah satu. Di sini di orange Saya baru hanya memiliki beberapa comments-- Saya baru saja menambahkan beberapa komentar untuk menunjukkan apa yang terjadi pada setiap baris kode. Jadi saya mendeklarasikan variabel disebut jumlah tipe int. Saya mengatakan jumlah sama plus b. Di situlah kita benar-benar melakukan pekerjaan menambahkan dan b bersama-sama. Dan aku kembali sum. Dan itu masuk akal karena sum adalah variabel bertipe int. Dan apa tipe data yang ini Fungsi memberitahu saya itu akan output? Int. Jadi aku kembali sum, yang adalah variabel integer. Dan itu masuk akal mengingat apa yang kita sudah menyatakan dan mendefinisikan fungsi kita melakukan. Sekarang Anda juga dapat mendefinisikan fungsi cara ini, int sum sama plus b-- melewatkan bahwa pertama step-- dan kemudian, kembali sum. Sekarang Anda bisa juga diimplementasikan dengan cara ini, yang saya sangat tidak menyarankan. Ini adalah gaya buruk untuk satu hal dan desain benar-benar buruk, tetapi tidak, pada kenyataannya, pekerjaan. Jika Anda mengambil kode ini, yang int menambahkan buruk penambah dot c, dan menggunakannya. Ini sebenarnya tidak menambah dua bilangan bulat bersama-sama. Ini adalah implementasi sangat miskin perilaku tertentu. Tapi itu bekerja. Ini hanya di sini untuk menggambarkan titik bahwa kita tidak benar-benar peduli apa yang terjadi di dalam kotak hitam, selama karena memiliki output yang kita harapkan. Ini adalah kotak hitam yang dirancang buruk. Tetapi pada akhir hari, itu tidak Output masih jumlah plus b. Baiklah. Jadi kita sudah menyatakan fungsi. Dan kita sudah didefinisikan fungsi. Jadi itu benar-benar baik. Sekarang mari kita mulai untuk menggunakan fungsi bahwa kami telah menyatakan dan kami telah didefinisikan. Untuk memanggil function-- itu sebenarnya cukup easy-- semua yang perlu Anda lakukan adalah lulus argumen yang tepat, argumen dari tipe data bahwa mereka mengharapkan, dan kemudian menetapkan pengembalian nilai fungsi yang dan alasan this-- me-- menetapkan nilai kembali fungsi yang sesuatu dari jenis yang tepat. Jadi mari kita lihat ini dalam praktek dalam file disebut adder 1 dot c, yang Saya miliki dalam IDE CS50 saya. Jadi di sini adalah penambah 1 dot c. Pada awalnya Anda lihat saya punya saya termasuk, pound termasuk, IO standar, dan CS50 dot h. Dan kemudian saya harus deklarasi fungsi saya. Ini adalah di mana aku memberitahu compiler saya akan menulis fungsi yang disebut menambahkan dua int. Ini akan keluaran sebuah variabel integer jenis. Itulah yang bagian ini di sini. Dan kemudian saya memiliki dua masukan untuk itu dan b, yang masing-masing adalah bilangan bulat. Dalam utama, saya meminta pengguna untuk masukan dengan mengatakan, memberikan saya integer. Dan mereka diminta untuk melupakan int, yang merupakan fungsi yang termasuk di perpustakaan CS50. Dan itu akan disimpan di x, variabel integer. Kemudian kami meminta mereka untuk integer lain. Kami mendapatkan bilangan bulat lain dan menyimpan bahwa dalam y. Dan kemudian, di sini on line 28, adalah di mana kita membuat panggilan fungsi kita. Kami katakan, equals z int tambahkan 2 int x koma y. Apakah Anda melihat mengapa hal ini masuk akal? x adalah variabel tipe integer dan y merupakan variabel tipe integer. Jadi itu bagus. Itu masuk akal dengan apa fungsi kita deklarasi on line 17 terlihat seperti. Koma daftar dipisahkan masukan mengharapkan dua bilangan bulat, a dan b. Dalam hal ini, kita dapat memanggil mereka apa pun yang kita inginkan. Itu hanya mengharapkan dua bilangan bulat. Dan x adalah bilangan bulat dan y adalah bilangan bulat. Itu bekerja. Dan kita tahu fungsi yang akan untuk output sebuah bilangan bulat juga. Dan jadi kita menyimpan output fungsi, menambahkan dua int, di tipe integer variabel, yang kita panggil z. Dan kemudian kita dapat mengatakan, jumlah persen saya dan saya adalah persen persen i. x, y dan z masing-masing mengisi mereka persen i. Apa definisi dari menambahkan dua ints terlihat seperti? Ini cukup sederhana. Ini salah satu yang kita hanya melihat kedua lalu, int sum sama jumlah ditambah b kembali. Apakah pekerjaan ini? Mari kita menyimpan file. Dan kemudian turun di sini di terminal saya Aku akan membuat penambah 1, dan aku membersihkan layar saya. Aku akan memperbesar karena saya tahu itu agak sulit untuk melihat. Jadi kita mengkompilasi program ini sebagai penambah 1. Jadi kita bisa melakukan dot slash penambah 1. Beri aku integer, 10. Beri aku bilangan bulat lain, 20. Jumlah 10 dan 20 adalah 30. Jadi kami membuat panggilan fungsi yang sukses. Anda dapat menjalankan fungsi lagi, negatif 10, 17 jumlah negatif 10 dan 17 adalah 7. Fungsi ini bekerja. Ini memiliki perilaku bahwa kita harapkan. Dan jadi kami telah membuat sukses fungsi, definisi, deklarasi, dan fungsi panggilan sukses. Pasangan lain-lain poin tentang fungsi sebelum kita menyimpulkan bagian ini. Ingat dari kami pembahasan jenis data, sebelumnya, yang berfungsi kadang-kadang bisa tidak mengambil input. Jika itu yang terjadi, kita mendeklarasikan fungsi sebagai memiliki daftar kekosongan argumen. Apakah Anda ingat apa yang paling umum fungsi kita lihat sejauh yang mengambil daftar argumen kekosongan adalah? Ini utama. Ingat juga bahwa kadang-kadang fungsi tidak benar-benar memiliki output. Dalam hal ini, kita mendeklarasikan fungsi sebagai memiliki tipe void kembali. Mari kita menyimpulkan bagian ini dengan mengatasi masalah praktik. Jadi, inilah masalah ditata. Saya ingin Anda menulis fungsi disebut segitiga valid. Apa fungsi ini harus melakukan adalah mengambil tiga bilangan real yang mewakili panjang dari tiga sisi segitiga sebagai parameter, atau argumen, atau yang inputs-- set sinonim Anda mungkin mengalami. Fungsi ini harus baik keluaran benar atau salah tergantung pada apakah mereka tiga panjang mampu membuat segitiga. Apakah Anda ingat jenis data yang kita digunakan untuk menunjukkan benar atau salah? Sekarang bagaimana Anda menerapkan ini? Nah tahu ada beberapa aturan tentang segitiga yang benar-benar berguna untuk mengetahui. Sebuah segitiga hanya dapat memiliki sisi dengan panjang yang positif. Yang masuk akal. Anda mungkin mengatakan, duh. Hal lain yang perlu diperhatikan meskipun, adalah bahwa jumlah tersebut dari panjang dari setiap dua sisi segitiga harus lebih besar dari panjang sisi ketiga. Itu benar-benar benar. Anda tidak dapat memiliki segitiga dari sisi 1, 2 dan 4, misalnya, karena 1 ditambah 2 tidak lebih besar dari 4. Jadi mereka adalah aturan yang menentukan apakah atau tidak tiga input dibayangkan dapat membentuk segitiga. Jadi mengambil beberapa menit dan menyatakan dan kemudian menentukan fungsi ini disebut valid segitiga, sehingga itu benar-benar memiliki perilaku yang ditentukan di sini. Itu akan menampilkan benar jika tiga sisi mampu terdiri segitiga, dan palsu sebaliknya Siap untuk melihat bagaimana Anda melakukannya? Berikut ini salah satu implementasi segitiga valid. Ini bukan satu-satunya. Anda mungkin sedikit berbeda. Tapi yang satu ini tidak, pada kenyataannya, memiliki perilaku yang kita harapkan. Kami menyatakan fungsi kami di paling atas, bool segitiga valid mengapung x mengambang y mengapung z. Jadi sekali lagi, fungsi ini mengambil tiga bilangan real sebagai argumen, mengambang variabel nilai titik, dan output benar atau salah nilai, yang merupakan Boolean, recall. Jadi itu sebabnya jenis kembali bool. Kemudian kita mendefinisikan fungsi. Hal pertama yang kita lakukan adalah memeriksa untuk memastikan bahwa semua sisi positif. Jika x kurang dari atau sama dengan 0, atau jika y sama dengan 0, atau jika z kurang dari atau sama dengan 0, yang tidak mungkin menjadi sebuah segitiga. Mereka tidak memiliki sisi positif. Dan sehingga kita dapat kembali palsu dalam situasi itu. Berikutnya, kita periksa untuk memastikan bahwa setiap pasangan input lebih besar dari yang ketiga. Jadi jika x ditambah y kurang dari atau sama dengan z, atau jika x ditambah z kurang dari atau sama dengan y, atau jika y ditambah z kurang dari atau sama dengan x, yang juga tidak bisa menjadi segitiga valid. Jadi kita kembali palsu lagi. Dengan asumsi kami melewati kedua cek meskipun, maka kita bisa kembali benar. Karena tiga sisi mampu returning-- menciptakan segitiga yang valid. Dan hanya itu. Anda sekarang telah dinyatakan dan ditetapkan. Dan Anda mungkin dapat sekarang menggunakan dan memanggil fungsi ini. Kerja bagus. Aku Doug Lloyd. Ini adalah CS50.