1 00:00:00,000 --> 00:00:02,742 >> [เล่นเพลง] 2 00:00:02,742 --> 00:00:05,030 3 00:00:05,030 --> 00:00:09,090 >> ANDI PENG: นี่คือ CS50 และ ยินดีต้อนรับเข้าสู่สัปดาห์ที่สองของส่วน 4 00:00:09,090 --> 00:00:11,740 นี้เป็นจริงในขณะที่สัปดาห์ สอง class-- ของเราจริง 5 00:00:11,740 --> 00:00:14,550 สัปดาห์แรกที่เราได้มีส่วน 6 00:00:14,550 --> 00:00:18,897 แสดงของมือกี่ของคุณทั้งหมด มาถึงส่วนสุดสัปดาห์ที่ผ่านมา? 7 00:00:18,897 --> 00:00:19,480 ตกลงที่ตกลง 8 00:00:19,480 --> 00:00:20,020 มันโอเค. 9 00:00:20,020 --> 00:00:23,110 มีกี่คนที่คุณดู ส่วนสุดสัปดาห์ที่ผ่านมา? 10 00:00:23,110 --> 00:00:23,610 ตกลง. 11 00:00:23,610 --> 00:00:25,702 และพวกคุณได้ดี เกี่ยวกับปัญหาการตั้งค่าหรือไม่ 12 00:00:25,702 --> 00:00:28,660 ดังนั้นฉันจะเอามันที่เรามี พวงของเด็กที่ฉลาดจริงๆ 13 00:00:28,660 --> 00:00:32,310 ในชั้นเรียนและสิ่งนี้จะถูกปรับ 14 00:00:32,310 --> 00:00:33,180 ตกลง. 15 00:00:33,180 --> 00:00:33,980 first-- ดังนั้น 16 00:00:33,980 --> 00:00:37,900 17 00:00:37,900 --> 00:00:41,090 >> ครั้งแรกที่เรากำลังจะเป็นช่วงสั้น ๆ ไปกว่าวาระการประชุมในวันนี้ 18 00:00:41,090 --> 00:00:42,700 เราจะพูดคุยเกี่ยวกับโลจิสติกแน่นอน 19 00:00:42,700 --> 00:00:45,480 จำนวนมากของคุณอาจ มีคำถามเกี่ยวกับ 20 00:00:45,480 --> 00:00:46,920 ว่าสิ่งที่ทำงานในหลักสูตรนี้ 21 00:00:46,920 --> 00:00:47,897 เราจะตอบคำถามเหล่านี้ 22 00:00:47,897 --> 00:00:49,730 เรากำลังจะไปในเวลาสั้น ๆ ไปกว่าลูปในกรณีที่ 23 00:00:49,730 --> 00:00:51,410 ใด ๆ ของพวกคุณพลาดส่วนซุปเปอร์ 24 00:00:51,410 --> 00:00:53,240 เราจะพูดคุยเกี่ยวกับการทำแผนที่ ASCII 25 00:00:53,240 --> 00:00:56,180 เราจะพูดคุยเกี่ยวกับอาร์เรย์ ฟังก์ชั่นอาร์กิวเมนต์บรรทัดคำสั่ง 26 00:00:56,180 --> 00:01:00,210 และในที่สุดสิ่งที่พวกคุณอาจจะทั้งหมด อยากจะอยู่ที่นี่เพื่อเรียนรู้เกี่ยวกับ 27 00:01:00,210 --> 00:01:01,270 เป็น pset2 ของคุณ 28 00:01:01,270 --> 00:01:04,209 เราจะมีเทคนิคที่ดีบางอย่าง และเคล็ดลับสำหรับวิธีการทำที่ 29 00:01:04,209 --> 00:01:07,910 30 00:01:07,910 --> 00:01:08,690 >> ตกลง. 31 00:01:08,690 --> 00:01:11,450 นอกจากนี้ประการที่สองเรามี จำนวนมากของขนมที่นี่ 32 00:01:11,450 --> 00:01:13,583 ใครที่ชอบขนม เพียงแค่มาที่นี่ 33 00:01:13,583 --> 00:01:14,430 คว้าบางอย่าง 34 00:01:14,430 --> 00:01:15,100 ฉันมีพวง 35 00:01:15,100 --> 00:01:16,390 เรามีตันในสำนักงาน 36 00:01:16,390 --> 00:01:18,230 ฉันไม่ต้องการจริงๆ จะกินขนมตลอดทั้งวัน 37 00:01:18,230 --> 00:01:20,300 พวกคุณควรกินขนม, เพราะผมนำมันที่นี่สำหรับคุณผู้ชาย 38 00:01:20,300 --> 00:01:20,990 เพียงแค่กินขนม 39 00:01:20,990 --> 00:01:24,080 จะมีขนมทุกส่วน 40 00:01:24,080 --> 00:01:25,330 >> ดังนั้นก่อนที่ am I? 41 00:01:25,330 --> 00:01:27,080 ชื่อของฉันคือ Andi เป็ง 42 00:01:27,080 --> 00:01:30,270 ผมหัว TA ของ CS50 ที่นี่ที่มหาวิทยาลัยเยล 43 00:01:30,270 --> 00:01:32,540 และนอกเหนือไปจาก ที่เราจะ be-- 44 00:01:32,540 --> 00:01:35,600 ถ้าใครจะ like-- ทำงานของคุณ เพื่อนไหล่ของคุณจะร้องไห้บน 45 00:01:35,600 --> 00:01:39,140 หากคืนก่อ​​นเนื่องจาก pset ของคุณ คุณมีความคิดสิ่งที่เกิดขึ้นไม่ได้ 46 00:01:39,140 --> 00:01:40,080 ตีขึ้น 47 00:01:40,080 --> 00:01:42,770 เราจะเห็นใจกันและอื่น ๆ 48 00:01:42,770 --> 00:01:46,100 เพียงแค่รู้ว่าฉันอยู่ที่นี่เป็น ทรัพยากรสำหรับคุณเป็นแนวหน้า 49 00:01:46,100 --> 00:01:51,830 คิดในการช่วยให้พวกคุณออกว่า ในการแก้ปัญหาใน CS50 และเกิน 50 00:01:51,830 --> 00:01:54,590 >> อีเมลของฉันคือ andi.peng@yale.edu 51 00:01:54,590 --> 00:01:58,390 ฉันยังจะส่งบุคคล ส่งอีเมลที่มีหมายเลขโทรศัพท์ของฉันอยู่ในนั้น 52 00:01:58,390 --> 00:02:01,860 เพื่อให้ทุกคนไม่ได้อยู่ที่ อินเทอร์เน็ตสามารถดูหมายเลขโทรศัพท์ของฉัน 53 00:02:01,860 --> 00:02:03,640 รู้สึกอิสระที่จะโทรห​​าฉันได้ตลอดเวลา 54 00:02:03,640 --> 00:02:07,510 อย่างจริงจังโทรศัพท์ของฉัน มักจะยึดติดอยู่กับมือของฉัน 55 00:02:07,510 --> 00:02:10,240 ผมอาจจะไม่ตอบสนอง ภายในไม่กี่นาที 56 00:02:10,240 --> 00:02:11,984 ฉันไม่อาจตอบสนองภายในสองสามชั่วโมง 57 00:02:11,984 --> 00:02:14,400 แต่ฉันสามารถรับประกันคุณถ้า คุณ e-mail ฉันถ้าคุณเรียกฉัน 58 00:02:14,400 --> 00:02:17,404 ข้อความฉันฉันจะตอบกลับภายใน 24 ชั่วโมง 59 00:02:17,404 --> 00:02:19,820 บ่อยครั้งที่ผมจะตอบสนองก่อน ว่าเพราะผมเข้าใจ 60 00:02:19,820 --> 00:02:23,900 ที่ทุกคนมีปัญหาบางอย่าง และคุณต้องการคำตอบของคุณ 61 00:02:23,900 --> 00:02:26,110 ที่จะตอบได้อย่างรวดเร็ว 62 00:02:26,110 --> 00:02:28,945 >> แต่ถ้าคุณเรียก ผม 30 นาทีก่อน 63 00:02:28,945 --> 00:02:31,570 ชิ้นส่วนที่เกิดจากว่าวันพฤหัสบดีที่ night-- เป็นเช่น Andi ช่วยฉัน 64 00:02:31,570 --> 00:02:35,380 ฉันไม่ได้ started-- ผมอาจจะให้ คุณไหล่ที่จะร้องไห้บน 65 00:02:35,380 --> 00:02:41,520 แต่มันอาจจะถึงเวลาที่จะคิดเกี่ยวกับ วิธีการที่จะไม่ทำอย่างนั้นในครั้งต่อไป 66 00:02:41,520 --> 00:02:44,040 ตกลง. 67 00:02:44,040 --> 00:02:44,944 โอ๊ะ 68 00:02:44,944 --> 00:02:45,850 ฉันจะกลับไปได้อย่างไร? 69 00:02:45,850 --> 00:02:48,140 เราจะไปที่นั่น. 70 00:02:48,140 --> 00:02:52,310 >> ดังนั้นในหลักสูตรนี้เรามี ตันของการสนับสนุนสำหรับทุกคน 71 00:02:52,310 --> 00:02:54,640 นอกจากนี้เพียงแค่ ส่วนที่นี่ซึ่งคุณ 72 00:02:54,640 --> 00:02:57,000 ทุกสัปดาห์จะได้รับที่จะใช้จ่าย 90 นาทีที่ยอดเยี่ยมกับฉัน 73 00:02:57,000 --> 00:02:58,330 เรายังมีเวลาทำงาน 74 00:02:58,330 --> 00:03:01,021 มีกี่คนที่พวกคุณมีอยู่แล้ว เคยไปเวลาทำงานความช่วยเหลือ? 75 00:03:01,021 --> 00:03:01,520 ที่ดี 76 00:03:01,520 --> 00:03:05,700 นั่นเป็นสิ่งที่ดีจริงๆที่จะเห็นเพราะเรา มีพนักงานกว่า 45 ครูและ CAs 77 00:03:05,700 --> 00:03:11,780 ผ่านการฝึกอบรมหลักสูตรที่มีที่นี่ สำหรับการช่วยให้พวกคุณกับ psets ของคุณ 78 00:03:11,780 --> 00:03:14,580 >> วันจันทร์ที่พวกเขากำลังจัดขึ้นในนกเป็ดน้ำ ห้องเรียน 17 Hill House ที่นี่ 79 00:03:14,580 --> 00:03:15,350 ที่มหาวิทยาลัยเยล 80 00:03:15,350 --> 00:03:17,349 วันอังคารและวันพฤหัสบดี พวกเขากำลังจัดขึ้นในคอมมอนส์ 81 00:03:17,349 --> 00:03:20,010 8:00-11:00 สวยมากทุกวัน 82 00:03:20,010 --> 00:03:21,620 มาออกมา 83 00:03:21,620 --> 00:03:24,030 ปัญหาใด ๆ ไม่ problem-- เพียงแค่มาใน 84 00:03:24,030 --> 00:03:26,650 และจากนั้นเราจะช่วยให้คุณออกมาพร้อมกับที่ 85 00:03:26,650 --> 00:03:31,640 >> ประการที่สองนอกเหนือไปจากเวลาราชการ และส่วนนี้เรายังมีกางเกงขาสั้น 86 00:03:31,640 --> 00:03:35,930 มีใครเคยเห็นคู่ของที่ กางเกงขาสั้นหรือเกมส์ในวิดีโอ 87 00:03:35,930 --> 00:03:36,750 บนเว็บไซต์ได้หรือไม่ 88 00:03:36,750 --> 00:03:37,250 ตกลง. 89 00:03:37,250 --> 00:03:39,510 ดังนั้นพวกเขากำลังจริงๆที่เป็นประโยชน์ 90 00:03:39,510 --> 00:03:42,470 ที่น่ารักของเราผลิตฮาร์วาร์ ทีมที่นั่นในโรงเรียนที่ 91 00:03:42,470 --> 00:03:47,910 ขึ้นไปทางเหนือพวกเขาได้ถ่ายทำและผลิต เหล่านี้วิดีโอแนะนำอย่างไม่น่าเชื่อ 92 00:03:47,910 --> 00:03:52,290 >> พวกเขาจะนำคุณไปทีละขั้นตอนผ่าน ว่าจะไปเกี่ยวกับการแก้ปัญหา 93 00:03:52,290 --> 00:03:56,340 บ่อยครั้งถ้าคุณกำลังสับสนเกี่ยวกับ แนวคิดที่เรียบง่ายแนวคิดเอกพจน์ 94 00:03:56,340 --> 00:03:59,780 มาดูเพราะเราอาจจะมี สั้น ๆ กับมันอยู่ที่ไหนสักแห่งบนเว็บไซต์ของเรา 95 00:03:59,780 --> 00:04:03,800 และก็มักจะเป็นทรัพยากรที่ดี ที่จะมองหาเมื่อคุณครั้งแรก 96 00:04:03,800 --> 00:04:06,510 หายไปเกี่ยวกับวิธีการจัดการกับปัญหา 97 00:04:06,510 --> 00:04:09,750 >> ประการที่สามเรายังมี study50 และ reference50 98 00:04:09,750 --> 00:04:15,650 ดังนั้นการศึกษา 50 ใน เว็บไซต์เป็นเพียงการเชื่อมโยง 99 00:04:15,650 --> 00:04:21,500 มันเป็นเรื่องที่ผมคิดว่า study.cs50.net หรือสิ่งที่ต้องการ 100 00:04:21,500 --> 00:04:22,860 เพียง Google มัน 101 00:04:22,860 --> 00:04:24,229 เรามีจำนวนมากของภาพนิ่งเตรียม 102 00:04:24,229 --> 00:04:26,770 เรามีกางเกงขาสั้นและ สิ่ง walkthroughs-- ทั้งหมดรวบรวม 103 00:04:26,770 --> 00:04:31,070 อย่างดีและเรียบร้อยสำหรับพวกคุณทั้งหมด เพื่อเรียกดูผ่านเห็นแนวความคิดใด ๆ 104 00:04:31,070 --> 00:04:32,860 ว่าคุณกำลังสับสนเกี่ยวกับ 105 00:04:32,860 --> 00:04:35,920 มันอาจจะได้รับการคุ้มครอง ที่นั่นใน study50 106 00:04:35,920 --> 00:04:37,640 >> Reference50-- ที่คล้ายกัน 107 00:04:37,640 --> 00:04:41,510 เรามีจำนวนมากของการบันทึกต่างๆ พร้อมสำหรับการกำจัดของคุณ 108 00:04:41,510 --> 00:04:44,450 และสุดท้ายเรามีสิ่งที่เป็น เรียกว่า CS50 พูดคุย, 109 00:04:44,450 --> 00:04:48,082 ฟอรั่มซึ่งถ้าคืนก่อ​​น คุณกำลังทำแก้ปัญหาของคุณพูดว่า 110 00:04:48,082 --> 00:04:49,880 คุณมีคำถาม 111 00:04:49,880 --> 00:04:52,340 เข้าสู่ระบบเพื่อ CS50 พูดคุย 112 00:04:52,340 --> 00:04:53,190 โพสต์คำถามของคุณ 113 00:04:53,190 --> 00:04:55,820 และจากนั้นหนึ่งใน hundreds-- บางที thousands-- ของคนรอบข้าง 114 00:04:55,820 --> 00:04:57,960 การเรียนออนไลน์นี้จะเข้าสู่ระบบใน 115 00:04:57,960 --> 00:05:01,182 และอาจจะมีใครบางคนจะได้รับ คำตอบของคุณก่อนที่จะสามารถ TA 116 00:05:01,182 --> 00:05:03,390 มันเป็นหลักเพียง ฟอรั่มออนไลน์ที่เราสามารถทั้งหมด 117 00:05:03,390 --> 00:05:04,556 ใช้เพื่อหารือเกี่ยวกับปัญหาของเรา 118 00:05:04,556 --> 00:05:06,483 ที่เย็น 119 00:05:06,483 --> 00:05:10,660 120 00:05:10,660 --> 00:05:11,550 >> ตกลง. 121 00:05:11,550 --> 00:05:13,220 ปัญหาดังนั้นชุด 122 00:05:13,220 --> 00:05:17,840 เราเกี่ยวกับสิทธิใน ความหนาของปัญหาตั้งสอง 123 00:05:17,840 --> 00:05:20,570 จำนวนมากเรามีอยู่แล้ว ต่อสู้ผ่านปัญหาตั้งหนึ่ง 124 00:05:20,570 --> 00:05:24,460 เรารู้อยู่แล้วว่าบางทีการรอคอย สำหรับคืนที่ผ่านมาในการทำ pset ของคุณ 125 00:05:24,460 --> 00:05:28,170 ไม่ได้เป็นสิ่งที่ฉลาดที่สุดที่จะทำใน CS50 126 00:05:28,170 --> 00:05:32,380 >> เคล็ดลับและเคล็ดลับที่เป็นหลักสำหรับ ความสำเร็จจะอ่านข้อมูลจำเพาะทั้งหมด 127 00:05:32,380 --> 00:05:36,270 มีกี่คนที่คุณมีอยู่แล้ว อ่านข้อมูลจำเพาะสำหรับ pset 2? 128 00:05:36,270 --> 00:05:36,770 ตกลง. 129 00:05:36,770 --> 00:05:39,840 นั่นคือจำนวนเงินที่เป็นของแข็ง 130 00:05:39,840 --> 00:05:43,210 ฉันรู้ว่าพวกคุณอาจจะได้รับการยอมรับ โดยขณะนี้รายละเอียดที่มีความยาวจริงๆ 131 00:05:43,210 --> 00:05:45,700 พวกเขากำลังจริงๆนานจริงๆ 132 00:05:45,700 --> 00:05:49,630 >> มันเป็นเรื่องยากมากที่จะอ่านทุกบรรทัด ที่ระมัดระวังคำพูดด้วยคำพูด 133 00:05:49,630 --> 00:05:52,780 คุณต้องการเพียงแค่หางไปยังที่ที่ มันบอกให้คุณทำบางสิ่งบางอย่าง 134 00:05:52,780 --> 00:05:54,459 ฉันสามารถรับประกันคุณไม่ทำอย่างนั้น 135 00:05:54,459 --> 00:05:56,750 ถ้าคุณทำเช่นนั้นคุณอาจ จะพลาดที่ไหนสักแห่ง 136 00:05:56,750 --> 00:05:58,458 ที่จะบอกคุณ วิธีการเริ่มต้นปัญหา 137 00:05:58,458 --> 00:06:01,140 หรือมันจะบอกคุณว่าจะชื่อ ปัญหาของคุณได้หรือมันจะบอกคุณ 138 00:06:01,140 --> 00:06:03,720 นี้น่าจะเป็นวิธีที่ดีที่สุด จะเริ่มต้นทำปัญหาของคุณได้ 139 00:06:03,720 --> 00:06:05,050 แล้วคุณจะหายไป 140 00:06:05,050 --> 00:06:08,219 >> เมื่อคุณพยายามที่จะอ่านของคุณ spec ผ่านไปครึ่งทาง, 141 00:06:08,219 --> 00:06:10,510 เป็นจำนวนมากที่สำคัญ information-- ในการที่คุณไม่ได้ 142 00:06:10,510 --> 00:06:12,260 จะสามารถเข้าถึงจริงๆ 143 00:06:12,260 --> 00:06:13,219 ดังนั้นการอ่านข้อมูลจำเพาะทั้งหมด 144 00:06:13,219 --> 00:06:15,468 ลองอ่านข้อมูลจำเพาะทั้งหมด ก่อนที่คุณจะมาถึงส่วน 145 00:06:15,468 --> 00:06:17,360 แล้วเพราะเมื่อเรา พูดคุยเกี่ยวกับ pset ที่ 146 00:06:17,360 --> 00:06:21,070 เราทุกคนสามารถมีความคิด ของสิ่งที่เกิดขึ้น 147 00:06:21,070 --> 00:06:25,169 >> ประการที่สองนี้เป็นแนวคิด ที่ผมจะชอบที่จะอ้างอิง 148 00:06:25,169 --> 00:06:26,710 เป็นจำนวนมากตลอดภาคการศึกษาการเรียนการสอน 149 00:06:26,710 --> 00:06:30,070 แต่เป็นหลักพบเราครึ่งหนึ่งใช่มั้ย? 150 00:06:30,070 --> 00:06:33,970 ฉันเป็น TA ของคุณและเจสันสนาม ผู้จัดการและ Scaz เป็นอาจารย์ของคุณ 151 00:06:33,970 --> 00:06:37,120 และเดวิดเป็นอาจารย์ของคุณและทั้งหมดของ มาตรฐานการบัญชีฉบับที่น่ารักในหลักสูตรนี้ 152 00:06:37,120 --> 00:06:39,830 ผู้ช่วยใน course-- นี้ เราจะทำอย่างดีที่สุด 153 00:06:39,830 --> 00:06:42,965 เพื่อให้แน่ใจว่าคุณกำลังตั้ง ถึงจะประสบความสำเร็จในหลักสูตรนี้ 154 00:06:42,965 --> 00:06:43,840 เราจะถือส่วน 155 00:06:43,840 --> 00:06:44,870 เราจะถือเวลาราชการ 156 00:06:44,870 --> 00:06:47,087 เราจะตอบโทรศัพท์ของคุณ โทรตอบอีเมลของคุณ 157 00:06:47,087 --> 00:06:49,670 ทำทุกอย่างที่เราสามารถทำได้เพื่อให้ แน่ใจว่าคำถามมีคำตอบ 158 00:06:49,670 --> 00:06:51,460 >> แต่ช่วยให้เราออกมากเกินไป 159 00:06:51,460 --> 00:06:52,450 พบกับเราครึ่งหนึ่ง 160 00:06:52,450 --> 00:06:56,040 ถ้าคุณมาเวลาทำการ ไม่ได้มีการไปส่วนไม่ได้ 161 00:06:56,040 --> 00:07:02,060 ได้เห็นการบรรยายที่มีไม่มี ความคิดสิ่งที่เกิดขึ้นเป็นเช่นช่วยฉัน 162 00:07:02,060 --> 00:07:04,350 ฉันจะเป็นเช่นเดียวกับฉันขอโทษ 163 00:07:04,350 --> 00:07:06,410 มันอาจจะถึงเวลาที่จะให้ยืม ไหล่ที่จะร้องไห้บน 164 00:07:06,410 --> 00:07:08,959 เพราะผมไม่แน่ใจว่า สิ่งที่ฉันสามารถทำได้เพื่อช่วยให้คุณ 165 00:07:08,959 --> 00:07:12,000 ถ้าคุณไม่ได้พยายามที่จะช่วยเหลืออย่างน้อย ตัวเองนิด ๆ หน่อย ๆ ในการเริ่มต้น 166 00:07:12,000 --> 00:07:12,910 พบกับเราครึ่งหนึ่ง 167 00:07:12,910 --> 00:07:15,020 คุณจะรู้ว่าโปรดมา เตรียมที่จะตอบและได้รับ 168 00:07:15,020 --> 00:07:16,353 พร้อมที่จะมีส่วนร่วมในวัสดุ 169 00:07:16,353 --> 00:07:19,342 มันทำให้สิ่งที่มาก ง่ายขึ้นสำหรับทุกคนที่เกี่ยวข้อง 170 00:07:19,342 --> 00:07:22,970 ใช่ว่ามันสวยมาก 171 00:07:22,970 --> 00:07:23,720 >> การจัดลำดับ 172 00:07:23,720 --> 00:07:29,250 ดังนั้นในหลักสูตรก็สวย ในเชิงลึกเกี่ยวกับวิธีการที่เราเกรด 173 00:07:29,250 --> 00:07:32,440 แต่เป็นหลักสลาย ในครั้งนี้เป็น 50% ของเกรดของคุณ 174 00:07:32,440 --> 00:07:34,530 จะเป็น psets ซึ่ง น่ารักเพราะนั่นคือ 175 00:07:34,530 --> 00:07:37,400 ที่คุณกำลังใช้จ่ายมากมาย ส่วนใหญ่ของเวลาในการเรียนของคุณ 176 00:07:37,400 --> 00:07:39,854 แบบทดสอบ 40% และของคุณ โครงการสุดท้ายจะเป็น 10% 177 00:07:39,854 --> 00:07:42,520 จะมีสองแบบทดสอบตลอด หลักสูตรของภาคการศึกษา 178 00:07:42,520 --> 00:07:47,050 ผมคิดว่าวันและเวลาที่มี ยังระบุในหลักสูตร 179 00:07:47,050 --> 00:07:49,210 >> วิธีการที่เราจะทำ ได้รับการจัดลำดับ psets ของคุณ 180 00:07:49,210 --> 00:07:53,930 คือว่าเรามีสี่หลัก ค่าที่เรากำหนดให้แต่ละเกรด 181 00:07:53,930 --> 00:07:57,250 เรามีค่าของขอบเขต ความถูกต้อง, การออกแบบและสไตล์ 182 00:07:57,250 --> 00:08:01,530 เพื่อที่คุณจะเห็นว่าเป็นชนิดของเรา สูตรการคำนวณ psets 183 00:08:01,530 --> 00:08:03,640 สามเราให้มากที่สุด น้ำหนักให้ถูกต้อง 184 00:08:03,640 --> 00:08:06,140 เพราะเห็นได้ชัดว่าโค้ชของคุณ ควรได้รับการทดสอบสำหรับกรณี 185 00:08:06,140 --> 00:08:08,480 ที่เราต้องการมันเพื่อทดสอบ 186 00:08:08,480 --> 00:08:11,000 >> พวกคุณมีทั้งหมด check50 ที่จำหน่ายของคุณ 187 00:08:11,000 --> 00:08:13,730 มันเป็นฟังก์ชั่นที่มีประโยชน์มาก ที่พวกคุณสามารถทั้งหมด 188 00:08:13,730 --> 00:08:17,560 อัพโหลดรหัสของคุณไปยังเซิร์ฟเวอร์ของเรา ที่เราจะตรวจสอบมันสำหรับคุณ 189 00:08:17,560 --> 00:08:20,800 และคุณได้เห็นเหล่านั้น ใบหน้าบึ้งใบหน้ายิ้ม 190 00:08:20,800 --> 00:08:22,119 พวกเขากำลังจริงๆที่เป็นประโยชน์ 191 00:08:22,119 --> 00:08:23,910 กรุณาอย่าเป็น นักศึกษาที่ชอบความพยายาม 192 00:08:23,910 --> 00:08:26,230 เพื่อ hardcode ในทุกคำตอบให้กับพวกเขา 193 00:08:26,230 --> 00:08:30,050 ผมเคยเห็นแน่นอน pset ที่ ใครสักคนที่เห็นค่าทั้งหมดของ check50 194 00:08:30,050 --> 00:08:33,429 และพวกเขาก็เขียนยากถ้า in-- จำนวนนี้พิมพ์ออกมาจำนวนนี้ 195 00:08:33,429 --> 00:08:35,080 ถ้าตัวเลขที่พิมพ์ตัวเลขที่ 196 00:08:35,080 --> 00:08:36,090 อย่าทำอย่างนั้น 197 00:08:36,090 --> 00:08:39,360 >> แม้ในทางเทคนิค check50 ถูกต้อง 198 00:08:39,360 --> 00:08:41,809 วิธีการของคุณแก้ ปัญหาที่เกิดขึ้นไม่ถูกต้อง 199 00:08:41,809 --> 00:08:45,770 ดังนั้นเพียงแค่ใช้ check50 เท่าที่จำเป็น 200 00:08:45,770 --> 00:08:48,497 แต่ยังให้แน่ใจว่าคุณ เข้าใจวิธีการที่จะทำงาน 201 00:08:48,497 --> 00:08:50,580 โปรแกรมจะทำงาน นอกเหนือไปจาก check50, 202 00:08:50,580 --> 00:08:53,120 เพราะเราไม่สามารถทดสอบทุก กรณีที่เป็นไปได้ของ check50 203 00:08:53,120 --> 00:08:55,440 เราจะได้รับการทดสอบบางคน 204 00:08:55,440 --> 00:09:00,390 >> การออกแบบเป็นหลักวิธี ออกแบบมาอย่างดีเป็นรหัสของคุณ? 205 00:09:00,390 --> 00:09:04,150 ถ้าคุณเป็นหลายสำเนาวาง บรรทัดของรหัสหลาย ๆ ครั้ง 206 00:09:04,150 --> 00:09:06,960 บางทีคุณอาจจะไม่ได้มีค่อนข้าง การออกแบบที่ดีที่สุดในรหัสของคุณ 207 00:09:06,960 --> 00:09:09,470 บางทีมันอาจจะถึงเวลาที่จะเพิ่มห่วงว่า 208 00:09:09,470 --> 00:09:12,090 เป็นหลักที่นี่เป็นเพียงทั้งหมด เกี่ยวกับการพยายามที่จะทำรหัสของคุณ 209 00:09:12,090 --> 00:09:17,010 พยายามที่จะเขียนรหัสของคุณได้อย่างมีประสิทธิภาพ ที่เป็นไปได้เพื่อให้โปรแกรมของคุณทำงาน 210 00:09:17,010 --> 00:09:19,630 เร็วที่สุดเท่าที่จะทำได้. 211 00:09:19,630 --> 00:09:20,996 >> สุดท้ายเรามีสไตล์ 212 00:09:20,996 --> 00:09:24,360 รูปแบบเพื่อให้เป็นชนิดของ พลคำอัตนัย 213 00:09:24,360 --> 00:09:27,470 ฉันรู้ว่าเรามีอย่างเป็นทางการ สไตล์ 50 คู่มือสำหรับ CS50 ที่ 214 00:09:27,470 --> 00:09:30,050 ที่จะบอกคุณโอ้คุณ ควรมีพื้นที่ที่นี่ 215 00:09:30,050 --> 00:09:32,220 คุณควรชนิดของรูปแบบ รหัสของคุณด้วยวิธีนี้ 216 00:09:32,220 --> 00:09:34,070 คุณควรตั้งชื่อสิ่งที่ทางนี้ 217 00:09:34,070 --> 00:09:38,180 >> ฉันไม่สนใจต่อวิธี คุณเลือกที่จะรูปแบบรหัสของคุณ 218 00:09:38,180 --> 00:09:39,840 เพียงตราบเท่าที่คุณอยู่สม่ำเสมอ 219 00:09:39,840 --> 00:09:43,732 ตัวอย่างเช่นถ้าคุณชอบที่จะ ออกจากพื้นที่หลังจากที่สี่ของคุณ 220 00:09:43,732 --> 00:09:45,690 ก่อนสี่วงของคุณ เพียงแค่ทำทุกครั้ง 221 00:09:45,690 --> 00:09:46,523 อย่าชนิดของการทำมัน 222 00:09:46,523 --> 00:09:47,730 ไม่ทำมันอีกครั้ง 223 00:09:47,730 --> 00:09:51,046 ถ้าคุณชอบที่จะให้หยิก พื้นที่จัดฟันวิธีการบางอย่าง 224 00:09:51,046 --> 00:09:52,170 เพียงแค่เสมอทำแบบนั้น 225 00:09:52,170 --> 00:09:54,628 อย่าทำชนิดของมันบาง และที่นี่ไม่ได้มีที่ใดที่หนึ่ง 226 00:09:54,628 --> 00:09:57,010 เมื่อเราจัดลำดับ มันยากจริงๆ 227 00:09:57,010 --> 00:09:59,420 ถ้าผมมีความคิดว่าไม่มี คุณกำลังจัดรูปแบบรหัสของคุณ 228 00:09:59,420 --> 00:10:02,064 สิ่งที่แปลกประหลาดและนอกสถานที่ 229 00:10:02,064 --> 00:10:04,980 หากคุณเพียงแค่ให้มันสอดคล้องก็ ง่ายมากสำหรับฉันเป็นมากขึ้น 230 00:10:04,980 --> 00:10:06,310 เพื่อให้สามารถอ่านรห​​ัสของคุณ 231 00:10:06,310 --> 00:10:09,393 มันง่ายมากสำหรับคุณเป็นนักเรียน เพื่อให้สามารถมองผ่านรห​​ัสของคุณ 232 00:10:09,393 --> 00:10:11,720 และดูว่ามีอะไรผิดปกติกับ มันเฉือนเหตุผลที่มีปัญหา 233 00:10:11,720 --> 00:10:15,740 สไตล์เป็นหนึ่งในสิ่งที่ง่ายที่สุด พวกคุณจะทำอย่างไรเพื่อจะได้รับคะแนนเต็ม 234 00:10:15,740 --> 00:10:18,770 โดยเฉพาะอย่างยิ่งถ้าคุณเพียงแค่ดูแลถ้า คุณจ่ายห้านาทีของความสนใจ 235 00:10:18,770 --> 00:10:22,760 รหัสของคุณทุกสัปดาห์คุณควร จะได้รับคะแนนเต็มรูปแบบ 236 00:10:22,760 --> 00:10:26,020 >> สุดท้ายเรามีสิ่งที่เรียกว่า ตัวคูณขอบเขต 237 00:10:26,020 --> 00:10:28,890 Scope-- ฉันรู้ว่ามันใหญ่ คำโดยเฉพาะอย่างยิ่งในชั้นนี้ 238 00:10:28,890 --> 00:10:31,030 แต่ขอบเขตทั้งหมดที่หมายถึง คือการที่คุณกำลังพยายาม 239 00:10:31,030 --> 00:10:33,670 psets เพื่อที่ดีที่สุดของความสามารถของคุณ 240 00:10:33,670 --> 00:10:37,180 หากคุณเปิดในสาม สี่ปัญหาของคุณ 241 00:10:37,180 --> 00:10:39,460 และไม่ได้พยายาม สุดท้ายคุณอาจ 242 00:10:39,460 --> 00:10:41,630 จะสูญเสียบางจุดในขอบเขต 243 00:10:41,630 --> 00:10:44,560 >> แม้ว่าคุณจะเพียงแค่เริ่มต้นปัญหา ทำดีที่สุดของคุณที่จะเดินผ่านมัน 244 00:10:44,560 --> 00:10:47,691 ถึงแม้ว่ามันจะไม่ทำงานเปิดใน เพราะที่แสดงให้เห็นและแสดงให้เห็น 245 00:10:47,691 --> 00:10:50,190 ให้เราเห็นว่าคุณกำลังพยายามที่ คุณพยายามที่ปัญหาตั้ง 246 00:10:50,190 --> 00:10:51,430 ที่ดีที่สุดของความสามารถของคุณ 247 00:10:51,430 --> 00:10:53,800 แล้วเราสามารถให้คุณ จุดที่เต็มรูปแบบสำหรับขอบเขต 248 00:10:53,800 --> 00:10:58,715 >> ขอบเขตเป็นสิ่งที่สำคัญมากสำหรับเราเมื่อ พูดคุยเกี่ยวกับการลดลงต่ำสุด pset คะแนน 249 00:10:58,715 --> 00:11:02,010 ดังนั้นในช่วงที่ ภาคการศึกษาที่พวกคุณมีเก้า psets 250 00:11:02,010 --> 00:11:05,340 และเราจะจริงจะลดลง คะแนนต่ำสุดจากผู้ที่เก้า 251 00:11:05,340 --> 00:11:07,670 แต่ถ้าคุณมีจุดขอบเขต 252 00:11:07,670 --> 00:11:11,120 >> ดังนั้นถ้าคุณเปิดใน pset ไม่สมบูรณ์ น่าเสียดายที่เราไม่สามารถวางที่หนึ่ง 253 00:11:11,120 --> 00:11:13,540 เพราะขอบเขตของคุณ จุดที่ได้รับการไม่แล้วเสร็จ 254 00:11:13,540 --> 00:11:16,570 ดังนั้นแม้ว่าคุณจะมีสัปดาห์อันยิ่งใหญ่ ที่คุณกำลังจะตายและคุณป่วย 255 00:11:16,570 --> 00:11:20,040 หรือสุนัขของคุณตาย, แมวของคุณตาย และคุณมากเกินไปกับบ้าน 256 00:11:20,040 --> 00:11:21,074 เพียงแค่พยายามที่ pset 257 00:11:21,074 --> 00:11:22,490 ทำมันที่ดีที่สุดของความสามารถของคุณ 258 00:11:22,490 --> 00:11:23,840 ถ้ามันไม่ทำงานมันไม่สำคัญ 259 00:11:23,840 --> 00:11:24,506 เพียงแค่เปิดใน 260 00:11:24,506 --> 00:11:26,590 อย่างน้อยเราก็สามารถให้ คุณชี้สำหรับความพยายาม 261 00:11:26,590 --> 00:11:28,510 >> สำหรับความพยายามในชั้นนี้ 262 00:11:28,510 --> 00:11:30,170 อย่างน้อยลดลงคะแนนที่ต่ำที่สุดสำหรับความพยายาม 263 00:11:30,170 --> 00:11:32,354 เพื่อใช่ 264 00:11:32,354 --> 00:11:33,270 นั่นคือมันสวยมาก 265 00:11:33,270 --> 00:11:36,521 ไม่มีใครมีคำถามอื่น ๆ ห่างไกลในวิธีที่เราเกรดในชั้นเรียนหรือไม่ 266 00:11:36,521 --> 00:11:37,187 หรือใด ๆ ของเหล่านี้หรือไม่ 267 00:11:37,187 --> 00:11:41,220 ใด ๆ เหล่านี้เพื่อให้ far-- ส่วนเวลาทำงาน? 268 00:11:41,220 --> 00:11:41,720 เย็น 269 00:11:41,720 --> 00:11:46,720 270 00:11:46,720 --> 00:11:47,800 ตกลง. 271 00:11:47,800 --> 00:11:51,260 >> ดังนั้นนี่คือเรื่องที่ไม่มี ใครจริงๆชอบที่จะพูดคุยเกี่ยวกับ 272 00:11:51,260 --> 00:11:53,084 ผมไม่ชอบที่จะพูดคุยเกี่ยวกับเรื่องนี้ 273 00:11:53,084 --> 00:11:55,250 พวกคุณไม่ต้องการ ที่จะได้ยินฉันพูดคุยเกี่ยวกับเรื่องนี้ 274 00:11:55,250 --> 00:11:57,690 แต่น่าเสียดายที่เราทุกคน มีการพูดคุยเกี่ยวกับเรื่องนี้ 275 00:11:57,690 --> 00:12:00,110 เดวิดใช้เวลา 20 นาที บรรยายพูดถึงมัน 276 00:12:00,110 --> 00:12:02,580 และนั่นคือเรื่อง ของความซื่อสัตย์ทางวิชาการ 277 00:12:02,580 --> 00:12:08,110 >> ดังนั้นเราทุกคนที่นี่อาจจะเขียนได้ บางครั้งการเขียนเรียงความในอาชีพของเราเยล 278 00:12:08,110 --> 00:12:11,800 เราอาจจะเคยพูดคุยที่เราได้ รับการบอกว่าจะไม่ได้ขโมยความคิดการเขียนเรียงความของเรา 279 00:12:11,800 --> 00:12:13,940 เพราะการทำงานที่ไม่ได้เป็นของเรา 280 00:12:13,940 --> 00:12:18,109 ในวิทยาการคอมพิวเตอร์ที่เรามี ชนิดเดียวกันของแนวคิด 281 00:12:18,109 --> 00:12:20,150 ทุกงานที่คุณส่ง รหัสทุกสิ่งที่คุณเขียน 282 00:12:20,150 --> 00:12:21,900 ควรจะเป็นรหัสที่คุณเขียน 283 00:12:21,900 --> 00:12:24,280 ไม่ควรที่จะเป็นรหัสที่คุณได้ คัดลอกมาจากที่อื่น 284 00:12:24,280 --> 00:12:26,777 ไม่ควรจะเป็นรหัสที่ คุณได้ googled และ plopped ใน 285 00:12:26,777 --> 00:12:28,360 และคุณไม่ทราบจริงๆว่าการทำงาน 286 00:12:28,360 --> 00:12:32,440 ชนิดของคุณมีความรู้สึกของ สิ่งที่มันทำ แต่ไม่ได้จริงๆ 287 00:12:32,440 --> 00:12:36,562 เมื่อสงสัยเป็นหลัก มันเป็นเพียงแค่จะเหมาะสม 288 00:12:36,562 --> 00:12:38,520 ในหลักสูตรของเราเรามี รายชื่อทั้งหมดของสิ่งที่ 289 00:12:38,520 --> 00:12:40,560 ที่เราเห็นเป็นที่เหมาะสม เมื่อเทียบกับการไม่เหมาะสม 290 00:12:40,560 --> 00:12:43,820 >> ยกตัวอย่างเช่นที่เหมาะสม เป็นคุณและเพื่อนของคุณ 291 00:12:43,820 --> 00:12:47,360 การพูดคุยในสิ่งที่วิธีที่ดีที่สุดที่จะไป เกี่ยวกับเหตุผลในการแก้ปัญหา 292 00:12:47,360 --> 00:12:48,910 นั่นคือที่เหมาะสมเป็นธรรม 293 00:12:48,910 --> 00:12:53,244 สิ่งที่จะไม่ได้มีเหตุผลคือถ้าคุณ พวกได้ร่วมกันพิมพ์รหัสเดียวกัน 294 00:12:53,244 --> 00:12:54,410 และหันในรหัสเดียวกัน 295 00:12:54,410 --> 00:12:56,302 ที่ไม่เหมาะสม 296 00:12:56,302 --> 00:12:57,510 สิ่งเดียวกันชนิดของการเขียนเรียงความ 297 00:12:57,510 --> 00:12:59,290 ถ้าคุณต้องการที่จะหารือเกี่ยวกับ กับเพื่อนของคุณเดี๋ยวก่อน 298 00:12:59,290 --> 00:13:00,220 นี่คือสิ่งที่ผมอยากจะเขียนเกี่ยวกับ 299 00:13:00,220 --> 00:13:02,500 เหล่านี้เป็นขั้นตอนที่ผมต้องการ ใช้เวลาในการเขียนเกี่ยวกับเรื่องที่ดี 300 00:13:02,500 --> 00:13:03,208 นั่นช่างวิเศษสุด ๆ. 301 00:13:03,208 --> 00:13:04,790 กรุณาทำงานร่วมกันกับคนอื่น ๆ 302 00:13:04,790 --> 00:13:06,540 ถ้าพวกคุณเริ่มต้น เขียนในสิ่งเดียวกัน 303 00:13:06,540 --> 00:13:10,020 เปิดในบทความเดียวกันที่ตกลงน้อย 304 00:13:10,020 --> 00:13:13,200 ดังนั้นเมื่อมีข้อสงสัยก็ไม่ได้ทำมัน 305 00:13:13,200 --> 00:13:16,940 >> ที่นี่เราใน CS50 เรามีสคริป ที่ทำงานโดยอัตโนมัติในการทดสอบ 306 00:13:16,940 --> 00:13:21,740 ไม่เพียง แต่ความถูกต้องของรหัสของคุณ แต่ยังเป็นเอกลักษณ์ของรหัสของคุณ 307 00:13:21,740 --> 00:13:25,920 ดังนั้นโปรดอย่าทำให้เราอยู่ในตำแหน่ง ต้องดูกรณีของคุณที่จะเอ็กซ์คอมม์ 308 00:13:25,920 --> 00:13:31,110 กรุณาเพียงสำหรับทุกคนให้เพียง ทำให้เรื่องนี้เป็นประสบการณ์ที่ยอดเยี่ยม 309 00:13:31,110 --> 00:13:33,600 ทุกคนรู้ดีกว่า เราทุกคนมีความสุข 310 00:13:33,600 --> 00:13:37,926 และเรามีการตั้งค่าทั้งหมดขึ้นอยู่กับ ประสบความสำเร็จในหลักสูตรนี้ 311 00:13:37,926 --> 00:13:39,800 บางสิ่งบางอย่างที่มาก ที่ไม่ซ้ำกันเกี่ยวกับชั้นนี้ 312 00:13:39,800 --> 00:13:42,660 ที่ผมคิดว่าทุกคนควรจริงๆ ให้ความสนใจกับคือว่าเรามี 313 00:13:42,660 --> 00:13:44,930 สิ่งที่เรียกว่าเสียใจ ประโยคหนึ่งในหลักสูตรของเรา 314 00:13:44,930 --> 00:13:50,010 เพื่อเป็นหลักภายใน 72 ชั่วโมงหาก คุณเชื่อว่าคุณได้ทำบางสิ่งบางอย่าง 315 00:13:50,010 --> 00:13:53,240 คุณไม่แน่ใจว่าจริงๆ เหมาะสมโปรดมาให้เรา 316 00:13:53,240 --> 00:13:57,220 เราสัญญาว่าภายใน 72 ชั่วโมง เราจะจัดการกับกรณีตัวเอง 317 00:13:57,220 --> 00:13:59,820 โดยไม่ต้องหมายถึงที่สูงขึ้น ผู้มีอำนาจในการบริหารงาน 318 00:13:59,820 --> 00:14:03,100 >> ดังนั้นถ้าคุณมาหาฉันและพูดว่า Andi เดี๋ยวก่อนฉันขอโทษจริงๆ 319 00:14:03,100 --> 00:14:07,620 แต่ผมคิดว่ามีเส้นคู่ในของฉัน รหัสคืนที่ผ่านมาว่าชนิดของฉัน googled, 320 00:14:07,620 --> 00:14:10,120 ได้ออกจากกอง มากเกินคัดลอกและวาง 321 00:14:10,120 --> 00:14:13,680 และฉันจริงๆขอโทษจริงๆ เกี่ยวกับที่แจ้งให้เราทราบ 322 00:14:13,680 --> 00:14:16,900 กรุณาอย่าเพียงแค่ให้มันเปื่อยเน่า และก็หวังว่าฉันจับมัน 323 00:14:16,900 --> 00:14:17,784 เราจะจับมัน 324 00:14:17,784 --> 00:14:18,450 เพียงแค่มาหาฉัน 325 00:14:18,450 --> 00:14:20,520 แจ้งให้เราทราบภายใน 72 ชั่วโมง 326 00:14:20,520 --> 00:14:22,240 เราจะคิดออกวิธีการแก้ปัญหา 327 00:14:22,240 --> 00:14:26,679 และเราสัญญาว่าเราจะไม่ได้หมายถึง หน่วยงานในมหาวิทยาลัยเป็นหลัก 328 00:14:26,679 --> 00:14:29,220 ดังนั้นจึงเป็นประโยชน์สูงสุดของคุณ เพียงแค่จะซื่อสัตย์กับทุกคน 329 00:14:29,220 --> 00:14:31,720 มีส่วนร่วมในการเรียนการสอน 330 00:14:31,720 --> 00:14:34,630 >> ตกลง. 331 00:14:34,630 --> 00:14:35,240 ตกลง. 332 00:14:35,240 --> 00:14:37,800 ดังนั้นตอนนี้อย่างรวดเร็วก่อนที่ ผมย้ายไปไม่ทุกคน 333 00:14:37,800 --> 00:14:42,670 มีคำถามเกี่ยวกับโลจิสติก เกี่ยวกับหลักสูตรวิธีการที่เรากำลังจะไปทำงาน 334 00:14:42,670 --> 00:14:45,982 ส่วนวิธีการที่จะไป ในการทำงานใด ๆ ของที่? 335 00:14:45,982 --> 00:14:46,711 ตกลง. 336 00:14:46,711 --> 00:14:47,210 ใช่ 337 00:14:47,210 --> 00:14:48,126 >> ผู้ชม: [ไม่ได้ยิน] 338 00:14:48,126 --> 00:14:50,414 339 00:14:50,414 --> 00:14:51,080 ANDI เป็ง: ใช่ 340 00:14:51,080 --> 00:14:54,850 ดังนั้น quizzes-- จำนวนของคุณเป็น ในส่วนจันทร์ / พุธ? 341 00:14:54,850 --> 00:14:56,700 กี่คนที่คุณอยู่ใน วันอังคาร / พฤหัสบดี? 342 00:14:56,700 --> 00:14:58,550 ตกลงดังนั้นจึงแยกของแข็งที่นี่ 343 00:14:58,550 --> 00:15:00,900 ดังนั้นวิธีการที่เราเรียกใช้ ที่มหาวิทยาลัยเยลมันคือการที่เรา 344 00:15:00,900 --> 00:15:04,040 จะมีสองแยก quizzes-- หนึ่งสำหรับ section-- แต่ละที่ 345 00:15:04,040 --> 00:15:06,160 จะได้รับในชั้นเรียน 346 00:15:06,160 --> 00:15:09,310 ฉันคิดว่ามันตุลาคมท้ายของเดือนตุลาคม สิ่งที่ต้องการที่เป็นหนึ่งสัปดาห์ 347 00:15:09,310 --> 00:15:10,794 ของแบบทดสอบ 348 00:15:10,794 --> 00:15:11,960 ใช่เพียงเพื่อมาในชั้นเรียน 349 00:15:11,960 --> 00:15:13,920 เมื่อวันที่จันทร์หรือวันพุธ คุณจะใช้เวลาตอบคำถาม 350 00:15:13,920 --> 00:15:16,336 เมื่อวันที่วันอังคารหรือวันพฤหัสบดี คุณจะใช้แบบทดสอบที่แตกต่างกัน 351 00:15:16,336 --> 00:15:18,570 แต่วัสดุเดียวกับที่จะได้รับการคุ้มครอง 352 00:15:18,570 --> 00:15:19,160 ใช่ 353 00:15:19,160 --> 00:15:20,660 คำถามที่ดี. 354 00:15:20,660 --> 00:15:21,160 ใช่ 355 00:15:21,160 --> 00:15:23,260 >> ผู้ชม: เราจะอยู่ที่ไหน ไปตรวจสอบเกรดของเราหรือไม่ 356 00:15:23,260 --> 00:15:23,926 >> ANDI เป็ง: ใช่ 357 00:15:23,926 --> 00:15:28,420 ดังนั้นผมจึงจะส่งออก อีเมลสิ่งที่ในแต่ละสัปดาห์ 358 00:15:28,420 --> 00:15:31,460 เมื่อเป็นแบบทดสอบ graded-- หรือ ขออภัยเมื่อ psets มีคะแนน 359 00:15:31,460 --> 00:15:34,120 Psets มักจะมีการเปิด ในตอนเที่ยงหรือศุกร์ 360 00:15:34,120 --> 00:15:37,540 ดังนั้นผมสัญญาว่าผมจะ พยายามที่จะได้รับพวกเขากลับมาให้คุณ 361 00:15:37,540 --> 00:15:40,000 ตอนเที่ยงของวันศุกร์ที่ดังต่อไปนี้ 362 00:15:40,000 --> 00:15:44,950 >> เมื่อใดก็ตามที่ผมเกรด pset ผมจะส่ง การแจ้งเตือนเกี่ยวกับการออกหนังสือชั้นที่ 363 00:15:44,950 --> 00:15:47,070 ที่จะบอกคุณคะแนนของคุณ สามารถดูออนไลน์ 364 00:15:47,070 --> 00:15:52,022 ดังนั้นสิทธิในสัปดาห์นี้หลังจากที่ผม เสร็จสิ้นการจัดลำดับ psets สัปดาห์ที่ผ่านมา 365 00:15:52,022 --> 00:15:54,230 พวกคุณจะได้รับอีเมล แจ้งเตือนบอกคุณ 366 00:15:54,230 --> 00:15:55,870 เดี๋ยวก่อนนี่คือที่คุณ ไปดูการเรียนของคุณ 367 00:15:55,870 --> 00:15:57,680 และคุณสามารถเห็นทุก รายละเอียดของการเรียนของคุณ 368 00:15:57,680 --> 00:15:58,555 คุณสามารถเห็นความคิดเห็น 369 00:15:58,555 --> 00:16:00,360 โอ้สิ่งที่ได้อย่างรวดเร็วนอกจากนี้ยังมี 370 00:16:00,360 --> 00:16:03,060 ส่วนความคิดเห็นในที่ดี หนังสือเล่มนี้เป็นที่ที่ผมอาจจะ 371 00:16:03,060 --> 00:16:05,300 ใช้เวลาส่วนใหญ่ของการจัดลำดับเวลาของฉัน 372 00:16:05,300 --> 00:16:07,094 ดังนั้นสิ่งหนึ่งที่เป็น เมื่อสิ่งที่สำคัญจริงๆ 373 00:16:07,094 --> 00:16:09,010 พวกคุณกำลังดู เกรดของคุณใน psets ของคุณ 374 00:16:09,010 --> 00:16:11,400 ไม่ได้เป็นเพียงมอง ที่คะแนนทางกายภาพ 375 00:16:11,400 --> 00:16:14,630 แต่ยังสละเวลาในการ จริงๆอ่านความคิดเห็นของฉัน 376 00:16:14,630 --> 00:16:17,820 >> บ่อยครั้งที่ช่วยให้คุณข้อเสนอแนะ เกี่ยวกับวิธีการที่คุณกำลังแก้ปัญหา 377 00:16:17,820 --> 00:16:20,480 ถ้าคุณต้องการที่จะทำ บางสิ่งบางอย่างได้ดีขึ้นเล็กน้อย, 378 00:16:20,480 --> 00:16:24,080 การวิจารณ์ที่สร้างสรรค์โดยปกติจะเป็น รับที่ดีที่สุดในบรรดาส่วนความเห็น 379 00:16:24,080 --> 00:16:26,950 ดังนั้นโปรดกรุณาฉันจะ ที่จะใช้เวลาในการเขียนแสดงความคิดเห็น 380 00:16:26,950 --> 00:16:30,440 กรุณาผมอยากจะขอบคุณ ถ้าพวกคุณจะอ่านความคิดเห็นเหล่านั้น 381 00:16:30,440 --> 00:16:31,170 ตกลง. 382 00:16:31,170 --> 00:16:34,150 เย็น 383 00:16:34,150 --> 00:16:34,680 >> ทั้งหมดขวา 384 00:16:34,680 --> 00:16:40,680 ดังนั้นเรากำลังจะเริ่มต้นการพูดคุย และเพียงแค่การตรวจสอบได้อย่างรวดเร็ว 385 00:16:40,680 --> 00:16:45,040 บางส่วนของวัสดุจาก สัปดาห์ที่ศูนย์เพียงเพื่อให้เรา 386 00:16:45,040 --> 00:16:48,760 บนหน้าเว็บที่เหมาะสมสำหรับ จุดเริ่มต้นของปัญหาที่เกิดขึ้นในสัปดาห์นี้ 387 00:16:48,760 --> 00:16:52,600 ดังนั้นห่วงในขณะที่เป็นหนึ่ง ของสามประเภทของลูป 388 00:16:52,600 --> 00:16:54,510 เรากล่าวก่อนหน้านี้ในชั้นนี้ 389 00:16:54,510 --> 00:16:57,060 >> ห่วงในขณะที่หลัก เขียนในไวยากรณ์ 390 00:16:57,060 --> 00:17:00,666 ที่ในขณะที่เงื่อนไขบางอย่าง ทำเช่นนี้ซ้ำแล้วซ้ำอีกใช่มั้ย? 391 00:17:00,666 --> 00:17:02,040 คิดว่ามันเป็นภาพกราฟิกที่นี่ 392 00:17:02,040 --> 00:17:04,780 คุณกำลังจะเริ่มต้นที่ จุดหนึ่งในรหัสของคุณ 393 00:17:04,780 --> 00:17:09,030 คุณกำลังจะเข้าสู่สภาพห่วง if-- ฉันไม่ know-- x น้อยกว่าหนึ่ง 394 00:17:09,030 --> 00:17:11,677 >> หากเป็นความจริงที่คุณกำลังจะ การดำเนินการของร่างกายห่วง 395 00:17:11,677 --> 00:17:14,010 และคุณกำลังจะให้ทำ อีกครั้งอีกครั้งอีกครั้ง 396 00:17:14,010 --> 00:17:17,900 มากกว่าและ over-- ซึ่งเป็นเหตุผลที่มันเป็น loop-- จนสภาพของคุณจะกลายเป็น 397 00:17:17,900 --> 00:17:19,079 เท็จ 398 00:17:19,079 --> 00:17:22,140 ดังนั้นในทางนี้วงในขณะที่ เป็นหนึ่งในวิธีที่ง่าย 399 00:17:22,140 --> 00:17:25,619 ในการเขียนการจัดเรียงของเงื่อนไขใด ๆ ที่ ความต้องการที่จะทำซ้ำมากกว่าและเหนือและมากกว่า 400 00:17:25,619 --> 00:17:28,109 เพียงระมัดระวังเมื่อใดก็ตามที่ คุณกำลังเขียนเรียงลำดับของห่วงใด ๆ 401 00:17:28,109 --> 00:17:32,140 ว่าคุณมีสภาพเป็นทางออก รวมทั้งการปรับปรุงสิ่งที่มัน 402 00:17:32,140 --> 00:17:36,714 เพื่อให้วงของคุณไม่เพียง เรียกใช้ซ้ำแล้วซ้ำอีกเพียบ 403 00:17:36,714 --> 00:17:38,630 ในกรณีใด ๆ ที่คุณกำลังจะ เพื่อต้องการให้แน่ใจว่า 404 00:17:38,630 --> 00:17:42,670 ที่คุณกำลังจะเปลี่ยนมุมมองของบางอย่าง รหัสของคุณหรือที่ส่วนท้ายของวง 405 00:17:42,670 --> 00:17:46,680 เพียงเพื่อให้แน่ใจว่าคุณมีวิธี ของความคืบหน้าไปสู่​​สภาพ 406 00:17:46,680 --> 00:17:48,400 ที่คุณต้องการที่จะตอบสนองความต้องการที่จะจบ 407 00:17:48,400 --> 00:17:50,239 ไม่ว่าทำให้ความรู้สึกที่ทุกคน? 408 00:17:50,239 --> 00:17:52,530 เราก็ไม่ได้ต้องการที่จะเป็น ติดอยู่ในเกลียวที่นี้ 409 00:17:52,530 --> 00:17:55,710 ที่เราจะไปรอบ ๆ และรอบ ๆ และ มีวิธีที่จะทำลายห่วงไม่มี 410 00:17:55,710 --> 00:17:58,844 และห่วงทุกหลัก มีวิธีการทำที่ 411 00:17:58,844 --> 00:17:59,344 ตกลง. 412 00:17:59,344 --> 00:18:03,030 413 00:18:03,030 --> 00:18:06,060 >> ประการที่สองหลายท่าน ใน psets มาริโอของคุณ 414 00:18:06,060 --> 00:18:08,910 อาจจะมีการจ้างงาน ประเภทของวงนี้ 415 00:18:08,910 --> 00:18:11,802 มันถูกเรียกว่าทำในขณะที่ห่วง 416 00:18:11,802 --> 00:18:14,510 แรกของทุกทุกคนสามารถบอก สิ่งที่แตกต่างระหว่างสิ่งที่ต้องทำที่ 417 00:18:14,510 --> 00:18:16,586 ในขณะที่ห่วงและห่วงในขณะนั้นคืออะไร? 418 00:18:16,586 --> 00:18:17,086 ใช่ 419 00:18:17,086 --> 00:18:21,030 >> ผู้ชม: สิ่งที่ต้องทำในขณะที่ห่วง ทำงานที่แรก [ไม่ได้ยิน] 420 00:18:21,030 --> 00:18:22,120 >> ANDI เป็ง: ใช่ว่า 421 00:18:22,120 --> 00:18:27,130 ดังนั้นในขณะที่ทำห่วงเสมอไม่สิ่งที่ ที่อยู่ภายในทำภายในวงเล็บ 422 00:18:27,130 --> 00:18:30,520 และไม่มีเงื่อนไขที่ว่า ก่อนที่จะตรวจสอบการขอโทษ the--, 423 00:18:30,520 --> 00:18:32,940 ไม่ว่าก่อนที่รหัส ตรวจสอบสภาพ 424 00:18:32,940 --> 00:18:37,200 และโดยเฉพาะอย่างยิ่งที่เกี่ยวข้องกับเรา ที่นี่ในชั้นนี้เพราะเวลาส่วนใหญ่ 425 00:18:37,200 --> 00:18:41,450 เรากำลังจะต้องการที่จะแจ้งให้ ผู้ใช้สำหรับการเรียงลำดับของการป้อนข้อมูลบางส่วน 426 00:18:41,450 --> 00:18:43,520 และจากนั้นก็ขึ้นอยู่กับ การป้อนข้อมูลที่พวกเขาให้เรา 427 00:18:43,520 --> 00:18:46,150 แล้วเราสามารถประเมินโอ้ทำ เราจำเป็นต้องให้พวกเขาอีกครั้งหรือไม่ 428 00:18:46,150 --> 00:18:49,930 >> ดังนั้นในมาริโอหากผู้ใช้ให้คุณ ความสูงเชิงลบเช่น 429 00:18:49,930 --> 00:18:52,990 คุณกำลังจะไปพร้อมรับคำแรก และทำสิ่งที่อยู่ภายใน 430 00:18:52,990 --> 00:18:54,820 แล้วคุณกำลังจะไปตรวจสอบในขณะ 431 00:18:54,820 --> 00:18:57,570 คุณจะรู้ว่าเป็นลบ 1, คือจำนวนบวก? 432 00:18:57,570 --> 00:19:00,680 หากยังไม่ได้ผมจะไป กลับมาและทำซ้ำทำและทำซ้ำ 433 00:19:00,680 --> 00:19:03,950 และทำซ้ำและทำซ้ำจนกว่าพวกเขา ในที่สุดก็ทำให้คุณมีหมายเลขที่คุณชอบ 434 00:19:03,950 --> 00:19:07,002 ที่เราทุกคนสามารถใช้ในรหัสของเรา 435 00:19:07,002 --> 00:19:09,210 มันเป็นสิ่งสำคัญสวย เป็นหลักผู้ใช้ป้อนข้อมูลใด ๆ 436 00:19:09,210 --> 00:19:11,760 ฉันสามารถรับประกันคุณ ๆ เวลาอยู่ใน pset ที่ 437 00:19:11,760 --> 00:19:15,070 เราขอให้คุณป้อนข้อมูล การเรียงลำดับของรหัสใด ๆ เรา 438 00:19:15,070 --> 00:19:17,540 อาจจะทำให้คุณ กรณีทดสอบที่เรากำลัง 439 00:19:17,540 --> 00:19:21,200 จะให้สิ่งที่ไม่ดีที่ จะพยายามที่จะทำลายรหัสของคุณ 440 00:19:21,200 --> 00:19:25,044 >> ถ้าเราพยายามที่จะขอให้คุณใส่ จำนวนเต็มเราก็อาจทำให้คุณสตริง 441 00:19:25,044 --> 00:19:26,460 และดูว่าคุณจะจัดการที่ 442 00:19:26,460 --> 00:19:30,610 ถ้าเราขอให้คุณจ้างอายุ, เราอาจจะให้คุณเป็นจำนวนลบ 443 00:19:30,610 --> 00:19:32,340 เพื่อดูว่าคุณจะจัดการที่ 444 00:19:32,340 --> 00:19:37,260 เพียงให้แน่ใจว่าพวกคุณกำลังทดสอบสำหรับ ในกรณีที่คุณไม่ได้รับที่ดีที่สุด 445 00:19:37,260 --> 00:19:38,590 การป้อนข้อมูลให้เพียงกล่าวว่า 446 00:19:38,590 --> 00:19:40,510 และทำในขณะที่ห่วง คืออาจเกิดสิ่งที่ดีที่สุด 447 00:19:40,510 --> 00:19:45,260 วิธีการออกแบบรหัสของคุณเพื่อให้ ให้เป็นไปตามขอบเขตที่ 448 00:19:45,260 --> 00:19:45,760 ตกลง. 449 00:19:45,760 --> 00:19:48,930 450 00:19:48,930 --> 00:19:49,470 >> ตกลง. 451 00:19:49,470 --> 00:19:53,270 ดังนั้นนี่คืออาจจะมากที่สุด ห่วงซับซ้อนออกจากสาม 452 00:19:53,270 --> 00:19:54,990 ที่เราได้มองไปที่เพื่อให้ห่างไกล 453 00:19:54,990 --> 00:19:56,689 และดูเหมือนว่าน่ากลัวมากในตอนแรก 454 00:19:56,689 --> 00:19:59,730 แต่ผมรับประกันคุณเมื่อพวกคุณ ได้รับการแขวนของวิธีการใช้สำหรับห่วง 455 00:19:59,730 --> 00:20:03,320 มันเป็นหนึ่งในสิ่งที่มีประโยชน์มากที่สุด เครื่องมือที่มีประโยชน์มากที่สุดในคลังแสงของคุณ 456 00:20:03,320 --> 00:20:05,300 สำหรับก้าวไปข้างหน้าในชั้นนี้ 457 00:20:05,300 --> 00:20:09,920 >> ดังนั้นสำหรับตัวอย่างเช่นในเกา เรามีบล็อกนี้ง่ายมาก 458 00:20:09,920 --> 00:20:13,180 ที่กล่าวว่าเพียงแค่ทำซ้ำบางนี้ วลีจำนวนครั้ง 459 00:20:13,180 --> 00:20:16,260 โดยวิธีการที่ SAJ-- ที่ Scaz Andi เจสัน 460 00:20:16,260 --> 00:20:18,740 เรามักจะเข้าใช้งานอีเมล์ของเรา SAJ 461 00:20:18,740 --> 00:20:20,360 ถ้าเราบอก SAJ ไม่ต้องสับสน 462 00:20:20,360 --> 00:20:22,630 นั่นเป็นเพียงเรา 463 00:20:22,630 --> 00:20:28,600 >> ดังนั้นในเกาเราก็สามารถที่จะมี บล็อกที่กล่าวว่าฉันรักซ้ำ SAJ กัน! 464 00:20:28,600 --> 00:20:29,430 10 ครั้ง. 465 00:20:29,430 --> 00:20:30,130 ง่ายมาก. 466 00:20:30,130 --> 00:20:32,302 ตรรกะที่อยู่เบื้องหลังที่เป็น มากง่ายมากใช่มั้ย? 467 00:20:32,302 --> 00:20:35,260 ฉันต้องการที่จะเป็นครั้งแรกผ่านไปครั้งแรก เวลาและเห็นว่าเป็นครั้งที่สอง 468 00:20:35,260 --> 00:20:38,510 และเห็นว่าครั้งที่สามอื่น ๆ และอื่น ๆ จนกว่าคุณจะตี 10 469 00:20:38,510 --> 00:20:41,960 >> และวิธีที่เราจะแสดงให้เห็นว่าใน รหัสผ่านเป็นเพียงที่ง่ายสำหรับวง 470 00:20:41,960 --> 00:20:45,440 ดังนั้นคุณจะต้องประกาศ ตัวแปรของคุณที่นี่ในกรณีนี้ 471 00:20:45,440 --> 00:20:46,349 กับเป็น int 472 00:20:46,349 --> 00:20:47,390 เราจะตั้งชื่อมันฉ​​ัน 473 00:20:47,390 --> 00:20:49,500 เรากำลังจะเริ่มต้นมันเป็น 0 474 00:20:49,500 --> 00:20:52,490 และรุ่นที่มีการหยุด จะเป็นฉันน้อยกว่า 10 475 00:20:52,490 --> 00:20:54,622 และการปรับปรุงเป็นไปได้ผม ++ 476 00:20:54,622 --> 00:20:57,750 >> และภายในวงก็จะ ในการดำเนินการจนในที่สุดมัน 477 00:20:57,750 --> 00:21:01,490 ฮิตในตอนท้ายของสภาพที่ในที่ กรณีที่มันจะทำลายห่วง 478 00:21:01,490 --> 00:21:04,600 ควรจะมีสิ่งที่คุณ คนได้เห็นของทุกชนิดก่อน 479 00:21:04,600 --> 00:21:07,270 และมีการทำสำหรับปัญหาของคุณตั้งหนึ่ง 480 00:21:07,270 --> 00:21:12,310 ไม่มีใครมีคำถามใด ๆ เกี่ยวกับวงตอนนี้? 481 00:21:12,310 --> 00:21:12,930 ตกลง. 482 00:21:12,930 --> 00:21:13,430 ที่ดี 483 00:21:13,430 --> 00:21:17,520 484 00:21:17,520 --> 00:21:18,620 >> ตกลง. 485 00:21:18,620 --> 00:21:22,270 ดังนั้นสำหรับบรรดาของคุณที่มี อ่านข้อมูลจำเพาะ pset สำหรับสัปดาห์นี้ 486 00:21:22,270 --> 00:21:27,690 รู้ว่าเรากำลังจะมีการจ้างงาน สิ่งที่เรียกว่า ASCII และโต๊ะ ASCII 487 00:21:27,690 --> 00:21:32,380 ดาวิดในการบรรยายเดินไปในเวลาสั้น ๆ วิธีการทุกอย่างคอมพิวเตอร์ essentially-- 488 00:21:32,380 --> 00:21:35,410 มีการเข้ารหัสในคอมพิวเตอร์ใน ไบนารีในศูนย์และคน 489 00:21:35,410 --> 00:21:39,740 และวิธีการที่คอมพิวเตอร์จะสามารถ ในการจัดเก็บค่าที่แตกต่างกันนอกจากนี้ 490 00:21:39,740 --> 00:21:44,360 ไปศูนย์และคนจะผ่านการทำแผนที่ ตัวเลขเหล่านั้นจะเป็นตัวแทนของตัวเลขอื่น ๆ 491 00:21:44,360 --> 00:21:47,220 หรือตัวละครอื่น ๆ เป็นหลัก 492 00:21:47,220 --> 00:21:49,810 >> ดังนั้นในกรณีนี้ ASCII table-- ทั้งหมดมันไม่ 493 00:21:49,810 --> 00:21:53,600 เป็นตัวละครที่แผนที่หรือตัวอักษรเพื่อให้ตัวเลข 494 00:21:53,600 --> 00:21:57,385 ดังนั้นแฟ้มรหัสต้นฉบับใน computer-- เห็นของคุณ 495 00:21:57,385 --> 00:22:00,010 เดี๋ยวก่อนพวงของศูนย์และคนที่ ศูนย์และคน, ศูนย์และคน 496 00:22:00,010 --> 00:22:02,350 นั่นคือสิ่งที่เก็บไว้ใน หน่วยความจำที่แท้จริงของเครื่องคอมพิวเตอร์ของคุณ 497 00:22:02,350 --> 00:22:04,750 >> แต่เมื่อมนุษย์เราต้องการ สื่อสารกับคอมพิวเตอร์ 498 00:22:04,750 --> 00:22:08,249 เรา want-- พูดยกตัวอย่างเช่น ถ้าผมต้องการพิมพ์ใหญ่, 499 00:22:08,249 --> 00:22:10,540 ฉันจะต้องมีวิธีบาง บอกคอมพิวเตอร์โอ้ 500 00:22:10,540 --> 00:22:16,300 เมื่อฉันชนิด A พิมพ์ใหญ่ผมหมายถึง เป็นตัวแทนในไบนารี 501 00:22:16,300 --> 00:22:22,260 >> ดังนั้นวิธีที่เราทำที่โยน สิ่งที่เรียกว่าพลตาราง ASCII ที่ 502 00:22:22,260 --> 00:22:25,020 ที่เราเป็นมนุษย์เป็น โปรแกรมเมอร์เวลาที่ผ่านมาบางส่วน 503 00:22:25,020 --> 00:22:28,660 พลเราตัดสินใจว่าเรา กำลังจะกำหนดหมายเลขเหล่านี้ 504 00:22:28,660 --> 00:22:30,960 ค่าตัวละครเหล่านี้ 505 00:22:30,960 --> 00:22:32,720 >> ดังนั้นพวกคุณสามารถ google ออนไลน์นี้ 506 00:22:32,720 --> 00:22:37,120 ผมคิดว่ามีการเชื่อมโยงกับมันในของคุณ pset-- เพียงตารางแผนที่ ASCII, ASCII 507 00:22:37,120 --> 00:22:37,720 ตาราง. 508 00:22:37,720 --> 00:22:40,722 มันก็แปลไบนารี ตัวเลขเป็นตัวอักษร 509 00:22:40,722 --> 00:22:42,930 และมันก็เป็นไปได้มาก ชุดที่มีประโยชน์สำหรับปัญหาของคุณได้ 510 00:22:42,930 --> 00:22:45,470 เมื่อใดก็ตามที่คุณต้องการ คำนวณอะไรหรือถ้าคุณ 511 00:22:45,470 --> 00:22:47,880 ต้องการแสดงบางอย่าง ตัวอักษรหรือจำนวนเต็ม 512 00:22:47,880 --> 00:22:50,327 หรือจัดการกับตัวอักษรบางอย่าง 513 00:22:50,327 --> 00:22:52,160 มันเป็นไปได้มาก สิ่งสำคัญที่คุณทั้งหมด 514 00:22:52,160 --> 00:22:55,140 รู้วิธีที่จะนำทางตาราง ASCII 515 00:22:55,140 --> 00:23:01,260 >> ดังนั้นตัวอย่างเช่นพิมพ์ใหญ่ก เป็นตัวแทนจากจำนวน 65 516 00:23:01,260 --> 00:23:04,207 และตัวพิมพ์เล็ก เป็นตัวแทนจาก 97 517 00:23:04,207 --> 00:23:07,040 จึงเป็นสิ่งสำคัญที่จะรู้ว่า ความแตกต่างระหว่างสองค่า 518 00:23:07,040 --> 00:23:08,320 เป็น 32 519 00:23:08,320 --> 00:23:13,210 บ่อยครั้งถ้าคุณจำเป็นต้องแปลงจาก หนึ่งไปยังอีกที่แตกต่างกันคือ 32 520 00:23:13,210 --> 00:23:15,710 และไม่ต้องกังวลถ้าคุณเป็นประเภท ของความสับสนเกี่ยวกับเรื่องนี้ในตอนแรก 521 00:23:15,710 --> 00:23:20,230 เราจะไปกว่าวิธีการที่เราจะ จ้างนี้ในรหัสที่เกิดขึ้นจริง 522 00:23:20,230 --> 00:23:24,700 523 00:23:24,700 --> 00:23:26,380 >> ตกลง. 524 00:23:26,380 --> 00:23:30,770 ดังนั้นสำหรับบรรดาของคุณกับแล็ปท็อปออก อย่าลังเลที่จะดึงตาราง ASCII ที่ 525 00:23:30,770 --> 00:23:36,030 เพราะสิ่งเหล่านี้อาจจะ พวกคุณต้องใช้เพื่อการอ้างอิง 526 00:23:36,030 --> 00:23:38,100 สิ่งที่ตัวละคร 527 00:23:38,100 --> 00:23:38,640 ตกลง. 528 00:23:38,640 --> 00:23:42,840 >> ดังนั้นการรู้ว่าบางอย่าง ตัวอักษร map กับตัวเลขบางอย่าง 529 00:23:42,840 --> 00:23:47,240 ถ้าผมจะเรียกใช้เพียงครั้งแรก สายที่ code-- printf ที่ 530 00:23:47,240 --> 00:23:50,900 ตัวพิมพ์เล็กเป็นลบ พิมพ์ใหญ่เอไม่มีใคร 531 00:23:50,900 --> 00:23:55,880 มีการคาดเดาในสิ่งที่จะเป็น พิมพ์ออกจากหน้าจอตอนนี้? 532 00:23:55,880 --> 00:23:58,190 >> ดังนั้นครั้งแรกของทุกสิ่งที่ไม่ ตัวพิมพ์เล็กแทน? 533 00:23:58,190 --> 00:24:00,990 หมายเลขอะไรคือสิ่งที่ เข้ารหัสในตารางแอสกี 534 00:24:00,990 --> 00:24:01,490 ขออภัย? 535 00:24:01,490 --> 00:24:02,630 >> ผู้ชม: 97? 536 00:24:02,630 --> 00:24:03,630 >> ANDI PENG: 97 ที่ดี 537 00:24:03,630 --> 00:24:05,077 และสิ่งที่เป็นตัวพิมพ์ใหญ่หรือไม่? 538 00:24:05,077 --> 00:24:06,330 >> ผู้ชม: 65 539 00:24:06,330 --> 00:24:08,255 >> ANDI PENG: ดังนั้นสิ่งที่เป็นลบ 97 65? 540 00:24:08,255 --> 00:24:09,227 >> ผู้ชม: 32 541 00:24:09,227 --> 00:24:09,810 ANDI PENG: OK 542 00:24:09,810 --> 00:24:13,530 ดังนั้นสิ่งที่พวกคุณคิดว่าเป็นไปได้ เกิดขึ้นเมื่อฉันป้อนข้อมูลที่บรรทัดของรหัส 543 00:24:13,530 --> 00:24:14,670 ลงในคอมพิวเตอร์ของฉันได้อย่างไร 544 00:24:14,670 --> 00:24:17,981 545 00:24:17,981 --> 00:24:19,896 >> ผู้ชม: [ไม่ได้ยิน] 546 00:24:19,896 --> 00:24:21,020 ANDI PENG: ขออภัยพูดขึ้น 547 00:24:21,020 --> 00:24:22,520 ไม่ต้องห่วง. 548 00:24:22,520 --> 00:24:25,750 นี้เป็นความปลอดภัยมาก สภาพแวดล้อมการลบกล้อง 549 00:24:25,750 --> 00:24:27,550 เราทุกคนจะ to-- ไม่ต้องกังวล 550 00:24:27,550 --> 00:24:30,940 เพียงแค่เราทุกคนจะชอบแกล้ง มันเป็นเพียงแค่เราหนาวในห้องนี้ 551 00:24:30,940 --> 00:24:31,480 ไม่ต้องห่วง. 552 00:24:31,480 --> 00:24:33,410 ไม่มีคำถามโง่เกินไป 553 00:24:33,410 --> 00:24:35,300 ไม่มีคำตอบเป็นคำตอบที่โง่ 554 00:24:35,300 --> 00:24:38,260 ฉันอาจจะทำผิดพลาด ในหลักสูตรการเรียนการสอนของฉัน 555 00:24:38,260 --> 00:24:40,740 อย่างจริงจังคนเพียงแค่พูดโพล่งออกมา 556 00:24:40,740 --> 00:24:43,092 จะมีความมั่นใจในตัวเองคุณรู้หรือไม่? 557 00:24:43,092 --> 00:24:43,800 ดังนั้นสิ่งที่เป็นที่? 558 00:24:43,800 --> 00:24:47,990 ที่บอกว่าคำตอบที่ผ่านมา? 559 00:24:47,990 --> 00:24:48,540 ตกลง. 560 00:24:48,540 --> 00:24:50,380 ตะโกนที่ดีและชัดเจน 561 00:24:50,380 --> 00:24:51,220 >> ผู้ชม: 32? 562 00:24:51,220 --> 00:24:51,850 >> ANDI PENG: 32 563 00:24:51,850 --> 00:24:54,141 ตกลงให้ใช้รหัสนี้และ ดูว่าสิ่งที่เกิดขึ้น 564 00:24:54,141 --> 00:25:00,260 565 00:25:00,260 --> 00:25:00,760 ตกลง. 566 00:25:00,760 --> 00:25:03,300 567 00:25:03,300 --> 00:25:06,360 ดังนั้นในขณะที่พวกคุณสามารถชนิดของ เห็นสัญกรณ์โดยทั่วไปฉัน 568 00:25:06,360 --> 00:25:12,250 การตั้งค่าที่นี่สำหรับวิธีการที่เราจะจ้าง การเรียงลำดับของโปรแกรมในเครื่องคอมพิวเตอร์ของเราใด ๆ 569 00:25:12,250 --> 00:25:14,770 เรามีฟังก์ชั่นหลักของเรา ภายในฟังก์ชั่นหลักของเรา 570 00:25:14,770 --> 00:25:17,265 ฉันแค่จะคัดลอกและ วางบรรทัดของรหัสนี้ 571 00:25:17,265 --> 00:25:21,082 572 00:25:21,082 --> 00:25:23,540 นอกจากนี้จะต้องระมัดระวังในการที่พวกคุณ มีการคัดลอกและวางรหัส 573 00:25:23,540 --> 00:25:28,750 บางครั้งผู้ประกอบการบางอย่าง ไม่วางมากกว่าได้อย่างถูกต้อง 574 00:25:28,750 --> 00:25:31,397 ในกรณีที่ลบ สัญญาณที่เป็นจริงเส้นประ 575 00:25:31,397 --> 00:25:32,980 และเพื่อให้คอมพิวเตอร์ไม่ได้รับมันได้ 576 00:25:32,980 --> 00:25:35,870 ดังนั้นผมจึงต้องกลับไป ร่างกายอีกครั้งว่า 577 00:25:35,870 --> 00:25:37,846 เพียงระมัดระวังเมื่อ พวกคุณกำลังทำว่า 578 00:25:37,846 --> 00:25:41,178 579 00:25:41,178 --> 00:25:42,660 >> ตกลง. 580 00:25:42,660 --> 00:25:43,980 เรากำลังจะไปทำงานที่นี่ 581 00:25:43,980 --> 00:25:45,670 ดังนั้นเรากำลังจะลงในแผ่นซีดี section2 ของเรา 582 00:25:45,670 --> 00:25:50,470 583 00:25:50,470 --> 00:25:52,030 ผมเคยเรียกว่าโปรแกรมนี้ asciimath 584 00:25:52,030 --> 00:25:55,690 ดังนั้นจำเมื่อเราทำงานใด ๆ โปรแกรมเราต้องการที่จะรวบรวมมันเป็นครั้งแรก 585 00:25:55,690 --> 00:25:57,150 โดยการทำงานผ่านทำให้เรา 586 00:25:57,150 --> 00:26:00,030 แล้วเราต้องการที่จะทำงานจริง โปรแกรมโดยทำจุดเฉือน 587 00:26:00,030 --> 00:26:01,280 ดังนั้นเราจึงกำลังจะ ./asciimath 588 00:26:01,280 --> 00:26:05,780 589 00:26:05,780 --> 00:26:06,590 >> ขวามีที่เราจะไป 590 00:26:06,590 --> 00:26:07,410 และเราจะเห็น 32 591 00:26:07,410 --> 00:26:07,930 ทำได้ดี. 592 00:26:07,930 --> 00:26:10,340 คุณสมควรได้รับชิ้นส่วนของลูกอม 593 00:26:10,340 --> 00:26:11,160 ขนมสำหรับคุณ 594 00:26:11,160 --> 00:26:11,900 ขอโทษ 595 00:26:11,900 --> 00:26:13,100 ทั้งหมดขวา 596 00:26:13,100 --> 00:26:13,670 ตกลง. 597 00:26:13,670 --> 00:26:18,070 ดังนั้นเราจึงสามารถกลับไปที่ตัวอย่างของเราที่นี่ 598 00:26:18,070 --> 00:26:23,530 599 00:26:23,530 --> 00:26:24,345 แอ๊ะไม่ 600 00:26:24,345 --> 00:26:29,147 601 00:26:29,147 --> 00:26:31,090 แอ๊ะ 602 00:26:31,090 --> 00:26:32,490 ตกลง. 603 00:26:32,490 --> 00:26:34,610 ฉันแค่ไปที่จะให้มันเป็นแบบนั้น 604 00:26:34,610 --> 00:26:48,520 605 00:26:48,520 --> 00:26:51,240 ตกลง. 606 00:26:51,240 --> 00:26:51,740 ตกลง. 607 00:26:51,740 --> 00:26:55,340 ดังนั้นในขณะที่พวกคุณสามารถดูที่เราสามารถทำได้ จำนวนมากสิ่งที่น่าสนใจมาก 608 00:26:55,340 --> 00:26:58,880 จำนวนมากของสิ่งที่เย็นมากมาก สิ่งที่ซับซ้อนมากที่เกี่ยวข้องกับ 609 00:26:58,880 --> 00:27:02,720 อักขระ ASCII และตัวเลข 610 00:27:02,720 --> 00:27:05,890 เมื่อคุณได้รับลงไปเข้าแถวห้า ที่มากที่จะปฏิบัติตามตาม 611 00:27:05,890 --> 00:27:07,640 เราไม่ได้จะไป ผ่านส่วน 612 00:27:07,640 --> 00:27:10,720 รู้สึกอิสระที่จะถ้าคุณสามารถ เหตุผลมันออกมาบนกระดาษ 613 00:27:10,720 --> 00:27:14,750 เป็นครั้งแรกในสิ่งที่ควรจะเกิดขึ้นเมื่อ คุณป้อนเช่นสตริงของค่า 614 00:27:14,750 --> 00:27:19,720 ยกตัวอย่างเช่นในบรรทัดสุดท้ายที่เรามี z-- ซึ่งหมายถึง number-- บางอย่าง 615 00:27:19,720 --> 00:27:24,740 a-- ซึ่งยังแสดงให้เห็นถึง number-- บางบวก 1 modulos 26 616 00:27:24,740 --> 00:27:26,750 รวมทั้งตัวพิมพ์เล็ก 617 00:27:26,750 --> 00:27:29,220 >> ถ้าพวกคุณให้อ่าน ผ่านเหล่านี้คุณ 618 00:27:29,220 --> 00:27:34,009 อาจจะเห็นรูปแบบที่เกิดขึ้นใน วิธีการที่เรากำลังจัดการรหัส 619 00:27:34,009 --> 00:27:36,050 ผมขอ, ขอแนะนำ ส่วนหลังจากที่ทุกท่าน 620 00:27:36,050 --> 00:27:38,160 พวกไปข้างหน้าและการป้อนข้อมูล เหล่านั้นทั้งหมดในเครื่องคอมพิวเตอร์ของคุณ 621 00:27:38,160 --> 00:27:40,060 และดูสิ่งที่ชนิดของ ตัวเลขที่ออกมา 622 00:27:40,060 --> 00:27:43,090 และเหตุผลว่าทำไมผ่านเหล่านั้น ที่เกิดขึ้นเพราะ psets ของคุณ 623 00:27:43,090 --> 00:27:45,060 มันจะเป็นสิ่งที่สำคัญจริงๆ สำหรับคุณที่จะเข้าใจ 624 00:27:45,060 --> 00:27:47,132 ทำไมบางสิ่งบางอย่างที่จะเกิดขึ้น 625 00:27:47,132 --> 00:27:48,590 ทั้งหมดของภาพนิ่งเหล่านี้จะออนไลน์ 626 00:27:48,590 --> 00:27:51,510 ดังนั้นไม่ต้องกังวลเกี่ยวกับการพยายามที่จะ ร่างกายคัดลอกลงบันทึก 627 00:27:51,510 --> 00:27:52,510 ทุกอย่างออนไลน์ 628 00:27:52,510 --> 00:27:54,050 ส่วนนี้เองจะออนไลน์ 629 00:27:54,050 --> 00:27:57,500 รหัสแหล่งที่มาทั้งหมดของฉันที่ ผมทำงานจะออนไลน์ 630 00:27:57,500 --> 00:27:58,180 ใช่ 631 00:27:58,180 --> 00:27:59,430 คุณยังคงมีคำถาม? 632 00:27:59,430 --> 00:28:00,587 ผู้ชม: modulos คืออะไร? 633 00:28:00,587 --> 00:28:01,170 ANDI PENG: OK 634 00:28:01,170 --> 00:28:05,620 ดังนั้นโมดูโลเป็นผู้ดำเนินการที่จะไปยัง เป็นสิ่งที่สำคัญสวย pset ผู้ชายของคุณ 635 00:28:05,620 --> 00:28:06,690 ที่นี่ 636 00:28:06,690 --> 00:28:12,280 ดังนั้นวิธีการที่ผู้ประกอบการ ใน C และในการทำงานการเขียนโปรแกรม 637 00:28:12,280 --> 00:28:16,360 คือการที่คุณมีสิ่งที่เรียกว่า ส่วนสัญลักษณ์และสัญลักษณ์โมดูลัสที่ 638 00:28:16,360 --> 00:28:18,350 ซึ่งเป็นเช่นเดียวกับเครื่องหมายเปอร์เซ็นต์ 639 00:28:18,350 --> 00:28:24,840 >> ดังนั้นใน C, เมื่อคุณทำจำนวนเต็ม โดยแบ่งออกเป็นจำนวนเต็มด้วยการเฉือน, 640 00:28:24,840 --> 00:28:27,720 C มีแนวโน้มที่จะต้องการที่จะตัด ปิดทุกจุดทศนิยม 641 00:28:27,720 --> 00:28:30,290 เพราะต้องการคำจำนวนเต็ม แปลงเป็นจำนวนเต็ม 642 00:28:30,290 --> 00:28:33,550 มันจะไม่ต้องการที่จะเป็นคู่ กับพวงของทศนิยมทั้งหมดหลังจากนั้น 643 00:28:33,550 --> 00:28:39,322 >> ดังนั้นถ้าผมทำ 3 หารด้วย 2 ก็จะ ตัด 0.5 และเพียงแค่ให้คุณ 1 644 00:28:39,322 --> 00:28:41,530 นั่นคือสิ่งที่จะ ระมัดระวังเมื่อคุณอยู่ 645 00:28:41,530 --> 00:28:45,294 ทำเรียงลำดับของคณิตศาสตร์ใด ๆ ในการเขียนโปรแกรม คือว่าตัวเลขที่คุณได้รับ 646 00:28:45,294 --> 00:28:47,210 อาจจะไม่เป็นตัวเลข ที่คุณคิด 647 00:28:47,210 --> 00:28:50,190 ซึ่งเป็นเหตุผลในการปัดเศษของคุณ pset ที่ผ่านมาเป็นสิ่งสำคัญดังนั้น 648 00:28:50,190 --> 00:28:51,980 >> Modulo ช่วยให้คุณมีส่วนที่เหลือ 649 00:28:51,980 --> 00:28:56,200 ดังนั้นสำหรับตัวอย่างเช่นถ้าผมทำ 3 โมดูโล 2-- เพื่อเข้าสู่ระบบร้อยละ 3 2-- 650 00:28:56,200 --> 00:28:58,020 มันจะทำให้คุณเหลือของว่า 651 00:28:58,020 --> 00:29:00,460 ดังนั้น 3 โดยแบ่งออกเป็น 2 คือ 1.5 652 00:29:00,460 --> 00:29:01,410 มันเป็น 1 ที่เหลือของ 1 653 00:29:01,410 --> 00:29:04,600 มันจะให้คุณ 1 ซึ่ง เป็นส่วนที่เหลือจากการที่ 654 00:29:04,600 --> 00:29:07,361 >> ดังนั้นเมื่อพวกคุณกำลังจะย้าย ผ่านโต๊ะ ASCII ที่ 655 00:29:07,361 --> 00:29:09,735 โมดูโลจะจบลงด้วยการ สิ่งที่สำคัญมาก 656 00:29:09,735 --> 00:29:11,240 และเราจะหารือว่าในภายหลัง 657 00:29:11,240 --> 00:29:17,750 658 00:29:17,750 --> 00:29:19,040 >> ตกลง. 659 00:29:19,040 --> 00:29:27,300 ดังนั้นสิ่งที่สวย สวยใหม่ไม่ซ้ำใครสวย 660 00:29:27,300 --> 00:29:31,920 ที่เราได้พูดคุยกันในสัปดาห์นี้คือ แนวคิดของสิ่งที่อาร์เรย์คือ 661 00:29:31,920 --> 00:29:34,370 อาร์เรย์ดังนั้นเป็นครั้งแรก ชนิดของโครงสร้างข้อมูล 662 00:29:34,370 --> 00:29:36,320 ที่เรากำลังจะไป พบในชั้นนี้ 663 00:29:36,320 --> 00:29:40,010 โครงสร้างข้อมูลทั้งหมดจะเป็น การจัดเรียงของบางอย่างโดยพลการ 664 00:29:40,010 --> 00:29:43,370 แท้จริงสิ่งที่ต้องการโครงสร้าง ว่าเราเป็นโปรแกรมเมอร์ได้สร้าง 665 00:29:43,370 --> 00:29:47,890 ที่เราได้ใส่ในรหัสของเราที่ สามารถมีชิ้นอื่น ๆ ของรหัส 666 00:29:47,890 --> 00:29:51,090 >> ดังนั้นในแง่นี้การ array-- คิดว่ามันเป็นตู้เอกสาร, 667 00:29:51,090 --> 00:29:53,470 ซึ่งถ้าคุณเปิดที่แตกต่างกัน ชั้นวางของตู้เก็บแฟ้มของคุณ 668 00:29:53,470 --> 00:29:55,630 คุณสามารถเข้าถึงสิ่งที่แตกต่าง 669 00:29:55,630 --> 00:29:58,630 ในหน่วยความจำอาร์เรย์เป็นเพียงการทำ สิ่งเดียวกันในคอมพิวเตอร์ของคุณ 670 00:29:58,630 --> 00:30:01,730 คุณสามารถมีเรา blocks-- ที่แตกต่างกัน เรียกพวกเขา indices-- ของอาร์เรย์ 671 00:30:01,730 --> 00:30:04,210 ก็เช่นเดียวกับบล็อก ชั้นวางของหน่วยความจำ 672 00:30:04,210 --> 00:30:07,580 ที่เราได้สร้างขึ้นภายในของคุณ คอมพิวเตอร์ที่คุณสามารถป้อน 673 00:30:07,580 --> 00:30:10,270 บางสิ่งบางอย่างในพื้นที่ที่แตกต่างกัน 674 00:30:10,270 --> 00:30:18,000 >> ดังนั้นด้วยอาร์เรย์คุณ มักจะมีการ specify-- 675 00:30:18,000 --> 00:30:22,360 คุณต้องระบุประกาศ อาเรย์ในรูปแบบดังต่อไปนี้ 676 00:30:22,360 --> 00:30:24,290 คุณกำลังจะเป็นครั้งแรก ระบุชนิดของข้อมูล 677 00:30:24,290 --> 00:30:25,831 ที่คุณต้องการที่จะสร้างของอาร์เรย์ 678 00:30:25,831 --> 00:30:28,870 หากต้องการอาร์เรย์ของจำนวนเต็ม, ฉันจะใส่ int มีสิทธิ 679 00:30:28,870 --> 00:30:32,079 หากต้องการอาร์เรย์ของสตริงที่ ฉันจะวางสายที่นั่น 680 00:30:32,079 --> 00:30:34,995 ชื่อของอาเรย์ของคุณแล้ว คุณกำลังจะมีวงเล็บ 681 00:30:34,995 --> 00:30:39,580 และภายในวงเล็บคุณ จะมีขนาดของอาร์เรย์ของคุณ 682 00:30:39,580 --> 00:30:42,900 >> สิ่งที่สำคัญมากที่จะ เก็บไว้ในใจเมื่อมีการสร้างอาร์เรย์คือ 683 00:30:42,900 --> 00:30:46,530 ว่าเมื่อคุณสร้าง อาร์เรย์ขนาดที่ไม่สามารถเปลี่ยนแปลงได้ 684 00:30:46,530 --> 00:30:50,180 ดังนั้นถ้าคุณรู้ว่าตอนนี้ คุณมีอาร์เรย์ของขนาด 10, 685 00:30:50,180 --> 00:30:54,550 คุณรู้ไหมว่าฉันจะมี 10 เซลล์ ภายในหรือ 10 ดัชนีภายในอาร์เรย์นี้ 686 00:30:54,550 --> 00:30:56,830 และก็ไม่เคยไป เพื่อขยายหรือลดน้อยลง 687 00:30:56,830 --> 00:30:59,850 ไม่ว่าสิ่งที่และที่มี ขณะนี้เพียง 10 บล็อกของพื้นที่ 688 00:30:59,850 --> 00:31:04,490 จัดสรรในหน่วยความจำของคุณที่สามารถจัดเก็บ ถึง 10 สิ่งที่สิ่งที่คุณได้ใส่ 689 00:31:04,490 --> 00:31:08,790 >> ดังนั้นในทางนี้ชนิดข้อมูลอาร์เรย์ โครงสร้างข้อมูลที่เป็นอาร์เรย์ 690 00:31:08,790 --> 00:31:13,392 จะแตกต่างจากคนอื่น ๆ บางอย่างที่เราจะ ครอบคลุมในภายหลังในหลักสูตรนี้ 691 00:31:13,392 --> 00:31:15,170 ใช่ 692 00:31:15,170 --> 00:31:20,080 ตัวอย่างเช่นถ้าคุณต้องการที่จะ สร้างอาร์เรย์ขนาด 3 ที่ 693 00:31:20,080 --> 00:31:23,670 มีตัวแปร integer-- โอ้ขอโทษของ temperature-- 694 00:31:23,670 --> 00:31:25,640 และอุณหภูมิของ แน่นอนเป็นจำนวนเต็ม 695 00:31:25,640 --> 00:31:28,710 >> ดังนั้นเราจะสร้าง int ซึ่งเป็น ชนิดข้อมูลของสิ่งที่เราต้องการในการจัดเก็บ 696 00:31:28,710 --> 00:31:32,680 เรากำลังจะไปเรียกอุณหภูมินี้ เพื่อประโยชน์ของการตั้งชื่อของการตั้งชื่อ 697 00:31:32,680 --> 00:31:34,200 สิ่งที่เราทุกคนเข้าใจ 698 00:31:34,200 --> 00:31:35,900 และเรากำลังจะมีวงเล็บ 699 00:31:35,900 --> 00:31:37,200 และเราต้องการสามตัวเลข 700 00:31:37,200 --> 00:31:39,000 ดังนั้นเราจะใส่ สามภายในของมัน 701 00:31:39,000 --> 00:31:41,041 >> สิ่งที่เป็นจริง สิ่งสำคัญที่จะเก็บไว้ในใจ 702 00:31:41,041 --> 00:31:43,530 คืออาร์เรย์เป็นศูนย์การจัดทำดัชนี 703 00:31:43,530 --> 00:31:46,410 ทั้งหมดที่หมายถึงคือคุณ เริ่มต้นด้วยดัชนีของ 0, 704 00:31:46,410 --> 00:31:49,800 และคุณวิ่งผ่าน ขนาดของอาร์เรย์ลบ 1 705 00:31:49,800 --> 00:31:52,730 ดังนั้นตัวอย่างเช่นที่นี่เรา มีอาร์เรย์ขนาด 3 706 00:31:52,730 --> 00:31:54,680 มันเป็นไปได้ที่จะสามารถ จะถือสามค่า 707 00:31:54,680 --> 00:31:57,450 แต่ตัวเลขที่ themselves-- จำนวนอาร์เรย์ดัชนีที่ 708 00:31:57,450 --> 00:32:00,271 อาร์เรย์เป็น 0 ถึง 2 709 00:32:00,271 --> 00:32:03,520 ดังนั้นพวกจริงๆระมัดระวังจริงๆเมื่อ คุณกำลังจะผ่านปัญหาของคุณตั้ง 710 00:32:03,520 --> 00:32:06,500 และการสร้างการจัดเรียงของอาร์เรย์ใด ๆ เพราะหลายครั้งที่มัน 711 00:32:06,500 --> 00:32:08,490 จริงๆเรื่องง่ายที่จะลืมว่า 712 00:32:08,490 --> 00:32:11,840 ที่จริงผมไม่ได้มีดัชนี 3 ที่ฉันกำลังเพียง 713 00:32:11,840 --> 00:32:13,130 มีดัชนีของ 2 714 00:32:13,130 --> 00:32:16,046 และถ้าคุณพยายามที่จะ เข้าถึงดัชนีที่สาม 715 00:32:16,046 --> 00:32:18,170 มันจะเป็นสิ่งที่ ที่เรียกว่าเทอร์มิ null 716 00:32:18,170 --> 00:32:19,990 มันจะไม่จริง อยู่ในอาร์เรย์ 717 00:32:19,990 --> 00:32:21,781 และคอมพิวเตอร์อยู่ จะไม่ชอบที่ 718 00:32:21,781 --> 00:32:24,570 ดังนั้นควรระมัดระวังเมื่อใดก็ตามที่ คุณเข้าถึงสิ่งเพียง 719 00:32:24,570 --> 00:32:28,070 เพื่อให้แน่ใจว่าคุณจำได้ อาร์เรย์ที่จะเป็นศูนย์การจัดทำดัชนี 720 00:32:28,070 --> 00:32:28,880 >> ตกลง. 721 00:32:28,880 --> 00:32:34,030 ดังนั้นตัวอย่างแรกเป็นเพียง วิธีหนึ่งในการสร้างอาร์เรย์ 722 00:32:34,030 --> 00:32:36,790 ตัวอย่างที่สองฉันมี ด้านล่างเป็นเพียงวิธีที่แยกต่างหาก 723 00:32:36,790 --> 00:32:40,210 ของการสร้างสิ่งที่เป็นข้อมูลเดียวกัน โครงสร้างที่เราได้เพียงแค่ป้อน 724 00:32:40,210 --> 00:32:44,347 ดังนั้นแทนที่จะร่างกายทำงาน ผ่านและวางในอุณหภูมิ 0 725 00:32:44,347 --> 00:32:47,180 เท่ากับสิ่งที่อุณหภูมิ 1 เท่ากับสิ่งที่อุณหภูมิ 2 เท่ากับ 726 00:32:47,180 --> 00:32:50,950 สิ่งที่ฉันสามารถทำได้จริงเพียง โดยตรงสร้างทุกอย่างไว้ในหนึ่งบรรทัด 727 00:32:50,950 --> 00:32:53,010 เข้าไปในวงเล็บอุณหภูมิเท่ากับ 728 00:32:53,010 --> 00:32:56,536 >> และแจ้งให้ทราบล่วงหน้าในกรณีนี้คุณไม่จำเป็นต้อง เพื่อระบุว่าใหญ่อาร์เรย์ของคุณคือ 729 00:32:56,536 --> 00:32:59,160 เนื่องจากคอมพิวเตอร์จะ ผ่านไปและดูว่ามี 730 00:32:59,160 --> 00:33:01,570 สามองค์ประกอบในวงเล็บปีกกาเหล่านั้น 731 00:33:01,570 --> 00:33:04,000 และก็จะรู้ว่าตกลง ฉันต้องอาร์เรย์ขนาด 3 732 00:33:04,000 --> 00:33:07,440 คุณจะไม่จำเป็นต้อง ป้อนข้อมูลทางต่อไปนี้ 733 00:33:07,440 --> 00:33:10,170 >> และยังใช่วิธีการที่ 734 00:33:10,170 --> 00:33:12,610 ไม่มีใครมีคำถาม เกี่ยวกับวิธีการที่เราทำอาร์เรย์ 735 00:33:12,610 --> 00:33:17,391 หรือวิธีการที่โครงสร้างของอาร์เรย์ทำงานอย่างไร 736 00:33:17,391 --> 00:33:17,890 ใช่ 737 00:33:17,890 --> 00:33:18,806 >> ผู้ชม: [ไม่ได้ยิน] 738 00:33:18,806 --> 00:33:21,649 739 00:33:21,649 --> 00:33:22,690 ANDI เป็ง: ใช่ว่า 740 00:33:22,690 --> 00:33:26,150 ดังนั้นถ้าคุณมีการประกาศและเริ่มต้น อาร์เรย์วิธีการดังต่อไปนี้, 741 00:33:26,150 --> 00:33:28,477 ซึ่งเป็นวิธีที่สอง คุณก็สามารถปล่อยให้ผู้ที่ 742 00:33:28,477 --> 00:33:30,310 และคอมพิวเตอร์ โดยอัตโนมัติรู้ว่ามัน 743 00:33:30,310 --> 00:33:33,950 ความต้องการที่จะนับจำนวนองค์ประกอบ อยู่ในวงเล็บปีกกาเหล่านั้นแยกออกจากกัน 744 00:33:33,950 --> 00:33:34,930 ด้วยเครื่องหมายจุลภาค 745 00:33:34,930 --> 00:33:37,517 >> ดังนั้นที่นี่พวกเขาเห็น 65, 87, 30 746 00:33:37,517 --> 00:33:39,600 เพื่อให้คอมพิวเตอร์รู้โอ้ มีสามจำนวนเต็ม 747 00:33:39,600 --> 00:33:45,960 ฉันรู้ว่าการสร้างชื่ออาร์เรย์ อุณหภูมิที่มีสามองค์ประกอบในนั้น 748 00:33:45,960 --> 00:33:46,590 คำถามที่ดี. 749 00:33:46,590 --> 00:33:47,090 ใช่ 750 00:33:47,090 --> 00:33:51,590 >> ผู้ชม: มันไม่ได้เป็นไปได้ที่จะสร้าง อาร์เรย์กับชนิดของข้อมูล 751 00:33:51,590 --> 00:33:53,021 ที่อาจจะถูกป้อนเข้าสู่มันได้หรือไม่ 752 00:33:53,021 --> 00:33:56,746 ตัวอย่างเช่นกับจำนวนเต็ม [ไม่ได้ยิน] 753 00:33:56,746 --> 00:33:59,120 ANDI PENG: สำหรับวัตถุประสงค์ ของชั้นนี้ไม่มีตอนนี้ 754 00:33:59,120 --> 00:34:03,070 เมื่อคุณสร้างข้อมูล โครงสร้างเช่นอาร์เรย์ 755 00:34:03,070 --> 00:34:04,990 คุณกำลังบอก คอมพิวเตอร์เดี๋ยวก่อนฉันต้องการให้คุณ 756 00:34:04,990 --> 00:34:08,159 การจัดสรรมากขนาดนี้ หน่วยความจำในฮาร์ดไดรฟ์ของฉัน 757 00:34:08,159 --> 00:34:10,690 กับแต่ละเซลล์เป็น จำนวนหนึ่งของบิต 758 00:34:10,690 --> 00:34:13,429 >> โปรดจำไว้ว่าเราได้เรียนรู้ในสัปดาห์ ที่ศูนย์ข้อมูลที่แตกต่าง 759 00:34:13,429 --> 00:34:15,300 ชนิดมีขนาดแตกต่างกัน? 760 00:34:15,300 --> 00:34:17,630 ดังนั้นตัวอย่างเช่นสตริง เป็นจำนวนเงินที่แตกต่างกัน 761 00:34:17,630 --> 00:34:20,719 พื้นที่กว่าถ่านที่ เป็นจำนวนเงินที่แตกต่างกันของพื้นที่ 762 00:34:20,719 --> 00:34:21,830 จากจำนวนเต็ม 763 00:34:21,830 --> 00:34:25,534 ดังนั้นถ้าคุณไม่ได้ระบุและคุณ ผสมและตรงกับสิ่งที่ชนิดของตัวแปร 764 00:34:25,534 --> 00:34:27,659 คุณมีเครื่องคอมพิวเตอร์ ไปได้สับสนมาก 765 00:34:27,659 --> 00:34:29,950 และมันจะไม่ทราบว่า หน่วยความจำเท่าใดเพื่อให้คุณ 766 00:34:29,950 --> 00:34:32,480 ดังนั้นเพื่อวัตถุประสงค์ในการที่เหมาะสม ตอนนี้เครื่องคอมพิวเตอร์สามารถ 767 00:34:32,480 --> 00:34:36,120 รับรู้ประเภทหนึ่งของอาร์เรย์ 768 00:34:36,120 --> 00:34:37,940 คำถามที่ดี. 769 00:34:37,940 --> 00:34:38,440 ตกลง. 770 00:34:38,440 --> 00:34:45,179 771 00:34:45,179 --> 00:34:47,120 >> ดังนั้นธรรมชาติที่ คำถามที่สองเรามี 772 00:34:47,120 --> 00:34:50,760 คือดีตอนนี้ที่เราได้สร้าง อาร์เรย์และเราได้นำสิ่งเหล่านี้ทั้งหมด 773 00:34:50,760 --> 00:34:54,190 ในอาร์เรย์วิธีการที่เรา จะสามารถเข้าถึงมันได้หรือไม่ 774 00:34:54,190 --> 00:34:59,710 ดังนั้นโครงสร้างทั่วไปที่เราเสมอ เข้าถึงอาร์เรย์ที่น่ารักสำหรับวงของเรา 775 00:34:59,710 --> 00:35:03,830 ผมสัญญาว่าพวกคุณว่าเราจะ เห็นมากคนนี้ที่นี่ 776 00:35:03,830 --> 00:35:06,470 >> โดยพื้นฐานแล้วเวลาที่คุณต้องการ เพื่อป้อนค่าเป็นอาร์เรย์ 777 00:35:06,470 --> 00:35:09,940 หรือคุณต้องการที่จะเข้าถึงพวกเขา วิธีที่ดีที่สุดที่จะทำคือการวน, 778 00:35:09,940 --> 00:35:13,730 เพราะในการห่วงคุณ ทราบว่าหลายครั้งที่คุณอยู่ 779 00:35:13,730 --> 00:35:17,290 จะต้องการที่จะวิ่งผ่านอาร์เรย์ เพราะคุณมีรุ่นที่หยุดใช่มั้ย? 780 00:35:17,290 --> 00:35:19,680 และเวลาที่คุณทำงานทุก ผ่านคุณสามารถเข้าถึง 781 00:35:19,680 --> 00:35:21,310 องค์ประกอบที่แตกต่างกันของอาร์เรย์ 782 00:35:21,310 --> 00:35:26,920 >> และยังนี่คือเหตุผลว่าทำไมปกติ เราเริ่มต้นสำหรับลูปของเราที่ค่า 0, 783 00:35:26,920 --> 00:35:30,080 เพราะเมื่อคุณเข้าถึงอาร์เรย์ คุณสามารถเข้าถึงศูนย์ดัชนี 784 00:35:30,080 --> 00:35:32,070 และดังนั้นจึงคล้ายคลึงกันอย่างมาก 785 00:35:32,070 --> 00:35:35,295 พวกคุณอาจจะต้องการที่จะ เขียนสำหรับฉัน int เท่ากับ 1 786 00:35:35,295 --> 00:35:37,330 ฉันน้อยกว่าหรือเท่ากับ 3 787 00:35:37,330 --> 00:35:39,890 >> แต่มันจะไม่ทำงานค่อนข้างเป็น ดีที่นี่เพราะคุณเท่านั้น 788 00:35:39,890 --> 00:35:42,010 มีองค์ประกอบของ 0, 1, 2 789 00:35:42,010 --> 00:35:45,815 ดังนั้นถ้าคุณจะเริ่มต้น ผมของคุณในองค์ประกอบที่ 1, 2, และ 3 790 00:35:45,815 --> 00:35:48,440 คุณกำลังจะสิ้นสุดการทำงาน ออกจากขอบเขตของอาร์เรย์ของคุณ 791 00:35:48,440 --> 00:35:50,440 และสิ่งที่ไม่ดีกำลังจะเกิดขึ้น 792 00:35:50,440 --> 00:35:54,480 >> ดังนั้นผมจึงหวังว่าพวกคุณเห็นทำต่อ ทำไมในชั้นเรียนก่อนหน้านี้ 793 00:35:54,480 --> 00:35:58,560 เราได้รับการเรียนการสอนพวกคุณวิธีการทำงานและ จัดรูปแบบสำหรับวงวิธีการที่เราเป็น 794 00:35:58,560 --> 00:36:01,900 ก็เพราะตอนนี้เราได้ เปลี่ยนลงในอาร์เรย์ 795 00:36:01,900 --> 00:36:06,760 คุณสามารถดูว่าทำไม 0 ยืม ตัวเองอย่างมากที่จะเข้าถึง 796 00:36:06,760 --> 00:36:09,880 >> ดังนั้นวิธีการที่เราจะทำคือ that-- ฉัน เพียงแค่พิมพ์ออกจากที่นี่เพราะ 797 00:36:09,880 --> 00:36:10,830 ในการพิมพ์มันออกมา 798 00:36:10,830 --> 00:36:13,750 แต่ผมมีตัวยึดของฉันจุลภาค 799 00:36:13,750 --> 00:36:15,645 และการเข้าถึงที่เกิดขึ้นจริง ส่วนหนึ่งที่เกิดขึ้น 800 00:36:15,645 --> 00:36:17,520 ชื่อของอาร์เรย์ ถูกเรียกว่าอุณหภูมิ 801 00:36:17,520 --> 00:36:21,570 ดังนั้นจึงเป็นที่อุณหภูมิและ องค์ประกอบที่ i ของอาร์เรย์ 802 00:36:21,570 --> 00:36:24,400 >> ดังนั้นเป็นห่วงวิ่งผ่าน ก็จะเริ่มต้นที่ 0 803 00:36:24,400 --> 00:36:27,640 มันจะพิมพ์ ดัชนี 0 ของอาร์เรย์นี้ 804 00:36:27,640 --> 00:36:29,599 จากนั้นก็จะพิมพ์ ออกองค์ประกอบแรก 805 00:36:29,599 --> 00:36:31,431 จากนั้นก็จะพิมพ์ ออกที่สอง 806 00:36:31,431 --> 00:36:32,880 และจากนั้นเรากำลังจะทำลาย 807 00:36:32,880 --> 00:36:36,718 คือทุกคนที่ชัดเจนเกี่ยวกับ วิธีการที่เกิดขึ้น? 808 00:36:36,718 --> 00:36:37,217 ที่ดี 809 00:36:37,217 --> 00:36:43,230 810 00:36:43,230 --> 00:36:44,100 >> ทั้งหมดขวา 811 00:36:44,100 --> 00:36:47,270 ดังนั้นที่นี่เรามีวิธีการของ ว่าถ้าเราไม่ต้องการ 812 00:36:47,270 --> 00:36:50,020 ยากรหัส in-- ฉันเป็นโปรแกรมเมอร์ 813 00:36:50,020 --> 00:36:53,320 ผมไม่ได้ต้องการที่จะเป็นจริงทางร่างกาย ใส่ในทุกองค์ประกอบของแต่ละบุคคล 814 00:36:53,320 --> 00:36:54,020 ของอาร์เรย์นี้ 815 00:36:54,020 --> 00:36:56,500 ถ้าผมต้องการที่จะแทน มีค่าการป้อนข้อมูลของผู้ใช้ 816 00:36:56,500 --> 00:36:58,100 สิ่งที่เป็นวิธีที่ดีที่สุดที่จะทำเช่นนั้น? 817 00:36:58,100 --> 00:37:00,920 >> ดีที่นี่ผมได้สร้าง ฟังก์ชั่นนี้น่ารัก 818 00:37:00,920 --> 00:37:03,560 ที่ฉันสามารถประกาศอาร์เรย์ 819 00:37:03,560 --> 00:37:06,210 ดังนั้น int scores-- ขอ เพียงแค่บอกว่าเราต้องการที่จะทำให้ 820 00:37:06,210 --> 00:37:10,660 อาร์เรย์ที่จัดขึ้นทุกเกรด 18 ที่ นักเรียนที่นี่ในส่วนนี้ 821 00:37:10,660 --> 00:37:12,670 ผมคิดว่าเราได้มีน้อย มากกว่า 18 เด็กในวันนี้ 822 00:37:12,670 --> 00:37:16,460 แต่เพราะตัวอย่างของ ขอเพียงแค่ถือว่าเรามี 18 823 00:37:16,460 --> 00:37:21,580 ฉันจะสร้างคะแนนชื่ออาร์เรย์ด้วย ประเภท int เพราะคะแนนของหลักสูตร 824 00:37:21,580 --> 00:37:22,987 เป็นตัวเลข 825 00:37:22,987 --> 00:37:24,820 และฉันจะมี 18 ในวงเล็บสี่เหลี่ยม 826 00:37:24,820 --> 00:37:29,900 เพราะเห็นว่าเป็นวิธีที่หลายนักเรียนฉัน ต้องการที่จะสามารถที่จะเก็บคะแนนของ 827 00:37:29,900 --> 00:37:32,206 >> และวิธีที่ฉันอาศัย อาร์เรย์ที่ฉันต้องการ 828 00:37:32,206 --> 00:37:35,572 เรียกใช้ผ่านการวนของ แน่นอนด้วย 0 0 เป็นดัชนีของฉัน 829 00:37:35,572 --> 00:37:38,030 และแล้วกับ 18 เป็นของฉัน หยุดฉบับเพราะมี 830 00:37:38,030 --> 00:37:39,690 18 องค์ประกอบในอาร์เรย์ 831 00:37:39,690 --> 00:37:44,620 และแล้วฉันจะทำ printf ใส่ คะแนนสำหรับ student-- ญาดาญาดาญาดา 832 00:37:44,620 --> 00:37:51,171 >> ทุกคนสามารถบอกฉันทำไมฉันที่นี่ พิมพ์ฉันบวก 1 และฉันไม่? 833 00:37:51,171 --> 00:37:52,920 เป็นชนิดของการหลอกลวง คำถามไม่ได้จริงๆ 834 00:37:52,920 --> 00:37:56,020 มันไม่จริงร่างกาย ส่งผลกระทบต่อการทำงานของรหัส 835 00:37:56,020 --> 00:37:56,520 ใช่ 836 00:37:56,520 --> 00:37:57,909 >> ผู้ชม: [ไม่ได้ยิน] 0? 837 00:37:57,909 --> 00:37:58,950 ANDI เป็ง: ใช่ว่า 838 00:37:58,950 --> 00:38:02,620 เป็นบิตที่น่าอึดอัดใจที่จะบอกว่าเดี๋ยวก่อน คุณเป็นนักเรียน 0 ในชั้นนี้ 839 00:38:02,620 --> 00:38:03,780 เป็นบิตแปลก 840 00:38:03,780 --> 00:38:08,340 ดังนั้นเราเป็นมนุษย์ไม่ชอบ ที่จะคิดว่าคอมพิวเตอร์คิด 841 00:38:08,340 --> 00:38:10,930 ดังนั้นแม้ว่าใน คอมพิวเตอร์ก็เก็บค่า 842 00:38:10,930 --> 00:38:13,310 ในดัชนี 0 ครั้งเมื่อ เรามนุษย์ที่เราทำไม่ได้จริงๆ 843 00:38:13,310 --> 00:38:15,520 ชอบที่จะอ้างถึงตัวเองเป็นศูนย์ 844 00:38:15,520 --> 00:38:18,119 ดังนั้นเมื่อผมเพียงแค่พิมพ์ว่า ฉันจะพิมพ์และเพิ่ม 845 00:38:18,119 --> 00:38:19,410 1 เพียงเพื่อประโยชน์ของความชัดเจน 846 00:38:19,410 --> 00:38:22,447 ดังนั้นเมื่อผมพิมพ์ผมไปได้ สามารถที่จะพิมพ์นักเรียนที่ 1 ถึง 18 847 00:38:22,447 --> 00:38:24,530 มันไม่ส่งผลกระทบจริง การทำงานของรหัส 848 00:38:24,530 --> 00:38:27,110 ในทางใดทางที่ผมพิมพ์ 849 00:38:27,110 --> 00:38:30,380 >> แต่ต้องระวังเมื่อคุณอยู่ จริงการเข้าถึงอาร์เรย์ 850 00:38:30,380 --> 00:38:32,780 เมื่อคุณดูคะแนน i, แจ้งให้ทราบที่นี่ฉันจริง 851 00:38:32,780 --> 00:38:38,200 การเข้าถึงและดัชนี 0 ไม่ได้เป็น 1 บวก 0-- หรือ 1 บวก 1, 852 00:38:38,200 --> 00:38:45,530 ในกรณีนี้ดัชนีดังนั้น ว่ามันเป็นที่ชัดเจนจริง 853 00:38:45,530 --> 00:38:48,870 ทุกคนชนิดของ OK บน วิธีการนี​​้จะวิ่งผ่าน 854 00:38:48,870 --> 00:38:51,470 และมีค่าดัชนีทุกฉัน ใส่ค่าลงในอาร์เรย์ 855 00:38:51,470 --> 00:38:55,340 และการสร้างอาร์เรย์กับ 18 หมายเลข ว่าผู้ใช้จะไปใส่? 856 00:38:55,340 --> 00:38:58,780 857 00:38:58,780 --> 00:38:59,821 ตกลง. 858 00:38:59,821 --> 00:39:00,321 เย็น 859 00:39:00,321 --> 00:39:05,380 860 00:39:05,380 --> 00:39:07,400 >> ตกลง. 861 00:39:07,400 --> 00:39:12,220 ตอนนี้เราย้ายเข้าไปอยู่ในบางสิ่งบางอย่างที่สวย ที่เกี่ยวข้องกับงานชิ้นนี้ตั้งเช่นกัน 862 00:39:12,220 --> 00:39:15,020 ฉันรู้ว่าในการบรรยาย, David-- ขออภัยคุณมีคำถาม? 863 00:39:15,020 --> 00:39:16,840 >> ผู้ชม: คุณสามารถขยายได้หรือไม่ 864 00:39:16,840 --> 00:39:18,080 >> ANDI เป็ง: ใช่ดังนั้นฉันพยายาม 865 00:39:18,080 --> 00:39:18,788 แต่ผมไม่ทราบว่า 866 00:39:18,788 --> 00:39:21,437 ด้วยเหตุผลบางอย่างนี้ PowerPoint รุ่น 867 00:39:21,437 --> 00:39:23,270 มันไม่ทำงาน ดีกับการแสดงผล 868 00:39:23,270 --> 00:39:25,260 ดังนั้นเราจึงกำลังจะ ที่จะให้มันเป็นแบบนี้ 869 00:39:25,260 --> 00:39:27,280 ทั้งหมดเหล่านี้จะถูกอัปโหลดออนไลน์ 870 00:39:27,280 --> 00:39:28,218 ขอโทษนะเพื่อน. 871 00:39:28,218 --> 00:39:30,090 ใช่ 872 00:39:30,090 --> 00:39:30,980 ตกลง. 873 00:39:30,980 --> 00:39:35,530 >> ดังนั้นเรายังสามารถมีสาย 874 00:39:35,530 --> 00:39:39,320 ดังนั้นถ้าพวกคุณจริง notice-- ฉัน รู้ว่าร็อบไปกว่านี้ในการบรรยายที่ 875 00:39:39,320 --> 00:39:43,652 ว่าเขา did-- สตริงเป็นจริง เพียงอาร์เรย์ของตัวอักษร 876 00:39:43,652 --> 00:39:44,860 ถ้าคุณคิดว่ามันใช่มั้ย? 877 00:39:44,860 --> 00:39:47,500 สตริงเป็นชื่อหรือ ประโยคหรือคำที่ใช่มั้ย? 878 00:39:47,500 --> 00:39:52,975 >> ถ้าฉันจะสร้างสตริงชื่อ Andi-- เพียงแค่ชื่อของฉัน, A-N-D-I 879 00:39:52,975 --> 00:39:55,460 คุณคิดว่าเป็นเพียงหนึ่งในตัวแปร 880 00:39:55,460 --> 00:39:58,630 แต่จริงๆแล้วมันหักลง เพียงแค่เข้าไปในอาร์เรย์ของตัวอักษร 881 00:39:58,630 --> 00:40:01,910 ดังนั้นก็มีตัวละครของ ที่เก็บไว้ในมูลค่าอาร์เรย์ 882 00:40:01,910 --> 00:40:05,420 มันมีลักษณะของ n ที่เก็บไว้ในที่ ดัชนีที่สองและอื่น ๆ และอื่น ๆ 883 00:40:05,420 --> 00:40:08,660 >> ดังนั้นในลักษณะที่เรา จริงมีแบบนี้ 884 00:40:08,660 --> 00:40:10,970 ของโครงสร้างที่ตั้งอยู่ใน สถานที่สำหรับสายของเรา 885 00:40:10,970 --> 00:40:14,660 ดังนั้นที่นี่ถ้าผมจะมีการป้อนข้อมูล คำว่า "กิน" - คำสตริงเพื่อให้เท่ากับ 886 00:40:14,660 --> 00:40:15,540 ได้รับสตริง 887 00:40:15,540 --> 00:40:19,260 ถ้าผมใส่คำว่า "กิน" ที่ เป็นทางร่างกายวิธีการที่คอมพิวเตอร์ของฉัน 888 00:40:19,260 --> 00:40:21,870 มีการจัดเก็บสตริงในหน่วยความจำของฉันที่ 889 00:40:21,870 --> 00:40:27,140 >> และถ้าผมอยากจะวิ่งผ่าน และการพิมพ์ที่ out-- เพื่อให้ฉันเข้าไป 890 00:40:27,140 --> 00:40:30,890 เท่ากับศูนย์จำไว้ในการบรรยายเรา ครอบคลุมสิ่งที่เรียกว่า strlen, 891 00:40:30,890 --> 00:40:32,990 หรือความยาวของสตริง 892 00:40:32,990 --> 00:40:36,520 เพราะผมไม่จริง รู้วิธีการที่มีขนาดใหญ่เป็นอาร์เรย์ 893 00:40:36,520 --> 00:40:38,210 ของอะไรก็ตาม inputting-- ของผู้ใช้ 894 00:40:38,210 --> 00:40:40,370 >> ตัวอย่างเช่นผมป้อน คำว่า "กิน" และฉันรู้ว่า 895 00:40:40,370 --> 00:40:41,870 ที่ตัวละครทั้งสามยาวใช่มั้ย? 896 00:40:41,870 --> 00:40:44,700 ดังนั้นผมจึงสามารถนำมาใส่ในสามมี และทุกอย่างจะดี 897 00:40:44,700 --> 00:40:49,290 แต่ถ้าสิ่งที่ผู้ใช้ป้อนข้อมูลของคุณ ที่มีจำนวนแตกต่างกันของค่านิยม 898 00:40:49,290 --> 00:40:52,760 คุณจะไม่สามารถที่จะจริงๆ รู้ว่าเมื่อคุณโปรแกรมรหัสของคุณ 899 00:40:52,760 --> 00:40:56,040 >> ดังนั้นวิธีการที่เราจัดการกับกรณีการทดสอบ เช่นนั้นคือว่าเรามีบางสิ่งบางอย่าง 900 00:40:56,040 --> 00:41:00,070 เรียกว่า strlen ซึ่งเป็นเพียงฟังก์ชั่น ที่จะบอกคุณว่านานแค่ไหนสตริงคือ 901 00:41:00,070 --> 00:41:02,080 ดังนั้น strlen ของคำ 902 00:41:02,080 --> 00:41:03,470 คำของฉันคือกิน 903 00:41:03,470 --> 00:41:05,990 n เท่ากับ strlen ของคำ 904 00:41:05,990 --> 00:41:08,930 ใครสักคนที่สามารถบอกฉันว่า ค่าจริงอยู่ที่นั่น? 905 00:41:08,930 --> 00:41:12,550 n อะไรแสดงสิทธิ ตอนนี้ในตัวอย่างนี้ถ้าฉันมีกิน? 906 00:41:12,550 --> 00:41:13,530 >> ผู้ชม: 3 907 00:41:13,530 --> 00:41:14,520 >> ANDI PENG: 3, ว่า 908 00:41:14,520 --> 00:41:18,820 ดังนั้นเราจึงมีสำหรับฉัน int เท่ากับ ศูนย์ n เท่ากับ 3 เป็นหลัก 909 00:41:18,820 --> 00:41:22,355 และฉันจะไปทำงาน จนกว่าจะมีน้อยกว่า 3i ++ 910 00:41:22,355 --> 00:41:24,980 และมันจะไปเป็นหลัก ผ่านและทำสิ่งเดียวกัน 911 00:41:24,980 --> 00:41:26,979 มันจะพิมพ์ออกมา ทุกค่าและให้คุณ 912 00:41:26,979 --> 00:41:29,700 E-A-T มันเป็นเพียงแค่แสดงถึง วิธีที่แตกต่างกันของการเขียน 913 00:41:29,700 --> 00:41:31,170 ที่จะเป็นประโยชน์มาก 914 00:41:31,170 --> 00:41:31,670 ใช่ 915 00:41:31,670 --> 00:41:35,174 ผู้ชม: อะไรคือประโยชน์ของการวาง n เท่ากับคำ strlen ภายในที่ 916 00:41:35,174 --> 00:41:36,894 สำหรับวง [ไม่ได้ยิน] 917 00:41:36,894 --> 00:41:37,560 ANDI เป็ง: ใช่ 918 00:41:37,560 --> 00:41:44,880 ดังนั้นถ้าผม to-- พูดยกตัวอย่างเช่น ถ้าผมจะทำอย่างนั้นแล้ว 919 00:41:44,880 --> 00:41:51,935 do-- oop-- ว่าในรหัสของฉันก็จะ จริงจะทำเช่นสิ่งเดียวกัน 920 00:41:51,935 --> 00:41:55,060 แต่วิธีการที่เดวิดอธิบาย ในระหว่างการบรรยายถ้าใด ๆ ของพวกคุณ 921 00:41:55,060 --> 00:41:57,854 จำได้ว่าเป็น มนุษย์เป็นโปรแกรมเมอร์ 922 00:41:57,854 --> 00:42:00,270 เราพยายามที่จะเขียนโปรแกรมของเรา รหัสเพื่อให้คอมพิวเตอร์ของเรามี 923 00:42:00,270 --> 00:42:04,070 การทำงานเป็นน้อยที่สุดเท่าที่จะทำได้เพื่อให้ ว่ารหัสของเรามีประสิทธิภาพมาก 924 00:42:04,070 --> 00:42:06,850 >> ดังนั้นถ้าผมว่ามีสิ่งที่ ที่จะเกิดขึ้นผ่านการห่วงฉัน 925 00:42:06,850 --> 00:42:10,790 คือว่าผมต้องการประกาศเป็นครั้งแรก ผมชื่อตัวแปรเป็นไปได้ที่ 0 926 00:42:10,790 --> 00:42:13,350 ฉันกำลังจะไปตรวจสอบโอ้ สิ่งที่เป็น strlen ของคำ? 927 00:42:13,350 --> 00:42:15,000 โอ้ strlen คือ 3 928 00:42:15,000 --> 00:42:16,191 ดังนั้นฉันน้อยกว่าสาม? 929 00:42:16,191 --> 00:42:16,690 ใช่แล้ว. 930 00:42:16,690 --> 00:42:17,870 ฉันจะไปทำงาน 931 00:42:17,870 --> 00:42:21,130 >> แล้วกลับมาครั้งที่สองรอบ ห่วงฉันจะเพิ่มฉัน 932 00:42:21,130 --> 00:42:22,550 ฉันจะเป็นอย่างใดอย่างหนึ่ง 933 00:42:22,550 --> 00:42:25,600 และฉันจะไปตรวจสอบโอ้ แต่สิ่งที่ strlen ของคำว่า? 934 00:42:25,600 --> 00:42:26,839 โอ้ก็สาม 935 00:42:26,839 --> 00:42:29,880 และไม่ว่าจะดูชนิดของการสิ้นเปลือง เวลาที่คุณทำงานผ่านห่วงทุกคน 936 00:42:29,880 --> 00:42:33,340 จะได้รับการตรวจสอบฟังก์ชั่น แม้ว่า strlen ของคำว่า 937 00:42:33,340 --> 00:42:35,490 ไม่เคยเปลี่ยนแปลงจริง? 938 00:42:35,490 --> 00:42:38,590 >> ดังนั้นจึงเป็นอำนาจพิเศษสำหรับคอมพิวเตอร์ 939 00:42:38,590 --> 00:42:42,180 เมื่อคุณเริ่มต้นการพูดคุยเกี่ยวกับสิ่งที่ ที่มีพันล้านและพันล้าน 940 00:42:42,180 --> 00:42:44,431 และพันล้านสถานที่ ยาวจินตนาการคอมพิวเตอร์ของคุณ 941 00:42:44,431 --> 00:42:47,430 ร่างกายต้องผ่านไปและ ตรวจสอบทั้งหมดของที่ทุกเวลาเดียว 942 00:42:47,430 --> 00:42:53,170 นั่นคือเหตุผลที่จะทำให้เพียง เพื่อประโยชน์ของประสิทธิภาพ 943 00:42:53,170 --> 00:42:57,620 เรามีแนวโน้มที่จะทำนี้ เพราะทางเราเพียงแค่นี้ 944 00:42:57,620 --> 00:42:59,850 เรียกใช้ฟังก์ชัน ครั้งหนึ่งในการเริ่มต้น 945 00:42:59,850 --> 00:43:01,766 และทุกครั้งที่มัน ผ่านไปมันจะ 946 00:43:01,766 --> 00:43:03,789 ในการจัดเก็บค่าที่ 3 ที่นั่นคุณทำไม่ได้ 947 00:43:03,789 --> 00:43:05,330 มีการตรวจสอบอย่างต่อเนื่องทุกครั้ง 948 00:43:05,330 --> 00:43:05,743 ใช่ 949 00:43:05,743 --> 00:43:06,409 >> ผู้ชม: ขออภัย 950 00:43:06,409 --> 00:43:09,070 เพียงแค่ [ไม่ได้ยิน] 951 00:43:09,070 --> 00:43:13,985 คุณอาจจะไม่เท่ากับ n int strlen และวาง ที่ดังกล่าวข้างต้นนอกสำหรับวง 952 00:43:13,985 --> 00:43:15,364 เช่นกัน? 953 00:43:15,364 --> 00:43:16,030 ANDI เป็ง: ใช่ 954 00:43:16,030 --> 00:43:17,100 คุณสามารถทำเช่นนั้นอย่างแน่นอน 955 00:43:17,100 --> 00:43:19,970 เหตุผลที่เรามีมันในที่นี่คือ เพราะวิธีการที่ผลงานของวง 956 00:43:19,970 --> 00:43:23,500 คือว่ามันเรียกว่า ตัวแปรท้องถิ่นในความรู้สึก 957 00:43:23,500 --> 00:43:26,150 ทุกอย่างที่คุณกำลัง สร้างภายในของห่วง 958 00:43:26,150 --> 00:43:27,890 เฉพาะที่มีอยู่ภายในของห่วง 959 00:43:27,890 --> 00:43:31,530 >> ดังนั้นตัวแปรฉันเท่านั้น ที่มีอยู่ในวงเล็บเหล่านั้น 960 00:43:31,530 --> 00:43:35,260 และตัวแปรที่นี่ของ n นอกจากนี้ยังมี เพียง แต่อยู่ในวงเล็บเหล่านั้น 961 00:43:35,260 --> 00:43:39,350 ดังนั้นถ้าคุณใช้ strlen ของ คำหลายครั้งลงด้านล่าง 962 00:43:39,350 --> 00:43:42,230 อย่างวิธีที่ดีที่สุดที่จะทำ จะมีการประกาศขึ้นด้านบน 963 00:43:42,230 --> 00:43:43,563 ดังนั้นคุณจึงไม่ต้องทำมันอีกครั้ง 964 00:43:43,563 --> 00:43:45,420 ใช่ 965 00:43:45,420 --> 00:43:47,670 ผู้ชม: ทำไมคุณมี บรรทัดใหม่หลังจากที่ร้อยละ 966 00:43:47,670 --> 00:43:51,300 การดูว่าคุณต้องการที่จะนำทั้งหมด ตัวอักษรถัดไปแยกกันได้อย่างไร 967 00:43:51,300 --> 00:43:54,140 >> ANDI PENG: โอ้ผมอยากจะ พิมพ์พวกเขาทั้งหมดในแต่ละบรรทัด 968 00:43:54,140 --> 00:43:54,890 มันไม่สำคัญว่า 969 00:43:54,890 --> 00:43:55,890 ใช่มันจัดรูปแบบ 970 00:43:55,890 --> 00:43:57,181 นั่นเป็นคำถามที่ดี แต่ 971 00:43:57,181 --> 00:43:59,360 ใช่ถ้าผมต้องการที่จะพิมพ์ มันทั้งหมดเพียงหนึ่งบรรทัด 972 00:43:59,360 --> 00:44:02,731 ฉันจะไม่ได้อยู่ในประ 973 00:44:02,731 --> 00:44:03,230 ตกลง. 974 00:44:03,230 --> 00:44:06,880 ทุกคนดีหรือไม่? 975 00:44:06,880 --> 00:44:07,500 ตกลง. 976 00:44:07,500 --> 00:44:08,000 เย็น 977 00:44:08,000 --> 00:44:12,080 978 00:44:12,080 --> 00:44:14,750 >> ดังนั้นผมคิดว่าผมได้พูดคุยพอ 979 00:44:14,750 --> 00:44:20,040 เปิดพวกคุณที่จะวิ่งผ่าน รหัสและบอกฉันว่านี่เป็นสิ่งที่ผิด 980 00:44:20,040 --> 00:44:21,560 ในกรณีที่ผิดพลาดหรือไม่ 981 00:44:21,560 --> 00:44:26,920 เพื่อที่คุณสามารถเห็นฉันได้ประกาศให้เป็น แถวใหม่ของสตริงประเภทชั้นชื่อ 982 00:44:26,920 --> 00:44:30,220 และฉันได้ป้อนแซม เจสและคิมเป็นมัน 983 00:44:30,220 --> 00:44:33,400 และฉันพยายามที่จะพิมพ์ออกมา องค์ประกอบทั้งหมดของอาร์เรย์ 984 00:44:33,400 --> 00:44:36,796 ใครสักคนที่สามารถบอกฉันทำไมนี้ เป็นไปเพื่อให้ฉันปัญหา? 985 00:44:36,796 --> 00:44:39,320 ฉันจะให้พวกคุณ 10 วินาทีที่จะคิดเกี่ยวกับเรื่องนี้ 986 00:44:39,320 --> 00:44:55,490 987 00:44:55,490 --> 00:44:56,619 >> ตกลง. 988 00:44:56,619 --> 00:44:57,118 ใช่? 989 00:44:57,118 --> 00:45:01,972 >> ผู้ชม: เป็นศูนย์กลางทางด้านซ้าย เท่ากับ 3 หรือ [ไม่ได้ยิน] 990 00:45:01,972 --> 00:45:02,680 ANDI PENG: ขวา 991 00:45:02,680 --> 00:45:06,784 ดังนั้นวิธีที่หลาย ๆ ครั้งนี้เป็นจริง จะไปทำงานผ่านห่วงนี้หรือไม่? 992 00:45:06,784 --> 00:45:07,620 >> ผู้ชม: สี่ 993 00:45:07,620 --> 00:45:08,070 >> ANDI PENG: แน่นอน 994 00:45:08,070 --> 00:45:09,445 มันจะผ่านสี่ครั้ง 995 00:45:09,445 --> 00:45:12,250 มันจะวิ่งผ่าน ที่ 0, 1, 2, และ 3 996 00:45:12,250 --> 00:45:15,200 เพราะองค์ประกอบของพวกเขาคือฉัน น้อยกว่าหรือเท่ากับ 3 997 00:45:15,200 --> 00:45:16,960 มันจะไม่หยุดเมื่อมัน 2 998 00:45:16,960 --> 00:45:18,800 มันจะให้ ไปจนฮิต 3 999 00:45:18,800 --> 00:45:21,720 และการที่เรารู้ว่ามีเพียงสาม องค์ประกอบในอาร์เรย์ที่แท้จริงของเรา 1000 00:45:21,720 --> 00:45:27,260 >> ถ้าเราพยายามที่จะเข้าถึงที่สี่ องค์ประกอบหรือดัชนีของ 3, 1001 00:45:27,260 --> 00:45:30,357 คุณกำลังจะไปตีที่ใดที่หนึ่ง ในความทรงจำที่ไม่มีอยู่ 1002 00:45:30,357 --> 00:45:31,690 มันเรียกว่าเทอร์มิ null 1003 00:45:31,690 --> 00:45:32,856 ไม่มีอะไรที่จะต้องมี 1004 00:45:32,856 --> 00:45:35,324 คอมพิวเตอร์ของคุณไม่ได้ไป จะมีความสุขมากกับคุณ 1005 00:45:35,324 --> 00:45:36,170 ใช่ 1006 00:45:36,170 --> 00:45:38,430 ไม่มีใครมีคำถาม เกี่ยวกับเหตุผลที่เกิดขึ้น? 1007 00:45:38,430 --> 00:45:39,679 นั่นเป็นพื้นที่ส่วนกลางที่จะหลีกเลี่ยง 1008 00:45:39,679 --> 00:45:40,712 ใช่ 1009 00:45:40,712 --> 00:45:45,777 >> ผู้ชม: ไม่ไม่ได้เป็นครั้งแรก เลื่อนยังมีสายของ 2 หรือไม่? 1010 00:45:45,777 --> 00:45:46,360 ANDI PENG: เลขที่ 1011 00:45:46,360 --> 00:45:49,610 เพื่อเป็นหลักเมื่อ คุณกำลังทำอาร์เรย์ 1012 00:45:49,610 --> 00:45:51,540 สิทธิวงเล็บ นั่น number-- ทั้งหมด 1013 00:45:51,540 --> 00:45:53,480 มันบอกคุณเป็นวิธีการที่ หลายองค์ประกอบที่ฉันมี 1014 00:45:53,480 --> 00:45:55,840 มันไม่จริงบอก ฉันดัชนีอะไร 1015 00:45:55,840 --> 00:45:58,760 ดังนั้นในกรณีนี้ฉันรู้ว่าฉันต้องการ ในการเขียนที่มีสามสถานที่ 1016 00:45:58,760 --> 00:46:02,690 มีสามสถานที่ทางกายภาพ ถือสิ่งที่ฉันต้องการที่จะถือ 1017 00:46:02,690 --> 00:46:04,510 เพื่อที่ว่าทำไมบ้านเลขที่สามจะมี 1018 00:46:04,510 --> 00:46:06,560 แต่ถ้าฉันต้องการ เข้าใช้งานได้จริง 1019 00:46:06,560 --> 00:46:11,220 ถ้าผมต้องการที่จะพูด printf จำนวนชั้นวงเล็บแล้ว 1020 00:46:11,220 --> 00:46:14,560 คุณกำลังจะไปจริงใส่ ดัชนีทางกายภาพมี 1021 00:46:14,560 --> 00:46:16,330 ใช่คำถามที่ดี 1022 00:46:16,330 --> 00:46:20,065 >> ผู้ชม: ดังนั้นทางกายภาพ ดัชนีควรจะเป็น [ไม่ได้ยิน] 1023 00:46:20,065 --> 00:46:20,940 ANDI PENG: ฉันขอโทษ 1024 00:46:20,940 --> 00:46:21,500 คุณสามารถพูดคุยขึ้นเล็กน้อย? 1025 00:46:21,500 --> 00:46:24,208 >> ผู้ชม: เพ​​ื่อให้เป็นดัชนีทางกายภาพ [ไม่ได้ยิน] แต่ละช่อง? 1026 00:46:24,208 --> 00:46:25,260 [ไม่ได้ยิน] 1027 00:46:25,260 --> 00:46:26,040 >> ANDI เป็ง: ใช่ 1028 00:46:26,040 --> 00:46:28,970 ดังนั้นฉันจะกลับไปที่นี่ 1029 00:46:28,970 --> 00:46:31,120 คิดว่าที่นี่ 1030 00:46:31,120 --> 00:46:32,820 เรามีอาร์เรย์ขนาด 3 1031 00:46:32,820 --> 00:46:35,540 มีสามสถานที่ที่เป็นเหมือน ตัวยึดตำแหน่งทางกายภาพในที่นี่ 1032 00:46:35,540 --> 00:46:37,620 แต่พวกเขากำลังตั้งชื่อ 0, 1, 2 1033 00:46:37,620 --> 00:46:40,700 ดังนั้นถ้าผมต้องการที่จะเข้าถึงพวกเขา วิธีการที่ผมเข้าถึงได้ 1034 00:46:40,700 --> 00:46:43,480 เป็น printf ของสิ่งที่ผมอยากมาที่นี่ 1035 00:46:43,480 --> 00:46:45,485 คุณจะต้องพิมพ์ ชื่อของมัน 1036 00:46:45,485 --> 00:46:47,610 เพราะจากนั้นคอมพิวเตอร์ รู้ว่าโอ้ฉันต้องดู 1037 00:46:47,610 --> 00:46:51,391 ในอาร์เรย์สำหรับดัชนี 0 นี้ 1038 00:46:51,391 --> 00:46:51,890 ใช่ 1039 00:46:51,890 --> 00:46:53,306 แต่ขนาดของมันไม่ได้เปลี่ยน 1040 00:46:53,306 --> 00:46:55,492 ขนาดคือ 3 โดยไม่คำนึงถึง วิธีการที่คุณฉลากพวกเขา 1041 00:46:55,492 --> 00:46:58,321 1042 00:46:58,321 --> 00:46:58,820 ตกลง. 1043 00:46:58,820 --> 00:47:01,387 ทุกคนดีหรือไม่? 1044 00:47:01,387 --> 00:47:02,970 ผู้ชม: ดังนั้นเวลาที่ฉัน [ไม่ได้ยิน] ทุกครั้งหรือไม่ 1045 00:47:02,970 --> 00:47:06,357 1046 00:47:06,357 --> 00:47:06,940 ANDI PENG: OK 1047 00:47:06,940 --> 00:47:13,270 ดังนั้นในกรณีนี้เราทำไม่ได้จริงๆ ได้รับในขณะนี้ในหลักสูตร 1048 00:47:13,270 --> 00:47:16,760 แต่รู้ว่า string-- เหมือนฉัน กล่าวก่อนสตริงเป็นหลัก 1049 00:47:16,760 --> 00:47:18,440 อาร์เรย์ของตัวอักษร 1050 00:47:18,440 --> 00:47:21,430 ดังนั้นถ้าฉันสร้างอาร์เรย์ ของสตริง, ชนิดของฉัน 1051 00:47:21,430 --> 00:47:24,430 มีอาร์เรย์ของอาร์เรย์ ของตัวละครใช่มั้ย? 1052 00:47:24,430 --> 00:47:27,720 >> ดังนั้นในกรณีนี้เพราะผม มีอาร์เรย์ของสตริงที่ 1053 00:47:27,720 --> 00:47:31,340 ถ้าคุณมีการใส่คำยาวจริงๆ ที่ยังคงใช้เวลาเพียงหนึ่งพื้นที่ 1054 00:47:31,340 --> 00:47:33,230 เนื่องจากว่าเป็นหนึ่งสตริง 1055 00:47:33,230 --> 00:47:37,492 แต่ถ้าคุณจะคิดว่า ตัวละครของอาเรย์ที่ 1056 00:47:37,492 --> 00:47:40,450 แล้วที่การขึ้นมากขึ้น ตัวละครกว่าใด ๆ ของคำอื่น ๆ 1057 00:47:40,450 --> 00:47:41,372 เป็น 1058 00:47:41,372 --> 00:47:42,830 ไม่สำคัญจริงๆสำหรับตอนนี้ 1059 00:47:42,830 --> 00:47:44,921 แต่นั่นเป็นเพียงทั่วไป วิธีการที่จะทำงาน 1060 00:47:44,921 --> 00:47:49,750 1061 00:47:49,750 --> 00:47:50,560 >> ตกลง. 1062 00:47:50,560 --> 00:47:55,840 ดังนั้นนี่คือสิ่งที่ฉันจะช่วยให้คุณทำ เป็นจำนวนมากในช่วงภาคการศึกษา 1063 00:47:55,840 --> 00:47:57,500 ฉันต้องการที่จะพักผ่อนเสียงของฉัน 1064 00:47:57,500 --> 00:47:59,530 พวกคุณต้องกระตุ้นตัวเอง 1065 00:47:59,530 --> 00:48:02,300 จำนวนมากของคุณอาจ ต้องนอนในขณะนี้ 1066 00:48:02,300 --> 00:48:05,960 ฉันป้อนปัญหาแบบสุ่ม ที่เราเป็นชั้นหรือคุณ 1067 00:48:05,960 --> 00:48:09,480 กับพันธมิตรต่อไปที่คุณจะ ที่จะใช้จ่ายสองสามนาทีพูดคุย 1068 00:48:09,480 --> 00:48:14,980 ในวิธีที่เราจะไปเกี่ยวกับการแก้ หรือการสร้างโปรแกรมเช่นนี้ 1069 00:48:14,980 --> 00:48:17,100 >> ดังนั้นตอนนี้เราต้องการ เพื่อสร้าง program-- 1070 00:48:17,100 --> 00:48:19,560 เราจะเรียกมันว่า upper.c-- ที่แปลง 1071 00:48:19,560 --> 00:48:24,787 คำพิมพ์เล็กไปยังชั้นบน string-- พิมพ์ใหญ่ขอโทษ 1072 00:48:24,787 --> 00:48:26,370 คำในสตริงขออภัยตรงกัน 1073 00:48:26,370 --> 00:48:28,370 ฉันจะเปลี่ยนพวกเขา หมายถึงสิ่งเดียวกัน 1074 00:48:28,370 --> 00:48:32,270 1075 00:48:32,270 --> 00:48:33,499 >> ใช่ 1076 00:48:33,499 --> 00:48:34,540 ใช้เวลาไม่กี่นาที 1077 00:48:34,540 --> 00:48:37,130 มันไม่จำเป็นต้องเป็น เขียนในภาษาใด ๆ 1078 00:48:37,130 --> 00:48:39,890 เพียงแค่ในรหัส pseudocode หรือ วิธีการที่เรามีเหตุผลแม้จะ 1079 00:48:39,890 --> 00:48:42,083 ไปเกี่ยวกับการทำปัญหาดังกล่าว 1080 00:48:42,083 --> 00:48:42,583 ใช่ 1081 00:48:42,583 --> 00:48:49,881 1082 00:48:49,881 --> 00:48:52,780 >> [SIDE สนทนา] 1083 00:48:52,780 --> 00:49:18,680 1084 00:49:18,680 --> 00:49:22,130 >> ฉันยังพบว่าพวกคุณ can-- ชนิดของฉันดูแล้วโปรแกรม 1085 00:49:22,130 --> 00:49:24,600 ผมคิดว่าขาดฉัน โหมดพรีเซนเตอร์ปัญหา 1086 00:49:24,600 --> 00:49:27,410 แต่มันก็โอเค. 1087 00:49:27,410 --> 00:49:30,410 >> [SIDE สนทนา] 1088 00:49:30,410 --> 00:50:03,589 1089 00:50:03,589 --> 00:50:04,380 ใช่โปรดคน 1090 00:50:04,380 --> 00:50:05,400 มารับขนม 1091 00:50:05,400 --> 00:50:06,372 มารับขนม 1092 00:50:06,372 --> 00:50:07,698 >> ผู้ชม: ใช่! 1093 00:50:07,698 --> 00:50:09,958 >> [SIDE สนทนา] 1094 00:50:09,958 --> 00:50:16,101 1095 00:50:16,101 --> 00:50:18,100 ANDI PENG: นอกจากนี้ใช่ ฉันจะเริ่มต้นการขว้างปาลูกอม 1096 00:50:18,100 --> 00:50:20,280 ที่คนที่ไม่ได้ตอบคำถาม 1097 00:50:20,280 --> 00:50:22,260 ดังนั้นคุณควรจะตอบคำถามทั้งหมด 1098 00:50:22,260 --> 00:50:24,895 หรือผมคิดว่าคนที่ ไม่ตอบคำถาม 1099 00:50:24,895 --> 00:50:26,070 ใช่วิธีอื่น ๆ 1100 00:50:26,070 --> 00:50:28,570 >> [SIDE สนทนา] 1101 00:50:28,570 --> 00:51:13,399 1102 00:51:13,399 --> 00:51:14,274 ผู้ชม: [ไม่ได้ยิน] 1103 00:51:14,274 --> 00:51:17,300 1104 00:51:17,300 --> 00:51:18,340 >> ANDI เป็ง: ใช่ 1105 00:51:18,340 --> 00:51:19,340 ใช่ 1106 00:51:19,340 --> 00:51:22,840 >> [SIDE สนทนา] 1107 00:51:22,840 --> 00:51:40,700 1108 00:51:40,700 --> 00:51:41,590 >> สิทธิทั้งหมดคน 1109 00:51:41,590 --> 00:51:44,731 ใช้เวลาเช่น 10 วินาที 1110 00:51:44,731 --> 00:51:48,210 >> [SIDE สนทนา] 1111 00:51:48,210 --> 00:52:10,600 1112 00:52:10,600 --> 00:52:11,750 >> ตกลงพวก 1113 00:52:11,750 --> 00:52:14,920 ดังนั้นก่อนที่เราจะเริ่มพยายามที่จะ จริงร่างกายเขียนโค้ด 1114 00:52:14,920 --> 00:52:20,650 เป็นนิสัยที่ดีในการพัฒนาคือ เราต้องการที่จะชนิดแรกของเหตุผล 1115 00:52:20,650 --> 00:52:22,737 จากเหตุผลวิธีการที่เราจะทำมัน 1116 00:52:22,737 --> 00:52:24,570 คุณต้องการที่จะให้แน่ใจว่า ก่อนที่คุณจะทางร่างกาย 1117 00:52:24,570 --> 00:52:27,210 เริ่มพยายามที่จะรหัส ในมาริโอที่คุณทำ 1118 00:52:27,210 --> 00:52:28,870 แน่ใจว่าคุณมี pseudocode ของคุณ 1119 00:52:28,870 --> 00:52:31,235 ที่จะพาคุณผ่าน สิ่งที่คุณจำเป็นต้องสร้างเพื่อให้ 1120 00:52:31,235 --> 00:52:33,360 ที่เมื่อร่างกายคุณ เขียนโปรแกรมของคุณในภายหลัง 1121 00:52:33,360 --> 00:52:36,640 คุณจะดีกว่าสามารถที่จะจับข้อผิดพลาด ในรหัสของคุณและสิ่งที่ต้องการ 1122 00:52:36,640 --> 00:52:40,460 >> ดังนั้นเรากำลังจะไปเพียงแค่เริ่มต้น by-- ในภาษาอังกฤษใน pseudocode, 1123 00:52:40,460 --> 00:52:43,320 ไม่มีใครต้องการที่จะให้ ฉันเป็นคำอธิบายทั่วไป 1124 00:52:43,320 --> 00:52:46,250 วิธีการที่เราจะไปเกี่ยวกับการทำเช่นนี้? 1125 00:52:46,250 --> 00:52:48,102 ใช่ 1126 00:52:48,102 --> 00:52:49,664 >> ผู้ชม: [ไม่ได้ยิน] 1127 00:52:49,664 --> 00:52:50,830 ANDI PENG: แน่นอนว่าไม่ต้องกังวล 1128 00:52:50,830 --> 00:52:57,233 ผู้ชม: คุณสามารถขอให้หรือขอให้ ใครบางคนที่จะได้รับสตริง 1- ใช่สตริง 1129 00:52:57,233 --> 00:52:58,160 และ then-- 1130 00:52:58,160 --> 00:52:59,826 >> ANDI เป็ง: ใช่ดังนั้นนี้เป็นเริ่มต้นที่ดี 1131 00:52:59,826 --> 00:53:01,972 ฉันจะเริ่มต้นการพิมพ์ขอโทษที่คุณพูด 1132 00:53:01,972 --> 00:53:02,471 So-- 1133 00:53:02,471 --> 00:53:05,698 >> ผู้ชม: พิมพ์เล็ก --the ตัวเลขที่สูงขึ้นใช่มั้ย? 1134 00:53:05,698 --> 00:53:08,519 หรือตัวพิมพ์เล็ก มีตัวเลขที่สูง? 1135 00:53:08,519 --> 00:53:09,310 ANDI PENG: แน่นอน 1136 00:53:09,310 --> 00:53:16,156 ผู้ชม: ดังนั้นแล้วเราลบ 32 จากสิ่งที่ [ไม่ได้ยิน] 1137 00:53:16,156 --> 00:53:28,600 1138 00:53:28,600 --> 00:53:29,870 >> ANDI PENG: Great 1139 00:53:29,870 --> 00:53:35,020 ดังนั้นเราจึงมีชนิดของความหมายทั่วไป ของวิธีการทำงานเกี่ยวกับปัญหานี้ 1140 00:53:35,020 --> 00:53:40,060 รู้ว่าเราได้เรียนรู้ชนิดของ วิธีการที่สายทางกายภาพ 1141 00:53:40,060 --> 00:53:43,320 จะถูกเก็บไว้ในหน่วยความจำ ทำในสิ่งที่คุณมีอยู่แล้ว 1142 00:53:43,320 --> 00:53:45,920 รู้ว่าคุณกำลังจะไปอาจจะ ต้องเขียนในรหัสของคุณ 1143 00:53:45,920 --> 00:53:48,288 เพื่อที่จะก้าวผ่านสตริง? 1144 00:53:48,288 --> 00:53:49,259 >> ผู้ชม: สำหรับวง 1145 00:53:49,259 --> 00:53:50,550 ANDI เป็ง: เป็นห่วงว่า 1146 00:53:50,550 --> 00:53:56,540 1147 00:53:56,540 --> 00:53:57,220 ที่ดี 1148 00:53:57,220 --> 00:54:00,539 ดังนั้นเราจึงมีชนิดของทั่วไป pseudocode เขียนลง 1149 00:54:00,539 --> 00:54:02,330 ว่าจะให้ คุณตั้งข้อสังเกตเกี่ยวกับวิธีการที่คุณ 1150 00:54:02,330 --> 00:54:03,900 จะย้ายเกี่ยวกับการแก้ปัญหาที่เกิดขึ้น 1151 00:54:03,900 --> 00:54:06,150 ตอนนี้คุณมีนี้คุณ สามารถอ้างอิงได้ในภายหลัง 1152 00:54:06,150 --> 00:54:08,233 เมื่อคุณกำลังพยายามที่จะ จริงเขียนรหัสของคุณ 1153 00:54:08,233 --> 00:54:10,240 ดังนั้นเราจะสามารถไปที่นี่ 1154 00:54:10,240 --> 00:54:25,130 และผมได้มีฟังก์ชั่นที่เรียกว่า upper.c-- มันมี is-- เพียงแม่แบบที่ว่างเปล่า 1155 00:54:25,130 --> 00:54:28,510 ตอนนี้ที่พวกคุณจะไป ช่วยฉันคิดออกในการเขียน 1156 00:54:28,510 --> 00:54:30,430 สายไม่สาย code-- ของรหัสนี้ 1157 00:54:30,430 --> 00:54:32,890 มันจะเป็นหลายบรรทัดของรหัส 1158 00:54:32,890 --> 00:54:35,710 >> เมื่อเริ่มต้นใด ๆ ของ pset ว่างเปล่าสิ่งที่ 1159 00:54:35,710 --> 00:54:37,418 สิ่งแรกที่ผมต้อง จำไว้ว่าให้ทำอย่างไร 1160 00:54:37,418 --> 00:54:39,290 >> ผู้ชม: [ไม่ได้ยิน] 1161 00:54:39,290 --> 00:54:41,000 >> ANDI PENG: Great ครับ 1162 00:54:41,000 --> 00:54:41,500 รวม 1163 00:54:41,500 --> 00:54:44,850 1164 00:54:44,850 --> 00:54:47,130 stdio.h 1165 00:54:47,130 --> 00:54:49,640 บ่อยครั้งนี้เป็นหนึ่งใน คนที่ผิดพลาดได้ง่ายมากที่สุด 1166 00:54:49,640 --> 00:54:51,598 จะทำให้เมื่อพวกเขากำลัง การเขียนคือการที่พวกเขาจะ 1167 00:54:51,598 --> 00:54:54,180 ลืมที่จะมี ห้องสมุดที่สำคัญที่พวกเขาต้องการ 1168 00:54:54,180 --> 00:54:57,689 ดังนั้นถ้าหากมันเป็นเวลาทำงานและคุณชอบ ผมไม่ทราบว่าทำไมรหัสของฉันไม่ได้ทำงาน 1169 00:54:57,689 --> 00:54:59,230 คุณสามารถบอกฉันทำไมมันไม่ทำงาน? 1170 00:54:59,230 --> 00:55:00,730 เรากำลังจะบอกว่าคุณไม่ # รวม? 1171 00:55:00,730 --> 00:55:02,520 คุณควร # รวมมัน 1172 00:55:02,520 --> 00:55:03,270 ตกลง. 1173 00:55:03,270 --> 00:55:07,230 >> ดังนั้นเราจึงได้มีมาตรฐาน I / O ที่นี่ 1174 00:55:07,230 --> 00:55:10,740 นั่นคือห้องสมุดเท่านั้น เราจะต้องอยู่ที่นี่? 1175 00:55:10,740 --> 00:55:12,681 เราเป็นสิ่งที่คนอื่นจะทำอย่างไร 1176 00:55:12,681 --> 00:55:13,180 ขอโทษ 1177 00:55:13,180 --> 00:55:14,562 มีคนเพียงแค่กรีดร้องออก? 1178 00:55:14,562 --> 00:55:15,666 >> ผู้ชม: [ไม่ได้ยิน] 1179 00:55:15,666 --> 00:55:16,666 ANDI PENG: มีคุณไป 1180 00:55:16,666 --> 00:55:20,320 1181 00:55:20,320 --> 00:55:21,440 ตกลง. 1182 00:55:21,440 --> 00:55:26,070 และวิธีการที่ฉันจะไปเกี่ยวกับการเริ่มต้นใด ๆ ของฟังก์ชั่นการจัดเรียงของฟังก์ชั่นหลัก ๆ 1183 00:55:26,070 --> 00:55:28,760 ภายในโปรแกรมของเราหรือไม่ 1184 00:55:28,760 --> 00:55:30,020 Int หลัก 1185 00:55:30,020 --> 00:55:34,531 1186 00:55:34,531 --> 00:55:35,030 ตกลง. 1187 00:55:35,030 --> 00:55:35,970 ฉันจะทำอะไรใส่ในที่นี่? 1188 00:55:35,970 --> 00:55:37,640 สิ่งแรกที่คุณต้องการจะทำคืออะไร? 1189 00:55:37,640 --> 00:55:39,910 ถ้าเราต้องการที่จะได้รับ สตริงจากผู้ใช้ 1190 00:55:39,910 --> 00:55:43,870 สิ่งที่เรากำลังจะมี ที่จะทำในบรรทัดแรกนี้หรือไม่? 1191 00:55:43,870 --> 00:55:46,120 ขออภัยที่พวกคุณเพียงแค่รู้สึก อิสระที่จะพูดขึ้นและดัง 1192 00:55:46,120 --> 00:55:47,123 เพียงแค่สิ่งที่ตะโกนออกมา 1193 00:55:47,123 --> 00:55:48,772 >> ผู้ชม: ขอให้ผู้ใช้หรือไม่ 1194 00:55:48,772 --> 00:55:49,980 ANDI เป็ง: เราจะทำอย่างนั้นได้อย่างไร 1195 00:55:49,980 --> 00:55:51,873 Ask-- ฉันจะพิมพ์ "ขอให้ผู้ใช้"? 1196 00:55:51,873 --> 00:55:52,600 >> ผู้ชม: printf 1197 00:55:52,600 --> 00:55:54,341 >> ANDI PENG: OK 1198 00:55:54,341 --> 00:55:54,840 printf 1199 00:55:54,840 --> 00:55:57,372 อะไรที่ฉันต้องการที่จะ printf? 1200 00:55:57,372 --> 00:55:58,776 >> ผู้ชม: ประเภทในบางสิ่งบางอย่าง 1201 00:55:58,776 --> 00:56:02,760 1202 00:56:02,760 --> 00:56:03,840 >> ANDI PENG: เช่นเดียวกับที่? 1203 00:56:03,840 --> 00:56:05,430 พวกหลอกเหมือนฉันคอมพิวเตอร์ 1204 00:56:05,430 --> 00:56:08,475 ร่างกายบอกฉันทุกขั้นตอน ที่ฉันต้องพิมพ์ในที่นี่? 1205 00:56:08,475 --> 00:56:09,600 ฉันทำอะไรผิดพลาด? 1206 00:56:09,600 --> 00:56:10,743 ฉันควรจะได้พิมพ์อะไร? 1207 00:56:10,743 --> 00:56:11,690 >> ผู้ชม: คุณต้องคำพูด 1208 00:56:11,690 --> 00:56:12,380 >> ANDI เป็ง: ผมต้องการคำพูด? 1209 00:56:12,380 --> 00:56:12,880 ตกลง. 1210 00:56:12,880 --> 00:56:15,520 1211 00:56:15,520 --> 00:56:16,297 ตกลง. 1212 00:56:16,297 --> 00:56:17,698 >> ผู้ชม: และบรรทัดใหม่แล้ว 1213 00:56:17,698 --> 00:56:21,434 1214 00:56:21,434 --> 00:56:22,465 อัฒภาค 1215 00:56:22,465 --> 00:56:23,340 ANDI PENG: อัฒภาค? 1216 00:56:23,340 --> 00:56:24,060 ตกลง. 1217 00:56:24,060 --> 00:56:24,560 ดี 1218 00:56:24,560 --> 00:56:27,060 >> ผู้ชม: และอาจจะระบุ ที่คุณต้องการให้มันอยู่ในตัวพิมพ์เล็ก? 1219 00:56:27,060 --> 00:56:30,120 1220 00:56:30,120 --> 00:56:31,415 >> ANDI PENG: Great 1221 00:56:31,415 --> 00:56:33,540 พวกคุณหัวเราะเยาะฉัน ลืมที่จะใส่เครื่องหมายอัฒภาค 1222 00:56:33,540 --> 00:56:36,350 ฉันรับประกันคุณอยู่ที่ไหนสักแห่ง ในหลักสูตรของระดับนี้, 1223 00:56:36,350 --> 00:56:38,260 คุณจะลืมที่จะใส่ อัฒภาคและมัน 1224 00:56:38,260 --> 00:56:41,116 จะนำคุณสามชั่วโมงที่จะคิด ว่าทำไมรหัสของคุณไม่ทำงาน 1225 00:56:41,116 --> 00:56:42,240 มันเกิดขึ้นกับเราทุกคน 1226 00:56:42,240 --> 00:56:43,950 มันอาจจะเกิดขึ้นกับคุณ 1227 00:56:43,950 --> 00:56:46,352 ได้รับในนิสัยที่ดีของการใช้เครื่องหมายอัฒภาค 1228 00:56:46,352 --> 00:56:46,852 ตกลง. 1229 00:56:46,852 --> 00:56:49,010 >> ผู้ชม: คุณต้องการ ที่จะทำเครื่องหมายใน? 1230 00:56:49,010 --> 00:56:50,398 >> ANDI PENG: Sure 1231 00:56:50,398 --> 00:56:51,856 คุณต้องการที่จะทำเครื่องหมายอะไรบ้าง? 1232 00:56:51,856 --> 00:56:53,020 >> ผู้ชม: ใช่ 1233 00:56:53,020 --> 00:56:54,330 >> ANDI PENG: Great 1234 00:56:54,330 --> 00:56:54,830 ตกลง. 1235 00:56:54,830 --> 00:56:57,872 ฉันจะทำอย่างไรต่อไปหรือไม่ 1236 00:56:57,872 --> 00:56:58,964 >> ผู้ชม: สตริงรับ 1237 00:56:58,964 --> 00:56:59,880 ANDI PENG: สตริงรับ 1238 00:56:59,880 --> 00:57:03,080 1239 00:57:03,080 --> 00:57:03,830 ดังนั้นสิ่งที่ฉันพิมพ์? 1240 00:57:03,830 --> 00:57:04,233 ใครบางคน? 1241 00:57:04,233 --> 00:57:05,040 >> ผู้ชม: String s 1242 00:57:05,040 --> 00:57:05,873 >> ANDI PENG: String s 1243 00:57:05,873 --> 00:57:07,251 ผู้ชม: GetString 1244 00:57:07,251 --> 00:57:09,000 ANDI PENG: Somebody, คุณสามารถบอกฉันที่ 1245 00:57:09,000 --> 00:57:12,000 GetString ฟังก์ชันนี้จะมาจากไหน? 1246 00:57:12,000 --> 00:57:13,660 >> ผู้ชม: สตริง 1247 00:57:13,660 --> 00:57:15,256 >> ANDI PENG: สตริง? 1248 00:57:15,256 --> 00:57:16,715 คุณคิดว่ามันเป็นจากสตริง? 1249 00:57:16,715 --> 00:57:17,830 >> ผู้ชม: [ไม่ได้ยิน] 1250 00:57:17,830 --> 00:57:18,830 >> ANDI PENG: มีคุณไป 1251 00:57:18,830 --> 00:57:21,280 มันมาจาก CS50.h. 1252 00:57:21,280 --> 00:57:24,530 หากคุณกำลังสับสนเสมอในการที่ ไฟล์ไลบรารีหรือไฟล์ส่วนหัว 1253 00:57:24,530 --> 00:57:28,450 กูเกิลอย่างแท้จริงสตริง, และฉันจะบอกคุณ 1254 00:57:28,450 --> 00:57:30,450 สิ่งที่มีฟังก์ชั่นทั้งหมด ที่อยู่ในสตริง 1255 00:57:30,450 --> 00:57:31,340 ตกลง. 1256 00:57:31,340 --> 00:57:35,210 >> ดังนั้นขณะนี้ที่ผมได้สร้างสตริง และผมได้แจ้งให้ผู้ใช้มัน 1257 00:57:35,210 --> 00:57:38,770 ฉันได้เก็บไว้ในตัวแปร ชื่อของสิ่งที่ฉันต้องทำตอนนี้หรือไม่ 1258 00:57:38,770 --> 00:57:40,652 >> ผู้ชม: ตรวจสอบว่ามันอยู่ในตัวพิมพ์เล็ก 1259 00:57:40,652 --> 00:57:41,360 ANDI PENG: ขออภัย? 1260 00:57:41,360 --> 00:57:42,545 ผู้ชม: ตรวจสอบว่ามันอยู่ในตัวพิมพ์เล็ก 1261 00:57:42,545 --> 00:57:44,045 ANDI PENG: สิทธิทั้งหมดขอให้ทำอย่างนั้น 1262 00:57:44,045 --> 00:57:45,857 ฉันจะทำอย่างไร 1263 00:57:45,857 --> 00:57:47,940 ที่จริงสำหรับวัตถุประสงค์ ของชั้นเรียนในขณะนี้ 1264 00:57:47,940 --> 00:57:50,330 เราเพียงแค่จะไป ถือว่าทุกอย่างที่ 1265 00:57:50,330 --> 00:57:52,620 การป้อนข้อมูลที่เรามีอยู่แล้วในตัวพิมพ์เล็ก 1266 00:57:52,620 --> 00:57:55,430 หากคุณต้องการที่จะตรวจสอบคุณจะ เพียงแค่เพิ่มคำสั่งเงื่อนไข 1267 00:57:55,430 --> 00:57:59,640 ว่าการตรวจสอบที่วิ่งผ่าน ทุกองค์ประกอบอาร์เรย์เดียว 1268 00:57:59,640 --> 00:58:02,540 และการตรวจสอบถ้ามัน ระหว่างค่าบางอย่าง 1269 00:58:02,540 --> 00:58:05,627 ฉันลืมสิ่งที่จำนวน ของค่าของตัวพิมพ์เล็กมี 1270 00:58:05,627 --> 00:58:07,210 คุณสามารถดูมันขึ้นมาบนโต๊ะแอสกี 1271 00:58:07,210 --> 00:58:08,800 แต่ใช่ว่าเป็นจุดที่ดีจริงๆ 1272 00:58:08,800 --> 00:58:11,758 แต่ตอนนี้เรากำลังจะ สมมติว่าเงื่อนไขทั้งหมดที่เราป้อนข้อมูล 1273 00:58:11,758 --> 00:58:13,130 อยู่ในตัวพิมพ์เล็ก 1274 00:58:13,130 --> 00:58:13,870 ตกลง. 1275 00:58:13,870 --> 00:58:18,069 >> ดังนั้นวิธีการที่ฉันจะไปเกี่ยวกับ ปัญหาต่อไปนี้หรือไม่? 1276 00:58:18,069 --> 00:58:18,860 ผู้ชม: สำหรับวง 1277 00:58:18,860 --> 00:58:19,340 ANDI PENG: สำหรับวง? 1278 00:58:19,340 --> 00:58:19,839 ตกลง. 1279 00:58:19,839 --> 00:58:20,847 บอกสิ่งที่จะพิมพ์ 1280 00:58:20,847 --> 00:58:25,230 >> ผู้ชม: สำหรับฉัน int เท่ากับ 0 1281 00:58:25,230 --> 00:58:27,230 >> ANDI PENG: OK 1282 00:58:27,230 --> 00:58:36,350 >> ผู้ชม: โอ้จริงแล้วคุณ ทำเครื่องหมายจุลภาคและทำ n เท่ากับ strlen 1283 00:58:36,350 --> 00:58:38,940 >> ANDI PENG: สิ่งที่สำคัญดังนั้น ที่ฉันคิดว่าเธอสังเกตเห็นที่นี่ 1284 00:58:38,940 --> 00:58:42,936 คือการที่เราไม่ได้มีการพูด int n ครั้งที่สองที่เราทำอย่างนี้ 1285 00:58:42,936 --> 00:58:45,060 เพียงแค่รู้ว่าในสำหรับ ห่วงเมื่อคุณประกาศ 1286 00:58:45,060 --> 00:58:47,934 คุณจริงไม่จำเป็นต้อง int ของ เป็นครั้งที่สองที่คุณทำตัวแปร 1287 00:58:47,934 --> 00:58:51,202 คุณสามารถพูดได้ n strlen 1288 00:58:51,202 --> 00:58:52,620 >> ผู้ชม: s ของ 1289 00:58:52,620 --> 00:58:53,510 >> ANDI PENG: s 1290 00:58:53,510 --> 00:58:54,706 ตกลง. 1291 00:58:54,706 --> 00:58:58,370 >> ผู้ชม: แล้วอัฒภาค 1292 00:58:58,370 --> 00:59:00,130 >> ANDI PENG: Sure 1293 00:59:00,130 --> 00:59:04,050 >> ผู้ชม: และแล้ว [ไม่ได้ยิน] n 1294 00:59:04,050 --> 00:59:07,480 1295 00:59:07,480 --> 00:59:09,460 แล้วฉัน ++ 1296 00:59:09,460 --> 00:59:11,780 >> ANDI PENG: Great 1297 00:59:11,780 --> 00:59:12,280 ทั้งหมดขวา 1298 00:59:12,280 --> 00:59:14,690 เราต้องการอะไรอยู่ภายใน นี้สำหรับวงตอนนี้หรือไม่ 1299 00:59:14,690 --> 00:59:17,820 จำไว้ว่าถ้าเรากำลังจะวิ่งผ่าน สตริงและวิ่งผ่านอาร์เรย์ 1300 00:59:17,820 --> 00:59:19,287 เราต้องการที่จะตรวจสอบสิ่งที่อยู่ในนั้น 1301 00:59:19,287 --> 00:59:20,370 เรามีสิ่งที่จะต้อง? 1302 00:59:20,370 --> 00:59:23,070 1303 00:59:23,070 --> 00:59:26,900 นี้เป็นชนิดของส่วนที่ยุ่งยากในขณะนี้ 1304 00:59:26,900 --> 00:59:27,960 ใครมีการคาดเดาหรือไม่? 1305 00:59:27,960 --> 00:59:34,160 1306 00:59:34,160 --> 00:59:34,690 >> ตกลง. 1307 00:59:34,690 --> 00:59:37,830 ดังนั้นก่อนจะทำอย่างไรที่เราจะได้เข้าถึง? 1308 00:59:37,830 --> 00:59:41,610 ทำที่เราจะได้ตรวจสอบก่อนหรืออย่างไร เข้าถึงองค์ประกอบในอาร์เรย์แล้ว? 1309 00:59:41,610 --> 00:59:42,920 เราจะทำอย่างนั้นได้อย่างไร? 1310 00:59:42,920 --> 00:59:47,120 มีอะไรที่เราใช้สัญกรณ์ที่จะทำหรือไม่ 1311 00:59:47,120 --> 00:59:50,920 ชื่ออะไรแถวนี้เรียกว่า? 1312 00:59:50,920 --> 00:59:52,400 มันเรียกว่า s ใช่มั้ย? 1313 00:59:52,400 --> 00:59:54,850 >> โปรดจำไว้ว่าสตริงใด ๆ อยู่เสมออาร์เรย์ 1314 00:59:54,850 --> 00:59:58,210 วงเล็บ s ดังนั้นฉันใช่มั้ย? 1315 00:59:58,210 --> 01:00:01,360 เพราะเห็นว่าเป็นมูลค่าปัจจุบัน หรือค่าดัชนีที่เรากำลังตรวจสอบ 1316 01:00:01,360 --> 01:00:05,156 และเรากำลังจะไปตั้งที่เท่ากัน to-- เราต้องการค่าตัวพิมพ์เล็กใช่มั้ย? 1317 01:00:05,156 --> 01:00:07,530 เราต้องการที่จะเปิดที่ lower-- ขออภัยเราต้องการเป็นตัวพิมพ์ใหญ่ 1318 01:00:07,530 --> 01:00:10,014 เราต้องการที่จะเปิดตัวพิมพ์เล็ก ค่าลงในพิมพ์ใหญ่ 1319 01:00:10,014 --> 01:00:11,805 และเพื่อ like-- ฉันขอโทษ คุณชื่ออะไร? 1320 01:00:11,805 --> 01:00:12,580 >> ผู้ชม: ไฮดี้ 1321 01:00:12,580 --> 01:00:12,940 >> ANDI PENG: ขออภัย? 1322 01:00:12,940 --> 01:00:13,280 >> ผู้ชม: ไฮดี้ 1323 01:00:13,280 --> 01:00:13,988 >> ANDI PENG: ไฮดี้ 1324 01:00:13,988 --> 01:00:15,850 เช่นเดียวกับไฮดี้กล่าวว่า ในขั้นต้นเราอาจจะ 1325 01:00:15,850 --> 01:00:20,330 จะต้อง the-- เรา อาจจะเป็นไปได้ที่จะลบ 1326 01:00:20,330 --> 01:00:22,630 32 จากสิ่งที่ charc ที่ใช่มั้ย? 1327 01:00:22,630 --> 01:00:24,680 เพราะใน ASCII ตารางที่แตกต่างกัน 1328 01:00:24,680 --> 01:00:27,790 ระหว่างตัวอักษรตัวพิมพ์เล็ก และอักษรตัวพิมพ์ใหญ่เป็น 32 1329 01:00:27,790 --> 01:00:31,290 ดังนั้นเมื่อเราทำเช่นนี้เราอาจจะ จะต้องการที่จะลบ 32 ใช่มั้ย? 1330 01:00:31,290 --> 01:00:33,910 >> ดังนั้นเรากำลังจะทำของฉัน 1331 01:00:33,910 --> 01:00:37,590 1332 01:00:37,590 --> 01:00:41,200 ทุกคนไม่เข้าใจว่าทำไมฉันไม่ว่า? 1333 01:00:41,200 --> 01:00:45,760 เพราะตอนนี้ในอาร์เรย์ของเรา เรากำลังตรวจสอบดัชนี 0 ใช่มั้ย? 1334 01:00:45,760 --> 01:00:49,190 และในดัชนีของ 0 สตริงที่ตัวอักษรตัวแรก 1335 01:00:49,190 --> 01:00:51,820 และตัวละครที่เรากำลังจะ จะถือว่าเป็นตัวพิมพ์เล็ก 1336 01:00:51,820 --> 01:00:55,980 ถ้าเราต้องการที่จะให้มันเป็นตัวพิมพ์ใหญ่เรา ต้องลบ 32 จากค่าของมัน 1337 01:00:55,980 --> 01:00:58,620 เพราะใน ASCII ของเรา ตารางที่วิธีการที่เราได้รับมัน 1338 01:00:58,620 --> 01:01:01,600 ไปที่สอดคล้องกัน ค่าที่ทำให้มันเป็นตัวพิมพ์ใหญ่ 1339 01:01:01,600 --> 01:01:03,714 ไม่เข้าใจว่าทุกคน? 1340 01:01:03,714 --> 01:01:04,213 ใช่ 1341 01:01:04,213 --> 01:01:06,530 >> ผู้ชม: คุณยังสามารถ ไม่เป็นตัวพิมพ์เล็ก minus-- 1342 01:01:06,530 --> 01:01:08,080 >> ANDI เป็ง: ใช่เพื่อให้เป็น จริงที่ดีจริงๆ 1343 01:01:08,080 --> 01:01:10,455 ฉันจะกลับมาที่ คำถามหลังจากที่เราทำเช่นนี้ 1344 01:01:10,455 --> 01:01:11,060 ใช่ 1345 01:01:11,060 --> 01:01:13,940 และแล้วถ้าผมต้องการที่จะ ดูสิ่งที่เกิดขึ้น 1346 01:01:13,940 --> 01:01:16,180 ฉันอาจจะไป ต้องการพิมพ์ใช่มั้ย? 1347 01:01:16,180 --> 01:01:19,930 ใครบางคนบอกฉันว่า ฉันต้องการพิมพ์ที่นี่ 1348 01:01:19,930 --> 01:01:29,160 >> ผู้ชม: ร้อยละ printf เครื่องหมายค [ไม่ได้ยิน] 1349 01:01:29,160 --> 01:01:33,570 นั่นคือค่าของ [ไม่ได้ยิน] s ที่ฉัน 1350 01:01:33,570 --> 01:01:34,614 >> ANDI PENG: s ฉันขอโทษ? 1351 01:01:34,614 --> 01:01:35,530 ผู้ชม: [ไม่ได้ยิน] 1352 01:01:35,530 --> 01:01:38,550 1353 01:01:38,550 --> 01:01:39,550 ANDI เป็ง: ผมไม่ทราบว่า 1354 01:01:39,550 --> 01:01:40,600 คุณคิดอย่างไร? 1355 01:01:40,600 --> 01:01:44,016 >> ผู้ชม: ดีฉัน wouldn't-- ผมคิดว่าผมจะไม่ bring-- 1356 01:01:44,016 --> 01:01:46,944 ฉันจะเอามันออก ภายในเพราะ [ไม่ได้ยิน] 1357 01:01:46,944 --> 01:01:49,726 1358 01:01:49,726 --> 01:01:51,392 ANDI PENG: โอ้คุณจะได้ทำอย่างนั้น? 1359 01:01:51,392 --> 01:01:53,867 ผู้ชม: ใช่ 1360 01:01:53,867 --> 01:01:56,700 ANDI PENG: Let 's ปล่อยให้มันเป็นวิธีการที่ มันเป็นและฉันจะอธิบายว่าทำไมในภายหลัง 1361 01:01:56,700 --> 01:01:58,533 โปรดจำไว้ว่าแม้คุณ มีผู้ถือสถานที่ 1362 01:01:58,533 --> 01:02:00,701 คุณต้องการใส่วงเล็บรอบ 1363 01:02:00,701 --> 01:02:01,200 ทั้งหมดขวา 1364 01:02:01,200 --> 01:02:04,810 ดังนั้นนี้ควรจะเป็นฟังก์ชั่นที่เป็นของแข็งที่นี่ 1365 01:02:04,810 --> 01:02:06,370 ลองใช้มันและดูว่าจะรวบรวม 1366 01:02:06,370 --> 01:02:08,750 ทำให้ตอนบนของภาค 1367 01:02:08,750 --> 01:02:09,250 เอ่อโอ้. 1368 01:02:09,250 --> 01:02:12,030 1369 01:02:12,030 --> 01:02:13,340 ที่ไม่ได้ดูดีเกินไป 1370 01:02:13,340 --> 01:02:14,507 ที่เกิดขึ้นนี้เป็นเพราะเหตุใด 1371 01:02:14,507 --> 01:02:17,340 เช่นเดียวกับข้อผิดพลาดใด ๆ ที่คุณต้องการไป กลับมาและเริ่มต้นด้วยคนแรก 1372 01:02:17,340 --> 01:02:20,630 เพราะมักจะเป็นหนึ่งในสาเหตุที่ทำให้เกิดข้อผิดพลาด จำนวนมากของข้อผิดพลาดอื่น ๆ หลังจากที่มัน 1373 01:02:20,630 --> 01:02:26,700 ที่นี่เราเห็น upper.c: 18: 25 ซึ่งบอก ฉันในโปรแกรมนี้ชื่อ upper.c, 1374 01:02:26,700 --> 01:02:33,800 ในบรรทัดที่ 18 ข้อผิดพลาดโดยปริยายประกาศ ห้องสมุดของฟังก์ชัน strlen ชนิด 1375 01:02:33,800 --> 01:02:36,330 unassigned-- blah, ผมไม่ทราบว่า สิ่งที่เกิดขึ้นหลังจากนั้น 1376 01:02:36,330 --> 01:02:39,990 >> ทั้งหมดก็บอกฉันตอนนี้คือ บางสิ่งบางอย่างที่เกิดขึ้น strlen 1377 01:02:39,990 --> 01:02:43,520 และคอมพิวเตอร์ที่สับสนเพราะ มันเหมือนผมไม่ทราบว่าสิ่งที่ strlen คืออะไร? 1378 01:02:43,520 --> 01:02:45,520 อะไรที่อาจจะ บอกคุณคุณจะหายไป? 1379 01:02:45,520 --> 01:02:46,490 >> ผู้ชม: คุณกำลังขาดหายไป [ไม่ได้ยิน] 1380 01:02:46,490 --> 01:02:47,630 >> ANDI PENG: คุณขวา 1381 01:02:47,630 --> 01:02:49,510 ที่แน่นอน 1382 01:02:49,510 --> 01:02:52,140 ดังนั้นนี่เป็นที่ที่มันเป็น ที่สำคัญเพื่อให้แน่ใจว่า 1383 01:02:52,140 --> 01:02:56,970 ฟังก์ชั่นที่คุณใช้ในทุกๆ รหัสจะมีส่วนหัวที่ถูกต้อง 1384 01:02:56,970 --> 01:02:59,660 ไฟล์สำหรับห้องสมุดหรืออื่น ๆ คุณกำลังจะได้รับจำนวนมากของข้อผิดพลาด 1385 01:02:59,660 --> 01:03:01,150 และรหัสของคุณจะไม่ ที่จะรู้ว่าสิ่งที่เกิดขึ้น 1386 01:03:01,150 --> 01:03:03,050 ดังนั้นเรากำลังจะรวมถึงสตริงที่นี่ 1387 01:03:03,050 --> 01:03:06,270 >> ตอนนี้เมื่อเราพยายามที่จะรวบรวมบน 1388 01:03:06,270 --> 01:03:08,410 รวบรวมได้อย่างถูกต้อง 1389 01:03:08,410 --> 01:03:09,960 ลองเรียกใช้โปรแกรมนี้ 1390 01:03:09,960 --> 01:03:12,000 ดังนั้นพิมพ์อะไรบางอย่างในตัวพิมพ์เล็ก 1391 01:03:12,000 --> 01:03:14,920 สิ่งที่พวกคุณต้องการพิมพ์? 1392 01:03:14,920 --> 01:03:16,546 ตะโกนออกมาบางสิ่งบางอย่าง 1393 01:03:16,546 --> 01:03:17,920 สิทธิทั้งหมด Charly เพียงแค่เดินเข้ามาใน 1394 01:03:17,920 --> 01:03:18,990 เราจะพิมพ์ชื่อของ Charly 1395 01:03:18,990 --> 01:03:21,670 1396 01:03:21,670 --> 01:03:22,840 >> Charly ในตัวพิมพ์เล็ก 1397 01:03:22,840 --> 01:03:27,742 และหวังว่าหวังว่านี้เป็น จะตะโกนออกมาและคายออกมา 1398 01:03:27,742 --> 01:03:28,575 Charly ตัวพิมพ์ใหญ่ 1399 01:03:28,575 --> 01:03:30,830 เย้! 1400 01:03:30,830 --> 01:03:33,430 ไม่ทุกคนเข้าใจว่า ผมไปเกี่ยวกับการแก้ที่? 1401 01:03:33,430 --> 01:03:36,190 วิธีการที่ฉันสามารถ จัดการโดยใช้จำนวนเต็ม 1402 01:03:36,190 --> 01:03:39,410 เพื่อแก้ปัญหาบางอย่างที่ ฉันต้องการจะทำในสตริง 1403 01:03:39,410 --> 01:03:44,390 เพราะตัวอักษรและสามารถจำนวนเต็ม ถูกอ้างถึงในทางเดียวกันเพราะ 1404 01:03:44,390 --> 01:03:45,540 ของการทำแผนที่ ASCII 1405 01:03:45,540 --> 01:03:52,890 >> เพื่อที่จะกลับไปที่จุดของคุณถ้าผม ต้องการที่จะนำนี่แทน 32 1406 01:03:52,890 --> 01:03:58,959 พิมพ์ใหญ่ A ลบตัวพิมพ์เล็กเช่นเดียวกับ ที่ที่จะทำงานอย่างเท่าเทียมกันเป็นอย่างดี 1407 01:03:58,959 --> 01:04:01,750 เนื่องจากว่าเป็นเพียงแค่ ความแตกต่างระหว่างทั้งสองค่า 1408 01:04:01,750 --> 01:04:09,570 ถ้าผมต้องการที่จะทำให้ charly again-- นี้ 1409 01:04:09,570 --> 01:04:10,320 ไม่นะ. 1410 01:04:10,320 --> 01:04:11,820 ผมคิดว่าเราเดินไปทางที่ผิดใช่? 1411 01:04:11,820 --> 01:04:13,260 >> ผู้ชม: [ไม่ได้ยิน] ตัวพิมพ์เล็ก 1412 01:04:13,260 --> 01:04:14,260 >> ANDI PENG: มีคุณไป 1413 01:04:14,260 --> 01:04:22,380 1414 01:04:22,380 --> 01:04:22,880 อือ 1415 01:04:22,880 --> 01:04:24,920 และถ่มน้ำลายออก charly 1416 01:04:24,920 --> 01:04:28,020 ดังนั้นควรระมัดระวังเมื่อ คุณกำลังลบค่า 1417 01:04:28,020 --> 01:04:30,400 ที่ต้องจำไว้เป็นที่หนึ่ง มากขึ้นกว่าที่อื่น ๆ 1418 01:04:30,400 --> 01:04:35,220 ยกตัวอย่างเช่นที่นี่ฉันลืม ตัวพิมพ์เล็กที่เป็นจริง 1419 01:04:35,220 --> 01:04:38,540 มากกว่า A. พิมพ์ใหญ่ดังนั้นเมื่อผม พยายามที่จะลบพวกเขาวิธีการอื่น ๆ 1420 01:04:38,540 --> 01:04:40,600 รอบที่ผมได้รับในเชิงลบ 32 1421 01:04:40,600 --> 01:04:42,800 และคอมพิวเตอร์ของฉันก็ชอบ ผมไม่ทราบว่ามันคืออะไร 1422 01:04:42,800 --> 01:04:45,810 มันน่าจะเป็นเพียงบางส่วนแบบสุ่ม ค่าที่ไม่ดีมาก 1423 01:04:45,810 --> 01:04:48,760 และเพื่อให้แน่ใจว่าคุณ การลบความยาวที่ถูกต้อง 1424 01:04:48,760 --> 01:04:52,831 เพื่อหาตัวอักษรที่คุณต้องการ 1425 01:04:52,831 --> 01:04:53,330 ตกลง. 1426 01:04:53,330 --> 01:04:58,550 เป็นคนสับสนกับวิธีที่เรา ไปเกี่ยวกับการเขียนฟังก์ชั่นนี้หรือไม่? 1427 01:04:58,550 --> 01:04:59,180 ตกลง. 1428 01:04:59,180 --> 01:05:04,830 ดังนั้นจริงฟังก์ชั่นแล้ว ที่มีอยู่ในห้องสมุดที่เรียกว่า ctype.h 1429 01:05:04,830 --> 01:05:06,417 ห้องสมุดที่เรียกว่า ctype.h 1430 01:05:06,417 --> 01:05:08,500 ฟังก์ชั่นนี้เป็นจริง เขียนแล้วสำหรับคุณ 1431 01:05:08,500 --> 01:05:10,820 มันเรียกว่าการบน 1432 01:05:10,820 --> 01:05:13,027 >> และอื่น ๆ เพื่อวัตถุประสงค์ในการ pset นี้คุณกำลังจะ 1433 01:05:13,027 --> 01:05:15,860 จะพบว่าคุณอยากจะใช้ จำนวนมากที่มีฟังก์ชั่นที่มีอยู่ 1434 01:05:15,860 --> 01:05:17,390 ภายในห้องสมุด ctype 1435 01:05:17,390 --> 01:05:21,040 หากต้องการบนเพื่อลดเป็นบนเป็น lower-- ผู้ที่มีฟังก์ชั่นทั้งหมด 1436 01:05:21,040 --> 01:05:24,914 ที่คุณจะสามารถที่จะใช้มาก อย่างรวดเร็วในรหัสของคุณเองที่ 1437 01:05:24,914 --> 01:05:26,080 ไม่ว่าสิ่งนี้ไม่ 1438 01:05:26,080 --> 01:05:28,941 เราเขียนวิธีการแปลง สตริงเป็นตัวพิมพ์ใหญ่ 1439 01:05:28,941 --> 01:05:31,440 แต่นี้เป็นจริงรหัส ที่คนอื่นได้เขียน 1440 01:05:31,440 --> 01:05:33,800 และที่คุณสามารถเข้าถึง ผ่านทางที่แตกต่างกันฟังก์ชั่น 1441 01:05:33,800 --> 01:05:34,300 ใช่? 1442 01:05:34,300 --> 01:05:39,570 >> ผู้ชม: ดังนั้นคุณเพียงแค่คัดลอกให้อยู่ในนั้น และทำมันทุกตัวอักษรเดียว? 1443 01:05:39,570 --> 01:05:42,070 >> ANDI เป็ง: ใช่เพราะฉันทำไม่ได้ ดูแลเกี่ยวกับค่าของที่ 1444 01:05:42,070 --> 01:05:44,540 ฉันเพียงแค่สนใจว่าความแตกต่าง ระหว่างพวกเขาเป็น 32 ใช่มั้ย? 1445 01:05:44,540 --> 01:05:48,210 ความแตกต่างระหว่างตัวพิมพ์เล็ก ขพิมพ์ใหญ่และบี 32 นอกจากนี้ยังมี 1446 01:05:48,210 --> 01:05:50,860 และความแตกต่างระหว่างค และตัวพิมพ์ใหญ่ C อยู่เสมอ 32 1447 01:05:50,860 --> 01:05:53,235 >> ฉันเพียงแค่ต้องดูแลเกี่ยวกับ ความแตกต่างระหว่างทั้งสอง 1448 01:05:53,235 --> 01:05:56,666 เพราะทุกตัวอักษร ตามรูปแบบที่เหมือนกันใช่มั้ย? 1449 01:05:56,666 --> 01:05:58,540 ถ้าผมมีความแตกต่าง ระหว่างหนึ่งของพวกเขา 1450 01:05:58,540 --> 01:06:01,050 ฉันรู้ว่าสิ่งที่แตกต่าง ระหว่างทั้งหมดของพวกเขาคือ 1451 01:06:01,050 --> 01:06:01,740 คำถามที่ดี. 1452 01:06:01,740 --> 01:06:04,090 ใช่ 1453 01:06:04,090 --> 01:06:06,660 ทุกคนดีหรือไม่? 1454 01:06:06,660 --> 01:06:09,080 ตกลง. 1455 01:06:09,080 --> 01:06:09,580 Oop 1456 01:06:09,580 --> 01:06:14,380 1457 01:06:14,380 --> 01:06:15,270 >> ตกลง. 1458 01:06:15,270 --> 01:06:20,310 ดังนั้นแนวคิดอื่นที่เป็น จะเป็นประโยชน์อย่างมากในขณะที่คุณ 1459 01:06:20,310 --> 01:06:22,570 ยังคงพัฒนา รหัสของคุณเป็นความคิดนี้ 1460 01:06:22,570 --> 01:06:25,430 ฟังก์ชั่นการสร้างหรือสิ่งที่เป็นนามธรรม 1461 01:06:25,430 --> 01:06:28,479 ดังนั้นตอนนี้เราได้นำพีชคณิตทั้งหมด 1462 01:06:28,479 --> 01:06:31,770 ในพีชคณิตคุณได้รับการสอนว่ามี สิ่งที่ยอดเยี่ยมนี้เรียกว่าฟังก์ชั่น 1463 01:06:31,770 --> 01:06:35,300 เครื่องที่ถ้าคุณ การป้อนข้อมูลหนึ่งประเภทของจำนวน 1464 01:06:35,300 --> 01:06:38,720 มันจะทำงานผ่านการทำงานที่ยอดเยี่ยมนี้ และปรากฏออกเอาท์พุทที่แตกต่างกันใช่มั้ย? 1465 01:06:38,720 --> 01:06:42,220 ในรหัสสิ่งเดียวกันที่เกิดขึ้น ในการเรียงลำดับของการทำงานใด ๆ 1466 01:06:42,220 --> 01:06:48,230 >> ดังนั้นผมจึงสามารถทางร่างกาย เขียนในร่างกายของฉันของรหัสของฉัน 1467 01:06:48,230 --> 01:06:52,357 คำสั่งหลักที่ไม่จริง สิ่งที่ร่างกายของรหัสจะทำ 1468 01:06:52,357 --> 01:06:54,940 แต่นอกนั้นผมยังสามารถ เขียนฟังก์ชั่นที่แตกต่างกัน 1469 01:06:54,940 --> 01:06:56,320 ที่จะทำสิ่งที่แตกต่างกัน 1470 01:06:56,320 --> 01:06:58,570 ตัวอย่างเช่นเราได้แล้ว เริ่มใช้บางส่วนของพวกเขา 1471 01:06:58,570 --> 01:07:00,610 Printf-- ว่าเป็น ฟังก์ชั่นที่คนอื่น 1472 01:07:00,610 --> 01:07:02,870 ได้เขียนไว้แล้วว่า เราสามารถเรียกในรหัสของเรา 1473 01:07:02,870 --> 01:07:05,410 เพื่อ upper-- ในกรณีนี้ upper-- เป็นฟังก์ชั่นอื่น 1474 01:07:05,410 --> 01:07:07,330 เราได้เขียนว่าเรา สามารถโทรในรหัสของเรา 1475 01:07:07,330 --> 01:07:09,520 ดังนั้นผมคิดว่าทำไม เรายังมีฟังก์ชั่น? 1476 01:07:09,520 --> 01:07:12,100 ทำไมเราไม่เพียงป๋อมมัน ทั้งหมดในบรรทัดเดียวกันของรหัส? 1477 01:07:12,100 --> 01:07:13,730 มันทำให้ง่ายสำหรับทุกคน 1478 01:07:13,730 --> 01:07:19,200 >> ดีเหตุผลที่อยู่เบื้องหลังว่า เป็นครั้งแรกของทุกองค์กร 1479 01:07:19,200 --> 01:07:21,880 มันน่ารำคาญจริงที่เกิดขึ้น รหัสผ่านของใครบางคน 1480 01:07:21,880 --> 01:07:25,110 และเป็นหนึ่งในฟังก์ชั่นเช่น printf 1481 01:07:25,110 --> 01:07:28,570 ถ้าพวกคุณรู้จริงว่า ฟังก์ชั่น printf ยกที่จะเขียน 1482 01:07:28,570 --> 01:07:30,530 มันเป็นเช่น 1,000 สายรหัส 1483 01:07:30,530 --> 01:07:32,357 >> ถ้ามีเวลาผมอยากทุก เพื่อ printf บางสิ่งบางอย่าง 1484 01:07:32,357 --> 01:07:35,440 ฉันได้เขียน 1,000 สายรหัส ที่จะเป็นที่น่ารำคาญมากที่จะอ่าน 1485 01:07:35,440 --> 01:07:36,290 ใช่มั้ย? 1486 01:07:36,290 --> 01:07:38,860 นั่นคือเหตุผลที่เราได้เพียงแค่ สร้างฟังก์ชั่นนี้เป็นนามธรรม 1487 01:07:38,860 --> 01:07:41,670 ที่เรามีอยู่แล้วใครบางคน อื่นได้เขียนที่อื่น 1488 01:07:41,670 --> 01:07:44,920 และเวลาที่เราจำเป็นต้องใช้มันทุกคนใน รหัสของเราเราก็ต้องบอกว่า printf 1489 01:07:44,920 --> 01:07:48,070 และนั่นคือสามารถที่จะใช้ฟังก์ชั่น คนอื่นได้เขียนไว้ในรหัสของเรา 1490 01:07:48,070 --> 01:07:51,020 มันทำให้มันง่ายขึ้น องค์กรในการอ่านรห​​ัส 1491 01:07:51,020 --> 01:07:53,460 >> ประการที่สองก็คือค​​วามเรียบง่าย 1492 01:07:53,460 --> 01:07:56,750 มันง่ายขั้นตอนที่เรามี ที่จะใช้ในการแก้ปัญหาของเรา 1493 01:07:56,750 --> 01:07:59,300 printf ฟังก์ชั่นเช่น printf, ฟังก์ชั่นเหมือนบน 1494 01:07:59,300 --> 01:08:03,560 มีทุกสิ่งที่ช่วยให้เราสามารถ ลดความซับซ้อนของรหัสของเราลงเพื่อให้มันง่ายขึ้น 1495 01:08:03,560 --> 01:08:05,830 และสิ่งสุดท้ายที่สามารถนำมาใช้เป็น 1496 01:08:05,830 --> 01:08:08,710 >> ดังนั้นความจริงที่ว่าเรามี ฟังก์ชั่นที่เรียกว่า printf 1497 01:08:08,710 --> 01:08:11,990 ที่เราสามารถเรียกแตกต่างกันมาก ครั้งและช่วยให้สามารถนำมาใช้ใหม่ 1498 01:08:11,990 --> 01:08:14,980 ถ้าฉันจะเขียน printf, ฉันเขียนมันอีกครั้ง 1499 01:08:14,980 --> 01:08:16,439 มันมีอยู่เฉพาะในที่สถานที่แห่งหนึ่ง 1500 01:08:16,439 --> 01:08:19,890 ถ้าผมต้องการที่จะทำมันอีกครั้งผมจะ ต้องคัดลอกและวางทุกที่ 1501 01:08:19,890 --> 01:08:21,760 เป็นสายที่สองของฉันของรหัส 1502 01:08:21,760 --> 01:08:24,880 นั่นเป็นเหตุผลที่ว่าถ้าเราสร้างฟังก์ชัน ที่มีอยู่ด้านนอกของเราหลัก 1503 01:08:24,880 --> 01:08:26,880 เราก็สามารถเรียกร้องให้ มันและนำมาใช้เมื่อใดก็ตามที่ 1504 01:08:26,880 --> 01:08:29,604 เราจำเป็นต้องมีเพื่อที่จะง่ายขึ้นมาก สำหรับเราเป็นโปรแกรมที่จะเขียน 1505 01:08:29,604 --> 01:08:32,220 1506 01:08:32,220 --> 01:08:35,549 >> ดังนั้นวิธีการที่เราจริงจะเขียน ฟังก์ชั่นจะคล้ายกันมากใช่มั้ย? 1507 01:08:35,549 --> 01:08:37,590 นี้เป็นชนิดแรก ตัวอย่างเช่นในการที่เราจะ 1508 01:08:37,590 --> 01:08:42,830 เห็นใช้ฟังก์ชั่นในรูปแบบ ที่แตกต่างจากของเรา int เป็นโมฆะหลัก 1509 01:08:42,830 --> 01:08:46,779 ในกรณีนี้ถ้าผมต้องการที่จะ เขียนฟังก์ชั่นที่เรียกว่าคิวใช่มั้ย? 1510 01:08:46,779 --> 01:08:49,370 >> และความคุ้มค่า int ที่นี่ เป็นสิ่งที่บอกฉัน 1511 01:08:49,370 --> 01:08:51,649 สิ่งที่ฉันอยากให้เรื่องนี้ ที่จะกลับมาทำงานกับผมหรือเปล่า 1512 01:08:51,649 --> 01:08:54,484 ถ้าผมต้องการที่จะ Cube จำนวนเต็ม ฉันจะต้องการที่จะป้อนข้อมูล 1513 01:08:54,484 --> 01:08:55,525 เหล่านี้เป็นพารามิเตอร์ 1514 01:08:55,525 --> 01:08:58,490 ฉันจะปัจจัยค่าของ int ชนิด 1515 01:08:58,490 --> 01:09:01,300 และฉันจะกลับมา อีกชนิดของค่า int 1516 01:09:01,300 --> 01:09:03,050 และในที่นี่เป็นคุณ สามารถมองเห็นสิ่งที่ผมกำลังทำอยู่ 1517 01:09:03,050 --> 01:09:07,300 เป็นสิ่งที่ cubing การป้อนข้อมูลของฉันคือ เป็นผลผลิตของฉันและมันจะกลับมา 1518 01:09:07,300 --> 01:09:10,790 >> ดังนั้นทุกฟังก์ชั่นนี้จะมีการ ใช้เวลาการเรียงลำดับของจำนวนเต็มบาง 1519 01:09:10,790 --> 01:09:14,979 มันคูณมันด้วยตัวเองเป็นครั้งที่สอง เพื่อที่จะมีผลบังคับใช้ก้อน 1520 01:09:14,979 --> 01:09:17,729 และจากนั้นก็จะส่งกลับ สิ่งที่มีการส่งออก 1521 01:09:17,729 --> 01:09:20,540 ดังนั้นในกรณีนี้มันเป็นสองบรรทัด รหัสที่เรามีการเขียนเป็นพิเศษ 1522 01:09:20,540 --> 01:09:22,880 แต่ถ้าเราอยากจะเรียก เมื่อหลาย ๆ ครั้งนี้ 1523 01:09:22,880 --> 01:09:26,210 มันง่ายมากที่จะพิมพ์ว่า เส้นขวาที่นี่ที่อยู่ในก้อนกว่า 1524 01:09:26,210 --> 01:09:28,830 ต้องผ่านหลายครั้ง 1525 01:09:28,830 --> 01:09:34,180 >> ดังนั้นวิธีการใด ๆ ที่เป็นหลัก การจัดรูปแบบการเรียงลำดับของฟังก์ชั่นใด ๆ 1526 01:09:34,180 --> 01:09:36,420 เป็นไปได้ที่มีอยู่ที่นี่เป็นเหมือน 1527 01:09:36,420 --> 01:09:38,659 ดังนั้นเราจึงมีชื่อฟังก์ชัน 1528 01:09:38,659 --> 01:09:39,950 ในกรณีนี้ก็เรียกว่าก้อน 1529 01:09:39,950 --> 01:09:42,033 และเราชื่อมันเพราะก้อน มันเป็นเรื่องง่ายที่จะจำ 1530 01:09:42,033 --> 01:09:44,220 คุณสามารถตั้งชื่อตารางและ มันสามารถจริงจะ cubed 1531 01:09:44,220 --> 01:09:45,500 ไม่สำคัญ 1532 01:09:45,500 --> 01:09:48,020 เพียงแค่ชื่อที่คุณเป็น กำหนดฟังก์ชั่นของคุณ 1533 01:09:48,020 --> 01:09:51,660 >> สิทธินี้ที่นี่ int เป็น ชนิดของพารามิเตอร์ที่คุณต้องการ 1534 01:09:51,660 --> 01:09:54,149 ดังนั้นสิ่งที่ฟังก์ชั่นนี้ ต้องเพื่อที่จะดำเนินการ? 1535 01:09:54,149 --> 01:09:55,990 ดีก็ต้องป้อนข้อมูล 1536 01:09:55,990 --> 01:09:56,704 ผมตั้งชื่อมันว่าการป้อนข้อมูล 1537 01:09:56,704 --> 01:09:58,120 คุณสามารถตั้งชื่อสิ่งที่คุณต้องการ 1538 01:09:58,120 --> 01:10:00,500 แต่ฉันต้องการสิ่งชนิด int 1539 01:10:00,500 --> 01:10:03,730 ก็จะดำเนินการจริง สิ่งที่อยู่ภายในของที่นี่ 1540 01:10:03,730 --> 01:10:04,990 ร่างกายของฟังก์ชัน 1541 01:10:04,990 --> 01:10:07,847 และจากนั้นพิมพ์กลับ ที่นี่ int-- นี้ 1542 01:10:07,847 --> 01:10:09,680 ทั้งหมดก็บอกผมคือ ที่ฟังก์ชั่นนี้ 1543 01:10:09,680 --> 01:10:11,250 จะกลับมาหาเราใน int 1544 01:10:11,250 --> 01:10:14,460 ดังนั้นมันจะใช้เวลาใน int และ มันจะทำให้คุณกลับมาเป็น int 1545 01:10:14,460 --> 01:10:17,750 ไม่ทุกคนเข้าใจว่า การจัดรูปแบบชนิดนี้ทำงานอย่างไร 1546 01:10:17,750 --> 01:10:18,250 เย็น 1547 01:10:18,250 --> 01:10:24,690 1548 01:10:24,690 --> 01:10:25,740 >> ตกลง. 1549 01:10:25,740 --> 01:10:31,770 ดังนั้นไม่ต้องกังวลว่านี้ดูเหมือนว่า สิทธินามธรรมน้อยในขณะนี้ 1550 01:10:31,770 --> 01:10:33,450 นี่คือสิ่งที่เราจะพูดคุยเกี่ยวกับ 1551 01:10:33,450 --> 01:10:36,310 เราจะดำน้ำในที่ลึก ในภายหลังในการเรียนการสอน 1552 01:10:36,310 --> 01:10:41,170 วิธีการที่จัดเรียงของระดับที่สูงขึ้น ๆ นามธรรมเหล่านี้ทำงานสิ่ง 1553 01:10:41,170 --> 01:10:43,530 คือว่าในความทรงจำใน เครื่องคอมพิวเตอร์ของคุณทุกอย่าง 1554 01:10:43,530 --> 01:10:47,660 ถูกเก็บไว้ในประเภทนี้ ของสแต็คที่ผมจะพูดว่า 1555 01:10:47,660 --> 01:10:49,070 >> ดังนั้นขึ้นอยู่ที่ด้านบน 1556 01:10:49,070 --> 01:10:50,861 ผมไม่ทราบว่าคุณ คนจะเห็นว่าดี 1557 01:10:50,861 --> 01:10:52,590 ผมจะพยายามซูมเข้า 1558 01:10:52,590 --> 01:10:55,111 นี่คือที่ด้านบนเรา มีข้อความทางกายภาพ 1559 01:10:55,111 --> 01:10:57,860 ของสิ่งที่คอมพิวเตอร์อยู่ interpreting-- ศูนย์ทั้งหมดและคนที่ 1560 01:10:57,860 --> 01:10:59,540 มีอยู่ในเครื่องคอมพิวเตอร์ของเรา 1561 01:10:59,540 --> 01:11:03,390 และแล้วเรามีการเริ่มต้น ข้อมูลและเตรียม, 1562 01:11:03,390 --> 01:11:05,340 สิ่งที่เราเรียกตัวแปรทั่วโลก 1563 01:11:05,340 --> 01:11:08,200 ดังนั้นตัวแปรที่มีอยู่ ทั่วทุกโปรแกรม 1564 01:11:08,200 --> 01:11:11,815 และข้ามทั้งหมดของคุณ หลักรหัส 1565 01:11:11,815 --> 01:11:13,940 ไม่ต้องกังวลถ้าพวกคุณมี ชนิดของการไม่มีความชัดเจนเกี่ยวกับเรื่องนี้ 1566 01:11:13,940 --> 01:11:16,060 มันไม่ได้เรื่องจริงๆตอนนี้ 1567 01:11:16,060 --> 01:11:18,680 >> แล้วเรามีสิ่งที่เป็น เรียกว่ากองในกอง 1568 01:11:18,680 --> 01:11:21,140 คิดว่าสแต็คเป็นตัวอักษร เช่นเดียวกับสแต็คของสิ่งต่างๆ 1569 01:11:21,140 --> 01:11:23,098 สแต็คที่แตกต่างกัน สิ่งที่ถูกผลักดันด้านบน 1570 01:11:23,098 --> 01:11:27,870 ของแต่ละอื่น ๆ ที่จัดเก็บต่างๆ ตัวแปรและไวยากรณ์ที่อยู่ในรหัสของคุณ 1571 01:11:27,870 --> 01:11:31,460 และแล้วที่นี่ที่ด้านล่างมาก เรามีตัวแปรสภาพแวดล้อม 1572 01:11:31,460 --> 01:11:35,480 ของสิ่งที่คุณกำลังดำเนินการภายใน เพียงเส้นเล็ก ๆ น้อย ๆ ของคุณรหัส 1573 01:11:35,480 --> 01:11:40,510 >> และเรากำลังจะซูม ในส่วนที่สแต็คที่เกิดขึ้นจริง 1574 01:11:40,510 --> 01:11:43,880 ดังนั้นที่นี่ถ้าเราจะซูม เพียงในพื้นที่นี้ของสแต็ค, 1575 01:11:43,880 --> 01:11:45,140 นี่คือสิ่งที่ดูเหมือนว่า 1576 01:11:45,140 --> 01:11:48,590 และนี่คือสิ่งที่สำคัญสวยจริง เมื่อพวกคุณพูดคุยเกี่ยวกับฟังก์ชั่น 1577 01:11:48,590 --> 01:11:52,330 เพราะแจ้งให้ทราบว่า ความทรงจำของคอมพิวเตอร์ของคุณ 1578 01:11:52,330 --> 01:11:55,600 มีการจัดเก็บตัวแปร และฟังก์ชั่น 1579 01:11:55,600 --> 01:11:58,790 และพารามิเตอร์ของทั้งสองของคุณ ฟังก์ชั่นและตัวแปรหลักของคุณ 1580 01:11:58,790 --> 01:12:00,190 ในสถานที่ที่แตกต่างกัน 1581 01:12:00,190 --> 01:12:03,390 >> ดังนั้นตอนนี้ที่สำคัญคือ ฟังก์ชั่นที่เกิดขึ้นจริง 1582 01:12:03,390 --> 01:12:04,780 ว่าคุณกำลังดำเนินการในรหัส 1583 01:12:04,780 --> 01:12:08,050 คุณได้พารามิเตอร์เก็บไว้ที่นี่ และตัวแปรท้องถิ่นเก็บไว้ที่นี่ 1584 01:12:08,050 --> 01:12:12,270 ตัวแปรท้องถิ่นก็หมายความว่าตัวแปรใด ๆ ที่มีอยู่เฉพาะภายในฟังก์ชันที่ 1585 01:12:12,270 --> 01:12:15,610 และด้านบนของมันคุณมีนี้ ฟังก์ชั่นที่แยกต่างหากที่เรียกว่าก้อน 1586 01:12:15,610 --> 01:12:18,240 คุณมีที่พารามิเตอร์ เช่นเดียวกับชาวบ้านเหล่านั้น 1587 01:12:18,240 --> 01:12:21,540 >> และเหตุผลที่คุณสามารถ ดูที่นี่เป็นว่าสิ่งที่ 1588 01:12:21,540 --> 01:12:25,030 ที่เกิดขึ้นเมื่อก้อนจะใช้เวลาใน ค่าจากฟังก์ชั่นหลักของคุณ 1589 01:12:25,030 --> 01:12:27,640 คือที่จริงมันคัดลอกว่ากว่า 1590 01:12:27,640 --> 01:12:31,470 ดังนั้นถ้าผมอยากจะก้อน 2 และกลับ 8 ที่ 2 1591 01:12:31,470 --> 01:12:33,730 จะถูกป้อนเข้าจริง เป็นพารามิเตอร์และก็ 1592 01:12:33,730 --> 01:12:37,690 คัดลอกไปเพื่อให้คุณมีมันมีอยู่ ในสองสถานที่ที่แตกต่างกันในความทรงจำ 1593 01:12:37,690 --> 01:12:40,520 และคุณจะต้องระมัดระวังเป็นอย่างมาก ในความทรงจำซึ่งเป็นหนึ่งในบรรดา 1594 01:12:40,520 --> 01:12:42,520 คุณจริงจัดการ 1595 01:12:42,520 --> 01:12:47,170 และตัวอย่างของสิ่งที่เกิดขึ้น ที่จะเป็นมากที่เลวร้ายมาก 1596 01:12:47,170 --> 01:12:48,050 มีอยู่ที่นี่ 1597 01:12:48,050 --> 01:12:50,760 1598 01:12:50,760 --> 01:12:58,650 >> ดังนั้นที่นี่ฉันได้มีในทางทฤษฎี โปรแกรมที่นี่ฟังก์ชั่นหลัก 1599 01:12:58,650 --> 01:13:02,180 ที่ฉันประกาศ int x เท่ากับ 1 1600 01:13:02,180 --> 01:13:04,505 ฉันประกาศ int y ที่อื่นเท่ากับ 2 1601 01:13:04,505 --> 01:13:06,380 และจากนั้นผมใช้มัน ผ่านฟังก์ชั่นนี้ 1602 01:13:06,380 --> 01:13:09,647 ที่เรียกว่าการแลกเปลี่ยนที่ฉันคิดว่า มันสลับสองค่า 1603 01:13:09,647 --> 01:13:11,480 แล้วฉันกำลังจะไป พิมพ์ออกใช่มั้ย? 1604 01:13:11,480 --> 01:13:13,220 นั่นคือสิ่งที่ฉันต้องการโปรแกรมนี้จะทำอย่างไร 1605 01:13:13,220 --> 01:13:15,180 >> ถ้าอย่างนั้นเรามาลงและใช้เวลาดู 1606 01:13:15,180 --> 01:13:18,200 ดังนั้นถ้าจริงผมเขียนที่แตกต่างกัน ฟังก์ชั่นที่คุณสามารถดู 1607 01:13:18,200 --> 01:13:19,750 เรามีหน้าที่หลักของเราที่นี่ 1608 01:13:19,750 --> 01:13:22,860 แล้วเรามีของเรา ฟังก์ชั่นที่สองที่นี่ 1609 01:13:22,860 --> 01:13:24,520 แลกเปลี่ยนความว่างเปล่า 1610 01:13:24,520 --> 01:13:27,090 เป็นโมฆะก็หมายความว่ามันเป็น จะไม่กลับอะไร 1611 01:13:27,090 --> 01:13:28,930 ชื่อฟังก์ชั่น ที่เรียกว่าการแลกเปลี่ยนและก็ 1612 01:13:28,930 --> 01:13:33,730 จะบริโภคสองตัวแปร int และ int ขจากการทำงานของคุณ [ไม่ได้ยิน] 1613 01:13:33,730 --> 01:13:39,010 >> เพื่อเป็นหลักในที่นี่เรา ผ่าน x และ y ในการทำงานนี้ 1614 01:13:39,010 --> 01:13:40,760 และถ้าเราจะ สร้าง this-- ดังนั้นเราจึงต้องการ 1615 01:13:40,760 --> 01:13:42,420 เพื่อสร้างมูลค่าชั่วคราวใช่มั้ย? 1616 01:13:42,420 --> 01:13:43,930 เรากำลังจะไปกำหนดว่าไป 1617 01:13:43,930 --> 01:13:45,388 แล้วจะไปตอนนี้เท่ากับข 1618 01:13:45,388 --> 01:13:47,660 และขเป็นไปได้กลับมา ที่มีค่าอุณหภูมิได้, 1619 01:13:47,660 --> 01:13:51,070 ซึ่งเป็นเพราะเมื่อ คุณต้องการที่จะแลกเปลี่ยนสิ่งที่ 1620 01:13:51,070 --> 01:13:52,320 คุณก็ไม่สามารถแลกเปลี่ยนพวกเขาชอบ 1621 01:13:52,320 --> 01:13:54,360 >> คุณจะต้องให้ออก ที่นี่เพื่อที่จะจำได้ว่า 1622 01:13:54,360 --> 01:13:56,485 ว่ามันคืออะไรเพราะเมื่อ คุณสลับหนึ่งที่คุณลืม 1623 01:13:56,485 --> 01:13:58,200 สิ่งที่ว่าค่าเดิมใช่มั้ย? 1624 01:13:58,200 --> 01:14:00,990 ดังนั้นในทางทฤษฎีโปรแกรมนี้ ควรจะทำงานใช่มั้ย? 1625 01:14:00,990 --> 01:14:03,630 ถ้าผมต้องการที่จะสลับ สองพวกเขาควรจะสลับ 1626 01:14:03,630 --> 01:14:05,490 ดังนั้นขอเรียกมันและดูว่าการทำงาน 1627 01:14:05,490 --> 01:14:11,130 1628 01:14:11,130 --> 01:14:16,940 >> ดังนั้นในขณะที่พวกคุณสามารถดู x ครั้งหนึ่งเคยเป็นที่ 1 และ y ที่ครั้งหนึ่งเคยเป็นที่ 2 1629 01:14:16,940 --> 01:14:21,475 และถ้าผมพิมพ์ออกมา x ยังคงเป็นที่ 1 และปี 2 1630 01:14:21,475 --> 01:14:25,970 อืมโปรแกรมนี้ไม่ได้ดูเหมือนจะเป็น วิธีการทำงานที่ฉันต้องการมันในการทำงาน 1631 01:14:25,970 --> 01:14:29,950 ไม่มีใครต้องการที่จะใช้กระสุนที่ คาดเดาว่าทำไมถึงเกิดขึ้น? 1632 01:14:29,950 --> 01:14:34,430 มันมีจะทำอย่างไรกับวิธีการที่ สิ่งที่แตกต่างที่มี 1633 01:14:34,430 --> 01:14:38,172 เก็บไว้ในสถานที่ที่แตกต่างกันในความทรงจำ 1634 01:14:38,172 --> 01:14:39,377 >> ตกลง. 1635 01:14:39,377 --> 01:14:41,960 ดังนั้นพวกคุณไม่ต้องกังวล มากเกินไปเกี่ยวกับเรื่องนี้ได้ในขณะนี้ 1636 01:14:41,960 --> 01:14:46,610 แต่รู้ว่าก้อนของท้องถิ่น เป็นตัวแปรและ b 1637 01:14:46,610 --> 01:14:49,230 เพราะที่นี่ในการทำงานของเรา เราได้ประกาศและ b 1638 01:14:49,230 --> 01:14:53,570 เป็นตัวแปรที่มีอยู่ ภายในก้อนฟังก์ชั่นที่ 1639 01:14:53,570 --> 01:14:59,490 แต่ในขณะที่คุณสามารถดูพารามิเตอร์ที่ มันใช้เวลาในการถูกเก็บไว้ที่นี่ 1640 01:14:59,490 --> 01:15:01,370 แต่เราก็ไม่จริง กลับอะไร 1641 01:15:01,370 --> 01:15:03,120 เราไม่ได้มีการเปลี่ยนแปลงจริง x และ y 1642 01:15:03,120 --> 01:15:04,440 เราเป็นเพียงแค่การเปลี่ยนและ b 1643 01:15:04,440 --> 01:15:08,340 >> เราได้คัดลอก x และ y เข้าไป สิ่งที่เรียกว่า a และ b 1644 01:15:08,340 --> 01:15:11,092 แต่เราไม่เคยจริง จัดการ x และ y ตัวเอง 1645 01:15:11,092 --> 01:15:12,800 พวกคุณเห็น วิธีการที่เกิดขึ้น? 1646 01:15:12,800 --> 01:15:16,140 คือการที่เราได้คัดลอกเพียงแค่มัน มากกว่า แต่เรายังไม่ได้เก็บไว้จริง 1647 01:15:16,140 --> 01:15:18,030 การติดตามของพวกเขาอยู่ที่ไหนในหน่วยความจำ 1648 01:15:18,030 --> 01:15:20,127 >> และดังนั้นตอนนี้เครื่องคอมพิวเตอร์ ที่กำลังมองหาโอ้ฉัน 1649 01:15:20,127 --> 01:15:21,960 เรียกสิ่งนี้ผ่าน ฟังก์ชั่นนี้น่ารัก 1650 01:15:21,960 --> 01:15:23,690 แต่ x และ y ยังคง x และ y 1651 01:15:23,690 --> 01:15:26,240 ไม่มีอะไรเกิดขึ้นกับ พวกเขาเพราะความจริงที่ 1652 01:15:26,240 --> 01:15:28,340 ที่พารามิเตอร์เหล่านั้น และตัวแปรท้องถิ่น 1653 01:15:28,340 --> 01:15:30,150 ถูกเก็บไว้ในที่แตกต่างกัน สถานที่ในหน่วยความจำ 1654 01:15:30,150 --> 01:15:32,030 และนี่เป็นระดับที่สูงขึ้น แนวคิดที่เราจะ 1655 01:15:32,030 --> 01:15:34,300 เริ่มเห็นในภายหลังในการเรียนการสอน 1656 01:15:34,300 --> 01:15:36,950 แต่ก็รู้ว่านี่คือ ปัญหาที่สามารถเกิดขึ้น 1657 01:15:36,950 --> 01:15:41,400 และที่เราจะคิดออกวิธีการในการ จัดการกับเรื่องนี้ในภายหลังในการเรียนการสอน 1658 01:15:41,400 --> 01:15:41,900 ตกลง. 1659 01:15:41,900 --> 01:15:47,750 1660 01:15:47,750 --> 01:15:48,250 ทั้งหมดขวา 1661 01:15:48,250 --> 01:15:51,780 ดังนั้นแนวคิดที่ผ่านมาเรา จริงที่เกิดขึ้นเพื่อให้ครอบคลุม 1662 01:15:51,780 --> 01:15:53,880 ที่จะเป็นประโยชน์ สำหรับ pset สัปดาห์นี้ 1663 01:15:53,880 --> 01:15:56,060 เป็นสิ่งที่ถูกเรียกว่า อาร์กิวเมนต์บรรทัดคำสั่ง 1664 01:15:56,060 --> 01:16:00,820 ดังนั้นร็อบในการบรรยายของเขาเดินผ่าน ชนิดของสั้น ๆ เกี่ยวกับวิธีการทำงานเหล่านี้ 1665 01:16:00,820 --> 01:16:02,770 รู้ว่าเป็นหลัก เมื่อคุณเขียน 1666 01:16:02,770 --> 01:16:06,280 เช่นฟังก์ชั่นหลักเมื่อเรา เขียนฟังก์ชั่นมาก่อนในอดีตที่ผ่านมา 1667 01:16:06,280 --> 01:16:07,804 เรามี int เป็นโมฆะหลัก 1668 01:16:07,804 --> 01:16:10,470 และเหตุผลที่เราต้องมีช่องว่าง เป็นเพราะโปรแกรมของเราไม่ได้ 1669 01:16:10,470 --> 01:16:12,520 จำเป็นที่จะต้องใส่ค่าในการทำงานใช่มั้ย? 1670 01:16:12,520 --> 01:16:16,020 เมื่อฉันวิ่งมาริโอฉันไม่จำเป็นต้อง ที่จริงเพียงแค่พิมพ์ในบางสิ่งบางอย่าง 1671 01:16:16,020 --> 01:16:16,970 เมื่อฉันวิ่งมาริโอ 1672 01:16:16,970 --> 01:16:20,170 ฉันจะแจ้งให้ผู้ใช้ในภายหลัง 1673 01:16:20,170 --> 01:16:22,450 แต่ที่จะไม่ได้เป็นกรณีที่ 1674 01:16:22,450 --> 01:16:24,980 >> ยกตัวอย่างเช่นในเรื่องนี้ กำหนดปัญหาของสัปดาห์ 1675 01:16:24,980 --> 01:16:28,365 คุณกำลังจะถูกถามว่าใน นอกเหนือจากการใช้โปรแกรมของคุณ 1676 01:16:28,365 --> 01:16:30,990 คุณจะต้องการที่จะใส่ สิ่งบางอย่างในตรงตามที่คุณ 1677 01:16:30,990 --> 01:16:32,050 เรียกใช้โปรแกรมของคุณ 1678 01:16:32,050 --> 01:16:34,720 ดังนั้นวิธีการที่เราทำที่เรียกว่า อาร์กิวเมนต์บรรทัดคำสั่งที่ 1679 01:16:34,720 --> 01:16:37,280 เป็นเหมือนการโต้แย้ง คุณสามารถป้อนข้อมูลโดยตรง 1680 01:16:37,280 --> 01:16:39,260 ในขณะที่คุณกำลังพยายามที่จะเรียกใช้โปรแกรมของคุณ 1681 01:16:39,260 --> 01:16:44,680 >> ดังนั้นสัญกรณ์นี้ มันซับซ้อนที่ดูสวย 1682 01:16:44,680 --> 01:16:47,320 แต่จริงๆไม่ได้ว่า ยาก ดังนั้น int main-- 1683 01:16:47,320 --> 01:16:48,910 นั่นเป็นเพียงฟังก์ชั่นหลักของคุณ 1684 01:16:48,910 --> 01:16:52,110 เข้าสู่ argc สตริงจุลภาควงเล็บ argv 1685 01:16:52,110 --> 01:16:56,040 ดังนั้นสิ่งที่บอกว่าขณะนี้ int argc-- ทั้งหมดที่บอกคุณ 1686 01:16:56,040 --> 01:17:00,560 คือผู้ที่มีจำนวน ข้อโต้แย้งคอมพิวเตอร์ควรคาดหวังว่า 1687 01:17:00,560 --> 01:17:03,130 >> ดังนั้นสิ่งหนึ่งที่เป็นจริง สิ่งสำคัญที่ต้องติดตาม 1688 01:17:03,130 --> 01:17:07,080 เป็นชื่อทางกายภาพของโปรแกรมของคุณ นับเป็นหนึ่งในข้อโต้แย้งเหล่านั้น 1689 01:17:07,080 --> 01:17:11,080 ดังนั้นถ้าผมต้องการที่จะมีโปรแกรมของฉัน ทำงานบวกบรรทัดคำสั่งอีกหนึ่ง 1690 01:17:11,080 --> 01:17:13,310 อาร์กิวเมนต์ฉันจริง จะมีสอง 1691 01:17:13,310 --> 01:17:15,080 argc จริงไปได้ที่สอง 1692 01:17:15,080 --> 01:17:18,010 และแล้ว argv สตริง bracket-- ทุกสิ่งที่จะทำ 1693 01:17:18,010 --> 01:17:20,410 มันทำให้ฉัน อาร์เรย์ของสตริงที่ 1694 01:17:20,410 --> 01:17:24,870 จะเป็นเพียงการแสดงและการจัดเก็บสิ่งที่ ทั้งหมดของอาร์กิวเมนต์บรรทัดคำสั่งเหล่านั้น 1695 01:17:24,870 --> 01:17:34,090 >> ดังนั้นสำหรับตัวอย่างเช่นถ้าผมต้องการที่จะมีนี้ โปรแกรม ./copy INFILE OUTFILE ใช่มั้ย? 1696 01:17:34,090 --> 01:17:37,330 นั่นเป็นเพียงคำสั่ง Linux ทั่วไป 1697 01:17:37,330 --> 01:17:38,830 สิ่งที่เป็นจริง argc? 1698 01:17:38,830 --> 01:17:41,320 วิธีอาร์กิวเมนต์บรรทัดคำสั่งจำนวนมาก จะมีจริงในเรื่องนี้? 1699 01:17:41,320 --> 01:17:45,130 ทั้งหมดนี้ไม่สามารถทำสำเนาของ INFILE ของชื่อของหนึ่งไฟล์ 1700 01:17:45,130 --> 01:17:47,070 และสำเนามันเข้าไป ไฟล์อื่นใช่มั้ย? 1701 01:17:47,070 --> 01:17:48,700 นั่นคือทั้งหมดนี้จะทำ 1702 01:17:48,700 --> 01:17:53,080 ที่คุณสามารถดูฉันทำมันในหนึ่งบรรทัด โดยไม่จำเป็นต้องมีโปรแกรม 1703 01:17:53,080 --> 01:17:55,380 >> เป็น argc ของเราในกรณีนี้คืออะไร? 1704 01:17:55,380 --> 01:17:58,968 วิธีการขัดแย้งต่างๆที่เรามี? 1705 01:17:58,968 --> 01:17:59,634 ผู้ชม: สาม? 1706 01:17:59,634 --> 01:18:01,200 ANDI เป็ง: เรามีสามว่า 1707 01:18:01,200 --> 01:18:05,030 ดังนั้นจึงเป็นที่ใช้งานง่ายมากที่จะ เพียงแค่คิดว่ามันเป็นเพียงแค่ 1708 01:18:05,030 --> 01:18:06,290 INFILE OUTFILE และ 1709 01:18:06,290 --> 01:18:10,190 แต่รู้ไหมว่าชื่อของทางกายภาพ โปรแกรมที่คุณกำลังใช้งานนับเป็นหนึ่ง 1710 01:18:10,190 --> 01:18:13,220 ดังนั้นในกรณีนี้ argc เป็นจริงสาม 1711 01:18:13,220 --> 01:18:15,860 วิธีการเกี่ยวกับสิ่งที่เป็น argv 0? 1712 01:18:15,860 --> 01:18:18,180 โปรดจำไว้ว่าทั้งหมดของ อาร์กิวเมนต์บรรทัดคำสั่ง 1713 01:18:18,180 --> 01:18:20,500 ถูกเก็บไว้ในอาร์เรย์ของสาย 1714 01:18:20,500 --> 01:18:24,140 ดังนั้นถ้าผมพยายามที่จะเข้าถึงสิ่งที่ จะ argv วงเล็บ 0 ให้ฉัน? 1715 01:18:24,140 --> 01:18:25,364 >> ผู้ชม: [ไม่ได้ยิน] 1716 01:18:25,364 --> 01:18:26,155 ANDI PENG: แน่นอน 1717 01:18:26,155 --> 01:18:28,550 มันจะให้ฉันจุด เฉือนสำเนาเนื่องจากว่าเป็น 1718 01:18:28,550 --> 01:18:31,070 องค์ประกอบที่ 0 ที่ องค์ประกอบแรกของอาร์เรย์ของฉัน 1719 01:18:31,070 --> 01:18:33,236 สิ่งที่เกี่ยวกับ argv 1 1720 01:18:33,236 --> 01:18:33,945 >> ผู้ชม: INFILE 1721 01:18:33,945 --> 01:18:35,070 ANDI PENG: INFILE ว่า 1722 01:18:35,070 --> 01:18:36,272 สิ่งที่เกี่ยวกับ argv 2? 1723 01:18:36,272 --> 01:18:37,022 ผู้ชม: OUTFILE 1724 01:18:37,022 --> 01:18:38,190 ANDI PENG: OUTFILE 1725 01:18:38,190 --> 01:18:39,290 นี้เป็นบิตหากินในขณะนี้ 1726 01:18:39,290 --> 01:18:42,630 สิ่งที่พวกคุณคิดว่า argv 3 เป็นไปได้ให้ฉัน 1727 01:18:42,630 --> 01:18:45,522 ถ้าผมพยายามที่จะพิมพ์ที่ออกมา? 1728 01:18:45,522 --> 01:18:48,260 >> ผู้ชม: [ไม่ได้ยิน] 1729 01:18:48,260 --> 01:18:50,164 >> ANDI PENG: คุณมีมือขึ้นมา? 1730 01:18:50,164 --> 01:18:50,663 ใช่ 1731 01:18:50,663 --> 01:18:51,550 >> ผู้ชม: ทางเลือก 1732 01:18:51,550 --> 01:18:52,341 >> ANDI PENG: แน่นอน 1733 01:18:52,341 --> 01:18:55,440 ดังนั้นจำในการบรรยายที่เรา มีในตอนท้ายของการแข่งขันบางสิ่งบางอย่างที่ 1734 01:18:55,440 --> 01:18:56,640 เรียกว่าเทอร์มิ null? 1735 01:18:56,640 --> 01:18:58,890 เราจะได้รับในเรื่องนี้ เพิ่มเติมเกี่ยวกับในชั้นเรียน 1736 01:18:58,890 --> 01:19:02,472 แต่รู้ว่าในสัญกรณ์ วิธีที่เครื่องคอมพิวเตอร์ของคุณ 1737 01:19:02,472 --> 01:19:04,430 รู้ว่ามันเป็นที่สิ้นสุด ของอาร์เรย์คือว่ามัน 1738 01:19:04,430 --> 01:19:07,310 ทำให้สิ่งที่เรียกว่า null เทอร์มิหรือเส้นประศูนย์ 1739 01:19:07,310 --> 01:19:12,047 >> ดังนั้นถ้าคุณพยายามเข้าถึง argv 3 คุณกำลังจะตีรีบนี้ 0 1740 01:19:12,047 --> 01:19:13,630 นี้เป็นมากยิ่งขึ้นของคำถามเคล็ดลับ 1741 01:19:13,630 --> 01:19:17,020 สิ่งที่เกี่ยวกับ argv 4? 1742 01:19:17,020 --> 01:19:20,920 ดังนั้นนี่คือเทอร์มิ null ที่ผ่านมา ที่ผ่านมาขอบเขตของอาร์เรย์ของเรา 1743 01:19:20,920 --> 01:19:24,380 คุณคิดว่าจะทำอะไร เกิดขึ้นเมื่อเราพยายามที่จะทำเช่นนั้น? 1744 01:19:24,380 --> 01:19:25,842 >> ผู้ชม: [ไม่ได้ยิน] 1745 01:19:25,842 --> 01:19:26,550 ANDI PENG: ขออภัย? 1746 01:19:26,550 --> 01:19:28,025 บอกได้เลยว่าบิตดังหรือไม่? 1747 01:19:28,025 --> 01:19:29,086 >> ผู้ชม: [ไม่ได้ยิน] 1748 01:19:29,086 --> 01:19:29,710 ANDI เป็ง: ใช่ 1749 01:19:29,710 --> 01:19:32,420 นั่นคือชื่อของ พื้นที่ส่วนใหญ่มีแนวโน้มที่คุณจะได้รับ 1750 01:19:32,420 --> 01:19:36,610 แต่รู้ว่า argv 4-- ที่ช่วยให้คุณเข้าถึง 1751 01:19:36,610 --> 01:19:38,610 สถานที่ในของเครื่องคอมพิวเตอร์ของคุณ หน่วยความจำที่คุณจริงๆ 1752 01:19:38,610 --> 01:19:41,650 ไม่ควรสัมผัสเพราะ ตอนนี้คุณรู้ว่าสิ่ง argv เป็น 1753 01:19:41,650 --> 01:19:46,220 คุณจะรู้ว่ามันเป็นอาร์เรย์ขนาด 3 ที่มีจุดคัดลอกและ INFILE OUTFILE 1754 01:19:46,220 --> 01:19:50,200 >> ถ้าคุณพยายามที่จะไปไกลกว่านั้น ที่คุณผ่านมาเทอร์มินัล 1755 01:19:50,200 --> 01:19:53,050 คอมพิวเตอร์ของคุณมีอาจจะ บางสิ่งบางอย่างที่เก็บไว้ใน argv 4 1756 01:19:53,050 --> 01:19:55,790 และคุณไม่ควรจะเป็น ได้รับอนุญาตให้เข้าไปในการเข้าถึง argv 4 1757 01:19:55,790 --> 01:19:58,130 เพราะคุณมีไฟล์ คณะรัฐมนตรีและคุณเท่านั้น 1758 01:19:58,130 --> 01:19:59,790 อนุญาตให้เข้าถึงทั้งสามชั้น 1759 01:19:59,790 --> 01:20:02,870 แต่ถ้าคุณพยายามที่จะเข้าถึงทางเหนือ การเก็บรักษาของที่คุณจะได้รับอนุญาตให้ 1760 01:20:02,870 --> 01:20:04,930 คุณกำลังจะเริ่มต้นการล้อเล่นกับ สิ่งอื่น ๆ ในหน่วยความจำของคอมพิวเตอร์ของคุณ 1761 01:20:04,930 --> 01:20:06,690 ที่เป็นไปได้จริงๆดีจริงๆ 1762 01:20:06,690 --> 01:20:07,440 ดังนั้นเพียงแค่รู้ว่า 1763 01:20:07,440 --> 01:20:10,370 โปรดใช้ความระมัดระวังมากที่คุณ ไม่เพียงแค่การสุ่มเริ่มต้น 1764 01:20:10,370 --> 01:20:14,772 การเข้าถึงองค์ประกอบในอาร์เรย์ที่ ไม่ได้อยู่ในสิ่งที่คุณต้องการที่จะสร้าง 1765 01:20:14,772 --> 01:20:17,114 อือ 1766 01:20:17,114 --> 01:20:18,430 >> ตกลง. 1767 01:20:18,430 --> 01:20:26,360 ดังนั้นเรากำลังจะทำอีก ตัวอย่างเช่นเทอร์มินี่ 1768 01:20:26,360 --> 01:20:27,300 ตกลง. 1769 01:20:27,300 --> 01:20:29,900 ดังนั้นร็อบได้อย่างรวดเร็วในการบรรยาย วันอื่น ๆ ไป 1770 01:20:29,900 --> 01:20:35,040 ผ่านตัวอย่างนี้เขาอยู่ที่ไหน มีหลัก int int argc argv สตริง 1771 01:20:35,040 --> 01:20:39,090 วงเล็บซึ่งจะบอกฉันว่าฉัน จะมีอาร์กิวเมนต์บรรทัดคำสั่ง 1772 01:20:39,090 --> 01:20:41,860 >> เขามีถ้า argc เท่ากับ เท่ากับ 2-- จำ 1773 01:20:41,860 --> 01:20:45,070 เท่ากับเท่ากับหมายถึงการเปรียบเทียบ 1774 01:20:45,070 --> 01:20:47,980 ถ้ามันเท่ากับ 2 แล้วฉัน จะพิมพ์สวัสดี 1775 01:20:47,980 --> 01:20:51,190 สิ่งแรก องค์ประกอบของอาร์เรย์คือ 1776 01:20:51,190 --> 01:20:54,100 พิมพ์อื่นสวัสดีโลก 1777 01:20:54,100 --> 01:20:56,300 นี่คือสิ่งที่จะไป เกิดขึ้นเป็นหลัก? 1778 01:20:56,300 --> 01:21:00,570 เพียงแค่คนที่สามารถอธิบายใน ภาษาอังกฤษสิ่งที่โปรแกรมนี้จะทำ? 1779 01:21:00,570 --> 01:21:01,272 ใช่ 1780 01:21:01,272 --> 01:21:08,160 >> ผู้ชม: ถ้ามีคนพิมพ์ลงในคำสั่ง และบอกว่าชื่อและนามสกุลของพวกเขา 1781 01:21:08,160 --> 01:21:12,096 มันจะไม่ได้เป็นเพียงพิมพ์ ครั้งแรกและพูดว่าสวัสดี 1782 01:21:12,096 --> 01:21:14,090 สิ่งที่ชื่อแรกของคุณคือ 1783 01:21:14,090 --> 01:21:15,410 >> ANDI PENG: ตกลงให้ทำงานได้ 1784 01:21:15,410 --> 01:21:22,470 ดังนั้นตัวอย่างเช่นถ้าผมจะทำ ไฟล์นี้ทำให้ to-- สวัสดีทักทาย 1785 01:21:22,470 --> 01:21:24,500 to-- ทำในสิ่งที่คุณต้องการให้ฉันใส่? 1786 01:21:24,500 --> 01:21:25,900 >> ผู้ชม: ชื่อและนามสกุล 1787 01:21:25,900 --> 01:21:27,280 >> ANDI PENG: ชื่อและนามสกุล? 1788 01:21:27,280 --> 01:21:28,180 ช่องว่าง? 1789 01:21:28,180 --> 01:21:29,690 >> ผู้ชม: ใช่ 1790 01:21:29,690 --> 01:21:33,490 >> ANDI PENG: ใครสามารถบอกได้ ฉันตอนนี้สิ่งที่เป็น argc? 1791 01:21:33,490 --> 01:21:35,630 เพียงแค่ที่นั่น? 1792 01:21:35,630 --> 01:21:36,290 โอ๊ะขอโทษ. 1793 01:21:36,290 --> 01:21:37,920 ผมขอกลับไป 1794 01:21:37,920 --> 01:21:40,740 วิธีอาร์กิวเมนต์บรรทัดคำสั่งจำนวนมาก are-- พวกคุณไม่สามารถจริงๆเห็น 1795 01:21:40,740 --> 01:21:43,760 แต่ฉันจะพยายามที่จะขยาย 1796 01:21:43,760 --> 01:21:44,290 ฉันกำลังพยายาม. 1797 01:21:44,290 --> 01:21:45,414 ใช่มีสามใช่มั้ย? 1798 01:21:45,414 --> 01:21:48,750 มันเฉือนจุดสวัสดี มันล่ะและก็เป็ง 1799 01:21:48,750 --> 01:21:51,870 >> ดังนั้นสิ่งที่พวกคุณคิดว่านี้ โปรแกรมจะถูกพิมพ์ออกมา? 1800 01:21:51,870 --> 01:21:55,550 1801 01:21:55,550 --> 01:21:56,060 โอ้ 1802 01:21:56,060 --> 01:21:57,120 โอ้ขอโทษ. 1803 01:21:57,120 --> 01:21:57,810 ชื่อที่ไม่ถูกต้อง 1804 01:21:57,810 --> 01:22:03,630 1805 01:22:03,630 --> 01:22:06,130 มันพิมพ์ออกสวัสดีโลก 1806 01:22:06,130 --> 01:22:09,603 ไม่มีใครต้องการที่จะอธิบาย เหตุผลที่เกิดขึ้น? 1807 01:22:09,603 --> 01:22:10,103 ใช่? 1808 01:22:10,103 --> 01:22:11,019 >> ผู้ชม: [ไม่ได้ยิน] 1809 01:22:11,019 --> 01:22:14,439 1810 01:22:14,439 --> 01:22:15,230 ANDI PENG: แน่นอน 1811 01:22:15,230 --> 01:22:19,940 ดังนั้นที่นี่เป็นเงื่อนไข คือถ้า argc เท่ากับเท่ากับ 2 1812 01:22:19,940 --> 01:22:23,650 ดังนั้นเฉพาะในกรณีที่มี สองอาร์กิวเมนต์บรรทัดคำสั่ง 1813 01:22:23,650 --> 01:22:25,850 แล้วฉันจะพิมพ์ สวัสดีสิ่งที่เป็น 1814 01:22:25,850 --> 01:22:28,210 แต่อย่างอื่นฉันจะ เพียงแค่พิมพ์สวัสดีโลก 1815 01:22:28,210 --> 01:22:30,040 ดังนั้นคนที่ไม่ต้องการ จะให้ฉันตัวอย่าง 1816 01:22:30,040 --> 01:22:35,050 ของวิธีการที่ฉันจะสามารถจริง ได้รับมันในการพิมพ์ค่าของ argv 1? 1817 01:22:35,050 --> 01:22:38,600 >> สิ่งที่ผมจะต้องป้อนข้อมูลที่นี่? 1818 01:22:38,600 --> 01:22:39,840 เพียงสิ่งเดียวใช่มั้ย? 1819 01:22:39,840 --> 01:22:42,900 เพราะสวัสดีจุดไปแล้ว นับเป็นอาร์กิวเมนต์แรก 1820 01:22:42,900 --> 01:22:43,930 ฉันมีเพียงหนึ่งที่มากขึ้น 1821 01:22:43,930 --> 01:22:46,470 ดังนั้นจุดสวัสดีถ้าฉันเพียงแค่ทำแล้วล่ะ 1822 01:22:46,470 --> 01:22:47,270 สวัสดี Andi 1823 01:22:47,270 --> 01:22:49,186 ทุกคนไม่เข้าใจ เหตุผลที่เกิดขึ้น? 1824 01:22:49,186 --> 01:22:49,602 ใช่ 1825 01:22:49,602 --> 01:22:52,500 >> ผู้ชม: ดังนั้นช่องว่างระหว่างที่ line-- คำสั่งมัน [ไม่ได้ยิน] 1826 01:22:52,500 --> 01:22:56,247 1827 01:22:56,247 --> 01:22:56,830 ANDI PENG: เลขที่ 1828 01:22:56,830 --> 01:23:03,810 ดังนั้นพื้นที่ในบรรทัดคำสั่งที่ อาร์กิวเมนต์ x เพื่อที่จะบอกคอมพิวเตอร์ของคุณ 1829 01:23:03,810 --> 01:23:06,820 ว่านี่คือจุดเริ่มต้นของสตริงใหม่ 1830 01:23:06,820 --> 01:23:11,130 ดังนั้น argv สตริง here-- เก็บไว้ ทั้งหมดของอาร์กิวเมนต์บรรทัดคำสั่งของคุณ 1831 01:23:11,130 --> 01:23:13,110 ในสาย 1832 01:23:13,110 --> 01:23:17,420 และเพื่อให้พื้นที่ในบรรทัดคำสั่ง argument-- สิ่งที่ไม่สามารถบอกคุณ 1833 01:23:17,420 --> 01:23:21,030 นี้เป็นที่สิ้นสุดของสตริง และก็ถึงเวลาที่จะย้ายไปที่อื่น 1834 01:23:21,030 --> 01:23:21,990 >> ใช่ 1835 01:23:21,990 --> 01:23:23,530 นี้เป็นสิ่งสำคัญสวย pset ของคุณเพราะคุณ 1836 01:23:23,530 --> 01:23:24,613 จะได้รับการทดสอบเหล่านี้ 1837 01:23:24,613 --> 01:23:29,300 ดังนั้นไม่มีใครมี คำถามใด ๆ เกี่ยวกับเรื่องนี้? 1838 01:23:29,300 --> 01:23:30,016 ตกลงเย็น 1839 01:23:30,016 --> 01:23:30,515 ใช่? 1840 01:23:30,515 --> 01:23:35,008 >> ผู้ชม: ดังนั้นเหตุผลที่คุณจะ ใส่คำนวณอาร์กิวเมนต์จำนวนเต็มแทน 1841 01:23:35,008 --> 01:23:40,059 ของ [ไม่ได้ยิน] จะเป็นเมื่อคุณต้องการ พิมพ์ข้อมูลเพิ่มเติม 1842 01:23:40,059 --> 01:23:41,030 [ไม่ได้ยิน] 1843 01:23:41,030 --> 01:23:42,090 >> ANDI เป็ง: ใช่ว่า 1844 01:23:42,090 --> 01:23:45,370 บางโปรแกรมจะทำให้คุณต้อง ใส่อาร์กิวเมนต์บรรทัดคำสั่ง 1845 01:23:45,370 --> 01:23:47,732 ที่มันผ่านไปและที่ใช้ว่า 1846 01:23:47,732 --> 01:23:49,035 ใช่ 1847 01:23:49,035 --> 01:23:50,410 ผู้ชม: ดังนั้นสิ่งที่ถ้า [ไม่ได้ยิน] 1848 01:23:50,410 --> 01:23:55,440 1849 01:23:55,440 --> 01:23:58,870 >> ANDI PENG: ดีทำในสิ่งที่ฉันมี ที่จะเปลี่ยนแล้วในโปรแกรมของฉันได้อย่างไร 1850 01:23:58,870 --> 01:23:59,870 >> ผู้ชม: เพ​​ียงแค่ 3 1851 01:23:59,870 --> 01:24:12,460 1852 01:24:12,460 --> 01:24:15,020 >> ANDI PENG: ทำไมว่า ที่เกิดขึ้นคุณคิดว่า? 1853 01:24:15,020 --> 01:24:18,940 >> ผู้ชม: เพ​​ราะ [ไม่ได้ยิน] 1854 01:24:18,940 --> 01:24:22,370 >> ผู้ชม: คุณจะต้อง เปลี่ยนเป็น 2 [ไม่ได้ยิน] 1855 01:24:22,370 --> 01:24:23,484 >> ผู้ชม: 1 และ 2 1856 01:24:23,484 --> 01:24:24,650 ANDI PENG: 1 และ 2 ว่า 1857 01:24:24,650 --> 01:24:29,150 ดังนั้นในกรณีนี้คุณอาจจะ ต้องการที่จะมีสอง printf statements-- 1858 01:24:29,150 --> 01:24:32,601 หนึ่งที่พิมพ์ argv ที่ 1 และ คนที่พิมพ์ argv 2 1859 01:24:32,601 --> 01:24:33,100 ที่นี่ 1860 01:24:33,100 --> 01:24:34,516 ที่จริงผมสามารถทำเช่นนั้นจริงอย่างรวดเร็ว 1861 01:24:34,516 --> 01:24:46,720 1862 01:24:46,720 --> 01:24:47,320 มีคุณไป 1863 01:24:47,320 --> 01:24:48,287 โอ้ 1864 01:24:48,287 --> 01:24:49,370 ไม่มากสิ่งที่คุณต้องการ 1865 01:24:49,370 --> 01:24:52,590 แต่ระเบียบถ้าพวกคุณไปรอบ ๆ ด้วย การจัดรูปแบบก็จะออกมา 1866 01:24:52,590 --> 01:24:54,981 ใช่ 1867 01:24:54,981 --> 01:24:55,480 เย็น 1868 01:24:55,480 --> 01:24:57,670 ฉันรู้ว่าเรากำลังบิตในเวลาสั้น 1869 01:24:57,670 --> 01:25:02,469 แต่ฉันแค่จะไปใช้จ่ายได้อย่างรวดเร็ว สองสามนาทีจะผ่าน helpful-- 1870 01:25:02,469 --> 01:25:03,760 ผู้ชม: คุณมีสองนาที 1871 01:25:03,760 --> 01:25:05,010 ANDI PENG: ฉันมีสองนาที? 1872 01:25:05,010 --> 01:25:06,340 ขอขอบคุณ. 1873 01:25:06,340 --> 01:25:09,180 เคล็ดลับ pset อย่างรวดเร็ว 1874 01:25:09,180 --> 01:25:13,100 ดังนั้นสำหรับ pset นี้ผมขอแนะนำ ชอบพูดว่าทุกคนที่จะอ่านข้อมูลจำเพาะ 1875 01:25:13,100 --> 01:25:16,804 คุณจะได้รับการเขียนสาม programs-- หนึ่ง เรียกว่า initials.c หนึ่งเรียกว่า caesar.c, 1876 01:25:16,804 --> 01:25:17,720 อย่างใดอย่างหนึ่งที่เรียกว่า vigenere.c 1877 01:25:17,720 --> 01:25:20,465 1878 01:25:20,465 --> 01:25:22,340 เคล็ดลับสำคัญที่ พวกคุณต้องการ 1879 01:25:22,340 --> 01:25:25,040 ไปเก็บไว้ใน mind-- ดังนั้น มีฟังก์ชั่นนี้ 1880 01:25:25,040 --> 01:25:27,770 เรียกว่าเป็น atoi-- ผมชอบที่จะพูดว่าทรัวส์ 1881 01:25:27,770 --> 01:25:29,520 ไม่มีความชัดเจนว่าที่ จริงวิธีที่คุณพูดมัน 1882 01:25:29,520 --> 01:25:32,510 แต่ทั้งหมดที่มันทำก็ป้อน 1883 01:25:32,510 --> 01:25:34,320 มันจะแปลงสตริงเป็น int 1884 01:25:34,320 --> 01:25:37,490 ดังนั้นแสดงให้เห็นถึงการ ASCII ฉันจำนวนเต็ม 1885 01:25:37,490 --> 01:25:40,310 มันเป็นเพียงแค่การแปลง ASCII ค่าค่าจำนวนเต็ม 1886 01:25:40,310 --> 01:25:44,510 ดังนั้นจำ argv อาร์เรย์ที่ร้านค้า ทุกคำสั่งของคุณสาย arguments-- 1887 01:25:44,510 --> 01:25:46,300 จะเก็บพวกเขาทั้งหมดเป็นสตริง 1888 01:25:46,300 --> 01:25:50,010 ดังนั้นถ้าคุณต้องการที่จะสามารถ มีหนึ่งในพวกเขากลายเป็นจำนวนเต็ม 1889 01:25:50,010 --> 01:25:52,750 คุณกำลังจะมี ที่จะใช้ค่านี้ที่นี่ 1890 01:25:52,750 --> 01:25:56,690 >> Modulo เหมือนอย่างที่เราได้รับการคุ้มครอง ก่อนหน้านี้ในชั้นเรียนในวันนี้ 1891 01:25:56,690 --> 01:25:59,550 ช่วยให้คุณสามารถที่จะมี ที่เหลือของสิ่งที่คุณมี 1892 01:25:59,550 --> 01:26:03,620 ดังนั้นถ้าเรามีจริงๆ จำนวนมากในซีซาร์ 1893 01:26:03,620 --> 01:26:06,117 สิ่งที่ถ้าเรามีที่สิ้นสุด ของสตริงของ Vigenere หรือไม่? 1894 01:26:06,117 --> 01:26:08,450 วิธีการที่คุณจะสามารถ ที่จะได้รับการห่อรอบ? 1895 01:26:08,450 --> 01:26:11,330 ถ้าผมตีซีและฉันต้องการ มันจะกลับไปที่ 1896 01:26:11,330 --> 01:26:13,650 วิธีการที่ฉันจะได้รับ ที่จะตัดรอบ? 1897 01:26:13,650 --> 01:26:15,960 อาจจะต้องการที่จะใช้ โมดูโลในมีบาง 1898 01:26:15,960 --> 01:26:19,190 >> ประการที่สองเรียกดูรอบ ๆ ห้องสมุดของคุณ ctype.h 1899 01:26:19,190 --> 01:26:20,680 นั่นคือห้องสมุดใหม่ที่เรามี 1900 01:26:20,680 --> 01:26:25,270 คุณจะพบจำนวนมากจริงๆ ประโยชน์ functions-- isupper, islower, 1901 01:26:25,270 --> 01:26:27,681 toupper, ToLower, isalpha ฯลฯ 1902 01:26:27,681 --> 01:26:30,680 ฟังก์ชั่นทั้งหมดที่จะเป็นประโยชน์มาก เมื่อคุณกำลังพยายามที่จะคิดออก 1903 01:26:30,680 --> 01:26:33,780 เป็นตัวละครตัวนี้เป็นตัวอักษรตัวพิมพ์เล็ก? 1904 01:26:33,780 --> 01:26:35,730 ฉันจะแปลงนี้อย่างไร สตริงเป็นตัวพิมพ์ใหญ่อยู่แล้ว? 1905 01:26:35,730 --> 01:26:38,146 ทุกสิ่งเหล่านี้จะเป็นมาก ที่เป็นประโยชน์มากสำหรับ pset ของคุณ 1906 01:26:38,146 --> 01:26:42,720 1907 01:26:42,720 --> 01:26:45,500 ตกลง. 1908 01:26:45,500 --> 01:26:49,644 >> เวลาทำการคืนนี้เป็น 8:00 11:00 ใน TEAL ห้องเรียนในวันพรุ่งนี้ 1909 01:26:49,644 --> 01:26:51,310 เช่นเดียวกับวันพุธและวันพฤหัสบดี 1910 01:26:51,310 --> 01:26:53,280 เวลาทำงานอยู่ในคอมมอนส์ 1911 01:26:53,280 --> 01:26:56,180 ขอแนะนำพวกคุณ ทั้งหมดเริ่มต้นทันที 1912 01:26:56,180 --> 01:27:00,490 เพราะคุณไม่ต้องการที่จะเป็นไปได้ว่า เด็กที่คืนวันพฤหัสบดีที่มีปัญหา 1913 01:27:00,490 --> 01:27:03,870 ส่ง pset ของคุณและ เหมือนผมไม่ทราบว่าจะทำอย่างไร 1914 01:27:03,870 --> 01:27:05,870 ผมเริ่มผมเสร็จแล้วฉันส่ง 1915 01:27:05,870 --> 01:27:09,737 พยายามที่จะให้ตัวเองห้องพักบาง เพราะในปัญหาที่เกิดขึ้นได้เสมอรหัส 1916 01:27:09,737 --> 01:27:11,570 คุณต้องการให้แน่ใจว่า ที่คุณให้ตัวเอง 1917 01:27:11,570 --> 01:27:14,810 มากเวลาที่จะสามารถ ที่จะเสร็จสมบูรณ์ psets 1918 01:27:14,810 --> 01:27:15,310 เย็น 1919 01:27:15,310 --> 01:27:16,720 ฉันจะไปเที่ยวรอบ ๆ ที่นี่ 1920 01:27:16,720 --> 01:27:18,226 >> ผู้ชม: Is ออนไลน์นี้แล้ว 1921 01:27:18,226 --> 01:27:20,850 ANDI เป็ง: ผมไม่ทราบว่ามันเป็น ออนไลน์แล้ว แต่มันจะเป็น 1922 01:27:20,850 --> 01:27:23,500 ฉันจะไปเที่ยวรอบ ๆ ที่นี่ถ้าใคร มีคำถามใด ๆ อยู่แล้ว 1923 01:27:23,500 --> 01:27:25,390 ขอบคุณที่มา. 1924 01:27:25,390 --> 01:27:27,105