1 00:00:00,000 --> 00:00:12,510 2 00:00:12,510 --> 00:00:13,870 >> ROB: ทั้งหมดขวา 3 00:00:13,870 --> 00:00:16,770 ยินดีต้อนรับสู่ส่วนแรก 4 00:00:16,770 --> 00:00:17,480 ฉันร็อบ 5 00:00:17,480 --> 00:00:18,806 >> JOSEPH: ผมโจเซฟ 6 00:00:18,806 --> 00:00:21,540 >> ROB: ดังนั้นเราจะดำน้ำที่เหมาะสมค่ะ 7 00:00:21,540 --> 00:00:23,420 สิ่งแรกที่จะพูดคุยเกี่ยวกับ เป็นเครื่องใช้ 8 00:00:23,420 --> 00:00:27,150 เพื่อหวังว่าส่วนใหญ่ของคุณมี ดาวน์โหลดมันแล้ว 9 00:00:27,150 --> 00:00:37,180 แต่คุณสามารถดูคำแนะนำ ที่ cs50.net/appliance 10 00:00:37,180 --> 00:00:38,430 โอ้พระเจ้าตอนนี้ฉันประหม่า 11 00:00:38,430 --> 00:00:44,590 12 00:00:44,590 --> 00:00:45,430 ผมยังได้ยินมัน 13 00:00:45,430 --> 00:00:47,232 >> JOSEPH: ว้าวมันเสียงเหมือน มันยุ่งเหยิง 14 00:00:47,232 --> 00:00:52,460 >> ROB: ดังนั้นบางคนได้รับมี ปัญหาเกี่ยวกับมันจึงไม่รอจนกว่า 15 00:00:52,460 --> 00:00:54,940 นาทีสุดท้ายของปัญหาการตั้งค่า และพยายามแก้ปัญหาและเครื่องใช้ 16 00:00:54,940 --> 00:00:56,320 พบว่ามันไม่ทำงาน 17 00:00:56,320 --> 00:00:59,010 >> JOSEPH และถ้าสิ่งที่ไม่ทำงาน และคุณต้องการความช่วยเหลือคุณสามารถไปที่ 18 00:00:59,010 --> 00:01:03,390 cs50.net/discussion ที่เรา มีฟอรั่มที่คุณ 19 00:01:03,390 --> 00:01:04,110 สามารถโพสต์คำถามของคุณ 20 00:01:04,110 --> 00:01:06,655 และเราจะให้พวกเขาในที่สุด 21 00:01:06,655 --> 00:01:07,490 >> ROB: ทั้งหมดขวา 22 00:01:07,490 --> 00:01:12,180 ดังนั้นนี่คือสิ่งที่เครื่องใช้ ดูเหมือนว่า 23 00:01:12,180 --> 00:01:15,480 อีกครั้งก็เป็นเพียงที่แยกจากกันอย่างสมบูรณ์ ระบบปฏิบัติการที่ใช้ภายใน 24 00:01:15,480 --> 00:01:19,440 สิ่งที่ระบบปฏิบัติการที่คุณ จะทำงานบนแล็ปท็อปของคุณ 25 00:01:19,440 --> 00:01:24,450 และสิ่งสำคัญที่คุณจะ จะใช้เป็น Gedit 26 00:01:24,450 --> 00:01:28,050 ดังนั้นหวังว่านี้มีอยู่แล้ว กลายเป็นสถานที่ที่คุ้นเคย 27 00:01:28,050 --> 00:01:29,470 ขั้ว 28 00:01:29,470 --> 00:01:31,890 >> และคุณยังสามารถเรียกใช้ Chrome เครื่องใช้ภายใน 29 00:01:31,890 --> 00:01:33,860 มีไม่กี่คน ที่มีการรายงานทางอินเทอร์เน็ต 30 00:01:33,860 --> 00:01:35,390 ไม่ทำงานในเครื่องใช้ 31 00:01:35,390 --> 00:01:38,090 และบางส่วนของพวกเขาได้เพียงแค่สันนิษฐาน ที่มีอยู่ไม่ควรจะเป็น 32 00:01:38,090 --> 00:01:39,190 อินเทอร์เน็ตในเครื่องใช้ 33 00:01:39,190 --> 00:01:40,750 แต่ใช่มีที่ควร จะเป็นอินเทอร์เน็ต 34 00:01:40,750 --> 00:01:44,000 35 00:01:44,000 --> 00:01:46,410 >> ฉันจะบอกได้ในขณะนี้ แต่มันไม่ได้ จริงๆหมายถึงอะไร 36 00:01:46,410 --> 00:01:50,680 ถ้าอินเทอร์เน็ตไม่ทำงาน นี้คือสิ่งที่คุณมีแนวโน้มที่จะต้อง 37 00:01:50,680 --> 00:01:52,180 ในการทำงานที่จะแก้ไขได้ 38 00:01:52,180 --> 00:01:55,602 หากคุณกำลังมีปัญหาอินเทอร์เน็ตไม่ได้ จำได้เพียงแค่โพสต์บน 39 00:01:55,602 --> 00:01:57,560 พูดคุยและเราจะบอกให้เรียกว่า 40 00:01:57,560 --> 00:02:00,420 แต่อินเทอร์เน็ตควรจะทำงาน 41 00:02:00,420 --> 00:02:06,650 >> ดังนั้นเพียงสิ่งอื่น ๆ - ใช่ไม่มีอะไร อื่นมีความเกี่ยวข้องจริงๆ 42 00:02:06,650 --> 00:02:08,979 แต่ผมแค่อยากจะชี้ให้เห็นว่า - 43 00:02:08,979 --> 00:02:13,290 เห็นในมุมขวาล่างนี้ 44 00:02:13,290 --> 00:02:16,530 ดังนั้นแต่ละเครื่องใช้ไฟฟ้าของคุณควร มีที่อยู่ IP 45 00:02:16,530 --> 00:02:22,350 และต่อมาในภาคการศึกษา, IP นี้ ที่อยู่จะกลายเป็นที่เกี่ยวข้องมากขึ้นเมื่อ 46 00:02:22,350 --> 00:02:27,230 คุณกำลังทำงานบนเว็บ-p ชุดเพราะ คุณจะสามารถที่จะเข้าถึง 47 00:02:27,230 --> 00:02:32,310 เว็บไซต์ที่คุณกำลังทำงานต่อไปจากคุณ Chrome ในท้องถิ่นโดยใช้ที่อยู่นี้ 48 00:02:32,310 --> 00:02:35,400 >> แต่สิ่งที่ผมชอบที่จะใช้ที่อยู่ เพื่อ - และคุณไม่จำเป็นต้องทำเช่นนี้ฉัน 49 00:02:35,400 --> 00:02:37,460 เพียงแค่ต้องการที่จะชี้ออก - 50 00:02:37,460 --> 00:02:39,540 อยู่ที่นี่ 51 00:02:39,540 --> 00:02:42,910 ดังนั้นนี่คือหน้าต่าง terminal บน Mac ของฉันนี้ไม่ได้อยู่ใน 52 00:02:42,910 --> 00:02:44,580 เครื่องใช้ในทุก 53 00:02:44,580 --> 00:02:47,190 และคุณสามารถมองหาสิ่งที่ คำสั่งนี้จะ 54 00:02:47,190 --> 00:02:51,855 แต่ฉันจะ SSH โดยตรง กับเครื่องใช้ของฉัน 55 00:02:51,855 --> 00:02:53,410 ผมไม่ทราบว่าสิ่งที่ไอพีเป็น 56 00:02:53,410 --> 00:02:54,300 >> JOSEPH: 168 - 57 00:02:54,300 --> 00:02:56,080 >> 168.224.1.0 58 00:02:56,080 --> 00:02:59,950 >> ROB: ดังนั้นเมื่อฉันทำ กับเรื่องนี้เข้าสู่ระบบ 59 00:02:59,950 --> 00:03:05,450 ตอนนี้โดยทั่วไปนี้จะเหมือนกับ หน้าต่าง terminal ภายในเครื่องของฉัน 60 00:03:05,450 --> 00:03:10,280 ดังนั้นผมสวยมากไม่เคยทำงานจริง จากภายในเครื่องตัวเอง 61 00:03:10,280 --> 00:03:12,550 ผมก็มักจะมีมันทำงาน ในพื้นหลังลดลง 62 00:03:12,550 --> 00:03:15,890 และ SSHed เป็นมัน 63 00:03:15,890 --> 00:03:24,270 >> ปัญหากับเรื่องนี้คือคุณจะไม่ได้ไป เพื่อให้สามารถใช้งานได้อย่างง่ายดาย Gedit 64 00:03:24,270 --> 00:03:25,600 โดยตรงจากนี้ 65 00:03:25,600 --> 00:03:31,500 แต่ถ้าคุณต้องการที่จะเป็นจริงเย็น แฮ็กเกอร์แล้วคุณควรจะได้รับในการใช้ 66 00:03:31,500 --> 00:03:34,220 แก้ไขข้อความบรรทัดคำสั่งต่อไป 67 00:03:34,220 --> 00:03:39,620 ดังนั้นเป็นกลุ่มและ Emacs และนาโนทั้งหมดเหล่านี้ มีทางเลือกที่แตกต่างกัน 68 00:03:39,620 --> 00:03:41,560 Nano มีแนวโน้มที่จะง่ายที่สุด 69 00:03:41,560 --> 00:03:45,006 และฉันคิดว่ามันไม่มี เน้นไวยากรณ์ 70 00:03:45,006 --> 00:03:47,620 โอ้ไม่ก็ไม่ทั้งหมด 71 00:03:47,620 --> 00:03:49,870 ดังนั้นคุณสามารถใช้นาโนเพราะ อย่างใดอย่างหนึ่งที่ง่ายสวย 72 00:03:49,870 --> 00:03:52,000 >> คุณจะเห็นคำสั่งทั้งหมดเหล่านี้ ที่ด้านล่าง 73 00:03:52,000 --> 00:03:54,750 สัญลักษณ์นี้แครอทน้อย 74 00:03:54,750 --> 00:03:57,620 หากคุณไม่ได้เห็นมันมาก่อนที่คุณจะ อาจจะเห็นว่ามันมากตอนนี้ 75 00:03:57,620 --> 00:04:02,350 มันมักจะหมายความว่าแครอทควบคุม เช่นด้านล่างซ้ายของแป้นพิมพ์ของคุณ 76 00:04:02,350 --> 00:04:04,130 อักขระควบคุม 77 00:04:04,130 --> 00:04:07,260 ดังนั้นที่นี่มันบอกฉันลงที่นี่ - 78 00:04:07,260 --> 00:04:08,710 โอ้ก็ไม่ได้ตัดออกไปถ้าผมซูมเข้า 79 00:04:08,710 --> 00:04:11,040 ดังนั้นการควบคุม X เป็นวิธีการที่ ฉันจะออกจาก 80 00:04:11,040 --> 00:04:14,710 และมันบอกว่าฉันสามารถกด Y เพื่อ ใช่สำหรับการประหยัด, ไม่มีการเลขที่ 81 00:04:14,710 --> 00:04:17,190 เพื่อให้เป็นนาโน 82 00:04:17,190 --> 00:04:22,860 >> เป็นกลุ่มและ Emacs มีแนวโน้มที่จะมากกว่าเล็กน้อย ซับซ้อนและครอบงำ 83 00:04:22,860 --> 00:04:28,840 แต่คุณจะได้รับใช้มัน แล้วคุณจะรักมัน 84 00:04:28,840 --> 00:04:30,590 ดังนั้นที่ว่า 85 00:04:30,590 --> 00:04:31,720 >> JOSEPH: ไม่จำเป็นต้องทำไม่ว่า 86 00:04:31,720 --> 00:04:31,840 >> ROB: ใช่ 87 00:04:31,840 --> 00:04:37,510 คุณมีอิสระที่จะใช้สำหรับ Gedit ส่วนที่เหลือของภาคการศึกษา 88 00:04:37,510 --> 00:04:40,630 ดังนั้นคำถามใด ๆ ที่เกี่ยวข้องกับเครื่องใช้? 89 00:04:40,630 --> 00:04:42,820 ? หรือคุณมีความคิดใด ๆ กับสิ่งอื่น จะต้องมีการพูดเกี่ยวกับเกี่ยวกับ 90 00:04:42,820 --> 00:04:43,610 เครื่องใช้หรือไม่ 91 00:04:43,610 --> 00:04:43,996 ใช่ 92 00:04:43,996 --> 00:04:47,720 >> ลำโพงที่ 1: เมื่อคุณ SSHed เป็นของคุณ สิ่งที่เป็นสีแดงเข้มรหัสผ่านหรือไม่ 93 00:04:47,720 --> 00:04:48,390 >> ROB: ใช่ 94 00:04:48,390 --> 00:04:50,170 รหัสผ่านสำหรับทุกอย่างสวยมาก ในเครื่องใช้ไฟฟ้าที่เป็นไป 95 00:04:50,170 --> 00:04:52,473 จะเป็นสีแดงเข้ม 96 00:04:52,473 --> 00:04:56,517 >> ลำโพงที่ 2: การติดตั้งเช่น IDE จริง บนเครื่องก็จะทำงานอย่างไร 97 00:04:56,517 --> 00:04:59,200 98 00:04:59,200 --> 00:05:07,290 >> ROB: ผมคิดว่าจะมีคราส รุ่น Fedora ซึ่งในกรณีที่ใช่ 99 00:05:07,290 --> 00:05:08,420 คุณสามารถทำเช่นนั้นได้ 100 00:05:08,420 --> 00:05:10,875 มันอาจไม่คุ้ม 101 00:05:10,875 --> 00:05:11,742 >> ลำโพง 2: ตกลง 102 00:05:11,742 --> 00:05:15,924 ดังนั้นมันอาจจะง่ายกว่าถ้าผมอยากจะ ใช้ Eclipse เพียงใช้พื้นเมืองและ 103 00:05:15,924 --> 00:05:17,646 แล้วอัปโหลดไปยัง - 104 00:05:17,646 --> 00:05:21,090 >> ROB: โอ้ที่ยังอาจจะง่ายขึ้น 105 00:05:21,090 --> 00:05:24,046 แต่คุณสามารถได้รับมันทำงาน เครื่องใช้ภายใน 106 00:05:24,046 --> 00:05:27,740 >> JOSEPH: และสำหรับกล้องคำถาม คือคุณสามารถติดตั้งอีก 107 00:05:27,740 --> 00:05:29,490 IDE ภายในของเครื่องใช้หรือไม่ 108 00:05:29,490 --> 00:05:31,520 >> ROB: Eclipse เป็น ตัวอย่างของการ IDE 109 00:05:31,520 --> 00:05:34,800 110 00:05:34,800 --> 00:05:36,050 คำถามเครื่องใช้อื่น ๆ ? 111 00:05:36,050 --> 00:05:38,250 112 00:05:38,250 --> 00:05:38,680 ขวาทั้งหมด 113 00:05:38,680 --> 00:05:44,920 >> ดังนั้นตอนนี้เราจะย้ายไปบรรทัดคำสั่ง สิ่งที่เกี่ยวข้องกับอินเตอร์เฟซเพื่อ CLI 114 00:05:44,920 --> 00:05:47,990 และอีกครั้งฉันแค่จะไปทำงานใน ที่นี่เพราะเป็นเหมือนกันกับ 115 00:05:47,990 --> 00:05:52,780 การทำงานภายในหน้าต่าง terminal เครื่องใช้ภายใน 116 00:05:52,780 --> 00:05:54,160 วิธีที่แบบอักษรที่มองหา 117 00:05:54,160 --> 00:05:55,970 ที่มีขนาดใหญ่เพียงพอหรือไม่ 118 00:05:55,970 --> 00:05:57,000 ขวาทั้งหมด 119 00:05:57,000 --> 00:06:02,480 >> ดังนั้นมีจำนวนมากของคำสั่งที่ คุณควรจะได้รับสวยใช้ 120 00:06:02,480 --> 00:06:04,490 ตลอดภาคการศึกษา 121 00:06:04,490 --> 00:06:09,480 ขนาดใหญ่สองสำหรับการนำเป็นคำสั่ง ls รายการ ไฟล์ที่อยู่ในไดเรกทอรีนี้และ 122 00:06:09,480 --> 00:06:11,380 cd เพื่อเปลี่ยนไดเรกทอรี 123 00:06:11,380 --> 00:06:18,390 ดังนั้นผมจึงสามารถเปลี่ยนไปยังเดสก์ทอปแล้ว รูปแบบที่พบบ่อยมากคือแผ่นซีดีที่จะ 124 00:06:18,390 --> 00:06:22,550 ไดเรกทอรีและทันทีที่คำสั่ง ls สิ่งที่อยู่ในไดเรกทอรี 125 00:06:22,550 --> 00:06:25,540 >> บางครั้งคนยังไม่ได้ตระหนักถึง เสร็จสิ้นแท็บที่เป็นสิ่งที่ 126 00:06:25,540 --> 00:06:28,370 ดังนั้นเช่น cd, VH แล้วฉันกดแท็บ 127 00:06:28,370 --> 00:06:30,790 ฉันเกือบจะไม่เคยพิมพ์ที่ออก สิ่งที่ทั้ง 128 00:06:30,790 --> 00:06:32,920 แล้วถ้าผมให้กดปุ่มแท็บ อีกครั้งก็จะได้โดยอัตโนมัติ 129 00:06:32,920 --> 00:06:33,670 เริ่มรายการสำหรับฉัน 130 00:06:33,670 --> 00:06:37,000 ดังนั้นผมจึงสามารถ vhosts cd, โฮสต์ท้องถิ่น 131 00:06:37,000 --> 00:06:39,880 และที่เพิ่งจะ - 132 00:06:39,880 --> 00:06:43,380 ในกรณีที่คุณยังไม่เคยได้ยินคำว่า ก่อนไดเรกทอรีเป็นเพียงคำอื่น 133 00:06:43,380 --> 00:06:45,170 สำหรับโฟลเดอร์ 134 00:06:45,170 --> 00:06:49,930 ดังนั้นตอนนี้ถ้าคุณเห็น - 135 00:06:49,930 --> 00:06:51,810 ให้นำมาที่ไปด้านบน 136 00:06:51,810 --> 00:06:55,380 >> ดังนั้นตอนนี้ถ้าคุณเห็นในวงเล็บคุณ เห็นตัวหนอนน้อย, เฉือน, vhost, 137 00:06:55,380 --> 00:06:56,810 เฉือน, โฮสต์ท้องถิ่น 138 00:06:56,810 --> 00:07:00,040 ดังนั้นตัวหนอนที่หมาย ไปยังไดเรกทอรีบ้านของฉัน 139 00:07:00,040 --> 00:07:03,090 มันเป็นไดเรกทอรีที่คุณกำลัง ในเมื่อคุณ SSH ค่ะ 140 00:07:03,090 --> 00:07:05,660 มันเป็นไดเรกทอรีที่คุณอยู่ในเมื่อ คุณเปิดสถานี 141 00:07:05,660 --> 00:07:08,650 มันเป็นที่ที่คุณจะเริ่มต้น 142 00:07:08,650 --> 00:07:13,110 และดังนั้นฉันภายในของไดเรกทอรีบ้านของฉัน และฉันภายในของ vhost 143 00:07:13,110 --> 00:07:14,475 ไดเรกทอรีภายในของไดเรกทอรีบ้านของฉัน 144 00:07:14,475 --> 00:07:19,670 และแล้วฉันภายในของท้องถิ่น เป็นเจ้าภาพจัดการภายในของไดเรกทอรีที่ 145 00:07:19,670 --> 00:07:23,740 >> ดังนั้นบางสิ่งที่มีประโยชน์อื่น ๆ ที่มีซีดี - 146 00:07:23,740 --> 00:07:29,220 หรือดีโดยทั่วไปเพื่อจุดเสมอ หมายถึงไดเรกทอรีปัจจุบัน 147 00:07:29,220 --> 00:07:31,130 cd จุดเป็นคำสั่งที่ไร้ค่าสวย 148 00:07:31,130 --> 00:07:35,150 แต่ที่เปลี่ยนไป ไดเรกทอรีปัจจุบัน 149 00:07:35,150 --> 00:07:38,230 อย่างใดอย่างหนึ่งที่มีประโยชน์มากในแง่ของการ cd เป็นจุดจุดซึ่งเป็น 150 00:07:38,230 --> 00:07:40,220 เพียงแค่ขึ้นไปหนึ่งไดเรกทอรี 151 00:07:40,220 --> 00:07:43,360 >> และทราบว่าเหล่านี้ - 152 00:07:43,360 --> 00:07:48,610 ฉันอยากจะพูดแทน แต่เหล่านี้ สัญลักษณ์จุดและจุดจุดทำงานที่ 153 00:07:48,610 --> 00:07:51,740 สวยมากคำสั่งใด ๆ ที่คุณกำลัง จะได้รับความคิดของการทำงาน 154 00:07:51,740 --> 00:07:55,370 ดังนั้นเช่นแผ่นซีดีน่าจะเป็นที่ที่คุณจะ ใช้มากที่สุด แต่เหล่านี้จะไม่ 155 00:07:55,370 --> 00:07:56,780 สิ่งที่เพียงแค่ cd เข้าใจ 156 00:07:56,780 --> 00:07:59,980 มันเป็นสิ่งที่สวยมากทั้งหมดของคุณ บรรทัดคำสั่งเข้าใจ 157 00:07:59,980 --> 00:08:01,932 จำนวนมากของโปรแกรมเข้าใจ จุดและจุดจุด 158 00:08:01,932 --> 00:08:04,830 159 00:08:04,830 --> 00:08:09,090 >> ดังนั้นคนที่มีประโยชน์อื่น ๆ - cd, ประ 160 00:08:09,090 --> 00:08:13,460 เพื่อที่จะนำมาให้ผม ไดเรกทอรีสุดท้ายที่ฉันได้ค่ะ 161 00:08:13,460 --> 00:08:15,980 ดังนั้นบางครั้งฉันจะทำสิ่งที่ต้องการ โอ้ผมทำงานที่นี่ 162 00:08:15,980 --> 00:08:21,110 และผมเห็นข้อผิดพลาดบางอย่างเกี่ยวกับบางสิ่งบางอย่างและ ฉันจะไปตรวจสอบได้โดยไปที่ 163 00:08:21,110 --> 00:08:24,020 บางไดเรกทอรีสุ่มอยู่ที่ไหนสักแห่ง 164 00:08:24,020 --> 00:08:25,260 และผมก็ไม่ทราบว่ามันจะ ให้ฉันอยู่ในนั้น 165 00:08:25,260 --> 00:08:25,720 มันจะ 166 00:08:25,720 --> 00:08:27,615 ดังนั้นแล้วฉันทำสิ่งที่ฉันต้องการ ไดเรกทอรีนี้ 167 00:08:27,615 --> 00:08:28,950 blah, blah, blah, blah, blah 168 00:08:28,950 --> 00:08:31,770 และฉันก็ชอบที่ถูกต้องทั้งหมดที่ฉันต้องการ ที่จะกลับไปที่ผม 169 00:08:31,770 --> 00:08:34,490 cd รีบและมันทำให้ผมกลับมา 170 00:08:34,490 --> 00:08:39,970 >> ดังนั้นฉันจะโยนมาก ของเหล่านี้ที่คุณในวันนี้ 171 00:08:39,970 --> 00:08:43,730 ผมไม่ได้คาดหวังให้คุณจดจำ ทั้งหมดของพวกเขา 172 00:08:43,730 --> 00:08:46,170 มันเป็นชนิดของเพิ่งรู้ ที่พวกเขามีอยู่ 173 00:08:46,170 --> 00:08:48,690 และจากนั้นในภายหลังเมื่อคุณต้องการ อืมผมอยากจะกลับไปที่ 174 00:08:48,690 --> 00:08:51,870 ไดเรกทอรีที่ฉันเป็นเพียงที่โอ้รอ สิ่งที่ต้องการที่มีอยู่ 175 00:08:51,870 --> 00:08:53,980 คุณไม่จำเป็นต้องเพียงพิมพ์ สารบบทั้งหมดอีกครั้ง 176 00:08:53,980 --> 00:08:56,090 >> JOSEPH: และในที่สุดคุณจะเพียงแค่ ใช้พวกเขาซ้ำแล้วซ้ำอีกและ 177 00:08:56,090 --> 00:08:57,830 มันจะกลายเป็นหน่วยความจำของกล้ามเนื้อ 178 00:08:57,830 --> 00:09:00,090 >> ROB: ใช่ 179 00:09:00,090 --> 00:09:02,930 ดังนั้นวิธีการที่ผมกล่าวว่าก่อนที่ตัวหนอน เป็นไดเรกทอรีที่บ้านของคุณ 180 00:09:02,930 --> 00:09:04,820 ดังนั้นผมจึงสามารถ cd, ตัวหนอน 181 00:09:04,820 --> 00:09:07,280 แต่ฉันไม่ได้มีการ ทำว่าถ้าฉันเพียง - 182 00:09:07,280 --> 00:09:09,760 ผมจะกลับไปที่ไดเรกทอรีเพื่อ มันไม่ได้เป็นตัวอย่างที่ไม่มีจุดหมาย 183 00:09:09,760 --> 00:09:14,560 แต่ถ้าฉันเพียงแค่ทำ cd, ที่ยัง เช่นเดียวกับที่ไปที่ไดเรกทอรีบ้านของฉัน 184 00:09:14,560 --> 00:09:18,380 185 00:09:18,380 --> 00:09:19,880 ฉันทำคำสั่ง, K. 186 00:09:19,880 --> 00:09:24,015 >> JOSEPH: คุณยังสามารถพิมพ์ที่ชัดเจน คำและมันควรจะล้างมัน 187 00:09:24,015 --> 00:09:28,650 >> ROB: และผมคิดว่ายังควบคุม L ยังไม่ได้ 188 00:09:28,650 --> 00:09:29,690 ดังนั้นหลายวิธีที่แตกต่างกัน 189 00:09:29,690 --> 00:09:34,070 ผมคิดว่ามีความแตกต่างบางอย่างที่ ที่ชัดเจนและควบคุม L จะเพียงแค่ 190 00:09:34,070 --> 00:09:37,280 จริงๆผลักดันมันไปด้านบนและ ฉันยังสามารถเลื่อนกลับ 191 00:09:37,280 --> 00:09:40,580 คำสั่ง K แท้จริงทำลาย ทุกอย่างและคุณ 192 00:09:40,580 --> 00:09:42,960 ไม่สามารถเลื่อนกลับขึ้นไป 193 00:09:42,960 --> 00:09:45,530 อย่างน้อยที่สุดที่ วิธีการทำงานใน iTerm2 194 00:09:45,530 --> 00:09:48,690 ผมไม่ทราบว่าสิ่งที่อื่น ๆ - 195 00:09:48,690 --> 00:09:49,360 โอ้ 196 00:09:49,360 --> 00:09:55,450 >> ด้วย SSHing ดังนั้นถ้าคุณอยู่ในวินโดวส์ คุณจะต้องดาวน์โหลดฉาบ 197 00:09:55,450 --> 00:10:02,360 เพื่อ SSH ตั้งแต่ Windows ไม่ได้ เช่นมีเครื่องมือในตัว SSH 198 00:10:02,360 --> 00:10:06,150 จากแม็คคุณสามารถเพียง SSH โดยตรง จากหน้าต่าง terminal 199 00:10:06,150 --> 00:10:08,755 200 00:10:08,755 --> 00:10:09,690 ตกลง 201 00:10:09,690 --> 00:10:11,840 คำถาม? 202 00:10:11,840 --> 00:10:19,260 >> ด้วยคำสั่ง ls ดังนั้นสิ่งที่จะได้รับใช้ กับที่สุดของคำสั่งเหล่านี้คือ - 203 00:10:19,260 --> 00:10:20,060 ดีฉันก็จะทำอย่างใดอย่างหนึ่ง 204 00:10:20,060 --> 00:10:21,310 แอลเอสรีบลิตร 205 00:10:21,310 --> 00:10:26,330 ดังนั้นรีบลิตรคือสิ่งที่เรากำลังจะ ที่จะเรียกธงที่จะสั่ง ls 206 00:10:26,330 --> 00:10:30,770 และมากของคำสั่งเหล่านี้มีธง ที่คุณสามารถส่งผ่านไปยังพวกเขา 207 00:10:30,770 --> 00:10:35,020 ดังนั้นในกรณีนี้รีบลิตรเป็นธง ที่บอกว่ามันจะให้ฉันเต็ม 208 00:10:35,020 --> 00:10:37,850 รายการของข้อมูลทั้งหมดที่ ไฟล์เหล่านี้ 209 00:10:37,850 --> 00:10:44,790 >> ดังนั้นเราจึงเห็นว่านี่เป็นสก์ท็อป แก้ไขเมื่อวันที่ 30 กรกฏาคม 00:54 210 00:10:44,790 --> 00:10:47,160 ดาวน์โหลดมีการปรับเปลี่ยนที่ 6 กันยายน 211 00:10:47,160 --> 00:10:52,350 เหล่านี้เป็นขนาดปัจจุบันและ ไบต์ของไดเรกทอรีเหล่านี้ 212 00:10:52,350 --> 00:10:54,412 คุณไม่จำเป็นที่จะเข้าใจ ทั้งหมดนี้ 213 00:10:54,412 --> 00:11:00,380 >> สิ่งนี้อยู่ทางด้านซ้ายของเหล่านี้ drwx, ที่จะกลายเป็นที่เกี่ยวข้องมากขึ้น 214 00:11:00,380 --> 00:11:02,290 ในภายหลังเมื่อคุณต้องจัดการกับ - 215 00:11:02,290 --> 00:11:05,900 ว่าจะทำอย่างไรกับผู้ที่มีสิทธิ์ ในการดูไฟล์เหล่านี้ 216 00:11:05,900 --> 00:11:09,880 ดังนั้นถ้าคุณไม่ได้ใช้เฉพาะใน คอมพิวเตอร์เครื่องนี้คุณจะสามารถที่จะ 217 00:11:09,880 --> 00:11:13,345 การพูดการตกลงฉันควรจะเป็นคนเดียว ได้รับอนุญาตให้ดูแฟ้มนี้หรือฉัน 218 00:11:13,345 --> 00:11:14,870 จะช่วยให้ทุกคน ในการดูไฟล์นี้ 219 00:11:14,870 --> 00:11:17,710 ดังนั้นคนอื่นบนคอมพิวเตอร์ของฉัน สามารถดูไฟล์นี้ 220 00:11:17,710 --> 00:11:22,190 221 00:11:22,190 --> 00:11:25,600 ฉันไม่ได้รู้ว่าสิ่งนี้ - สิ่งนี้จะทำอย่างไร 222 00:11:25,600 --> 00:11:26,840 >> JOSEPH: ผมไม่แน่ใจว่าจริง 223 00:11:26,840 --> 00:11:27,705 >> ROB: ไม่มีความคิด 224 00:11:27,705 --> 00:11:30,530 >> JOSEPH: แต่ถ้าคุณไม่ได้รู้ว่ามี คำสั่งที่เป็นประโยชน์ที่คุณสามารถใช้ 225 00:11:30,530 --> 00:11:31,680 ที่จะบอกคุณในสิ่งที่หมายถึงการส่งออก 226 00:11:31,680 --> 00:11:33,780 และถ้าคุณพิมพ์ในมนุษย์ ก่อนที่คำสั่ง - 227 00:11:33,780 --> 00:11:35,000 ดังนั้น M--N ROB: คน 228 00:11:35,000 --> 00:11:37,690 ดังนั้นคนที่เป็นอีกหนึ่ง ที่มีประโยชน์มาก 229 00:11:37,690 --> 00:11:39,540 และมนุษย์คำสั่ง ls 230 00:11:39,540 --> 00:11:47,320 ดังนั้นหน้าคนที่พวกเขามีทั้ง คำสั่งที่คุณกำลังจะใช้ 231 00:11:47,320 --> 00:11:50,330 ที่บรรทัดคำสั่งและพวกเขายังมี ฟังก์ชั่นที่จะเกี่ยวข้อง 232 00:11:50,330 --> 00:11:52,530 C. ด้วยดังนั้นคุณจึงสามารถคน - 233 00:11:52,530 --> 00:11:53,720 และฉันไม่สนใจ 3 234 00:11:53,720 --> 00:11:57,410 แต่คนที่ 3 printf จะนำ รุ่น C ขึ้นของ printf 235 00:11:57,410 --> 00:12:01,030 แต่ถ้าผมทำเพียงแค่คน printf นี้เป็น จะนำคำสั่ง printf ขึ้น 236 00:12:01,030 --> 00:12:03,540 ที่เกิดขึ้นที่บรรทัดคำสั่ง 237 00:12:03,540 --> 00:12:05,730 >> ดังนั้นคนสั่ง ls 238 00:12:05,730 --> 00:12:09,030 หน้าคนสามารถสวย ล้นหลาม 239 00:12:09,030 --> 00:12:12,770 ที่นี่ แต่คุณจะเห็นในรายการนี​​้ ทั้งหมดของธงเหล่านี้ที่คำสั่ง ls 240 00:12:12,770 --> 00:12:14,300 เข้าใจ 241 00:12:14,300 --> 00:12:17,876 ดังนั้นถ้าเราไปรีบ, ลิตรและ - 242 00:12:17,876 --> 00:12:19,300 ฉันแค่จะโยนนี้ที่คุณ 243 00:12:19,300 --> 00:12:23,050 แต่เพื่อการค้นหาที่คุณต้องการ การตีครั้งแรกคำถาม 244 00:12:23,050 --> 00:12:24,780 เครื่องหมายหรือปุ่มเฉือน 245 00:12:24,780 --> 00:12:26,040 ดังนั้นเฉือน 246 00:12:26,040 --> 00:12:29,000 >> แล้วฉันจะค้นหา สำหรับสิ่งที่ฉันต้องการ 247 00:12:29,000 --> 00:12:33,780 ดังนั้นฉันจะเฉือนเพื่อประลิตร 248 00:12:33,780 --> 00:12:35,110 และมีมันเป็น 249 00:12:35,110 --> 00:12:37,450 ดังนั้นใช้รูปแบบรายการที่มีความยาว 250 00:12:37,450 --> 00:12:40,060 แต่นั่นไม่ได้ช่วยให้ฉันคิดออกว่า คอลัมน์โดยเฉพาะอย่างยิ่งที่มีความหมาย แต่ฉัน 251 00:12:40,060 --> 00:12:44,480 สมมติที่ไหนสักแห่งในที่นี่ ก็จะอธิบายว่า 252 00:12:44,480 --> 00:12:48,740 เพื่อใช้หน้าคนสำหรับคำสั่งใด ๆ ที่คุณไม่เข้าใจได้ทันที 253 00:12:48,740 --> 00:12:51,080 >> ฉันแน่ใจว่าสวยที่คุณยังสามารถมนุษย์มนุษย์ 254 00:12:51,080 --> 00:12:53,070 อินเตอร์เฟซออนไลน์ คู่มืออ้างอิง 255 00:12:53,070 --> 00:12:57,700 256 00:12:57,700 --> 00:13:03,570 โอ้, ไฟล์ล่าสุดหนึ่งที่อาจจะเล็กน้อย คำสั่ง ls มีความเกี่ยวข้องชน 257 00:13:03,570 --> 00:13:08,490 เพื่อแจ้งให้ทราบถ้าฉันทำคำสั่ง ls, ฉันจะได้รับเหล่านี้ห้าไฟล์ 258 00:13:08,490 --> 00:13:11,480 ถ้าฉันทำคำสั่ง ls, รีบ, ผม ได้รับไฟล์มากขึ้น 259 00:13:11,480 --> 00:13:15,350 ดังนั้นสิ่งที่เหมือนกันระหว่างเหล่านี้ ไฟล์ใหม่เป็นจุดก่อน 260 00:13:15,350 --> 00:13:21,220 >> ดังนั้นการประชุมก็คือแฟ้มที่ เริ่มต้นด้วยการจุดถูกซ่อนอยู่ 261 00:13:21,220 --> 00:13:25,300 ดังนั้นคุณจึงไม่ต้องการที่จะเห็นไฟล์ที่คุณ ไม่ต้องการที่จะมีมันยุ่งกับ 262 00:13:25,300 --> 00:13:26,750 รายการไดเรกทอรีของคุณ 263 00:13:26,750 --> 00:13:30,020 มันเป็นเพียงเมื่อคุณถามอย่างชัดเจน ทั้งหมดที่ถูกต้องคำสั่ง ls, ประ,, แสดงให้ฉัน 264 00:13:30,020 --> 00:13:32,830 ย่อมาจากไฟล์ทั้งหมด รวมถึงคนที่ซ่อนอยู่ 265 00:13:32,830 --> 00:13:37,260 266 00:13:37,260 --> 00:13:39,270 ดังนั้นบางคำสั่งอื่น ๆ 267 00:13:39,270 --> 00:13:41,323 โอ้คำถามที่จุดที่ 268 00:13:41,323 --> 00:13:41,746 ใช่ 269 00:13:41,746 --> 00:13:45,914 >> ลำโพงที่ 3: เมื่อคุณทำคำสั่ง ls, สิ่งที่จุดจุด? 270 00:13:45,914 --> 00:13:46,870 >> ROB: โอ้ 271 00:13:46,870 --> 00:13:48,780 ดังนั้นนี่คือสิ่งที่ผมพูดเกี่ยวกับ 272 00:13:48,780 --> 00:13:50,890 มันเป็นสิ่งเดียวที่ ฉันสามารถชอบ cd จุดจุด 273 00:13:50,890 --> 00:13:56,790 ดังนั้นในทางเทคนิคจุดและจุดจุดที่ ไฟล์ที่มีอยู่ในทุกเดียว 274 00:13:56,790 --> 00:14:03,620 ไดเรกทอรีที่ไฟล์จุดหมาย ไปยังไดเรกทอรีปัจจุบัน 275 00:14:03,620 --> 00:14:06,930 ดังนั้นถ้าผม cd จุดฉันแค่จะ ที่จะอยู่ในไดเรกทอรี 276 00:14:06,930 --> 00:14:10,870 และจุดจุดมักจะหมายถึง หน้าที่ไดเรกทอรีหนึ่งระดับขึ้น 277 00:14:10,870 --> 00:14:18,200 ดังนั้นถ้าผมไปลงบันทึกและคำสั่ง ls รีบอัล, ฉันจะเห็นจุดจุด cd ไปยังจุดจุด 278 00:14:18,200 --> 00:14:20,390 นำฉันไปยังไดเรกทอรีก่อนหน้านี้ 279 00:14:20,390 --> 00:14:24,530 280 00:14:24,530 --> 00:14:25,780 ใช่ 281 00:14:25,780 --> 00:14:27,160 282 00:14:27,160 --> 00:14:28,110 ตกลง 283 00:14:28,110 --> 00:14:33,070 >> ดังนั้นอีกสิ่งที่สำคัญสวย คำสั่ง rm ใน 284 00:14:33,070 --> 00:14:35,650 ดังนั้นนั่นคือสิ่งที่เรากำลังจะ ที่จะใช้ในการลบ 285 00:14:35,650 --> 00:14:38,100 และแจ้งให้เราทำจริงอีก คำสั่งแรก 286 00:14:38,100 --> 00:14:39,610 ดังนั้น mkdir 287 00:14:39,610 --> 00:14:42,770 mkdir คือวิธีที่คุณสามารถ สร้างไดเรกทอรี 288 00:14:42,770 --> 00:14:47,530 และฉันจะสร้างไดเรกทอรีชั่วคราว และไปในไดเรกทอรีชั่วคราวที่ 289 00:14:47,530 --> 00:14:49,590 และเป็นที่คาดหวังมันว่างเปล่า 290 00:14:49,590 --> 00:14:53,680 แต่ถ้าคำสั่ง ls ฉันรีบ, ฉันยังคงมีจุด และจุดจุดจุดเพราะหมายถึง 291 00:14:53,680 --> 00:14:54,480 ไดเรกทอรีปัจจุบัน 292 00:14:54,480 --> 00:14:56,170 และจุดจุดหมายถึง ไดเรกทอรีที่แล้ว 293 00:14:56,170 --> 00:14:58,700 และผู้ที่มักจะอยู่ไม่ว่า ไดเรกทอรีที่คุณกำลังเข้า 294 00:14:58,700 --> 00:15:01,910 295 00:15:01,910 --> 00:15:09,010 >> และนี่คือที่ไม่จำเป็นอย่างสิ้นเชิง คำสั่ง แต่สัมผัส 296 00:15:09,010 --> 00:15:11,880 ฉันแค่ใช้มันเพราะมันเป็น วิธีที่ง่ายในการสร้างไฟล์ 297 00:15:11,880 --> 00:15:16,180 เพื่อสัมผัสสัมผัส b สัมผัสคเป็นเพียง จะสร้างสามไฟล์ที่เรียกว่า 298 00:15:16,180 --> 00:15:17,845 b, c และที่ว่างเปล่า 299 00:15:17,845 --> 00:15:20,450 300 00:15:20,450 --> 00:15:24,980 ดังนั้นจุดของฉันการสร้างผู้ที่อยู่ใน สถานที่แรกที่เป็นเพียงเพื่อให้ Rm ที่ 301 00:15:24,980 --> 00:15:26,250 วิธีที่เราสามารถลบออก 302 00:15:26,250 --> 00:15:27,850 ดังนั้น RM, 303 00:15:27,850 --> 00:15:30,960 มันจะถามฉันลบ ปกติไฟล์ว่างเปล่า 304 00:15:30,960 --> 00:15:33,170 แล้วฉันจะบอกว่าใช่ 305 00:15:33,170 --> 00:15:39,090 >> ดังนั้นถ้าผมทราบว่าผมต้องการที่จะ ลบไฟล์ที่โดยไม่ต้องมี 306 00:15:39,090 --> 00:15:44,500 ได้รับแจ้งให้ลบไฟล์ที่ว่างเปล่าปกติ? then rm รีบฉเป็นไปได้ 307 00:15:44,500 --> 00:15:48,230 ธงที่บอกว่าบังคับเอาโดยไม่ต้อง ได้แจ้งให้ฉันโอ้คุณ 308 00:15:48,230 --> 00:15:49,710 แน่ใจหรือว่าต้องการที่จะลบไฟล์หรือไม่ 309 00:15:49,710 --> 00:15:50,810 ใช่ฉันแน่ใจว่า 310 00:15:50,810 --> 00:15:56,050 ดังนั้น RM, ประ, FB จะเพียงแค่ ทำมันได้โดยไม่ต้องขอ 311 00:15:56,050 --> 00:15:57,950 >> ดังนั้นขอให้บางไดเรกทอรีมากขึ้น 312 00:15:57,950 --> 00:16:03,670 mkdir, tmp2, cd, tmp2, สัมผัสสัมผัสข 313 00:16:03,670 --> 00:16:04,300 ตกลง 314 00:16:04,300 --> 00:16:08,180 ดังนั้นตอนนี้ฉันต้องการที่จะลบ tmp2 เป็นไดเรกทอรี 315 00:16:08,180 --> 00:16:10,316 tmp2 ดังนั้น Rm 316 00:16:10,316 --> 00:16:12,920 คุณไม่สามารถลบ tmp2, มันเป็นไดเรกทอรี 317 00:16:12,920 --> 00:16:21,370 ดังนั้นปัญหาที่นี่เป็นที่ Rm ไม่ ทันทีทำงานในไดเรกทอรี 318 00:16:21,370 --> 00:16:26,530 มันเป็นความหมายสำหรับไฟล์เช่น ไฟล์ที่ไม่ไดเรกทอรี 319 00:16:26,530 --> 00:16:30,800 >> ดังนั้นสิ่งที่เราสามารถทำได้ ที่นี่เป็น RM, ประ, r 320 00:16:30,800 --> 00:16:35,160 ที่หมายถึงซ้ำซึ่งอาจ ไม่ได้หมายถึงอะไรให้คุณยัง 321 00:16:35,160 --> 00:16:38,280 แต่เมื่อคุณได้รับการเรียกซ้ำ มันจะหมายถึงมากขึ้น 322 00:16:38,280 --> 00:16:43,540 ดังนั้น RM, ประ, r, tmp2 เป็นไป ซ้ำไปลงในไดเรกทอรีที่ 323 00:16:43,540 --> 00:16:45,540 เพื่อลงไป tmp2 ไดเรกทอรี 324 00:16:45,540 --> 00:16:47,330 ใช่ให้ไปลงที่ 325 00:16:47,330 --> 00:16:49,360 เราต้องการที่จะลบ tmp2 /? 326 00:16:49,360 --> 00:16:49,745 ใช่ 327 00:16:49,745 --> 00:16:51,830 เราต้องการที่จะลบ tmp2 / b? 328 00:16:51,830 --> 00:16:52,840 ใช่ 329 00:16:52,840 --> 00:16:55,170 ตอนนี้เราต้องการที่จะลบ tmp2 ไดเรกทอรีหรือไม่ 330 00:16:55,170 --> 00:16:56,040 ใช่ 331 00:16:56,040 --> 00:16:58,410 และตอนนี้เพื่อไดเรกทอรี และทุกสิ่งที่อยู่ภายใน 332 00:16:58,410 --> 00:16:59,660 ของมันได้ถูกลบออก 333 00:16:59,660 --> 00:17:02,850 334 00:17:02,850 --> 00:17:07,250 >> เป็นเทคนิคที่มีคำสั่ง rmdir ที่คุณสามารถใช้เพื่อลบ 335 00:17:07,250 --> 00:17:11,670 ไดเรกทอรี แต่มันใช้ได้เฉพาะ ในไดเรกทอรีที่ว่างเปล่าอยู่แล้ว 336 00:17:11,670 --> 00:17:14,109 และจะเห็นว่าให้เพียง ทำ mkdir, tmp2 อีกครั้ง 337 00:17:14,109 --> 00:17:15,940 Tmp2 สัมผัส 338 00:17:15,940 --> 00:17:16,800 ตกลง 339 00:17:16,800 --> 00:17:22,770 ดังนั้นถ้าผมพยายามที่จะลบ dirtmp2 ก็จะ พูดไดเรกทอรีไม่ว่างเปล่า 340 00:17:22,770 --> 00:17:29,540 ดังนั้นผมสวยมากไม่เคยใช้ลบ dir คำสั่งต่อไปเพราะ RM, ชน 341 00:17:29,540 --> 00:17:35,140 r จะทำงานในไดเรกทอรีว่าง และไดเรกทอรีที่ไม่ว่างเปล่า 342 00:17:35,140 --> 00:17:37,760 >> และนอกจากนี้ถ้าฉันไม่ต้องการให้มีการ ผ่านไปที่กระบวนการทั้งหมดของ 343 00:17:37,760 --> 00:17:40,720 ลงไปในไดเรกทอรีและ การลบไฟล์แต่ละ, RM, 344 00:17:40,720 --> 00:17:44,190 รีบ, RF, tmp2 345 00:17:44,190 --> 00:17:45,670 และตอนนี้มันหายไป 346 00:17:45,670 --> 00:17:51,220 >> สิ่งที่ต้องระวัง เกี่ยวกับการเป็น RM, ประ, RF 347 00:17:51,220 --> 00:17:53,660 และมันกลัวฉันจะได้พิมพ์, เพราะถ้าฉันตั้งใจ 348 00:17:53,660 --> 00:17:55,090 กด Enter หรือสิ่งที่ 349 00:17:55,090 --> 00:18:02,735 ดังนั้น RM, ประ, RF, ตัวหนอนจะโดยไม่ต้อง แจ้งให้ฉันฉไม่ได้แจ้งให้ 350 00:18:02,735 --> 00:18:05,670 ฉันก็จะลบโดยอัตโนมัติ ไดเรกทอรีบ้านทั้งของฉันและ 351 00:18:05,670 --> 00:18:06,780 ทุกอย่างในนั้น 352 00:18:06,780 --> 00:18:11,460 ดังนั้นคุณอาจจะคิดว่าเป็น เป็นสิ่งที่โง่ที่จะทำ 353 00:18:11,460 --> 00:18:12,830 และดีมันเป็น 354 00:18:12,830 --> 00:18:18,600 >> แต่ก็สามารถเกิดขึ้นได้อย่างง่ายดายมากโดย อุบัติเหตุถ้าพูดที่ฉันต้องการที่จะลบ 355 00:18:18,600 --> 00:18:21,640 เฉือนไดเรกทอรี vhost ของฉัน 356 00:18:21,640 --> 00:18:26,610 และในการพิมพ์ที่รวดเร็ว ฉันตั้งใจทำเช่นนี้ 357 00:18:26,610 --> 00:18:31,880 ที่จะลบซ้ำทั้งสองของฉัน ไดเรกทอรีและไดเรกทอรี vhost 358 00:18:31,880 --> 00:18:35,450 ในไดเรกทอรีนี้โดยเฉพาะที่เพิ่ง ที่เกิดขึ้นไม่ได้มีอยู่ในตอนนี้ 359 00:18:35,450 --> 00:18:39,520 แต่นี้ยังจะเอา ไดเรกทอรีบ้านของฉันทั้งหมด 360 00:18:39,520 --> 00:18:43,090 อย่างน้อยโดยไม่ต้องฉ, ก็จะแจ้งให้ฉันแรก 361 00:18:43,090 --> 00:18:45,670 และฉันจะเป็นเหมือนโอ้ไม่ฉัน ไม่ต้องการที่จะทำเช่นนั้น 362 00:18:45,670 --> 00:18:50,570 แต่คนเฉือนรวมทั้ง ฉันมีแนวโน้มที่จะได้รับใน 363 00:18:50,570 --> 00:18:53,090 นิสัยของเสมอ RF-ไอเอ็นจี 364 00:18:53,090 --> 00:18:58,713 แม้แต่ไฟล์ปกติท​​ี่ฉันสามารถ rm, C, ฉันมักจะเพียงแค่ rm, ประ, RF, ค 365 00:18:58,713 --> 00:19:01,330 เพียงระมัดระวังเมื่อคุณ RF-ไอเอ็นจี 366 00:19:01,330 --> 00:19:03,160 >> ลำโพง 4: อะไร C ทำอย่างไร 367 00:19:03,160 --> 00:19:11,570 >> ROB: ซีที่ผมพูดเกี่ยวกับไฟล์ C ที่ ไดเรกทอรีนี้, RM ที่ค 368 00:19:11,570 --> 00:19:15,730 >> JOSEPH: และอันตรายมากขึ้นถ้าคุณใช้ ดาวมันหมายถึงทุกอย่างใน 369 00:19:15,730 --> 00:19:16,450 ไดเรกทอรี 370 00:19:16,450 --> 00:19:20,040 ดังนั้นสิ่งที่ฉันมักจะมีแนวโน้มที่จะทำคือฉันจะ ไปลงในไดเรกทอรีและผมต้องการที่จะ 371 00:19:20,040 --> 00:19:21,510 ลบไฟล์ทั้งหมดที่อยู่ในนั้น 372 00:19:21,510 --> 00:19:23,640 ดังนั้น RM, ประ, RF, ดาว 373 00:19:23,640 --> 00:19:25,700 >> ROB: ใช่ 374 00:19:25,700 --> 00:19:26,780 rm, ประ, RF, ดาว 375 00:19:26,780 --> 00:19:29,530 >> JOSEPH และถ้าคุณไม่ระวัง สิ่งที่ไดเรกทอรีที่คุณอยู่ใน - 376 00:19:29,530 --> 00:19:33,340 ผมไม่ได้อยู่ในอุณหภูมิ แต่ฉันก็ตั้งใจ ในไดเรกทอรีบ้านของฉัน 377 00:19:33,340 --> 00:19:35,450 แล้วฉันจะลบทุกอย่าง ในไดเรกทอรีบ้านของฉัน 378 00:19:35,450 --> 00:19:39,095 และฉันได้ทำจริงที่มาก่อนและ ฉันคิดว่าคุณได้กระทำเช่นนี้มาก่อนหรือ 379 00:19:39,095 --> 00:19:40,640 เจย์ได้ทำก่อนที่จะ 380 00:19:40,640 --> 00:19:42,480 >> ROB: ฉันได้ลบตั้งใจ - 381 00:19:42,480 --> 00:19:44,480 จึงไม่สนใจคำสั่งที่สำหรับบิต 382 00:19:44,480 --> 00:19:45,800 >> JOSEPH: ไม่สนุก 383 00:19:45,800 --> 00:19:52,650 >> ROB: ดังนั้นในไดเรกทอรีถังเฉือนเป็น พวงของไฟล์ไบนารีที่มีจะ 384 00:19:52,650 --> 00:19:54,840 เป็นคนที่คุ้นเคยเช่นเสียงดังกราว 385 00:19:54,840 --> 00:20:00,740 ดีและพื้นเสียงดังกราวสิ่งเหล่านี้ สิ่งที่ผมใช้คำสั่ง 386 00:20:00,740 --> 00:20:02,060 อยู่ในสายเฉือนนี้ไดเรกทอรีถัง 387 00:20:02,060 --> 00:20:03,090 >> JOSEPH: เช่นเดียวกับคำสั่ง ls อยู่ในที่นี่ 388 00:20:03,090 --> 00:20:06,285 >> ROB: ดังนั้นจุด, เฉือน, คำสั่ง ls จะ รายการไดเรกทอรีนี้ 389 00:20:06,285 --> 00:20:08,120 >> JOSEPH: Rm ยังอยู่ในไดเรกทอรีนี้ 390 00:20:08,120 --> 00:20:12,770 >> ROB: ฉันได้ตั้งใจ rm, ถัง RF-เอ็ด ซึ่งออกคำสั่งใด ๆ ที่ฉันสามารถทำได้ 391 00:20:12,770 --> 00:20:14,380 อาจจะเคยต้องการ 392 00:20:14,380 --> 00:20:18,085 ที่แล้วฉันเพิ่งติดตั้ง เครื่องใช้ใหม่ที่จุดที่ 393 00:20:18,085 --> 00:20:20,170 >> JOSEPH: ดังนั้นต้องระมัดระวังเมื่อ คุณใช้คำสั่งนี้ 394 00:20:20,170 --> 00:20:21,120 >> ผู้ชม: [ไม่ได้ยิน]? 395 00:20:21,120 --> 00:20:22,640 >> ROB: ใช่ 396 00:20:22,640 --> 00:20:24,135 ที่ยังนิสัยไม่ดีที่จะได้เป็น 397 00:20:24,135 --> 00:20:27,920 398 00:20:27,920 --> 00:20:30,170 ถ้าคุณสังเกตเห็นฉันตอนนี้ - 399 00:20:30,170 --> 00:20:33,580 ดีคุณจะไม่สามารถสังเกตเห็น แต่ ซูมในอาจจะสามารถของฉัน 400 00:20:33,580 --> 00:20:35,360 ดังนั้นตอนนี้ผมราก @ เครื่องใช้ 401 00:20:35,360 --> 00:20:39,790 ดังนั้น jharvard เป็นผู้ใช้ที่เราต้องการ คุณเสมอจะใช้ 402 00:20:39,790 --> 00:20:43,820 รากเป็นผู้ใช้ที่มีสิทธิ์ใน ที่จะทำอะไรอย่างแน่นอน 403 00:20:43,820 --> 00:20:50,260 >> เพื่อแจ้งให้ทราบเมื่อฉัน jharvard, ถ้าฉันพยายามที่จะ cd - 404 00:20:50,260 --> 00:20:52,461 สิ่งที่ไดเรกทอรีที่? 405 00:20:52,461 --> 00:20:53,980 โอ้รากเป็นตัวอย่างที่ดี 406 00:20:53,980 --> 00:20:54,950 ดังนั้น cd ราก 407 00:20:54,950 --> 00:20:56,030 อนุญาต 408 00:20:56,030 --> 00:21:00,060 เพราะถ้าเราดูที่นี้ - 409 00:21:00,060 --> 00:21:02,410 และอีกครั้งที่คุณจะได้ไม่ต้อง เข้าใจทั้งหมดนี้ 410 00:21:02,410 --> 00:21:09,210 แต่ทั้งสามขีดกลางจะพูด ที่จะไม่ปล่อยให้คนอื่น ๆ 411 00:21:09,210 --> 00:21:11,120 ผู้ใช้ในไดเรกทอรีนี้ 412 00:21:11,120 --> 00:21:14,540 และไดเรกทอรีที่เกิดขึ้นกับ เป็นของผู้ใช้ราก 413 00:21:14,540 --> 00:21:20,310 >> ดังนั้นความจริงที่ว่าผม jharvard และไม่มี อย่างใดอย่างหนึ่งที่ไม่ได้เป็นรากที่ได้รับอนุญาตใน 414 00:21:20,310 --> 00:21:23,490 ไดเรกทอรีนี้ว่าหมายความว่าฉัน จะได้รับสิทธิ์ในการปฏิเสธเมื่อฉัน 415 00:21:23,490 --> 00:21:25,160 พยายามที่จะ cd เป็นมัน 416 00:21:25,160 --> 00:21:31,370 ดังนั้นเมื่อเราเป็นรากผมได้รับอนุญาตให้ ทำอะไรอย่างรวมทั้ง 417 00:21:31,370 --> 00:21:34,660 ลบไฟล์สำคัญ กับเครื่องใช้ไฟฟ้าและ 418 00:21:34,660 --> 00:21:36,640 ทำลายสิ่งทั้งหมด 419 00:21:36,640 --> 00:21:41,240 >> ดังนั้นมันเป็นนิสัยที่ดีที่จะได้รับเป็น เพียงแค่เดินไปรอบ ๆ ของคุณ 420 00:21:41,240 --> 00:21:43,650 ระบบปฏิบัติการเป็นราก 421 00:21:43,650 --> 00:21:46,520 ฉันทำมันต่อไป 422 00:21:46,520 --> 00:21:48,710 คำถาม? 423 00:21:48,710 --> 00:21:52,230 และฉันจะออกจากรากอยู่เป็น jharvard 424 00:21:52,230 --> 00:21:54,510 ตกลง 425 00:21:54,510 --> 00:21:55,820 >> คำสั่งที่เกี่ยวข้องเพิ่มเติม 426 00:21:55,820 --> 00:22:03,975 เพื่อที่จะกลับสู่อุณหภูมิของเรา ฟังเพลงคำสั่งยืนสำหรับการย้าย 427 00:22:03,975 --> 00:22:05,450 คุณสามารถย้าย 428 00:22:05,450 --> 00:22:07,610 ตอนนี้เราต้องการที่จะเรียกว่าข ดังนั้นตอนนี้ก็เรียกว่าข 429 00:22:07,610 --> 00:22:10,650 หรือบางทีเราต้องการที่จะย้าย b หนึ่งไดเรกทอรี 430 00:22:10,650 --> 00:22:12,730 ดังนั้นตอนนี้ว่างเปล่าไดเรกทอรีนี้ 431 00:22:12,730 --> 00:22:15,410 ผมจะกลับไปที่บ้านของฉันและ เราจะเห็นว่าขอยู่ในที่นี่เพราะ 432 00:22:15,410 --> 00:22:19,230 ไดเรกทอรีบ้านเป็นหนึ่งในไดเรคทอขึ้นจาก ไดเรกทอรีที่ขได้รับค่ะ 433 00:22:19,230 --> 00:22:24,710 434 00:22:24,710 --> 00:22:26,580 >> นอกจากนี้ยังมี cp 435 00:22:26,580 --> 00:22:33,210 ดังนั้น cp คัดลอกเป็นส่วนซุปเปอร์ จุดข้อความ 436 00:22:33,210 --> 00:22:35,750 ฉันสามารถเรียกมันจุดข้อความ 437 00:22:35,750 --> 00:22:39,780 ตอนนี้เรามีทั้งส่วนซุปเปอร์ จุดข้อความและ s จุดข้อความ 438 00:22:39,780 --> 00:22:41,340 นอกจากนี้ยังทำงานในไดเรกทอรี 439 00:22:41,340 --> 00:22:44,040 440 00:22:44,040 --> 00:22:46,560 ฉัน RF-เอ็ดไฟล์เดียว 441 00:22:46,560 --> 00:22:48,200 ดังนั้น cp - 442 00:22:48,200 --> 00:22:51,710 กันครั้งแรกที่ลอง cp, tmp, tmp2 443 00:22:51,710 --> 00:22:53,220 ดังนั้นถนัด tmp ไดเรกทอรี 444 00:22:53,220 --> 00:22:57,440 จึงคล้ายกับ rm, การทำงานเริ่มต้น คือการไม่ทำงานในไดเรกทอรี 445 00:22:57,440 --> 00:23:01,570 >> และอีกครั้งคล้ายกับ rm เริ่มต้น พฤติกรรม - ดีการไปทำงาน 446 00:23:01,570 --> 00:23:04,230 กับไดเรกทอรีเป็นรีบ-r ไป 447 00:23:04,230 --> 00:23:09,240 เพื่อคัดลอกซ้ำชั่วคราว ไดเรกทอรีใน tmp2 448 00:23:09,240 --> 00:23:13,700 และอื่น ๆ ตอนนี้เรามีทั้ง tmp และ tmp2, และที่ไม่ได้เป็นประโยชน์ที่ตั้งแต่ tmp 449 00:23:13,700 --> 00:23:16,814 ว่างเปล่าในสถานที่แรก 450 00:23:16,814 --> 00:23:18,660 Tmp2 451 00:23:18,660 --> 00:23:22,680 >> ตอนนี้ขอคัดลอก tmp เป็น tmp2 452 00:23:22,680 --> 00:23:27,900 และเราจะเห็นว่า tmp2 นอกจากนี้ยังมีไฟล์ เพราะไดเรกทอรีและ 453 00:23:27,900 --> 00:23:32,220 ทุกอย่างภายในที่ ไดเรกทอรีถูกคัดลอก 454 00:23:32,220 --> 00:23:36,000 และที่จะเป็นประโยชน์บ้าง ถ้าบอกว่าคุณกำลังทำงาน 455 00:23:36,000 --> 00:23:38,860 ในการแก้ปัญหาการตั้งค่าอย่างใดอย่างหนึ่ง - 456 00:23:38,860 --> 00:23:41,320 หรือที่จริงชุดปัญหาภายหลัง ยิ่งมีความสำคัญมากขึ้นเพราะมี 457 00:23:41,320 --> 00:23:43,660 จะเป็นทั้งกลุ่ม ของไฟล์และสิ่งที่ 458 00:23:43,660 --> 00:23:47,010 >> แต่คุณต้องการเพียงแค่การแยก สองคุณต้องการขวาทั้งหมดฉัน 459 00:23:47,010 --> 00:23:50,210 จะลองสิ่งที่แตกต่าง 460 00:23:50,210 --> 00:23:57,860 ผมขอคัดลอก pset1 ทั้งหมดของฉัน ไดเรกทอรีในการสำรองข้อมูล pset1 เพื่อว่าถ้า 461 00:23:57,860 --> 00:24:01,490 ฉันท้ายคาดคั้นสิ่งขึ้นฉันสามารถ ย้อนกลับไปในไดเรกทอรีการสำรองข้อมูลของฉัน 462 00:24:01,490 --> 00:24:07,340 มีวิธีการที่เหมาะสมมากขึ้นของการเป็น เวอร์ชันสำรองรหัสของคุณ แต่ 463 00:24:07,340 --> 00:24:10,610 นี้มักจะเป็นวิธีที่รวดเร็วเพื่อเพียงให้ แน่ใจว่าคุณมีสำเนาของบางสิ่งบางอย่าง 464 00:24:10,610 --> 00:24:11,860 ที่คุณกำลังจะแก้ไข 465 00:24:11,860 --> 00:24:16,974 466 00:24:16,974 --> 00:24:27,090 >> ดังนั้นเสียงสะท้อนนี้ยังมีคำสั่งอย่างใดอย่างหนึ่งออกว่า ชนิดของ sillily ก็จะพิมพ์ไป 467 00:24:27,090 --> 00:24:31,540 บรรทัดคำสั่งว่าสิ่งที่ คุณต้องการที่จะสะท้อน 468 00:24:31,540 --> 00:24:32,680 ดังนั้น echo hi 469 00:24:32,680 --> 00:24:35,420 เราก็จะพิมพ์ hi 470 00:24:35,420 --> 00:24:38,030 ก้องโลก hello 471 00:24:38,030 --> 00:24:39,800 เราจะพิมพ์สวัสดีชาวโลก 472 00:24:39,800 --> 00:24:44,350 ที่เข้ามาในการใช้งานเมื่อคุณ เริ่มต้นการรวมคำสั่ง 473 00:24:44,350 --> 00:24:48,300 >> และอีกครั้งไม่ได้คาดหวังให้คุณอย่างสิ้นเชิง เข้าใจในเรื่องนี้ แต่ก็ 474 00:24:48,300 --> 00:24:49,910 บางสิ่งบางอย่างที่จะเห็น 475 00:24:49,910 --> 00:24:52,470 แล้วถ้าคุณกำลัง Googling ตัวอย่าง หรือคุณตระหนักได้ว่าคุณต้องการจะทำ 476 00:24:52,470 --> 00:24:55,030 บางสิ่งบางอย่างมันจะมีประโยชน์ 477 00:24:55,030 --> 00:24:59,020 จึงขอเป็นตัวอย่าง, คำสั่ง ls เพื่อรีบลิตร 478 00:24:59,020 --> 00:25:01,160 ดังนั้นที่นี่ฉันเห็นผลลัพธ์ ของคำสั่ง ls รีบลิตร 479 00:25:01,160 --> 00:25:06,560 และผมก็บอกว่าโอเคผมต้องการ ที่จัดเก็บเป็นไฟล์ 480 00:25:06,560 --> 00:25:11,620 ทั้งหมดของการส่งออกที่นี่ฉันต้องการ ที่จะใส่ลงไปในแฟ้มที่แยกต่างหาก 481 00:25:11,620 --> 00:25:16,080 >> ดังนั้นนี้น้อยกว่าสัญลักษณ์ คือสิ่งที่เราจะเรียก 482 00:25:16,080 --> 00:25:18,570 เรากำลังเปลี่ยนเส้นทาง ส่งออกเป็นไฟล์ 483 00:25:18,570 --> 00:25:21,680 ขอเรียก blah ไฟล์เพราะนั่นคือ สิ่งที่ฉันมีแนวโน้มที่จะมักจะเรียกว่า 484 00:25:21,680 --> 00:25:26,430 ดังนั้นตอนนี้เราจะเห็นว่าเรามี ยื่น blah ที่นี่ 485 00:25:26,430 --> 00:25:30,270 และถ้าผมเปิดมันขึ้นมาฉันจะเห็นมัน ตรงออกจากคำสั่ง 486 00:25:30,270 --> 00:25:31,990 ที่ฉันวิ่ง 487 00:25:31,990 --> 00:25:36,020 และเช่นเดียวกันคุณสามารถ - 488 00:25:36,020 --> 00:25:41,260 ว่านี่คือการส่งออกไปยังแฟ้มนี้ เป็นที่ได้รับข้อมูลจากแฟ้ม 489 00:25:41,260 --> 00:25:45,790 490 00:25:45,790 --> 00:25:47,050 คืออะไรคำสั่งที่ฉัน - 491 00:25:47,050 --> 00:25:49,620 >> JOSEPH: ผมคิดว่าคุณสามารถใช้ น้อยลงหรือมากขึ้นอาจ 492 00:25:49,620 --> 00:25:53,031 >> ROB: แต่วิธีการเกี่ยวกับเพียงแค่ blah น้อยลงหรือไม่ 493 00:25:53,031 --> 00:25:53,930 ฉันไม่รู้ 494 00:25:53,930 --> 00:25:57,870 หากคุณเข้ามาในสถานการณ์นี้เช่น มี psets ว่ามันเป็นประโยชน์สำหรับ 495 00:25:57,870 --> 00:25:59,950 >> JOSEPH: คุณสามารถท่อมันเป็นเสียงสะท้อน 496 00:25:59,950 --> 00:26:02,920 ท่อไฟล์ลงสะท้อนที่จะเห็นมัน 497 00:26:02,920 --> 00:26:04,060 >> ROB: มันเป็นท่อ 498 00:26:04,060 --> 00:26:04,860 >> JOSEPH: ขออภัย 499 00:26:04,860 --> 00:26:06,190 >> ROB: ทั้งหมดขวา 500 00:26:06,190 --> 00:26:12,720 ดังนั้นนี่คือการส่งออกไปยังแฟ้ม 501 00:26:12,720 --> 00:26:18,700 นี้คือการได้รับข้อความจากไฟล์ และมือมันไปยังโปรแกรม 502 00:26:18,700 --> 00:26:20,560 และคุณยังจะเห็นผู้ชายคนนี้ 503 00:26:20,560 --> 00:26:24,410 ดังนั้นนี้เป็นชนิดของการทำทั้งสองอย่างพร้อม 504 00:26:24,410 --> 00:26:28,310 และที่จริงผมจะแนะนำสองใหม่ คำสั่งเพียงเพื่อให้ใช้ประโยชน์จากมัน 505 00:26:28,310 --> 00:26:33,060 >> ประวัติความเป็นมาเป็นคำสั่งที่มีประโยชน์ที่เป็นเพียง จะพิมพ์ออกรายการของ 506 00:26:33,060 --> 00:26:34,940 อะไรที่ฉันเคยวิ่งบรรทัดคำสั่ง 507 00:26:34,940 --> 00:26:38,290 ดังนั้นเรามาดูกันที่นี่ทุกอย่างที่ฉันมี รับการทำงานตลอดเวลานี้ 508 00:26:38,290 --> 00:26:39,540 จำนวนมากของคำสั่ง ls 509 00:26:39,540 --> 00:26:41,570 510 00:26:41,570 --> 00:26:48,470 >> และคำสั่งที่มีประโยชน์อื่น grep ที่ จุดประสงค์ของมันคือการค้นหาผ่าน 511 00:26:48,470 --> 00:26:52,060 ข้อความที่กำลังมองหารูปแบบที่ดี มองหาสิ่งที่คุณ 512 00:26:52,060 --> 00:26:53,310 ต้องการที่จะมองหา 513 00:26:53,310 --> 00:26:59,770 และเพื่อให้การใช้ประโยชน์ที่นี่คือการพูด เราต้องการที่จะคว้าประวัติศาสตร์ 514 00:26:59,770 --> 00:27:03,860 และฉันต้องการที่จะมองหาคำสั่งที่ ที่ฉัน - สิ่ง 515 00:27:03,860 --> 00:27:05,000 หนึ่งในประโยชน์ที่จะมองหา 516 00:27:05,000 --> 00:27:06,898 >> JOSEPH: [ไม่ได้ยิน]? 517 00:27:06,898 --> 00:27:09,710 >> ROB: หรือให้เพียงมองหาทั้งหมด สัมผัสด้วยเหตุผลใด 518 00:27:09,710 --> 00:27:13,850 ดังนั้นนี่คือสิ่งที่มันจะมีลักษณะเช่น 519 00:27:13,850 --> 00:27:15,560 และคุณไม่จำเป็นต้องสมบูรณ์ เข้าใจว่า 520 00:27:15,560 --> 00:27:20,570 แต่ความคิดที่อยู่ที่นี่จะให้ประวัติศาสตร์ ออกเดียวกันมันก็ที่นี่ 521 00:27:20,570 --> 00:27:25,030 ที่มันพิมพ์ออกทั้งหมด ประวัติศาสตร์ของทุกอย่างที่ฉันเคยวิ่ง 522 00:27:25,030 --> 00:27:27,030 จากนั้นเราจะผ่านที่ - 523 00:27:27,030 --> 00:27:30,230 เพื่อแทนการพิมพ์ไปยังหน้าจอที่ เราต้องการที่จะผ่านไปยัง 524 00:27:30,230 --> 00:27:34,640 grep คำสั่งที่กำลังมองหา ทุกกรณีของคำสัมผัส 525 00:27:34,640 --> 00:27:40,280 >> และเพื่อใช้เป็นส่วนผสมของนี้ ประวัติเครื่องมือและ grep ฉันสามารถดูโอเค 526 00:27:40,280 --> 00:27:44,820 นี่คือทั้งหมดของคำสั่งที่ฉันได้เคย ทำงานและนี่เป็นหนึ่งค่อนข้างทั่วไป 527 00:27:44,820 --> 00:27:45,510 เราอยู่ที่ด้านล่าง 528 00:27:45,510 --> 00:27:47,930 และก็ยังให้ฉันคำสั่ง ฉันวิ่งที่มี 529 00:27:47,930 --> 00:27:51,240 สัมผัสคำในนั้น 530 00:27:51,240 --> 00:27:58,500 แต่ท่อเป็นสิ่งที่มีประโยชน์สวย สำหรับการรวมหลายโปรแกรม 531 00:27:58,500 --> 00:28:04,670 และที่จริงมันเป็นทางลัดในการขอ ฉันประวัติศาสตร์การส่งออกไปยังไฟล์ blah และ 532 00:28:04,670 --> 00:28:10,190 ให้ฉัน grep ใช้ blah ไฟล์ เป็นสิ่งที่ฉันต้องการที่จะดูมากกว่า 533 00:28:10,190 --> 00:28:13,460 ดังนั้นท่อเป็นเพียงทางลัด สำหรับผู้ที่สองคำสั่ง 534 00:28:13,460 --> 00:28:13,950 ใช่ 535 00:28:13,950 --> 00:28:15,306 >> ลำโพง 4: [ไม่ได้ยิน]? 536 00:28:15,306 --> 00:28:16,556 >> ROB: ใช่ 537 00:28:16,556 --> 00:28:20,142 538 00:28:20,142 --> 00:28:21,110 คืออะไร - 539 00:28:21,110 --> 00:28:21,858 โอ้ 540 00:28:21,858 --> 00:28:24,820 ลองทดสอบ 541 00:28:24,820 --> 00:28:29,170 ดังนั้นแมว, สุนัข, ปลา 542 00:28:29,170 --> 00:28:33,770 ดังนั้นผมจึงต้องการที่จะ grep 543 00:28:33,770 --> 00:28:37,680 Dash, r อีกครั้งเป็นไปได้ ซ้ำดังนั้นฉันต้องการที่จะลงมาลง 544 00:28:37,680 --> 00:28:38,870 ไดเรกทอรีทั้งหมด 545 00:28:38,870 --> 00:28:43,210 ผมต้องการที่จะซ้ำ grep สำหรับทั้งหมด - และให้ฉันได้ชั่วคราว 546 00:28:43,210 --> 00:28:44,460 ออกจากทางนี้ 547 00:28:44,460 --> 00:28:48,650 548 00:28:48,650 --> 00:28:50,740 ไม่สนใจฉัน 549 00:28:50,740 --> 00:28:51,360 ตกลง 550 00:28:51,360 --> 00:28:56,740 >> ดังนั้นผมจึงต้องการที่จะ grep ชั่วคราว ทุกกรณีของปลาคำว่า 551 00:28:56,740 --> 00:29:00,510 และอื่น ๆ ที่นี่สิ่งที่ฉันทำคือ grepping ซ้ำสำหรับปลาคำว่า 552 00:29:00,510 --> 00:29:05,410 และดาวหมายความว่าผ่านสิ่งเหล่านี้ แฟ้มในไดเรกทอรีนี้ 553 00:29:05,410 --> 00:29:08,930 และดังนั้นจึงให้ฉันอนุญาตปฏิเสธ, เพราะไม่ได้รับอนุญาตให้อ่านที่ 554 00:29:08,930 --> 00:29:10,060 ไฟล์โดยเฉพาะ 555 00:29:10,060 --> 00:29:14,040 แต่ก็พบว่าปลาในแฟ้มทดสอบ 556 00:29:14,040 --> 00:29:18,450 >> ฉันยังสามารถพูดได้เฉพาะฉันเท่านั้น ต้องการที่จะมองใน blah ไฟล์ใน 557 00:29:18,450 --> 00:29:19,580 ซึ่งในกรณีนี้จะไม่พบอะไร 558 00:29:19,580 --> 00:29:20,990 ฉันเพียงต้องการที่จะดูในแฟ้มทดสอบ 559 00:29:20,990 --> 00:29:22,240 มันจะหาปลา 560 00:29:22,240 --> 00:29:25,980 561 00:29:25,980 --> 00:29:29,260 นั่นคือคำสั่งที่มีประโยชน์สวย รู้ทั่วไป 562 00:29:29,260 --> 00:29:31,640 มีทางเลือกที่จะ grep เป็น ที่ควรจะเป็นมากขึ้น 563 00:29:31,640 --> 00:29:36,780 โปรแกรมเมอร์เป็นมิตร แต่ฉันมัก ยังคงถอยกลับใน grep 564 00:29:36,780 --> 00:29:38,030 คำถาม? 565 00:29:38,030 --> 00:29:39,965 566 00:29:39,965 --> 00:29:40,919 ตกลง 567 00:29:40,919 --> 00:29:42,520 >> จะมีคำสั่งอื่น ๆ 568 00:29:42,520 --> 00:29:45,270 โอ้ 569 00:29:45,270 --> 00:29:48,370 เพียงหนึ่งออกหนึ่งที่ฉันเสมอ พบว่าจะมีความสนุกสนานเป็นไขมัน 570 00:29:48,370 --> 00:29:55,610 เพื่อแจ้งให้ทราบเมื่อฉันอยู่ในนี้น่ารัก โหมดเต็มหน้าจอผมไม่มีเหมือนด้านบน 571 00:29:55,610 --> 00:29:56,720 แถบเครื่องมือหรืออะไร 572 00:29:56,720 --> 00:29:59,530 ดังนั้นไขมันเพียงแค่ให้ฉันน้อยดี ปฏิทินที่เหมาะสม 573 00:29:59,530 --> 00:30:02,380 ตอนนี้ตัดออกไปผมถือว่า 574 00:30:02,380 --> 00:30:04,770 แต่คำสั่งน้อยดี 575 00:30:04,770 --> 00:30:06,540 >> JOSEPH: มันเป็น [ไม่ได้ยิน] 576 00:30:06,540 --> 00:30:09,170 คำสั่งอื่น ๆ ที่คุณอาจมี รวมถึงการมองเห็นและทำเสียงดังกราว 577 00:30:09,170 --> 00:30:11,180 เราจะไปกว่าพวกเขาใน รายละเอียดเพิ่มเติมในภายหลัง 578 00:30:11,180 --> 00:30:13,400 แต่ถ้าคุณได้รับการทำงานใน pset คุณควรจะ 579 00:30:13,400 --> 00:30:15,160 ผู้ที่คุ้นเคยกับ 580 00:30:15,160 --> 00:30:16,640 >> ROB: ทั้งหมดขวา 581 00:30:16,640 --> 00:30:18,520 คำถามในสิ่งที่บรรทัดคำสั่ง? 582 00:30:18,520 --> 00:30:22,450 583 00:30:22,450 --> 00:30:23,260 ขวาทั้งหมด 584 00:30:23,260 --> 00:30:27,416 จึงขอย้ายไปยังบาง สิ่งที่ C ที่เกี่ยวข้องกับ 585 00:30:27,416 --> 00:30:28,666 ตัวแปรทางคณิตศาสตร์ 586 00:30:28,666 --> 00:30:39,078 587 00:30:39,078 --> 00:30:40,060 ตกลง 588 00:30:40,060 --> 00:30:45,230 เช่นดังนั้นเพียงแค่เรามีคณิตศาสตร์ในเกา, คุณยังสามารถใช้คณิตศาสตร์ใน C. 589 00:30:45,230 --> 00:30:49,270 >> ก่อนที่เราจะไปที่ทั้งหมด ดังนั้นตัวแปร 590 00:30:49,270 --> 00:30:53,920 โปรดจำไว้ว่าเมื่อใดก็ตามที่คุณประกาศ ตัวแปรเช่น int x หรือ y ลอยคุณ 591 00:30:53,920 --> 00:30:56,710 มีที่จะให้มันก่อนที่จะพิมพ์ได้ ชื่อตัวแปร 592 00:30:56,710 --> 00:31:03,020 ดังนั้นประเภทที่เราได้เห็นเพื่อให้ห่างไกลเป็น int, ลอยคู่ยาวยาวที่ฉัน 593 00:31:03,020 --> 00:31:06,150 ไม่จริงรู้ว่าถ้าเราได้ เห็นว่าเพื่อให้ห่างไกล 594 00:31:06,150 --> 00:31:07,700 >> มีบางคนอื่น ๆ ที่มี 595 00:31:07,700 --> 00:31:09,990 เราได้เห็นถ่าน 596 00:31:09,990 --> 00:31:13,920 มีระยะสั้นซึ่งเป็นเช่นนั้น ตรงข้ามยาวยาวที่มัน 597 00:31:13,920 --> 00:31:16,650 มีขนาดเล็กกว่าจำนวนเต็ม 598 00:31:16,650 --> 00:31:18,580 เรายังได้เห็นสตริง 599 00:31:18,580 --> 00:31:23,070 ดังนั้นสิ่งที่พิเศษเกี่ยวกับสตริง? 600 00:31:23,070 --> 00:31:25,350 ทำไมฉันจะบอกว่ามันเป็น ไม่มากเช่น int? 601 00:31:25,350 --> 00:31:27,030 >> ลำโพง 4: มันไม่ได้มีอยู่จริงๆ 602 00:31:27,030 --> 00:31:27,990 >> ROB: ใช่ 603 00:31:27,990 --> 00:31:31,820 ดังนั้นเหตุผลเดียวที่เรามีสตริง เป็นเพราะเมื่อคุณทำ 604 00:31:31,820 --> 00:31:33,215 กัญชารวม cs50.h. 605 00:31:33,215 --> 00:31:36,530 606 00:31:36,530 --> 00:31:42,670 และเราจะเห็นตัวอย่างของการนี​​้ในภายหลัง - โอ้ที่ไม่ได้จัดการที่ดี - 607 00:31:42,670 --> 00:31:46,160 cs50.h ที่จะทำบางสิ่งบางอย่าง ตามสายของประเภท 608 00:31:46,160 --> 00:31:49,230 def ถ่านดาวสตริง 609 00:31:49,230 --> 00:31:53,280 >> และอื่น ๆ ที่บอกว่าเราทำไม่ได้ รู้ว่าสิ่งที่ดาวถ่านยัง 610 00:31:53,280 --> 00:31:56,770 แต่นี้จะบอกว่าเราต้องการสตริง 611 00:31:56,770 --> 00:32:00,250 สถานที่ที่คุณได้ใช้สายใด ๆ จะได้รับการใช้ถ่านดาว 612 00:32:00,250 --> 00:32:04,670 ซึ่งอันที่จริงเป็นชนิดที่ ที่มีอยู่ในภาษา C 613 00:32:04,670 --> 00:32:06,680 แต่เราจะไปที่ 614 00:32:06,680 --> 00:32:07,860 Oh, และมันจะไปขวากลับ 615 00:32:07,860 --> 00:32:10,170 เรียบร้อย 616 00:32:10,170 --> 00:32:15,370 >> สิ่งเดียวกันให้กับบูล ที่จริงและเท็จ 617 00:32:15,370 --> 00:32:22,510 ที่ไม่ได้จริงๆประเภทในตัวใน C. แต่มันเป็นแค่นี้ไม่ได้มี 618 00:32:22,510 --> 00:32:23,740 ค่าเป็นศูนย์หรือไม่ 619 00:32:23,740 --> 00:32:26,200 จากนั้นเราก็จะพิจารณา มันเป็นเท็จ 620 00:32:26,200 --> 00:32:27,350 นี้ไม่ได้มีค่า - 621 00:32:27,350 --> 00:32:30,530 ดีนี้ไม่ได้มี ค่าที่ไม่ได้เป็นศูนย์? 622 00:32:30,530 --> 00:32:32,200 แล้วเราก็จะคิดว่ามันจะเป็นจริง 623 00:32:32,200 --> 00:32:35,940 ดังนั้นหนึ่งเป็นความจริงทั้งสองเป็นความจริง อะไรภัณฑ์เป็นความจริง 624 00:32:35,940 --> 00:32:38,710 625 00:32:38,710 --> 00:32:42,790 ดังนั้นผู้ที่เป็นคน 626 00:32:42,790 --> 00:32:47,624 คำถามตัวแปรและประกาศ ประเภทตัวแปรและทั้งหมดที่ 627 00:32:47,624 --> 00:32:48,100 ใช่ 628 00:32:48,100 --> 00:32:52,384 >> ลำโพง 4: นานนานในหนังสือ ก็กล่าวว่ามันจะต้องเป็น int ยาวยาว 629 00:32:52,384 --> 00:32:54,288 แต่ก็จะยาวยาวทำงานอย่างไร 630 00:32:54,288 --> 00:32:58,210 631 00:32:58,210 --> 00:33:01,470 >> ROB: ดังนั้นเหล่านี้ปรับเปลี่ยนประเภท 632 00:33:01,470 --> 00:33:04,170 ดังนั้น int x 633 00:33:04,170 --> 00:33:07,710 ดังนั้นเรายังสามารถพูดได้ int x ลงนาม 634 00:33:07,710 --> 00:33:09,640 เราสามารถพูดได้ int x สั้น 635 00:33:09,640 --> 00:33:12,570 เราสามารถพูดได้ยาวยาว int x 636 00:33:12,570 --> 00:33:17,250 แต่สวยมาก ๆ สิ่งที่ฉัน เพียงแค่กล่าวว่า int ไม่ได้ลงนาม int สั้น 637 00:33:17,250 --> 00:33:21,480 int ยาวยาวคุณสามารถกำจัด int และมันก็จะถือว่า 638 00:33:21,480 --> 00:33:22,510 ที่คุณหมายถึง int 639 00:33:22,510 --> 00:33:26,045 x ดังนั้นไม่ได้ลงนามซึ่งก็หมายความว่า - 640 00:33:26,045 --> 00:33:29,400 คุณรู้ว่าปกติ int, คุณสามารถพูดได้ x เท่ากับลบ 3? 641 00:33:29,400 --> 00:33:31,636 กับ int ไม่ได้ลงนามคุณไม่สามารถ 642 00:33:31,636 --> 00:33:34,480 >> JOSEPH: และอีกครั้งสำหรับกล้อง คำถามคือสิ่งที่แตกต่าง 643 00:33:34,480 --> 00:33:37,796 ระหว่าง int ยาวยาว และเพียงแค่ระยะเวลาที่ยาว 644 00:33:37,796 --> 00:33:38,410 >> ROB: ใช่ 645 00:33:38,410 --> 00:33:42,850 ดังนั้นผมจะแทบไม่เคย เขียน int ยาวยาว 646 00:33:42,850 --> 00:33:44,100 ฉันจะเขียนยาวยาว 647 00:33:44,100 --> 00:33:47,770 648 00:33:47,770 --> 00:33:50,636 >> JOSEPH: คำถามที่ใด? 649 00:33:50,636 --> 00:33:51,886 >> ROB: OK 650 00:33:51,886 --> 00:33:56,180 651 00:33:56,180 --> 00:34:02,390 เตือนความทรงจำเล็ก ๆ น้อย ๆ โง่ของว่าเป็นวิธีที่ เราประกาศตัวแปรและเริ่มต้น 652 00:34:02,390 --> 00:34:04,450 ตัวแปรและประกาศอื่น ตัวแปรและเริ่มต้น 653 00:34:04,450 --> 00:34:05,870 มันทั้งหมดในขั้นตอนเดียว 654 00:34:05,870 --> 00:34:09,370 ดังนั้นการประกาศของตัวแปรและ ตัวแปรเริ่มต้นไม่ได้ 655 00:34:09,370 --> 00:34:11,120 แต่สามารถจะอยู่ในบรรทัดเดียวกัน 656 00:34:11,120 --> 00:34:15,409 657 00:34:15,409 --> 00:34:20,060 >> ดังนั้นเราจึงมีผู้ประกอบการทางคณิตศาสตร์มาตรฐาน ว่าคุณกำลังใช้ในการ - 658 00:34:20,060 --> 00:34:22,199 บวก, ลบ, หาร, ครั้ง 659 00:34:22,199 --> 00:34:24,389 นอกจากนี้ยังมีแบบโมดูโลซึ่งเราจะได้เห็น 660 00:34:24,389 --> 00:34:29,060 ที่มีอยู่ไม่อย่างน้อยใน C, อำนาจในตัว 661 00:34:29,060 --> 00:34:31,765 ผู้ประกอบการยกกำลังเครื่องหมาย 662 00:34:31,765 --> 00:34:33,770 ดีมีเครื่องหมายประกอบการ แต่ก็ไม่ได้มีอำนาจ 663 00:34:33,770 --> 00:34:34,239 >> JOSEPH: แต่มันไม่ได้ยกกำลัง ใช่ 664 00:34:34,239 --> 00:34:36,210 >> ROB: อย่าใช้เครื่องหมาย จะคิดว่ามันหมายถึง 665 00:34:36,210 --> 00:34:39,980 เช่นยกกำลังสองหรืออะไรก็ตาม 666 00:34:39,980 --> 00:34:42,289 ดังนั้นบางสิ่งบางอย่างไปเก็บไว้ใน ทราบเกี่ยวกับการแบ่ง 667 00:34:42,289 --> 00:34:46,282 668 00:34:46,282 --> 00:34:48,880 ฉันจะยืน 669 00:34:48,880 --> 00:34:51,315 คำตอบเริ่มต้นดังนั้นประกาศ 670 00:34:51,315 --> 00:34:54,670 ดังนั้นเรากำลังจะบอกคำตอบลอย เท่ากับ 1 หารด้วย 10 671 00:34:54,670 --> 00:34:57,500 พิมพ์คำตอบทศนิยมสองตำแหน่ง 672 00:34:57,500 --> 00:35:02,180 >> และนี่คือการจัดเรียงของสิ่งที่ฉัน จะ printf คนที่จะคิดออกว่า 673 00:35:02,180 --> 00:35:05,110 ห่าไม่% จุด 2f หมายถึงอะไร 674 00:35:05,110 --> 00:35:07,930 และนั่นก็หมายความว่าดี ไม่สนใจ 0.2 675 00:35:07,930 --> 00:35:10,420 และ% ฉเป็นสิ่งที่เราใช้ พิมพ์ไปลอย 676 00:35:10,420 --> 00:35:15,370 0.2 บอกว่าการพิมพ์ที่ ลอยไปทศนิยมสองตำแหน่ง 677 00:35:15,370 --> 00:35:19,600 ดังนั้นโปรแกรมนี้มีข้อผิดพลาดและคุณอาจ ได้เห็นนี้มาก่อนในบางส่วน 678 00:35:19,600 --> 00:35:20,870 หลักสูตร CS ก่อน 679 00:35:20,870 --> 00:35:22,170 แต่สิ่งที่เป็นข้อผิดพลาดที่อะไร 680 00:35:22,170 --> 00:35:23,050 >> ลำโพง 5: ศูนย์ 681 00:35:23,050 --> 00:35:24,130 >> ROB: ใช่ 682 00:35:24,130 --> 00:35:29,630 ดังนั้นเมื่อเราพูดคำตอบเท่ากับ 1 หารด้วย 10 เราต้องการ 683 00:35:29,630 --> 00:35:31,610 ตอบ 0.1 684 00:35:31,610 --> 00:35:37,450 แต่ 1 หารด้วย 10, 1 เป็น เลข 10 เป็นจำนวนเต็ม 685 00:35:37,450 --> 00:35:41,060 ดังนั้นเมื่อเราทำจำนวนเต็มหารด้วย จำนวนเต็มเรากำลังจะได้รับกลับ 686 00:35:41,060 --> 00:35:42,190 จำนวนเต็ม 687 00:35:42,190 --> 00:35:43,660 ดังนั้น 1 หารด้วย 10 0.1 688 00:35:43,660 --> 00:35:46,760 >> เนื่องจากความต้องการที่จะให้เราจำนวนเต็ม มันเพิ่งจะโยนออกไปว่า 689 00:35:46,760 --> 00:35:49,410 ตำแหน่งทศนิยมและบอกว่า คำตอบคือ 0 690 00:35:49,410 --> 00:35:55,314 และดังนั้นเมื่อเราพิมพ์คำตอบที่นี่ ก็จะพิมพ์ 0.00 691 00:35:55,314 --> 00:35:58,430 >> JOSEPH: และเช่นเดียวกับโน้ตก็จริง พ่นออกสิ่งที่หลังจาก 692 00:35:58,430 --> 00:35:59,390 จุดทศนิยม 693 00:35:59,390 --> 00:36:03,180 ดังนั้นหากคุณแทนมี 6 หารด้วย 10 คุณอาจจะคิดว่ามันจะทำให้คุณ 694 00:36:03,180 --> 00:36:05,200 0.6 และแล้วคุณจะรอบขึ้นถึง 1 695 00:36:05,200 --> 00:36:10,520 แต่จริงๆแล้วสิ่งที่เกิดขึ้นเมื่อการพิมพ์ งานมันก็คือว่ามันลดลงสิ่งที่เป็น 696 00:36:10,520 --> 00:36:11,470 หลังจุดทศนิยม 697 00:36:11,470 --> 00:36:13,020 ดังนั้น 0.6 ไม่เป็น 0 698 00:36:13,020 --> 00:36:13,370 >> ROB: ใช่ 699 00:36:13,370 --> 00:36:15,160 และเราจะบอกว่าตัดที่ 700 00:36:15,160 --> 00:36:21,760 ดังนั้นเมื่อใดก็ตามที่คุณโยนไป int, ทศนิยมจึงถูกตัดออก 701 00:36:21,760 --> 00:36:23,980 ดังนั้นการแก้ไขที่ - มี จริงสอง 702 00:36:23,980 --> 00:36:27,890 และฉันจะทำครั้งที่สองว่าเพราะ อันนี้แก้ไขได้ง่ายขึ้นมาก 703 00:36:27,890 --> 00:36:32,670 >> ดังนั้นหนึ่งแก้ไขคือการใช้ลอย ในส่วนของ 704 00:36:32,670 --> 00:36:34,720 และจริงๆคุณจะต้อง ทำให้หนึ่งของพวกเขาลอย 705 00:36:34,720 --> 00:36:37,400 แต่มันก็ค่อนข้างชัดเจนเพียง ที่จะทำให้ทั้งสองของพวกเขาลอย 706 00:36:37,400 --> 00:36:41,170 ดังนั้น 1.0 หารด้วย 10.0 หารสองลอย 707 00:36:41,170 --> 00:36:43,970 ดังนั้นคำตอบจะจบลงด้วยการ ลอยและเพื่อให้คุณจะ 708 00:36:43,970 --> 00:36:48,050 ได้อย่างถูกต้องพิมพ์ 0.10 ที่นี่ 709 00:36:48,050 --> 00:36:52,220 >> สิ่งที่ไม่ได้ทำงานให้ดี เกี่ยวกับการที่เป็นอย่างดีว่ามันเป็นเรื่องง่าย 710 00:36:52,220 --> 00:36:56,240 พอที่จะแปลง 1 ถึง ลอยด้วยการทำให้ 1.0 711 00:36:56,240 --> 00:37:02,180 แต่ถ้าแทนเรามีสองจำนวนเต็ม เช่น int x เท่ากับ 1 และ int y 712 00:37:02,180 --> 00:37:05,660 เท่ากับ 10 และจากนั้นเราต้องการ ที่จะไม่ x หารด้วย Y? 713 00:37:05,660 --> 00:37:10,420 ดังนั้นมันจึงไม่ใช่เรื่องง่ายที่จะเพียงแค่ ทำ x.0 หรือสิ่งที่ 714 00:37:10,420 --> 00:37:12,790 >> ดังนั้นการแก้ไขปัญหาที่ได้รับการหล่อ 715 00:37:12,790 --> 00:37:19,780 ดังนั้นการหล่อเป็นวิธีการใน C การแปลง จากประเภทหนึ่งไปยังอีกตัวแปร 716 00:37:19,780 --> 00:37:22,320 ดังนั้นที่นี่ 1 เป็นจำนวนเต็ม 717 00:37:22,320 --> 00:37:27,050 และโดยการใส่ลอยนี้ในหน้าของ นั้นเราจะหล่อ 1 ถึงลอย 718 00:37:27,050 --> 00:37:30,350 และดังนั้นนี้จะแปลง 1 ถึง 1.0 719 00:37:30,350 --> 00:37:33,380 และจะแปลง 10 ถึง 10.0 720 00:37:33,380 --> 00:37:36,790 >> และแล้วสิ่งที่ประพฤติตัวคล้ายกับ รุ่นก่อนหน้านี้เราก็แสดงให้เห็นว่า 721 00:37:36,790 --> 00:37:42,190 ที่เป็นไปตามคาดที่เราได้รับ 0.10 และมันจะพิมพ์ว่า 722 00:37:42,190 --> 00:37:44,120 และเราสามารถทำเช่นนี้กับ ตัวแปรเกินไป 723 00:37:44,120 --> 00:37:47,376 ดังนั้นเราจึงสามารถพูดลอย x หารด้วยลอย y 724 00:37:47,376 --> 00:37:48,626 >> JOSEPH: คำถามที่ใด? 725 00:37:48,626 --> 00:37:54,182 726 00:37:54,182 --> 00:38:00,090 >> ROB: ดังนั้นเช่นเดียวกับในทางคณิตศาสตร์ปกติ เรามีความสำคัญประกอบ 727 00:38:00,090 --> 00:38:06,960 ดังนั้นในชั้นเรียนคณิตศาสตร์คุณจะมีโอกาสมากขึ้น ที่จะเรียกว่าคำสั่งของการดำเนินงาน 728 00:38:06,960 --> 00:38:09,890 ที่นี่ระยะอย่างเป็นทางการเป็น สำคัญประกอบ 729 00:38:09,890 --> 00:38:15,230 แต่ความสำคัญผู้ประกอบการส่วนใหญ่หรือ ผู้ประกอบการเป็นที่คุณคาดหวัง 730 00:38:15,230 --> 00:38:22,660 >> ดังนั้นเช่นเดียวกับในคณิตศาสตร์ 2 ครั้ง 10 จะได้รับการจัดกลุ่มอย่างใกล้ชิดกว่า 731 00:38:22,660 --> 00:38:25,410 10 หารด้วย 2 แล้ว 2 732 00:38:25,410 --> 00:38:29,745 ลำดับของการดำเนินงานก็จะทำ 2 ครั้งที่ 10, 10 หารด้วย 2 แล้ว 733 00:38:29,745 --> 00:38:32,720 มันจะ 20 บวก 5 บวก 2 734 00:38:32,720 --> 00:38:37,020 ดังนั้นจึงเป็นที่คาดหวังและคุณสามารถใช้ วงเล็บในการแสดงออกของกลุ่ม 735 00:38:37,020 --> 00:38:41,063 คุณไม่สามารถใช้วงเล็บ การแสดงออกของกลุ่ม 736 00:38:41,063 --> 00:38:41,544 ใช่? 737 00:38:41,544 --> 00:38:43,468 >> ลำโพง 5: คุณสามารถจริง เพิ่งกลับไปหนึ่งสอง 738 00:38:43,468 --> 00:38:47,316 คุณสามารถโยน int สตริง? 739 00:38:47,316 --> 00:38:53,330 >> ROB: ดังนั้นใน C คุณสามารถโยนอะไร คุณต้องการสิ่งที่คุณต้องการ 740 00:38:53,330 --> 00:38:55,600 แต่นั่นไม่ได้หมายความว่ามัน เป็นสิ่งที่ดีที่จะทำ 741 00:38:55,600 --> 00:38:59,760 ดังนั้นเมื่อคุณโยน int ไป สตริงนั่นหมายความว่า - 742 00:38:59,760 --> 00:39:03,240 และเราจะได้รับลงในนี้ มากขึ้นอย่างทั่วถึง - 743 00:39:03,240 --> 00:39:03,720 >> JOSEPH: ภายหลัง 744 00:39:03,720 --> 00:39:06,840 >> ROB: ผมไม่อยากจะพูดมากในภายหลัง ดังนั้นผมจึงพยายามที่จะเปลี่ยนประโยคของฉัน 745 00:39:06,840 --> 00:39:13,370 เราจะได้รับเป็นมันมากขึ้นอย่างทั่วถึง ภายหลังที่จริงๆเมื่อคุณมี 746 00:39:13,370 --> 00:39:14,810 ตัวแปรสตริง - 747 00:39:14,810 --> 00:39:17,160 เพื่อสตริงสามารถพล ยาวใช่มั้ย? 748 00:39:17,160 --> 00:39:21,850 และเราได้รับการบอกว่า int เป็น สี่ไบต์และระยะยาวยาวแปด 749 00:39:21,850 --> 00:39:23,620 ไบต์และลอยสี่ไบต์ 750 00:39:23,620 --> 00:39:29,520 ดังนั้นสายเช่นเดียวกับ int, มีเพียง จำนวนที่แน่นอนของไบต์เพื่อมัน 751 00:39:29,520 --> 00:39:31,800 และที่จะเป็นสี่ไบต์ 752 00:39:31,800 --> 00:39:34,750 >> แต่สายสามารถสวย ยาวโดยพลใช่ไหม 753 00:39:34,750 --> 00:39:40,190 ดังนั้น hello โลกแล้วหากที่ 10 ตัวละครหรือสิ่งที่มีอยู่แล้ว 754 00:39:40,190 --> 00:39:42,670 จะถูกกว่า 4 ไบต์ ฉันสามารถพอดีกับสตริง 755 00:39:42,670 --> 00:39:51,140 ดังนั้นวิธีการและเงื่อนไขการทำงานจริงๆก็คือ พวกเขาอยู่ในหน่วยความจำที่สตริงที่ 756 00:39:51,140 --> 00:39:52,380 จะถูกเก็บไว้ 757 00:39:52,380 --> 00:39:57,290 >> และอื่น ๆ กว่าที่นี่เมื่อฉันพูดสตริง x เท่ากับโลกสวัสดีภายในของ x คือ 758 00:39:57,290 --> 00:40:01,840 เพียง แต่พูดว่าโอ้สวัสดีชาวโลกจะถูกเก็บไว้ ณ สถานที่นี้โดยเฉพาะในหน่วยความจำ 759 00:40:01,840 --> 00:40:07,060 ดังนั้นถ้าเราพยายามที่จะโยนจำนวนเต็ม สตริงแล้วเรากำลังพยายามที่จะแปลความหมาย 760 00:40:07,060 --> 00:40:10,500 บางส่วนของหน่วยความจำแบบสุ่ม เป็นสตริง 761 00:40:10,500 --> 00:40:14,465 และที่มักจะแบ่งสิ่งที่ 762 00:40:14,465 --> 00:40:17,040 >> JOSEPH: แต่ถ้าสับสนว่า คุณเราจะครอบคลุมมัน 763 00:40:17,040 --> 00:40:17,550 เพิ่มเติมในเชิงลึกต่อไป 764 00:40:17,550 --> 00:40:17,850 >> ROB: ใช่ 765 00:40:17,850 --> 00:40:20,540 ซึ่งเป็นที่ที่คุณกำลังจะ จะได้รับเป็นตัวชี้ 766 00:40:20,540 --> 00:40:25,485 และที่เป็นชิ้นสำคัญ ของสองสัปดาห์ของหลักสูตรนี้ 767 00:40:25,485 --> 00:40:28,275 >> ลำโพง 6: มันทำงานเหมือนวัตถุ ในภาษาอื่นหรือไม่จริงหรือเปล่า 768 00:40:28,275 --> 00:40:34,050 >> ROB: ดังนั้นในภาษาอื่น ๆ วัตถุ จะได้รับการแสดงโดยใช้ตัวชี้ 769 00:40:34,050 --> 00:40:37,070 770 00:40:37,070 --> 00:40:38,793 มันไม่ได้เป็นสิ่งเดียวกัน แต่ 771 00:40:38,793 --> 00:40:42,110 772 00:40:42,110 --> 00:40:42,910 คิดใด? 773 00:40:42,910 --> 00:40:43,760 >> JOSEPH: เลขที่ 774 00:40:43,760 --> 00:40:44,185 ไม่มีความคิด 775 00:40:44,185 --> 00:40:44,980 >> ROB: OK 776 00:40:44,980 --> 00:40:46,994 >> JOSEPH: ถัดไป 777 00:40:46,994 --> 00:40:48,255 >> ROB: เพียงแค่ไปกับที่ 778 00:40:48,255 --> 00:40:48,670 ขวาทั้งหมด 779 00:40:48,670 --> 00:40:51,120 ดังนั้นโมดูโล 780 00:40:51,120 --> 00:40:53,900 เช่นเดียวกับที่เรามีบวกลบ แบ่งและคูณ 781 00:40:53,900 --> 00:40:56,720 ดังนั้นโมดูโลเป็นหนึ่งที่คุณอาจจะ ไม่ได้เห็นมาก่อน 782 00:40:56,720 --> 00:40:59,540 และมันก็บอกว่าให้ ผมส่วนที่เหลือของ 783 00:40:59,540 --> 00:41:02,850 ดังนั้น 55% 10 784 00:41:02,850 --> 00:41:06,840 ส่วนที่เหลือของการทำ 55 แบ่งออก 10 จะเป็น 5 785 00:41:06,840 --> 00:41:09,630 ดังนั้น 55% 10 คือ 5 786 00:41:09,630 --> 00:41:12,260 และ 3% 5 จะเป็น 3 787 00:41:12,260 --> 00:41:14,180 8% 8 จะเป็น 0 788 00:41:14,180 --> 00:41:15,903 16% 15 จะเป็น 1 789 00:41:15,903 --> 00:41:20,670 >> JOSEPH: สิ่งหนึ่งที่ควรทราบเกี่ยวกับเรื่องนี้ เกินไปก็อาจจะไม่ทำงานตามที่คาดไว้ 790 00:41:20,670 --> 00:41:22,700 ถ้าคุณใช้เป็นจำนวนลบ 791 00:41:22,700 --> 00:41:26,215 ดังนั้นลบ 5% 4 บางคน อาจจะคิดว่าเป็น - 792 00:41:26,215 --> 00:41:28,890 793 00:41:28,890 --> 00:41:33,808 สิ่งที่คุณจะคิดในแง่ลบ 5% 4 จะเป็นอย่างไร 794 00:41:33,808 --> 00:41:34,792 >> ลำโพง 5: หนึ่ง 795 00:41:34,792 --> 00:41:37,920 >> JOSEPH: ดังนั้นบางคนบอกว่าหนึ่ง บางคนบอกว่าหนึ่งในเชิงลบ 796 00:41:37,920 --> 00:41:38,450 แต่สิ่งที่ - 797 00:41:38,450 --> 00:41:40,820 >> ROB: ฉันจะไม่ได้มี กล่าวว่าหนึ่งในบรรดา 798 00:41:40,820 --> 00:41:42,370 >> JOSEPH: สองขอโทษ 799 00:41:42,370 --> 00:41:43,240 บางคนบอกว่า - 800 00:41:43,240 --> 00:41:43,450 >> ROB สาม 801 00:41:43,450 --> 00:41:43,800 >> JOSEPH: สาม? 802 00:41:43,800 --> 00:41:44,890 >> ROB: ลบ - 803 00:41:44,890 --> 00:41:45,950 สิ่งที่เป็น - ลบห้า - 804 00:41:45,950 --> 00:41:47,100 >> JOSEPH: สามสามสาม 805 00:41:47,100 --> 00:41:48,450 ขอโทษ 806 00:41:48,450 --> 00:41:51,910 เพราะโมดูโลทั่วไปเมื่อคุณได้ เห็นมันที่อื่น ๆ ก็มักจะหมายถึง 807 00:41:51,910 --> 00:41:54,000 กลับเป็นจำนวนบวกใช่ไหม 808 00:41:54,000 --> 00:42:01,160 >> ROB: ดังนั้นเมื่อเราพูดในทางคณิตศาสตร์ 10% ของ พวกเขามักจะต้องการให้คุณ - 809 00:42:01,160 --> 00:42:05,980 ถ้าเรา mod 10 แล้วเราคาดหวังที่จะ ได้รับหมายเลขระหว่าง 0 และ 9 810 00:42:05,980 --> 00:42:09,860 ในที่นี่ที่ไม่ได้กรณีที่คุณ จะได้รับตัวเลขที่ติดลบกลับ 811 00:42:09,860 --> 00:42:15,898 >> JOSEPH: ดังนั้นลบ 5% 4 จะเป็นเชิงลบ 1 812 00:42:15,898 --> 00:42:19,325 >> ROB: แต่มันหายากที่คุณ mod ไอเอ็นจี ตัวเลขที่ติดลบจะเริ่มต้นด้วย 813 00:42:19,325 --> 00:42:25,490 814 00:42:25,490 --> 00:42:25,970 ข้ามสิ่งนี้ 815 00:42:25,970 --> 00:42:27,314 >> JOSEPH: ใช่ 816 00:42:27,314 --> 00:42:29,420 >> ROB: Meh 817 00:42:29,420 --> 00:42:29,990 ตกลง 818 00:42:29,990 --> 00:42:36,400 ดังนั้นหนึ่งสิ่งสุดท้ายที่จะชี้ให้เห็นเกี่ยวกับ ลอยจะเป็นพฤติกรรมที่เป็นอันตราย 819 00:42:36,400 --> 00:42:39,850 แต่ลอยไม่ได้แน่นอน การแสดง 820 00:42:39,850 --> 00:42:46,190 ดังนั้นจะกลับไปอีกครั้งไบต์จำ ที่ int เสมอสี่ไบต์และ 821 00:42:46,190 --> 00:42:47,830 ลอยอยู่เสมอสี่ไบต์ 822 00:42:47,830 --> 00:42:51,340 ดังนั้นตัวอย่างของลูคัสเป็นสิ่งที่ดีสวย 823 00:42:51,340 --> 00:42:55,730 >> ดังนั้นคิดว่า 1 หารด้วย 3 824 00:42:55,730 --> 00:42:57,800 ดังนั้น 0.3333333 825 00:42:57,800 --> 00:43:03,540 ถ้าฉันมีเพียง 32 บิตวิธีที่สามารถ ฉันเก็บ 0.33333 ว่า? 826 00:43:03,540 --> 00:43:07,250 และอาจจะด้วยเหตุผลอะไรก็ตามที่คุณพูด ทั้งหมดที่ถูกต้องดีให้เพียงกล่าวว่า 827 00:43:07,250 --> 00:43:13,210 นี้โดยเฉพาะที่ 1011001 ให้ เพียงแค่บอกว่าควรจะ 0.333333 828 00:43:13,210 --> 00:43:16,960 ดีคุณมีจำนวน จำกัด เพียง บิตเหล่านั้นจึงเป็นไปไม่ได้ 829 00:43:16,960 --> 00:43:22,550 เป็นตัวแทนของจุดลอยทุกเดียว ค่าที่กำหนดเพียง 32 บิต 830 00:43:22,550 --> 00:43:25,580 >> ดีก็เป็นไปไม่ได้ที่จะเป็นตัวแทนใด ๆ ค่าจุดลอยให้ไม่มีที่สิ้นสุด - 831 00:43:25,580 --> 00:43:28,480 ดีที่กำหนดจำนวน จำกัด ของบิต 832 00:43:28,480 --> 00:43:38,265 ดังนั้นปัญหาที่นี่คือดีเมื่อเราใช้ สั่งพิมพ์ไปยังทศนิยมสองตำแหน่ง 833 00:43:38,265 --> 00:43:42,000 เราไม่ถูกต้องได้คำตอบ 0.10 834 00:43:42,000 --> 00:43:47,510 แต่อยู่ภายใต้ฝากระโปรงก็จริงๆ ถูกเก็บไว้ที่ใกล้ที่สุดเท่าที่เป็นไปได้ 835 00:43:47,510 --> 00:43:51,790 0.10 เป็นบิตที่สามารถเป็นตัวแทนของ 836 00:43:51,790 --> 00:43:53,200 นี้บนภาพนิ่งต่อไปหรือไม่ 837 00:43:53,200 --> 00:43:53,830 หรือมันไม่ได้คืออะไร 838 00:43:53,830 --> 00:43:54,660 >> JOSEPH: ใช่ก็ว่า 839 00:43:54,660 --> 00:43:55,750 >> ROB: Blegh, Blegh 840 00:43:55,750 --> 00:43:57,760 >> JOSEPH: ใช่คุณสามารถเพียงแค่ ดึงบันทึกขึ้นเล็กน้อย 841 00:43:57,760 --> 00:43:59,700 >> ROB: ฉันแค่ไปเพื่อขยาย ในวันสุดท้ายว่า 842 00:43:59,700 --> 00:44:00,950 Oh my gosh ที่ [ไม่ได้ยิน] 843 00:44:00,950 --> 00:44:06,089 844 00:44:06,089 --> 00:44:08,300 ดังนั้นตัวเลขที่ 845 00:44:08,300 --> 00:44:12,300 นั่นคือสิ่งที่จะพิมพ์ ถ้าเราเรียกใช้โปรแกรมที่ 846 00:44:12,300 --> 00:44:20,340 และแจ้งให้ทราบว่าไม่จริงเป็นเรื่องใหญ่ ถ้าเราเพียง แต่ดูแลเกี่ยวกับเช่น 847 00:44:20,340 --> 00:44:21,920 2-3 ตำแหน่งทศนิยม 848 00:44:21,920 --> 00:44:26,700 เหมือนเราเพียง แต่พิมพ์เดิม 0.10, และที่ว่าทำไมเราเห็นอะไรผิดปกติ 849 00:44:26,700 --> 00:44:31,380 แต่เมื่อเราเริ่มต้นการเข้าสู่ แน่นอนจำนวนที่แน่นอนว่ามันเป็น 850 00:44:31,380 --> 00:44:35,660 ที่เป็นตัวแทนของเราจะเห็นว่ามันไม่สามารถ ว่าเป็นตัวแทนของ 0.1 851 00:44:35,660 --> 00:44:40,900 >> และเป็นส่วนหนึ่งของปัญหาที่นี่เป็นเหมือน สิทธิทั้งหมดที่ดี แต่ดี 852 00:44:40,900 --> 00:44:46,120 ครั้งแรกสิ่งที่ถ้าเราพยายามที่จะทำ คำตอบเท่ากับเท่ากับ 0.1? 853 00:44:46,120 --> 00:44:49,200 คือการที่จะกลับมาจริงหรือเท็จ? 854 00:44:49,200 --> 00:44:51,850 และดังนั้นจึงเป็นเรื่องยากที่จะพูด 855 00:44:51,850 --> 00:44:53,330 ฉันคิดว่ามันจริงอาจกลับจริง 856 00:44:53,330 --> 00:44:55,265 มันจะเป็นครั้งแรก - 857 00:44:55,265 --> 00:44:56,180 ฉันไม่รู้ 858 00:44:56,180 --> 00:45:00,090 ? คำตอบคือเมื่อคุณเริ่มต้นการซื้อขาย ด้วยค่าจุดลอยตัวคุณสวย 859 00:45:00,090 --> 00:45:05,150 มากไม่ควรจะใช้ความเท่าเทียมกัน เพราะไม่แน่ชัดนี้ 860 00:45:05,150 --> 00:45:09,470 >> และสำหรับทุกคนที่คุณรู้ว่ามันเป็นร้อย ทศนิยมตำแหน่งที่ 861 00:45:09,470 --> 00:45:13,670 ลอยจุดก็ไม่สามารถ การจัดการอย่างถูกต้อง 862 00:45:13,670 --> 00:45:18,180 และเพื่อความเท่าเทียมกันก็จะล้มเหลวได้ แม้ว่าจำนวน - ถ้าคุณได้รับ 863 00:45:18,180 --> 00:45:24,450 โดยใช้ตัวเลขที่แน่นอนตัวเลขที่ควร ได้รับเหมือนกัน 864 00:45:24,450 --> 00:45:27,790 มันเป็นช่วงเวลาเช่น 50 คำนวณโดยใช้เหล่านี้ลอย 865 00:45:27,790 --> 00:45:30,270 ค่าจุดข้อผิดพลาดสามารถสร้าง ขึ้นและขึ้นและขึ้นและ 866 00:45:30,270 --> 00:45:31,125 สิ่งที่เพิ่งได้รับไม่ถูกต้อง 867 00:45:31,125 --> 00:45:33,870 >> JOSEPH: และมีจริงๆ ตัวอย่างที่มีชื่อเสียงของที่เกิดขึ้นนี้ 868 00:45:33,870 --> 00:45:37,190 เช่นวิศวกรนาซ่ามีอากาศนี้ ผิดจรวดที่ก่อให้เกิดการระเบิดใน 869 00:45:37,190 --> 00:45:38,665 อากาศหลังจากที่พวกเขาได้รับการเปิดตัว 870 00:45:38,665 --> 00:45:41,490 และจำนวนมากของปัญหาเช่นว่า 871 00:45:41,490 --> 00:45:41,956 เพื่อใช่ 872 00:45:41,956 --> 00:45:45,218 >> ลำโพง 6: เมื่อคุณพูด ​​0.3 ฉ, ที่ไม่ได้ตัดทอนส่วนที่เหลือหรือไม่ 873 00:45:45,218 --> 00:45:46,468 หรือไม่ก็รอบขึ้นหรือลง 874 00:45:46,468 --> 00:45:48,800 875 00:45:48,800 --> 00:45:50,200 >> ROB: จะ printf รอบมันได้หรือไม่ 876 00:45:50,200 --> 00:45:52,180 >> JOSEPH: ผมคิดว่าตัดทอน printf 877 00:45:52,180 --> 00:45:52,640 >> ROB: OK 878 00:45:52,640 --> 00:45:59,890 ดังนั้นเราจึงเหมือนกันสามารถไปในทางตรงกันข้าม ทิศทางของที่นี้ในกรณีนี้ 879 00:45:59,890 --> 00:46:03,320 ที่ใกล้เคียงที่สุดที่จะสามารถเป็นตัวแทนของ 0.1 กับหมายเลขนี้ 880 00:46:03,320 --> 00:46:06,820 ที่ใกล้เคียงที่สุดก็อาจจะมีความสามารถในการ เป็นตัวแทนของ 0.2 อยู่ในฝั่งตรงข้าม 881 00:46:06,820 --> 00:46:11,420 ทิศทาง 0.199999996356 หรือสิ่งที่ 882 00:46:11,420 --> 00:46:17,480 ดังนั้นถ้าเราไปในทิศทางที่ว่า สิ่งที่แล้ว printf 0.3 ฉจะกลับมา 883 00:46:17,480 --> 00:46:20,866 1.99 แทน 2.00 884 00:46:20,866 --> 00:46:22,960 >> JOSEPH: และฉันไม่ได้ทั้งหมด แน่ใจว่า 885 00:46:22,960 --> 00:46:25,430 คุณอาจต้องการที่จะเขียนเล็ก ๆ น้อย ๆ โปรแกรมเพียงแค่ตรวจสอบว่า 886 00:46:25,430 --> 00:46:29,370 >> ROB: แม้ว่าสิ่งที่เราแน่ใจก็คือ ถ้าคุณพยายามที่จะโยนไปที่ 887 00:46:29,370 --> 00:46:33,660 int และ int หล่อจะเป็นไปได้ ทำให้ตัดทศนิยมถ้า 888 00:46:33,660 --> 00:46:38,140 คุณพยายามที่จะโยน 1.9999999 เป็น int คุณจะได้รับ 1 889 00:46:38,140 --> 00:46:41,440 และเพื่อให้คุณโดยทั่วไปควรใช้ ฟังก์ชั่นในรอบห้องสมุดคณิตศาสตร์ 890 00:46:41,440 --> 00:46:44,190 891 00:46:44,190 --> 00:46:45,440 คำถาม? 892 00:46:45,440 --> 00:46:47,660 893 00:46:47,660 --> 00:46:48,982 ตกลง 894 00:46:48,982 --> 00:46:54,000 >> JOSEPH: ดังนั้นจะย้ายไปเงื่อนไข และสำนวนที่บูลีน 895 00:46:54,000 --> 00:46:58,120 เพื่อให้คุณได้เห็นเหล่านี้ก่อน 896 00:46:58,120 --> 00:47:07,420 และจริงให้ฉันแน่ใจว่าฉัน คอมพิวเตอร์ที่อยู่ในรูปแบบที่เหมาะสมที่นี่ 897 00:47:07,420 --> 00:47:08,670 ช่องว่าง 898 00:47:08,670 --> 00:47:10,630 899 00:47:10,630 --> 00:47:13,870 ขออภัยเรากำลังจะมีการจัดการ นิด ๆ หน่อย ๆ กับการตัดที่ขอบ 900 00:47:13,870 --> 00:47:15,830 >> แต่ใช่พวกคุณได้เห็น นี้มาก่อนในเกา 901 00:47:15,830 --> 00:47:19,930 ดังนั้นตอนนี้ที่นี่คือการแสดงออก ซึ่งจะใช้ในการ 902 00:47:19,930 --> 00:47:21,250 คำสั่งเงื่อนไข 903 00:47:21,250 --> 00:47:23,930 ดังนั้นคำตอบที่มากกว่าศูนย์จะ บอกคุณจริงหรือเท็จ 904 00:47:23,930 --> 00:47:26,530 และเหล่านี้เป็นสิ่งสำคัญมากเพราะ พวกเขาช่วยให้เราสามารถแนะนำ 905 00:47:26,530 --> 00:47:28,670 ตรรกะในรหัสของเรา 906 00:47:28,670 --> 00:47:32,820 >> ดังนั้นตัวอย่างเช่นนี้เป็นโปรแกรม เขียน Scratch ที่ขอให้ผู้ใช้ 907 00:47:32,820 --> 00:47:36,980 เพื่อจำนวนเต็มและบอกพวกเขาว่า เลขที่พวกเขาให้คุณเป็น 908 00:47:36,980 --> 00:47:38,690 จำนวนบวกหรือลบ 909 00:47:38,690 --> 00:47:42,980 และการแปลงไปที่นี่จะเห็นคือ คุณพิมพ์แรกที่ออกคำสั่ง 910 00:47:42,980 --> 00:47:43,870 ให้ฉันจำนวนเต็ม 911 00:47:43,870 --> 00:47:45,980 แล้วคุณถามพวกเขาสำหรับจำนวนเต็ม 912 00:47:45,980 --> 00:47:49,870 >> แล้วคุณใช้ตรรกะเงื่อนไขกว่า ที่นี่เพื่อตรวจสอบว่าตัวเลขที่ 913 00:47:49,870 --> 00:47:52,030 เป็นจริงที่มากกว่าศูนย์หรือไม่ 914 00:47:52,030 --> 00:47:58,960 ดังนั้นที่นี่เรามีนิพจน์บูลีน ภายในเงื่อนไขถ้างบ 915 00:47:58,960 --> 00:48:00,660 มีคำถามหรือข้อสงสัย 916 00:48:00,660 --> 00:48:03,030 มีคำถามใด ๆ เกี่ยวกับที่ 917 00:48:03,030 --> 00:48:03,950 ตกลง 918 00:48:03,950 --> 00:48:06,140 >> จึงมีมากกว่าเพียงแค่ มากกว่าแน่นอน 919 00:48:06,140 --> 00:48:10,385 คุณสามารถสร้างนิพจน์ ใช้มากที่สุดของทุกประเภทของสิ่งที่คุณ 920 00:48:10,385 --> 00:48:11,150 จะคิดในทางคณิตศาสตร์ 921 00:48:11,150 --> 00:48:12,370 ดังนั้นที่ยิ่งใหญ่กว่า 922 00:48:12,370 --> 00:48:13,740 ที่ควรจะน้อยกว่า 923 00:48:13,740 --> 00:48:14,990 ขอโทษ 924 00:48:14,990 --> 00:48:18,520 925 00:48:18,520 --> 00:48:19,760 และระยะห่าง 926 00:48:19,760 --> 00:48:22,971 >> ROB: พระเจ้าห้ามคุณปล่อยมัน 927 00:48:22,971 --> 00:48:23,620 >> JOSEPH: ทั้งหมดขวา 928 00:48:23,620 --> 00:48:25,950 ดังนั้นมากกว่าน้อยกว่ามากขึ้น กว่าหรือเท่ากับน้อย 929 00:48:25,950 --> 00:48:27,070 กว่าหรือเท่ากับ 930 00:48:27,070 --> 00:48:31,980 เราใช้เท่ากับสองเพื่อตรวจสอบ ความเท่าเทียมกันเพราะวิธีเดียวเท่ากับ 931 00:48:31,980 --> 00:48:32,810 ที่ได้รับมอบหมายใช่ไหม 932 00:48:32,810 --> 00:48:33,140 ใช่ 933 00:48:33,140 --> 00:48:37,130 แล้วเรายังสามารถไม่เท่ากับโดย ใช้เครื่องหมายอัศเจรีย์เท่ากับ 934 00:48:37,130 --> 00:48:41,530 >> และสัญลักษณ์เครื่องหมายอัศเจรีย์สามารถ ยังสามารถขยายเพื่อที่ว่าถ้าคุณต้องการ 935 00:48:41,530 --> 00:48:44,050 กลับไปจัดเรียงของบูลีนใด ๆ การแสดงออกที่คุณสามารถทำได้ 936 00:48:44,050 --> 00:48:48,530 ดังนั้นนี่จะประเมินให้เป็นจริง แต่ถ้าคำตอบคือน้อยกว่า 937 00:48:48,530 --> 00:48:51,240 กว่าหรือเท่ากับศูนย์ 938 00:48:51,240 --> 00:48:53,950 คำถามใด ๆ เกี่ยวกับการที่ 939 00:48:53,950 --> 00:48:55,180 ตกลง 940 00:48:55,180 --> 00:48:58,840 >> เพื่อให้คุณยังสามารถรวมเหล่านี้ สำนวนที่ใช้ตรรกะและและ 941 00:48:58,840 --> 00:48:59,790 หรือตรรกะ 942 00:48:59,790 --> 00:49:03,530 ดังนั้นนี่เป็นเพียงสัญลักษณ์และ ซึ่งควรจะกดปุ่ม Shift, 7 943 00:49:03,530 --> 00:49:07,720 และนี่คือสัญลักษณ์ท่อซึ่งเป็น ไม่ได้กรณีที่ต่ำกว่าลิตรมันเป็นหนึ่งใน 944 00:49:07,720 --> 00:49:09,440 ที่เหมาะสมดังกล่าวข้างต้นที่สำคัญใส่ของคุณ 945 00:49:09,440 --> 00:49:12,870 ดังนั้นคุณจึงใช้สองของเหล่านี้เพื่อเป็นสัญลักษณ์ ตรรกะและตรรกะหรือ 946 00:49:12,870 --> 00:49:18,180 >> ดังนั้นนี้จะกลับจริงถ้าคำตอบ เป็นหนึ่งในสองสามหรือสี่ 947 00:49:18,180 --> 00:49:23,030 และนี้จะกลับจริงถ้าคำตอบ เกินกว่าที่ทั้งสองข้าง 948 00:49:23,030 --> 00:49:26,190 ดังนั้นจึงไม่หนึ่งสองสามหรือสี่ 949 00:49:26,190 --> 00:49:28,385 และวิธีที่คุณจะใช้ ว่าในการแสดงออก - 950 00:49:28,385 --> 00:49:29,990 >> ROB: หรือศูนย์หรือห้า 951 00:49:29,990 --> 00:49:32,200 >> JOSEPH: ศูนย์หรือห้า 952 00:49:32,200 --> 00:49:32,380 ขอโทษ 953 00:49:32,380 --> 00:49:33,320 ใช่ใช่ใช่ 954 00:49:33,320 --> 00:49:34,180 ตกลง 955 00:49:34,180 --> 00:49:38,980 และกว่าที่นี่ตอนนี้วิธีเดียวกับที่คุณ จะใช้การแสดงออกที่มีขนาดเล็ก 956 00:49:38,980 --> 00:49:42,000 ด้านการแสดงออกของหากเงื่อนไข คำสั่งคุณยังจะใช้ 957 00:49:42,000 --> 00:49:47,800 ทางเดียวกันโดยเพียงแค่วางไว้ภายใน วงเล็บของคำสั่งถ้า 958 00:49:47,800 --> 00:49:54,020 ดังนั้น printf นี้จะไฟหากคำตอบ เป็นหนึ่งในสองสามหรือสี่ 959 00:49:54,020 --> 00:49:56,002 คำถามใด ๆ เกี่ยวกับการรวม นิพจน์ 960 00:49:56,002 --> 00:50:00,450 961 00:50:00,450 --> 00:50:04,240 >> ดังนั้นจึงมีเงื่อนไขอื่น สร้างที่เราเรียกว่าถ้า / อื่น 962 00:50:04,240 --> 00:50:08,120 ดังนั้นโดยทั่วไปในตอนนี้หมายความว่าตกลงถ้า สิ่งที่ฉันต้องการที่จะตรวจสอบไม่ได้ 963 00:50:08,120 --> 00:50:11,600 ความจริงแล้วไปที่อื่นและ ดำเนินการว่าการกระทำอื่น ๆ 964 00:50:11,600 --> 00:50:15,570 ดังนั้นในกรณีนี้โดยเฉพาะอย่างยิ่งผมถาม ผู้ใช้จำนวนเต็ม 965 00:50:15,570 --> 00:50:17,790 เป็นจำนวนเต็มมากกว่าศูนย์? 966 00:50:17,790 --> 00:50:18,310 ใช่? 967 00:50:18,310 --> 00:50:20,100 อืมแล้วพวกเขาเลือก จำนวนบวก 968 00:50:20,100 --> 00:50:22,320 ถ้าไม่เช่นนั้นมันจะต้องมี การลบหรือศูนย์ 969 00:50:22,320 --> 00:50:27,530 เพื่อให้คุณเลือกเป็นจำนวนลบ หรือศูนย์ในกรณีนี้ 970 00:50:27,530 --> 00:50:29,235 ใช่ 971 00:50:29,235 --> 00:50:30,485 หรือศูนย์ 972 00:50:30,485 --> 00:50:36,320 973 00:50:36,320 --> 00:50:39,300 >> แล้วเรายังมีถ้า / อื่น ๆ , ถ้าและอื่น 974 00:50:39,300 --> 00:50:45,640 ดังนั้นนี้จะช่วยให้เราดำเนินการลำดับของ สิ่งเดียวถ้าคนแรกไม่ได้ 975 00:50:45,640 --> 00:50:49,540 ดังนั้นในกรณีนี้ตอนนี้เรากำลังทำ คนสุดท้ายที่คุณเลือกเป็นศูนย์ 976 00:50:49,540 --> 00:50:53,080 ดังนั้นหากพวกเขาไม่เลือกที่เป็นบวกหรือ จำนวนลบแล้วพวกเขาก็ต้อง 977 00:50:53,080 --> 00:50:53,640 ได้เลือกศูนย์ 978 00:50:53,640 --> 00:50:56,720 ดังนั้นมันก็จะต่ำลง ห่วงโซ่เช่นนี้ 979 00:50:56,720 --> 00:50:59,960 >> ดังนั้นตัวอย่างของวิธีการ ถ้าจะแตกต่างจาก - 980 00:50:59,960 --> 00:51:02,590 ถ้า / อื่น ๆ จะแตกต่างจาก เพียงลำดับของอิฟส์ 981 00:51:02,590 --> 00:51:07,680 และนี่เป็นคำถามทั่วไปที่ คนถามเป็นอย่างดีถ้าคุณได้รับเช่น 982 00:51:07,680 --> 00:51:11,265 95 ใน CS50 สิ่งที่จะนี้ โปรแกรมบอกคุณ 983 00:51:11,265 --> 00:51:12,600 >> ลำโพง 5: คุณได้เอ 984 00:51:12,600 --> 00:51:13,490 >> JOSEPH: ใช่ 985 00:51:13,490 --> 00:51:14,960 คุณได้ทุกเดียว หนึ่งในผู้ที่ถูกต้อง 986 00:51:14,960 --> 00:51:17,130 คุณมีคุณได้ B คุณ ได้ C และ D ใช่ไหม 987 00:51:17,130 --> 00:51:19,770 ดังนั้นสิ่งเหล่านี้จะได้รับการประเมิน ในการสั่งซื้อ 988 00:51:19,770 --> 00:51:23,570 ดังนั้นในขณะที่ 95 มีมากกว่า 90 ก็ นอกจากนี้ยังมีมากขึ้นกว่า 80 ก็ยัง 989 00:51:23,570 --> 00:51:25,790 มากกว่า 70 และก็ ยังสูงกว่า 60 990 00:51:25,790 --> 00:51:27,620 เพื่อให้คุณมีทั้งหมดของผู้ที่เกรด 991 00:51:27,620 --> 00:51:31,630 และฉันคิดว่าคุณจะ เพียงต้องการ A. 992 00:51:31,630 --> 00:51:34,060 >> วิธีการแก้ไขที่จะแทนที่ ผู้ที่มีอื่น ๆ / ถ้า 's 993 00:51:34,060 --> 00:51:37,540 ดังนั้นในสถานการณ์นี้ก็เห็นว่า 95 มากกว่า 90 และจากนั้นก็จะ 994 00:51:37,540 --> 00:51:38,885 ได้ประเมินส่วนที่เหลือ ของงบการเงิน 995 00:51:38,885 --> 00:51:41,900 996 00:51:41,900 --> 00:51:43,150 คำถามใด ๆ เกี่ยวกับที่ 997 00:51:43,150 --> 00:51:48,580 998 00:51:48,580 --> 00:51:52,470 >> เพื่อให้มีการจัดเรียงเป็นอีกเงื่อนไขของ โครงสร้างที่เรามีที่นี่ที่เรา 999 00:51:52,470 --> 00:51:53,390 เรียกคำสั่งสวิทช์ 1000 00:51:53,390 --> 00:51:57,390 ดังนั้นนี้จะช่วยให้คุณสามารถตรวจสอบโดยทั่วไป สิ่งที่มีค่าของจำนวนที่คุณใส่ 1001 00:51:57,390 --> 00:51:59,000 เป็นคำสั่งที่เปลี่ยนเป็น 1002 00:51:59,000 --> 00:52:03,200 ดังนั้นในสถานการณ์นี้เรากำลังเปลี่ยน ที่ n และเรากำลังจะบอกว่าโอ้ถ้า n คือ 1003 00:52:03,200 --> 00:52:04,710 หนึ่งแล้วพิมพ์คำว่า 1004 00:52:04,710 --> 00:52:07,910 แล้วทำลายซึ่งหมายความว่าออก ออกมาจากคำพูดของสวิทช์ 1005 00:52:07,910 --> 00:52:12,670 >> ถ้ามันไม่ได้อย่างใดอย่างหนึ่งแล้วดีเพียง ในที่สุดก็ตรวจสอบทุกกรณี 1006 00:52:12,670 --> 00:52:16,280 และอื่น ๆ มันจะตรวจสอบว่าเป็นหนึ่งหรือสองหรือ สามและก็พิมพ์ตาม 1007 00:52:16,280 --> 00:52:19,780 และสิ่งที่คำหลักที่เริ่มต้นนี้ลงมาที่นี่ หมายถึงคือถ้าพวกเขาไม่ได้เข้ามาใด ๆ 1008 00:52:19,780 --> 00:52:21,690 ของเหล่านั้นแล้วบอกว่าไม่ถูกต้อง 1009 00:52:21,690 --> 00:52:25,910 จึงขอบอกว่าฉันขอ n และ ผู้ใช้ให้ฉันสี่ 1010 00:52:25,910 --> 00:52:29,470 ดีก็ตรงที่ไม่มีกรณีดังกล่าว จึงจะพิมพ์ออกมาสิ่งที่อยู่ใน 1011 00:52:29,470 --> 00:52:30,540 ส่วนค่าเริ่มต้น 1012 00:52:30,540 --> 00:52:31,180 มีคำถาม? 1013 00:52:31,180 --> 00:52:32,614 >> ลำโพง 5: คุณสามารถใช้บูลีน การแสดงออกแทน 1014 00:52:32,614 --> 00:52:33,570 หนึ่งสองหรือสาม? 1015 00:52:33,570 --> 00:52:36,940 >> JOSEPH: ดังนั้นคำถามคือคุณสามารถใช้ นิพจน์แทนหนึ่ง 1016 00:52:36,940 --> 00:52:37,940 สองและสาม 1017 00:52:37,940 --> 00:52:40,520 และใน C ผมเชื่อว่าคุณ ไม่สามารถทำเช่นนั้นได้ 1018 00:52:40,520 --> 00:52:44,320 แต่ในภาษาอื่น ๆ ที่คุณอาจจะ พบที่ส่วนท้ายของ 1019 00:52:44,320 --> 00:52:46,460 ภาคการศึกษาเช่น JavaScript คุณสามารถ 1020 00:52:46,460 --> 00:52:50,050 ดีคุณจะต้องคำนวณเป็นครั้งแรก ค่าที่แล้วใช้มันใน 1021 00:52:50,050 --> 00:52:50,650 สลับคำ 1022 00:52:50,650 --> 00:52:50,930 ใช่? 1023 00:52:50,930 --> 00:52:54,760 >> ROB: ดังนั้นส่วนหนึ่งของผลประโยชน์ของสวิทช์ งบที่คิดว่าถ้าคุณทำอย่างนี้ 1024 00:52:54,760 --> 00:52:58,680 เช่นหาก / อื่นดังนั้นเช่นถ้า n เท่ากับ เท่ากับหนึ่งหรืออะไรก็ตาม 1025 00:52:58,680 --> 00:53:00,300 อื่น / ถ้า n เท่ากับเท่ากับสองสิ่ง 1026 00:53:00,300 --> 00:53:01,960 อื่น / ถ้า n เท่ากับเท่ากับสาม 1027 00:53:01,960 --> 00:53:05,930 ดังนั้นวิธีที่โปรแกรมจะเรียกใช้มัน จะลงไปตามลำดับรายชื่อที่ 1028 00:53:05,930 --> 00:53:07,500 และตรวจสอบเป็นที่หนึ่ง n? 1029 00:53:07,500 --> 00:53:08,040 Nope 1030 00:53:08,040 --> 00:53:09,070 n เป็นสอง 1031 00:53:09,070 --> 00:53:09,490 Nope 1032 00:53:09,490 --> 00:53:10,940 n เป็นสาม 1033 00:53:10,940 --> 00:53:11,710 ใช่ 1034 00:53:11,710 --> 00:53:12,610 ทำเช่นนี้ 1035 00:53:12,610 --> 00:53:15,270 >> ในขณะที่มีคำสั่งสวิทช์ก็ จริงสามารถที่จะรวบรวมให้เป็น 1036 00:53:15,270 --> 00:53:16,360 อย่างรวดเร็วจริงๆ 1037 00:53:16,360 --> 00:53:19,550 และทันทีที่มันบอกว่าสวิทช์มัน กล่าวว่าสิทธิทั้งหมด n คือสองผม 1038 00:53:19,550 --> 00:53:23,060 ทันทีจะข้ามไปที่ ฉันควรจะเริ่มต้นดำเนินการ 1039 00:53:23,060 --> 00:53:26,080 ฉันไม่ได้ไปตรวจสอบก่อน n เป็นหนึ่งเป็นสอง n? 1040 00:53:26,080 --> 00:53:28,860 ได้ทันทีสามารถเริ่มต้นทำ สิ่งที่มันควรจะทำ 1041 00:53:28,860 --> 00:53:33,830 >> และเนื่องจากการที่มันไม่สามารถ ใช้เงื่อนไขบูลีน 1042 00:53:33,830 --> 00:53:36,480 หรืออื่น ๆ ที่จะต้องทำ เรียงตามลำดับเช่นขวาทั้งหมดเป็น n 1043 00:53:36,480 --> 00:53:37,820 มากกว่าศูนย์? 1044 00:53:37,820 --> 00:53:41,140 อื่นเป็น n มากกว่า 10 หรืออะไรก็ตาม 1045 00:53:41,140 --> 00:53:44,780 >> JOSEPH: ในกรณีนี้ถ้าคุณใช้ ถ้า / อื่นถ้าแล้วสวิทช์จะ 1046 00:53:44,780 --> 00:53:47,792 ทำงานประมาณสามครั้ง เร็วกว่าหาก / อื่นหาก 1047 00:53:47,792 --> 00:53:53,060 1048 00:53:53,060 --> 00:53:56,040 เราสามารถจัดระเบียบสวิทช์ดังกล่าว วิธีการที่เราไม่ได้ทำลาย 1049 00:53:56,040 --> 00:53:57,520 หลังจากที่แต่ละกรณี 1050 00:53:57,520 --> 00:54:00,960 ดังนั้นในกรณีนี้ผมแบ่ง ตัวเลขที่เราเลือกเป็นหนึ่งและ 1051 00:54:00,960 --> 00:54:04,250 สองคนไม่ได้ตัวเลขที่สูงและ สามเป็นจำนวนมาก 1052 00:54:04,250 --> 00:54:08,290 >> ดังนั้นในกรณีนี้ถ้า n คือหนึ่งหรือสองก็ กรณีที่จะตีแล้วมันจะ 1053 00:54:08,290 --> 00:54:10,640 ตกผ่านเพราะ มีการหยุดพักไม่ 1054 00:54:10,640 --> 00:54:11,610 และมันจะจบลงที่นี่ 1055 00:54:11,610 --> 00:54:15,360 ดังนั้นถ้าเราเลือกอย่างใดอย่างหนึ่งก็จะทำ printf แล้วทำลายเพื่อให้ไม่มีที่ 1056 00:54:15,360 --> 00:54:17,610 นี้จะถูกดำเนินการ 1057 00:54:17,610 --> 00:54:21,870 และแน่นอนว่าพวกเขาป้อนในสาม หรือสิ่งอื่นแล้วมันจะข้าม 1058 00:54:21,870 --> 00:54:25,320 เหล่านั้นและไม่ได้ไปที่นั่นและมัน จะดำเนินการแทน 1059 00:54:25,320 --> 00:54:27,490 สายที่เกี่ยวข้อง 1060 00:54:27,490 --> 00:54:29,390 มีคำถามใด ๆ เกี่ยวกับที่ 1061 00:54:29,390 --> 00:54:29,780 ใช่? 1062 00:54:29,780 --> 00:54:32,642 >> ลำโพง 4: คุณจะได้รับข้อผิดพลาดถ้าคุณ มีการหยุดพักหลังจากกรณีหนึ่ง แต่ 1063 00:54:32,642 --> 00:54:34,550 ไม่ได้มีสิ่งที่มันจะทำอย่างไร 1064 00:54:34,550 --> 00:54:37,820 >> JOSEPH: ดังนั้นคำถามคือคุณจะได้รับ ข้อผิดพลาดถ้าคุณมีการหยุดพักหลังจากที่ 1065 00:54:37,820 --> 00:54:39,730 กรณีที่หนึ่ง แต่ไม่มีอะไรที่จะทำหรือไม่ 1066 00:54:39,730 --> 00:54:41,520 และคำตอบคือไม่มี 1067 00:54:41,520 --> 00:54:43,172 คุณจะไม่ได้รับข้อผิดพลาดจริง 1068 00:54:43,172 --> 00:54:44,590 ใช่อืมมมม 1069 00:54:44,590 --> 00:54:54,540 >> เพื่อที่จะเรียงลำดับของการเปลี่ยนแปลงเล็กน้อยที่นี่ ฉันจะใส่ printf ที่นี่ 1070 00:54:54,540 --> 00:54:55,790 ขออภัย 1071 00:54:55,790 --> 00:55:00,994 1072 00:55:00,994 --> 00:55:04,880 ดังนั้นสิ่งนี้จะพิมพ์ถ้า ฉันใส่หนึ่งในเป็น input? 1073 00:55:04,880 --> 00:55:07,530 1074 00:55:07,530 --> 00:55:07,770 ใช่ 1075 00:55:07,770 --> 00:55:10,360 มันจะบอกคุณว่ามันไม่ได้ใช้เวลา จำนวนสองครั้งใช่ไหม 1076 00:55:10,360 --> 00:55:13,500 เพราะมันจะตีกรณีแรกที่ มันจะไม่ทำลายและมันจะตก 1077 00:55:13,500 --> 00:55:15,730 ผ่านไปยังกรณีที่สอง 1078 00:55:15,730 --> 00:55:16,950 คำถามใด ๆ เกี่ยวกับที่ 1079 00:55:16,950 --> 00:55:18,280 >> ROB: คุณมีคำถามอื่นได้หรือไม่ 1080 00:55:18,280 --> 00:55:20,840 >> JOSEPH: ตกลงเย็น 1081 00:55:20,840 --> 00:55:22,400 ขวาทั้งหมด 1082 00:55:22,400 --> 00:55:25,780 จึงมีบางสิ่งบางอย่างที่เราเรียกว่า ประกอบ ternary ซึ่งเป็นพื้น 1083 00:55:25,780 --> 00:55:29,010 ไวยากรณ์ทางเลือกในการทำ หากแล้วอื่น 1084 00:55:29,010 --> 00:55:30,470 และมันช่วยให้คุณทำมันทั้งหมดในหนึ่งบรรทัด 1085 00:55:30,470 --> 00:55:34,110 ดังนั้นในโปรแกรมนี้โดยเฉพาะอย่างยิ่ง ฉันขอให้ผู้ใช้สำหรับ n 1086 00:55:34,110 --> 00:55:37,190 และถ้า n คือมากกว่า 100 ผมจะบอก พวกเขาพวกเขาเลือกจำนวนมาก 1087 00:55:37,190 --> 00:55:39,560 อื่นผมบอกพวกเขาว่าพวกเขา เลือกจำนวนน้อย 1088 00:55:39,560 --> 00:55:43,030 >> ดังนั้นเราจึงสามารถใช้ไวยากรณ์นานมากนี้ สตริง, S, และจากนั้นตรวจสอบว่า n คือ 1089 00:55:43,030 --> 00:55:45,260 มากกว่า 100 และกำหนด มันตาม 1090 00:55:45,260 --> 00:55:49,450 แต่เราสามารถทำให้รัดกุมมากขึ้น โดยใช้ไวยากรณ์ดำเนินการนี​​้ประกอบไปด้วย 1091 00:55:49,450 --> 00:55:52,090 ที่เกี่ยวข้องกับคำถาม เครื่องหมายและลำไส้ใหญ่ 1092 00:55:52,090 --> 00:55:55,070 ดังนั้นเครื่องหมายคำถามเป็นหลัก ถามคำถามใช่ไหม 1093 00:55:55,070 --> 00:55:56,625 >> ROB: บางทีซูมในที่ 1094 00:55:56,625 --> 00:55:57,372 >> JOSEPH: ใช่ 1095 00:55:57,372 --> 00:56:00,210 จุดดี 1096 00:56:00,210 --> 00:56:02,550 ดังนั้นนี่คือผู้ประกอบ ternary 1097 00:56:02,550 --> 00:56:06,100 ครั้งแรกที่ฉันถามคำถามที่ เป็น n มากกว่า 100? 1098 00:56:06,100 --> 00:56:09,770 หากเป็นเช่นนั้นแล้วฉันจะรันเป็นอันดับแรก ส่วนหนึ่งก่อนที่จะลำไส้ใหญ่ 1099 00:56:09,770 --> 00:56:13,360 ถ้ามันไม่ได้แล้วฉันจะดำเนินการ ส่วนที่สองหลังจากลำไส้ใหญ่ 1100 00:56:13,360 --> 00:56:16,640 ดังนั้นถ้า n คือมากกว่า 100, แล้วก็หยิบสูงและทำให้ 1101 00:56:16,640 --> 00:56:18,360 ที่เป็นสตริง 1102 00:56:18,360 --> 00:56:22,170 ถ้า n เป็นน้อยกว่า 100 ก็หยิบต่ำ แล้วทำให้ที่เป็นสตริง 1103 00:56:22,170 --> 00:56:30,186 เพื่อที่จะรวมตัวก้อนใหญ่นี้ ลงไปเพียงว่าหนึ่งบรรทัด 1104 00:56:30,186 --> 00:56:32,010 >> ลำโพง 5: ที่เป็นที่นิยม 1105 00:56:32,010 --> 00:56:36,070 >> JOSEPH: ใช่มันค่อนข้างเป็นที่นิยมสำหรับ สิ่งที่เป็นหลักที่คุณต้องการ 1106 00:56:36,070 --> 00:56:38,700 ไม่ได้รับมอบหมายตาม การเรียงลำดับของเงื่อนไขบางอย่าง 1107 00:56:38,700 --> 00:56:43,110 และในกรณีนี้เรากำลังพยายาม การกำหนดค่าให้กับสตริง 1108 00:56:43,110 --> 00:56:44,840 มันไม่ได้ - 1109 00:56:44,840 --> 00:56:47,670 ผมคิดว่าผมไม่ชอบจริงๆ ในกรณีอื่น ๆ 1110 00:56:47,670 --> 00:56:49,390 แต่มันก็มีประโยชน์โดยเฉพาะอย่างยิ่ง สำหรับการกำหนดนี้ 1111 00:56:49,390 --> 00:56:54,490 >> ROB: นั่นเป็นรูปแบบทั่วไปสวย ที่คุณมีตัวแปรบางอย่างที่ 1112 00:56:54,490 --> 00:56:58,200 คุณกำลังจะบอกว่าถ้าสิ่งที่ตั้ง ตัวแปรนี้จะเป็นหนึ่งในค่า; อื่นตั้ง 1113 00:56:58,200 --> 00:56:59,810 ตัวแปรนี้เป็นค่าอื่น 1114 00:56:59,810 --> 00:57:03,360 และนั่นคือสถานการณ์ ที่ใช้ประกอบ 1115 00:57:03,360 --> 00:57:05,220 >> JOSEPH: และคุณประหยัด จำนวนมากของสายใช่ไหม 1116 00:57:05,220 --> 00:57:08,090 และมันก็ทำให้รหัสของคุณเนื้อหา นิด ๆ หน่อย ๆ อ่านได้มากขึ้น 1117 00:57:08,090 --> 00:57:08,635 มีคำถาม? 1118 00:57:08,635 --> 00:57:12,384 >> ลำโพง 6: สำหรับ ternary คุณสามารถไป สตริงเท่ากับวินาที, เครื่องหมายคำถาม? 1119 00:57:12,384 --> 00:57:15,280 แล้วคุณอาจจะมีการพูด ห้าตัวเลือกที่แตกต่างกัน 1120 00:57:15,280 --> 00:57:18,310 และขึ้นอยู่กับสิ่งที่จำนวนของ n เป็นคุณจะเลือกอย่างใดอย่างหนึ่งเหล่านั้นหรือไม่ 1121 00:57:18,310 --> 00:57:22,210 >> JOSEPH: ดังนั้นคำถามคือจะมี การเรียงลำดับของรูปแบบที่คุณสามารถทำสตริง 1122 00:57:22,210 --> 00:57:25,910 s เท่ากับ n แล้​​วมีมากกว่าสอง ตัวเลือกหลังจากเครื่องหมายคำถามที่ 1123 00:57:25,910 --> 00:57:29,740 และคำตอบง่ายๆคือไม่มีมีไม่ จริงๆเป็นวิธีที่ดีที่จะทำว่าถ้า 1124 00:57:29,740 --> 00:57:33,850 คุณต้องการที่จะรัง ternary หลาย ผู้ประกอบการภายในของกันและกัน 1125 00:57:33,850 --> 00:57:38,050 >> คุณสามารถทำเช่น n มากกว่า 100 เครื่องหมายคำถามและจากนั้นอีก 1126 00:57:38,050 --> 00:57:41,850 ternary ประกอบ n มากกว่า 50, เครื่องหมายคำถามและรังมันเป็นแบบนั้น 1127 00:57:41,850 --> 00:57:45,240 แต่ในสถานการณ์ที่เป็นรหัสของคุณ รับชนิดของและอ่านไม่ได้ยุ่ง 1128 00:57:45,240 --> 00:57:47,920 และมันอาจจะดีกว่าที่จะไปที่ ถ้างบ / อื่น ๆ ที่จุดที่ 1129 00:57:47,920 --> 00:57:54,530 >> ROB: และยังเป็นที่ทราบด้าน, PHP ไม่ถูกต้องดำเนินการประกอบ 1130 00:57:54,530 --> 00:57:58,053 ผู้ประกอบการดังกล่าวว่า ternaries ซ้อนกัน ไม่ได้ทำงานตามที่ควรจะเป็น 1131 00:57:58,053 --> 00:57:58,840 >> JOSEPH: ใช่ 1132 00:57:58,840 --> 00:58:01,170 ดังนั้นจึงได้รับนิด ๆ หน่อย ๆ สับสน โดยเฉพาะอย่างยิ่งเมื่อคุณไป 1133 00:58:01,170 --> 00:58:02,145 กับภาษาที่แตกต่างกัน 1134 00:58:02,145 --> 00:58:04,810 >> ROB: มันพอที่จะทำให้เกิดความสับสน ภาษาที่ไม่ถูกต้องเกี่ยวกับเรื่องนี้ 1135 00:58:04,810 --> 00:58:08,030 1136 00:58:08,030 --> 00:58:11,510 >> JOSEPH: ดังนั้นจริงเพียงเพื่อชี้แจง ไม่ทุกคนรู้ว่าสิ่งที่ 1137 00:58:11,510 --> 00:58:13,900 % s ไม่ไปที่นี่? 1138 00:58:13,900 --> 00:58:15,650 คำถามใด ๆ เกี่ยวกับที่ 1139 00:58:15,650 --> 00:58:19,760 ผมคิดว่าเพียงสำหรับกล้อง% s โดยทั่วไปจะช่วยให้เราใส่ตัวยึด 1140 00:58:19,760 --> 00:58:20,790 สตริง 1141 00:58:20,790 --> 00:58:23,920 แล้วที่ท้ายที่สุดเราระบุว่า ตัวแปรที่เราต้องการจะใส่ลงไปในนี้ 1142 00:58:23,920 --> 00:58:25,500 ถือเป็นสถานที่ของ 1143 00:58:25,500 --> 00:58:27,730 ดังนั้นโดยทั่วไปจะใช้เวลา s และมันทำให้มันอยู่ในที่นี่ 1144 00:58:27,730 --> 00:58:32,130 แล้วมันจะพิมพ์ออกมาคุณเลือก สูงหรือคุณเลือกจำนวนน้อย 1145 00:58:32,130 --> 00:58:33,770 ตกลง 1146 00:58:33,770 --> 00:58:36,970 >> ดังนั้นลูปช่วยให้คุณสามารถดำเนินการสิ่ง ในวงกลมใช่ไหม 1147 00:58:36,970 --> 00:58:40,300 คุณอาจได้พบนี้ใน เริ่มต้นในรูปแบบของลูปตลอดกาล 1148 00:58:40,300 --> 00:58:45,650 หรือทำซ้ำจนกว่าจะถึงหรือทำซ้ำโดยเฉพาะอย่างยิ่ง จำนวนครั้ง 1149 00:58:45,650 --> 00:58:47,540 ดังนั้นทำไมนี้เป็นสิ่งที่ดีสำหรับเรา 1150 00:58:47,540 --> 00:58:51,500 ดีใน C สมมติว่าเรามีนี้ เพลงดำเนินการใน Scratch ที่ 1151 00:58:51,500 --> 00:58:53,450 ร้องเพลงนี้เป็นเพลง ที่ไม่สิ้นสุด 1152 00:58:53,450 --> 00:58:55,710 มันก็ไปบนและบนและ อยู่กับคุณตลอดและตลอดไป 1153 00:58:55,710 --> 00:58:59,395 ดีคุณไม่สามารถจริงๆทำให้โปรแกรม ที่มีจำนวนอนันต์ของ printf 1154 00:58:59,395 --> 00:59:00,850 งบในนั้นใช่ไหม 1155 00:59:00,850 --> 00:59:04,900 >> ดังนั้นในสถานการณ์นี้โดยเฉพาะอย่างยิ่งวิธีหนึ่ง ที่คุณสามารถทำให้งานนี้และ 1156 00:59:04,900 --> 00:59:09,330 เพื่อให้พิมพ์ตลอดไปคือการ แทนการใช้ห่วงในขณะที่ 1157 00:59:09,330 --> 00:59:13,640 ดังนั้นห่วงในขณะที่จะดำเนินการสิ่งที่ ในร่างกายของทั้งสองวงเล็บที่ 1158 00:59:13,640 --> 00:59:17,250 เป็นไปตามสิ่งที่ เงื่อนไขเป็น 1159 00:59:17,250 --> 00:59:21,170 ดังนั้นในตัวอย่างนี้โดยเฉพาะอย่างยิ่งก่อนถ้า เราต้องการที่จะพิมพ์นี้ตลอดไปสิ่งที่ 1160 00:59:21,170 --> 00:59:23,590 เราอาจจะทำอย่างไร 1161 00:59:23,590 --> 00:59:25,190 ดีแน่ใจใช่ไหม 1162 00:59:25,190 --> 00:59:32,290 >> ดังนั้นการเรียงลำดับของความคิดรวม บางนิพจน์บูลีน 1163 00:59:32,290 --> 00:59:33,610 พร้อมกับวง 1164 00:59:33,610 --> 00:59:35,780 และเราได้เรียนรู้เกี่ยวกับการบูลีน การแสดงก่อนหน้านี้ 1165 00:59:35,780 --> 00:59:39,650 ดังนั้นเมื่อใดก็ตามที่สภาพภายในของ ในขณะที่ยังคงเป็นจริงวงนี้ 1166 00:59:39,650 --> 00:59:41,480 จะรันบนและบนและบน 1167 00:59:41,480 --> 00:59:44,640 และในกรณีนี้ถ้าเราเพียงแค่จัดหา ด้วยความจริงนี้ทำให้ไม่มีที่สิ้นสุด 1168 00:59:44,640 --> 00:59:49,310 วงเพลงที่พิมพ์บนและบน และในขณะที่เราต้องการก่อนที่จะได้โดยไม่ต้อง 1169 00:59:49,310 --> 00:59:52,410 มีโปรแกรมที่มีไม่มีที่สิ้นสุด จำนวนงบ printf ซึ่งเป็น 1170 00:59:52,410 --> 00:59:55,220 เป็นไปไม่ได้ 1171 00:59:55,220 --> 00:59:57,810 >> ดังนั้นร้องขอมากขึ้นแม้ว่า คุณสามารถใช้กับ 1172 00:59:57,810 --> 00:59:59,710 ตัวแปรและเงื่อนไข 1173 00:59:59,710 --> 01:00:04,420 ดังนั้นสมมติว่าเราต้องการที่จะทำซ้ำ วลีวงแหวนทั้งหมด 10 ครั้ง 1174 01:00:04,420 --> 01:00:08,380 ดังนั้นสิ่งที่คุณสามารถทำอะไรกับห่วงในขณะที่เป็น คุณสามารถเริ่มต้นเคาน์เตอร์ 1175 01:00:08,380 --> 01:00:10,860 นอกตัวแปรของ ในขณะที่ห่วงถึง 10 1176 01:00:10,860 --> 01:00:14,360 โดยทั่วไปแล้วทุกครั้งที่คุณไป ผ่านห่วงในขณะที่คุณพิมพ์ออกมา 1177 01:00:14,360 --> 01:00:19,090 คำสั่งแล้วคุณจะลดลง เคาน์เตอร์ตัวแปรจนถึงที่สิ้นสุด 1178 01:00:19,090 --> 01:00:23,020 ในบางจุดเมื่อเราลบฉันพอ ครั้งที่ 1 ครั้งจากที่ผมพอ - 1179 01:00:23,020 --> 01:00:27,290 และเพียงแค่ชี้แจงฉันลบลบ หมายความว่าฉันเท่ากับฉันลบ 1 1180 01:00:27,290 --> 01:00:31,280 >> ที่พื้นจะนำฉันลงไป จุดที่เมื่อฉันตีศูนย์นี้ 1181 01:00:31,280 --> 01:00:35,260 สภาพไม่เป็นความจริงและ เพื่อที่จะออกจากออกจากวง 1182 01:00:35,260 --> 01:00:37,045 ดังนั้นวงแหวนทั้งหมดเพียงพิมพ์ 10 ครั้ง 1183 01:00:37,045 --> 01:00:39,550 1184 01:00:39,550 --> 01:00:41,080 คำถามใด ๆ เกี่ยวกับวงในขณะที่? 1185 01:00:41,080 --> 01:00:44,580 1186 01:00:44,580 --> 01:00:46,790 ตกลง 1187 01:00:46,790 --> 01:00:50,550 >> จึงมีวิธีที่เราสามารถทำได้คือสิ่งที่เราเพียงแค่ ทำในลักษณะที่รัดกุมมากขึ้นด้วย 1188 01:00:50,550 --> 01:00:51,715 สิ่งที่เราเรียกสำหรับวง 1189 01:00:51,715 --> 01:00:55,750 ดังนั้นสำหรับวงประกอบด้วย เริ่มต้นสภาพและ 1190 01:00:55,750 --> 01:00:58,950 การปรับปรุงเช่นเดียวกับที่เราเคยมีมาก่อน ในวงในขณะนี้ 1191 01:00:58,950 --> 01:00:59,890 ดังนั้นลองมาดู 1192 01:00:59,890 --> 01:01:02,900 ในวงในขณะนี้เรามี เริ่มต้นแล้วเรามี 1193 01:01:02,900 --> 01:01:04,260 สภาพที่เราตรวจสอบ 1194 01:01:04,260 --> 01:01:06,450 แล้วเรามีการปรับปรุง ขั้นตอนที่ด้านบน 1195 01:01:06,450 --> 01:01:10,060 >> ด้วยห่วงเพราะว่านี้โดยทั่วไปจะใช้เวลา สามสิ่งเหล่านี้และมันควบแน่น 1196 01:01:10,060 --> 01:01:11,370 ลงไปหนึ่งบรรทัด 1197 01:01:11,370 --> 01:01:15,130 ดังนั้นสิ่งแรกที่มันไม่ใน สำหรับวงคือการเริ่มต้น 1198 01:01:15,130 --> 01:01:19,090 แล้วคุณทำเครื่องหมายแล้ว ที่คุณทำเงื่อนไขซึ่งเป็นฉัน 1199 01:01:19,090 --> 01:01:22,200 มากกว่าศูนย์จะไปที่นั่น แล้วขั้นตอนการปรับปรุง 1200 01:01:22,200 --> 01:01:26,470 ดังนั้นนี้ได้รับการดำเนินการใน ปลายสุดของร่างกายห่วง 1201 01:01:26,470 --> 01:01:28,790 ดังนั้นทั้งสองโปรแกรมเป็น เทียบเท่าหลัก 1202 01:01:28,790 --> 01:01:31,960 1203 01:01:31,960 --> 01:01:33,870 >> คำถามใด? 1204 01:01:33,870 --> 01:01:37,000 ดังนั้นสิ่งที่เป็นหนึ่งในความแตกต่าง ระหว่างสองเหล่านี้หรือไม่ 1205 01:01:37,000 --> 01:01:38,000 ทุกคนสามารถชี้ออกมาได้ 1206 01:01:38,000 --> 01:01:40,480 มันอาจจะมีบิตที่ละเอียดอ่อน 1207 01:01:40,480 --> 01:01:41,930 มันเป็นเพียงความแตกต่างที่มีขนาดเล็กมาก 1208 01:01:41,930 --> 01:01:42,330 ใช่? 1209 01:01:42,330 --> 01:01:49,008 >> ลำโพง 5: คุณจะไม่สามารถที่จะใช้ ฉันตัวแปรนอกวงสำหรับ 1210 01:01:49,008 --> 01:01:49,962 [ไม่ได้ยิน]? 1211 01:01:49,962 --> 01:01:50,900 >> JOSEPH: แน่นอน 1212 01:01:50,900 --> 01:01:53,550 ดังนั้นนี่คือสิ่งที่เราจะได้รับ ภายหลังเรียกว่าขอบเขตตัวแปร 1213 01:01:53,550 --> 01:01:56,610 แต่เป็นหลักนี้ int ชีวิตของฉัน นอกวงในขณะนี้ 1214 01:01:56,610 --> 01:01:59,800 ดังนั้นเมื่อห่วงในขณะนี้จะทำ รันฉันจะสามารถที่จะใช้ผมมา 1215 01:01:59,800 --> 01:02:00,880 ในโปรแกรม 1216 01:02:00,880 --> 01:02:05,430 >> ในขณะที่มีนี้สำหรับวง, int นี้ฉัน มีการกำหนดขอบเขตภายในของนี้สำหรับวง 1217 01:02:05,430 --> 01:02:10,240 และเพราะมันเป็นภายในของส่วนนี้ ของวงสำหรับการที่จะเริ่มต้น 1218 01:02:10,240 --> 01:02:13,200 ที่วงเล็บและสิ้นสุดด้วย วงเล็บปีกกาที่นั่น 1219 01:02:13,200 --> 01:02:16,120 อะไรที่ประกาศภายใน ที่นี่จะไม่สามารถใช้นอก 1220 01:02:16,120 --> 01:02:20,420 ดังนั้นถ้าผมพยายามที่จะใช้ฉันออกไปข้างนอกก็จะ บอกฉันไม่ได้ประกาศสัญลักษณ์ 1221 01:02:20,420 --> 01:02:22,420 และเป็นหลักที่ผมจะไม่ สามารถที่จะใช้มัน 1222 01:02:22,420 --> 01:02:28,460 >> ROB: และดี 10 ปีที่แล้วใน แท้จริงทุกกรณีวงเล็บปีกกาเป็น 1223 01:02:28,460 --> 01:02:31,140 สิ่งที่คุณใช้ในการตรวจสอบ ขอบเขตของตัวแปร 1224 01:02:31,140 --> 01:02:37,240 ดังนั้นในมี int ฉันเท่ากับ 10 มีการประกาศภายในนี้ 1225 01:02:37,240 --> 01:02:38,520 ชุดของวงเล็บปีกกา 1226 01:02:38,520 --> 01:02:42,530 และอื่น ๆ จากนั้นตราบใดที่คุณพยายามที่จะใช้ฉัน ก่อนที่จะวงเล็บปีกกานี้ก็ปรับ 1227 01:02:42,530 --> 01:02:47,090 1228 01:02:47,090 --> 01:02:51,460 คุณอาจพบเมื่อคุณพิมพ์ให้คุณ เห็นรีบรีบคว่ำเท่ากับ c99 1229 01:02:51,460 --> 01:02:57,100 >> เพื่อให้เป็นรุ่นที่ใหม่กว่าของ C ที่ GCC ได้ดำเนินการที่ยังช่วยให้ 1230 01:02:57,100 --> 01:02:58,740 ทางลัดนี้ 1231 01:02:58,740 --> 01:03:03,505 เพื่อใช้ในการนี​​้ไม่ได้รับอนุญาตในซีและ คุณสามารถดูว่าทำไมเพราะ int นี้ 1232 01:03:03,505 --> 01:03:07,600 ผมอยู่นอกวงเล็บปีกกานี้ แต่ ก็ยังคงพิจารณาที่จะอยู่ใน 1233 01:03:07,600 --> 01:03:09,750 ขอบเขตของวงเล็บปีกกาเหล่านี้ 1234 01:03:09,750 --> 01:03:14,120 แต่นี้เป็นสิ่งที่สะดวกมาก และดังนั้นจึงเป็นส่วนขยายที่ดี 1235 01:03:14,120 --> 01:03:15,370 >> JOSEPH: คำถามที่ใด? 1236 01:03:15,370 --> 01:03:17,550 1237 01:03:17,550 --> 01:03:19,260 ตกลง 1238 01:03:19,260 --> 01:03:22,820 ดังนั้นสิ่งที่มีประโยชน์มากขึ้นคือบางครั้ง คุณต้องการที่เรียงลำดับของชีวิตชีวาใน 1239 01:03:22,820 --> 01:03:23,410 วงของคุณใช่ไหม 1240 01:03:23,410 --> 01:03:26,350 คุณไม่ต้องการเพียงแค่จำเป็นต้องพิมพ์ ทั้งหมดวงแหวนทุกเวลาที่คุณ 1241 01:03:26,350 --> 01:03:28,650 ต้องการที่จะนับถอยหลังจาก 10 หรือบางสิ่งบางอย่าง 1242 01:03:28,650 --> 01:03:32,010 และเพื่อให้คุณสามารถใช้ตัวแปรเคาน์เตอร์ ภายในวงที่ดี 1243 01:03:32,010 --> 01:03:35,530 และในกรณีนี้โปรแกรมนี้เพียงแค่ นับลงจาก 10 ตลอดทางลง 1244 01:03:35,530 --> 01:03:39,260 และสิ่งที่ไม่ได้ไม่พิมพ์? 1245 01:03:39,260 --> 01:03:42,790 มันไม่ได้พิมพ์เป็นศูนย์ ที่เหมาะสมเพราะเมื่อ - 1246 01:03:42,790 --> 01:03:45,460 ใช่มันยังไม่พิมพ์ 11 1247 01:03:45,460 --> 01:03:49,200 >> ดังนั้นจึงไม่พิมพ์เป็นศูนย์เพราะเมื่อ ฉันเป็นศูนย์จำมันประเมิน 1248 01:03:49,200 --> 01:03:52,170 สภาพก่อนที่จะไปอยู่กับ ที่จะดำเนินการร่างห่วง 1249 01:03:52,170 --> 01:03:56,820 และเมื่อฉันเป็นศูนย์นี้เป็นเท็จดังนั้น มันก็ไม่ได้พิมพ์ออกมานับถอยหลัง 1250 01:03:56,820 --> 01:04:00,200 ศูนย์ก็แค่พิมพ์ออกนับ ลดลง 10 ทั้งหมดทางลงไปที่ 1 1251 01:04:00,200 --> 01:04:03,420 ถ้าเราอยากให้มันเป็นจริงที่จะพิมพ์เป็นศูนย์ แล้วเราจะใส่เครื่องหมายเท่ากับ 1252 01:04:03,420 --> 01:04:04,750 หลังจากนี้เครื่องหมายมากกว่า 1253 01:04:04,750 --> 01:04:09,400 1254 01:04:09,400 --> 01:04:10,130 ตกลง 1255 01:04:10,130 --> 01:04:16,410 >> ดังนั้นวิธีหนึ่งที่จะทำเข้าตรวจสอบที่ คือเมื่อคุณขอให้ผู้ที่จะทำ 1256 01:04:16,410 --> 01:04:18,620 บางสิ่งบางอย่างที่คุณต้องการที่จะทำให้แน่ใจว่าพวกเขา ปฏิบัติตามคำแนะนำของคุณคือการใช้ 1257 01:04:18,620 --> 01:04:19,400 ในขณะที่ห่วงใช่มั้ย? 1258 01:04:19,400 --> 01:04:22,990 ดังนั้นในกรณีนี้โดยเฉพาะอย่างยิ่งที่ฉันขอ สำหรับจำนวนบวกและแล้วฉัน 1259 01:04:22,990 --> 01:04:23,810 รอสำหรับการป้อนข้อมูล 1260 01:04:23,810 --> 01:04:28,210 >> แล้วฉันจะตรวจสอบในขณะที่การเข้าเป็น น้อยกว่าศูนย์ให้ขอให้พวกเขา 1261 01:04:28,210 --> 01:04:32,100 ดังนั้นตราบใดที่พวกเขาให้ฉันหมายเลข ที่ไม่ได้บวกให้ถาม 1262 01:04:32,100 --> 01:04:33,600 ให้ถามให้ถาม 1263 01:04:33,600 --> 01:04:35,860 แต่สิ่งที่จัดเรียงของแปลกเกี่ยวกับเรื่องนี้ 1264 01:04:35,860 --> 01:04:38,570 หรือสิ่งที่ดูเหมือนจะไม่เกี่ยวกับการที่ดีที่สุด โครงสร้างนี้ที่นี่? 1265 01:04:38,570 --> 01:04:44,282 1266 01:04:44,282 --> 01:04:44,758 ใคร? 1267 01:04:44,758 --> 01:04:45,234 ใช่? 1268 01:04:45,234 --> 01:04:47,614 >> ลำโพง 6: คุณทำซ้ำ การเรียนการสอนครั้งที่สอง 1269 01:04:47,614 --> 01:04:48,100 >> JOSEPH ขวา 1270 01:04:48,100 --> 01:04:50,090 ดังนั้นเราจึงมีสองงบ printf ที่นี่ใช่ไหม 1271 01:04:50,090 --> 01:04:53,440 ดังนั้นไม่มีทางที่เราจะได้รับนี้ก็คือ ลงไปอย่างใดอย่างหนึ่งที่จะทำให้เรา 1272 01:04:53,440 --> 01:04:57,170 รหัสง่ายต่อการอ่านและ นิด ๆ หน่อย ๆ สะอาดมากขึ้น 1273 01:04:57,170 --> 01:05:00,180 แล้วเราจะได้ไม่ต้อง ได้รับในครั้งที่สองเช่นกัน 1274 01:05:00,180 --> 01:05:03,740 และวิธีหนึ่งที่คุณสามารถทำเช่นนี้คือ โดยใช้ห่วงทำ-ในขณะที่ 1275 01:05:03,740 --> 01:05:07,670 >> และทำห่วง-ในขณะที่เป็นพื้น รูปแบบที่แตกต่างกันของวงในขณะที่ 1276 01:05:07,670 --> 01:05:11,460 สิ่งที่อยู่ภายในวงเล็บปีกกา ได้รับการดำเนินการอย่างน้อยหนึ่งครั้ง 1277 01:05:11,460 --> 01:05:14,840 ดังนั้นในที่นี่ผมประกาศ, int ใส่ออกไปข้างนอกก่อน 1278 01:05:14,840 --> 01:05:18,100 แล้วผมก็บอกว่าทำเช่นนี้ การเรียนการสอนในขณะที่นำเข้า 1279 01:05:18,100 --> 01:05:19,140 มีค่าน้อยกว่าศูนย์ 1280 01:05:19,140 --> 01:05:20,530 ดังนั้นจึงนิยมทำครั้งแรก 1281 01:05:20,530 --> 01:05:24,190 มันจะดำเนินการอย่างน้อย ครั้งจึงมักจะขอให้ผู้ใช้ 1282 01:05:24,190 --> 01:05:25,960 สำหรับใส่อย่างน้อยหนึ่งครั้ง 1283 01:05:25,960 --> 01:05:29,390 และจากนั้นจะประเมินข้อมูลที่ และมันจะไปในวงกลม 1284 01:05:29,390 --> 01:05:30,135 มีคำถาม? 1285 01:05:30,135 --> 01:05:32,602 >> ลำโพง 6: มีวิธีที่จะทำมัน [ไม่ได้ยิน] ประเภทเช่นถ้าคุณจะพูดว่า 1286 01:05:32,602 --> 01:05:34,268 GetString และคน [ไม่ได้ยิน] 1287 01:05:34,268 --> 01:05:35,220 จะมีวิธีการ [ไม่ได้ยิน] 1288 01:05:35,220 --> 01:05:40,060 >> JOSEPH: ดังนั้นคำถามคือจะมี วิธีการทำเข้าตรวจสอบกรณีที่ผู้ใช้ 1289 01:05:40,060 --> 01:05:41,850 ไม่ได้ใส่ในสิทธิ ชนิดของตัวแปร? 1290 01:05:41,850 --> 01:05:44,460 ดังนั้นหากเราขอ int และพวกเขา ให้เราสตริงแทน 1291 01:05:44,460 --> 01:05:49,110 และฟังก์ชั่นที่เราใช้ สำหรับคุณ GetInt, GetString ในทุก 1292 01:05:49,110 --> 01:05:52,680 ฟังก์ชั่นเหล่านั้นพวกเขาเป็นจริงแล้ว จะเรียงลำดับของข้อมูลชนิดพื้นฐานที่ 1293 01:05:52,680 --> 01:05:54,120 การตรวจสอบภายใต้ประทุน 1294 01:05:54,120 --> 01:05:57,390 ดังนั้นถ้าคุณกำลังใช้ฟังก์ชั่นที่เรา ได้มอบให้คุณไม่ได้จริงๆต้อง 1295 01:05:57,390 --> 01:06:01,380 >> แต่ถ้าคุณต้องการที่จะดูมากขึ้นเป็นวิธีการ คุณจริงสามารถทำที่คุณสามารถดู 1296 01:06:01,380 --> 01:06:03,360 ภายใต้ประทุนที่ไฟล์ I/O-- 1297 01:06:03,360 --> 01:06:07,990 ไม่ได้ยื่น, ฟังก์ชั่น I / O มาตรฐาน เช่นการอ่านจากอินพุตมาตรฐานและ 1298 01:06:07,990 --> 01:06:08,580 ออกมาตรฐาน 1299 01:06:08,580 --> 01:06:10,630 และคุณจะได้รับความรู้สึกที่ดี วิธีการที่คุณอาจจะทำอย่างนั้น 1300 01:06:10,630 --> 01:06:13,670 >> ROB: หนึ่งในปัญหา แต่เป็นเฉพาะ กับตัวอย่างที่คุณ 1301 01:06:13,670 --> 01:06:17,070 กล่าวว่าที่คุณคาดหวังสตริง และฉันป้อน int 1302 01:06:17,070 --> 01:06:20,110 วิธีที่คุณจะบอกความแตกต่าง ระหว่างเจตนาที่ต้องการ 1303 01:06:20,110 --> 01:06:23,130 สาย 123 เมื่อเทียบกับที่ต้องการ int 123? 1304 01:06:23,130 --> 01:06:29,230 ดังนั้นสตริงก็สวยมากไม่มี การตรวจสอบเป็นเพียงสิ่งที่พวกเขา 1305 01:06:29,230 --> 01:06:31,600 เข้ามาคุณจะตีความ เป็นสตริง 1306 01:06:31,600 --> 01:06:35,790 >> int จะง่ายเพราะไม่ว่า ข้อมูลที่คุณจะใช้จากผู้ใช้ที่คุณมี 1307 01:06:35,790 --> 01:06:37,470 เสมอการสตริง 1308 01:06:37,470 --> 01:06:40,650 และเพื่อให้สตริงที่คุณสามารถแล้ว ตรวจสอบมีทั้งหมดของเหล่านี้ 1309 01:06:40,650 --> 01:06:44,218 หลักตัวเลขจริง 1310 01:06:44,218 --> 01:06:45,170 >> JOSEPH: OK 1311 01:06:45,170 --> 01:06:46,420 คำถามใด ๆ เกี่ยวกับการทำวง-ในขณะที่? 1312 01:06:46,420 --> 01:06:49,170 >> ROB: Oh, และนี้ยัง - 1313 01:06:49,170 --> 01:06:55,130 จะกลับไปขอบเขตค่อนข้างทั่วไป ความผิดพลาดที่พยายามที่จะใช้บางท้องถิ่น 1314 01:06:55,130 --> 01:06:59,540 ตัวแปรจากภายในนี้ทำ-ในขณะที่ วงในของสภาพนี้ 1315 01:06:59,540 --> 01:07:02,850 และอันที่จริงถ้าเราเพียงแค่ได้กำจัด นี้และกล่าวว่าเข้า int เท่ากับ 1316 01:07:02,850 --> 01:07:06,990 GetInt แล้วคอมไพเลอร์จะตะโกนใส่ เราเพราะท่านไม่อยู่ 1317 01:07:06,990 --> 01:07:08,900 นอกขอบเขตของ วงเล็บปีกกาเหล่านี้ 1318 01:07:08,900 --> 01:07:10,792 >> JOSEPH: และที่ว่าทำไมเรา ต้องการผู้เล่นตัวจริงที่นี่ 1319 01:07:10,792 --> 01:07:13,620 1320 01:07:13,620 --> 01:07:14,630 ตกลง 1321 01:07:14,630 --> 01:07:17,530 เพื่อให้คุณยังสามารถแยกออกจาก วงแรกถ้าคุณต้องการที่จะ 1322 01:07:17,530 --> 01:07:21,240 ดังนั้นนี้เป็นวิธีที่แตกต่างกันของ การดำเนินการเพียงแค่สิ่งที่เราดำเนินการ 1323 01:07:21,240 --> 01:07:24,340 และแทนการใช้เงื่อนไข ในวงเล็บที่เรากำลังใช้ 1324 01:07:24,340 --> 01:07:26,920 ถ้ามีคำสั่งภายในของร่างกาย ของวงที่ต้องทำ-ในขณะที่ 1325 01:07:26,920 --> 01:07:30,000 >> และโดยทั่วไปเมื่อเข้าเป็นที่สุด มากกว่าศูนย์เราจะ 1326 01:07:30,000 --> 01:07:31,000 แยกออกจากวง 1327 01:07:31,000 --> 01:07:33,420 และเพื่อให้เราจะไปทั้งหมด ทางลงที่นี่ 1328 01:07:33,420 --> 01:07:37,920 และคุณจะเห็นว่าจะนี้ อาจจะเป็นที่ต้องการในเรื่องนี้ 1329 01:07:37,920 --> 01:07:39,870 สถานการณ์เพราะมันเล็ก ๆ น้อย ๆ ทำความสะอาดบิตและน้อย 1330 01:07:39,870 --> 01:07:41,380 บิตง่ายต่อการอ่าน 1331 01:07:41,380 --> 01:07:45,210 ขณะนี้คุณเรียงลำดับของ มีสายพิเศษอยู่ในนั้น 1332 01:07:45,210 --> 01:07:47,890 มันก็แค่นิด ๆ หน่อย ๆ ไม่สวยงามเท่า, ผมคิดว่าในความรู้สึก 1333 01:07:47,890 --> 01:07:48,530 มีคำถาม? 1334 01:07:48,530 --> 01:07:52,178 >> ลำโพง 4: จะทำลายเพียง แต่ได้รับ คุณออกจากหนึ่งชุดของการจัดฟัน 1335 01:07:52,178 --> 01:07:53,080 >> JOSEPH ขวา 1336 01:07:53,080 --> 01:07:58,100 ดังนั้นคำถามคือจะทำลายเพียง รับคุณออกจากหนึ่งในวง? 1337 01:07:58,100 --> 01:07:59,280 และคำตอบคือใช่ 1338 01:07:59,280 --> 01:08:04,290 ดังนั้นถ้าคุณได้ซ้อนกันสำหรับลูปสำหรับ ตัวอย่างเช่นถ้าฉันมีสำหรับฉัน int เท่ากับ 0 1339 01:08:04,290 --> 01:08:09,040 จนถึง 10 แล้วสำหรับ int J เท่ากับ 0 จนถึง 10 ถ้าผมแยกออกจากด้านใน 1340 01:08:09,040 --> 01:08:12,310 วงก็ยังจะไป ห่วงด้านนอก 1341 01:08:12,310 --> 01:08:15,760 ดังนั้นมันจะเก็บที่มีประสิทธิภาพ การดำเนินงานที่อยู่ข้างนอก 1342 01:08:15,760 --> 01:08:17,640 คำถามใด ๆ เกี่ยวกับที่ 1343 01:08:17,640 --> 01:08:18,000 ใช่? 1344 01:08:18,000 --> 01:08:21,760 >> ลำโพง 5: ทำลาย แต่เพียงฟังก์ชั่น วงเล็บปีกกาเพื่อไม่ให้คนอื่น ๆ 1345 01:08:21,760 --> 01:08:22,230 งบ? 1346 01:08:22,230 --> 01:08:22,700 [ไม่ได้ยิน] 1347 01:08:22,700 --> 01:08:27,620 >> JOSEPH: ดังนั้นคำถามคือจะทำลาย ฟังก์ชั่นสำหรับลูปเป็นนอกคอก 1348 01:08:27,620 --> 01:08:29,014 งบอื่น ๆ เช่นถ้า? 1349 01:08:29,014 --> 01:08:32,950 และใช่เป็นกรณีที่เพราะ คุณกำลังทำลายออกจากวงขวา 1350 01:08:32,950 --> 01:08:33,630 ในความรู้สึก 1351 01:08:33,630 --> 01:08:37,215 >> ROB: ในส่วนใหญ่ของกรณีก็ นี้เป็นประเภทถ้าบางสิ่งบางอย่าง 1352 01:08:37,215 --> 01:08:37,660 แล้วหยุดพัก 1353 01:08:37,660 --> 01:08:41,580 ดังนั้นคุณจึงไม่ต้องแบ่งที่จะนำไปใช้กับ ถ้าที่ห่อรอบ 1354 01:08:41,580 --> 01:08:45,250 และยังเป็นไม่มากของห่วง แต่จำไว้ว่ายังมีสวิทช์ 1355 01:08:45,250 --> 01:08:46,340 แตกออกโดยแบ่ง 1356 01:08:46,340 --> 01:08:48,390 เราเห็นการแบ่งการใช้ ด้วยสวิทช์ก่อน 1357 01:08:48,390 --> 01:08:52,189 >> JOSEPH: และคุณยังสามารถใช้พวกเขา ในขณะที่ลูปและสำหรับลูป 1358 01:08:52,189 --> 01:08:54,560 คำถามใด? 1359 01:08:54,560 --> 01:08:55,830 ตกลง 1360 01:08:55,830 --> 01:08:57,779 ขึ้นดังนั้นต่อไปคือฟังก์ชั่น 1361 01:08:57,779 --> 01:09:01,500 ดังนั้นคุณอาจมีการใช้อย่างใดอย่างหนึ่งเหล่านี้ BYOB บล็อกในโครงการ Scratch ของคุณ 1362 01:09:01,500 --> 01:09:04,569 และนี้โดยทั่วไปจะช่วยให้ คุณสามารถกำหนดชุดของ 1363 01:09:04,569 --> 01:09:05,680 คำแนะนำที่จะปฏิบัติตาม 1364 01:09:05,680 --> 01:09:09,569 >> และสิ่งที่ฉันหมายความโดยที่เราคิด กลับไปที่คณิตศาสตร์ขวาพีชคณิต 1365 01:09:09,569 --> 01:09:13,370 คุณมีสิ่งที่เราเรียกฟังก์ชั่นของ x, ตัวแปรบางอย่างและขอพูดแบบนี้ 1366 01:09:13,370 --> 01:09:16,080 ฟังก์ชัน f ของ x เท่ากับ x บวก 5 1367 01:09:16,080 --> 01:09:20,410 เพื่อให้คุณสามารถคิด f ของ x เป็นสีดำนี้ กล่องที่ใช้เวลา 15 ในแล้ว 1368 01:09:20,410 --> 01:09:22,590 ผลิต 20 1369 01:09:22,590 --> 01:09:26,630 >> ดังนั้นโดยทั่วไปฟังก์ชั่นเป็น บางสิ่งบางอย่างที่ต้องใช้ปัจจัยการผลิตบางส่วนและ 1370 01:09:26,630 --> 01:09:27,880 แล้วก่อให้เกิดผลบางอย่าง 1371 01:09:27,880 --> 01:09:31,920 1372 01:09:31,920 --> 01:09:32,960 และเหตุผลที่ฟังก์ชั่นที่ดี? 1373 01:09:32,960 --> 01:09:35,189 พวกเขากำลังดีสำหรับจำนวนเหตุผล 1374 01:09:35,189 --> 01:09:40,470 ดังนั้นคนที่ไม่ต้องการที่จะใช้แทง สิ่งที่องค์กรหมายถึง 1375 01:09:40,470 --> 01:09:42,630 ในแง่ของเหตุผลที่ฟังก์ชั่นที่เป็นประโยชน์หรือไม่ 1376 01:09:42,630 --> 01:09:43,090 ใช่? 1377 01:09:43,090 --> 01:09:44,735 >> ลำโพง 4: มันทำให้คุณ รหัสที่อ่านได้มากขึ้น 1378 01:09:44,735 --> 01:09:45,399 >> JOSEPH ขวา 1379 01:09:45,399 --> 01:09:47,670 ดังนั้นหนึ่งในสิ่งที่เป็นก็จะทำให้ รหัสของคุณอ่านได้มากขึ้นใช่ไหม 1380 01:09:47,670 --> 01:09:53,710 แทนที่จะต้องเช่น int x เท่ากับ x ครั้ง x x ครั้งผมสามารถมีก้อนของ x 1381 01:09:53,710 --> 01:09:57,190 ซึ่งเป็นอะไรที่สามารถอ่านได้และอื่น ๆ การอ่านเข้าใจ 1382 01:09:57,190 --> 01:10:01,150 >> องค์กรยังอยู่ในแง่ของการ แยกรหัสของคุณลงในการจัดการ 1383 01:10:01,150 --> 01:10:05,610 ส่วนเพื่อให้แทนการพยายามที่จะ ดำเนินการนี​​้ทั้งหมดในส่วนหนึ่งยาว 1384 01:10:05,610 --> 01:10:09,070 ในหลักคุณสามารถเรียงลำดับของการแยกขึ้น เป็นเหมือนตกลงให้เขียนฟังก์ชั่น 1385 01:10:09,070 --> 01:10:11,910 ลูกบาศก์สิ่งที่ให้เขียน ทำงานตารางบางสิ่งบางอย่าง 1386 01:10:11,910 --> 01:10:15,950 วิธีการที่คุณสามารถแยกมันออกเป็นขนาดเล็ก ชิ้นส่วนเล็ก ๆ น้อย ๆ ที่คุณสามารถจัดการได้ 1387 01:10:15,950 --> 01:10:18,944 ตรงข้ามกับการพยายามที่จะแก้ไขปัญหา เป็นปัญหาใหญ่ทั้งหมดในครั้งเดียว 1388 01:10:18,944 --> 01:10:21,806 >> ROB: หรือแม้แต่เล็ก ๆ ชิ้นส่วนเล็ก ๆ ที่ คุณและคู่สามารถจัดการได้ 1389 01:10:21,806 --> 01:10:22,283 >> JOSEPH: ใช่ 1390 01:10:22,283 --> 01:10:23,855 >> ROB: ดังนั้นแทนที่จะทั้งสอง คุณพยายามที่จะปลูกฝังหนึ่ง 1391 01:10:23,855 --> 01:10:27,170 ฟังก์ชั่นในเวลาเดียวกัน 1392 01:10:27,170 --> 01:10:28,800 >> JOSEPH: เข้าใจง่าย 1393 01:10:28,800 --> 01:10:30,050 ทุกคนต้องการที่จะคาดเดาได้หรือไม่ 1394 01:10:30,050 --> 01:10:33,080 1395 01:10:33,080 --> 01:10:33,410 ใช่? 1396 01:10:33,410 --> 01:10:34,675 >> ลำโพง 5: ซ้ำอีก 1397 01:10:34,675 --> 01:10:35,260 >> JOSEPH ขวา 1398 01:10:35,260 --> 01:10:39,210 ดังนั้นสิ่งหนึ่งที่คุณสามารถทำอะไรกับ ทำให้เข้าใจง่ายก็คือว่ามันเกี่ยวกับการจัดเรียงของ 1399 01:10:39,210 --> 01:10:42,520 สายเดียวกับการใช้งานอีกครั้งก็คือ เมื่อฉันเขียนฟังก์ชันลูกบาศก์ฉันสามารถ 1400 01:10:42,520 --> 01:10:45,410 เพียงแค่ใช้ว่ามีมากกว่าและเหนือและมากกว่า อีกครั้งในโปรแกรมของฉันแทนการพิมพ์ 1401 01:10:45,410 --> 01:10:49,610 ครั้ง x x x ครั้งกว่าและ ครั้งแล้วครั้งเล่า 1402 01:10:49,610 --> 01:10:52,980 และความเรียบง่ายที่นี่ก็เป็นเพียงแค่ หมายความว่ามันจะทำให้การจัดเรียงของรหัสของคุณ 1403 01:10:52,980 --> 01:10:55,900 ง่ายต่อการแก้ปัญหาเมื่อคุณแยก นี้ขึ้นเป็นฟังก์ชั่น 1404 01:10:55,900 --> 01:10:58,250 แล้วเพราะคุณสามารถ จำกัด วงที่ ปัญหาของคุณเรียงลำดับของการเป็น 1405 01:10:58,250 --> 01:11:00,910 1406 01:11:00,910 --> 01:11:02,160 คำถามใด? 1407 01:11:02,160 --> 01:11:04,200 1408 01:11:04,200 --> 01:11:06,540 >> ดังนั้นความคิดที่เป็นนามธรรมอื่นใช่ไหม 1409 01:11:06,540 --> 01:11:07,390 กล่องดำนี้ 1410 01:11:07,390 --> 01:11:11,360 เช่นเดียวกับที่คุณรู้ว่าสิ่งที่ GetInt ไม่ จะได้รับการป้อนข้อมูลจากผู้ใช้หรือไม่ 1411 01:11:11,360 --> 01:11:12,510 เราไม่ได้บอกคุณจริงๆใช่มั้ย 1412 01:11:12,510 --> 01:11:15,670 ทั้งหมดที่เราได้บอกคุณเป็น GetInt ไม่ ว่าสิ่งที่มันบอกว่ามันไม่ 1413 01:11:15,670 --> 01:11:18,440 ดังนั้นแม้ว่าเราจะไม่บอกคุณว่า มันทำงานคุณยังรู้ 1414 01:11:18,440 --> 01:11:21,670 >> ดังนั้นในกรณีนี้โดยเฉพาะอย่างยิ่งนี้ ฟังก์ชั่นที่ไม่สี่เท่า 1415 01:11:21,670 --> 01:11:24,520 สิ่งที่แตกต่างที่จะนำเข้า การผลิตการส่งออก 1416 01:11:24,520 --> 01:11:28,050 และคุณสามารถสี่เท่าจำนวน โดยคูณด้วยสี่ 1417 01:11:28,050 --> 01:11:30,790 หรือคุณสามารถสิ่งที่เราเรียก บิตเปลี่ยนมันสอง 1418 01:11:30,790 --> 01:11:32,960 และเราจะครอบคลุมถึงนี้ นิด ๆ หน่อย ๆ ในภายหลัง 1419 01:11:32,960 --> 01:11:36,570 และมีความจำเป็นที่จะต้องรู้วิธีนี้ ฟังก์ชั่นใช้งานได้จริงตราบใดที่มัน 1420 01:11:36,570 --> 01:11:37,640 ทำงานตามที่ระบุไว้ 1421 01:11:37,640 --> 01:11:40,740 >> ดังนั้นภายใต้ประทุน, ฉันอาจจะ เหมือนกลับมาครั้งเข้า 1422 01:11:40,740 --> 01:11:41,690 แปดหารสอง 1423 01:11:41,690 --> 01:11:42,510 และคุณจะไม่ทราบใช่ไหม 1424 01:11:42,510 --> 01:11:44,970 ทั้งหมดที่คุณต้องรู้คือ มันไม่สิ่งที่กล่าวว่า 1425 01:11:44,970 --> 01:11:48,070 เพื่อให้เป็นสิ่งที่มีประโยชน์ เกี่ยวกับสิ่งที่เป็นนามธรรม 1426 01:11:48,070 --> 01:11:52,910 >> และอีกสิ่งหนึ่งที่เป็นประเภทของความคิดนี้ ของ localizing รหัสของคุณให้เป็นหนึ่งใน 1427 01:11:52,910 --> 01:11:54,280 ส่วนโดยเฉพาะอย่างยิ่ง 1428 01:11:54,280 --> 01:11:57,450 ดังนั้นถ้าคุณมีปัญหาที่คุณทำไม่ได้ ต้องไปทั่วรหัสของคุณพยายาม 1429 01:11:57,450 --> 01:11:58,730 ในการแก้ไขปัญหาที่เป็น 1430 01:11:58,730 --> 01:12:00,990 ดังนั้นในกรณีนี้ผมดำเนินการ ผิดลูกบาศก์ 1431 01:12:00,990 --> 01:12:02,820 ผมคิดว่าเป็นก้อนคูณ โดยสาม 1432 01:12:02,820 --> 01:12:05,760 >> ดังนั้นในกรณีนี้เป็นโปรแกรมหนึ่ง ที่เพิ่งได้คูณด้วยสาม 1433 01:12:05,760 --> 01:12:06,750 ทุกที่ 1434 01:12:06,750 --> 01:12:10,910 และมีโปรแกรมที่มีอีก ก้อนปัจจัยออกไปในฟังก์ชั่น 1435 01:12:10,910 --> 01:12:14,040 และอื่น ๆ ตอนนี้ถ้าผมต้องการที่จะแก้ไขความผิดพลาดของฉัน ที่นี่ผมมีการแก้ไขบรรทัดเดียวทุก 1436 01:12:14,040 --> 01:12:15,620 ของรหัสในโปรแกรมนี้ 1437 01:12:15,620 --> 01:12:19,190 ในขณะที่ในทางกลับกันถ้าผมใช้ ฟังก์ชั่นที่ผมจะต้องเปลี่ยน 1438 01:12:19,190 --> 01:12:20,650 สิ่งที่เป็นความผิดในสถานที่หนึ่ง 1439 01:12:20,650 --> 01:12:25,330 1440 01:12:25,330 --> 01:12:28,730 >> ดังนั้นในด้านวิทยาศาสตร์คอมพิวเตอร์เรา เรียกปัจจัยการผลิตและผลผลิต 1441 01:12:28,730 --> 01:12:31,640 ปัจจัยการผลิตที่เรียกว่าพารามิเตอร์หรือ ข้อโต้แย้งและผลที่เรียกว่า 1442 01:12:31,640 --> 01:12:32,950 ค่าตอบแทน 1443 01:12:32,950 --> 01:12:39,000 และเราจะเห็นวิธีการนี​​้จะช่วยให้เราจัดเรียง ของกำหนดฟังก์ชั่นในครั้งที่สอง 1444 01:12:39,000 --> 01:12:41,430 ดังนั้นนี่คือความหมายของฟังก์ชั่น เพื่อ Cubing 1445 01:12:41,430 --> 01:12:45,110 ดังนั้นจึงจะเข้าแล้ว มันกลับมาที่จำนวนครั้ง 1446 01:12:45,110 --> 01:12:47,020 ตัวเองสามครั้ง 1447 01:12:47,020 --> 01:12:48,020 เพื่อขอทำลายลงนี้ 1448 01:12:48,020 --> 01:12:53,090 >> ดังนั้นเราจึงมีส่วนหัวของฟังก์ชั่นที่ โดยทั่วไปประกอบด้วยสามสิ่ง 1449 01:12:53,090 --> 01:12:56,050 ดังนั้นเราจึงมีพารามิเตอร์ที่ เป็นที่ผมกล่าวว่าก่อนหน้านี้ 1450 01:12:56,050 --> 01:12:57,680 ปัจจัยการผลิตในการทำงานนี้ 1451 01:12:57,680 --> 01:12:59,300 แล้วเราจะให้ฟังก์ชั่นชื่อ 1452 01:12:59,300 --> 01:13:00,740 ในกรณีนี้ก็เรียกว่าก้อน 1453 01:13:00,740 --> 01:13:03,860 แล้วเราระบุสิ่งที่ประเภท ค่าตอบแทนเ​​ป็น 1454 01:13:03,860 --> 01:13:06,760 >> ดังนั้นในกรณีนี้ฟังก์ชั่นที่สามของฉัน จะใช้เวลาในจำนวนเต็มและมันก็ยัง 1455 01:13:06,760 --> 01:13:07,890 กลับจำนวนเต็ม 1456 01:13:07,890 --> 01:13:11,510 ดังนั้นถ้าผมผ่านในสองสองเป็นจำนวนเต็ม มันกลับแปดกับผมซึ่ง 1457 01:13:11,510 --> 01:13:13,250 เป็นจำนวนเต็ม 1458 01:13:13,250 --> 01:13:15,420 ดังนั้นกลับชนิดพารามิเตอร์ชื่อ 1459 01:13:15,420 --> 01:13:16,670 คำถามที่เกี่ยวกับว่า 1460 01:13:16,670 --> 01:13:19,440 1461 01:13:19,440 --> 01:13:24,230 >> แล้วค่าตอบแทนที่เป็นจริง ที่ระบุไว้ในตอนท้ายด้วยการบอกว่าการกลับมา 1462 01:13:24,230 --> 01:13:27,540 แล้วกลับสิ่งที่ มีค่าตอบแทน 1463 01:13:27,540 --> 01:13:30,940 ดังนั้นในกรณีนี้ถ้าเราวางไว้ พร้อมฟังก์ชั่นใช้เวลาใน 1464 01:13:30,940 --> 01:13:35,100 พารามิเตอร์ก็เรียกว่าอะไรและ มันกลับเป็นสิ่งที่เป็นประเภท 1465 01:13:35,100 --> 01:13:36,350 ที่เราบอกว่ามันเป็นไปได้ 1466 01:13:36,350 --> 01:13:39,830 1467 01:13:39,830 --> 01:13:41,080 คำถามใด? 1468 01:13:41,080 --> 01:13:43,710 1469 01:13:43,710 --> 01:13:45,080 >> ดังนั้นทำอย่างไรเราใช้ฟังก์ชั่นหรือไม่ 1470 01:13:45,080 --> 01:13:49,230 ดีที่เราเขียนฟังก์ชั่นแล้ว เราใช้มันในโปรแกรมของเราใช่ไหม 1471 01:13:49,230 --> 01:13:51,565 ดังนั้นผมจึงเรียกมันว่าก้อนและ แล้วฉันจะใช้ก้อน 1472 01:13:51,565 --> 01:13:54,200 >> แต่สิ่งที่สำคัญที่ควรทราบ คือเรื่องการสั่งซื้อ 1473 01:13:54,200 --> 01:13:58,100 ถ้ามีก้อนด้านล่างหลักก็ จะใช้เป็นก้อน 1474 01:13:58,100 --> 01:14:00,360 และที่จุดนี้ไม่มีอะไร เรียกว่าก้อนในโปรแกรมและก็ 1475 01:14:00,360 --> 01:14:02,550 ก็จะเป็นเหมือนผมมี ความคิดว่าเป็นก้อน 1476 01:14:02,550 --> 01:14:05,060 >> ดังนั้นมันจะบอกคุณนัย การประกาศของฟังก์ชั่น 1477 01:14:05,060 --> 01:14:06,690 นั่นเป็นข้อผิดพลาดที่แสดงขึ้น 1478 01:14:06,690 --> 01:14:10,230 และอื่น ๆ ในกรณีนี้ก้อนอยู่ด้านล่าง หลักจึงจะไม่เกิด 1479 01:14:10,230 --> 01:14:12,006 รู้เกี่ยวกับมัน 1480 01:14:12,006 --> 01:14:14,724 >> ลำโพง 5: ดังนั้นที่สำคัญคือมักจะ ฟังก์ชั่นล่าสุดที่กำหนด? 1481 01:14:14,724 --> 01:14:17,290 >> JOSEPH: ดังนั้นคำถามคือ เป็นหลักโดยปกติท​​ี่ผ่านมา 1482 01:14:17,290 --> 01:14:18,170 สิ่งที่คุณต้องการกำหนด? 1483 01:14:18,170 --> 01:14:19,730 และไม่มี 1484 01:14:19,730 --> 01:14:22,280 มันเป็นเพราะเรามักจะชอบหลัก ที่จะเป็นที่ด้านบนขวา 1485 01:14:22,280 --> 01:14:24,640 เพราะนั่นคือสิ่งแรกที่คุณ ต้องการโปรแกรมเปิด 1486 01:14:24,640 --> 01:14:25,640 โปรแกรมที่จะเห็น 1487 01:14:25,640 --> 01:14:29,950 ดังนั้นทำอย่างไรเราแก้ปัญหาของเรานี้ ต้องการหลักที่จะเป็นที่ด้านบน แต่ 1488 01:14:29,950 --> 01:14:33,750 ฟังก์ชั่นที่เราต้องการเราต้องการให้พวกเขา จะต่ำกว่าหลักยังสามารถที่จะใช้ 1489 01:14:33,750 --> 01:14:34,930 พวกเขาภายในของหลัก? 1490 01:14:34,930 --> 01:14:36,870 >> ดีที่เราใช้สิ่งที่เราเรียก ต้นแบบฟังก์ชั่น 1491 01:14:36,870 --> 01:14:40,830 ดังนั้นสิ่งที่ฟังก์ชั่นเป็นหลักต้นแบบ เป็นที่จะต้องใช้สิ่งที่แรก 1492 01:14:40,830 --> 01:14:45,060 ลายเซ็นหรือส่วนหัวของฟังก์ชัน ของสิ่งที่เราต้องการที่จะใช้ลง 1493 01:14:45,060 --> 01:14:47,420 ที่นี่และเราวางไว้ที่ ด้านบนของโปรแกรม 1494 01:14:47,420 --> 01:14:51,400 >> ดังนั้นในกรณีนี้เราบอกว่าดี ต่อมาในโปรแกรมของเราที่เรากำลังจะ 1495 01:14:51,400 --> 01:14:55,010 เพื่อให้สัญญาว่าจะดำเนินการนี​​้ ฟังก์ชั่นที่เรียกว่าลูกบาศก์ int ซึ่งจะใช้เวลา 1496 01:14:55,010 --> 01:14:56,260 ใส่จำนวนเต็ม 1497 01:14:56,260 --> 01:15:00,870 ดังนั้นตอนนี้เพราะที่อยู่เหนือหลัก หลักก็จะบอกว่าโอ้ดี 1498 01:15:00,870 --> 01:15:03,910 ต่อมาในโปรแกรมที่เป็นไปได้ มีเพื่อให้สามารถอ้างถึงมันดังนั้นฉันจะ 1499 01:15:03,910 --> 01:15:05,230 เพียงแค่ให้มันผ่านไปสำหรับตอนนี้ 1500 01:15:05,230 --> 01:15:07,660 >> และจากนั้นที่ด้านล่าง เราใช้ก้อน 1501 01:15:07,660 --> 01:15:11,180 แล้วที่สำคัญก็จะพูดว่า ดีก็จะเรียงลำดับของการเชื่อมโยง 1502 01:15:11,180 --> 01:15:12,250 ทั้งสองสัญลักษณ์ร่วมกัน 1503 01:15:12,250 --> 01:15:14,320 และเราจะครอบคลุมสิ่งที่ หมายถึงในภายหลัง 1504 01:15:14,320 --> 01:15:17,090 และดังนั้นจึงจะรู้ว่านี่คือ ฟังก์ชั่นที่สามว่ามันควรจะใช้ 1505 01:15:17,090 --> 01:15:19,630 1506 01:15:19,630 --> 01:15:23,383 >> ROB: [ไม่ได้ยิน] เรื่องความต้องการ หลักที่ด้านล่างหรือ 1507 01:15:23,383 --> 01:15:24,880 ด้านบนฉันได้เห็นทั้ง 1508 01:15:24,880 --> 01:15:28,630 มีสิ่งที่ชอบเพียง จะนำหลักที่ด้านล่าง 1509 01:15:28,630 --> 01:15:32,520 แต่เมื่อโครงการได้รับโดยเฉพาะอย่างยิ่ง ใหญ่มักจะอยู่ในหลัก 1510 01:15:32,520 --> 01:15:34,290 ไฟล์ทั้งหมดของตัวเอง 1511 01:15:34,290 --> 01:15:38,170 และที่จุดนั้นเช่น สาย int จะลูกบาศก์ - 1512 01:15:38,170 --> 01:15:42,460 ภายในของ stdio.h เป็นพวง ของสายเช่นเดียวกับ int ที่ 1513 01:15:42,460 --> 01:15:44,010 สายใส่ก้อน int 1514 01:15:44,010 --> 01:15:50,170 >> และเพื่อให้ต้นแบบเหล่านั้นเป็นสิ่งที่คุณ มีแนวโน้มที่จะใส่ลงไปในส่วนหัวของไฟล์ที่ 1515 01:15:50,170 --> 01:15:52,140 จุดที่มันไม่สำคัญ 1516 01:15:52,140 --> 01:15:54,700 ดีก็ไม่สำคัญ 1517 01:15:54,700 --> 01:15:56,070 ผู้ที่เสมอไปที่ด้านบน 1518 01:15:56,070 --> 01:15:59,490 และหากที่สำคัญคือไม่ได้ไฟล์ทั้งหมดของตัวเองที่ คุณไม่ต้องกังวลเกี่ยวกับการวาง 1519 01:15:59,490 --> 01:16:02,360 ต้นแบบการทำงานของแต่ละบุคคล ในแฟ้ม 1520 01:16:02,360 --> 01:16:05,370 >> JOSEPH: แล้วเราจะไปที่น้อย บิตต่อมาเมื่อร็อบเริ่มพูด 1521 01:16:05,370 --> 01:16:06,380 เกี่ยวกับการรวบรวม 1522 01:16:06,380 --> 01:16:09,480 และอื่น ๆ นอกจากนี้ยังมีความแตกต่าง ระหว่างพารามิเตอร์และอาร์กิวเมนต์ 1523 01:16:09,480 --> 01:16:12,500 และพารามิเตอร์เป็นเพียงสิ่งที่ ที่เราเรียกว่าปัจจัยการผลิตเหล่านี้เมื่อ 1524 01:16:12,500 --> 01:16:13,820 เรากำหนดฟังก์ชั่น 1525 01:16:13,820 --> 01:16:16,950 และเราเรียกว่าอาร์กิวเมนต์เมื่อเรา จริงผ่านมันในการทำงาน 1526 01:16:16,950 --> 01:16:19,600 >> ดังนั้นในกรณีนี้เป็นพารามิเตอร์ ในขณะที่เรากล่าวว่าก่อนที่จะ 1527 01:16:19,600 --> 01:16:24,130 และเมื่อเราใช้งานจริงที่นั่น ลูกบาศก์ของ x x แล้วตัวเองเป็น 1528 01:16:24,130 --> 01:16:25,910 สิ่งที่เราเรียกการโต้แย้ง กับฟังก์ชั่นก้อน 1529 01:16:25,910 --> 01:16:28,150 >> ROB: ดังนั้นข้อโต้แย้งที่เป็นพารามิเตอร์ - 1530 01:16:28,150 --> 01:16:33,270 มีความแตกต่างนี้มาก สับสนสลับกัน 1531 01:16:33,270 --> 01:16:37,090 ณ จุดนี้ผมก็ชอบอย่างใดอย่างหนึ่ง คำพูดเหล่านั้นว่าเมื่อฉันเห็นมันออกมาใน 1532 01:16:37,090 --> 01:16:41,190 ป่าที่ฉันไม่สามารถช่วย แต่ทันที คำถามที่ว่าพวกเขาจะใช้มันใน 1533 01:16:41,190 --> 01:16:44,120 บริบทที่ถูกต้องเพราะ ความแตกต่างที่ละเอียดอ่อนพอที่จะเพียงแค่ 1534 01:16:44,120 --> 01:16:45,500 ทุกคนมีแนวโน้มที่ - 1535 01:16:45,500 --> 01:16:48,530 ฉันมักจะบอกว่าการโต้แย้ง โดยไม่คำนึงถึงสิ่งที่ผมหมายถึง 1536 01:16:48,530 --> 01:16:51,230 1537 01:16:51,230 --> 01:16:54,630 >> JOSEPH: และฟังก์ชั่นยังมีประโยชน์ สำหรับสิ่งที่เราเรียกว่าผลข้างเคียง 1538 01:16:54,630 --> 01:16:59,230 ดังนั้นฟังก์ชั่นสามารถใช้ปัจจัยการผลิตที่ไม่มีและ มันยังสามารถผลิตไม่มีผล 1539 01:16:59,230 --> 01:17:03,280 ดังนั้นในกรณีนี้โดยเฉพาะอย่างยิ่งผม กำหนดย่อยที่ไม่มี 1540 01:17:03,280 --> 01:17:03,970 ค่าตอบแทน 1541 01:17:03,970 --> 01:17:07,730 และเพื่อที่จะระบุว่าเราจะใช้ สิ่งที่เราเรียกเป็นโมฆะกว่าที่นี่ 1542 01:17:07,730 --> 01:17:10,890 และอื่น ๆ ผลข้างเคียงของฟังก์ชั่นนี้ คือว่ามันเป็นเพียงแค่พิมพ์สิ่งที่ 1543 01:17:10,890 --> 01:17:11,920 ออกไปที่หน้า 1544 01:17:11,920 --> 01:17:13,840 มันไม่ได้ใช้เวลาจริงใด ๆ ปัจจัยการผลิตและมันไม่ได้ 1545 01:17:13,840 --> 01:17:15,360 จริงผลิตออกใด ๆ 1546 01:17:15,360 --> 01:17:18,230 >> แต่นี้อาจจะมีประโยชน์ในแง่ที่ ถ้าคุณต้องการที่จะยกตัวอย่างเช่นการแก้ปัญหา 1547 01:17:18,230 --> 01:17:21,530 บางสิ่งบางอย่างในโปรแกรมของคุณถ้าคุณต้องการ ที่จะเขียน subroutine น้อยที่ 1548 01:17:21,530 --> 01:17:25,160 พิมพ์ออกสมมติว่าเนื้อหา ของหน่วยความจำหรือสิ่งที่ 1549 01:17:25,160 --> 01:17:29,800 และเพื่อให้เกิดผลข้างเคียงเหล่านี้เป็นบางครั้ง ที่มีประโยชน์ที่อยู่นอกบริบท 1550 01:17:29,800 --> 01:17:33,010 ของเช่นเดียวกับปัจจัยการผลิตและผลผลิต 1551 01:17:33,010 --> 01:17:34,260 คำถามใด? 1552 01:17:34,260 --> 01:17:37,270 1553 01:17:37,270 --> 01:17:44,240 >> และจะจบส่วนนี้โดยเฉพาะอย่างยิ่ง สิ่งที่ไม่โปรแกรมนี้จะทำอย่างไร 1554 01:17:44,240 --> 01:17:47,420 ฉันจะให้พวกคุณสอง วินาทีในการอ่านผ่านมัน 1555 01:17:47,420 --> 01:17:52,720 1556 01:17:52,720 --> 01:17:56,880 ในระดับพื้นฐานมากสิ่งที่เราต้องการ กล่าวคือการที่จะแลกเปลี่ยนและ y ใช่ไหม 1557 01:17:56,880 --> 01:18:00,090 >> ดังนั้นวิธีที่หลายท่านคิดจริง นี้จะสลับ x และ y? 1558 01:18:00,090 --> 01:18:02,160 ยกมือของคุณ 1559 01:18:02,160 --> 01:18:02,760 ไม่มีใคร 1560 01:18:02,760 --> 01:18:03,070 ตกลง 1561 01:18:03,070 --> 01:18:06,720 ที่คิดว่ามันจะ ไม่สลับ x และ y? 1562 01:18:06,720 --> 01:18:09,120 และผลรวมของที่เป็น ไม่ได้ทั้งห้อง 1563 01:18:09,120 --> 01:18:10,440 ดังนั้นบางคนไม่แน่ใจว่า 1564 01:18:10,440 --> 01:18:10,920 ตกลง 1565 01:18:10,920 --> 01:18:11,630 ที่เหมาะสม 1566 01:18:11,630 --> 01:18:16,450 >> เพื่อให้เป็นไปผ่านสิ่งที่เกิดขึ้นเมื่อ คุณจริงเรียกฟังก์ชั่นครั้งแรกใน 1567 01:18:16,450 --> 01:18:18,320 เพื่อที่จะตอบคำถามนี้ 1568 01:18:18,320 --> 01:18:21,430 ดังนั้นนี่คือสิ่งที่หน่วยความจำ การเรียงลำดับของดูเหมือนว่า 1569 01:18:21,430 --> 01:18:23,860 นี่คือการจัดเรียงของชอบแบบง่าย หน่วยความจำในสิ่งที่ดูเหมือนว่าเมื่อ 1570 01:18:23,860 --> 01:18:24,800 คุณเรียกใช้โปรแกรม 1571 01:18:24,800 --> 01:18:27,270 ดังนั้นจึงมีสิ่งที่เรียกว่า กองลงที่นี่และ 1572 01:18:27,270 --> 01:18:28,330 สิ่งที่เรียกว่ากอง 1573 01:18:28,330 --> 01:18:30,950 และเหล่านี้เติบโตไปสู่ ตรงกลางของหน่วยความจำ 1574 01:18:30,950 --> 01:18:33,860 >> ดังนั้นในกรณีนี้โดยเฉพาะอย่างยิ่งเมื่อ คุณเรียกใช้ฟังก์ชันมัน 1575 01:18:33,860 --> 01:18:35,680 ได้รับการวางอยู่บนกอง 1576 01:18:35,680 --> 01:18:38,900 และแล้วสิ่งที่มีอยู่ในที่ ฟังก์ชั่นยังคงอยู่ในสิ่งที่เราเรียกว่า 1577 01:18:38,900 --> 01:18:40,550 กองกรอบการทำงานของ 1578 01:18:40,550 --> 01:18:44,500 และเพื่อที่จะได้รับการแสดงที่ดีของ นี้ let's - ตัวอย่างเช่นเรามี 1579 01:18:44,500 --> 01:18:45,960 โปรแกรมหลักก่อนหน้านี้ 1580 01:18:45,960 --> 01:18:47,820 และภายในของหลักที่เราเรียกว่าก้อน 1581 01:18:47,820 --> 01:18:50,650 ดังนั้นหลักแรกจะไปในกอง กรอบเพราะฟังก์ชั่นเป็นครั้งแรก 1582 01:18:50,650 --> 01:18:51,640 ที่เรียกว่า 1583 01:18:51,640 --> 01:18:55,740 >> และจากนั้นเมื่อก้อนที่เรียกว่าภายใน หลักจะได้รับการใส่ที่ด้านบนของหลัก 1584 01:18:55,740 --> 01:18:57,790 ภายในของหน่วยความจำ 1585 01:18:57,790 --> 01:19:02,090 ดังนั้นสิ่งที่คุณจะสังเกตเห็นที่นี่เป็นก้อนที่ มีพารามิเตอร์ของตัวเองและของ 1586 01:19:02,090 --> 01:19:02,950 คนในท้องถิ่นของตัวเอง 1587 01:19:02,950 --> 01:19:06,720 ดังนั้นเมื่อคุณจริงผ่านสิ่งที่จะ ฟังก์ชั่นพารามิเตอร์ที่ 1588 01:19:06,720 --> 01:19:09,910 ได้รับสำเนาของสิ่งที่เป็น ผ่านจากหลัก 1589 01:19:09,910 --> 01:19:14,140 >> และการเรียงลำดับของการอธิบายเรื่องนี้ให้ เดินผ่านโปรแกรม 1590 01:19:14,140 --> 01:19:16,960 ดังนั้นเราจึงมีกองนี้เป็น เพียงแค่สแต็คส่วน 1591 01:19:16,960 --> 01:19:21,240 และสิ่งที่เราทำคือครั้งแรกที่เราเริ่มต้น x และ y เพื่อที่หนึ่งและสอง 1592 01:19:21,240 --> 01:19:22,400 ดังนั้นเราจึงมีกล่องเล็ก ๆ น้อย ๆ เหล่านี้ 1593 01:19:22,400 --> 01:19:25,310 พวกเขากำลังนั่งอยู่ในกองหลัก กรอบในกอง 1594 01:19:25,310 --> 01:19:26,580 พวกเขามีหนึ่งและสอง 1595 01:19:26,580 --> 01:19:28,820 >> ตอนนี้ที่เราเรียกว่าการแลกเปลี่ยน 1596 01:19:28,820 --> 01:19:33,940 สิ่งที่เกิดขึ้นคือเราผ่าน x และ y เป็น การแลกเปลี่ยนและการแลกเปลี่ยนจะสร้างสำเนาของตัวเอง 1597 01:19:33,940 --> 01:19:36,520 ของตัวแปรเหล่านั้นไปใช้ภายใน ของกรอบสแต็คของ 1598 01:19:36,520 --> 01:19:39,920 ดังนั้นตอนนี้ที่นั่นเราได้ที่ มีค่าที่มี x และข 1599 01:19:39,920 --> 01:19:41,620 ซึ่งมีค่าที่ y มี 1600 01:19:41,620 --> 01:19:42,670 ดังนั้นหนึ่งสอง 1601 01:19:42,670 --> 01:19:47,130 >> และคุณจะสังเกตเห็นว่านี่คือที่แยกต่างหาก จาก x และ y ภายในของหลัก 1602 01:19:47,130 --> 01:19:51,390 ดังนั้นตอนนี้เราสร้างชั่วคราว ตัวแปรที่จะมี 1603 01:19:51,390 --> 01:19:56,100 เราตั้งค่าเท่ากับ b ดังนั้นจึง การเปลี่ยนแปลง 1-2 1604 01:19:56,100 --> 01:19:59,340 และจากนั้นเราจะกำหนด b เท่ากับ กับอุณหภูมิซึ่งเป็นหนึ่งใน 1605 01:19:59,340 --> 01:20:01,640 >> แล้วตอนนี้เราออก ฟังก์ชั่นนี้ 1606 01:20:01,640 --> 01:20:04,310 1607 01:20:04,310 --> 01:20:07,410 เมื่อคุณออกจากฟังก์ชั่น กรอบสแต็คที่ได้รับการโผล่ออกกอง 1608 01:20:07,410 --> 01:20:08,270 เราเรียกว่าการผลักดัน 1609 01:20:08,270 --> 01:20:12,750 คุณผลักดันกรอบกองลงบนสแต็ค และถ้าคุณป๊อปออกกอง 1610 01:20:12,750 --> 01:20:16,080 และเพื่อให้สิ่งที่เกิดขึ้นคือทุกอย่างที่ ที่อยู่ในการจัดเรียงกรอบกองเพียง 1611 01:20:16,080 --> 01:20:17,280 ขึ้นไปในเปลวไฟ 1612 01:20:17,280 --> 01:20:19,180 และอื่น ๆ ที่ไม่มีอยู่ 1613 01:20:19,180 --> 01:20:20,470 >> แต่เราทำในสิ่งที่สังเกตเห็น 1614 01:20:20,470 --> 01:20:23,690 เราไม่เคยเปลี่ยนแปลงจริง ค่าของ x และ y ใช่ไหม 1615 01:20:23,690 --> 01:20:26,530 ดังนั้นผู้ที่อยู่ในท้องถิ่นเพื่อหลัก 1616 01:20:26,530 --> 01:20:29,900 และโดยผ่านการแลกเปลี่ยนสิ่งที่เป็นเรา จริงไม่เคยเปลี่ยนค่าเหล่านั้น 1617 01:20:29,900 --> 01:20:31,260 และสิ่งที่เราจะเรียกสิ่งนี้? 1618 01:20:31,260 --> 01:20:33,040 ที่เราเรียกว่าผ่านนี้ด้วยค่า 1619 01:20:33,040 --> 01:20:36,860 >> ดังนั้นใน C, เมื่อคุณผ่านสิ่งที่เป็น ฟังก์ชั่นมันผ่านพวกเขาด้วยคุณค่าและ 1620 01:20:36,860 --> 01:20:40,160 ทำให้สำเนาของพวกเขาสำหรับ ฟังก์ชั่นการใช้งาน 1621 01:20:40,160 --> 01:20:43,980 และเราจะได้เรียนรู้เกี่ยวกับสิ่งที่เรียกว่า ผ่านอ้างอิงในภายหลัง แต่ที่ 1622 01:20:43,980 --> 01:20:45,390 วิธีการที่คุณสามารถแก้ปัญหานี้ 1623 01:20:45,390 --> 01:20:47,080 แต่เราจะไม่ต้องกังวลเกี่ยวกับ ที่จนกระทั่งต่อมา 1624 01:20:47,080 --> 01:20:52,200 >> ROB: และที่จริงระยะที่ผ่าน โดยการอ้างอิงดังนั้น C ไม่ได้มี 1625 01:20:52,200 --> 01:20:54,270 ผ่านโดยอ้างอิง 1626 01:20:54,270 --> 01:20:56,760 C เฉพาะได้ผ่านค่า 1627 01:20:56,760 --> 01:20:59,630 ไม่ว่าสิ่งที่คุณทำคุณอยู่เสมอ ผ่านสำเนาของบางสิ่งบางอย่าง 1628 01:20:59,630 --> 01:21:03,395 มันเป็นเพียงแค่ว่าเหมือนที่ผมกล่าวถึงการจัดเรียงของ ก่อนที่จะมีการชี้ 1629 01:21:03,395 --> 01:21:07,690 และที่สตริงเป็นจริงเพียงสี่ ไบต์ชี้ไปที่บางแห่งในหน่วยความจำ 1630 01:21:07,690 --> 01:21:11,890 >> ดีถ้าฉันมีสายนี้และเป็น บอกฉันว่าเป็นที่ที่สาย - 1631 01:21:11,890 --> 01:21:15,470 ดีถ้าฉันมีตัวชี้นี้เพื่อนี้ วางในหน่วยความจำแล้วฉันสามารถผ่าน 1632 01:21:15,470 --> 01:21:19,160 สำเนาของตัวชี้ไปยังฟังก์ชั่นนั้นและ ฟังก์ชั่นที่ยังคงรู้ว่าใน 1633 01:21:19,160 --> 01:21:19,780 หน่วยความจำมันเป็น 1634 01:21:19,780 --> 01:21:22,950 ดังนั้นทั้งสองของตัวชี้เหล่านี้จะชี้ ไปยังสถานที่เดียวกันในหน่วยความจำและ 1635 01:21:22,950 --> 01:21:26,460 นั่นคือวิธีที่เราจะสามารถ การปรับเปลี่ยนสิ่งที่เกินกว่า 1636 01:21:26,460 --> 01:21:29,852 กรอบสแต็คในปัจจุบัน 1637 01:21:29,852 --> 01:21:31,040 >> JOSEPH: คุณต้องการที่จะทำรวบรวม? 1638 01:21:31,040 --> 01:21:31,820 >> ROB: ไม่ก็ 05:30 1639 01:21:31,820 --> 01:21:32,910 >> JOSEPH: OK 1640 01:21:32,910 --> 01:21:35,040 มันเป็น 05:30 1641 01:21:35,040 --> 01:21:35,360 ตกลง 1642 01:21:35,360 --> 01:21:39,280 ดังนั้นเราจะครอบคลุมการรวบรวมผมคิดว่าใน ส่วนถัดไปหรือส่วนของคุณ 1643 01:21:39,280 --> 01:21:42,795 ผู้นำจะที่จุดที่ 1644 01:21:42,795 --> 01:21:43,272 และ - 1645 01:21:43,272 --> 01:21:44,630 >> ROB: คำถามที่ใด? 1646 01:21:44,630 --> 01:21:46,760 >> JOSEPH: คำถามที่ใด? 1647 01:21:46,760 --> 01:21:47,150 ใช่? 1648 01:21:47,150 --> 01:21:52,469 >> ลำโพง 5: การใช้สตริงจาก CS50 ใด ๆ ฟังก์ชั่นที่เราต้องการที่จะใช้สำหรับ 1649 01:21:52,469 --> 01:21:53,880 ผู้ที่จะเป็นเช่นฟังก์ชัน C 1650 01:21:53,880 --> 01:21:59,050 CS50 ไม่ได้ไปในและ ทำเพิ่มเติมใด ๆ 1651 01:21:59,050 --> 01:22:01,850 >> ROB: ที่ถูกต้อง 1652 01:22:01,850 --> 01:22:08,155 ใด ๆ ของ C เช่น [ไม่ได้ยิน] คุณ จะใช้ผู้ที่อยู่ในสายของเรา 1653 01:22:08,155 --> 01:22:12,400 >> JOSEPH: และสิ่งสุดท้ายที่ฉันต้องการ กล่าวถึงก็คือว่าเรามีคำแนะนำสไตล์ 1654 01:22:12,400 --> 01:22:13,130 สำหรับชั้นนี้ 1655 01:22:13,130 --> 01:22:13,360 >> ROB: โอ้ใช่ 1656 01:22:13,360 --> 01:22:15,270 >> JOSEPH: ดังนั้นถ้าคุณได้มาจาก การเขียนโปรแกรมพื้นหลังก่อนที่คุณ 1657 01:22:15,270 --> 01:22:17,750 อาจจะมีการประชุมบางอย่างเมื่อ คุณกำลังเขียนรหัสเช่นวาง 1658 01:22:17,750 --> 01:22:20,950 วงเล็บในบรรทัดเดียวกันหรือโดยเฉพาะอย่างยิ่ง วิธีการเยื้อง 1659 01:22:20,950 --> 01:22:22,240 หรือการตั้งชื่อตัวแปรของคุณ 1660 01:22:22,240 --> 01:22:26,870 ในชั้นนี้เราต้องการที่จะปฏิบัติตาม คู่มือรูปแบบที่เฉพาะเจาะจงเพียงเพราะ 1661 01:22:26,870 --> 01:22:31,100 ดีถ้าคุณจะออกไปทำงานใน อุตสาหกรรมที่คุณกำลังจะได้รับการคาดหมายว่า 1662 01:22:31,100 --> 01:22:34,780 ที่จะปฏิบัติตามคำแนะนำรูปแบบของ บริษัท ที่คุณไป 1663 01:22:34,780 --> 01:22:38,040 >> เช่นตัวอย่างเช่น Facebook ผมคิดว่า มีการเรียงลำดับโดยเฉพาะอย่างยิ่งของการตั้งชื่อ 1664 01:22:38,040 --> 01:22:38,760 การประชุม 1665 01:22:38,760 --> 01:22:42,570 และมีความแตกต่างระหว่างอูฐ ตัวแปรท่อและเช่นเดียวกับ 1666 01:22:42,570 --> 01:22:44,610 แยกพวกเขาด้วยขีด 1667 01:22:44,610 --> 01:22:52,170 และผมคิดว่าสำคัญมากที่สุดเช่น ตัวอย่างเช่นการเยื้องขวา 1668 01:22:52,170 --> 01:22:56,440 >> เราวงเล็บปีกกาเริ่มต้นที่ เงื่อนไขเป็นและพวกเขา 1669 01:22:56,440 --> 01:22:57,730 อยู่ในบรรทัดถัดไป 1670 01:22:57,730 --> 01:23:01,230 และเรายังใส่วงเล็บปีกกาใน ถึงแม้ว่ามันจะเป็นเพียงหนึ่งบรรทัด 1671 01:23:01,230 --> 01:23:06,100 และหลายครั้งมีวิธีที่จะทำ มันที่คุณสามารถออกจากการจัดฟันเหล่านี้ 1672 01:23:06,100 --> 01:23:08,380 ออกจะเป็นเพียงหนึ่งบรรทัด ภายใต้คำสั่งถ้า 1673 01:23:08,380 --> 01:23:12,070 แต่ในชั้นนี้เราต้องการที่จะปฏิบัติตาม คู่มือรูปแบบที่เฉพาะเจาะจงเพียงเพื่อให้คุณได้รับ 1674 01:23:12,070 --> 01:23:13,550 ที่ใช้ในการเรียงลำดับของสิ่งที่ 1675 01:23:13,550 --> 01:23:16,410 >> ROB: ใช่และสไตล์ 50 เป็นไปได้ บังคับใช้คู่มือรูปแบบนี้และเรากำลัง 1676 01:23:16,410 --> 01:23:18,080 จะใช้รูปแบบ 50 เกรดรหัสของคุณ 1677 01:23:18,080 --> 01:23:25,150 จึงทำให้สิ่งที่ง่ายสำหรับเราและ หวังว่าไม่ควรจะทำสิ่งที่ 1678 01:23:25,150 --> 01:23:30,120 มากยิ่งสำหรับคุณได้รับ รูปแบบที่เป็นมาตรฐานไม่ควรที่ 1679 01:23:30,120 --> 01:23:31,460 ที่ไม่สมจริง 1680 01:23:31,460 --> 01:23:36,000 >> JOSEPH: และสุดท้ายที่จะหารูปแบบ คู่มือไป manual.cs50.net/style 1681 01:23:36,000 --> 01:23:37,725 และใช่ 1682 01:23:37,725 --> 01:23:40,575 >> ลำโพง 4: คุณจะไปบังคับใช้ ตัวอักษรใดต่อบรรทัด 1683 01:23:40,575 --> 01:23:42,480 >> ROB: ใช่ 1684 01:23:42,480 --> 01:23:45,405 >> JOSEPH: ขออภัยครับ 1685 01:23:45,405 --> 01:23:47,680 >> ROB: นั่นเป็นเหมือนหนึ่งในคนเดียว 1686 01:23:47,680 --> 01:23:50,420 ณ จุดนี้ผมตกลง 120 1687 01:23:50,420 --> 01:23:52,460 ฉันตกลงกับการพูด 120 ตัวอักษรต่อบรรทัด 1688 01:23:52,460 --> 01:23:53,830 ผมเข้าใจว่ามีการ จำกัด บางอย่าง 1689 01:23:53,830 --> 01:23:57,130 ผมคิดว่า 80 จะมีขนาดเล็ก แต่ เรากำลังบังคับมัน 1690 01:23:57,130 --> 01:24:00,260 >> JOSEPH: ส่วนตัวผมคิดว่ามี C, 80 ตัวอักษรก็โอเคมากขึ้น 1691 01:24:00,260 --> 01:24:04,160 เมื่อคุณเริ่มได้รับที่อื่น ๆ ภาษาเช่น JavaScript และ PHP, ไม่ 1692 01:24:04,160 --> 01:24:08,860 ดังนั้นเหตุผลที่จะ จำกัด เพียงแค่ มันถึง 80 ตัวอักษร 1693 01:24:08,860 --> 01:24:09,260 ตกลง 1694 01:24:09,260 --> 01:24:12,780 ดีที่เป็นส่วนสุด 1695 01:24:12,780 --> 01:24:14,750 ไม่มีใครต้องการขนม? 1696 01:24:14,750 --> 01:24:16,000 >> ลำโพง 4: ใช่ 1697 01:24:16,000 --> 01:24:18,667