1 00:00:00,000 --> 00:00:03,353 >> [เล่นเพลง] 2 00:00:03,353 --> 00:00:04,842 3 00:00:04,842 --> 00:00:06,050 DAVID ลัน: สวัสดีทุกคน 4 00:00:06,050 --> 00:00:07,777 นี่คือ supersection CS50 ของ 5 00:00:07,777 --> 00:00:09,860 ส่วนที่ได้รับมอบหมายจะไม่ เริ่มต้นอีกสัปดาห์ 6 00:00:09,860 --> 00:00:11,580 ดังนั้นในวันนี้ฉันอยู่ที่นี่ with-- 7 00:00:11,580 --> 00:00:12,122 >> มาเรีย: มาเรีย 8 00:00:12,122 --> 00:00:14,163 DAVID ลัน: --to จริง ดูที่ปัญหา 9 00:00:14,163 --> 00:00:16,110 ตั้งหนึ่งของหลักสูตร สัปดาห์แรกของวัสดุ 10 00:00:16,110 --> 00:00:19,780 คุณได้รับการมุ่งเน้นกับ IDE CS50 บิต ลินุกซ์ระบบปฏิบัติการที่ 11 00:00:19,780 --> 00:00:22,290 ที่ทำงานบน IDE เช่นเดียวกับ ดูที่บางส่วนของการเปลี่ยนแปลง 12 00:00:22,290 --> 00:00:25,730 จากรอยขีดข่วนที่จะ C ชั้นนำ ถึงปัญหาที่เกิดขึ้นตั้งหนึ่ง 13 00:00:25,730 --> 00:00:28,340 >> โดยไม่ต้องกังวลใจต่อไป ปัญหาในการตั้งค่าหนึ่ง 14 00:00:28,340 --> 00:00:30,520 คุณกำลังจะได้รับ แนะนำให้รู้จักกับ CS50 IDE ซึ่ง 15 00:00:30,520 --> 00:00:33,230 คือการเขียนโปรแกรมบนเว็บนี้ สภาพแวดล้อมที่เราใช้ในการสั่งซื้อ 16 00:00:33,230 --> 00:00:34,280 ในการเขียนโปรแกรม 17 00:00:34,280 --> 00:00:37,280 มันถูกออกแบบให้มีลักษณะมาก เตือนความทรงจำของคอมพิวเตอร์ทั่วไป 18 00:00:37,280 --> 00:00:39,430 ระบบที่ใช้ปฏิบัติการ ระบบที่เรียกว่าลินุกซ์ 19 00:00:39,430 --> 00:00:42,440 แต่มันอยู่ในระบบคลาวด์ที่เรียกว่า ซึ่งหมายความว่าทุกคนในชั้นเรียน 20 00:00:42,440 --> 00:00:45,100 จริงจะมีของเขาหรือเธอ บัญชีของตัวเองและใช้งานได้เป็นอย่างดี 21 00:00:45,100 --> 00:00:48,950 >> ดังนั้นส่วนใหญ่ของคุณอาจจะไม่เคยใช้ สภาพแวดล้อมลินุกซ์ก่อนหรืออาจจะ 22 00:00:48,950 --> 00:00:50,447 แม้สภาพแวดล้อมที่บรรทัดคำสั่ง 23 00:00:50,447 --> 00:00:52,280 และบรรทัดคำสั่ง สภาพแวดล้อมที่แตกต่างกัน 24 00:00:52,280 --> 00:00:53,200 มันเป็นเรื่องเกี่ยวกับใจทั้งหมด 25 00:00:53,200 --> 00:00:54,730 มันเป็นคำสั่งแป้นพิมพ์ทั้งหมด 26 00:00:54,730 --> 00:00:59,480 และก็ไม่มีการเลื่อนเมาส์ที่ไอคอนไม่มี ไม่มีหน้าต่างสนทนาไม่มีเมนู 27 00:00:59,480 --> 00:01:00,212 มันเป็นข้อความอย่างหมดจด 28 00:01:00,212 --> 00:01:01,920 ดังนั้นในตอนแรกมันชนิด ของความรู้สึกเหมือนขั้นตอน 29 00:01:01,920 --> 00:01:04,434 ย้อนกลับไปในแง่ของความซับซ้อน 30 00:01:04,434 --> 00:01:06,600 แต่มันสิ้นสุดขึ้นเป็นจำนวนมาก มีประสิทธิภาพมากขึ้นอย่างแน่นอน 31 00:01:06,600 --> 00:01:08,510 สำหรับนักวิทยาศาสตร์คอมพิวเตอร์ในท้ายที่สุด 32 00:01:08,510 --> 00:01:09,540 >> ดังนั้นลองมาดู 33 00:01:09,540 --> 00:01:13,850 นี่ฉันที่ CS50.io ผ่านที่ คุณสามารถเข้าสู่ CS50 IDE 34 00:01:13,850 --> 00:01:17,414 และเหมือนในรอยขีดข่วนมี สามพื้นที่หลักในหน้าจอนี้ 35 00:01:17,414 --> 00:01:20,080 ดังนั้นในด้านซ้ายมือเรามี สิ่งที่จะเป็นเบราว์เซอร์ไฟล์ 36 00:01:20,080 --> 00:01:22,413 และมีโฟลเดอร์นี้ที่ ด้านบนซึ่งเป็นตอนนี้ว่างเปล่า 37 00:01:22,413 --> 00:01:24,690 ตั้งแต่ผมได้กำจัดทั้งหมดของฉัน ไฟล์ก่อน supersection 38 00:01:24,690 --> 00:01:27,599 และนั่นคือสิ่งที่เราจะ บันทึกไฟล์ซีที่เราเขียน 39 00:01:27,599 --> 00:01:30,890 ที่ด้านบนขวาเรามีสถานที่ที่ ทั้งหมดของรหัสของเราจะได้รับการเขียน 40 00:01:30,890 --> 00:01:34,610 และแน่นอนถ้าฉันคลิกบวกนี้นี้ เป็นไปเพื่อให้ฉันเลือกแฟ้มใหม่ 41 00:01:34,610 --> 00:01:38,310 และที่นี่ฉันสามารถเริ่มต้นการเขียนรหัส C หรือ จริงๆจำนวนภาษาอื่น ๆ 42 00:01:38,310 --> 00:01:42,670 >> และจากนั้นที่ด้านล่างที่มัน กล่าวว่า jharvard @ ide50-- และของคุณจะ 43 00:01:42,670 --> 00:01:45,080 พูดอะไรบางอย่างเล็ก ๆ น้อย ๆ different-- สิ่งที่ได้นี้เรียกว่า? 44 00:01:45,080 --> 00:01:48,644 45 00:01:48,644 --> 00:01:49,310 หน้าต่าง terminal 46 00:01:49,310 --> 00:01:49,570 ใช่. 47 00:01:49,570 --> 00:01:51,810 ดังนั้นหน้าต่าง terminal เป็น บรรทัดคำสั่งที่เรียกว่า 48 00:01:51,810 --> 00:01:55,540 อินเตอร์เฟซที่ผ่านที่คุณสามารถโต้ตอบ กับระบบปฏิบัติการที่รองรับ 49 00:01:55,540 --> 00:01:58,220 และสำหรับตอนนี้เรากำลังจะไป ทำให้การใช้งานน้อยมาก this-- 50 00:01:58,220 --> 00:02:01,170 เพียงเพื่อรวบรวมไปดูที่ ข้อผิดพลาดที่เราเห็น 51 00:02:01,170 --> 00:02:02,347 และเรียกใช้โปรแกรมของเรา 52 00:02:02,347 --> 00:02:04,680 แต่ในที่สุดเราจะ ที่จะทำมากขึ้นเช่นกัน 53 00:02:04,680 --> 00:02:07,490 และคุณยังสามารถติดตั้งซอฟต์แวร์ และการบริหารจัดการพื้นที่ทำงานของคุณ 54 00:02:07,490 --> 00:02:09,066 ภายใน CS50 IDE เช่นเดียว 55 00:02:09,066 --> 00:02:10,440 แต่เพิ่มเติมว่าบางเวลาอื่น ๆ 56 00:02:10,440 --> 00:02:12,689 >> ถ้าอย่างนั้นเราไปข้างหน้าและเขียน โปรแกรมที่ง่ายมากเพียงแค่ 57 00:02:12,689 --> 00:02:15,064 ไปผ่านอุ่นเครื่อง hello.c ซึ่งอาจจะเป็น 58 00:02:15,064 --> 00:02:16,480 โปรแกรมที่ง่ายเราสามารถเขียน 59 00:02:16,480 --> 00:02:18,330 ผมได้เปิดขึ้นแล้วแท็บใหม่ 60 00:02:18,330 --> 00:02:24,310 ฉันจะไปข้างหน้าและ รวมถึงการพูด io.h. มาตรฐาน 61 00:02:24,310 --> 00:02:25,325 แล้ว int main (void) 62 00:02:25,325 --> 00:02:28,930 63 00:02:28,930 --> 00:02:35,200 และแล้ว printf ("สวัสดีโลก" n เครื่องหมายคำพูดอย่างใกล้ชิด 64 00:02:35,200 --> 00:02:39,480 วงเล็บใกล้ชิดและอัฒภาค 65 00:02:39,480 --> 00:02:39,990 >> ทั้งหมดขวา 66 00:02:39,990 --> 00:02:41,700 ดังนั้นตอนนี้สังเกตเห็นหน้าต่างของฉันคือไม่ได้ตั้งชื่อ 67 00:02:41,700 --> 00:02:44,840 ดังนั้นฉันไปอย่างรวดเร็ว ที่จะขึ้นไปที่ File, Save 68 00:02:44,840 --> 00:02:46,910 และมันเป็นสิ่งสำคัญที่ ที่ผมเรียกนี้ไม่ได้ "สวัสดี". 69 00:02:46,910 --> 00:02:49,243 ดังนั้นความผิดพลาดที่พบบ่อยมาก โดยเฉพาะอย่างยิ่งปัญหาการตั้งค่าหนึ่ง 70 00:02:49,243 --> 00:02:52,530 คือการตั้งใจเพียงโทรของคุณ โปรแกรม "น้ำ" หรือ "โลภ" หรือ "มาริโอ" 71 00:02:52,530 --> 00:02:53,890 หรือ "เครดิต" หรือชอบ 72 00:02:53,890 --> 00:02:55,970 แต่คุณต้องการจริงที่จะทำให้ แน่ใจว่าคุณมีนามสกุลไฟล์ 73 00:02:55,970 --> 00:02:58,928 เพราะนี่เป็นวิธีเดียวที่ คอมไพเลอร์และยังเป็นบรรณาธิการรหัส 74 00:02:58,928 --> 00:03:00,710 รู้ว่าคุณ จริงเขียนรหัส C 75 00:03:00,710 --> 00:03:02,280 เพื่อให้ฉันไปข้างหน้าและคลิกบันทึก 76 00:03:02,280 --> 00:03:05,710 >> และตอนนี้ก็เช่นกันสิ่งที่ CS50 IDE ได้ทำสำหรับเราคือก็ยัง 77 00:03:05,710 --> 00:03:07,120 ไวยากรณ์เน้นทุกอย่าง 78 00:03:07,120 --> 00:03:08,822 ดังนั้นก็ทำทุกอย่างที่มีสีสันมาก 79 00:03:08,822 --> 00:03:10,780 และวัตถุประสงค์ทั้ง ที่ไม่ได้ทำงาน 80 00:03:10,780 --> 00:03:14,290 มันเป็นเพียงแค่การวาดตาของฉันไป แนวคิดชิ้นส่วนต่างๆ 81 00:03:14,290 --> 00:03:15,310 ของโปรแกรมนี้ 82 00:03:15,310 --> 00:03:17,570 ถ้าอย่างนั้นเราไปข้างหน้าและรวบรวมนี้ 83 00:03:17,570 --> 00:03:19,490 และผมสามารถรวบรวมนี้ ในสองวิธี 84 00:03:19,490 --> 00:03:22,010 และในสัปดาห์ที่หนึ่ง ทางโรงเรียนเก่าที่เราทำ 85 00:03:22,010 --> 00:03:26,250 มันเป็นตัวอักษรที่ คำสั่ง line-- "เสียงดังกราว hello.c." 86 00:03:26,250 --> 00:03:27,596 แล้วฉันกด Enter 87 00:03:27,596 --> 00:03:29,720 และไม่มีอะไรที่น่าจะเกิดขึ้น ในหน้าต่าง terminal 88 00:03:29,720 --> 00:03:32,654 แต่สิ่งที่ไม่เปลี่ยนแปลงใน IDE? 89 00:03:32,654 --> 00:03:35,320 ที่ไหนอีกครั้ง IDE ก็หมายความว่า แบบบูรณาการการพัฒนาสิ่งแวดล้อม 90 00:03:35,320 --> 00:03:38,360 มันเป็นวิธีที่จินตนาการของบอก นี้พัฒนาแบบบูรณา 91 00:03:38,360 --> 00:03:40,620 สภาพแวดล้อมในการพัฒนาซอฟแวร์ 92 00:03:40,620 --> 00:03:42,477 ดังนั้นสิ่งที่ไม่เปลี่ยนแปลงใน UI? 93 00:03:42,477 --> 00:03:44,310 สิ่งที่คุณแจ้งให้ทราบล่วงหน้า ที่แตกต่างกันมาเรีย? 94 00:03:44,310 --> 00:03:47,100 >> มาเรีย: สิ่งที่ผมสังเกตเห็น ภายใต้ IDE50 โฟลเดอร์ได้ที่นี่ 95 00:03:47,100 --> 00:03:47,850 >> DAVID ลัน: ใช่ 96 00:03:47,850 --> 00:03:50,230 ดังนั้นที่นี่ไม่เพียง แต่ เราจะมี "hello.c." 97 00:03:50,230 --> 00:03:53,120 นอกจากนี้เรายังมี "a.out" ซึ่งเป็น ชนิดของชื่อใบ้สำหรับโปรแกรมที่ 98 00:03:53,120 --> 00:03:56,430 แต่แน่นอนว่ามันเป็นชื่อเริ่มต้นสำหรับ โปรแกรมเมื่อคุณเพียงแค่รวบรวมรหัสของคุณ 99 00:03:56,430 --> 00:03:59,110 และไม่ได้บอกคอมไพเลอร์ สิ่งที่ไฟล์เพื่อส่งออก 100 00:03:59,110 --> 00:04:01,790 ดังนั้นถ้าผมต้องการที่จะทำงานนี้ผม ต้องบอก compiler-- 101 00:04:01,790 --> 00:04:05,340 หรือมากกว่าที่ฉันต้อง บอกพื้นที่ทำงานที่ฉัน 102 00:04:05,340 --> 00:04:09,780 ต้องการที่จะเรียกใช้โปรแกรมที่เรียกว่า "a.out." 103 00:04:09,780 --> 00:04:10,550 เข้าสู่ 104 00:04:10,550 --> 00:04:12,474 และมี "สวัสดี โลก. "ตอนนี้" ./ " 105 00:04:12,474 --> 00:04:13,390 เป็นสิ่งที่สำคัญจริง 106 00:04:13,390 --> 00:04:16,050 ถึงแม้ว่าเราจะได้ตามปกติ เขียนชื่อของคำสั่งที่ 107 00:04:16,050 --> 00:04:19,060 เมื่อมันเป็นโปรแกรมคุณได้ เขียนคุณไม่ต้องการที่จะพูดว่า "./" 108 00:04:19,060 --> 00:04:22,460 เพราะที่บอกอย่างชัดเจนลินุกซ์ ที่คุณต้องการที่จะเรียกใช้โปรแกรมที่เรียกว่า 109 00:04:22,460 --> 00:04:26,930 "a.out" ที่อยู่ในนี้ที่จุด หมายถึงไดเรกทอรีนี้ว่าผมอยู่ในปัจจุบัน 110 00:04:26,930 --> 00:04:31,600 ในที่เกิดขึ้นจะ พื้นที่ทำงานที่เรียกว่า "a.out 111 00:04:31,600 --> 00:04:35,410 เพราะถ้าฉันเพียงแค่บอกว่า "a.out" ใส่ ฉันจะได้รับ "คำสั่งไม่ a.out 112 00:04:35,410 --> 00:04:38,035 พบ "เพราะ computer-- เพราะผมคิดค้น "a.out" 113 00:04:38,035 --> 00:04:40,910 มันไม่ได้มาพร้อมกับ computer-- ไม่ทราบว่าจะมองหามัน 114 00:04:40,910 --> 00:04:43,590 แม้ว่ามันจะเหมาะสม ภายใต้จมูกของฉันเพื่อที่จะพูด 115 00:04:43,590 --> 00:04:44,090 ตกลง. 116 00:04:44,090 --> 00:04:49,910 ดังนั้นเราจึงอาจมีการเปลี่ยนแปลงนี้ เป็น "เสียงดังกราว -o สวัสดี hello.c." 117 00:04:49,910 --> 00:04:53,030 และถ้าผมตีใส่สิ่งที่โปรแกรม นี้เป็นไปเพื่อการส่งออกสำหรับฉันหรือไม่ 118 00:04:53,030 --> 00:04:55,710 ชื่อของไฟล์คืออะไร? 119 00:04:55,710 --> 00:04:57,500 ใช่ในด้านหลัง 120 00:04:57,500 --> 00:04:58,479 ถูกตัอง. "สวัสดี." 121 00:04:58,479 --> 00:05:00,520 ดังนั้น "สวัสดี" เป็นไปได้ ชื่อของโปรแกรม 122 00:05:00,520 --> 00:05:04,610 เพราะเราได้ใช้สิ่งที่เรียกว่า คำสั่งอาร์กิวเมนต์บรรทัดซึ่งเป็นเพียง 123 00:05:04,610 --> 00:05:08,120 วิธีการของการเปลี่ยนแปลงพฤติกรรมของผู้ที่ คอมไพเลอร์เพื่อส่งออกจริง 124 00:05:08,120 --> 00:05:09,450 ชื่อแฟ้มที่เฉพาะเจาะจง 125 00:05:09,450 --> 00:05:12,400 และแน่นอนถ้าผมซูม ออกมาและมองขึ้นไปที่นี่ 126 00:05:12,400 --> 00:05:17,430 ตอนนี้ผมยังไม่ได้เท่านั้น "a.out" และ "hello.c" แต่ยัง "สวัสดี" เช่นเดียว 127 00:05:17,430 --> 00:05:22,410 ดังนั้นตอนนี้ฉันสามารถทำได้ "./hello," Enter 128 00:05:22,410 --> 00:05:23,640 และมี "สวัสดีโลก." 129 00:05:23,640 --> 00:05:25,640 แต่ lastly-- นี้ ในขณะนี้จะประชุม 130 00:05:25,640 --> 00:05:27,590 เราใช้ตลอด ภาคการศึกษา typically-- 131 00:05:27,590 --> 00:05:30,070 คุณยังสามารถเพียงแค่พูดว่า "ทำให้สวัสดี." 132 00:05:30,070 --> 00:05:33,370 และแน่นอนมันบอกว่ามันขึ้นอยู่ วันที่เพราะมันมีอยู่แล้ว 133 00:05:33,370 --> 00:05:37,860 ให้ฉันไปข้างหน้าและลบด้วย คำสั่ง RM ทั้ง "a.out" - 134 00:05:37,860 --> 00:05:39,644 และพูดว่า "เอา a.out แฟ้มปกติ?" 135 00:05:39,644 --> 00:05:41,810 นั่นก็หมายความว่าเป็นคุณ แน่ใจหรือว่าต้องการที่จะลบมันได้หรือไม่ 136 00:05:41,810 --> 00:05:42,880 ฉันจะบอกว่าใช่ 137 00:05:42,880 --> 00:05:46,690 และแล้วฉันจะลบ "สวัสดี" แต่ไม่ "hello.c." 138 00:05:46,690 --> 00:05:49,920 ฉันจะพูดว่า "ใช่" อย่างชัดเจน แต่ "Y" ก็เพียงพอแล้วเช่นกัน 139 00:05:49,920 --> 00:05:52,140 >> และตอนนี้ถ้าผมแจ้งให้ทราบล่วงหน้า พิมพ์ ls-- ซึ่งการเรียกคืน 140 00:05:52,140 --> 00:05:55,540 มันหมายความว่า list-- แสดงทั้งหมด ของไฟล์ในโฟลเดอร์ของฉัน 141 00:05:55,540 --> 00:05:57,850 และแน่นอนถ้าผมซูม ออกมาและมองไปที่มุมบนซ้าย 142 00:05:57,850 --> 00:05:59,730 มันยืนยันว่าสิ่งที่ ในโฟลเดอร์นี้แม้ 143 00:05:59,730 --> 00:06:04,990 แม้ว่าจะระบุว่าเป็น IDE50 ที่นี่ และพื้นที่ทำงานไม่ได้ก็เพียง "hello.c." 144 00:06:04,990 --> 00:06:09,152 ดังนั้นตอนนี้ลงมาที่นี่ถ้าฉัน ไม่ "ทำให้สวัสดี" Enter, 145 00:06:09,152 --> 00:06:12,360 ตอนนี้ฉันเห็นคำสั่งนาน แต่ คำสั่งที่ซับซ้อนมากขึ้นที่จะ 146 00:06:12,360 --> 00:06:13,940 ที่จะเป็นประโยชน์ในสัปดาห์ที่ผ่านมา 147 00:06:13,940 --> 00:06:16,720 และตอนนี้ฉันสามารถพูดว่า "./hello." 148 00:06:16,720 --> 00:06:19,257 >> ดังนั้นลองมาแนะนำอย่างรวดเร็ว บางคำสั่งลินุกซ์อื่น ๆ 149 00:06:19,257 --> 00:06:21,840 แล้วทำไมเราไม่ใช้ขั้นตอน กลับมาจริงและมองไปที่ C มากขึ้น 150 00:06:21,840 --> 00:06:25,020 โดยทั่วไปการเปลี่ยนจากรอยขีดข่วน ไปที่ C และจากนั้นปิดท้ายด้วยการดู 151 00:06:25,020 --> 00:06:27,305 ที่ปัญหาแรก ตั้งอยู่ในซีทั้งหมดขวา 152 00:06:27,305 --> 00:06:30,430 ดังนั้นฉันจะไปข้างหน้าและเพียงแค่ทำความสะอาด ขึ้นพื้นที่ทำงานของฉันกับการควบคุม-L เพียง 153 00:06:30,430 --> 00:06:31,429 เพื่อให้หน้าจอเรียบร้อย 154 00:06:31,429 --> 00:06:33,520 แต่ที่มีการทำงานไม่มี ผลกระทบเป็นอย่างอื่น 155 00:06:33,520 --> 00:06:35,820 >> จำได้ว่าเราเคยเห็น ไม่กี่คำสั่งในขณะนี้ 156 00:06:35,820 --> 00:06:39,900 ดังนั้นเราจึงได้เห็นเสียงดังกราวซึ่งโดยทั่วไปคุณ จะไม่ได้มีการดำเนินการด้วยตนเองอีกต่อไป 157 00:06:39,900 --> 00:06:41,650 เราจะใช้แทนให้ 158 00:06:41,650 --> 00:06:45,290 แต่เรายังเห็นคำสั่ง ls ซึ่งแสดงให้เห็น รายชื่อของไฟล์ในไดเรกทอรีของฉัน 159 00:06:45,290 --> 00:06:48,750 และตอนนี้ทำไม there-- มีสอง ไฟล์ตอนนี้ "สวัสดี" และ "hello.c." 160 00:06:48,750 --> 00:06:52,240 ทำไมจึงมีดาวหรือ ดอกจันหลังจาก "สวัสดี"? 161 00:06:52,240 --> 00:06:54,900 อะไรที่มีความหมายตาม ในสิ่งที่เราเห็นในหนึ่งสัปดาห์? 162 00:06:54,900 --> 00:06:58,852 163 00:06:58,852 --> 00:07:00,400 คุณคิดอย่างไร? 164 00:07:00,400 --> 00:07:02,742 ดาวมีความหมายว่าอย่างไร 165 00:07:02,742 --> 00:07:04,614 >> มาเรีย: For-- โปรแกรม "สวัสดี" หรือไม่? 166 00:07:04,614 --> 00:07:05,530 DAVID ลัน: "สวัสดีครับ *" 167 00:07:05,530 --> 00:07:06,330 ใช่. 168 00:07:06,330 --> 00:07:07,760 โอ้ใช่? 169 00:07:07,760 --> 00:07:08,639 โอ้ปฏิบัติการ 170 00:07:08,639 --> 00:07:09,180 ถูกตัอง. 171 00:07:09,180 --> 00:07:10,890 ดังนั้นหมายความว่า "สวัสดี" เป็นที่ปฏิบัติการ 172 00:07:10,890 --> 00:07:13,430 ดังนั้นแน่นอนว่าทำไม ที่ฉันสามารถทำได้ "./hello." 173 00:07:13,430 --> 00:07:13,930 ทั้งหมดขวา 174 00:07:13,930 --> 00:07:15,179 ดังนั้นอะไรที่ฉันสามารถทำได้ในที่นี่? 175 00:07:15,179 --> 00:07:17,290 ดีก็จะเปิดออกที่ฉันสามารถทำได้ นอกจากนี้ยังสร้างไดเรกทอรี 176 00:07:17,290 --> 00:07:20,924 เพื่อให้ฉันไปข้างหน้าและสร้าง ตัวอย่างเช่น "pset1 directory" 177 00:07:20,924 --> 00:07:23,590 และปัญหาที่กำหนดสเปค จะช่วยให้คุณทำตรงนี้ 178 00:07:23,590 --> 00:07:25,260 ดังนั้นคุณจึงไม่ต้องจำไว้ในวันนี้ 179 00:07:25,260 --> 00:07:27,340 แต่ "mkdir pset1" ดูเหมือนว่า ที่จะมีผลกระทบ 180 00:07:27,340 --> 00:07:30,540 แต่อีกครั้งไม่มีข้อผิดพลาด โดยทั่วไปเป็นสิ่งที่ดี 181 00:07:30,540 --> 00:07:34,060 ดังนั้นถ้าผมพิมพ์ ls "" now-- อาตอนนี้ ฉันมีแฟ้มที่ปฏิบัติการที่เรียกว่า 182 00:07:34,060 --> 00:07:36,570 "สวัสดี" ไฟล์ C ที่เรียกว่า "hello.c." 183 00:07:36,570 --> 00:07:40,860 แล้วเฉือนท้ายเพื่อที่จะ พูดหมายความว่านี้เป็นไดเรกทอรี 184 00:07:40,860 --> 00:07:42,510 >> ดังนั้นแน่นอนตอนนี้ฉันต้องการที่จะเปิดมัน 185 00:07:42,510 --> 00:07:45,730 และฉันไม่ดับเบิลคลิกที่มันเหมือน ใน GUI เป็นสภาพแวดล้อมแบบกราฟิก 186 00:07:45,730 --> 00:07:48,550 ฉันแทนที่จะพูดว่า "ซีดี pset1." 187 00:07:48,550 --> 00:07:49,640 เข้าสู่ 188 00:07:49,640 --> 00:07:53,100 ไม่มีอะไรที่น่าสนใจดูเหมือนว่าจะมี ยกเว้นเกิดขึ้นพร้อมรับคำน้อยของฉัน 189 00:07:53,100 --> 00:07:57,300 here-- นี้เป็นวิธีที่ลินุกซ์เตือน ฉันที่ฉันดังนั้นสิ่งที่โฟลเดอร์เปิด 190 00:07:57,300 --> 00:08:00,080 มันเป็นเพียงแค่บอกฉันอย่างชัดเจน เมื่อเทียบกับกราฟิก 191 00:08:00,080 --> 00:08:05,100 และถ้าผมพิมพ์ ls "" ทำไมฉันจะดูอีก แจ้งทันทีที่คุณคิดว่า 192 00:08:05,100 --> 00:08:07,269 เมื่อฉันรายการเนื้อหาของ pset1 หรือไม่ 193 00:08:07,269 --> 00:08:09,310 มาเรีย: คุณอาจจะไม่ มีอะไรอยู่ในนั้น 194 00:08:09,310 --> 00:08:09,630 DAVID ลัน: ใช่ 195 00:08:09,630 --> 00:08:11,510 ดังนั้นแล้วเราไม่ได้เห็นได้ชัด สร้างสิ่งที่อยู่ในนั้น 196 00:08:11,510 --> 00:08:13,150 เพราะผมเพิ่งสร้างไดเรกทอรี 197 00:08:13,150 --> 00:08:17,690 ตอนนี้ถ้าผมต้องการที่จะสร้าง file-- สำหรับ เช่นผมสามารถสร้างไฟล์ใหม่ 198 00:08:17,690 --> 00:08:20,190 แล้วฉันจะไป บันทึกและบันทึกเป็น 199 00:08:20,190 --> 00:08:23,090 เช่น "mario.c" ถ้าคุณกำลังทำ รุ่นมาตรฐานของ pset หนึ่ง 200 00:08:23,090 --> 00:08:27,610 และแล้วเหมือน Mac หรือ PC เพียง เลือกโฟลเดอร์ "pset1 บันทึก 201 00:08:27,610 --> 00:08:28,740 และตอนนี้ไฟล์ที่ว่างเปล่า 202 00:08:28,740 --> 00:08:31,160 แต่ขอซูมเข้าอีกครั้งเป็นครั้งที่สอง 203 00:08:31,160 --> 00:08:32,470 ขอทำคำสั่ง ls ที่นี่ 204 00:08:32,470 --> 00:08:34,470 ตอนนี้เราเห็น "mario.c" 205 00:08:34,470 --> 00:08:37,850 >> จึงมีคำสั่งอื่น ๆ บางที่ มีมูลค่าการรักษาในใจมากกว่า time-- 206 00:08:37,850 --> 00:08:41,200 ชัดเจนหรือควบคุม-L คือสิ่งที่ฉันได้ รับการตี; mkdir ที่เราเคยเห็น; 207 00:08:41,200 --> 00:08:45,240 RM เราได้เห็นเป็นอย่างดีซึ่งเป็น สำหรับการลบหรือลบไฟล์ 208 00:08:45,240 --> 00:08:49,310 ระวังคุณสามารถ also-- และถ้าคุณดู บทเรียนออนไลน์ที่คุณจะ rm -rf 209 00:08:49,310 --> 00:08:52,630 เป็นวิธีที่ใช้กันมากในการพูด ลบโฟลเดอร์ที่มีสิ่งที่อยู่ในนั้น 210 00:08:52,630 --> 00:08:54,280 เพียงแค่เป็นซุปเปอร์ระวังสุด 211 00:08:54,280 --> 00:08:58,780 -rf หมายความซ้ำ ลบสิ่งที่เป็น 212 00:08:58,780 --> 00:09:01,150 คุณกำลังพยายามที่จะลบ และบังคับให้ลบ 213 00:09:01,150 --> 00:09:04,630 ดังนั้นวิธีการเรียกซ้ำถ้าเป็นโฟลเดอร์ที่มี โฟลเดอร์ที่มีโฟลเดอร์ที่มีโฟลเดอร์, 214 00:09:04,630 --> 00:09:05,690 ลบทั้งหมดของพวกเขา 215 00:09:05,690 --> 00:09:08,680 และบังคับให้หมายความว่าทำไม่ได้ ถามฉันใช่หรือไม่, ฉันแน่ใจหรือไม่? 216 00:09:08,680 --> 00:09:11,960 ดังนั้นมันจึงเป็นวิธีที่อันตรายสุดของ การลบจำนวนมากของสิ่งที่ได้อย่างรวดเร็ว 217 00:09:11,960 --> 00:09:17,210 แต่ beware-- บ่อยเกินไปไม่กล้าหาญ นักเรียนตั้งใจลบพูด pset 218 00:09:17,210 --> 00:09:18,000 หนึ่งตัวอย่างเช่น 219 00:09:18,000 --> 00:09:19,833 >> มาเรีย: และถ้าพวกเขาเพียงแค่ ทำ -r พวกเขากำลังจะ 220 00:09:19,833 --> 00:09:21,870 จะถามพวกเขาเกี่ยวกับทุกไฟล์เดียว 221 00:09:21,870 --> 00:09:22,790 >> DAVID ลัน: ซึ่งเป็น ที่น่ารำคาญในระดับปานกลาง 222 00:09:22,790 --> 00:09:23,480 >> มาเรีย: ใช่ 223 00:09:23,480 --> 00:09:25,813 >> DAVID ลัน: ดังนั้นที่ว่าทำไม จำนวนมากของเรารวมอยู่ด้วยตนเอง 224 00:09:25,813 --> 00:09:27,070 ฉันอยู่ในนิสัยของการใช้ -rf 225 00:09:27,070 --> 00:09:27,861 แต่มันเป็นเรื่องที่อันตราย 226 00:09:27,861 --> 00:09:29,010 ดังนั้นผู้ซื้อระวัง 227 00:09:29,010 --> 00:09:31,050 และแล้ว mv เป็นชนิดของ การตั้งชื่อที่น่าสนใจ 228 00:09:31,050 --> 00:09:33,600 ดังนั้นนี่คือคำสั่งย้าย ที่รู้สึกแปลก ๆ 229 00:09:33,600 --> 00:09:37,260 แน่นอนเพราะคุณสามารถใช้มันเพื่อ ย้ายไฟล์จากที่หนึ่งไปยังอีก 230 00:09:37,260 --> 00:09:39,970 ตัวอย่างเช่นสมมติว่าผม messed ขึ้น 231 00:09:39,970 --> 00:09:43,660 สมมติว่าผมสร้าง ไฟล์ใหม่สำหรับ pset 232 00:09:43,660 --> 00:09:46,320 และผมบันทึกไว้ว่า "greedy.c." 233 00:09:46,320 --> 00:09:49,970 แต่สมมติว่าฉันตั้งใจบันทึกไว้ ใน IDE50-- ดังนั้นในพื้นที่ทำงานของฉันเอง 234 00:09:49,970 --> 00:09:51,580 และไม่อยู่ใน pset1 235 00:09:51,580 --> 00:09:53,960 >> คุณสามารถมองเห็นได้มากที่ด้านบนซ้าย 236 00:09:53,960 --> 00:09:55,284 มี "greedy.c." 237 00:09:55,284 --> 00:09:56,450 และมีการแก้ปัญหาไม่กี่ 238 00:09:56,450 --> 00:09:58,324 ดังนั้นหนึ่งที่ผมสามารถใช้ สุดทางที่ใช้งานง่าย 239 00:09:58,324 --> 00:09:59,740 เพียงลากและวางมัน 240 00:09:59,740 --> 00:10:01,910 และนั่นจะเป็นจริง แก้ไขปัญหานี้ 241 00:10:01,910 --> 00:10:04,967 แต่วันนี้เรากำลังพยายามที่จะดู ความลับในวิธีที่มีประสิทธิภาพมากขึ้น แต่ 242 00:10:04,967 --> 00:10:05,550 การทำเช่นนี้ 243 00:10:05,550 --> 00:10:07,880 เพื่อให้ฉันใช้ ls "" ใน pset1 244 00:10:07,880 --> 00:10:09,690 และผมเห็นเพียง "mario.c." 245 00:10:09,690 --> 00:10:13,450 ให้ฉันไปข้างหน้าและทำ "cd .. " 246 00:10:13,450 --> 00:10:15,320 ดังนั้นซีดีอีกครั้งเป็นไดเรกทอรีการเปลี่ยนแปลง 247 00:10:15,320 --> 00:10:18,130 ".. " หมายถึงสิ่งที่ว่า? 248 00:10:18,130 --> 00:10:21,100 ครั้งสุดท้ายที่ผมบอกว่า "ซีดี pset1 "ที่จะเข้าไปใน pset1 249 00:10:21,100 --> 00:10:24,360 ดังนั้นเมื่อผมบอกว่า "cd .. " สิ่งที่ฉันทำ? 250 00:10:24,360 --> 00:10:24,910 ไปข้างหลัง 251 00:10:24,910 --> 00:10:25,150 ใช่. 252 00:10:25,150 --> 00:10:26,750 >> ดังนั้นจึงเป็นไปได้ที่ผู้ปกครองที่เรียกว่า 253 00:10:26,750 --> 00:10:29,730 ขึ้นไประดับหนึ่งเช่น ออกจากโฟลเดอร์ 254 00:10:29,730 --> 00:10:30,500 ดังนั้นใส่ 255 00:10:30,500 --> 00:10:31,900 และแน่นอนสิ่งที่มีลักษณะที่มันทำ 256 00:10:31,900 --> 00:10:37,070 มันย้ายฉันเพียงแค่เข้าไปในพื้นที่ทำงานแทน การเข้า pset1 ซึ่งอยู่ในพื้นที่ทำงาน 257 00:10:37,070 --> 00:10:39,710 และตอนนี้ถ้าผมพิมพ์ ls "" มีทั้งกลุ่มของสิ่งที่ 258 00:10:39,710 --> 00:10:41,650 ในนั้นคือ "greedy.c" 259 00:10:41,650 --> 00:10:48,720 ดังนั้นตอนนี้ให้ฉันใช้ mv ที่แท้จริง ย้าย "greedy.c" ใน pset1 260 00:10:48,720 --> 00:10:51,120 และอื่น ๆ จำนวนมากที่มีคำสั่ง Linux ทำงานตรงเช่นนี้ 261 00:10:51,120 --> 00:10:54,470 พวกเขาใช้เวลาการขัดแย้งใดหรือพวกเขาใช้เวลาหนึ่ง การโต้แย้งหรือพวกเขาใช้เวลาสองบรรทัดคำสั่ง 262 00:10:54,470 --> 00:10:55,449 ข้อโต้แย้งและอื่น ๆ 263 00:10:55,449 --> 00:10:57,240 และในกรณีนี้ก็ ทำในสิ่งที่ตัวอักษร 264 00:10:57,240 --> 00:11:01,670 มันบอกว่าแม้ว่า succinctly-- ย้ายเข้า pset1 greedy.c 265 00:11:01,670 --> 00:11:02,310 เข้าสู่ 266 00:11:02,310 --> 00:11:03,310 ดูเหมือนว่าไม่มีอะไรที่จะเกิดขึ้น 267 00:11:03,310 --> 00:11:06,180 แต่ถ้าผมทำคำสั่ง ls อีกครั้งโลภจะหายไป 268 00:11:06,180 --> 00:11:12,437 และถ้าผมทำ "ซีดี pset1" ใส่แล้ว คำสั่ง ls อีกครั้งตอนนี้มันอยู่ในสถานที่ที่เหมาะสม 269 00:11:12,437 --> 00:11:14,270 เช่นกันถ้า บาง reason-- โดยเฉพาะอย่างยิ่ง 270 00:11:14,270 --> 00:11:16,194 ถ้าคุณมีความต่อเนื่อง เชื่อมต่อเครือข่าย 271 00:11:16,194 --> 00:11:18,360 หรือคุณกำลังเดินไปรอบ ๆ มหาวิทยาลัยที่มีฝาปิดแล็ปท็อปของคุณ 272 00:11:18,360 --> 00:11:20,180 ปิดแล้วเปิดมันขึ้นมา อีกครั้งและพื้นที่ทำงานของคุณ 273 00:11:20,180 --> 00:11:21,730 ดูเหมือนว่าค่อนข้างออกจากซิงค์ไม่มีเรื่องใหญ่ 274 00:11:21,730 --> 00:11:23,646 เพียงแค่โหลดเบราว์เซอร์ของคุณ หน้าต่างและมันควรจะเป็น 275 00:11:23,646 --> 00:11:26,339 resync เพื่อให้ซ้ายมือ เบราเซอร์ไฟล์ดูว่า 276 00:11:26,339 --> 00:11:27,380 เช่นหน้าต่าง terminal 277 00:11:27,380 --> 00:11:27,921 ไม่ต้องกังวล 278 00:11:27,921 --> 00:11:31,460 เมื่อสงสัยโหลดหน้าดังนั้น ตราบใดที่คุณได้บันทึกไฟล์ที่มีอยู่แล้ว 279 00:11:31,460 --> 00:11:31,960 ตกลง. 280 00:11:31,960 --> 00:11:34,710 ดังนั้น mv นอกจากนี้ยังสามารถใช้ในการเปลี่ยนชื่อไฟล์ 281 00:11:34,710 --> 00:11:36,760 และให้ดูที่ คำสั่งนี้เป็นครั้งสุดท้ายที่นี่ 282 00:11:36,760 --> 00:11:39,950 ดังนั้น suppose-- และนี่คือ ที่พบบ่อยสุดเกินไปในช่วงต้น 283 00:11:39,950 --> 00:11:46,400 นักเรียนบางคนในบางครั้งสร้างไฟล์ เรียกว่าขอ say-- สิ่งที่คนอื่น? 284 00:11:46,400 --> 00:11:47,730 ชอบ "WATER.C." 285 00:11:47,730 --> 00:11:51,080 ดังนั้นฉันจะตะโกนสำหรับ ไม่มีเหตุผลในตัวพิมพ์ใหญ่ทั้งหมด 286 00:11:51,080 --> 00:11:53,190 แต่นี้ไม่ได้เป็น ชื่อที่ถูกต้องสำหรับแฟ้ม 287 00:11:53,190 --> 00:11:56,660 ถ้าเพียงเพราะปัญหาของเราตั้ง สเปคไม่ได้บอกคุณ 288 00:11:56,660 --> 00:11:59,430 เพื่อบัน​​ทึกแฟ้มเป็นตัวพิมพ์ใหญ่ทั้งหมด "WATER.C." 289 00:11:59,430 --> 00:12:01,320 แต่เราคาดหวังว่า "water.c" ตัวพิมพ์เล็ก 290 00:12:01,320 --> 00:12:03,140 และในความเป็นจริงนี้ ปัญหาเพราะ check50, 291 00:12:03,140 --> 00:12:04,370 โปรแกรมที่คุณกำลังจะ เพื่อตอบสนองปัญหา 292 00:12:04,370 --> 00:12:07,350 ตั้งหนึ่งที่ทดสอบโดยอัตโนมัติ ความถูกต้องของรหัสของคุณ 293 00:12:07,350 --> 00:12:11,615 เป็นไปเสียงโห่ร้องที่คุณถ้ามันไม่สามารถ พบ "water.c" ในการพิมพ์เล็กทั้งหมด 294 00:12:11,615 --> 00:12:12,712 >> ดังนั้นผมจึงจำเป็นที่จะต้องแก้ไขปัญหานี้ 295 00:12:12,712 --> 00:12:14,920 ดังนั้นวิธีการที่แตกต่างกันไป ทำเช่นนี้เป็นครั้งแรกที่ 296 00:12:14,920 --> 00:12:18,330 จะควบคุมคลิกหรือคลิกขวา ชื่อไฟล์และเปลี่ยนเพียงเปลี่ยนชื่อ 297 00:12:18,330 --> 00:12:19,740 ปรับทั้งหมดจะทำอย่างนั้น 298 00:12:19,740 --> 00:12:21,820 แต่อีกครั้งในวันนี้เรามา ทำมันชอบเล่นเล็ก ๆ น้อย ๆ 299 00:12:21,820 --> 00:12:26,680 ลองใช้ mv ที่จะเปลี่ยน "WATER.C" กับ "water.c." 300 00:12:26,680 --> 00:12:30,690 ดังนั้นคุณยังสามารถใช้อาร์กิวเมนต์แรก ที่จะเปลี่ยนชื่อเป็นอาร์กิวเมนต์ที่สอง 301 00:12:30,690 --> 00:12:34,455 ถ้าอาร์กิวเมนต์ที่สองไม่ได้ใน ความเป็นจริงโฟลเดอร์หรือชื่อไดเรกทอรี 302 00:12:34,455 --> 00:12:35,120 >> ทั้งหมดขวา 303 00:12:35,120 --> 00:12:39,560 และสุดท้ายเป็น trick-- เล็ก ๆ น้อย ๆ เพื่อให้ผมอยู่ใน ไดเรกทอรีพื้นที่ทำงานของฉันในขณะนี้ 304 00:12:39,560 --> 00:12:43,660 ถ้าผมต้องการที่จะได้รับใน pset หนึ่ง แน่นอนฉันสามารถพิมพ์ "cd pset1." 305 00:12:43,660 --> 00:12:47,260 แต่มันก็น่าเบื่อมากที่จะพิมพ์ "pset1" หรือ อีกต่อไปชื่อไฟล์หรือชื่อไดเรกทอรี 306 00:12:47,260 --> 00:12:47,980 ยังคง 307 00:12:47,980 --> 00:12:51,960 ดังนั้นมากมักจะอยู่ในลินุกซ์สิ่งที่ ที่คุณสามารถทำได้คือการเริ่มต้นพิมพ์ "PSE" 308 00:12:51,960 --> 00:12:56,100 และเพิ่งได้รับเบื่อกด Tab และให้ รูปคอมพิวเตอร์ออกสำหรับคุณ 309 00:12:56,100 --> 00:12:58,190 ประโยชน์ที่จะได้รับสุดยอดเป็นนิสัยที่ 310 00:12:58,190 --> 00:13:01,079 จับเพียงอย่างเดียวคือถ้าคุณมี หลายไฟล์หรือโฟลเดอร์เริ่มต้น 311 00:13:01,079 --> 00:13:02,870 ด้วยตัวอักษร "p" หรือ "PS" ที่คุณอาจมี 312 00:13:02,870 --> 00:13:05,525 พิมพ์อีกไม่กี่ก่อน คอมพิวเตอร์รู้ว่าจะทำอย่างไร 313 00:13:05,525 --> 00:13:06,820 >> มาเรีย: เราชอบทางลัด 314 00:13:06,820 --> 00:13:08,695 >> DAVID ลัน: นี้จะ ช่วยให้คุณประหยัดเวลามาก 315 00:13:08,695 --> 00:13:11,930 และยังที่เรากล่าวว่าในการบรรยายคุณ สามารถเลื่อนขึ้นในประวัติศาสตร์ขึ้นและลง 316 00:13:11,930 --> 00:13:15,461 เพื่อหาสิ่งที่ดำเนินการเมื่อเร็ว ๆ นี้ คำสั่งเป็นอย่างดี 317 00:13:15,461 --> 00:13:15,960 ทั้งหมดขวา 318 00:13:15,960 --> 00:13:20,904 ดังนั้นตอนนี้ขอหันความสนใจของเรากลับมา เพื่อเป็นโปรแกรมที่ง่ายสวัสดีโลก 319 00:13:20,904 --> 00:13:22,195 ดังนั้นเราจึงได้รวบรวมนี้ว่า 320 00:13:22,195 --> 00:13:24,050 และตอนนี้ทำไมเราไม่ใช้ ดูที่ชนิดข้อมูล 321 00:13:24,050 --> 00:13:26,776 แล้วเปลี่ยนจากบางส่วน ที่สอดคล้องกันรอยขีดข่วนที่จะบล็อกซี 322 00:13:26,776 --> 00:13:27,400 มาเรีย: น่ากลัว 323 00:13:27,400 --> 00:13:30,031 ดังนั้นขณะนี้ที่คุณได้เริ่มต้น การเขียนโปรแกรมใน C, 324 00:13:30,031 --> 00:13:32,530 เรากำลังจะเริ่มต้นพูดคุย เกี่ยวกับชนิดข้อมูลและตัวแปร 325 00:13:32,530 --> 00:13:37,570 ดังนั้นบางชนิดข้อมูลที่คุณ ต้องการที่จะรู้ว่าเริ่มต้นในขณะนี้ 326 00:13:37,570 --> 00:13:39,400 จะเป็นคนที่มี ไฮไลต์ในสีฟ้า 327 00:13:39,400 --> 00:13:42,420 ดังนั้นเราจึงมี int แรก ซึ่งย่อมาจากจำนวนเต็ม 328 00:13:42,420 --> 00:13:46,075 และนั่นถือเป็นจำนวนเต็มเป็นคุณ อาจมี guessed-- ดังนั้น 1, 2, 3, 329 00:13:46,075 --> 00:13:47,950 และเลขอื่น ๆ ที่คุณสามารถคิด 330 00:13:47,950 --> 00:13:48,730 >> DAVID ลัน: และยังเชิงลบ 331 00:13:48,730 --> 00:13:50,220 >> มาเรีย: และยังคนที่เป็นลบครับ 332 00:13:50,220 --> 00:13:51,450 และ 0 333 00:13:51,450 --> 00:13:54,250 แล้วเรามีลอยซึ่ง จะลอยหมายเลขจุด 334 00:13:54,250 --> 00:13:58,360 ดังนั้นนั่นคือทั้งหมดที่ตัวเลขจริง ที่มีจุดทศนิยม 335 00:13:58,360 --> 00:14:03,960 ดังนั้น 5.0, 5.2 และมากยิ่งขึ้น ตัวเลขหลังจุดทศนิยม, 336 00:14:03,960 --> 00:14:05,620 เป็นอย่างดีและยังมีคนที่เป็นลบ 337 00:14:05,620 --> 00:14:07,530 แล้วเรามีถ่านซึ่งเป็นตัวอักษร 338 00:14:07,530 --> 00:14:10,240 ดังนั้นผมจึงคิดว่าเราพูดคุยเกี่ยวกับ นี้ในการบรรยายในวันนี้ 339 00:14:10,240 --> 00:14:15,682 แต่เรามีตัวอักษรสำหรับ example-- A, B, C-- ที่สามารถเก็บไว้เป็นถ่าน 340 00:14:15,682 --> 00:14:18,390 แต่เราก็มีสัญลักษณ์มากขึ้น ที่สามารถเก็บไว้เป็นถ่าน 341 00:14:18,390 --> 00:14:22,380 และผู้ที่จะถูกเก็บเป็น ASCII 342 00:14:22,380 --> 00:14:25,280 >> และแล้วเรามีบูล, ซึ่งเป็น Booleans 343 00:14:25,280 --> 00:14:29,067 และผู้ประเมินจริงหรือ ที่เป็นเท็จหรือ 1 คนและ 0 ตามลำดับ 344 00:14:29,067 --> 00:14:31,650 DAVID ลัน: และเรียกคืนว่า บูลมาจากห้องสมุด CS50 345 00:14:31,650 --> 00:14:33,300 ดังนั้นจึงไม่ได้สร้างไว้ C แต่ก็มีประโยชน์สุด 346 00:14:33,300 --> 00:14:34,850 ที่จะมีความคิดของความจริงและเท็จ 347 00:14:34,850 --> 00:14:36,990 และแม้ว่าคุณ อาจ think-- จริงสนุก 348 00:14:36,990 --> 00:14:43,700 บูลเทคนิคมีความต้องการวิธีการหลายบิต อย่างแท้จริงที่จะเป็นตัวแทนที่แท้จริงเมื่อเทียบกับเท็จ? 349 00:14:43,700 --> 00:14:47,910 กี่บิตที่คุณคิดว่า คุณจะต้อง, ที่สุด? 350 00:14:47,910 --> 00:14:48,790 ใช่เพียงหนึ่ง 351 00:14:48,790 --> 00:14:52,077 ดังนั้นจึงปรากฎว่า C ไม่สามารถให้คุณเพียงแค่หนึ่งบิต 352 00:14:52,077 --> 00:14:54,160 หน่วยที่เล็กที่สุดของการวัด คุณจะได้รับแปด 353 00:14:54,160 --> 00:14:57,090 ดังนั้นจึงเป็นที่สิ้นเปลืองน้อยพวกเขาคุณ ใช้ไบต์ทั้งหมดหรือแปดบิต 354 00:14:57,090 --> 00:14:58,340 เพื่อเป็นตัวแทนจริงหรือเท็จ 355 00:14:58,340 --> 00:15:01,807 แต่นั่นเป็นเพียงวิธีที่มันเป็น นำมาใช้ใน C โดยห้องสมุด CS50 356 00:15:01,807 --> 00:15:04,890 มาเรีย: และแล้วคนที่เรา จะไม่พูดคุยเกี่ยวกับการเป็นอย่างกว้างขวาง 357 00:15:04,890 --> 00:15:08,060 สิทธิ now-- คู่ ที่ลอยที่ใหญ่กว่า 358 00:15:08,060 --> 00:15:09,811 ยาวยาวและระยะสั้น นอกจากนี้ยังมีจำนวนเต็ม 359 00:15:09,811 --> 00:15:10,643 DAVID ลัน: แท้จริง 360 00:15:10,643 --> 00:15:13,190 ในรุ่นแฮ็กเกอร์ของ pset หนึ่ง เราจริงใช้นาน 361 00:15:13,190 --> 00:15:15,801 แต่สำหรับรุ่นมาตรฐาน มันไม่ควรจะเป็นสิ่งที่จำเป็น 362 00:15:15,801 --> 00:15:16,300 มาเรีย: เย็น 363 00:15:16,300 --> 00:15:17,361 ตกลง. 364 00:15:17,361 --> 00:15:20,110 ดังนั้น operators-- คุณควรจะ อาจคุ้นเคยกับที่สุดของเหล่านี้ 365 00:15:20,110 --> 00:15:22,620 นอกจากนี้ +; ลบ - 366 00:15:22,620 --> 00:15:24,070 สำหรับการคูณเรามี * 367 00:15:24,070 --> 00:15:25,900 ดังนั้นไม่ X ที่เรามักจะใช้ 368 00:15:25,900 --> 00:15:27,840 ส่วนที่เรามีเครื่องหมาย 369 00:15:27,840 --> 00:15:31,380 และโมดูโลเป็นผู้ดำเนินการที่ผ่านมาของเราที่ เราจะไปพูดคุยเกี่ยวกับในขณะนี้ 370 00:15:31,380 --> 00:15:35,610 มันเป็นผู้ประกอบการที่ช่วยให้เราไปยัง ใช้เวลาที่เหลือของส่วนที่ 371 00:15:35,610 --> 00:15:40,630 ดังนั้นถ้าเรามี 4% 2, 4 แบ่ง 2 คือ 2 กับส่วนที่เหลือของ 0 372 00:15:40,630 --> 00:15:41,740 ดังนั้น 4% 2 เป็น 0 373 00:15:41,740 --> 00:15:42,950 4% 3 เป็น 1 374 00:15:42,950 --> 00:15:44,870 4% 5 คือ 4, ในขณะที่คุณอาจจะเดาได้ 375 00:15:44,870 --> 00:15:48,860 และจำไว้ว่าเมื่อมีการใช้สิ่งเหล่านี้ ผู้ประกอบการที่จะใช้กฎ PEMDAS 376 00:15:48,860 --> 00:15:54,060 >> DAVID ลัน: ดังนั้นต้องมีความชัดเจนถ้าคุณ ทำ 4% 2 ทำไมที่ 0, ว่า? 377 00:15:54,060 --> 00:15:57,480 >> มาเรีย: เพราะ 4 หารด้วย 2 คือ 2 กับส่วนที่เหลือของ 0 378 00:15:57,480 --> 00:16:00,752 ดังนั้นโมดูโลที่เหลือจะช่วยให้เราเป็นที่ เมื่อเทียบกับผลของการแบ่งที่ 379 00:16:00,752 --> 00:16:02,960 DAVID ลัน: และแน่นอน สิ่งที่เราจะพบว่านี้เป็นประโยชน์ 380 00:16:02,960 --> 00:16:05,640 สำหรับที่อยู่ในปัญหาบางอย่าง ที่ไม่จำเป็นต้องเป็นหนึ่ง 381 00:16:05,640 --> 00:16:08,040 ถ้าคุณต้องการที่จะมี ผลของการ จำกัด ตัวเอง 382 00:16:08,040 --> 00:16:10,720 ในช่วงของตัวเลข เช่น 0 ถึงบางสิ่งบางอย่าง 383 00:16:10,720 --> 00:16:13,904 คุณสามารถใช้โมดูโลห่อรอบ ก่อนหน้านี้กว่าเช่น 2000000000 384 00:16:13,904 --> 00:16:16,320 หรือมูลค่า 4 พันล้านว่า เราได้พูดคุยเกี่ยวกับในการบรรยาย 385 00:16:16,320 --> 00:16:16,870 >> มาเรีย: ใช่ 386 00:16:16,870 --> 00:16:19,429 และแม้แต่ใน "โลภ" เราอาจจะ 387 00:16:19,429 --> 00:16:21,345 DAVID ลัน: ใช่ใน ปัญหาการตั้งค่าอย่างใดอย่างหนึ่งเช่นกัน 388 00:16:21,345 --> 00:16:22,520 มาเรีย: ใช่ดี 389 00:16:22,520 --> 00:16:24,340 DAVID ลัน: คำแนะนำที่ดี 390 00:16:24,340 --> 00:16:25,750 มาเรีย: ขออภัย 391 00:16:25,750 --> 00:16:28,590 บูลีนเพื่อ expressions-- สำหรับผู้ประกอบการบูลีน 392 00:16:28,590 --> 00:16:31,770 เราจะไปพูดคุยเกี่ยวกับทุก ของเหล่านี้ที่คุณดูที่นี่ 393 00:16:31,770 --> 00:16:35,310 ดังนั้นตอนนี้เรามีสอง เครื่องหมายเท่ากับที่ระบุไว้สำหรับเท่ากับ 394 00:16:35,310 --> 00:16:38,650 ดังนั้นผู้ที่มีการเปรียบเทียบ 395 00:16:38,650 --> 00:16:40,830 ที่ทำให้เราได้เห็นเพียงหนึ่งเท่ากับการเข้าสู่ระบบ 396 00:16:40,830 --> 00:16:44,870 นั่นคือเมื่อเรากำหนด คุ้มค่าให้กับตัวแปร 397 00:16:44,870 --> 00:16:50,160 ดังนั้นหากเราได้เห็น int n = 5 แล้ว เราได้รับมอบหมายให้ไป 5 n ตัวแปร 398 00:16:50,160 --> 00:16:55,600 แต่ถ้าเราต้องการที่จะใช้สำหรับ == เปรียบเทียบเราสามารถตรวจสอบว่า n == 5 399 00:16:55,600 --> 00:16:58,310 และถ้า n == 5 แล้วว่าเป็นความจริง 400 00:16:58,310 --> 00:17:01,950 >> ดังนั้นผู้ประกอบการบูลีน ช่วยให้เราโดยทั่วไป 401 00:17:01,950 --> 00:17:04,670 การประเมินแบบบูล การแสดงออกที่จะจริงหรือเท็จ 402 00:17:04,670 --> 00:17:07,819 ดังนั้นไม่ equals-- เรามี เครื่องหมายอัศเจรีย์และเท่าเทียมกัน 403 00:17:07,819 --> 00:17:14,240 ดังนั้นเรายังสามารถตรวจสอบว่า n ไม่เท่ากับ 5-- ดังนั้น n! = 5 404 00:17:14,240 --> 00:17:17,640 น้อยกว่าน้อยกว่าหรือเท่ากับ สูงกว่า, มากกว่าหรือเท่ากับ 405 00:17:17,640 --> 00:17:20,720 และแล้วเราก็มีตรรกะ AND และตรรกะหรือ 406 00:17:20,720 --> 00:17:24,060 และผู้ที่ช่วยให้เราสามารถประเมิน การแสดงออกบูลีนต่างๆเข้าด้วยกัน 407 00:17:24,060 --> 00:17:27,930 โดยทั่วไปจะมารวมกันเป็น หนึ่งทั้งนิพจน์บูลีน 408 00:17:27,930 --> 00:17:34,970 ดังนั้นหากเราต้องการที่จะหาตัวเลขบอกว่า ที่มากกว่า 5 แต่น้อยกว่า 15 409 00:17:34,970 --> 00:17:39,810 ในเวลาเดียวกันเราจะใช้ ตรรกะและผู้ประกอบการที่จะดูว่า n คือ 410 00:17:39,810 --> 00:17:42,937 มากกว่า 5 && n น้อยกว่า 15 411 00:17:42,937 --> 00:17:44,770 DAVID ลัน: และที่นี่ เกินไปก็ง่ายจริงๆ 412 00:17:44,770 --> 00:17:47,290 ในช่วงต้นของการตั้งใจ ใช้เพียงเครื่องหมายเดียว 413 00:17:47,290 --> 00:17:48,572 หรือแถบแนวตั้งเดียว 414 00:17:48,572 --> 00:17:51,280 และหวังว่าคอมไพเลอร์จะ เสียงโห่ร้องที่คุณเพราะพวกเขาเป็นจริง 415 00:17:51,280 --> 00:17:52,530 มีความหมายที่แตกต่างกันมาก 416 00:17:52,530 --> 00:17:55,660 สำหรับผู้ที่อยากรู้อยากเห็นพวกเขากำลัง ใช้สำหรับการดำเนินงานค่าที่เหมาะสม 417 00:17:55,660 --> 00:17:57,197 การดำเนินงานในแต่ละบิต 418 00:17:57,197 --> 00:17:58,780 แต่คุณจะต้องการคู่ของพวกเขาที่นี่ 419 00:17:58,780 --> 00:18:01,560 และที่สำคัญสุดคือ คนแรกที่เข้าสู่ระบบเท่ากัน 420 00:18:01,560 --> 00:18:05,270 ซึ่งเป็นผู้ประกอบการความเท่าเทียมกันในฐานะ เมื่อเทียบกับผู้ประกอบการที่ได้รับมอบหมาย 421 00:18:05,270 --> 00:18:08,552 >> มาเรีย: และแถบแนวตั้งเป็น ตั้งอยู่ระหว่างลบและผลตอบแทน 422 00:18:08,552 --> 00:18:09,260 DAVID ลัน: ใช่ 423 00:18:09,260 --> 00:18:11,420 ในแบบฉบับของแป้นพิมพ์ของสหรัฐอเมริกา 424 00:18:11,420 --> 00:18:13,190 >> มาเรีย: อ๋อ 425 00:18:13,190 --> 00:18:15,890 ดังนั้นขอกระโดดลง งบเงื่อนไข 426 00:18:15,890 --> 00:18:18,300 ในรอยขีดข่วนคุณได้ เห็นแล้วอาจจะ 427 00:18:18,300 --> 00:18:22,730 ถ้างบที่ช่วยให้คุณ ตรวจสอบว่าสิ่งที่เป็นจริงแล้ว 428 00:18:22,730 --> 00:18:23,660 ทำอย่างอื่น 429 00:18:23,660 --> 00:18:28,410 ดังนั้นคุณอาจจะต้องการ เพื่อตรวจสอบว่าเป็นผีของคุณ 430 00:18:28,410 --> 00:18:31,410 สัมผัสบางเทพดาอื่น ๆ หรือเส้นขอบของหน้าจอของคุณ 431 00:18:31,410 --> 00:18:35,520 แล้วคุณอาจจะต้องการที่จะ จบเกมหรือทำอย่างอื่น 432 00:18:35,520 --> 00:18:40,000 ดังนั้นไวยากรณ์สำหรับว่า คือ "ถ้า (เงื่อนไข)." 433 00:18:40,000 --> 00:18:46,820 ดังนั้นถ้าผีของคุณจะสัมผัสบางสิ่งบางอย่าง แล้วทำอยู่ภายในวงเล็บปีกกา 434 00:18:46,820 --> 00:18:48,980 >> แล้วเรามีงบถ้า-อื่น 435 00:18:48,980 --> 00:18:54,080 อื่น ๆ ช่วยให้เราสามารถที่จะทำอะไร ถ้าเงื่อนไขที่เรา 436 00:18:54,080 --> 00:18:55,870 ตรวจสอบในการเริ่มต้นไม่เป็นความจริง 437 00:18:55,870 --> 00:19:01,530 ดังนั้นถ้าผีจะสัมผัส ชายแดนทำเช่นนี้อื่นทำอย่างอื่น 438 00:19:01,530 --> 00:19:04,030 ดังนั้นอย่างอื่นทำอย่างอื่น 439 00:19:04,030 --> 00:19:07,530 แล้วเรามีตัวอย่างสั้น ๆ ของเรื่องนี้ 440 00:19:07,530 --> 00:19:11,551 ดังนั้นถ้า (military_time <12) เรา ต้องการที่จะ printf "ตอนเช้าที่ดี!" 441 00:19:11,551 --> 00:19:13,300 อื่นที่เรากำลังจะไป printf "เย็นดี!" 442 00:19:13,300 --> 00:19:14,860 ตัวอย่างพื้นฐาน 443 00:19:14,860 --> 00:19:15,680 >> DAVID ลัน: ดี 444 00:19:15,680 --> 00:19:16,760 >> มาเรีย: เย็น 445 00:19:16,760 --> 00:19:18,560 ดังนั้นตอนนี้เรามีงบสวิทช์ 446 00:19:18,560 --> 00:19:21,960 สวิทช์งบในความสามารถทั่วไป ช่วยให้เราสามารถทำมากของสิ่งเดียวกัน 447 00:19:21,960 --> 00:19:25,070 ที่เราก็พูดคุยกัน เกี่ยวกับถ้างบ 448 00:19:25,070 --> 00:19:29,440 ยกตัวอย่างเช่นตอนนี้เรามี รูปแบบทั่วไปของคำสั่งสวิทช์ 449 00:19:29,440 --> 00:19:33,870 ที่ช่วยให้เราใช้ ตัวแปรที่เรียกว่า n 450 00:19:33,870 --> 00:19:37,670 และเปรียบเทียบกับจำนวนมาก ค่าที่แตกต่างซึ่งที่นี่เรา 451 00:19:37,670 --> 00:19:40,010 ได้เรียก Constant1, constant2 452 00:19:40,010 --> 00:19:41,150 เราอาจจะมีมากขึ้น 453 00:19:41,150 --> 00:19:42,930 และผู้ที่จะถูกเรียกว่ากรณี 454 00:19:42,930 --> 00:19:46,280 >> ดังนั้นถ้าเรามีสวิทช์ statement-- และผลงานนี้ 455 00:19:46,280 --> 00:19:50,580 เฉพาะสำหรับ integers-- เรามี ตัวแปรในกรณีนี้ที่ n 456 00:19:50,580 --> 00:19:53,840 ถ้า n เป็นตัวแปร เท่ากับ Constant1 เรา 457 00:19:53,840 --> 00:19:59,720 จะดำเนินการข้อมูลโค้ดบาง หรือสิ่งที่เราต้องการจะทำ 458 00:19:59,720 --> 00:20:01,280 และจากนั้นเราจะแตก 459 00:20:01,280 --> 00:20:04,820 ดังนั้นการแบ่งหมายความว่า คำสั่งสวิทช์ 460 00:20:04,820 --> 00:20:08,120 จะหยุดการดำเนินการในกรณีที่ n เท่ากับ Constant1, 461 00:20:08,120 --> 00:20:09,752 แล้วโปรแกรมของคุณจะยังคง 462 00:20:09,752 --> 00:20:11,835 มันจะออกมาจาก สลับคำสั่งและมันจะ 463 00:20:11,835 --> 00:20:13,520 ยังคงทำอย่างอื่น 464 00:20:13,520 --> 00:20:17,204 >> แต่ถ้า n ไม่เท่ากับ Constant1 แล้วกรณี constant2 465 00:20:17,204 --> 00:20:17,870 จะถูกตรวจสอบ 466 00:20:17,870 --> 00:20:21,750 ดังนั้นถ้า n เท่ากับ constant2 ที่อื่น ๆ ข้อมูลโค้ดจะถูกดำเนินการ 467 00:20:21,750 --> 00:20:23,850 และจากนั้นก็จะทำลาย ถ้าที่เท่ากับมัน 468 00:20:23,850 --> 00:20:27,580 และจากนั้นเราจะได้มี also-- ไม่ จำเป็นต้อง though-- กรณีที่เริ่มต้น 469 00:20:27,580 --> 00:20:32,290 ซึ่งจะเกิดขึ้นถ้า n ไม่เท่ากับ กรณีใดกรณีหนึ่งที่คุณได้ระบุไว้ 470 00:20:32,290 --> 00:20:35,400 และในกรณีที่เริ่มต้นเรายัง ไม่จำเป็นต้องจำเ​​ป็นต้องหยุดพัก 471 00:20:35,400 --> 00:20:39,271 เพราะคำสั่งสวิทช์จะได้รู้ว่า ที่ต้องการที่จะจบหลังจากที่เริ่มต้น 472 00:20:39,271 --> 00:20:40,270 กรณีที่หากเป็นกรณีที่ 473 00:20:40,270 --> 00:20:42,140 >> DAVID ลัน: แต่มีสไตล์, เรามักจะใส่ไว้ในนั้น 474 00:20:42,140 --> 00:20:42,540 >> มาเรีย: ใช่ 475 00:20:42,540 --> 00:20:42,710 >> DAVID ลัน: ใช่ 476 00:20:42,710 --> 00:20:44,750 ดังนั้นเฉพาะอย่างยิ่งเมื่อเริ่มออก โดยเฉพาะอย่างยิ่งถ้าในหมู่ผู้น้อย 477 00:20:44,750 --> 00:20:47,458 สะดวกสบายฉันจะส่วนตัว เพียงแค่ขอแนะนำให้ติดกับไอเอฟเอ 478 00:20:47,458 --> 00:20:51,564 และไอเอฟเอ-elses และถ้า-อื่นถ้า-elses และอื่น ๆ ถ้าเพียง 479 00:20:51,564 --> 00:20:53,480 เพราะพวกเขากำลังเล็ก ๆ น้อย ๆ ตรงไปตรงมามากขึ้น 480 00:20:53,480 --> 00:20:56,142 นี้คือการเพิ่มประสิทธิภาพที่ดีหรือ บางครั้งแม้สกอร์มัน 481 00:20:56,142 --> 00:20:57,350 ทำให้โค้ดอ่านได้มากขึ้น 482 00:20:57,350 --> 00:20:59,599 และในความเป็นจริงอาจจะ กลางภาคการศึกษาที่เราจะเห็นปัญหา 483 00:20:59,599 --> 00:21:02,504 การตั้งค่าที่มันก็ดูดีกว่า และง่ายต่อการอ่านสำหรับมนุษย์ 484 00:21:02,504 --> 00:21:03,670 โดยใช้คำสั่งสวิทช์ 485 00:21:03,670 --> 00:21:05,460 แต่ไม่ต้องกังวลเกี่ยวกับ ยึดมั่นกับเรื่องนี้เร็วเกินไป 486 00:21:05,460 --> 00:21:05,680 >> มาเรีย: ใช่ 487 00:21:05,680 --> 00:21:08,840 หากคุณมีมากถ้างบ มันอาจจะไม่สามารถอ่านได้มาก 488 00:21:08,840 --> 00:21:10,965 มันอาจจะไม่ได้อย่างรวดเร็วมาก สำหรับคุณที่จะผ่านมันไป 489 00:21:10,965 --> 00:21:13,230 ดังนั้นงบสามารถสลับ จะมีประโยชน์มากเช่นกัน 490 00:21:13,230 --> 00:21:17,900 และยังไม่ remember-- ไม่ ลืมที่จะใส่พักในที่นั่น 491 00:21:17,900 --> 00:21:20,330 >> DAVID ลัน: อย่าจำนี้ 492 00:21:20,330 --> 00:21:24,890 >> มาเรีย: เพราะแล้วคุณอาจตกอยู่ ผ่านจากที่หนึ่งไปยังอีกกรณี 493 00:21:24,890 --> 00:21:27,930 ดังนั้นขอบอกว่ากรณี Constant1 ไม่ได้มีคำสั่งพักอยู่ในนั้น 494 00:21:27,930 --> 00:21:31,920 จากนั้นเราอาจจะตกผ่าน ในกรณี constant2 495 00:21:31,920 --> 00:21:35,070 และเราไม่ต้องการที่จะทำว่าถ้า เราได้มาถึงแล้วกรณี Constant1 496 00:21:35,070 --> 00:21:37,830 และก็เท่ากับ n 497 00:21:37,830 --> 00:21:45,100 >> ดังนั้นสำหรับตัวอย่างเช่นถ้าเรามีตัวแปร n ที่มีจำนวนชั้นเรียน 498 00:21:45,100 --> 00:21:48,990 และเราต้องการที่จะเห็นสิ่งที่ ระดับ is-- ถ้า n มีค่าเท่ากับ 50, 499 00:21:48,990 --> 00:21:51,957 เรากำลังจะพิมพ์ "CS50 คือ รู้เบื้องต้นเกี่ยวกับวิทยาการคอมพิวเตอร์ครั้งที่หนึ่ง " 500 00:21:51,957 --> 00:21:53,040 จากนั้นเรากำลังจะทำลาย 501 00:21:53,040 --> 00:21:53,920 และที่มัน 502 00:21:53,920 --> 00:21:55,950 แต่ถ้า n มีค่าเท่ากับ 51 เราจะ 503 00:21:55,950 --> 00:21:58,494 พิมพ์ "CS51 เป็นบทนำ วิทยาการคอมพิวเตอร์ครั้งที่สอง. " 504 00:21:58,494 --> 00:21:59,910 จากนั้นอีกครั้งที่เรากำลังจะทำลาย 505 00:21:59,910 --> 00:22:05,080 แต่ถ้าเราใส่แล้ว 124, 61, ใด ๆ หมายเลขอื่น ๆ ที่คุณอาจจะคิดว่าของ 506 00:22:05,080 --> 00:22:06,890 หรือโปรแกรมที่ไม่ได้ไป ที่จะยอมรับว่า 507 00:22:06,890 --> 00:22:09,010 ดังนั้นก็จะพูดว่า "ขอโทษผม ไม่คุ้นเคยกับการเรียนที่. " 508 00:22:09,010 --> 00:22:10,009 และก็ไปทำลาย 509 00:22:10,009 --> 00:22:12,847 DAVID ลัน: ดังนั้นคุณสามารถดู ถ้าอื่นถ้าความคิดอื่น ๆ ที่นี่ 510 00:22:12,847 --> 00:22:15,430 มันเป็นเพียงแค่ไวยากรณ์ที่แตกต่างกัน การแสดงความคิดเดียวกันแน่นอน 511 00:22:15,430 --> 00:22:17,690 >> มาเรีย: แน่นอน 512 00:22:17,690 --> 00:22:19,480 ตอนนี้เรามีผู้ประกอบการของเราประกอบไปด้วย 513 00:22:19,480 --> 00:22:24,900 ผู้ประกอบการเพื่อให้มีประกอบไปด้วย สาม parts-- เงื่อนไข 514 00:22:24,900 --> 00:22:27,220 สิ่งที่จะทำอย่างไรถ้า สภาพที่เป็นจริง 515 00:22:27,220 --> 00:22:29,730 และแล้วสิ่งที่ต้องทำ ถ้าเงื่อนไขที่เป็นเท็จ 516 00:22:29,730 --> 00:22:33,400 ดังนั้นคุณจะเห็นโดยทั่วไป ไวยากรณ์ของที่นี่ 517 00:22:33,400 --> 00:22:37,792 เรามีเครื่องหมายคำถามและ แล้ว the-- สิ่งที่เราเรียกสิ่งนี้? 518 00:22:37,792 --> 00:22:38,750 DAVID ลัน: ลำไส้ใหญ่ 519 00:22:38,750 --> 00:22:39,100 มาเรีย: ลำไส้ใหญ่ 520 00:22:39,100 --> 00:22:39,599 ขอบคุณ. 521 00:22:39,599 --> 00:22:41,880 ขอโทษ 522 00:22:41,880 --> 00:22:45,800 ดังนั้นเรามาดูตัวอย่างของเราที่จะ ดูว่าเราสามารถทำให้ความรู้สึกของ this-- 523 00:22:45,800 --> 00:22:47,840 class_num == 50 524 00:22:47,840 --> 00:22:52,580 ดังนั้นที่นี่เราจะเห็นผู้ประกอบการบูลีนของเรา == ที่เปรียบเทียบ class_num ตัวแปร 525 00:22:52,580 --> 00:22:53,100 ถึง 50 526 00:22:53,100 --> 00:22:55,150 ร้านค้า class_num ดังนั้นจำนวนเต็ม 527 00:22:55,150 --> 00:22:58,180 และถ้าจำนวนเต็มที่ เท่ากับ 50 แล้วเรา 528 00:22:58,180 --> 00:23:02,810 จะเก็บ "เดวิดลัน" ภายในอาจารย์สตริง 529 00:23:02,810 --> 00:23:05,912 ถ้าจำนวนชั้นไม่ได้ เท่ากับ 50, "ดาวิดลัน" 530 00:23:05,912 --> 00:23:07,120 เป็นไปได้ที่อาจารย์ 531 00:23:07,120 --> 00:23:08,630 >> DAVID ลัน: ขอบคุณ 532 00:23:08,630 --> 00:23:12,110 และเพื่อให้ดูเหมือนว่าเทียบเท่ากับ สิ่งที่คุณจะพูดได้อย่างรวดเร็วก่อน? 533 00:23:12,110 --> 00:23:17,930 534 00:23:17,930 --> 00:23:19,960 >> มาเรีย: สำหรับผมแล้วมันดูเหมือนว่า เช่นถ้างบ-อื่น 535 00:23:19,960 --> 00:23:20,709 >> DAVID ลัน: ใช่ 536 00:23:20,709 --> 00:23:24,020 และในความเป็นจริงนี้เป็นชนิด ของสวยหนึ่งซับ 537 00:23:24,020 --> 00:23:27,520 เพื่อที่จะพูดในการดำเนินการ ว่าตรรกะของถ้า-อื่น 538 00:23:27,520 --> 00:23:29,010 แต่ทำทุกอย่างในขั้นตอนเดียว 539 00:23:29,010 --> 00:23:29,860 >> มาเรีย: แน่นอน 540 00:23:29,860 --> 00:23:30,360 ใช่. 541 00:23:30,360 --> 00:23:33,520 ดังนั้นหาก-อื่นอาจงบ ใช้เวลามากของพื้นที่ 542 00:23:33,520 --> 00:23:36,283 พวกเขาอาจจะยาวเกินไปสำหรับ สิ่งที่ง่ายเช่นนี้ 543 00:23:36,283 --> 00:23:38,350 ดังนั้นนี่สามารถมาก รวบรัดและดีมาก 544 00:23:38,350 --> 00:23:40,880 545 00:23:40,880 --> 00:23:46,820 ดังนั้นตอนนี้เรากำลังจะเข้าสู่การมองหาที่ การดำเนินการบางสิ่งบางอย่างอีกครั้งและอีกครั้ง 546 00:23:46,820 --> 00:23:50,060 เพื่อตรวจสอบหา สภาพหลายครั้ง 547 00:23:50,060 --> 00:23:53,510 แล้วดำเนินการต่อไปทำอะไรบางอย่าง ในขณะที่สภาพที่เป็นจริง 548 00:23:53,510 --> 00:23:56,740 ดังนั้นนี่จะทำให้เรา อย่างเป็นห่วงในขณะที่ 549 00:23:56,740 --> 00:23:59,270 >> ไปทางซ้ายเรามี ในขณะที่วงแรกของเรา 550 00:23:59,270 --> 00:24:03,840 ดังนั้นในขณะที่สิ่งที่เป็นความจริง ทำอะไรบางอย่างอีกครั้งและอีกครั้ง 551 00:24:03,840 --> 00:24:08,850 เพื่อให้แน่ใจว่าจะสังเกตเห็นว่าของเรา สภาพที่นี่คือการตรวจสอบที่ด้านบน 552 00:24:08,850 --> 00:24:14,150 ในขณะที่มี loop-- ที่สองของเราที่เราเรียกว่า ที่ทำในขณะที่ loop-- ที่เราทำบางสิ่งบางอย่าง 553 00:24:14,150 --> 00:24:15,890 แล้วเราตรวจสอบสภาพ 554 00:24:15,890 --> 00:24:17,980 และถ้ามีเงื่อนไขว่า ยังคงเป็นความจริง 555 00:24:17,980 --> 00:24:20,150 เรากลับไปและทำสิ่งนั้นอีกครั้ง 556 00:24:20,150 --> 00:24:23,360 ดังนั้นความแตกต่างที่สำคัญคือ เงื่อนไขที่มีการตรวจสอบสำหรับ 557 00:24:23,360 --> 00:24:29,260 และรหัสไม่อาจจะ ดำเนินการถ้าเงื่อนไขไม่ได้ 558 00:24:29,260 --> 00:24:30,430 จริงกับวงในขณะที่ 559 00:24:30,430 --> 00:24:33,050 ในขณะที่มีสิ่งที่ต้องทำในขณะที่ วงเรามีรหัส 560 00:24:33,050 --> 00:24:35,380 ที่มีการดำเนินการอยู่เสมออย่างน้อยหนึ่งครั้ง 561 00:24:35,380 --> 00:24:37,470 และแล้วในขณะที่เงื่อนไข ยังคงเป็นความจริง 562 00:24:37,470 --> 00:24:39,960 เราสามารถกลับไปและย้ำอีกครั้งภายใน 563 00:24:39,960 --> 00:24:43,625 ดังนั้นทำไมคุณคิดว่าเราจะใช้ ทำในขณะที่ห่วงมากกว่าห่วงขณะที่? 564 00:24:43,625 --> 00:24:48,221 565 00:24:48,221 --> 00:24:48,720 ขวา. 566 00:24:48,720 --> 00:24:52,600 ดังนั้นถ้าเราต้องการที่จะแจ้งให้ ของผู้ใช้สำหรับการเรียงลำดับของการป้อนข้อมูลบางอย่าง 567 00:24:52,600 --> 00:24:55,400 ถ้าเราต้องการที่จะถามพวกเขา ให้ใส่ชื่อของพวกเขา 568 00:24:55,400 --> 00:24:57,342 เราต้องการที่จะมีอย่างน้อยหนึ่งครั้งขอให้พวกเขา 569 00:24:57,342 --> 00:24:59,050 และถ้าพวกเขาใส่ ชื่อที่เราไม่ได้ 570 00:24:59,050 --> 00:25:00,740 จะถามพวกเขาอีกครั้ง เพราะเรารู้อยู่แล้วว่ามัน 571 00:25:00,740 --> 00:25:02,656 แต่ถ้าพวกเขาไม่ได้ใส่ ชื่อของพวกเขาหรือถ้าพวกเขา 572 00:25:02,656 --> 00:25:05,787 ใส่สิ่งที่ เห็นได้ชัดไม่ชื่อ 573 00:25:05,787 --> 00:25:08,120 เรายังคงต้องการที่จะดำเนินการต่อไป ขอให้พวกเขาสำหรับชื่อของพวกเขา 574 00:25:08,120 --> 00:25:10,710 >> DAVID ลัน: และในการบรรยายที่เรามีอย่างใดอย่างหนึ่ง เช่นนี้กับ int ได้รับในเชิงบวก 575 00:25:10,710 --> 00:25:13,550 เช่นที่ไม่มีอะไรที่จะ การตรวจสอบในตอนแรกเพราะคุณจะไม่ได้ 576 00:25:13,550 --> 00:25:14,190 อากาศเป็น int 577 00:25:14,190 --> 00:25:16,680 ดังนั้นเราจึงต้องการที่จะทำ this-- ได้รับ int จาก user-- 578 00:25:16,680 --> 00:25:18,860 แล้วตรวจสอบว่ามันอาจจะ อีกครั้งและอีกครั้งและอีกครั้ง 579 00:25:18,860 --> 00:25:21,030 >> มาเรีย: แน่นอน 580 00:25:21,030 --> 00:25:22,060 สำหรับการตกลง loops-- 581 00:25:22,060 --> 00:25:25,842 สำหรับลูปสามารถช่วยให้เราสามารถทำเกือบ สิ่งเดียวที่แน่นอนเช่นเดียว 582 00:25:25,842 --> 00:25:27,300 เป็นจริงสิ่งเดียวที่แน่นอน 583 00:25:27,300 --> 00:25:30,190 จึงไม่มีอะไรที่ คุณสามารถทำกับวง 584 00:25:30,190 --> 00:25:32,840 ที่คุณจะไม่สามารถ จะทำอย่างไรกับลูปในขณะที่ 585 00:25:32,840 --> 00:25:36,900 แต่สำหรับลูปอาจจะดูเล็ก ๆ น้อย ๆ บิตซับซ้อนมากขึ้น syntactically 586 00:25:36,900 --> 00:25:39,730 เพราะพวกเขามี สามส่วนสิ่งที่อยู่ภายใน 587 00:25:39,730 --> 00:25:42,990 ก่อนที่จะเป็นเพียง สภาพที่มีลูปในขณะที่ 588 00:25:42,990 --> 00:25:48,260 ดังนั้นส่วนแรกที่คุณน้ำทะเล ซ้ายมากที่สุดเรามี "คนแคระ int = 0" 589 00:25:48,260 --> 00:25:51,490 ดังนั้นนี่เป็นที่ที่เรา เริ่มต้นตัวแปรของเรา 590 00:25:51,490 --> 00:25:55,210 >> แล้วเรามีอัฒภาค และ "คนแคระ <7" 591 00:25:55,210 --> 00:25:57,100 ดังนั้นนี่คือที่ออก สภาพที่เป็นจริง 592 00:25:57,100 --> 00:26:00,170 ดังนั้นเป็นสิ่งที่เราจะต้อง ใส่เพียงในขณะที่ loop-- 593 00:26:00,170 --> 00:26:01,880 "ในขณะที่คนแคระ <7" 594 00:26:01,880 --> 00:26:05,380 ที่นี่ที่จะไปใน กลางสำหรับวงของเรา 595 00:26:05,380 --> 00:26:07,190 ดังนั้น "dwaves <7" 596 00:26:07,190 --> 00:26:11,350 และแล้วส่วนสุดท้ายของเราคือ "คนแคระ ++" ซึ่งเป็นที่ที่เราปรับปรุงตัวแปรของเรา 597 00:26:11,350 --> 00:26:15,470 ดังนั้นสิ่งที่สำคัญ ที่จะตระหนักถึงคือที่นี้ 598 00:26:15,470 --> 00:26:22,010 จะไปผ่านทางนี้สำหรับวง เจ็ดครั้งและดำเนินการเจ็ดครั้ง 599 00:26:22,010 --> 00:26:24,020 ดังนั้นเราจึงมีเจ็ด คนแคระและพวกเขากำลังทั้งหมด 600 00:26:24,020 --> 00:26:26,020 จะพูดว่า "ฉันอยู่ที่นี่ เพื่อช่วยให้คุณหิมะสีขาว " 601 00:26:26,020 --> 00:26:28,860 เพราะพวกเขามีความพร้อม ที่จะช่วยให้สโนว์ไวท์ 602 00:26:28,860 --> 00:26:33,600 >> ด้วยในขณะที่ลูปที่เราจะได้ทำ การเริ่มต้นและการปรับปรุง 603 00:26:33,600 --> 00:26:37,490 ไม่ได้อยู่ในสภาพอีกครั้ง แต่ ก่อนหรือภายในวงในขณะที่ 604 00:26:37,490 --> 00:26:40,210 เพื่อให้แน่ใจว่า we-- เพราะ เรามักจะต้องชิ้นส่วนเหล่านั้น 605 00:26:40,210 --> 00:26:42,835 ดังนั้นเพื่อให้แน่ใจว่าเรามี พวกเราจะได้ยังคงเพิ่มพวกเขา 606 00:26:42,835 --> 00:26:44,580 ในเพียงไม่ได้อยู่ในวงเล็บ 607 00:26:44,580 --> 00:26:47,288 >> DAVID ลัน: และดังนั้นจึงมีลักษณะ like-- ในการบรรยายยกตัวอย่างเช่น 608 00:26:47,288 --> 00:26:50,250 ฉันมักจะใช้เช่นเดียวกับฉันและ n และตัวแปรที่น่าเบื่อสวย 609 00:26:50,250 --> 00:26:53,050 ดูเหมือนว่าคุณสามารถใช้มากขึ้น ชาญฉลาดชื่อตัวแปรมากเกินไป 610 00:26:53,050 --> 00:26:56,300 >> มาเรีย: ใช่มันเป็นจริงที่ดีมาก ที่จะใช้ตัวแปรอธิบายเพิ่มเติมนิด 611 00:26:56,300 --> 00:26:59,400 เพราะโดยเฉพาะอย่างยิ่งถ้ามีคนอื่นเป็น อ่าน code-- ของคุณบางทีคุณปราบ 612 00:26:59,400 --> 00:27:00,940 หรือถ้าคุณกำลังทำงานร่วมกัน กับ somebody-- 613 00:27:00,940 --> 00:27:03,481 คุณต้องการให้แน่ใจว่าพวกเขา เข้าใจสิ่งที่คุณกำลังทำ 614 00:27:03,481 --> 00:27:05,750 615 00:27:05,750 --> 00:27:06,400 >> ตกลง. 616 00:27:06,400 --> 00:27:11,435 ดังนั้นนี่คือบางสิ่งบางอย่างมาก funky-- สำหรับวงภายในสำหรับวง 617 00:27:11,435 --> 00:27:13,060 ผมไม่ทราบว่าถ้าเราเคยเห็นแบบนี้มาก่อน 618 00:27:13,060 --> 00:27:13,830 อาจจะไม่. 619 00:27:13,830 --> 00:27:17,750 แต่เราจริงจะมี this-- ลูปเพื่อแทนของลูป 620 00:27:17,750 --> 00:27:25,130 ดังนั้นไม่มีใครต้องการที่จะอาจจะเดิน ฉันผ่านสิ่งที่เกิดขึ้นที่นี่? 621 00:27:25,130 --> 00:27:28,240 622 00:27:28,240 --> 00:27:29,490 DAVID ลัน: ฉันจะใช้แทง 623 00:27:29,490 --> 00:27:29,970 มาเรีย: เย็น 624 00:27:29,970 --> 00:27:30,636 DAVID ลัน: OK 625 00:27:30,636 --> 00:27:34,690 ดังนั้น spoiler-- เราต้องการที่จะพิมพ์สิ่งที่ ที่อยู่ในมุมขวาล่าง 626 00:27:34,690 --> 00:27:35,190 ที่นั่น 627 00:27:35,190 --> 00:27:35,450 >> มาเรีย: ขวา 628 00:27:35,450 --> 00:27:35,710 ใช่ใช่ 629 00:27:35,710 --> 00:27:38,043 >> DAVID ลัน: ดังนั้นเราได้เพียงแค่ ใส่ที่แสดงผลตัวอย่างมี 630 00:27:38,043 --> 00:27:42,590 ดังนั้นผมจึงสามารถสรุปจาก ห่วงสูงสุดที่คุณ 631 00:27:42,590 --> 00:27:45,680 ทำซ้ำมากกว่าแถว วงสุดเพื่อที่จะพูด 632 00:27:45,680 --> 00:27:48,107 และคุณทำซ้ำมากกว่า คอลัมน์ที่มีวงในสุด 633 00:27:48,107 --> 00:27:50,190 และสังหรณ์ใจนี้ ควรหวังว่าจะทำให้ความรู้สึก 634 00:27:50,190 --> 00:27:52,070 เพราะโดยธรรมชาติของ ทุกโปรแกรมที่เราเคยเห็น 635 00:27:52,070 --> 00:27:55,570 ก่อน printf ซึ่งเป็น ฟังก์ชั่นที่เรากำลังใช้ในที่สุด 636 00:27:55,570 --> 00:27:58,190 มีความสามารถในการพิมพ์สิ่งที่ ออกเป็นหลักทีละบรรทัด 637 00:27:58,190 --> 00:27:59,960 เช่นเดียวกับเมื่อคุณได้ออกมา บรรทัดใหม่มี 638 00:27:59,960 --> 00:28:02,876 ไม่มีการเสแสร้งกลับและการพิมพ์บางสิ่งบางอย่าง ที่สูงขึ้นในหน้าจออย่างน้อย 639 00:28:02,876 --> 00:28:04,530 ไม่ได้ใช้ printf เช่นนี้ 640 00:28:04,530 --> 00:28:07,750 >> ดังนั้นในเรื่องที่มันทำให้ ความรู้สึกที่ห่วงสุด 641 00:28:07,750 --> 00:28:10,930 ควรจะหมายถึงแถว เพราะแต่ละแถวให้ 642 00:28:10,930 --> 00:28:13,650 คุณจะต้องการที่จะ พิมพ์ออกมา XXXXX แล้ว 643 00:28:13,650 --> 00:28:15,520 ย้ายไปแถวถัดไป, XXXXX 644 00:28:15,520 --> 00:28:17,317 ดังนั้นแถวมาก่อน 645 00:28:17,317 --> 00:28:19,150 และจากนั้นในแต่ละ แถว, คุณพิมพ์คอลัมน์ 646 00:28:19,150 --> 00:28:21,160 ถ้าคุณพยายามที่จะทำมัน ตรงข้ามมันจะอาจจะไม่ได้ 647 00:28:21,160 --> 00:28:21,690 ออกมาตามที่ต้องการ 648 00:28:21,690 --> 00:28:22,190 >> มาเรีย: ใช่ 649 00:28:22,190 --> 00:28:24,950 เราก็ไม่สามารถกลับไปที่ แถวก่อนหน้านี้ด้วย printf 650 00:28:24,950 --> 00:28:27,658 >> DAVID ลัน: และสิ่งที่น่าสนใจ ต่อการสนทนาในวันนี้เกี่ยวกับขอบเขต 651 00:28:27,658 --> 00:28:31,600 ที่จริงก็คือว่าเป็นแถวเป็น int ที่ประกาศในวงสูงสุด 652 00:28:31,600 --> 00:28:34,030 แต่สังเกตเห็นว่ามันยังคงเป็น ภายในเพื่อที่จะพูด 653 00:28:34,030 --> 00:28:35,982 วงเล็บปีกกาที่ ทันทีตาม 654 00:28:35,982 --> 00:28:38,440 แม้ว่าจะไม่ได้ในทางเทคนิค ภายในวงเล็บปีกกาเหล่านั้น 655 00:28:38,440 --> 00:28:41,750 ดังนั้นแถวอยู่ในขอบเขตสำหรับ ความสมบูรณ์ของข้อมูลโค้ด, 656 00:28:41,750 --> 00:28:44,690 ทั้งด้านในของด้านนอกสำหรับวง และภายในของภายในสำหรับวง 657 00:28:44,690 --> 00:28:48,050 แต่ด้วยความคมชัดที่ คอลัมน์อยู่ในขอบเขต? 658 00:28:48,050 --> 00:28:49,810 คอลัมน์ตัวแปร? 659 00:28:49,810 --> 00:28:51,310 ใช่เพียงในวงภายใน 660 00:28:51,310 --> 00:28:54,280 และที่ตกลงเพราะเราไม่สามารถเข้าถึง มันนอกวงเล็บปีกกาของ 661 00:28:54,280 --> 00:28:57,280 ทั้งหมดที่เราทำคือการพิมพ์ออกมาใหม่ สายที่ปลายสุดมี 662 00:28:57,280 --> 00:28:58,670 เพื่อที่ว่าในความเป็นจริงก็โอเค 663 00:28:58,670 --> 00:29:03,740 >> ดังนั้นนี้มีผลกระทบที่มันดูเหมือนว่า การทำแถวที่สามและสี่เสา 664 00:29:03,740 --> 00:29:04,370 >> มาเรีย: ขวา 665 00:29:04,370 --> 00:29:06,270 ดังนั้นก่อนที่เราจะไปผ่านแถวแรกของเรา 666 00:29:06,270 --> 00:29:10,520 และเพียงแค่ในแถวแรกของเราที่เราทำ สี่เสาภายในแถวแรก 667 00:29:10,520 --> 00:29:11,980 ดังนั้นเราจึงพิมพ์สี่เอ็กซ์ 668 00:29:11,980 --> 00:29:15,800 และจากนั้นเราสามารถออกจากการห่วงเนื่องจาก เราได้พิมพ์แล้วออกสี่เอ็กซ์ 669 00:29:15,800 --> 00:29:17,100 และเราพิมพ์บรรทัดใหม่ 670 00:29:17,100 --> 00:29:19,920 และจากนั้นเราไปผ่าน กระบวนการเดียวกันสำหรับสองแถว 671 00:29:19,920 --> 00:29:21,170 ที่จะทำให้การรวมของสาม 672 00:29:21,170 --> 00:29:23,530 >> DAVID ลัน: และมันเป็นมูลค่า noting มัน เพียงสิ่งประดิษฐ์ของตัวอักษรที่ความเป็นจริง 673 00:29:23,530 --> 00:29:25,680 ว่าการส่งออกของกลุ่มตัวอย่าง ดูเหมือนมากสูง 674 00:29:25,680 --> 00:29:27,520 ราวกับว่ามีมากขึ้น แถวกว่าคอลัมน์ 675 00:29:27,520 --> 00:29:29,824 แต่มันเป็นเพียงเพราะ X จะสูงกว่าที่เป็นอยู่กว้าง 676 00:29:29,824 --> 00:29:32,740 นั่นคือทั้งหมดที่เกิดขึ้นที่นั่น บวกกับพื้นที่สีขาวระหว่างบรรทัด 677 00:29:32,740 --> 00:29:33,281 >> มาเรีย: ขวา 678 00:29:33,281 --> 00:29:34,792 เย็น. 679 00:29:34,792 --> 00:29:35,750 DAVID ลัน: สิทธิทั้งหมด 680 00:29:35,750 --> 00:29:39,830 ดังนั้นดูอย่างรวดเร็วที่ตั้งปัญหาหนึ่ง ใช้คำถามใด ๆ และจากนั้นเลื่อน? 681 00:29:39,830 --> 00:29:40,330 ทั้งหมดขวา 682 00:29:40,330 --> 00:29:43,164 ดังนั้นในปัญหาตั้งหนึ่งมีสาม ความท้าทายหลักในท้ายที่สุด 683 00:29:43,164 --> 00:29:44,955 แต่ก่อนที่คุณจะได้พบกับ ว่าปัญหาที่กำหนด 684 00:29:44,955 --> 00:29:47,900 สเปคเช่นเดียวกับหลาย ๆ psets ฤดูใบไม้ร่วงนี้จะไปเดินคุณ 685 00:29:47,900 --> 00:29:50,691 ผ่านไม่กี่ออกกำลังกายอบอุ่นขึ้น ชี้ให้คุณออกทรัพยากรไม่กี่ 686 00:29:50,691 --> 00:29:52,440 ที่คุณอาจจะหรืออาจ ไม่ได้เห็นแล้ว 687 00:29:52,440 --> 00:29:54,440 ยกตัวอย่างเช่น CS50 มีชุดกางเกงขาสั้น, 688 00:29:54,440 --> 00:29:56,481 ซึ่งเป็นวิดีโอสั้น ไม่แตกต่างจากนี้ แต่ที่ 689 00:29:56,481 --> 00:29:58,460 มีหัวข้อ specific-- มาก อาจจะห้านาที 690 00:29:58,460 --> 00:30:02,360 10 นาทีในระยะเวลาในลูปหรือ ในเงื่อนไขหรือขั้นตอนวิธี 691 00:30:02,360 --> 00:30:04,125 หรือเพิ่มเติมในภายหลัง หัวข้อขั้นสูงเช่นเดียวกับ 692 00:30:04,125 --> 00:30:06,000 และเรามักฝัง ที่เป็นปัญหา 693 00:30:06,000 --> 00:30:07,950 ชุดเพื่อให้นักเรียน มีทรัพยากรที่มี 694 00:30:07,950 --> 00:30:10,840 เพื่อตรวจสอบวัสดุที่อาจมี แล้วมาในการบรรยายหรือมาตรา 695 00:30:10,840 --> 00:30:13,220 แต่วิธีนี้ก็มุ่งเน้นมากขึ้น และอื่น ๆ ที่ปลายนิ้วของพวกเขา 696 00:30:13,220 --> 00:30:15,928 >> นอกจากนี้เรายังมีแนวโน้มที่จะฝังในปัญหา กำหนดสิ่งที่เรียกว่าเกมส์ 697 00:30:15,928 --> 00:30:20,790 ดังนั้นเกือบทั้งหมดของตัวอย่างที่ฉันทำ ในการบรรยายบนเวทีที่นี่เรายัง 698 00:30:20,790 --> 00:30:24,565 ได้ยิงในกล้องใน ความก้าวหน้ามากขึ้นช้าลง 699 00:30:24,565 --> 00:30:28,760 คำแนะนำแบบใกล้ชิดมากขึ้นโดยฉันใน แล็ปท็อปของฉันของรหัสที่ละบรรทัด 700 00:30:28,760 --> 00:30:31,427 เพื่อที่ว่าในระดับที่เรามักจะ อ่านผ่านอะไรบางอย่างหรือใครบางคน 701 00:30:31,427 --> 00:30:33,260 จะใส่เข้ากับ ตอบคำถาม 702 00:30:33,260 --> 00:30:35,820 แต่มันไม่จำเป็นต้องจม สำหรับทุกคนในในกลุ่มผู้ชม 703 00:30:35,820 --> 00:30:38,230 ดังนั้นคุณจะพบรหัสเกมส์ สำหรับส่วนมากของตัวอย่าง 704 00:30:38,230 --> 00:30:40,950 ที่เราทำที่นี่ในการบรรยายเพื่อให้คุณ สามารถเดินผ่านมันที่ก้าวของคุณเอง 705 00:30:40,950 --> 00:30:43,580 และย้อนกลับหรือเร็วไปข้างหน้าหรือ ข้ามโดยสิ้นเชิงถ้าคุณต้องการ 706 00:30:43,580 --> 00:30:45,356 >> มักจะเป็นเพียงไม่กี่ คำถามที่อบอุ่นขึ้นที่ 707 00:30:45,356 --> 00:30:47,105 ขอให้คุณในการจัดเรียงของ เสริมสร้างวัสดุนี้ 708 00:30:47,105 --> 00:30:50,250 และให้แน่ใจว่าคุณสะดวกสบายก่อน ที่จะดำเนินการกับส่วนที่เหลือของ pset ที่ 709 00:30:50,250 --> 00:30:51,700 และแล้วแน่นอน มี pset ตัวเอง 710 00:30:51,700 --> 00:30:53,450 และหนึ่งในสิ่งที่ เราจงใจมาก 711 00:30:53,450 --> 00:30:57,202 ทำใน CS50 เกือบทุกจืด หรือไม่น่าทึ่งปัญญา 712 00:30:57,202 --> 00:30:58,910 ขั้นตอนกลไกที่ คุณอาจจะต้องทำ 713 00:30:58,910 --> 00:31:00,519 มักจะมีการบันทึกไว้เป็นอย่างดี 714 00:31:00,519 --> 00:31:03,560 ในช่วงระยะเวลาที่เราจะ เริ่มต้นที่จะถามคำถามเชิงโวหารมากขึ้น 715 00:31:03,560 --> 00:31:06,187 เหมือนจำได้ว่าการทำเช่นนี้หรือ? 716 00:31:06,187 --> 00:31:08,520 แต่โดยทั่วไปแล้วคุณจะพบว่า ว่าปัญหาชุดที่คุณได้รับ 717 00:31:08,520 --> 00:31:10,269 ผ่านกลไก บางสิ่งบางอย่างเพื่อให้ 718 00:31:10,269 --> 00:31:14,160 น่าสนใจท้าทายทางปัญญา ที่เหลือในที่สุดเพื่อคุณนักเรียน 719 00:31:14,160 --> 00:31:17,390 >> กับที่กล่าวว่า Zamyla เพื่อคนที่เรา เก็บไว้หมายถึงวันนี้ในการบรรยาย 720 00:31:17,390 --> 00:31:20,190 เป็นหนึ่งในพนักงานของเรารู้จักกันมานาน สมาชิกที่ยังถือเกมส์ 721 00:31:20,190 --> 00:31:24,520 เกี่ยวกับปัญหาที่เฉพาะเจาะจงเช่น pset มาริโอ และโลภแม้จะไม่ใช่น้ำในปีนี้ 722 00:31:24,520 --> 00:31:26,540 และมันอยู่ในคนเหล่านั้น walkthroughs ว่าเธอมักจะ 723 00:31:26,540 --> 00:31:29,450 มีเคล็ดลับและเทคนิคสำหรับ วิธีการดำเนินการที่ไม่เคยบอกคุณ 724 00:31:29,450 --> 00:31:31,810 ว่าสิ่งที่ต้องทำ แต่ rather-- เช่นเงื่อนไข 725 00:31:31,810 --> 00:31:35,200 ถ้าคุณ will-- ให้คุณอย่างน้อย สองความคิดเพื่อที่จะขึ้นอยู่กับคุณ 726 00:31:35,200 --> 00:31:37,830 ท้ายที่สุดในการตัดสินใจ วิธีการที่จะเข้าใกล้พวกเขา 727 00:31:37,830 --> 00:31:41,200 >> มาเรีย: ชอบเรียงจากระดับสูง ความเข้าใจในเหตุผลของสิ่งที่ 728 00:31:41,200 --> 00:31:42,220 เราจะขอให้คุณทำ 729 00:31:42,220 --> 00:31:42,485 >> DAVID ลัน: แน่นอน 730 00:31:42,485 --> 00:31:44,190 และในความเป็นจริงของ Zamyla เกมส์ที่มีความหมาย 731 00:31:44,190 --> 00:31:46,190 ที่จะตอบบ่อย ถามคำถามที่ 732 00:31:46,190 --> 00:31:48,610 ฉันจะเริ่มต้นโดยเฉพาะอย่างยิ่งเมื่อ ข้อกำหนดเหล่านี้ที่มีความยาว 733 00:31:48,610 --> 00:31:51,960 ที่น่ากลัวเล็ก ๆ น้อย ๆ ที่ได้รับข้อความ และภาพที่พวกเขามีอยู่ในพวกเขา 734 00:31:51,960 --> 00:31:54,890 >> ดังนั้น water.c คุณจะพบ หลังจากที่คุณได้เสร็จมัน 735 00:31:54,890 --> 00:31:56,920 เป็นจริงค่อนข้างตรงไปตรงมา 736 00:31:56,920 --> 00:31:58,882 อย่างเป็นพวง คุณจะปัง 737 00:31:58,882 --> 00:32:01,840 หัวของคุณกับผนังพยายาม ที่จะคิดออกว่าทำไมมันไม่ได้รวบรวม 738 00:32:01,840 --> 00:32:03,450 หรือทำไมมันไม่ทำงานอย่างถูกต้อง 739 00:32:03,450 --> 00:32:05,040 แต่เมื่อคุณทำเสร็จแล้ว กับมันและเมื่อคุณได้ 740 00:32:05,040 --> 00:32:07,620 การต่อสู้ใช้เวลากับใด ๆ ข้อผิดพลาดที่คุณอาจมี 741 00:32:07,620 --> 00:32:09,490 คุณจะพบว่ามันเป็น โปรแกรมที่สั้นมาก 742 00:32:09,490 --> 00:32:11,770 ก็สามารถทำได้ในเพียงไม่กี่ บรรทัดของรหัสซึ่งส่วนใหญ่ 743 00:32:11,770 --> 00:32:15,030 เราได้เห็นที่นี่ในการบรรยายแล้วถ้า คุณรวบรวมหน่วยการสร้างที่เหมาะสม 744 00:32:15,030 --> 00:32:16,810 >> และในขณะที่เราขอแนะนำ ที่นี่ก็จะถาม 745 00:32:16,810 --> 00:32:22,250 คุณสามารถระบุวิธีการหลายนาที ใครบางคนกำลังอาบน้ำในมหาวิทยาลัย 746 00:32:22,250 --> 00:32:24,779 เราระบุในปัญหาที่เกิดขึ้น ตั้งอัตราการไหลของน้ำ 747 00:32:24,779 --> 00:32:27,320 ในเช่นห้องอาบน้ำฝักบัวไหลต่ำ หัวเหมือนคลิปไฟล์ 748 00:32:27,320 --> 00:32:29,180 ที่เราเห็นเมื่อวานนี้หรือ ดังกล่าวตรงข้าม 749 00:32:29,180 --> 00:32:30,971 และแล้วคุณก็ต้อง ที่จะทำบิตของคณิตศาสตร์ 750 00:32:30,971 --> 00:32:34,710 really-- ทางคณิตศาสตร์โดยใช้ C ที่จะบอก เราว่าหลาย ๆ ขวดน้ำ 751 00:32:34,710 --> 00:32:37,720 เทียบเท่ากับถ้าเราว่า การอาบน้ำ n นาที 752 00:32:37,720 --> 00:32:41,389 >> ขณะนี้ใน mario.c นี้เป็นไป จะเป็นโปรแกรมอีกเล็กน้อย 753 00:32:41,389 --> 00:32:42,930 ก็ยังคงไม่ได้ไปนานนี้ 754 00:32:42,930 --> 00:32:45,130 เพียงไม่กี่บรรทัดนานกว่า water.c 755 00:32:45,130 --> 00:32:48,230 แต่มันจะเป็นโอกาสที่ ที่จะสร้างโรงเรียนมาริโอเก่า 756 00:32:48,230 --> 00:32:50,670 ปิรามิดจากซูเปอร์มาริโอ บราเดอร์หรือตามมา 757 00:32:50,670 --> 00:32:53,510 มันไม่ได้ไปดูสวย หรือที่มีสีสันเป็นที่หนึ่งมี 758 00:32:53,510 --> 00:32:56,468 เราเพียงแค่จะใช้แฮชแท็กเล็ก ๆ น้อย ๆ เช่นเดียวกับเราได้ที่นี่บนหน้าจอ 759 00:32:56,468 --> 00:32:58,120 โดยใช้ข้อความ ASCII 760 00:32:58,120 --> 00:33:00,362 แต่มันจะใกล้เคียงกับความคิดเดียวกัน 761 00:33:00,362 --> 00:33:02,570 และมันจะเป็น การออกกำลังกายที่ได้อย่างรวดเร็วก่อน 762 00:33:02,570 --> 00:33:04,720 ดูเหมือนว่าสวย simple-- เพียง พิมพ์ปิรามิดที่เรียบง่าย 763 00:33:04,720 --> 00:33:07,345 แต่มีลักษณะคู่ ที่นี่ที่น่าสนใจ 764 00:33:07,345 --> 00:33:12,400 ขอให้สังเกตว่าขอบขวาสุดของ พีระมิดจริงมีความกว้างสอง 765 00:33:12,400 --> 00:33:14,570 ดังนั้นจึงมีสองเท่ากัน คอลัมน์สูงซึ่ง 766 00:33:14,570 --> 00:33:16,804 ทำให้จำเป็นต้องมีเล็ก ๆ น้อย ๆ บิตของความคิดที่จะให้ 767 00:33:16,804 --> 00:33:19,720 แน่ใจว่าคุณได้ว่าตรงขวาเป็น เมื่อเทียบกับเพียงมุมได้อย่างสมบูรณ์แบบ 768 00:33:19,720 --> 00:33:20,220 สาย 769 00:33:20,220 --> 00:33:23,340 เพื่อให้เป็นบิตของกรณีมุม แต่ตรงกับเกมที่เกิดขึ้นจริง 770 00:33:23,340 --> 00:33:27,610 >> และก็ยังไม่ชัดเจนในตอนแรก ได้อย่างรวดเร็ววิธีการพิมพ์พื้นที่สีขาว 771 00:33:27,610 --> 00:33:29,430 ดังนั้นเมื่อฉันมองไปที่ ตัวอย่างการส่งออก here-- 772 00:33:29,430 --> 00:33:32,440 และก็ยังอยู่ใน spec-- มัน ชนิดของดูเหมือนสี่เหลี่ยมผืนผ้า 773 00:33:32,440 --> 00:33:35,120 แต่เส้นทแยงมุมของ สี่เหลี่ยมผืนผ้าที่ได้รับการตัด, 774 00:33:35,120 --> 00:33:37,320 และเป็นเพียงช่องว่างสีขาวเพื่อที่จะพูด 775 00:33:37,320 --> 00:33:40,100 และเพื่อที่ถามบ่อย คำถามที่นี่อยู่เสมอดี 776 00:33:40,100 --> 00:33:43,302 ฉันจะย้าย hashtags # มากกว่าที่จะเหมาะสมหรือไม่ 777 00:33:43,302 --> 00:33:44,760 หรือวิธีการที่ฉันจะพิมพ์ช่องว่าง? 778 00:33:44,760 --> 00:33:46,860 และมันก็เป็นจริงได้ง่ายขึ้น กว่านักเรียนส่วนใหญ่คิดว่า 779 00:33:46,860 --> 00:33:47,360 ขวา? 780 00:33:47,360 --> 00:33:51,620 คุณสามารถใกล้เคียงกับสายตาโดยเพียงแค่ กดปุ่มแถบพื้นที่ครั้งหรือสองครั้ง 781 00:33:51,620 --> 00:33:52,700 หรือสามครั้ง 782 00:33:52,700 --> 00:33:56,260 >> และเพื่อให้ได้แม้ว่าจะมี printf เราเกือบ มักจะพิมพ์สตริงหรือเป็น int 783 00:33:56,260 --> 00:33:59,950 หรือคำเช่น "สวัสดีที่ โลก "หรือชุดของคำ 784 00:33:59,950 --> 00:34:03,560 คุณยังสามารถเพียงแค่พิมพ์ อ้างพื้นที่ได้นำมาอ้าง 785 00:34:03,560 --> 00:34:06,320 และที่จริงจะให้ คุณมีพื้นที่สีขาว 786 00:34:06,320 --> 00:34:08,330 ดังนั้นเก็บที่ในใจและ ไม่ overthink นี้ 787 00:34:08,330 --> 00:34:10,570 จริงๆคุณต้อง ตัดสินใจแถวโดยแถวโดยแถว 788 00:34:10,570 --> 00:34:14,280 ไม่แตกต่างจากตัวอย่างของคุณ ช่วงเวลาที่ผ่านมาว่าหลายคน 789 00:34:14,280 --> 00:34:18,420 คอลัมน์ควรจะเป็นช่องว่างสีขาวและ จำนวนของพวกเขาควรจะ hashtags 790 00:34:18,420 --> 00:34:21,560 มันจะใช้เวลาบิตของเวลา แต่ก็ ในที่สุดปริศนาตรรกะแปลก ๆ 791 00:34:21,560 --> 00:34:22,060 >> มาเรีย: ใช่ 792 00:34:22,060 --> 00:34:25,060 แต่ตรรกะของการไปแถวโดยแถว เป็นไปได้ที่จะมีประโยชน์มากที่นี่ 793 00:34:25,060 --> 00:34:25,810 DAVID ลัน: ใช่ 794 00:34:25,810 --> 00:34:28,976 ผมคิดว่าตัวอย่างรหัสที่คุณ gave-- แม้กระทั่ง แม้ว่ามันจะไม่ได้เป็นโปรแกรมที่สมบูรณ์ 795 00:34:28,976 --> 00:34:34,247 คุณยังคงต้อง int และหลัก และ stdio.h โมฆะและ #include, 796 00:34:34,247 --> 00:34:35,580 จำนวนมากสิ่งที่ได้จากการบรรยาย 797 00:34:35,580 --> 00:34:37,629 แต่การก่อสร้างตึก ดูเหมือนจะมี 798 00:34:37,629 --> 00:34:39,920 และจากนั้นก็เป็นสิ่งสุดท้าย อัลกอริทึมน้อยมาก 799 00:34:39,920 --> 00:34:43,210 ดังนั้นจึงปรากฎว่าเวลาที่คุณใด ๆ ไปลงใน CVS หรือร้านสะดวกซื้อใด ๆ 800 00:34:43,210 --> 00:34:47,810 และคนที่มือคุณที่ ค่าใช้จ่ายแคชเชียร์หรือเหรียญในขณะที่การเปลี่ยนแปลง 801 00:34:47,810 --> 00:34:50,620 มันกลับกลายเป็นว่าพวกเขามนุษย์ หรือไม่พวกเขารู้หรือไม่ว่า 802 00:34:50,620 --> 00:34:53,300 อาจจะใช้สิ่งที่เป็น ที่เรียกว่าอัลกอริทึมโลภ 803 00:34:53,300 --> 00:34:58,170 โดยถ้าคุณกำลังหนี้ที่ค้างชำระ, พูด $ 21 ในการเปลี่ยนแปลงเพราะเหตุผลบางอย่าง 804 00:34:58,170 --> 00:35:01,580 บางสิ่งบางอย่างที่คุณซื้อราคาไม่แพงมาก กับการเรียกเก็บเงินที่ใหญ่มากที่ CVS, 805 00:35:01,580 --> 00:35:05,910 มันจะน่ารำคาญจริงๆถ้า แคชเชียร์ให้คุณ 21 ซิงเกิ้ลหรือแย่ลง 806 00:35:05,910 --> 00:35:07,629 ยังเป็นจำนวนมากทั้งของเหรียญ 807 00:35:07,629 --> 00:35:10,670 แต่สิ่งที่คนที่เหมาะสมคือ อาจจะทำคือพวกเขากำลังจะ 808 00:35:10,670 --> 00:35:14,224 ที่จะคว้า $ 20 แล้ว $ 1 ใบเรียกเก็บเงินและ มือคุณเพียงสองค่าใช้จ่ายในกรณีที่ 809 00:35:14,224 --> 00:35:17,390 มาเรีย: ดังนั้นพวกเขากำลังมองหาที่จะลด การเปลี่ยนแปลงที่พวกเขาให้กลับมาให้คุณ 810 00:35:17,390 --> 00:35:17,850 DAVID ลัน: แน่นอน 811 00:35:17,850 --> 00:35:19,540 และการจัดการที่เหมือนกันกับเหรียญเช่นกัน 812 00:35:19,540 --> 00:35:23,040 หากคุณกำลังหนี้ที่ค้างชำระพูด, $ 0.50 หวังว่าคุณไม่ต้องการ 50 เพนนี 813 00:35:23,040 --> 00:35:25,500 คุณต้องการที่สองแทน ไตรมาสเช่น 814 00:35:25,500 --> 00:35:27,540 ตอนนี้ไม่ถือว่า ที่มีแคชเชียร์ 815 00:35:27,540 --> 00:35:29,940 เพียงพอของนิกายทุกที่ เขาหรือเธออาจต้องการให้คุณ 816 00:35:29,940 --> 00:35:32,148 แต่เราไม่ช่วยให้คุณที่จะคิด เป็นอย่างมากในปัญหาที่เกิดขึ้น 817 00:35:32,148 --> 00:35:35,590 และเป้าหมายในท้ายที่สุดคือการ ใช้ในรหัส C ขั้นตอนวิธีโลภ 818 00:35:35,590 --> 00:35:37,344 เพื่อให้ผู้ใช้ที่ได้รับอนุญาต พิมพ์เท่าใด 819 00:35:37,344 --> 00:35:40,510 เปลี่ยนเขาหรือเธอเป็นหนี้กับดอลลาร์ และเซนต์ชนิดของจุดลอยบาง 820 00:35:40,510 --> 00:35:41,590 ค่าอาจจะ 821 00:35:41,590 --> 00:35:45,530 และจากนั้นคุณต้องทำคณิตศาสตร์และ คิดออกอัลกอริทึมดี 822 00:35:45,530 --> 00:35:49,020 กี่เหรียญที่ฉันสามารถให้ คุณน้อยที่สุดเพื่อให้คุณ 823 00:35:49,020 --> 00:35:50,270 ว่าจำนวนเงินที่ของการเปลี่ยนแปลง 824 00:35:50,270 --> 00:35:53,470 แต่มีจะเป็น ส่วนหากินไม่กี่ที่นี่ใช่มั้ย? 825 00:35:53,470 --> 00:35:56,236 เหมือนมีทั้ง ปัญหาที่ไม่แน่ชัด 826 00:35:56,236 --> 00:35:56,860 มาเรีย: แน่นอน 827 00:35:56,860 --> 00:35:59,114 ดังนั้นจุดลอย มีค่าไม่แน่ชัด 828 00:35:59,114 --> 00:36:00,780 เราได้พูดคุยเกี่ยวกับเรื่องนี้ในการบรรยายในวันนี้ 829 00:36:00,780 --> 00:36:02,340 >> DAVID ลัน: เราได้ ครั้งสุดท้ายในการบรรยาย 830 00:36:02,340 --> 00:36:03,506 เราได้พูดคุยเกี่ยวกับความไม่แน่ชัด 831 00:36:03,506 --> 00:36:08,840 และคุณไม่ต้องการที่จะโกงผู้ใช้ เท่าใดการเปลี่ยนแปลงที่เขาหรือเธอเป็นหนี้ 832 00:36:08,840 --> 00:36:11,290 และเพื่อให้คำแนะนำใน ปัญหาที่กำหนดสเปค 833 00:36:11,290 --> 00:36:15,990 ให้ความคิดที่ท้ายที่สุดเท่าที่จะ วิธีที่คุณสามารถลดผู้ที่ไม่แน่ชัด 834 00:36:15,990 --> 00:36:17,280 ข้อผิดพลาดที่อาจเกิดขึ้น 835 00:36:17,280 --> 00:36:21,050 มันเป็นเรื่องที่หลีกเลี่ยงได้อย่างแน่นอนสำหรับ ปัจจัยการผลิตที่เรากำลังพูดถึง 836 00:36:21,050 --> 00:36:23,590 และในความเป็นจริง pennies-- บางทีเราจะเลื่อนไป Zamyla, 837 00:36:23,590 --> 00:36:25,136 ผมคิดว่าสำหรับเทคนิคที่มี 838 00:36:25,136 --> 00:36:27,760 ดังนั้นในท้ายที่สุดคุณจะพบ การลุกลามของปัญหาที่เกิดขึ้นในสัปดาห์นี้ 839 00:36:27,760 --> 00:36:30,700 ครั้งแรกของการที่มีขนาดเล็กสวย กลางแล้วนั้นน้อยใหญ่ 840 00:36:30,700 --> 00:36:33,200 แต่ทั้งหมดของพวกเขาใช้อาคาร ช่วงตึกจากสัปดาห์ที่ผ่านมานี้ 841 00:36:33,200 --> 00:36:35,280 จาก supersection นี้ ปัญหาการตั้งสเปค 842 00:36:35,280 --> 00:36:36,710 ทำให้คุณมีทรัพยากรมากมายนับไม่ถ้วน 843 00:36:36,710 --> 00:36:41,000 แต่ยังคงถ้าทุกดิ้นรน โดยเฉพาะอย่างยิ่งในหมู่ผู้ที่สะดวกสบายน้อย 844 00:36:41,000 --> 00:36:42,917 ไม่มีพื้นหลังก่อน มาถึงเวลาทำงาน 845 00:36:42,917 --> 00:36:44,958 ในวันจันทร์และวันอังคารและ พุธและวันพฤหัสบดี 846 00:36:44,958 --> 00:36:46,950 ไปที่ CS50 พูดคุยผ่านทาง เว็บไซต์แน่นอนของ 847 00:36:46,950 --> 00:36:49,080 ผ่านที่คุณสามารถแช กับเจ้าหน้าที่และเพื่อนร่วมชั้น 848 00:36:49,080 --> 00:36:51,670 >> แต่ในที่สุดผมคิดว่า คำแนะนำที่ดีที่สุดคือเพียงแค่เริ่มต้นในช่วงต้น 849 00:36:51,670 --> 00:36:54,711 มันไม่ได้ชนิดของระดับที่คุณ ควรจะเริ่มต้นในวันพุธที่ psets 850 00:36:54,711 --> 00:36:56,640 คืนหรือเลวคืนวันพฤหัสบดี 851 00:36:56,640 --> 00:36:59,067 >> มาเรีย: แนะนำที่ดีที่สุดของฉันคือ ที่จะได้เริ่มต้นวันจันทร์ 852 00:36:59,067 --> 00:36:59,900 DAVID ลันจันทร์ 853 00:36:59,900 --> 00:37:02,490 ดังนั้นหากคุณยังไม่ได้เริ่ม already-- ไม่มี 854 00:37:02,490 --> 00:37:04,732 แต่แม้ว่าจะไม่ได้จันทร์อังคารแล้ว 855 00:37:04,732 --> 00:37:05,690 ก่อนหน้านี้ที่ดีกว่า 856 00:37:05,690 --> 00:37:08,605 และนั่นคือเหตุผลที่ แน่นอนมีหลายวันในช่วงปลายเพื่อให้เป็น 857 00:37:08,605 --> 00:37:10,535 เพื่อให้คุณบิตของการเป็น ความดันทางจิตวิทยา 858 00:37:10,535 --> 00:37:13,684 ที่จะเริ่มต้นก่อนหน้านี้ แต่ยังคงให้ สิ่งที่ลื่นเมื่อสิ่งที่ใช้เวลานาน 859 00:37:13,684 --> 00:37:14,350 กว่าที่คุณคาด 860 00:37:14,350 --> 00:37:17,950 >> มาเรีย: และคุณต้องการที่จะทำให้การใช้งาน เวลาทำงานมากเท่าที่คุณสามารถเกินไป 861 00:37:17,950 --> 00:37:20,291 >> DAVID ลัน: คำถามใด? 862 00:37:20,291 --> 00:37:20,790 ทั้งหมดขวา 863 00:37:20,790 --> 00:37:22,930 ดีทำไมเราไม่เลื่อนที่นี่? 864 00:37:22,930 --> 00:37:23,487