1 00:00:00,000 --> 00:00:12,410 >> [เล่นเพลง] 2 00:00:12,410 --> 00:00:12,830 >> DAVID ลัน: ทั้งหมดขวา 3 00:00:12,830 --> 00:00:13,370 ยินดีต้อนรับกลับ 4 00:00:13,370 --> 00:00:16,510 นี่คือ CS50 และนี่คือ หนึ่งสัปดาห์อย่างต่อเนื่อง 5 00:00:16,510 --> 00:00:20,050 ดังนั้นหนึ่งในเหตุผลที่เราได้รับผ่าน รอบเทคโนโลยีเช่น 6 00:00:20,050 --> 00:00:24,120 Google แก้วก็คือพวกเขามาพร้อมกับ บางสิ่งบางอย่างที่รู้จักกันเป็น API, 7 00:00:24,120 --> 00:00:25,980 อินเตอร์เฟซการเขียนโปรแกรมประยุกต์ 8 00:00:25,980 --> 00:00:28,830 และสิ่งนี้หมายความว่าอยู่กับ ไฟล์ที่ถูกต้องและมีสิทธิ 9 00:00:28,830 --> 00:00:32,850 เอกสารที่คุณจริงสามารถเขียน ซอฟแวร์สำหรับอุปกรณ์แม้เช่นนี้ 10 00:00:32,850 --> 00:00:36,200 >> และเพื่อให้สิ่งที่เรามีในใจที่มีต่อ ปลายเทอมคือถ้าโครงการ 11 00:00:36,200 --> 00:00:39,310 ที่เกี่ยวข้องกับการพูด, แก้ว Google อาจ อุทธรณ์เราจะเห็นสิ่งที่เราสามารถทำได้ใน 12 00:00:39,310 --> 00:00:42,220 แง่ของการ hooking คุณกับบาง ฮาร์ดแวร์เจ้าหนี้เช่นเดียวกับที่ 13 00:00:42,220 --> 00:00:46,500 API สาธารณชนสามารถเข้าถึงได้เพื่อให้คุณสามารถ จะเริ่มต้นการสร้างซอฟแวร์ 14 00:00:46,500 --> 00:00:48,630 ที่รันบนแก้วที่ใช้ Google เดียวกัน 15 00:00:48,630 --> 00:00:51,710 >> อุปกรณ์ที่เราได้รับเล่นอีก กับสายที่เราคิดว่าอาจจะมี 16 00:00:51,710 --> 00:00:53,910 สนุกที่ปลายภาคการศึกษาคือ สิ่งเล็ก ๆ น้อย ๆ ที่นี่ 17 00:00:53,910 --> 00:00:56,860 มันเรียกว่าการเคลื่อนไหวก้าวกระโดดและสิ่งที่คุณ เกี่ยวกับที่จะเห็นเป็นเทคนิค 18 00:00:56,860 --> 00:01:00,280 โฆษณาสำหรับอุปกรณ์ แต่มัน ไม่พูดถึงสิ่งนี้โดยเฉพาะ 19 00:01:00,280 --> 00:01:01,240 อุปกรณ์ที่มีความสามารถของ 20 00:01:01,240 --> 00:01:05,550 และมันก็มาพร้อมกับ API ผ่าน ซึ่งคุณสามารถเขียนซอฟต์แวร์เพื่อ 21 00:01:05,550 --> 00:01:10,545 ควบคุมเครื่องคอมพิวเตอร์ของคุณเองในลักษณะที่ ค่อนข้างชอบภาพยนตร์เรื่องนี้หนึ่งนาทีที่นี่ 22 00:01:10,545 --> 00:01:12,070 >> [เล่นภาพวิดีโอ] 23 00:01:12,070 --> 00:02:08,002 24 00:02:08,002 --> 00:02:08,590 >> [เล่นวิดีโอจบ] 25 00:02:08,590 --> 00:02:11,190 >> ดังนั้นตอนนี้อุปกรณ์นี้ที่เกิดขึ้นกับ จะดำเนินการเป็นเพียงเล็กน้อย USB 26 00:02:11,190 --> 00:02:14,290 เชื่อมต่อที่คุณสามารถเสียบเข้าของคุณ คอมพิวเตอร์ แต่ฉันจะไม่แปลกใจ 27 00:02:14,290 --> 00:02:17,930 ถ้าอีกไม่นานเรามีประเภทนี้ เทคโนโลยีในชุดต่อไปของเครื่องคอมพิวเตอร์ 28 00:02:17,930 --> 00:02:20,510 และแม็คเพื่อให้คุณสามารถจริง โต้ตอบกับมันใน 29 00:02:20,510 --> 00:02:21,650 ลักษณะเช่นเดียวกับที่ 30 00:02:21,650 --> 00:02:24,250 ในความเป็นจริงสิ่งที่ฉันคิดว่าฉันทำเกินไป ผมดึงขึ้นมาสาธิตเล็ก ๆ น้อย ๆ 31 00:02:24,250 --> 00:02:25,860 โปรแกรมที่มาพร้อมกับซอฟต์แวร์นี้ 32 00:02:25,860 --> 00:02:28,700 ดังนั้นผมจึงได้ใส่เซ็นเซอร์เล็ก ๆ น้อย ๆ ในด้านหน้าของแล็ปท็อปของฉัน 33 00:02:28,700 --> 00:02:32,420 >> และในขณะที่คุณสามารถเห็นมันแล้วก็ตระหนักว่า ที่มือของฉันจะมี 34 00:02:32,420 --> 00:02:33,400 การควบคุมมัน 35 00:02:33,400 --> 00:02:37,900 และโปรแกรมนี้ไม่เป็น สิ่งเล็ก ๆ น้อย swimmingly เช่นนี้ 36 00:02:37,900 --> 00:02:41,080 แต่คุณจะเห็นว่าจริง ฉันมีห้านิ้วมี 37 00:02:41,080 --> 00:02:44,270 ถ้าเราจะได้รับมันที่จะทำทั้งหมด 10 ที่คุณสามารถจินตนาการเปียโนเรียบร้อย 38 00:02:44,270 --> 00:02:45,390 หรือโปรแกรมประยุกต์เช่น 39 00:02:45,390 --> 00:02:47,820 ดังนั้นถ้าคุณต้องการที่จะเกิดขึ้นหลังเลิกเรียน วันนี้และเล่นกับที่เป็น 40 00:02:47,820 --> 00:02:49,720 ดีคุณจะยินดีที่จะ 41 00:02:49,720 --> 00:02:52,930 ดังนั้นเพิ่มเติมว่าในช่วงปลายภาคการศึกษา 42 00:02:52,930 --> 00:02:54,420 >> ดังนั้นคู่ของการบริหาร ประกาศ 43 00:02:54,420 --> 00:02:58,690 หนึ่งทำส่วนภายในวันศุกร์นี้ ตอนเที่ยงที่ cs60.net/section 44 00:02:58,690 --> 00:03:01,260 ว่า URL เป็นของหลักสูตร หน้าแรกเช่นกัน 45 00:03:01,260 --> 00:03:04,010 ในขณะเดียวกันแม้ว่า supersections, จะเปิดตัวอาทิตย์นี้ 46 00:03:04,010 --> 00:03:07,800 Supersections เป็นสิ่งที่เพียงครั้งเดียว เพราะมันพาเราเวลาในการทำงานบางอย่าง 47 00:03:07,800 --> 00:03:09,470 ออกในส่วนใดและสถานที่ที่ 48 00:03:09,470 --> 00:03:12,280 >> ดังนั้นจะมาถึงนี้ในวันอาทิตย์ที่จะมีหนึ่ง ส่วนสำหรับผู้ที่สะดวกสบายน้อยลง 49 00:03:12,280 --> 00:03:14,040 ส่วนหนึ่งสำหรับผู้ที่ สะดวกสบายมากขึ้น 50 00:03:14,040 --> 00:03:16,110 และบรรดาของคุณที่ไหนสักแห่งใน ระหว่างพวกเรายินดีที่จะไป 51 00:03:16,110 --> 00:03:17,850 อย่างใดอย่างหนึ่งหรือทั้งสองหรือไม่ 52 00:03:17,850 --> 00:03:19,150 ทั้งสองคนนี้จะได้รับการถ่ายทำ 53 00:03:19,150 --> 00:03:22,740 พวกเขาจะอยู่ในห้องประชุมที่มีขนาดใหญ่กว่า ส่วนปกติจะเป็นค่ะ 54 00:03:22,740 --> 00:03:26,110 แต่เป้าหมายที่นี่คือการจัดให้คุณด้วย ความสะดวกสบายด้วยปัญหาบางชุดหนึ่ง 55 00:03:26,110 --> 00:03:29,910 กับ C ด้วย CS50 เครื่องนี้ วันหยุดสุดสัปดาห์ก่อนที่คุณจะหาของคุณ 56 00:03:29,910 --> 00:03:31,050 ที่ได้รับมอบหมายอย่างเป็นทางการส่วน 57 00:03:31,050 --> 00:03:34,700 ดังนั้นคุณจะพบ TF ของคุณและขนาดเล็กของคุณ กลุ่มของ sectionmates ในประมาณ 58 00:03:34,700 --> 00:03:36,350 เวลาหนึ่งสัปดาห์ 59 00:03:36,350 --> 00:03:38,200 >> เวลาทำการขณะที่ ได้รับไป 60 00:03:38,200 --> 00:03:41,020 ทำใช้ประโยชน์จากพวกเขาคืนนี้หรือ คืนวันพรุ่งนี้หากคุณต้องการ 61 00:03:41,020 --> 00:03:43,460 ชุด 0 ปัญหาเนื่องจากเมื่อวันศุกร์ที่ 62 00:03:43,460 --> 00:03:46,680 นี้เป็นวันที่ช้ากว่า สม่ำเสมอกำหนดพฤหัสบดี 63 00:03:46,680 --> 00:03:50,410 แต่ปัญหากับชุดที่ 1 คุณจะเห็น ว่ามันมีบางอย่างที่อบอุ่นขึ้น 64 00:03:50,410 --> 00:03:52,770 การออกกำลังกายที่คุณเอง สามารถขยายของคุณ 65 00:03:52,770 --> 00:03:54,660 เส้นตายพฤหัสบดีถึงวันศุกร์ 66 00:03:54,660 --> 00:03:58,410 ชุดปัญหา 1 ในขณะเดียวกันจะเปิดตัว บนเว็บไซต์ของหลักสูตรนี้มา 67 00:03:58,410 --> 00:04:02,000 วันศุกร์ที่ถ้าคุณต้องการที่จะขดตัวด้วย มันเป็นฉันได้กาลครั้งช่วงปลายปี 68 00:04:02,000 --> 00:04:04,370 ในคืนวันศุกร์ในห้องของคุณ 69 00:04:04,370 --> 00:04:07,660 >> ดังนั้น cs50.net/appliance เป็นสถานที่ที่ คุณจะได้รับเครื่องใช้ CS50 70 00:04:07,660 --> 00:04:09,040 ที่เราเริ่มใช้ในวันจันทร์ 71 00:04:09,040 --> 00:04:10,140 เราจะใช้มันอีกเล็กน้อยในวันนี้ 72 00:04:10,140 --> 00:04:14,040 แต่มั่นใจว่าปัญหาที่ตั้งไว้ 1 สเปคจะนำคุณผ่าน 73 00:04:14,040 --> 00:04:16,490 แม่นยำขั้นตอนที่คุณจำเป็นต้อง ที่ได้รับและทำงาน 74 00:04:16,490 --> 00:04:22,120 จึงไม่ต้องกังวลเกี่ยวกับการทำว่าก่อนที่ Pset 1 ถ้าคุณไม่ต้องการ 75 00:04:22,120 --> 00:04:22,660 >> ทั้งหมดขวา 76 00:04:22,660 --> 00:04:27,180 ดังนั้นเราจึงมองไปในวันจันทร์ที่ซอร์สโค้ด แต่ในบริบทของใหม่ 77 00:04:27,180 --> 00:04:30,895 การเขียนโปรแกรมภาษาคือ C. และ C เหมือนเกาไม่ได้เป็นแบบกราฟิก 78 00:04:30,895 --> 00:04:32,270 มันไม่ได้เป็นปริศนาชิ้น 79 00:04:32,270 --> 00:04:34,450 มันเป็นไวยากรณ์ภาษาอังกฤษอย่าง 80 00:04:34,450 --> 00:04:37,140 และมีคู่ของขั้นตอนที่เกี่ยวข้องกับคน ในอันที่จริงการเขียนและการทำงาน 81 00:04:37,140 --> 00:04:41,650 โปรแกรมในภาษา C เพราะนอกเหนือจากแหล่งที่มา รหัสเช่นนี้คุณจะต้องบางสิ่งบางอย่าง 82 00:04:41,650 --> 00:04:42,890 ที่เรียกว่าคอมไพเลอร์ 83 00:04:42,890 --> 00:04:46,682 และในแง่ของคนธรรมดาสิ่งที่ คอมไพเลอร์จะทำเพื่อเรา? 84 00:04:46,682 --> 00:04:47,650 ใช่ 85 00:04:47,650 --> 00:04:51,040 >> ลูกศิษย์: มันจะแปลงรหัส ที่คุณเขียนถึง 0 และ 1 86 00:04:51,040 --> 00:04:51,151 >> DAVID ลัน: ดี 87 00:04:51,151 --> 00:04:53,580 ดังนั้นจึงแปลงรหัสว่า เราเขียนถึง 0 และ 1 88 00:04:53,580 --> 00:04:57,730 จะแปลงรหัสแหล่งที่มาที่เรียกว่า รหัสวัตถุหลังของซึ่งมีลักษณะ 89 00:04:57,730 --> 00:04:59,140 บางสิ่งบางอย่างเล็ก ๆ น้อย ๆ เช่นนี้ 90 00:04:59,140 --> 00:05:02,860 และมันก็เป็นซีพียูสมองภายในของคุณ คอมพิวเตอร์ว่าเป็นเพราะของคุณ 91 00:05:02,860 --> 00:05:06,280 คนที่สร้างคอมพิวเตอร์เครื่องนั้น รู้ว่าสิ่งที่วนเวียนอยู่เหล่านั้น 92 00:05:06,280 --> 00:05:07,460 ของมีค่าเฉลี่ย 0 และ 1 93 00:05:07,460 --> 00:05:08,640 >> บางทีมันอาจจะหมายถึงการพิมพ์ 94 00:05:08,640 --> 00:05:10,265 บางทีมันอาจจะหมายถึงนอกจากนี้ 95 00:05:10,265 --> 00:05:11,610 บางทีมันอาจจะหมายถึงการลบ 96 00:05:11,610 --> 00:05:13,350 บางทีมันอาจจะหมายถึงการแสดงผลกราฟิก 97 00:05:13,350 --> 00:05:16,870 มีรูปแบบที่กำหนดไว้ล่วงหน้าของบิตเป็น ว่าโลกได้ตัดสินใจที่หมายถึง 98 00:05:16,870 --> 00:05:17,700 บางสิ่งบางอย่าง 99 00:05:17,700 --> 00:05:20,760 แต่ส่วนใหญ่ในหลักสูตรนี้ เราจะทำงานในระดับที่สูงและ 100 00:05:20,760 --> 00:05:24,180 เราจะโมเมว่ามีอยู่ สิ่งที่ต้องการคอมไพเลอร์ที่สามารถ 101 00:05:24,180 --> 00:05:27,670 ทำให้ฟังก์ชั่นรหัสของเราที่มา ในทางที่เราตั้งใจ 102 00:05:27,670 --> 00:05:31,660 >> ดังนั้นโปรแกรมที่เราเขียนครั้งแรกสัปดาห์ที่ผ่านมา และจากนั้นก็เริ่มไปที่ท่าเรือเพื่อที่จะ 103 00:05:31,660 --> 00:05:33,920 พูดไปที่ C ผ่านมานี้ วันจันทร์ที่เป็นนี้ 104 00:05:33,920 --> 00:05:35,700 เมื่อธงสีเขียวคลิกทักทาย 105 00:05:35,700 --> 00:05:37,430 นี้แน่นอน เขียนใน Scratch 106 00:05:37,430 --> 00:05:40,710 และฉันอ้างว่าเทียบเท่า โปรแกรมในภาษา C มองเล็ก ๆ น้อย ๆ 107 00:05:40,710 --> 00:05:41,520 บางอย่างเช่นนี้ 108 00:05:41,520 --> 00:05:45,050 >> ดังนั้นสิ่งที่ฉันคิดว่าเราควรจะทำในตอนแรกคือ ขอแซวนอกเหนือสิ่งที่ดูเหมือนตอนแรก 109 00:05:45,050 --> 00:05:48,790 อย่างรวดเร็วเป็นที่ยอมรับว่าเป็นความลับอย่างเป็นธรรม ไวยากรณ์ แต่คุณจะเริ่มสังเกตเห็น 110 00:05:48,790 --> 00:05:50,160 รูปแบบได้อย่างรวดเร็วมาก 111 00:05:50,160 --> 00:05:53,770 สิ่งที่เราจะทำในวันนี้คือให้ ให้คุณมีจิตแบบสำหรับบางคน 112 00:05:53,770 --> 00:05:57,280 ยอมรับบางสร้างมาตรฐาน ในการเขียนโปรแกรม 113 00:05:57,280 --> 00:06:00,420 และจากนั้นเราจริงจะได้รับในมือของเรา สกปรกด้วยตัวอย่างบางส่วนเช่นกัน 114 00:06:00,420 --> 00:06:04,140 >> ดังนั้นสำหรับบรรดาของคุณสะดวกสบายมากขึ้น ตระหนักดีว่าในสัปดาห์นี้และจากนั้นต่อไป 115 00:06:04,140 --> 00:06:05,940 สัปดาห์เป็นอย่างดีอาจจะเป็นบิตของความคิดเห็น 116 00:06:05,940 --> 00:06:08,810 แต่โดยเฉพาะอย่างยิ่งเมื่อฉบับที่แฮ็กเกอร์ ของปัญหา 1 ชุดออกไปเมื่อ 117 00:06:08,810 --> 00:06:12,330 เว็บไซต์ของหลักสูตรในวันศุกร์ที่ฉันคิดว่า คุณจะพบว่าแม้ในขณะที่คุณกรอก 118 00:06:12,330 --> 00:06:15,390 ช่องว่างบางส่วนในช่วงสัปดาห์หน้าหรือสอง, คุณจะเริ่มต้นที่จะได้รับมากกว่าที่เคย 119 00:06:15,390 --> 00:06:18,410 ท้าทายและพบ สิ่งใหม่และใหม่กว่า 120 00:06:18,410 --> 00:06:21,310 >> ดังนั้นขอแซวโปรแกรมนี้ออกจากกัน ไม่กี่บรรทัดในเวลา 121 00:06:21,310 --> 00:06:24,140 ที่ด้านบนมากเรามีอะไร เรียกว่าเทคนิค 122 00:06:24,140 --> 00:06:25,950 สั่ง preprocessor 123 00:06:25,950 --> 00:06:30,510 นี่เป็นเพียงบรรทัดของรหัสที่ระบุว่า รวมถึงเนื้อหาของไฟล์, 124 00:06:30,510 --> 00:06:35,080 ที่เรียกว่ามาตรฐาน I / N, เข้ามาตรฐาน - หรือขออภัยมาตรฐาน I / O มาตรฐาน 125 00:06:35,080 --> 00:06:38,670 อินพุต / เอาต์พุต, h. ภายใน ของโปรแกรมของตัวเอง 126 00:06:38,670 --> 00:06:41,670 >> ดังนั้นในคำอื่น ๆ ถ้าผมเขียนนี้ โปรแกรมด้วยโปรแกรมแก้ไขข้อความง่ายๆเช่น 127 00:06:41,670 --> 00:06:45,260 Gedit ที่เท่าเทียมกันง่าย บางอย่างเช่นโปรแกรม Microsoft Word, ว่า 128 00:06:45,260 --> 00:06:50,970 คำสั่ง # include stdio.h เป็นเพียง จะบอกคอมไพเลอร์ที่คว้า 129 00:06:50,970 --> 00:06:56,080 เนื้อหาของไฟล์อื่น ๆ ที่ stdio.h, และวางพวกเขาที่นี่ 130 00:06:56,080 --> 00:06:57,090 >> ตอนนี้ทำไมฉันดูแล? 131 00:06:57,090 --> 00:07:01,850 เราไม่เรียกร้องสิ่งที่อยู่ภายในของไฟล์นี้ เรียกว่า stdio.h ซึ่งจะถูกเก็บไว้ 132 00:07:01,850 --> 00:07:05,490 ที่แห่งหนึ่งในฮาร์ดไดรฟ์ของฉันหรือในการนี​​้ กรณีที่ไหนสักแห่งใน CS50 เครื่อง? 133 00:07:05,490 --> 00:07:06,635 คนอื่นใส่มันไว้ที่นั่นสำหรับฉัน 134 00:07:06,635 --> 00:07:09,910 แต่อะไรอยู่ในนั้น? 135 00:07:09,910 --> 00:07:13,020 >> ผมจึงประกาศ ฟังก์ชั่นที่เรียกว่า printf 136 00:07:13,020 --> 00:07:17,400 ดังนั้น printf ฟังก์ชันที่จำได้ว่า คำแสดงและตัวละครและ 137 00:07:17,400 --> 00:07:20,160 ตัวเลขบนหน้าจอในการประมูล 138 00:07:20,160 --> 00:07:21,220 แต่ผมไม่ได้เขียนมัน 139 00:07:21,220 --> 00:07:22,230 CS50 ไม่ได้เขียนมัน 140 00:07:22,230 --> 00:07:26,990 ปีที่ผ่านมามีคนเขียนมันและพวกเขา เป็นหลักให้เราสูตรสำหรับมัน 141 00:07:26,990 --> 00:07:29,110 ในไฟล์ที่เรียกว่า stdio.h 142 00:07:29,110 --> 00:07:33,240 เพื่อให้บรรทัดแรกเพียงแค่ให้ฉันเข้าถึง ฟังก์ชั่นที่คนอื่น 143 00:07:33,240 --> 00:07:36,500 เมื่อปีที่ผ่านมาในหมู่ ซึ่งเป็น printf 144 00:07:36,500 --> 00:07:39,450 >> ตอนนี้ยังบรรทัดถัดไปฉันจะโบกมือของฉัน มือที่อย่างน้อยจนกว่าจะถึงสัปดาห์หน้า 145 00:07:39,450 --> 00:07:43,620 แต่ตอนนี้รู้ว่า int main (void) คือ หลักเทียบเท่านี้ 146 00:07:43,620 --> 00:07:46,310 ชิ้นส่วนปริศนาสีเหลืองเมื่อ ธงสีเขียวคลิก 147 00:07:46,310 --> 00:07:49,510 โลก, ปีที่ผ่านมาคิดว่าถ้า คุณกำลังเขียนโปรแกรมใน 148 00:07:49,510 --> 00:07:53,150 ภาษาที่เรียกว่า C, คุณจะเริ่มต้น โปรแกรมของคุณกับสาย 149 00:07:53,150 --> 00:07:54,410 ที่ดูเหมือนว่า 150 00:07:54,410 --> 00:07:57,650 ในเวลาเพียงเกี่ยวกับเวลาหนึ่งสัปดาห์ก็จะทำให้ ความรู้สึก int อะไรคือสิ่งที่ถือเป็นโมฆะ 151 00:07:57,650 --> 00:08:00,840 แต่ตอนนี้เพียงแค่คิดว่าของมัน เป็นชิ้นส่วนปริศนานี้สีเหลือง 152 00:08:00,840 --> 00:08:04,550 >> ตอนต่อไปเราจะต้องรั้งหยิกตาม อีกรั้งหยิกใกล้ชิด 153 00:08:04,550 --> 00:08:05,240 เพื่อที่จะพูด 154 00:08:05,240 --> 00:08:07,430 และเราจะเห็นเหล่านี้ตลอด โปรแกรมในภาษา C เช่นเดียวกับ 155 00:08:07,430 --> 00:08:08,930 JavaScript และ PHP 156 00:08:08,930 --> 00:08:11,345 และสิ่งเหล่านี้เพียงแค่แค็ปซูล บรรทัดของรหัสที่เกี่ยวข้อง 157 00:08:11,345 --> 00:08:14,600 รั้งหยิกเปิดเป็นหลัก พูดว่านี่มาบางรหัส 158 00:08:14,600 --> 00:08:17,590 และรั้งหยิกปิดซึ่งเป็น มุมในทิศทางอื่น ๆ เพียงแค่ 159 00:08:17,590 --> 00:08:19,920 วิธีการที่มันสำหรับ รหัสที่เกี่ยวข้อง 160 00:08:19,920 --> 00:08:22,970 >> ดังนั้นเส้นฉ่ำในครั้งแรกนี้ โปรแกรมเป็นครั้งสุดท้าย, printf, 161 00:08:22,970 --> 00:08:25,080 อ้างไม่ได้นำมาอ้าง, hello โลก 162 00:08:25,080 --> 00:08:30,670 และสิ่งที่ผมเรียกว่าระหว่าง คำพูดที่ว่าเวลาที่ผ่านมา? 163 00:08:30,670 --> 00:08:31,285 ดังนั้นจึงเป็นสตริง 164 00:08:31,285 --> 00:08:35,309 และสตริงเป็นเพียง Techie คำที่ใช้เรียกลำดับของ 165 00:08:35,309 --> 00:08:37,169 ตัวอักษรคำวลี 166 00:08:37,169 --> 00:08:39,380 แม้แต่ตัวอักษรเดียวที่จะทำได้ จะยกสอง 167 00:08:39,380 --> 00:08:41,840 แต่ลำดับของศูนย์ ตัวอักษรหรือมากกว่า 168 00:08:41,840 --> 00:08:43,650 >> เครื่องหมายทับขวา n-แต่มีลักษณะ บิตแปลก 169 00:08:43,650 --> 00:08:46,290 แต่มันก็หมายถึงบางสิ่งบางอย่าง ง่ายต่อการใช้คอมพิวเตอร์ 170 00:08:46,290 --> 00:08:48,060 เครื่องหมายทับขวา n-คืออะไร? 171 00:08:48,060 --> 00:08:48,570 บรรทัดใหม่ 172 00:08:48,570 --> 00:08:52,490 ดังนั้นนั่นเป็นเพียงลำดับพิเศษของ ตัวอักษรที่โลกได้ตัดสินใจ 173 00:08:52,490 --> 00:08:56,880 วิธีการใส่แบ่งบรรทัดมีสิทธิ เพราะคอมไพเลอร์จะได้รับจริง 174 00:08:56,880 --> 00:09:02,280 สับสนมักจะถ้าคุณมาก เข้าใจ แต่ไม่ถูกต้องเพียง 175 00:09:02,280 --> 00:09:04,570 เริ่มต้นกดปุ่ม Enter เพื่อวาง สายใหม่ในรหัสของคุณ 176 00:09:04,570 --> 00:09:07,150 คุณจะต้องเป็นเล็ก ๆ น้อย ๆ ชัดเจนด้วยเครื่องหมายทับขวา n- 177 00:09:07,150 --> 00:09:10,540 >> และเราจะเห็นว่ามีไม่กี่อื่น ๆ เช่น สำหรับรูปแบบตัวอักษรพิเศษ 178 00:09:10,540 --> 00:09:14,340 ตัวอย่างเช่นถ้าคุณต้องการที่จะให้คุณ ใจหลงกับกรณีมุม, 179 00:09:14,340 --> 00:09:18,080 คิดว่าฉันต้องการที่จะพิมพ์ คู่ quote บนหน้าจอ 180 00:09:18,080 --> 00:09:21,840 ด้วยเหตุผลอะไรก็ตามที่ดูเหมือนจะ จะเป็นเพียงเล็กน้อยขวามีปัญหา? 181 00:09:21,840 --> 00:09:24,990 เพราะถ้าผมใส่คู่ quote ใน ตรงกลางของ "Hello World," สิ่งที่ 182 00:09:24,990 --> 00:09:30,120 เหตุผลว่าทำไมดูเหมือน อาจมีปัญหา? 183 00:09:30,120 --> 00:09:32,180 จะแบ่งสตริง 184 00:09:32,180 --> 00:09:34,700 >> คอมไพเลอร์เป็นเพียงโปรแกรม 185 00:09:34,700 --> 00:09:37,210 โปรแกรมเช่นคอมไพเลอร์จะเป็นเพียง การอ่านรห​​ัสของคุณบนลงล่าง 186 00:09:37,210 --> 00:09:37,990 จากซ้ายไปขวา 187 00:09:37,990 --> 00:09:41,850 และหากเห็นว่าคำพูดสองสามแทน ของทั้งสองก็จะไม่ทราบ 188 00:09:41,850 --> 00:09:45,210 ถ้าคุณหมายความว่าสิ่งที่ไปทางซ้าย ควรที่จะเป็นสตริงหรือสิ่งที่จะต้อง 189 00:09:45,210 --> 00:09:46,570 ขวาหรือสิ่งที่ทั้ง 190 00:09:46,570 --> 00:09:50,560 มันคลุมเครือและดังนั้นสิ่งที่ปกติ คอมไพเลอร์จะทำคือเพียงแค่ออกนอกลู่นอกทาง, 191 00:09:50,560 --> 00:09:53,710 และให้ข้อความข้อผิดพลาดบางส่วนและ ทำให้คุณจัดการกับปัญหา 192 00:09:53,710 --> 00:09:58,120 >> เพื่อให้ได้รับเครื่องหมาย n-หมายถึงใหม่ สายสิ่งที่จะสัญชาตญาณของคุณตอนนี้ 193 00:09:58,120 --> 00:10:02,610 เริ่มต้นที่จะเป็นถ้าคุณต้องการที่จะรวม บางสิ่งบางอย่างผิดปกติเช่นคู่ 194 00:10:02,610 --> 00:10:06,210 อ้างอิงภายในของนี้มิฉะนั้นข้อความที่ยกมา สตริง? 195 00:10:06,210 --> 00:10:07,640 อ้างเครื่องหมายทับขวาสองครั้ง 196 00:10:07,640 --> 00:10:09,630 และดังนั้นเราจะเห็นสิ่งนี้ ชนิดของรูปแบบเกินไป 197 00:10:09,630 --> 00:10:12,490 >> หากคุณต้องการที่จะทำบางสิ่งบางอย่างเล็ก ๆ น้อย ๆ แปลกคุณจะพบว่า 198 00:10:12,490 --> 00:10:15,060 การแก้ปัญหามักจะทำตามรูปแบบ, และเครื่องหมายทับขวา 199 00:10:15,060 --> 00:10:17,150 หมายถึงลำดับหนี 200 00:10:17,150 --> 00:10:20,320 และมันก็หมายความว่าบางสิ่งที่พิเศษ ที่เราต้องการที่จะเป็นตัวแทนใน 201 00:10:20,320 --> 00:10:21,060 วิธีการที่แตกต่างกัน 202 00:10:21,060 --> 00:10:23,830 ในฐานะที่เป็นวิธีการที่คุณเป็นตัวแทนของ เครื่องหมายทับขวาดีเราจะ 203 00:10:23,830 --> 00:10:24,550 กลับมาที่ว่า 204 00:10:24,550 --> 00:10:26,930 แต่คำตอบก็เป็นจริง บิตที่เห็นได้ชัด 205 00:10:26,930 --> 00:10:31,080 >> ดังนั้นตอนนี้ขอแนะนำอื่น ๆ บาง การเขียนโปรแกรมโครงสร้าง 206 00:10:31,080 --> 00:10:31,915 ที่คุณเห็นใน Scratch 207 00:10:31,915 --> 00:10:34,790 คุณอาจจะนำมาให้ได้รับ แล้วถ้าคุณได้ดำดิ่งลงไปแล้ว 208 00:10:34,790 --> 00:10:36,060 ปัญหาการตั้งค่า 0 209 00:10:36,060 --> 00:10:40,950 แต่ตอนนี้ขอแนะนำไวยากรณ์ใน C เหล่านี้เป็นอย่างอื่นค่อนข้างง่าย 210 00:10:40,950 --> 00:10:42,300 ความคิดอย่างน้อยบางส่วนของพวกเขา 211 00:10:42,300 --> 00:10:45,570 >> ดังนั้นความคิดนี้ของเงื่อนไขหรือ สาขาในขณะที่ก่อนหน้านี้เรา 212 00:10:45,570 --> 00:10:49,330 แสดงด้วยรหัสที่ดู เช่นนี้ทางด้านซ้ายมือใน Scratch - 213 00:10:49,330 --> 00:10:52,200 ถ้า x มีค่าน้อยกว่า y แล้วพูดเพื่อ - 214 00:10:52,200 --> 00:10:56,760 แทนตอนนี้อยู่ใน C - ให้ฉันเหลา ในกรณีที่ง่ายที่สุด - 215 00:10:56,760 --> 00:11:01,235 เราเพียงแค่จะบอกว่าถ้าเปิด วงเล็บคืออะไรบางอย่างที่เป็นความจริง - 216 00:11:01,235 --> 00:11:04,190 การแสดงออกของบูลีนเป็นไป ที่ฉันได้กล่าวว่าสภาพ - 217 00:11:04,190 --> 00:11:08,170 วงเล็บปิดแล้วไม่อะไร ภายในของวงเล็บปีกกาเหล่านั้น 218 00:11:08,170 --> 00:11:11,020 >> ดังนั้นที่นี่ด้วยวงเล็บปีกกา เป็นชนิดเช่นรอยขีดข่วนของ 219 00:11:11,020 --> 00:11:12,460 รูปตัวยูชิ้นส่วนปริศนา 220 00:11:12,460 --> 00:11:14,890 อย่าอยู่ภายในวงเล็บปีกกาเหล่านี้สิ่ง 221 00:11:14,890 --> 00:11:16,790 ในกรณีนี้เฉือนเฉือน 222 00:11:16,790 --> 00:11:19,720 และแจ้งให้ทราบล่วงหน้านี้ไปข้างหน้า เฉือนไม่เครื่องหมายทับขวา 223 00:11:19,720 --> 00:11:21,440 ทับ, ทับ, สำหรับผู้ที่ได้ตั้งโปรแกรม 224 00:11:21,440 --> 00:11:23,370 ก่อนที่จะเพียงแค่หมายถึง - 225 00:11:23,370 --> 00:11:24,190 มันเป็นแค่ความคิดเห็น 226 00:11:24,190 --> 00:11:26,630 ความคิดเห็นไม่ได้เป็นเส้น ของรหัสต่อ SE 227 00:11:26,630 --> 00:11:30,200 มันเป็นบรรทัดของภาษาอังกฤษที่คุณ, มนุษย์ได้เขียนให้ตัวเองเพื่อ 228 00:11:30,200 --> 00:11:33,540 บางทีอาจจะเตือนให้คุณทำอะไรบางอย่างเพื่อ อธิบายให้กับตัวเองที่จะอธิบายให้ 229 00:11:33,540 --> 00:11:35,260 คนอื่นว่ารหัสของคุณจะทำ 230 00:11:35,260 --> 00:11:37,050 มันเป็นเพียงความคิดเห็นพรรณนา 231 00:11:37,050 --> 00:11:40,880 >> ตอนนี้แน่นอนเราสามารถมีวิธีที่สอง แยกในถนนเพียงโดยการทำเช่นนี้ 232 00:11:40,880 --> 00:11:43,930 ทางแยกสามทางในถนนโดยการทำ นี้และถ้าคุณยังคงนี้ 233 00:11:43,930 --> 00:11:47,570 รูปแบบที่คุณสามารถมีสี่ทาง, ห้าทาง, ส้อมหกทางในถนนถ้า 234 00:11:47,570 --> 00:11:50,150 คุณต้องจัดการแน่นอน ที่หลายเงื่อนไข 235 00:11:50,150 --> 00:11:52,010 แล้วสังเกตเห็นความเท่าเทียมที่นี่ - 236 00:11:52,010 --> 00:11:55,070 ถ้า (เงื่อนไข) อื่นถ้า (เงื่อนไข) และเป็นคนเดียวที่เล็ก ๆ น้อย ๆ 237 00:11:55,070 --> 00:11:58,010 ที่แปลกคือที่ผ่านมาซึ่ง เป็นเพียงที่อื่น 238 00:11:58,010 --> 00:12:01,170 แต่อีกครั้งนี้เป็นเหมือนกัน แนวคิดกับสิ่งที่เราเคยทำมาแล้ว 239 00:12:01,170 --> 00:12:04,690 แล้วแม้ว่าไวยากรณ์จะ ใช้เวลาเล็กน้อยรับใช้ 240 00:12:04,690 --> 00:12:07,730 >> ตอนนี้ในตัวอย่างนี้มี บางไวยากรณ์แปลกอื่น ๆ 241 00:12:07,730 --> 00:12:11,220 เราเห็น printf อีกครั้งวงเล็บเปิด และวงเล็บปิด 242 00:12:11,220 --> 00:12:13,190 และภายในของมี สายยก 243 00:12:13,190 --> 00:12:17,060 วงเล็บในบริบท จาก printf ไปทางด้านซ้าย 244 00:12:17,060 --> 00:12:18,160 และด้านขวาของอะไร 245 00:12:18,160 --> 00:12:22,190 เราทำอะไรที่ยกมาอธิบาย สตริงเป็นมากกว่าปกติ? 246 00:12:22,190 --> 00:12:23,320 >> ดังนั้นจึงเป็นข้อโต้แย้ง 247 00:12:23,320 --> 00:12:26,620 ทุกครั้งที่คุณมีฟังก์ชั่นเช่น printf แล้ววงเล็บเปิดและ 248 00:12:26,620 --> 00:12:30,330 วงเล็บใกล้ชิดและสิ่งที่อยู่ภายใน มันไม่ว่าจะเป็นสตริงหรือ 249 00:12:30,330 --> 00:12:34,420 จำนวนเต็มหรือสิ่งอื่นใดสิ่งที่ใน ระหว่างวงเล็บเหล่านั้นเรียกว่า 250 00:12:34,420 --> 00:12:35,110 อาร์กิวเมนต์ 251 00:12:35,110 --> 00:12:37,910 >> และอาร์กิวเมนต์เพียงแค่มีอิทธิพลต่อ พฤติกรรมการทำงานของ 252 00:12:37,910 --> 00:12:39,990 ในกรณีนี้เป็นที่ชัดเจนว่าสวย 253 00:12:39,990 --> 00:12:44,480 x 00:12:47,720 และ printf เป็นไป พิมพ์ตรงที่ 255 00:12:47,720 --> 00:12:51,590 เพราะแน่นอนปีที่ผ่านมาบุคคล ที่ดำเนินการ printf มีความคิด 256 00:12:51,590 --> 00:12:55,000 สิ่งที่เราเป็นผู้สืบทอดของมนุษย์ จะใช้ printf สำหรับ 257 00:12:55,000 --> 00:12:58,610 เพื่อที่ว่าทำไมข้อโต้แย้งที่มีอยู่เพื่อ มีอิทธิพลต่อพฤติกรรมหลังจากที่ฟังก์ชั่นของ 258 00:12:58,610 --> 00:12:59,450 ถูกเขียนขึ้น 259 00:12:59,450 --> 00:13:00,780 >> ตอนนี้การแสดงออกของบูลีน 260 00:13:00,780 --> 00:13:02,470 เราได้เห็นเหล่านี้มาก่อนใน Scratch 261 00:13:02,470 --> 00:13:06,680 มันจะเปิดออกใน C คุณยังสามารถ "หรือ" พวกเขาร่วมกันเพื่อที่จะพูด 262 00:13:06,680 --> 00:13:10,930 แถบแนวตั้งสองหมายความว่าบล็อกนี้ ของรหัสนี้ทำเช่นนี้จะ 263 00:13:10,930 --> 00:13:15,350 ดำเนินการถ้าเงื่อนไขแรกเป็นจริง หรือเงื่อนไขที่สองเป็นจริง 264 00:13:15,350 --> 00:13:17,710 และถึงแม้ว่าคุณอาจจะไม่ได้ทำ นี้ในเกาคุณสามารถแน่นอน 265 00:13:17,710 --> 00:13:20,580 ทำเช่นนี้ในเกาและคุณยังสามารถ แสดงตัวเองที่แตกต่างกัน - 266 00:13:20,580 --> 00:13:25,300 ถ้าเงื่อนไขแรกและครั้งที่สอง สภาพเป็นจริงแล้วไม่ว่าอะไร 267 00:13:25,300 --> 00:13:27,160 ภายในของวงเล็บปีกกา 268 00:13:27,160 --> 00:13:31,210 >> และเช่นเดียวกับกันด้วยเหตุผลมัน เครื่องหมายเดี่ยวและคู่ 269 00:13:31,210 --> 00:13:34,610 แถบแนวตั้งที่เราจะเห็นในที่สุด ที่แถบแนวตั้งเดียวและ 270 00:13:34,610 --> 00:13:38,710 เครื่องหมายเดียวจริงมีที่แตกต่างกัน ความหมายใน C. ดังนั้นสำหรับตอนนี้ 271 00:13:38,710 --> 00:13:41,840 การทำสำเนาของสัญลักษณ์ที่ เป็นความจงใจ 272 00:13:41,840 --> 00:13:45,070 >> ดังนั้นขอแนะนำสั้น ๆ , นี้บิตอื่น ๆ ของไวยากรณ์ 273 00:13:45,070 --> 00:13:48,940 นี้ไม่ได้ค่อนข้างดำเนินไป รอยขีดข่วน แต่ผมอ้างว่าฉันสามารถ 274 00:13:48,940 --> 00:13:55,190 ใช้ความคิดของคนอื่นถ้าหาก อื่นหากอื่นถ้างบอื่น ๆ ที่ใช้ 275 00:13:55,190 --> 00:13:56,760 สิ่งที่เรียกว่าคำสั่งเปลี่ยน 276 00:13:56,760 --> 00:14:00,820 และเหตุผลเดียวที่นี้มีอยู่จริง คือเพียงแค่ให้คุณโปรแกรมเมอร์, 277 00:14:00,820 --> 00:14:05,470 วิธีที่แตกต่างกันเล็กน้อยในการแก้บาง ปัญหาแม้ว่าเหตุผลมัน 278 00:14:05,470 --> 00:14:07,340 ไม่ให้ความสามารถใหม่ ๆ 279 00:14:07,340 --> 00:14:08,530 >> โดยที่ฉันหมายความนี้ 280 00:14:08,530 --> 00:14:13,330 เมื่อคุณพูดสวิทช์และจากนั้นพื้นที่, แล้วคู่ของวงเล็บภายใน 281 00:14:13,330 --> 00:14:14,570 ซึ่งการแสดงออกไป - 282 00:14:14,570 --> 00:14:18,010 และนี้อาจจะมีเพียงเล็กน้อยที่ไม่ชัดเจน ในตอนแรก แต่นี้ไม่ได้เป็นข้อโต้แย้ง, 283 00:14:18,010 --> 00:14:20,680 ในทางเทคนิคเพราะสวิทช์ ไม่ได้เป็นฟังก์ชั่น 284 00:14:20,680 --> 00:14:24,230 ดังนั้นสำหรับตอนนี้เพียงแค่คิดว่าเรากำลังใช้ วงเล็บในสถานที่ที่แตกต่างกัน 285 00:14:24,230 --> 00:14:25,250 ด้วยเหตุผลที่แตกต่างกัน 286 00:14:25,250 --> 00:14:29,310 >> ดังนั้นสวิทช์การแสดงออกซึ่งหมายความว่าฉันสามารถ ใส่ในตัวแปรของผู้ที่ 287 00:14:29,310 --> 00:14:31,350 วงเล็บที่มันว่าการแสดงออก 288 00:14:31,350 --> 00:14:33,090 แล้วถ้าว่าตัวแปร - 289 00:14:33,090 --> 00:14:35,400 คิดว่ามันเรียกว่า x และ เป็นเพียงจำนวนเต็ม - 290 00:14:35,400 --> 00:14:38,900 จากนั้นผมก็สามารถระบุในสไลด์ของฉัน บางสิ่งบางอย่างที่นี่เช่นนี้ 291 00:14:38,900 --> 00:14:41,690 ถ้า x เป็นตัวแปรของฉันและฉัน ต้องการที่จะทำบางสิ่งบางอย่างถ้า x 292 00:14:41,690 --> 00:14:43,480 เท่ากับ 1, ฉันจะทำ 293 00:14:43,480 --> 00:14:46,660 >> ถ้าฉันแทนต้องการที่จะทำบางสิ่งบางอย่าง ถ้า x เป็น 2 ฉันจะทำ 294 00:14:46,660 --> 00:14:50,390 อื่นถ้าผมต้องการที่จะทำอะไรอย่างอื่น ทั้งหมดที่ฉันสามารถมีกรณีเริ่มต้นใน 295 00:14:50,390 --> 00:14:52,750 ซึ่งในกรณีนี้ผมทำเช่นนี้สิ่งอื่น ๆ 296 00:14:52,750 --> 00:14:58,730 ดังนั้นในแง่ที่ว่ามันเทียบเท่ากับ ถ้า x เท่ากับเท่ากับ 1, อื่นถ้าอื่น 297 00:14:58,730 --> 00:15:01,150 แต่ผมพูดถึงในตอนนี้เพียงเพราะ เราจะได้เห็นมันอีกครั้ง 298 00:15:01,150 --> 00:15:03,720 แต่ตอนนี้ก็รู้ว่ามันมีอยู่ 299 00:15:03,720 --> 00:15:04,220 >> ทั้งหมดขวา 300 00:15:04,220 --> 00:15:07,660 ดังนั้นเหล่านี้คู่สุดท้ายเป็นเล็ก ๆ น้อย ๆ ที่ซับซ้อนได้อย่างรวดเร็วก่อน แต่ที่พวกเขาทำ 301 00:15:07,660 --> 00:15:09,385 บางสิ่งบางอย่างตรงไปตรงมาเป็นธรรม 302 00:15:09,385 --> 00:15:14,410 สำหรับวงในซีเป็นก้อนของรหัสที่ เพียงแค่บางสิ่งบางอย่างอีกครั้งและ 303 00:15:14,410 --> 00:15:15,330 ครั้งแล้วครั้งเล่า 304 00:15:15,330 --> 00:15:17,590 และมีเพียงสิ่งที่น่ารำคาญเกี่ยวกับมัน ที่ว่ามันเป็นเพียงเล็กน้อยคลุมเครือ 305 00:15:17,590 --> 00:15:21,380 การแสดงตัวเองในวงจรนี้ รูปแบบ แต่โลกมาตรฐาน 306 00:15:21,380 --> 00:15:22,450 วิธีการดังต่อไปนี้ 307 00:15:22,450 --> 00:15:25,760 >> เมื่อคุณใช้สำหรับวงคุณได้มี คู่ของวงเล็บอีกครั้ง 308 00:15:25,760 --> 00:15:27,570 และสังเกตเห็นสองอัฒภาค ในการมี 309 00:15:27,570 --> 00:15:34,380 ทั้งสองอัฒภาคสามแยก การแสดงออกที่แตกต่างกันภายใน 310 00:15:34,380 --> 00:15:35,020 วงเล็บ 311 00:15:35,020 --> 00:15:37,170 หนึ่งคือ initializations ที่เรียกว่า 312 00:15:37,170 --> 00:15:38,830 หนึ่งคือสภาพที่เรียกว่า 313 00:15:38,830 --> 00:15:40,210 และเป็นหนึ่งในการปรับปรุงที่เรียกว่า 314 00:15:40,210 --> 00:15:43,240 >> มองในเชิงนามธรรมนี้ สมบูรณ์ไม่ชัดเจนดังนั้นให้ดู 315 00:15:43,240 --> 00:15:44,630 ที่ตัวอย่างที่เป็นรูปธรรม 316 00:15:44,630 --> 00:15:46,720 ใน Scratch เรามีบล็อกซ้ำ 317 00:15:46,720 --> 00:15:50,670 และบล็อกนี้กล่าวว่าทำซ้ำ 10 ครั้งกล่าวว่า "hello, world." ผมขอเรียกร้อง 318 00:15:50,670 --> 00:15:53,810 ในขณะนี้และเราจะกลับมาที่นี้และ นี้เกินไปจะได้รับเพิ่มเติมคุ้นเคยกับ 319 00:15:53,810 --> 00:15:57,345 คุณก่อนที่จะยาวเทียบเท่า C รหัสที่อาจจะกล่าวได้ว่าเป็นคนนี้ - 320 00:15:57,345 --> 00:16:02,320 สำหรับงบและพื้นที่คู่ วงเล็บแจ้งให้ทราบอัฒภาคใน 321 00:16:02,320 --> 00:16:05,730 มีซึ่งแยกสามที่แตกต่างกัน สิ่งที่เริ่มต้น, 322 00:16:05,730 --> 00:16:07,320 สภาพและการปรับปรุง 323 00:16:07,320 --> 00:16:08,840 >> แล้วเดาอะไร ครั้งแรกที่จะทำ 324 00:16:08,840 --> 00:16:10,690 int i = 0 325 00:16:10,690 --> 00:16:15,120 ในแง่คนธรรมดาหยาบของสิ่งที่เป็น ว่าการทำสำหรับเราอาจจะเป็น? 326 00:16:15,120 --> 00:16:15,590 เพื่อใช่ 327 00:16:15,590 --> 00:16:19,630 มันประกาศตัวแปรที่เรียกว่า i, และก็ให้มันค่าอะไร 328 00:16:19,630 --> 00:16:20,220 0 329 00:16:20,220 --> 00:16:24,280 ดังนั้นมันจึงสร้างตัวแปรที่เรียกว่า i, การจัดเก็บค่า 0 ในนั้น 330 00:16:24,280 --> 00:16:26,420 นั่นคือการเริ่มต้นที่เรียกว่า 331 00:16:26,420 --> 00:16:29,360 >> ทั้งหมดขวาตอนนี้ฉันก่อนที่จะอ้างว่า ว่าสิ่งที่อยู่ตรงกลางครับ 332 00:16:29,360 --> 00:16:31,760 <10, เป็นเงื่อนไข 333 00:16:31,760 --> 00:16:32,730 ดังนั้นสิ่งที่จะทำ? 334 00:16:32,730 --> 00:16:36,560 ดีสำหรับวงทำอะไรเมื่อ โปรแกรมสำหรับวงจะทำงานเป็น 335 00:16:36,560 --> 00:16:41,050 เวลาคอมพิวเตอร์ไหลผ่านทุก วงนี้บนลงล่างข้างบนไป 336 00:16:41,050 --> 00:16:43,740 ด้านล่างเช่นเดียวกับพวกคุณได้เมื่อ นับตัวเองและนั่งลง, 337 00:16:43,740 --> 00:16:47,090 อีกครั้งและอีกครั้งและอีกครั้ง คอมพิวเตอร์ที่เป็นไป 338 00:16:47,090 --> 00:16:48,560 ในการตรวจสอบเงื่อนไขที่ว่า 339 00:16:48,560 --> 00:16:51,140 และถ้า i น้อยกว่า 10, มันจะทำมันอีกครั้ง 340 00:16:51,140 --> 00:16:53,100 ถ้า i น้อยกว่า 10, มันจะทำมันอีกครั้ง 341 00:16:53,100 --> 00:16:55,030 ถ้าฉันมีค่าน้อยกว่าสิบ มันจะทำมันอีกครั้ง 342 00:16:55,030 --> 00:16:57,330 ดังนั้นที่ดูเหมือนว่าจะแสดงให้เห็นว่า หวังว่าฉันมีการเปลี่ยนแปลง 343 00:16:57,330 --> 00:16:59,010 มิฉะนั้นเราจะต้องห่วงอนันต์ 344 00:16:59,010 --> 00:17:02,590 และอันที่จริงผมมีการเปลี่ยนแปลงเพราะ สิ่งสุดท้ายหลังจากอัฒภาคมี 345 00:17:02,590 --> 00:17:05,569 เป็นไวยากรณ์คลุมเครือค่อนข้าง i + + 346 00:17:05,569 --> 00:17:07,630 แต่บรรดาผู้ที่ได้กระทำเช่นนี้ ก่อนที่เพียงแค่หมายความว่า 347 00:17:07,630 --> 00:17:08,609 มากเพียงอะไร 348 00:17:08,609 --> 00:17:09,730 >> นักเรียน: [interposing VOICES] 349 00:17:09,730 --> 00:17:10,740 >> DAVID ลัน: เพิ่ม 1 ถึงผม 350 00:17:10,740 --> 00:17:11,819 เพิ่มขึ้นครับ 351 00:17:11,819 --> 00:17:13,910 ดังนั้นเราจึงเห็นปริศนารอยขีดข่วน ชิ้นที่จริง 352 00:17:13,910 --> 00:17:18,230 มันไม่ได้มีลักษณะเช่น i + + แต่ที่เพียงแค่ วิธีที่ค่อนข้างง่ายเพิ่มขึ้น 353 00:17:18,230 --> 00:17:24,040 ผมค่า 1 เวลาที่คุณทำเช่นนี้ทุกครั้ง 354 00:17:24,040 --> 00:17:26,910 ดังนั้นตัวอักษรที่คุณเริ่มต้นด้วยการ การเริ่มต้นผมถึง 0 355 00:17:26,910 --> 00:17:29,520 จากนั้นคุณตรวจสอบสภาพของคุณ 356 00:17:29,520 --> 00:17:31,070 คือ 0 น้อยกว่า 10? 357 00:17:31,070 --> 00:17:31,730 ใช่ 358 00:17:31,730 --> 00:17:32,910 เราไปผ่านห่วง 359 00:17:32,910 --> 00:17:35,150 >> สิ่งต่อไปที่ผมเรียกร้องของคอมพิวเตอร์ จะทำคือมันจะ 360 00:17:35,150 --> 00:17:35,910 เพื่อเพิ่มผม 361 00:17:35,910 --> 00:17:37,080 ดังนั้นฉันตอนนี้คือ 1 362 00:17:37,080 --> 00:17:37,940 มันจะตรวจสอบสภาพ 363 00:17:37,940 --> 00:17:39,290 1 น้อยกว่า 10? 364 00:17:39,290 --> 00:17:39,930 แน่นอน 365 00:17:39,930 --> 00:17:41,030 ดังนั้นมันไม่อีกครั้ง 366 00:17:41,030 --> 00:17:43,580 แล้วมันเพิ่มขึ้น i + + ถึง 2 367 00:17:43,580 --> 00:17:44,610 คือ 2 น้อยกว่า 10? 368 00:17:44,610 --> 00:17:45,230 ใช่ 369 00:17:45,230 --> 00:17:46,670 และอีกครั้งและอีกครั้งและอีกครั้ง 370 00:17:46,670 --> 00:17:50,070 และในที่สุดก็เพราะ บวก plussing-เราได้รับจาก i เท่ากับ 10 371 00:17:50,070 --> 00:17:51,675 คือ 10 น้อยกว่า 10? 372 00:17:51,675 --> 00:17:52,990 ดีอย่างเห็นได้ชัดไม่ได้ 373 00:17:52,990 --> 00:17:55,320 และนั่นคือจุดที่ ห่วงเพียงหยุด 374 00:17:55,320 --> 00:17:58,320 และถ้าคุณมีรหัสเพิ่มเติมเกี่ยวกับ หน้าจอลงมาด้านล่างเครื่องคอมพิวเตอร์ 375 00:17:58,320 --> 00:18:01,620 วิธีการที่จะเรียกใช้รหัสที่แทน 376 00:18:01,620 --> 00:18:05,380 >> ดังนั้นอีกครั้งแม้ว่านี้เป็นไป ลักษณ์และความรู้สึกแปลก ๆ ที่ 377 00:18:05,380 --> 00:18:07,830 ครั้งแรกอย่างแน่นอนสำหรับบรรดาของคุณที่ ไม่เคยมีโปรแกรมก่อนก็ 378 00:18:07,830 --> 00:18:11,640 แท้จริงลดแนวคิด จะมีอะไรอย่างอื่นมาก 379 00:18:11,640 --> 00:18:14,330 ปริศนาตรงไปตรงมา ชิ้นใน Scratch 380 00:18:14,330 --> 00:18:19,130 >> ทั้งหมดขวาฉันสัญญาว่ามีต้องการ จะ analogs อื่น ๆ ในเกา 381 00:18:19,130 --> 00:18:20,060 มีนี้หนึ่งเกินไป 382 00:18:20,060 --> 00:18:21,700 และเราเห็นว่านี่เป็นครั้งสุดท้ายในเวลาสั้น ๆ 383 00:18:21,700 --> 00:18:23,530 แต่จำไว้ตลอดไป ป้องกันรอยขีดข่วนใน? 384 00:18:23,530 --> 00:18:25,490 มันก็ไม่สิ่งที่ถาวรหรือไม่ 385 00:18:25,490 --> 00:18:27,470 ผมอ้างว่าคุณสามารถใช้ นี้ในทางนี้ 386 00:18:27,470 --> 00:18:29,740 และคุณจริงสามารถดำเนินการนี​​้ ในพวงของวิธีการที่แตกต่างกัน 387 00:18:29,740 --> 00:18:34,260 >> แต่ห่วงในขณะที่เป็นเพียงที่แตกต่างกัน วิธี C ของการแสดงตัวเอง 388 00:18:34,260 --> 00:18:37,080 ในตอนท้ายของวันที่คุณไม่สามารถทำ อะไรกับห่วงขณะที่คุณ 389 00:18:37,080 --> 00:18:38,360 ไม่สามารถใช้สำหรับวง 390 00:18:38,360 --> 00:18:41,430 ดังนั้นพวกเขาในตอนท้ายของ วันเดียวกันตามหน้าที่ 391 00:18:41,430 --> 00:18:43,840 แต่มันช่วยให้คุณสามารถแสดงตัวเอง น้อยแตกต่างกันใน 392 00:18:43,840 --> 00:18:44,850 วิธีการดังต่อไปนี้ 393 00:18:44,850 --> 00:18:49,720 >> ด้วยห่วงขณะที่เป็นสิ่งที่อยู่ใน วงเล็บที่มีการตรวจสอบอีกครั้งและ 394 00:18:49,720 --> 00:18:51,050 ครั้งแล้วครั้งเล่า 395 00:18:51,050 --> 00:18:55,100 และทันทีที่การแสดงออกที่เป็นเท็จ ห่วงแล้วจะหยุดการดำเนินการ, 396 00:18:55,100 --> 00:18:57,890 และเครื่องคอมพิวเตอร์ดำเนินการ ทำงานอะไรก็ตามที่รหัสอื่น ๆ ที่คุณ 397 00:18:57,890 --> 00:18:59,230 มีในไฟล์ของคุณ 398 00:18:59,230 --> 00:19:02,180 >> แต่สิ่งที่น่าสนใจที่นี่ ที่ฉันพิมพ์ตัวอักษรที่แท้จริง 399 00:19:02,180 --> 00:19:06,680 และเป็นความจริงเป็นชนิดของค่าบูลีน, ค่าจริงหรือเท็จ 400 00:19:06,680 --> 00:19:09,750 ดังนั้นอาจจะกลายเป็นความจริงที่เคย เท็จถ้าฉันอย่างแท้จริง 401 00:19:09,750 --> 00:19:11,970 ยากเขียนมันลงไปในโปรแกรมของฉัน? 402 00:19:11,970 --> 00:19:12,470 จึงไม่มี 403 00:19:12,470 --> 00:19:13,730 มันเป็นเรื่องที่แปลก ๆ ที่ฉันทำอย่างนี้ 404 00:19:13,730 --> 00:19:15,190 แต่ความจริงคือความจริง 405 00:19:15,190 --> 00:19:16,320 ไม่มีบวก plussing อะไร 406 00:19:16,320 --> 00:19:17,820 มีไม่ได้ใช้งานของตัวแปรในที่นี่ 407 00:19:17,820 --> 00:19:22,740 ดังนั้นเพราะผมยากเขียนในขณะที่ความจริงนี้ ห่วงเสมอไปที่จะประเมิน 408 00:19:22,740 --> 00:19:24,090 อีกครั้งและอีกครั้งและอีกครั้ง 409 00:19:24,090 --> 00:19:27,660 >> ดังนั้นวิธีการหลายครั้ง hello โลกคือ จะพิมพ์บนหน้าจอ? 410 00:19:27,660 --> 00:19:28,170 ตลอดไป 411 00:19:28,170 --> 00:19:31,980 จำนวนอนันต์ของครั้งจนกระทั่ง ตายแบตเตอรี่หรือบางอื่น ๆ ภายนอก 412 00:19:31,980 --> 00:19:32,730 เหตุการณ์ที่เกิดขึ้น 413 00:19:32,730 --> 00:19:35,880 ดังนั้นนี่คืออาจจะไม่โปรแกรมที่ดีที่สุด ที่จะเขียนเพราะถ้าผู้ใช้ 414 00:19:35,880 --> 00:19:38,660 ไม่สามารถออกจากโปรแกรมของคุณก็ อาจจะไม่ใช่สิ่งที่คุณตั้งใจ 415 00:19:38,660 --> 00:19:41,070 >> แต่บางครั้งโปรแกรมที่ควร มีห่วงอนันต์ 416 00:19:41,070 --> 00:19:44,050 ตัวอย่างเช่นหากคอมพิวเตอร์ของคุณมี นาฬิกาที่มันจะเป็นอย่างแน่นอน 417 00:19:44,050 --> 00:19:48,130 ดีถ้านาฬิกาของคุณมันจะให้ปรับปรุง ตัวเองตลอดไปถึงแม้ว่าครั้งหนึ่งเคยเป็น 418 00:19:48,130 --> 00:19:50,500 ที่สองหรือครั้งหนึ่งนาทีหรือ สิ่งที่ต้องการที่ 419 00:19:50,500 --> 00:19:53,690 ลูปไม่มีที่สิ้นสุดดังนั้นแม้ จะมีสถานที่ของพวกเขา 420 00:19:53,690 --> 00:19:54,360 >> ทั้งหมดขวา 421 00:19:54,360 --> 00:19:55,190 สุดท้ายนี้ 422 00:19:55,190 --> 00:19:57,770 และหนึ่งในนี้เป็นบิตที่แตกต่างกันเล็กน้อย หน้าที่และเราจะกลับมา 423 00:19:57,770 --> 00:19:59,460 นี้อาจจะอยู่ใน Pset 1 424 00:19:59,460 --> 00:20:02,370 แต่มีประเภทของวงอีก เรียกว่าทำในขณะที่ห่วง 425 00:20:02,370 --> 00:20:07,100 และความแตกต่างระหว่างเฉพาะที่นี่ ทำในขณะที่ห่วงและพูดขณะที่ห่วง, 426 00:20:07,100 --> 00:20:11,120 คือสภาพที่มีการตรวจสอบไม่ได้ ก่อนที่คุณจะรันโค้ด แต่หลังจากที่ 427 00:20:11,120 --> 00:20:12,080 คุณรันโค้ด 428 00:20:12,080 --> 00:20:15,380 ดังนั้นที่ด้านบนในขณะที่ ห่วงขณะที่ทำในขณะที่ 429 00:20:15,380 --> 00:20:16,560 มันจะตรวจสอบที่ด้านล่าง 430 00:20:16,560 --> 00:20:21,370 >> และนี้ก็หมายความว่าห่วงขณะ โดยปกติจะดำเนินการอีกครั้ง 431 00:20:21,370 --> 00:20:24,630 หรือเวลาน้อยกว่าในขณะที่ห่วง? 432 00:20:24,630 --> 00:20:30,810 ครั้งที่อาจเกิดขึ้นเพราะทำ วงในขณะที่เห็นได้ชัดว่าทำเช่นนี้ 433 00:20:30,810 --> 00:20:34,600 เพียง แต่หลังจากที่ชี้ให้คุณตรวจสอบ ถ้าสภาพภายในของ 434 00:20:34,600 --> 00:20:35,980 วงเล็บเป็นความจริง 435 00:20:35,980 --> 00:20:37,940 >> ดังนั้นเราจะเห็นสิ่งนี้อีกครั้ง อาจจะอยู่ใน Pset 1 436 00:20:37,940 --> 00:20:41,150 หากคุณเคยต้องการที่จะทำบางสิ่งบางอย่างที่ อย่างน้อยหนึ่งครั้งและจากนั้นอาจจะมีมากขึ้น 437 00:20:41,150 --> 00:20:43,350 ครั้งนี้เป็นสิ่งที่ดี สร้างที่จะใช้ 438 00:20:43,350 --> 00:20:46,970 แต่ห่วงขณะตรงกันข้ามจะ ตรวจสอบสภาพเป็นครั้งแรก 439 00:20:46,970 --> 00:20:50,660 และที่มันคือวงที่อยู่ใน C ทำ ในขณะที่ในขณะที่และลูป 440 00:20:50,660 --> 00:20:54,700 และอีกครั้งที่พวกเขา map สวยอย่างกลับ เพื่อ Scratch ยกเว้นหนึ่งนี้ไม่ได้ 441 00:20:54,700 --> 00:20:57,350 ค่อนข้างมีอนาล็อกเดียวกันใน Scratch 442 00:20:57,350 --> 00:20:58,880 >> ด้วยวิธีการเกี่ยวกับตอนนี้ตัวแปร 443 00:20:58,880 --> 00:21:02,600 ดังนั้นนี่คือวิธีที่ผมประกาศตัวแปร syntactically วันอื่น ๆ 444 00:21:02,600 --> 00:21:06,440 ผมมี int ซึ่งผมอ้างว่า เป็นจำนวนเต็ม 445 00:21:06,440 --> 00:21:09,690 จากนั้นผมก็มีเคาน์เตอร์ที่เรียกว่าตัวแปร แล้วอัฒภาค 446 00:21:09,690 --> 00:21:11,070 ดังนั้นบรรทัดของรหัสการทำเช่นนี้คืออะไร? 447 00:21:11,070 --> 00:21:14,540 นี่คือค่อนข้างง่ายประกาศ ตัวแปร - 448 00:21:14,540 --> 00:21:17,940 นั่นคือขอให้คอมพิวเตอร์ให้ฉัน หน่วยความจำบางอย่างให้ฉันบางบิต - ใน 449 00:21:17,940 --> 00:21:19,450 ซึ่งผมสามารถเก็บอะไร 450 00:21:19,450 --> 00:21:20,300 int 451 00:21:20,300 --> 00:21:23,570 และอัฒภาคเพียงหมายถึง จุดสิ้นสุดของบรรทัดของรหัส 452 00:21:23,570 --> 00:21:25,500 >> ตอนนี้บรรทัดที่สองน่าจะเป็น ที่เข้าใจได้สวย 453 00:21:25,500 --> 00:21:29,710 เคาน์เตอร์ = 0 คืออะไร; ทำอะไร 454 00:21:29,710 --> 00:21:31,690 มันกำหนด 0 ที่จะตอบโต้ 455 00:21:31,690 --> 00:21:33,470 และดังนั้นนี่คือสิ่งอื่น ๆ ที่เล็ก ๆ น้อย ๆ ที่น่ารำคาญ 456 00:21:33,470 --> 00:21:34,540 เมื่อเทียบกับพีชคณิตพูด, 457 00:21:34,540 --> 00:21:39,110 ขณะที่ในพีชคณิตเครื่องหมายเท่ากับหมายความว่า เท่าเทียมกันที่นี่ใน C เท่ากับ 458 00:21:39,110 --> 00:21:40,470 หมายความว่าสัญญาณที่ได้รับมอบหมาย 459 00:21:40,470 --> 00:21:45,380 ดังนั้นจึงหมายถึงการวางสิ่งที่อยู่บนขวา เป็นสิ่งที่อยู่บนด้านซ้าย 460 00:21:45,380 --> 00:21:49,030 และเราจะเห็นสัญลักษณ์อื่นเท่ากับ เท่ากับเมื่อเราต้องการที่จะทดสอบจริง 461 00:21:49,030 --> 00:21:50,570 สำหรับที่มีคุณภาพค่อนข้าง annoyingly 462 00:21:50,570 --> 00:21:52,590 >> แต่นี้เป็นเพียงเล็กน้อยที่ไม่มีประสิทธิภาพ 463 00:21:52,590 --> 00:21:55,090 มันเป็นชนิดที่น่ารำคาญที่ฉันมี การประกาศตัวแปรและ 464 00:21:55,090 --> 00:21:56,110 แล้วจะให้ค่า 465 00:21:56,110 --> 00:21:59,380 ดังนั้น C จริงจะช่วยให้เราลดความซับซ้อนนี้ และเพียงแค่ทำมันทั้งหมดในครั้งเดียว 466 00:21:59,380 --> 00:22:01,330 คุณสามารถประกาศตัวแปร ด้านซ้าย 467 00:22:01,330 --> 00:22:04,590 คุณยังสามารถทำเมื่อได้รับมอบหมาย ขวาโดยการใส่เครื่องหมายเท่ากับว่าใน 468 00:22:04,590 --> 00:22:05,030 กลาง 469 00:22:05,030 --> 00:22:08,740 ดังนั้นในตอนท้ายของวันที่สองเหล่านี้ เทียบเท่า แต่อันนี้ตรงไปตรงมา 470 00:22:08,740 --> 00:22:11,840 น่าจะเป็นนิสัยดีกว่าที่จะได้รับเป็น เพียงเพราะมันเป็นเพียงเล็กน้อยน้อย 471 00:22:11,840 --> 00:22:15,040 รหัสมันเป็นเพียงเล็กน้อยง่ายต่อการอ่าน และมันก็กระชับขึ้น 472 00:22:15,040 --> 00:22:17,470 รหัสของคุณเพื่อที่จะพูด 473 00:22:17,470 --> 00:22:22,120 >> คำถามใด ๆ ป่านนี้เมื่อลูป, เมื่อตัวแปรเงื่อนไขบน 474 00:22:22,120 --> 00:22:27,001 บูลีนทั้งในทางเทคนิค หรือแนวคิด? 475 00:22:27,001 --> 00:22:28,010 ทั้งหมดขวา 476 00:22:28,010 --> 00:22:30,690 ดังนั้นตอนนี้ต่อไปจะได้รับ เล็ก ๆ น้อย ๆ ที่น่าสนใจมาก 477 00:22:30,690 --> 00:22:34,790 และนี่คือตัวอย่างที่ผมนำขึ้นล่าสุด เวลานั้นเพียงแค่แมเช่นรอยขีดข่วน 478 00:22:34,790 --> 00:22:35,820 ไป C. 479 00:22:35,820 --> 00:22:36,580 >> ดังนั้นเป็นหน้าที่ 480 00:22:36,580 --> 00:22:38,110 ในแง่ของคนธรรมดาเป็นหน้าที่อะไร 481 00:22:38,110 --> 00:22:42,900 482 00:22:42,900 --> 00:22:44,350 ก็จะโดดเด่นยิ่งขึ้นกับคำตอบของคุณ 483 00:22:44,350 --> 00:22:45,020 ฟังก์ชั่นคืออะไร? 484 00:22:45,020 --> 00:22:46,320 >> นักศึกษาไม่บางสิ่งบางอย่าง 485 00:22:46,320 --> 00:22:46,780 >> DAVID ลัน: อะไรที่? 486 00:22:46,780 --> 00:22:48,000 >> นักศึกษาไม่บางสิ่งบางอย่าง 487 00:22:48,000 --> 00:22:48,710 >> DAVID ลัน: ไม่บางสิ่งบางอย่าง 488 00:22:48,710 --> 00:22:49,000 ตกลง 489 00:22:49,000 --> 00:22:49,590 เราจะเริ่มต้นมี 490 00:22:49,590 --> 00:22:51,270 ดังนั้นเป็นหน้าที่ทำอะไร 491 00:22:51,270 --> 00:22:55,160 ดังนั้นจึงเป็นชิ้นส่วนของรหัสที่ ดำเนินการเป็นหลักที่อื่น ๆ ว่า 492 00:22:55,160 --> 00:22:56,620 แน่นอนบางสิ่งบางอย่างไม่ได้ 493 00:22:56,620 --> 00:23:00,180 ตอนนี้ที่น่าสนใจเกี่ยวกับการทำงานในสิ่งที่ ก็คือว่ามันสามารถใช้การป้อนข้อมูล 494 00:23:00,180 --> 00:23:02,710 และจะสามารถผลิตออก 495 00:23:02,710 --> 00:23:05,090 และขอใช้จริง ดูที่นี้ 496 00:23:05,090 --> 00:23:09,030 >> ดังนั้นคนที่อยู่เบื้องหลังม่าน ได้รับการพิจารณาช่วงเวลาที่ผ่านมา 497 00:23:09,030 --> 00:23:10,320 ที่นี่เรามีตาราง 498 00:23:10,320 --> 00:23:13,010 แต่คิดว่านี้จริง เป็นกล่องใหญ่ 499 00:23:13,010 --> 00:23:14,940 ดังนั้นนี่คือสิ่งที่เรียกว่ากล่องดำ 500 00:23:14,940 --> 00:23:19,800 และโดยทั่วไปในการออกแบบในคอมพิวเตอร์ วิทยาศาสตร์กล่องดำเพียงหมายถึง 501 00:23:19,800 --> 00:23:22,510 ชิ้นส่วนของฟังก์ชันการทำงานที่ใครบางคน ได้ดำเนินการและที่คุณทำไม่ได้ 502 00:23:22,510 --> 00:23:26,140 จำเป็นต้องรู้หรือวิธีการดูแลมัน ดำเนินการภายใต้ประทุน 503 00:23:26,140 --> 00:23:28,960 คุณเพียงแค่สนใจว่านี้กล่องดำ, ซึ่งตอนนี้เราจะเริ่มต้นเรียก 504 00:23:28,960 --> 00:23:30,730 ฟังก์ชั่นการทำบางสิ่ง 505 00:23:30,730 --> 00:23:34,710 >> ดังนั้นสำหรับตัวอย่างเช่นถ้ากล่องดำนี้ เวทีที่นี่แสดงให้เห็นถึง printf, 506 00:23:34,710 --> 00:23:38,040 ฟังก์ชั่น, ฉันรู้จากตัวอย่างก่อนหน้า ที่ printf จะใช้เวลาหนึ่งหรือมากกว่า 507 00:23:38,040 --> 00:23:40,910 ข้อโต้แย้งและเป็นครั้งแรกของคนเหล่านั้น ข้อโต้แย้งที่ควรจะเป็นสตริงเช่น 508 00:23:40,910 --> 00:23:44,780 "hello, world." ดีถ้าผมเป็นคน การเขียนโปรแกรมและฉันต้องการ 509 00:23:44,780 --> 00:23:50,460 ที่จะใช้ printf, I, เช่นอาจ ใช้ชิ้นส่วนของกระดาษที่ว่างเปล่าที่นี่และ 510 00:23:50,460 --> 00:23:55,060 เครื่องหมายสีดำและเขียนบนมัน - 511 00:23:55,060 --> 00:23:56,580 ผมสะกดผิด "โลก" - 512 00:23:56,580 --> 00:23:59,560 H-E-L-L-O 513 00:23:59,560 --> 00:24:04,220 >> ดังนั้นฉันจะใช้เครื่องหมายสีดำของฉันและฉันจะ เขียนเป็นใหญ่และอ่านง่ายเท่าที่จะทำได้เมื่อ 514 00:24:04,220 --> 00:24:07,260 งานชิ้นนี้ของกระดาษ, "Hello World," และ ตอนนี้ฉันเรียกร้องนี้เป็นข้อโต้แย้งของฉัน 515 00:24:07,260 --> 00:24:09,740 นี้เป็นสตริงแทนด้วย ชิ้นส่วนของกระดาษสีขาว 516 00:24:09,740 --> 00:24:13,030 และใส่ของฉันตอนนี้ในการทำงาน printf เป็นไปได้นี้ 517 00:24:13,030 --> 00:24:18,250 ดังนั้นฉันโทร printf ผ่าน อาร์กิวเมนต์เป็น input ไปว่า 518 00:24:18,250 --> 00:24:22,110 519 00:24:22,110 --> 00:24:26,740 >> และตอนนี้ผมไม่ทราบว่าคนที่ เขียน printf มันปีที่ผ่านมา แต่ 520 00:24:26,740 --> 00:24:31,110 ฉันจะรู้จากเอกสารประกอบที่ จุดประสงค์ของมันในชีวิตคือการที่จะพิมพ์สิ่งที่ฉัน 521 00:24:31,110 --> 00:24:34,410 ให้มันเป็น input 522 00:24:34,410 --> 00:24:40,630 ดังนั้นแม้ว่าการดำเนินงานนี้ เป็นถิ่นฉัน 523 00:24:40,630 --> 00:24:44,170 ภายใต้ฝากระโปรงตอนนี้ ฉันเห็นโอ้จะทำ 524 00:24:44,170 --> 00:24:45,740 มันมีบางสิ่งบางอย่างที่พิมพ์ บนหน้าจอ 525 00:24:45,740 --> 00:24:49,070 และตอนนี้การควบคุมของโปรแกรมถ้ามี เป็นบรรทัดที่มากขึ้นของรหัสจะ 526 00:24:49,070 --> 00:24:51,070 ตอนนี้กลับมาให้ฉัน 527 00:24:51,070 --> 00:24:52,290 และเพื่อให้ความจริงที่ว่าใน Colton - 528 00:24:52,290 --> 00:24:55,370 อวยพรหัวใจของเขาหลบซ่อนตัวอยู่ที่นี่ภายใต้ ตารางในด้านหน้าของทุกท่าน - 529 00:24:55,370 --> 00:24:59,530 คือเจตนาในการที่ผมไม่ทราบ และฉันไม่สนใจว่าเป็น printf 530 00:24:59,530 --> 00:25:00,100 การดำเนินการ 531 00:25:00,100 --> 00:25:03,390 ผมเพิ่งรู้อีกครั้งจากนั้น เอกสารสิ่งที่มันไม่และวิธีการที่ฉัน 532 00:25:03,390 --> 00:25:05,040 ผมควรจะใช้มัน 533 00:25:05,040 --> 00:25:09,140 >> ตอนนี้จำได้ว่า printf จะได้รับ เล็ก ๆ น้อย ๆ ที่ซับซ้อนมากขึ้น 534 00:25:09,140 --> 00:25:12,220 อีกครั้งเราเพียงแค่พูดคุยเกี่ยวกับ เทียบเท่าของบล็อกพูดของรอยขีดข่วน 535 00:25:12,220 --> 00:25:14,230 แต่ฉันยังทำแบบนี้เป็นครั้งสุดท้าย 536 00:25:14,230 --> 00:25:17,270 ฉันต้องการที่จะทำให้โปรแกรมของฉันสวัสดี เล็ก ๆ น้อย ๆ แบบไดนามิกและไม่ยากเพียงแค่ 537 00:25:17,270 --> 00:25:19,740 รหัสบางอย่างเช่น "โลก" และ แน่นอนสิ่งรหัสไม่ยาก 538 00:25:19,740 --> 00:25:22,520 โดยพลการเช่น D--V-I-D ลงในโปรแกรม 539 00:25:22,520 --> 00:25:27,510 ผมอยากจะขอให้ผู้ใช้ของเขาหรือเธอ ชื่อและจากนั้นทำอะไรกับ 540 00:25:27,510 --> 00:25:29,720 สตริงที่พวกเขาให้ความเห็นว่า 541 00:25:29,720 --> 00:25:32,690 >> ดังนั้นจึงมีบางสิ่งบางอย่างเล็ก ๆ น้อย ๆ ที่แตกต่างกัน ที่นี่ printf ช่วงเวลาที่ผ่านมา 542 00:25:32,690 --> 00:25:35,860 ไม่จริงทำอะไรบางอย่าง แต่ ไม่ได้กลับมาให้ฉัน 543 00:25:35,860 --> 00:25:36,020 ใช่ไหม? 544 00:25:36,020 --> 00:25:38,910 การตัดสินใจที่ไม่ได้อะไรเลยมือฉัน กลับชิ้นส่วนของกระดาษที่ไม่มี 545 00:25:38,910 --> 00:25:40,320 มีเพียงผลข้างเคียงคือ 546 00:25:40,320 --> 00:25:44,510 ให้ "hello โลก" ของฉันเป็น อาร์กิวเมนต์ส่งผลให้การตัดสินใจใน 547 00:25:44,510 --> 00:25:48,420 ผลข้างเคียงของคำบางคำ, ปรากฏบนหน้าจอ 548 00:25:48,420 --> 00:25:51,350 >> GetString แต่เป็นเล็ก ๆ น้อย ๆ ต่าง GetString ยังเป็น 549 00:25:51,350 --> 00:25:54,590 ทำงาน แต่ก็จะส่งกลับค่าบางอย่าง 550 00:25:54,590 --> 00:25:56,370 มันไม่เพียงแค่มี ผลข้างเคียงของความงาม 551 00:25:56,370 --> 00:26:00,230 อันที่จริงมันทำให้ฉันคน เรียกหรือใช้ฟังก์ชั่น, 552 00:26:00,230 --> 00:26:01,320 กลับบางสิ่งบางอย่าง 553 00:26:01,320 --> 00:26:05,740 ดังนั้นในกรณีนี้คือ GetString เรียกว่ามี GetString เปิด 554 00:26:05,740 --> 00:26:07,510 วงเล็บปิดวงเล็บ 555 00:26:07,510 --> 00:26:11,370 ไม่ GetString จึงต้องใช้เวลา ข้อโต้แย้งใด ๆ หรือการป้อนข้อมูล? 556 00:26:11,370 --> 00:26:12,340 ไม่มันดูเหมือนจะไม่ 557 00:26:12,340 --> 00:26:14,460 โดยมีวัตถุประสงค์ในชีวิตคือ เพียงเพื่อให้ได้สตริง 558 00:26:14,460 --> 00:26:16,910 มันต้องไม่มีรายละเอียดมากไปกว่านั้น 559 00:26:16,910 --> 00:26:20,430 เพื่อให้ฉันไปข้างหน้าและแกล้งทำเป็นว่า, อีกครั้งนี้กล่องดำไม่ได้เป็นพริทฟ์ 560 00:26:20,430 --> 00:26:25,160 แต่ GetString และให้ฉันคน การเขียนโปรแกรมนี้โทรหรือใช้ 561 00:26:25,160 --> 00:26:29,720 getString โดยเพียงแค่การเขียน G-E-T-S-T-R-I-N-G เปิดวงเล็บใกล้ 562 00:26:29,720 --> 00:26:32,170 วงเล็บ, GetString 563 00:26:32,170 --> 00:26:36,920 >> ตอนนี้ฉันมีความคิดวิธีการที่พนักงาน CS50 ดำเนินการ GetString แต่ฉันรู้ว่า 564 00:26:36,920 --> 00:26:41,240 ถ้ารอนานพอที่จะทำดี สิ่งที่อยู่ใต้ฝากระโปรงที่อาจใช้ 565 00:26:41,240 --> 00:26:44,940 ตัวแปรบางอย่างอาจจะใช้บางส่วน เงื่อนไขอาจจะใช้ลูปบาง 566 00:26:44,940 --> 00:26:48,170 อาจจะใช้ฟังก์ชั่นบางอย่าง อาจจะใช้ - 567 00:26:48,170 --> 00:26:52,290 เพียงแค่พยายามที่จะคอก - อาจใช้ คุณลักษณะบางอย่างของโปรแกรมอื่น ๆ 568 00:26:52,290 --> 00:26:55,350 แต่ถ้ารอนานพอ - ในความเป็นจริง ในคอมพิวเตอร์นี้เกิดขึ้น 569 00:26:55,350 --> 00:26:56,270 เร็วสุด - 570 00:26:56,270 --> 00:26:59,910 ถ้ารอนานพอฟังก์ชั่นนี้ GetString จะรับสาย 571 00:26:59,910 --> 00:27:04,060 จากผู้ใช้ที่ถูกสันนิษฐานว่าการพิมพ์ มันออกมาบนแป้นพิมพ์ของพวกเขาและ 572 00:27:04,060 --> 00:27:08,090 แล้วเมื่อคุณ GetString จะกระทำได้ อักขระเหล่านั้นจากผู้ใช้ 573 00:27:08,090 --> 00:27:14,080 และเก็บไว้เป็นสตริงที่ ฟังก์ชั่น, GetString, เป็นไปได้ 574 00:27:14,080 --> 00:27:17,990 พร้อมสำหรับฉันเอาท์พุทที่ผมบาง จะไปเรียกโดยวิธีการ 575 00:27:17,990 --> 00:27:19,470 ดำเนินการมอบหมาย 576 00:27:19,470 --> 00:27:25,390 >> และถ้าเราไปจริงเข้าออก ที่นี่มี Obosi ไม่เห็นแก่ตัว 577 00:27:25,390 --> 00:27:29,900 เข้าร่วมโดยไม่ทราบว่าในนี้ ความก้าวหน้าโดยการเขียนชื่อของเขาลงบนนี้ 578 00:27:29,900 --> 00:27:33,100 ตัวแปรซึ่งเป็นตัวแทนของ สตริง 579 00:27:33,100 --> 00:27:35,640 ขณะนี้ผู้ประกอบการที่ได้รับมอบหมายซึ่งหมายความว่าแม้ แม้เรื่องนี้อาจจะรู้สึกเล็ก ๆ น้อย ๆ 580 00:27:35,640 --> 00:27:38,790 ซ้ำซ้อนที่จริงผมจะต้อง เพื่อให้สำเนาของตัวเองของนี้ 581 00:27:38,790 --> 00:27:40,700 เพราะในมือซ้าย ด้าน - ขออภัย - 582 00:27:40,700 --> 00:27:45,760 สังเกตเห็นว่าฉันเป็นหลักมีสาย ชื่อบนด้านซ้ายมือ 583 00:27:45,760 --> 00:27:48,280 ดังนั้นฉันก็จะทำ สำเนาของตัวเองของฉันนี้ 584 00:27:48,280 --> 00:27:50,990 และนี่คือบิตของการโกหกสีขาว, เพราะเราจะเห็นในหรือสองสัปดาห์ 585 00:27:50,990 --> 00:27:54,100 เวลานั้นสตริงไม่จริง สิ่งที่พวกเขาดูเหมือนจะเป็น 586 00:27:54,100 --> 00:27:56,700 >> แต่ตอนนี้ที่นี่เป็นค่าตอบแทน 587 00:27:56,700 --> 00:28:00,160 ที่นี่สำเนาของตัวเองของมันเป็นหลังจากที่ ใช้ประกอบการมอบหมาย 588 00:28:00,160 --> 00:28:01,790 และตอนนี้สิ่งที่ฉันต้องการจะทำต่อไปหรือไม่ 589 00:28:01,790 --> 00:28:04,080 ขณะนี้เรามีสอง สองบรรทัดของรหัส 590 00:28:04,080 --> 00:28:05,640 ดังนั้นตอนนี้ผมต้องการเรียก printf 591 00:28:05,640 --> 00:28:08,500 Let 's หลอกว่าตอนนี้สีดำ กล่องกลับมาอีกครั้งที่จะเป็น 592 00:28:08,500 --> 00:28:10,210 printf และไม่ GetString 593 00:28:10,210 --> 00:28:12,200 >> printf เวลานี้เป็นไป ใช้อาร์กิวเมนต์หลายวิธี? 594 00:28:12,200 --> 00:28:14,890 595 00:28:14,890 --> 00:28:16,770 ดังนั้นมองว่ามันเหมือนสอง 596 00:28:16,770 --> 00:28:18,860 มีสองเครื่องหมายจุลภาคในมี แต่ หนึ่งในเครื่องหมายจุลภาคเหล่านั้นก็ 597 00:28:18,860 --> 00:28:20,220 ภายในของคำพูด 598 00:28:20,220 --> 00:28:23,190 ดังนั้นอาร์กิวเมนต์แรกเป็นอักษร เป็นไปได้นี้ 599 00:28:23,190 --> 00:28:31,850 H-E-L-L-O เครื่องหมายจุลภาคเปอร์เซ็นต์ s, เครื่องหมายทับขวา n- 600 00:28:31,850 --> 00:28:36,560 และตอนนี้ฉันให้ไม่ได้หนึ่งอาร์กิวเมนต์ แต่สองข้อโต้แย้ง printf 601 00:28:36,560 --> 00:28:39,530 >> และสิ่งที่ควร printf จะทำอย่างไรกับ ทั้งสองปัจจัยการผลิตหลังจากที่ผมผ่านพวกเขาใน 602 00:28:39,530 --> 00:28:42,050 เป็นอาร์กิวเมนต์? 603 00:28:42,050 --> 00:28:45,360 ก็ควรที่จะใช้คนที่สองของ พวกเขาซึ่งผมเรียกชื่อดังนั้น 604 00:28:45,360 --> 00:28:48,660 ชิ้นที่สองของกระดาษที่ผมเขียนออก ช่วงเวลาที่ผ่านมาถูกเรียกชื่อ 605 00:28:48,660 --> 00:28:53,550 มันจะเสียบของค่าภายใน ของตัวแปรที่เป็นตัวยึดว่า 606 00:28:53,550 --> 00:28:58,310 % s ดังนั้นอีกครั้งในเวลาเพียงสักครู่ของ เวลาเราจะเห็นผลข้างเคียงของ 607 00:28:58,310 --> 00:29:04,180 มีการเรียก printf โดยตอนนี้เรา มองไม่เห็น "hello, world" แต่ "สวัสดี, 608 00:29:04,180 --> 00:29:04,710 Obosi. " 609 00:29:04,710 --> 00:29:08,730 >> ดังนั้นรอบใหญ่ของเสียงปรบมือทั้งสอง อาสาสมัครของเราเพียงคนเดียวที่รู้ 610 00:29:08,730 --> 00:29:12,010 นี้จะเกิดขึ้น 611 00:29:12,010 --> 00:29:12,990 ทั้งหมดขวา 612 00:29:12,990 --> 00:29:16,480 ดังนั้นบางทีง่ายเหมือนที่เป็น แน่นอนถ้าคุณคุ้นเคย 613 00:29:16,480 --> 00:29:20,190 ด้วยเช่นหวังว่าคุณจะไม่เคย ลืมว่าโดยเฉพาะอย่างยิ่งภาพว่า 614 00:29:20,190 --> 00:29:21,220 ฟังก์ชั่นการทำงาน 615 00:29:21,220 --> 00:29:23,000 >> จึงมีมากกว่าเพียงแค่ getString ของ 616 00:29:23,000 --> 00:29:26,020 ภายในของ CS50 ห้องสมุดมีอะไร ทั้งกลุ่มของฟังก์ชั่นทั้งหมดที่ 617 00:29:26,020 --> 00:29:29,510 เป็นราคาทุนเพียงเพื่อให้ชัดเจน ที่เราเขียนฟังก์ชั่นเหล่านี้ 618 00:29:29,510 --> 00:29:33,610 โดยปกติใน C เกือบทุกอื่น ๆ ฟังก์ชั่นที่คุณจะใช้เป็นตัวพิมพ์เล็ก 619 00:29:33,610 --> 00:29:36,190 แต่เราจงใจใช้ตัวอักษรทุน เพียงเพื่อให้ชัดเจนว่าสิ่งเหล่านี้ 620 00:29:36,190 --> 00:29:39,880 มีล้อการฝึกอบรมของแปลกที่เราจะ ใช้เพียงไม่กี่สัปดาห์ที่ 621 00:29:39,880 --> 00:29:42,890 ลดความซับซ้อนของขั้นตอนการรับ ข้อมูลจากผู้ใช้ 622 00:29:42,890 --> 00:29:46,740 >> ห้องสมุด CS50 ไม่ได้ทำอะไร ที่คุณเองไม่สามารถทำโดย 623 00:29:46,740 --> 00:29:50,230 เพียงแค่ใช้รหัส C จาก ตำราโบราณแซมป์ 624 00:29:50,230 --> 00:29:53,310 แต่อีกครั้งที่เราใช้ในการฝึกอบรมพวกเขาเป็น ล้อของแปลกสำหรับเพียงไม่กี่ 625 00:29:53,310 --> 00:29:57,250 สัปดาห์เพื่อให้เราสามารถกำจัด ความซับซ้อนที่คุณเร็ว ๆ นี้จะเข้าใจ 626 00:29:57,250 --> 00:30:00,460 ตัวเองในการทำสิ่งที่เป็น ค่อนข้างตรงไปตรงมาได้ 627 00:30:00,460 --> 00:30:02,080 ข้อมูลจากผู้ใช้ 628 00:30:02,080 --> 00:30:05,540 >> ดังนั้นรู้ว่าคุณจะสามารถเข้าถึง เพื่อ getchar, GetDouble - 629 00:30:05,540 --> 00:30:06,050 เป็นสองเท่า 630 00:30:06,050 --> 00:30:07,050 What's - แล้ว GetFloat 631 00:30:07,050 --> 00:30:07,600 ลอยคืออะไร? 632 00:30:07,600 --> 00:30:09,382 เริ่มต้นให้มี 633 00:30:09,382 --> 00:30:10,600 >> ลูกศิษย์: [ได้ยิน] 634 00:30:10,600 --> 00:30:10,790 >> DAVID ลัน: ใช่ 635 00:30:10,790 --> 00:30:12,120 มันเป็นตัวเลขที่มีจุดทศนิยม 636 00:30:12,120 --> 00:30:15,930 ดังนั้นในขณะที่ int เป็นจำนวนเต็มซึ่ง เพียงแค่มีจำนวน 0 ถึง 9 คือ 637 00:30:15,930 --> 00:30:18,940 บางหมายเลขซ้ำดังกล่าว ลอยเป็นสิ่งที่ 638 00:30:18,940 --> 00:30:20,100 มีจุดทศนิยม 639 00:30:20,100 --> 00:30:26,090 และสองในขณะเดียวกันก็ยังเป็น จำนวนมีจุดทศนิยม แต่ไม่มาก 640 00:30:26,090 --> 00:30:28,160 หลังจากที่ตัวเลขทศนิยม จุดที่อาจเกิดขึ้น 641 00:30:28,160 --> 00:30:30,040 >> ดังนั้นเราจะได้รับกลับไปที่นี้นานก่อนที่จะ 642 00:30:30,040 --> 00:30:34,560 แต่โดยทั่วไปแล้วแต่ละประเภทนี้ ข้อมูลแต่ละประเภทเหล่านี้ของตัวแปร 643 00:30:34,560 --> 00:30:39,380 ที่ห้องสมุดเช่นเราสามารถกลับไปที่ คุณใช้ตัวเลขที่แตกต่างกันของบิต 644 00:30:39,380 --> 00:30:40,290 เก็บข้อมูล 645 00:30:40,290 --> 00:30:43,910 โดยปกติ Char ซึ่งก็หมายความ ตัวละครตัวหนึ่งใช้ 8 บิต 646 00:30:43,910 --> 00:30:47,490 และที่จริงสอดคล้องกับของเรา ไบต์ของอาสาสมัครสัปดาห์สุดท้ายที่ 647 00:30:47,490 --> 00:30:50,410 ขึ้นมาและเป็นตัวแทนหนึ่ง อักขระ ASCII เวลา 648 00:30:50,410 --> 00:30:51,850 ดังนั้น Char คือ 8 บิต 649 00:30:51,850 --> 00:30:54,430 >> ลอยที่จะเกิดขึ้น 32 บิตโดยทั่วไป 650 00:30:54,430 --> 00:30:59,230 และคู่ที่คุณอาจคิดว่าเป็น จริง 64 บิตซึ่งเป็นเพียงมากขึ้น 651 00:30:59,230 --> 00:31:01,360 ซึ่งหมายความว่าคุณสามารถมีขนาดใหญ่ ตัวเลขหรือความแม่นยำมากขึ้น 652 00:31:01,360 --> 00:31:03,000 แต่อีกครั้งเพิ่มเติมว่าเวลาอื่น 653 00:31:03,000 --> 00:31:06,550 GetLongLong ขณะเดียวกันแม้ว่าจะโง่ ชื่อเป็นจริงเพียง 654 00:31:06,550 --> 00:31:10,770 จำนวนเต็มที่สองครั้งใหญ่เป็นสองเท่า ยาวที่อาจเกิดขึ้นเป็นปกติ 655 00:31:10,770 --> 00:31:12,940 จำนวนเต็ม 64 บิตแทนจาก 32 656 00:31:12,940 --> 00:31:14,560 และ getString เราได้รับใช้ 657 00:31:14,560 --> 00:31:18,870 >> แต่ปรากฎออกมาใน CS50 ห้องสมุด, ซึ่งดำเนินการในขณะที่เราจะเห็นใน 658 00:31:18,870 --> 00:31:23,560 รูปแบบของแฟ้มที่สองซึ่งหนึ่งในนั้น เรียกว่า cs50.h มีอีกสองคน 659 00:31:23,560 --> 00:31:24,770 ชนิดข้อมูลในนั้น 660 00:31:24,770 --> 00:31:29,700 บูลีนไม่ได้อยู่ใน C. คุณสามารถ จำลองพวกเขาโดยการใช้เพียง 0 และ 1 661 00:31:29,700 --> 00:31:30,850 ตลอดโปรแกรมของคุณ 662 00:31:30,850 --> 00:31:35,500 แต่เราใน CS50 ห้องสมุดได้สร้าง สัญลักษณ์ "ของจริง" และ "เท็จ" 663 00:31:35,500 --> 00:31:38,580 เพื่อเป็นตัวแทนของ 1 และ 0 เพื่อให้คุณไม่ได้ มีบางสิ่งบางอย่างยากรหัส 664 00:31:38,580 --> 00:31:39,810 อักษรเช่น 1 และ 0 665 00:31:39,810 --> 00:31:40,980 แต่เราจะเห็นเหล่านั้นอีกครั้ง 666 00:31:40,980 --> 00:31:42,330 >> สายเกินไปไม่อยู่ 667 00:31:42,330 --> 00:31:44,520 และที่ว่าทำไมผมกล่าวถึงมัน บิตของการโกหกสีขาวสำหรับตอนนี้ 668 00:31:44,520 --> 00:31:46,660 แต่เราจะปอกเปลือกกลับว่า ชั้นก่อนที่จะยาว 669 00:31:46,660 --> 00:31:49,540 แต่ตอนนี้เป็นสตริง ลำดับของตัวอักษร 670 00:31:49,540 --> 00:31:51,790 >> ในขณะเดียวกันใน C คุณแน่นอน มีข้อมูลที่แตกต่างกันประเภท 671 00:31:51,790 --> 00:31:53,200 แจ้งให้ทราบเหล่านี้เป็นตัวพิมพ์เล็ก 672 00:31:53,200 --> 00:31:56,960 ดังนั้นฟังก์ชั่นที่คุณเห็นช่วงเวลาที่ผ่านมา มีฟังก์ชั่นที่เขียนโดย CS50 ว่า 673 00:31:56,960 --> 00:32:02,310 จะกลับไปที่คุณค่าที่อยู่ เป็นหนึ่งในประเภทเหล่านี้ 674 00:32:02,310 --> 00:32:06,730 >> แผ่นโกงคู่เพียงเพื่อปลูก เมล็ดพันธุ์ที่นี่ printf ไม่เพียง แต่ 675 00:32:06,730 --> 00:32:08,600 ใช้% s เป็นตัวยึด 676 00:32:08,600 --> 00:32:13,490 มันต้องใช้เวลา% d สำหรับจำนวนเต็มทศนิยม หรือ i% จะทำงานได้เป็นอย่างดี 677 00:32:13,490 --> 00:32:19,450 % f ลอยค่าจุด % c คือ ถ่านถ้าคุณต้องการเพียงแค่เสียบหนึ่ง 678 00:32:19,450 --> 00:32:23,510 ตัวละครที่เป็นสตริงที่จัดรูปแบบ เหมือนอย่างที่เราได้รับการทำคุณสามารถใช้% c 679 00:32:23,510 --> 00:32:28,490 >> และแล้วค่อนข้าง annoyingly% LLD คือ เป็นเวลานานจำนวนเต็มทศนิยมยาว 680 00:32:28,490 --> 00:32:31,050 ซึ่งก็หมายความว่าถ้าคุณจำเป็นต้องใช้จริงๆ จำนวนขนาดใหญ่และคุณกำลังใช้บางสิ่งบางอย่าง 681 00:32:31,050 --> 00:32:35,450 เรียกว่านานซึ่งเราจะมา กลับไปใน pset คุณสามารถใช้ LLD% เป็น 682 00:32:35,450 --> 00:32:40,700 บอกเสียบใน printf ใหญ่จริงๆ จำนวนเต็มที่นี่โดยวิธีการที่สองหรือ 683 00:32:40,700 --> 00:32:41,830 บางเหตุผลอื่น ๆ 684 00:32:41,830 --> 00:32:45,700 >> และสุดท้ายผมสัญญาว่า มีการหลบหนีอีกสองสามคน 685 00:32:45,700 --> 00:32:47,670 ลำดับที่ printf สนับสนุน 686 00:32:47,670 --> 00:32:49,160 เราได้เห็นเครื่องหมายทับขวา n- 687 00:32:49,160 --> 00:32:50,510 เครื่องหมาย-R คุณอาจเห็น 688 00:32:50,510 --> 00:32:51,780 มันเรียงลำดับของสิ่งที่โรงเรียนเก่า 689 00:32:51,780 --> 00:32:55,920 ถ้าคุณเคยใช้เครื่องพิมพ์ดีดปีจริง ที่ผ่านมาและคุณดึงข้อเหวี่ยง 690 00:32:55,920 --> 00:32:59,810 ซึ่งไม่เพียง แต่หมุนวงล้อเพื่อ ย้ายผู้เล่นตัวจริงก็ยังย้าย 691 00:32:59,810 --> 00:33:03,730 สิ่งที่ทั้งตลอดทางกลับไปยัง ซ้ายดีเครื่องหมาย-R เพียง 692 00:33:03,730 --> 00:33:06,480 หลักกลับเคอร์เซอร์ของคุณย้าย เพื่อเริ่มต้นของบรรทัด 693 00:33:06,480 --> 00:33:07,830 โดยไม่ต้องย้ายมันลงมา 694 00:33:07,830 --> 00:33:09,780 แต่อีกครั้งเพิ่มเติมว่า, บางทีในอนาคต 695 00:33:09,780 --> 00:33:13,670 >> เครื่องหมายอ้าง, อ้างเครื่องหมายทับขวาสองครั้ง เครื่องหมายทับขวา-เครื่องหมายทับขวาคือ 696 00:33:13,670 --> 00:33:16,600 วิธีการแก้ปริศนาเล็ก ๆ น้อย ผมพูดพาดพิงถึงก่อนหน้านี้ 697 00:33:16,600 --> 00:33:18,920 และเครื่องหมายทับขวา-0 เป็นจริง น่าสนใจทีเดียว 698 00:33:18,920 --> 00:33:21,470 แต่เราจะกลับมา ก่อนที่จะยาว 699 00:33:21,470 --> 00:33:25,640 >> เพื่อให้ฉันไปในตอนนี้ CS50 เครื่องใช้และขอทำจริง 700 00:33:25,640 --> 00:33:28,930 รวดเร็วอุ่นเครื่องกับหนึ่งในตัวอย่างที่ เราไม่อยู่แล้วและจากนั้นย้ายไป 701 00:33:28,930 --> 00:33:31,160 บางสิ่งบางอย่างเล็ก ๆ น้อย ๆ ที่ซับซ้อนมากขึ้น 702 00:33:31,160 --> 00:33:34,980 ดังนั้นถ้าฉันเปิดโปรแกรมของฉัน เรียกว่า Gedit - 703 00:33:34,980 --> 00:33:36,840 นี้เป็นตัวแก้ไขแบบกราฟิกของฉัน 704 00:33:36,840 --> 00:33:38,460 และฉันสามารถทำ - 705 00:33:38,460 --> 00:33:39,820 ให้ฉันปิดหน้าต่างว่ามี - 706 00:33:39,820 --> 00:33:42,720 โดยวิธีการของไอคอนนี้ลงที่นี่ Gedit ในด้านล่างซ้าย 707 00:33:42,720 --> 00:33:44,170 มุมต่อไปที่เมนู 708 00:33:44,170 --> 00:33:48,670 >> ฉันจะไปข้างหน้าและความก้าวหน้าและ บันทึกเช่นนี้ในการพูด, จอห์น 709 00:33:48,670 --> 00:33:49,660 โฟลเดอร์ที่ฮาร์วาร์ 710 00:33:49,660 --> 00:33:52,690 โฟลเดอร์จอห์นฮาร์วาร์เป็นเพียงบ้านของเขา ไดเรกทอรีที่ไฟล์ทั้งหมดของเขาอาศัยอยู่ 711 00:33:52,690 --> 00:33:53,340 โดยค่าเริ่มต้น 712 00:33:53,340 --> 00:33:58,410 และฉันจะบันทึกเป็น ไฟล์ที่เรียกว่าสวัสดี-0.c 713 00:33:58,410 --> 00:34:01,260 และฉันได้เลือกชื่อนี้เพียงเพื่อให้มัน เส้นขึ้นด้วยตัวอย่างรหัสบน 714 00:34:01,260 --> 00:34:04,210 เว็บไซต์ของหลักสูตรและใน ออนไลน์วิดีโอ YouTube 715 00:34:04,210 --> 00:34:06,320 >> ดังนั้นตอนนี้ฉันจะเริ่มต้นที่จะ เขียนโปรแกรมแรกของฉัน 716 00:34:06,320 --> 00:34:08,469 ผมขอขยายความชัดเจนสำหรับ 717 00:34:08,469 --> 00:34:12,760 และฉันจะไปข้างหน้าและพูด int เป็นโมฆะหลักซึ่งเป็นเช่นเดียวกับที่ 718 00:34:12,760 --> 00:34:14,900 ชิ้นส่วนปริศนาสีเหลืองว่า เริ่มต้นโปรแกรม 719 00:34:14,900 --> 00:34:18,290 ฉันมีอากาศเป็นนิสัยมากกว่า ปีของการเปิดหยิกรั้งฉันแล้ว 720 00:34:18,290 --> 00:34:22,000 นอกจากนี้ยังมีการปิดมันแล้วจะกลับไป ที่ฉันต้องการที่จะนำรหัสของฉันเพียง 721 00:34:22,000 --> 00:34:24,630 เพราะมันช่วยให้ผมเก็บทุกอย่าง สมดุลโดยเฉพาะอย่างยิ่งของฉัน 722 00:34:24,630 --> 00:34:25,880 โปรแกรมที่ได้รับเป็นเวลานาน 723 00:34:25,880 --> 00:34:29,239 >> และตอนนี้ในที่นี่ฉันจะไปข้างหน้า และพูดว่า printf อ้างไม่ได้นำมาอ้าง, 724 00:34:29,239 --> 00:34:34,330 Hello World, เครื่องหมายทับขวา-n, อ้างใกล้ชิด วงเล็บปิดอัฒภาค 725 00:34:34,330 --> 00:34:38,100 ดังนั้นฉันเพียงแค่การทำซ้ำทุกอย่างที่เราได้ รับการได้รับป่านนี้ 726 00:34:38,100 --> 00:34:39,270 ตอนนี้ฉันจะเพื่อซูมออก 727 00:34:39,270 --> 00:34:43,030 >> และหน้าต่าง terminal นี้ลงที่นี่สิ่งที่ ฉันอนุญาตให้ทำในสีดำนี้ 728 00:34:43,030 --> 00:34:44,389 และสีขาวหน้าต่าง? 729 00:34:44,389 --> 00:34:46,977 สิ่งที่ฉันสามารถใช้มันได้หรือไม่? 730 00:34:46,977 --> 00:34:49,770 ดังนั้นนี่คือที่ที่ฉันเรียกใช้คำสั่งและ ที่ฉันสามารถรวบรวมสิ่งที่ 731 00:34:49,770 --> 00:34:50,620 และฉันจะให้มันง่าย 732 00:34:50,620 --> 00:34:52,780 ฉันจะใช้โปรแกรม เรียกว่ารู้จักซึ่งไม่ได้เป็น 733 00:34:52,780 --> 00:34:54,020 เทคนิคคอมไพเลอร์ 734 00:34:54,020 --> 00:34:56,360 เสียงดังกราวเรียกว่าคอมไพเลอร์ แต่ เราจะกลับมาว่าใน 735 00:34:56,360 --> 00:34:57,190 เวลาสัปดาห์หรือสอง 736 00:34:57,190 --> 00:35:03,410 >> สำหรับตอนนี้ฉันแค่จะพิมพ์ให้ สวัสดี-0, แต่บรรดาของคุณที่มี 737 00:35:03,410 --> 00:35:07,050 เปรียบเทียบในจิตใจของคุณสิ่งที่ฉันเพียงแค่ พิมพ์กับสิ่งที่ฉันควรจะได้พิมพ์อาจ 738 00:35:07,050 --> 00:35:10,180 รู้แล้วว่าผม บางสิ่งบางอย่างที่ไม่ถูกต้องที่นี่ 739 00:35:10,180 --> 00:35:12,160 ตอนนี้มีข้อผิดพลาดบางอย่างเห็นได้ชัด 740 00:35:12,160 --> 00:35:16,742 ก่อนที่ฉันจะมองไปที่สิ่งที่พวกเขาใด ๆ ความคิดเป็นสิ่งที่ฉันไม่ผิด? 741 00:35:16,742 --> 00:35:18,590 >> นักเรียน: [interposing VOICES] 742 00:35:18,590 --> 00:35:18,840 >> DAVID ลัน: ใช่ 743 00:35:18,840 --> 00:35:20,640 ฉันหายไปไฟล์ส่วนหัวของห้องสมุด 744 00:35:20,640 --> 00:35:24,240 ใด ๆ เหล่านี้. ไฟล์ชั่วโมงจะเรียกว่าส่วนหัว ไฟล์และพวกเขาเรียกรวมกัน 745 00:35:24,240 --> 00:35:25,680 เป็นสิ่งที่เรียกว่าห้องสมุด 746 00:35:25,680 --> 00:35:28,030 ห้องสมุดเป็นเพียงชิ้นส่วนของรหัส ว่าคนอื่น ๆ ครับ 747 00:35:28,030 --> 00:35:32,140 [มาตรฐานดังนั้น? i? ห้องสมุด] คือ คอลเลกชันของไฟล์ที่มีรหัส 748 00:35:32,140 --> 00:35:33,330 ว่าคนอื่น ๆ ครับ 749 00:35:33,330 --> 00:35:34,820 >> ดังนั้นฉันหายไปที่ 750 00:35:34,820 --> 00:35:36,520 ดังนั้นทำไมฉันรับข้อผิดพลาด? 751 00:35:36,520 --> 00:35:40,840 ดีให้ฉันเลื่อนกลับขึ้นไปใน หน้าต่าง terminal ของฉันที่นี่ 752 00:35:40,840 --> 00:35:44,310 และขออภัยใน C ในขณะที่จำนวนมาก การเขียนโปรแกรมภาษาโดยเฉพาะอย่างยิ่ง 753 00:35:44,310 --> 00:35:47,830 ถ้าหากมันเป็นทั้งหมดใหม่ให้คุณผิดพลาด เป็นข้อความที่ถูกต้อง แต่พวกเขายัง 754 00:35:47,830 --> 00:35:48,620 ค่อนข้างคลุมเครือ 755 00:35:48,620 --> 00:35:51,720 และข้อผิดพลาดที่นี่, สีแดงคือ งานห้องสมุด "โดยปริยายประกาศ 756 00:35:51,720 --> 00:35:57,660 printf กับประเภท "และแล้วก็เลื่อน ไปยังบรรทัดต่อไป "int const char *, 757 00:35:57,660 --> 00:36:00,220 ... "มันเพิ่งได้รับจริงๆ ที่ครอบงำได้อย่างรวดเร็ว 758 00:36:00,220 --> 00:36:04,420 >> แต่สิ่งที่คุณควรเริ่มต้นที่จะทำถ้า อีกครั้งใหม่ทั้งหมดนี้เป็นเพียงการ 759 00:36:04,420 --> 00:36:06,010 จะเริ่มมองหาคำหลัก 760 00:36:06,010 --> 00:36:08,770 เห็นได้ชัดว่าผมอาจจะไม่เข้าใจครึ่ง ของคำที่ฉันเห็นเพียง แต่ 761 00:36:08,770 --> 00:36:10,140 คุณจะแม้ว่าในเวลาหนึ่งสัปดาห์ 762 00:36:10,140 --> 00:36:11,230 แต่ฉันเห็น printf 763 00:36:11,230 --> 00:36:14,310 และที่ควรจะเริ่มต้นก่อนที่จะยาวไป เขย่าเบา ๆ หน่วยความจำของคุณทั้งหมดขวา printf 764 00:36:14,310 --> 00:36:15,210 บางสิ่งบางอย่างผิดปกติกับ printf 765 00:36:15,210 --> 00:36:16,580 ผมสะกดผิดหรือเปล่า? 766 00:36:16,580 --> 00:36:18,130 ไม่มีก็ไม่ได้มีลักษณะเหมือน - แหม 767 00:36:18,130 --> 00:36:21,350 ฉันไม่สามารถใช้มันจนกว่าผมสอน คอมไพเลอร์ที่มันมีอยู่แล้ว 768 00:36:21,350 --> 00:36:25,220 และอื่น ๆ อีกครั้งไปกับสัญชาตญาณของคุณ แม้ว่าคุณจะไม่จริงเข้าใจ 769 00:36:25,220 --> 00:36:26,510 ข้อความผิดพลาดที่เกิดขึ้นจริง 770 00:36:26,510 --> 00:36:30,240 >> และอันที่จริงการแก้ปัญหาที่นี่คือเพียง รวมไว้ที่ด้านบนของไฟล์ 771 00:36:30,240 --> 00:36:34,340 เช่นเดียวกับที่ resaving ไฟล์ของฉันด้วย ควบคุม S-หรือเมนู File 772 00:36:34,340 --> 00:36:36,730 และถ้าตอนนี้ผมกลับไปลงที่นี่ ฉันจะล้างนี้ 773 00:36:36,730 --> 00:36:39,150 ควบคุม L-เป็นเพียงวิธีที่ดี เพื่อล้างหน้าจอ 774 00:36:39,150 --> 00:36:44,870 แล้วฉันจะพิมพ์ "ให้สวัสดี 0 "Enter และตอนนี้ฉันยังคงเห็น 775 00:36:44,870 --> 00:36:47,710 ลำดับความลับของสัญลักษณ์ แต่ เราจะกลับมาที่ 776 00:36:47,710 --> 00:36:49,230 นั่นคือสิ่งที่ทำให้จะทำสำหรับคุณ 777 00:36:49,230 --> 00:36:52,590 มันอัตโนมัติกระบวนการของการ คำสั่งที่น่ารำคาญอย่างเป็นธรรมที่เกี่ยวข้องกับ 778 00:36:52,590 --> 00:36:54,050 เสียงดังกราว, คอมไพเลอร์ที่เกิดขึ้นจริง 779 00:36:54,050 --> 00:36:57,460 แต่ความจริงที่ผมได้ไม่มีข้อผิดพลาดหมายถึง ว่าสิ่งนี้ควรจะทำงาน 780 00:36:57,460 --> 00:37:00,630 >> ดังนั้นตอนนี้ฉันจะทำ - ให้ฉันขยายอีกครั้ง - 781 00:37:00,630 --> 00:37:07,070 ./hello-0 ใส่และแน่นอนผมเห็น "hello, world." ดังนั้นตอนนี้ขอเพิ่ม 782 00:37:07,070 --> 00:37:12,105 นี้เคยดังนั้นเล็กน้อยเพียงที่จะทำซ้ำ ขั้นตอนที่เราตั้งใจ 783 00:37:12,105 --> 00:37:15,370 ฉันจะเปลี่ยนชื่อนี้ด้วย บันทึกเป็นเมื่อต้องการ hello1.c 784 00:37:15,370 --> 00:37:20,300 และตอนนี้ฉันจะประกาศตัวแปร เรียกชื่อชื่อสตริงดังนั้น 785 00:37:20,300 --> 00:37:23,420 และฉันจะใส่ในนั้น มูลค่าของการอ้างไม่ได้นำมาอ้าง- 786 00:37:23,420 --> 00:37:27,030 D--V-I-D อัฒภาคใกล้อ้าง- 787 00:37:27,030 --> 00:37:31,150 และตอนนี้ฉันจะไปแทนที่ "โลก" กับสิ่งที่ตัวยึดสำหรับสตริง? 788 00:37:31,150 --> 00:37:32,200 % s 789 00:37:32,200 --> 00:37:35,040 >> และตอนนี้กี่ข้อโต้แย้งควร printf ใช้เวลานี้? 790 00:37:35,040 --> 00:37:35,700 ดังนั้นสอง 791 00:37:35,700 --> 00:37:37,090 ดังนั้นผมจึงออกไปข้างนอกของคำพูด 792 00:37:37,090 --> 00:37:39,330 ฉันพิมพ์ "ชื่อ" หลังจากจุลภาค 793 00:37:39,330 --> 00:37:41,550 แต่ฉันทำบางสิ่งบางอย่าง เวลานี้ผิดอื่น 794 00:37:41,550 --> 00:37:43,940 แต่สมมติว่าผมไม่ได้ ตระหนักดีว่ายัง 795 00:37:43,940 --> 00:37:44,910 ให้ฉันขึ้นไปที่นี่ 796 00:37:44,910 --> 00:37:48,850 >> และแจ้งให้ทราบล่วงหน้าเกินไปฉันได้รับเพียงเล็กน้อย เบื่อของการพิมพ์ "ทำให้สวัสดี 0" ทั้งหมด 797 00:37:48,850 --> 00:37:50,180 เวลา "ให้" และทั้งหมดนี้ 798 00:37:50,180 --> 00:37:53,270 ดังนั้นมันจะเปิดออกใน Linus คุณสามารถ มักจะโดนลูกศรขึ้นเมื่อคุณ 799 00:37:53,270 --> 00:37:56,850 แป้นพิมพ์จริงและคุณสามารถเลื่อน ผ่านทุกคำสั่งที่ฉัน 800 00:37:56,850 --> 00:37:58,830 ก่อนหน้าที่จะดำเนินการเพียงแค่นี้ 801 00:37:58,830 --> 00:38:02,040 ดังนั้นถ้าฉันทำอย่างนั้นขึ้น, ขึ้น, มีให้สวัสดี 0 802 00:38:02,040 --> 00:38:02,610 ฉันไม่ต้องการที่ 803 00:38:02,610 --> 00:38:05,450 ผมแค่อยากจะเปลี่ยนที่ไป สวัสดี 1 เวลานี้ใส่ 804 00:38:05,450 --> 00:38:07,620 ในที่สุดที่จะ ช่วยให้คุณประหยัดเวลา 805 00:38:07,620 --> 00:38:08,150 >> ทั้งหมดขวา 806 00:38:08,150 --> 00:38:09,520 แต่มีข้อผิดพลาดอะไร 807 00:38:09,520 --> 00:38:10,980 เพื่อให้ฉันเลื่อนขึ้น 808 00:38:10,980 --> 00:38:13,120 นี้ดูเหมือนว่าฉันจริงๆ เชือดโปรแกรมนี้ 809 00:38:13,120 --> 00:38:16,530 ผมหมายถึงพระเจ้าของฉันก็สองบรรทัดของรหัส และ 10 เส้นของความผิดพลาด 810 00:38:16,530 --> 00:38:18,800 แต่มองไปที่ด้านบนคนแรก 811 00:38:18,800 --> 00:38:21,640 ใช้ของสตริงตัวระบุไม่ได้ประกาศ 812 00:38:21,640 --> 00:38:23,270 ผมหมายถึงมาตรฐานผม n? 813 00:38:23,270 --> 00:38:23,930 ไม่มีฉันไม่ได้ 814 00:38:23,930 --> 00:38:24,940 ฉันหมายถึงสตริง 815 00:38:24,940 --> 00:38:29,390 >> แต่ที่ตัวแปรสตริงคือ ประเภทประกาศ, dd เราพูด? 816 00:38:29,390 --> 00:38:30,730 จึงเป็นประโยชน์ CS50 ห้องสมุด 817 00:38:30,730 --> 00:38:33,740 ดังนั้นจึงไม่พอเพียงในครั้งแรกที่เหล่านี้ สองสามสัปดาห์เพียงเพื่อใช้ 818 00:38:33,740 --> 00:38:34,860 C ให้อะไรเรา 819 00:38:34,860 --> 00:38:38,120 ฉันยังจะไปขึ้นที่นี่และผม สามารถวางไว้ด้านบนหรือด้านล่าง แต่ฉันจะ 820 00:38:38,120 --> 00:38:40,340 เพียงแค่ให้มันเรียงตามตัวอักษร เพื่อให้สิ่งที่เป็นระเบียบเรียบร้อย 821 00:38:40,340 --> 00:38:43,470 ฉันจะรวม cs50.h, ซึ่งมีการติดตั้งสำหรับ 822 00:38:43,470 --> 00:38:44,900 คุณ CS50 เครื่องใช้ 823 00:38:44,900 --> 00:38:47,640 และมันก็เป็นโอเพนซอร์สดังนั้นแม้คน บนอินเทอร์เน็ตที่สามารถใช้ในพวกเขา 824 00:38:47,640 --> 00:38:48,450 เครื่องคอมพิวเตอร์ของตัวเอง 825 00:38:48,450 --> 00:38:50,700 แต่มันก็มาพร้อมกับเครื่องใช้ CS50 826 00:38:50,700 --> 00:38:55,320 >> ดังนั้นตอนนี้ให้ฉันกลับไปและ recompile นี้ทำให้สวัสดี 1 827 00:38:55,320 --> 00:38:55,710 Damn มัน 828 00:38:55,710 --> 00:38:57,240 ยังคงข้อผิดพลาดอื่น 829 00:38:57,240 --> 00:38:59,370 ผมขอเลื่อนขึ้นไปครั้งแรก แต่ 830 00:38:59,370 --> 00:39:00,630 หนึ่งนี้เป็นที่ซับซ้อนน้อย 831 00:39:00,630 --> 00:39:03,830 ตัวละครหลายตัวคงที่ 832 00:39:03,830 --> 00:39:04,890 ที่ไม่ได้ช่วยฉัน 833 00:39:04,890 --> 00:39:08,220 แต่แจ้งให้ทราบเสียงดังกราวอย่างน้อยน้อย ดีบิตเหตุที่มีน้อย 834 00:39:08,220 --> 00:39:11,890 สีเขียวสัญลักษณ์ลูกศรก็บอกว่า ที่นี่เป็นที่ที่ฉันเมาขึ้น 835 00:39:11,890 --> 00:39:16,160 มันจะชี้เหตุใดจึงมีน้อยว่า ลูกศรสีเขียวเพื่อพูดเดียวต่อไป 836 00:39:16,160 --> 00:39:18,290 ชื่อของฉันได้อย่างไร 837 00:39:18,290 --> 00:39:20,880 >> ดังนั้นนี่คือหนึ่งในสิ่งที่คุณเพียงแค่ รับใช้โดยเฉพาะอย่างยิ่งถ้าคุณได้รับ 838 00:39:20,880 --> 00:39:23,980 การเขียนโปรแกรมในงูหลามหรือ JavaScript, หรือภาษาอื่น ๆ ที่รายละเอียดนี้ 839 00:39:23,980 --> 00:39:24,560 ไม่ได้เรื่อง 840 00:39:24,560 --> 00:39:25,740 ใน C มันไม่สำคัญ 841 00:39:25,740 --> 00:39:29,520 หากคุณกำลังประกาศสตริงซึ่งเป็น ลำดับของ 0 หรือมากกว่าตัวอักษร, 842 00:39:29,520 --> 00:39:32,280 คุณจริงต้องใช้คำพูดสองครั้ง 843 00:39:32,280 --> 00:39:36,670 ดังนั้นผมจึงจำเป็นต้องใช้จริงในการเปลี่ยนแปลงนี้กลับ อ้างเพื่อเปิดปิดโดยอ้างกับ 844 00:39:36,670 --> 00:39:37,800 คำพูดสองครั้ง 845 00:39:37,800 --> 00:39:41,610 คำพูดเดียวจะมีสถานที่ของพวกเขา แต่ เฉพาะเมื่อคุณกำลังใช้แต่ละคน 846 00:39:41,610 --> 00:39:44,100 ตัวอักษร แต่เพิ่มเติมว่าเวลาอื่น 847 00:39:44,100 --> 00:39:46,550 สำหรับตอนนี้คำพูดสองครั้ง เป็นสิ่งที่จำเป็น 848 00:39:46,550 --> 00:39:50,460 >> ดังนั้นตอนนี้ให้ฉันกลับไปที่ขั้วของฉัน หน้าต่างให้สวัสดี 1 849 00:39:50,460 --> 00:39:51,450 และมั่นใจได้ที่? 850 00:39:51,450 --> 00:39:53,800 เป็นโปรแกรมนี้ตอนนี้จะ เพื่อรวบรวมถูกต้องหรือไม่ 851 00:39:53,800 --> 00:39:58,250 852 00:39:58,250 --> 00:39:58,540 ตกลง 853 00:39:58,540 --> 00:39:59,780 ดังนั้นเราสามคนคิดว่านี้ 854 00:39:59,780 --> 00:40:00,280 ทั้งหมดขวา 855 00:40:00,280 --> 00:40:01,190 เข้าไป 856 00:40:01,190 --> 00:40:02,440 และมันไม่จริง 857 00:40:02,440 --> 00:40:05,130 ดังนั้นจึงมีข้อผิดพลาดไม่ได้ในเวลานี้แม้ แม้ว่าโปรแกรมนี้มีอากาศที่บิต 858 00:40:05,130 --> 00:40:05,840 ที่ซับซ้อนมากขึ้น 859 00:40:05,840 --> 00:40:10,110 ถ้าฉันตอนนี้ทำจุดเฉือนสวัสดี 1, ใส่, มันจะพูดว่า "Hello, เดวิด." 860 00:40:10,110 --> 00:40:11,750 >> แต่ขอให้ทำซ้ำที่สาม จากนี้ซึ่ง 861 00:40:11,750 --> 00:40:13,380 โปรแกรมเป็นแบบไดนามิกอย่างแท้จริง 862 00:40:13,380 --> 00:40:16,770 ให้ฉันไปข้างหน้าและเปลี่ยนไฟล์ ชื่อเพียงเพื่อความสอดคล้องกับ 863 00:40:16,770 --> 00:40:20,410 ไฟล์ที่คุณจะมีใช้ได้ เพื่อคุณออนไลน์หลังจากนั้น 864 00:40:20,410 --> 00:40:21,620 เข้าไป 865 00:40:21,620 --> 00:40:25,510 และตอนนี้ฉันจะไปและไม่ได้ เก็บ "เดวิด" รหัสยากที่นี่ 866 00:40:25,510 --> 00:40:28,826 สิ่งที่ฉันจะทำอย่างไรเพื่อให้มากเพียง ปรับปรุงโปรแกรมนี้ 867 00:40:28,826 --> 00:40:30,520 >> ฉันสามารถเรียก getString 868 00:40:30,520 --> 00:40:33,240 มันอาจจะเป็นเพียงเล็กน้อยไม่ชัดเจนว่ามีอะไร เกี่ยวกับที่จะเกิดขึ้นดังนั้นฉันไป 869 00:40:33,240 --> 00:40:38,470 ที่จริงการเพิ่มบรรทัดอื่น printf, และพูดชื่อลำไส้ใหญ่อ้างใกล้เพียง 870 00:40:38,470 --> 00:40:40,790 ที่จะให้ผู้ใช้ที่พรอมต์ บนหน้าจอ 871 00:40:40,790 --> 00:40:42,980 และตอนนี้ฉันจะไปที่นี่และฉัน จะใช้ทางลัดแป้นพิมพ์ของฉัน 872 00:40:42,980 --> 00:40:47,680 ฉันจะขึ้นไปขึ้นและเปลี่ยน สวัสดีสวัสดี 1 ถึง 2 ใส่ 873 00:40:47,680 --> 00:40:49,260 และโชคดีที่ผมมีความก้าวหน้า 874 00:40:49,260 --> 00:40:52,720 >> และตอนนี้ฉันจะไปขึ้น เพื่อจุดเฉือนสวัสดีและ 875 00:40:52,720 --> 00:40:54,690 เปลี่ยนที่ 2 ใส่ 876 00:40:54,690 --> 00:40:55,650 และตอนนี้โปรแกรมของฉัน - 877 00:40:55,650 --> 00:40:57,700 ผมจะซูมใน - จะได้รับ เล็ก ๆ น้อย ๆ น่ารัก 878 00:40:57,700 --> 00:41:02,190 ชื่อที่เป็นไปได้สมมติว่าร็อบ เวลานี้ใส่สวัสดีร็อบ 879 00:41:02,190 --> 00:41:03,260 เราสามารถทำมันอีกครั้ง 880 00:41:03,260 --> 00:41:05,360 ชื่อลอเรนใส่ 881 00:41:05,360 --> 00:41:07,820 ชื่อโจเซฟใส่ 882 00:41:07,820 --> 00:41:11,596 ชื่อให้พยายามที่จะเป็น ยากใส่ 883 00:41:11,596 --> 00:41:12,410 เอ๊ะ 884 00:41:12,410 --> 00:41:14,680 มันไม่จริงข้อผิดพลาด 885 00:41:14,680 --> 00:41:16,090 ดังนั้นจึงเป็นเพียงเล็กน้อยน่าเกลียด 886 00:41:16,090 --> 00:41:18,640 ดังนั้นบางทีเราสามารถแก้ปัญหานี้ ในอนาคตไม่ได้ในขณะนี้ 887 00:41:18,640 --> 00:41:20,840 >> แต่วิธีที่คุณจะสัญชาตญาณ ไปเกี่ยวกับที่อยู่ 888 00:41:20,840 --> 00:41:21,990 ที่ท้าทายโดยเฉพาะอย่างยิ่ง? 889 00:41:21,990 --> 00:41:23,710 มันก็ดูโง่ 890 00:41:23,710 --> 00:41:27,320 คุณหลีกเลี่ยงสิ่งวิธี กำลังมองหาโง่? 891 00:41:27,320 --> 00:41:29,890 ดังนั้นเราจึงสามารถทำได้ OK ฉันได้ยินคู่ ของสิ่งที่สภาพและห่วง 892 00:41:29,890 --> 00:41:33,340 เราสามารถใช้อย่างใดอย่างหนึ่งเงื่อนไขเพื่อตรวจสอบ ความยาวของสตริงคือสิ่งที่ 893 00:41:33,340 --> 00:41:34,190 ผู้ใช้ให้เรา? 894 00:41:34,190 --> 00:41:37,100 และถ้าหากมันเป็น 0 ก็เพียงพูดไม่ได้นำมาอ้าง, พวกเขาเพียงแค่กด Enter จากนั้น 895 00:41:37,100 --> 00:41:38,930 บางทีฉันควรจะตะโกนใส่พวกเขา และให้พวกเขาอีกครั้ง 896 00:41:38,930 --> 00:41:39,970 แต่จะทำอย่างไรให้พวกเขาอีกครั้ง? 897 00:41:39,970 --> 00:41:44,230 ดีฉันยังได้ยินวง, and I could ทำอย่างนั้นอีกครั้งและอีกครั้งและอีกครั้ง 898 00:41:44,230 --> 00:41:47,010 เตือนผู้ใช้ให้สิ่งเดียวกัน 899 00:41:47,010 --> 00:41:48,880 >> ดีขอทำตัวอย่างหนึ่งที่อื่น ๆ การใช้ที่แตกต่างกัน 900 00:41:48,880 --> 00:41:50,620 ฟังก์ชั่นในห้องสมุด CS50 901 00:41:50,620 --> 00:41:52,330 ผมขอปิดแฟ้มนี้ 902 00:41:52,330 --> 00:41:53,510 ให้ฉันสร้างขึ้นมาใหม่ 903 00:41:53,510 --> 00:41:58,510 และฉันจะเรียกมันว่า adder.c เพียงเพราะ มันง่ายที่จะทำเลขคณิตง่าย 904 00:41:58,510 --> 00:42:00,890 แม้ว่านี้จะสมบูรณ์ underwhelming กับสิ่งที่คุณสามารถทำได้ 905 00:42:00,890 --> 00:42:02,250 ด้วยคอมพิวเตอร์ที่ทันสมัย​​ใด ๆ 906 00:42:02,250 --> 00:42:03,750 >> แต่ให้ฉันไปข้างหน้าและตอนนี้ - 907 00:42:03,750 --> 00:42:10,680 ผมได้เรียนรู้บทเรียนของฉันเป็นครั้งสุดท้าย - รวม cs50.h รวม stdio.h, int 908 00:42:10,680 --> 00:42:14,170 เป็นโมฆะหลักซึ่งสำหรับตอนนี้ฉันจะเพียงแค่ ใช้เวลาในการเชื่อตาบอด แต่เราจะถือว่า 909 00:42:14,170 --> 00:42:16,380 ที่จะเข้าใจในสิ่งที่ นั่นหมายความว่าอีกไม่นาน 910 00:42:16,380 --> 00:42:21,030 และฉันจะพูดอะไรบางอย่าง เช่น "ให้ฉัน int." 911 00:42:21,030 --> 00:42:22,140 >> และตอนนี้ฉันจะได้รับ int อย่างไร 912 00:42:22,140 --> 00:42:26,820 ฉันต้องการในที่สุดประกาศตัวแปร ที่เรียกว่า x int ชนิดและ 913 00:42:26,820 --> 00:42:29,240 เก็บในนั้นจำนวนเต็มจากผู้ใช้ 914 00:42:29,240 --> 00:42:29,970 เพื่อให้เป็นคำหนึ่ง 915 00:42:29,970 --> 00:42:35,680 แต่ถ้ามีคนต้องการที่จะเสนอวิธีการ ฉันประกาศ x จำนวนเต็มเรียกว่า? 916 00:42:35,680 --> 00:42:36,310 x int 917 00:42:36,310 --> 00:42:37,430 >> จึงเป็นเรื่องง่ายที่ 918 00:42:37,430 --> 00:42:38,240 ให้ฉัน int 919 00:42:38,240 --> 00:42:39,070 เรียกว่า x 920 00:42:39,070 --> 00:42:40,580 ตอนนี้ผมใช้ประกอบการมอบหมาย 921 00:42:40,580 --> 00:42:43,400 และฉันเก็บจากวิธี ออกจากค่าของผู้ใช้หรือไม่ 922 00:42:43,400 --> 00:42:47,310 ฉันไม่ต้องการที่จะเรียก GetString, อย่างเห็นได้ชัด แต่ GetInt 923 00:42:47,310 --> 00:42:49,060 ข้อโต้แย้งใด ๆ ? 924 00:42:49,060 --> 00:42:49,350 เลขที่ 925 00:42:49,350 --> 00:42:51,870 ดังนั้นมันจึงเปิดวงเล็บปิดวงเล็บ ทันทีและจากนั้น 926 00:42:51,870 --> 00:42:53,440 อัฒภาคปลายสาย 927 00:42:53,440 --> 00:42:54,930 >> ตอนนี้ให้ฉันทำเช่นนี้อีกครั้ง 928 00:42:54,930 --> 00:42:57,070 ให้ฉัน int อีก 929 00:42:57,070 --> 00:43:01,850 คราวนี้ฉันจะทำ int ให้ เรียกมันว่า y, GetInt เท่ากับ 930 00:43:01,850 --> 00:43:05,060 และตอนนี้ให้ฉันทำบางสิ่งบางอย่างซุปเปอร์ง่าย เช่นเดียวกับคณิตศาสตร์ 931 00:43:05,060 --> 00:43:14,340 ดังนั้น printf ผลรวมของ% d คือ ตัวยึดสำหรับ int 932 00:43:14,340 --> 00:43:20,030 % และ D, ระยะเวลา, เครื่องหมายทับขวา n- 933 00:43:20,030 --> 00:43:20,360 >> ทั้งหมดขวา 934 00:43:20,360 --> 00:43:21,670 เพื่อให้ไม่จริงคณิตศาสตร์ 935 00:43:21,670 --> 00:43:25,500 แต่ถ้าฉันต้องการจะบอกผลรวมของนี้ ค่าบวกค่านี้เท่ากับนี้ 936 00:43:25,500 --> 00:43:29,320 ค่าอื่น ๆ , วิธีการหลายข้อโต้แย้งเป็น ฉันควรทั้งหมดจะให้ printf, 937 00:43:29,320 --> 00:43:30,520 ในที่สุด? 938 00:43:30,520 --> 00:43:31,420 ดังนั้นสี่ขวา? 939 00:43:31,420 --> 00:43:33,790 สายนี้แล้วสามค่า 940 00:43:33,790 --> 00:43:37,560 ดังนั้น x เป็นครั้งแรกที่ฉันอยากจะเป็น เสียบแรกที่% d 941 00:43:37,560 --> 00:43:39,270 y เป็นไปได้ต่อไป 942 00:43:39,270 --> 00:43:42,030 >> และตอนนี้ฉันชนิดของการอยากจะบอกว่า z, z แต่ไม่ได้อยู่ 943 00:43:42,030 --> 00:43:43,190 แต่นั่นไม่ใช่เรื่องใหญ่ 944 00:43:43,190 --> 00:43:45,440 เพราะสิ่งที่คุณจะทำโดยสัญชาตญาณ โดยเฉพาะอย่างยิ่งถ้าคุณมี 945 00:43:45,440 --> 00:43:47,820 เครื่องคิดเลขกราฟสิ่งที่คุณพิมพ์? 946 00:43:47,820 --> 00:43:48,760 วิธีการเกี่ยวกับ x บวก y? 947 00:43:48,760 --> 00:43:50,200 ดังนั้นจึงไม่เป็นตัวแปรที่เกิดขึ้นจริง 948 00:43:50,200 --> 00:43:51,820 มันเป็นเพียงผลรวมของทั้งสอง ตัวแปรอื่น ๆ 949 00:43:51,820 --> 00:43:53,170 และที่ถูกต้องสมบูรณ์ 950 00:43:53,170 --> 00:43:56,630 C แน่นอนเข้าใจง่าย การคำนวณเช่นนี้ 951 00:43:56,630 --> 00:43:58,450 >> อัฒภาคบันทึก 952 00:43:58,450 --> 00:44:02,080 ตอนนี้ให้ฉันไปลงที่นี่และ พิมพ์ทำให้ adder ป้อน 953 00:44:02,080 --> 00:44:04,100 ไม่มีข้อผิดพลาดเพื่อให้ความคืบหน้าเกินไป 954 00:44:04,100 --> 00:44:04,890 adder ประเภท 955 00:44:04,890 --> 00:44:07,100 และแป้นพิมพ์ลัดอื่น ถ้าคุณเริ่มที่จะได้รับเบื่อ 956 00:44:07,100 --> 00:44:08,760 กับคำสั่งทั้งหมด - 957 00:44:08,760 --> 00:44:12,650 ถ้าคุณเริ่มพิมพ์คำสั่งเช่นจุด เฉือนโฆษณาและนั่นคือสิ่งที่คุณ 958 00:44:12,650 --> 00:44:16,020 เบื่อเตะในคุณจะสามารถตี แท็บจะมีคอมพิวเตอร์เสร็จสิ้น 959 00:44:16,020 --> 00:44:20,510 ส่วนที่เหลือของวลีสำหรับคุณถ้ามันไม่ได้ คลุมเครือสิ่งที่ควรมาหลังจากการโฆษณา 960 00:44:20,510 --> 00:44:23,950 >> เพื่อให้ฉันไปข้างหน้าในขณะนี้ และคุณคลิก Enter 961 00:44:23,950 --> 00:44:27,490 ให้ฉัน int, 1, 2, และ ขอบคุณก็ 3 962 00:44:27,490 --> 00:44:29,900 แต่เป็นเสมอการทดสอบโปรแกรม ไม่ควรลด 963 00:44:29,900 --> 00:44:30,820 เพียงแค่พยายามที่ครั้งหนึ่งมันเคย 964 00:44:30,820 --> 00:44:35,560 ผมขอลองกรณีมุมเช่นเชิงลบ 1 ให้ฉัน 1 และที่หนึ่ง 965 00:44:35,560 --> 00:44:36,210 เช็คเอ้าท์เช่นกัน 966 00:44:36,210 --> 00:44:38,870 และฉันอาจต้องการที่จะทำมากขึ้นบาง การทดสอบอย่างเข้มงวด แต่ฉันสวย 967 00:44:38,870 --> 00:44:40,630 สะดวกสบายกับการที่ว่าที่ 968 00:44:40,630 --> 00:44:43,110 >> ดีตอนนี้ลองโปรแกรมอื่น ว่าเวลานี้ใช้เป็น 969 00:44:43,110 --> 00:44:44,620 บิตของไวยากรณ์อื่น ๆ 970 00:44:44,620 --> 00:44:46,100 ให้ฉันสร้างแฟ้มใหม่ 971 00:44:46,100 --> 00:44:51,050 ฉันจะเรียก conditions0.c นี้กับสาย ขึ้นกับบางออนไลน์รหัสตัวอย่าง 972 00:44:51,050 --> 00:44:55,550 และแจ้งให้เราไปข้างหน้าและทำ รวม cs50.h รวม 973 00:44:55,550 --> 00:45:00,320 stdio.h ในเป็นโมฆะหลัก - 974 00:45:00,320 --> 00:45:01,030 ตกลง 975 00:45:01,030 --> 00:45:01,850 มีที่เราไป 976 00:45:01,850 --> 00:45:03,010 เรามีต้นแบบมาตรฐานของเรา 977 00:45:03,010 --> 00:45:08,170 >> และในครั้งนี้ผมจะพูด printf, "ฉันต้องการ int โปรด" เพียงเพื่อ 978 00:45:08,170 --> 00:45:10,030 ทำให้พรอมต์เล็ก ๆ น้อย ๆ ที่เป็นมิตรมากขึ้น 979 00:45:10,030 --> 00:45:11,620 และตอนนี้ฉันต้องการได้รับ int จากผู้ใช้ 980 00:45:11,620 --> 00:45:15,010 ฉันจะเรียกมันว่า n เวลานี้เพียงแค่ เพราะ n เสียงเหมือนจำนวน 981 00:45:15,010 --> 00:45:18,140 GetInt และตอนนี้สิ่งที่ทำ ฉันต้องการจะทำกับมันได้หรือ 982 00:45:18,140 --> 00:45:21,640 ดีถ้า n คือ - และฉันจะซูมใน - 983 00:45:21,640 --> 00:45:25,930 ถ้า n มากกว่า 0 ผมต้องการ ทำต่อไปนี้ - 984 00:45:25,930 --> 00:45:36,060 printf "คุณจะเลือกเป็นจำนวนบวก." อื่นฉันจะพิมพ์ printf "คุณ 985 00:45:36,060 --> 00:45:37,870 เลือกลบ 986 00:45:37,870 --> 00:45:39,650 จำนวน. "ทุกขวา 987 00:45:39,650 --> 00:45:44,410 ดังนั้นโปรแกรมนี้แม้ว่าฉันไม่ได้ ได้อย่างรวดเร็วและมีลักษณะที่เหมาะสม syntactically 988 00:45:44,410 --> 00:45:45,010 ให้ฉันลองนี้ 989 00:45:45,010 --> 00:45:46,890 ทำให้สภาพ 0 990 00:45:46,890 --> 00:45:47,710 ดูเหมือนว่าจะทำงาน 991 00:45:47,710 --> 00:45:49,230 0 สภาพใส่ 992 00:45:49,230 --> 00:45:51,910 ขอให้มัน int จาก 50 993 00:45:51,910 --> 00:45:53,160 ฉันเลือกจำนวนบวก 994 00:45:53,160 --> 00:45:54,230 ลองอีกครั้ง 995 00:45:54,230 --> 00:45:54,930 0 สภาพ 996 00:45:54,930 --> 00:45:56,260 เชิงลบ 50 997 00:45:56,260 --> 00:45:57,290 ฉันเลือกจำนวนลบ 998 00:45:57,290 --> 00:46:00,350 >> แต่ตอนนี้ให้ฉันเลือกสิ่งที่เราจะเก็บ เรียกกรณีมุมซึ่งเป็นอะไรที่ 999 00:46:00,350 --> 00:46:04,702 กรณีที่น่าสนใจที่คุณคิดว่า อาจทำให้คุณปัญหาบางอย่าง 0 1000 00:46:04,702 --> 00:46:07,940 ตอนนี้ผมค่อนข้างมั่นใจว่านี่คือหนึ่งใน กรณีที่มุมที่เป็นศูนย์ 1001 00:46:07,940 --> 00:46:12,330 ทั้งในเชิงบวกหรือเชิงลบดังนั้นฉัน โปรแกรม แต่ใน syntactically 1002 00:46:12,330 --> 00:46:15,440 แก้ไข - มันคอมไพล์มันวิ่ง - ไม่ได้มีเหตุผลที่ถูกต้อง 1003 00:46:15,440 --> 00:46:21,050 ดังนั้นการแก้ไขที่ง่ายคือสิ่งที่นี่ถ้าฉันต้องการ ในการตรวจสอบถ้าผมต้องการที่จะจัดการกับ n 1004 00:46:21,050 --> 00:46:23,840 เท่ากับ 0 แยกต่างหาก? 1005 00:46:23,840 --> 00:46:32,980 >> ดังนั้นถ้า n เท่ากับ 0 แล้วฉันต้องการจะบอก สิ่งที่ต้องการ printf "คุณเลือก 0." 1006 00:46:32,980 --> 00:46:33,990 ให้ฉันลองนี้ในขณะนี้ 1007 00:46:33,990 --> 00:46:38,320 ปล่อยฉันไปกลับมาที่นี่ให้ล้าง หน้าต่างของฉันและคอมไพล์ 1008 00:46:38,320 --> 00:46:38,690 หือ 1009 00:46:38,690 --> 00:46:39,770 หนึ่งข้อผิดพลาดสร้าง 1010 00:46:39,770 --> 00:46:41,630 แต่คุณทำฉันต้องการตรวจสอบ ถ้า n เท่ากับ 0 1011 00:46:41,630 --> 00:46:44,230 1012 00:46:44,230 --> 00:46:47,720 >> ดังนั้นอีกครั้งอีกหนึ่งสิ่งที่โง่ ในการรับใช้, เครื่องหมายเท่ากับเป็น 1013 00:46:47,720 --> 00:46:48,910 ดำเนินการมอบหมาย 1014 00:46:48,910 --> 00:46:52,240 ดังนั้นนี้เป็นจริงความผิดพลาดในการที่, เทคนิคแม้ว่าคอมไพเลอร์ 1015 00:46:52,240 --> 00:46:56,450 ป้องกันฉันจากตัวเองที่เราต้องการ เทคนิคที่ได้รับการคัดลอกลงใน n 0 ซึ่ง 1016 00:46:56,450 --> 00:46:57,590 ไม่ได้เป็นสิ่งที่ฉันต้องการ 1017 00:46:57,590 --> 00:47:00,950 ฉันต้องการทดสอบเพื่อความเท่าเทียมกัน ด้วยเท่ากับเท่ากับ 1018 00:47:00,950 --> 00:47:03,390 และอื่น ๆ ที่ตอนนี้อาจจะมี ทางออกที่ดีกว่าฉัน 1019 00:47:03,390 --> 00:47:07,810 >> ให้ฉันจริงบันทึกใหม่นี้ตามกล่าว conditions1 จะใหม่และปรับปรุง 1020 00:47:07,810 --> 00:47:10,480 ดังนั้นตอนนี้ถ้าฉัน recompile นี้ มันจะทำให้เงื่อนไข - 1021 00:47:10,480 --> 00:47:16,960 ขออภัย - ให้ conditions1 เฉือนจุด conditions1 ป้อน "ฉันต้องการ int, 1022 00:47:16,960 --> 00:47:18,760 โปรด. "ฉันจะไป ไปข้างหน้าและพิมพ์ 50 1023 00:47:18,760 --> 00:47:19,660 ก็ยังคงดี 1024 00:47:19,660 --> 00:47:21,200 เชิงลบ 50 ยังดี 1025 00:47:21,200 --> 00:47:24,920 0 และมันจริงตรวจพบ ที่ฉันเลือก 0 1026 00:47:24,920 --> 00:47:28,200 >> ฉันสามารถดังนั้นสิ่งที่ทำมากขึ้นในขณะนี้? 1027 00:47:28,200 --> 00:47:32,280 ดีเราสามารถทำได้อย่างแน่นอนมากขึ้น สิ่งที่ซับซ้อน 1028 00:47:32,280 --> 00:47:37,240 แต่สิ่งที่ผมอยากจะนำเสนอคือ ที่เราสิ้นสุดในบันทึกนี้ที่นี่ 1029 00:47:37,240 --> 00:47:41,680 ถ้าเราดึงขึ้นนี้คุณจะเห็นบางที การ์ตูนที่ชื่นชอบของคุณ 1030 00:47:41,680 --> 00:47:43,326 จนถึงวันนี้คุณอาจ ไม่เคยมีความเข้าใจ 1031 00:47:43,326 --> 00:47:46,550 1032 00:47:46,550 --> 00:47:49,520 และที่เกี่ยวกับคุณภาพของเสียงหัวเราะ คุณควรจะได้รับเรื่องตลกกับ CS 1033 00:47:49,520 --> 00:47:51,060 ดังนั้นที่ถูกต้องเกี่ยวกับ 1034 00:47:51,060 --> 00:47:54,900 >> แต่ที่ร้องขอฉันคิดว่าฉันต้องการ ให้เราทีเซอร์เล็กน้อยสำหรับจันทร์ 1035 00:47:54,900 --> 00:47:56,430 ดังนั้นเราจึงเริ่มใช้จำนวนเต็ม 1036 00:47:56,430 --> 00:47:57,510 เราจะเรียกว่าลอย 1037 00:47:57,510 --> 00:48:00,120 เราได้เรียกว่าแม้จะคู่ผสม ซึ่งอีกครั้งให้คุณตัวเลข 1038 00:48:00,120 --> 00:48:01,390 หลังจากจุดทศนิยม 1039 00:48:01,390 --> 00:48:04,230 >> แต่ปรากฎว่าลอยและ คู่และจริงๆคอมพิวเตอร์, 1040 00:48:04,230 --> 00:48:08,470 พื้นฐานที่ไม่สามารถแสดง บางค่าได้อย่างแม่นยำ 1041 00:48:08,470 --> 00:48:12,840 เรารู้จากชั้นเรียนคณิตศาสตร์ที่คุณสามารถ มีจำนวนตัวเลขใด ๆ หลังจากที่ 1042 00:48:12,840 --> 00:48:13,510 จุดทศนิยม 1043 00:48:13,510 --> 00:48:16,460 และคุณยังสามารถวางแถบแนวตั้ง ที่จะพูดเหล่านี้ไปอยู่กับคุณตลอด 1044 00:48:16,460 --> 00:48:18,810 >> แต่น่าเสียดายที่คุณไม่สามารถจริงๆ ทำในคอมพิวเตอร์ 1045 00:48:18,810 --> 00:48:20,400 และเพื่อให้กรณีมุมที่เกิดขึ้น 1046 00:48:20,400 --> 00:48:23,120 ตัวอย่างเช่นสมมติว่าคุณ ทำสิ่งที่ทางการเงิน 1047 00:48:23,120 --> 00:48:25,700 คุณกำลังทำคณิตศาสตร์ เปอร์เซ็นต์และ 1048 00:48:25,700 --> 00:48:27,030 กับดอลลาร์และเซนต์ 1049 00:48:27,030 --> 00:48:29,230 และเซ็นต์เหล่านั้นไม่ได้ จำเป็นต้องขึ้นบรรทัด 1050 00:48:29,230 --> 00:48:34,120 ดีก็จะเปิดออกเศษส่วนที่ เพนนีสามารถเริ่มต้นที่จะเพิ่มขึ้นเมื่อ 1051 00:48:34,120 --> 00:48:37,250 การสร้างแบบจำลองด้วยระบบคอมพิวเตอร์ ในลักษณะที่ฉลาด 1052 00:48:37,250 --> 00:48:39,100 มนุษย์สามารถใช้ประโยชน์ 1053 00:48:39,100 --> 00:48:42,650 >> และบรรดาผู้ที่ยังไม่ได้เห็นผม ต้องการให้คุณทีเซอร์ 30 วินาทีจาก 1054 00:48:42,650 --> 00:48:48,290 ภาพยนตร์ยอดเยี่ยมที่รู้จักกันเป็นพื้นที่สำนักงาน, ซึ่งจะวาดภาพของ 1055 00:48:48,290 --> 00:48:51,205 ปัญหาที่เราจะต้องจัดการ สิ่งแรกในวันจันทร์ที่ 1056 00:48:51,205 --> 00:48:53,960 ถ้าเราสามารถเพิ่มปริมาณ นิด ๆ หน่อย ๆ ผมให้คุณ 30 1057 00:48:53,960 --> 00:48:55,495 วินาทีของพื้นที่สำนักงาน 1058 00:48:55,495 --> 00:48:55,770 >> [เล่นภาพวิดีโอ] 1059 00:48:55,770 --> 00:48:59,000 >> -ฉันหมายความว่าคุณยังไม่ได้รับการแสดง ขึ้นและคุณได้รับเพื่อให้งานของคุณ 1060 00:48:59,000 --> 00:49:00,620 >> จริงผมได้รับการเลื่อน 1061 00:49:00,620 --> 00:49:03,240 >> -ฉันสามารถเขียนโปรแกรมไวรัสที่ต้องการ สถานที่ตัดออกครั้งใหญ่ที่ 1062 00:49:03,240 --> 00:49:04,430 >> -ดีก็วิธีจะทำงานอย่างไร 1063 00:49:04,430 --> 00:49:06,782 >> ทุกครั้งที่มีการทำธุรกรรมของธนาคาร ที่ดอกเบี้ยจะคำนวณและมี 1064 00:49:06,782 --> 00:49:10,160 หลายพันวัน, คอมพิวเตอร์สิ้นสุด กับเศษส่วนเหล่านี้จากร้อยละ 1065 00:49:10,160 --> 00:49:12,030 >> แต่ผมไม่ได้ไป ทำอะไรที่ผิดกฎหมาย 1066 00:49:12,030 --> 00:49:12,660 >> -Illegal? 1067 00:49:12,660 --> 00:49:15,075 กลั้วนี้เป็นอเมริกา 1068 00:49:15,075 --> 00:49:16,570 >> -เราต้องสาบานต่อพระเจ้า 1069 00:49:16,570 --> 00:49:19,070 >> ถ้าไม่มีใครรู้เกี่ยวกับเรื่องนี้ แต่เราขวาทั้งหมดหรือไม่ 1070 00:49:19,070 --> 00:49:21,920 ไม่มีสมาชิกในครอบครัวไม่มี แฟนไม่มีใคร, 1071 00:49:21,920 --> 00:49:22,700 >> -แน่นอน 1072 00:49:22,700 --> 00:49:23,320 >> ตกลงกัน 1073 00:49:23,320 --> 00:49:24,280 >> -ห้ามกังวลมนุษย์ 1074 00:49:24,280 --> 00:49:25,640 ฉันจะไม่บอกใครอย่างใดอย่างหนึ่ง 1075 00:49:25,640 --> 00:49:26,504 >> [เล่นวิดีโอจบ] 1076 00:49:26,504 --> 00:49:30,030 >> DAVID ลัน: ดังนั้นนี่ก็คือ CS50, ที่เป็นพื้นที่สำนักงานและมันจะทั้งหมด 1077 00:49:30,030 --> 00:49:31,465 ทำให้ความรู้สึกในวันจันทร์ 1078 00:49:31,465 --> 00:49:33,940 ดูแล้วคุณ 1079 00:49:33,940 --> 00:49:37,880 >> เล่าเรื่อง: CS50 ต่อไปที่ร็อบ ปรับให้ถูกปิด 1080 00:49:37,880 --> 00:49:39,130 แผนอาหารฮาวาร์ด 1081 00:49:39,130 --> 00:49:56,160