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