ROB: ทั้งหมดขวา ยินดีต้อนรับสู่ส่วนแรก ฉันร็อบ JOSEPH: ผมโจเซฟ ROB: ดังนั้นเราจะดำน้ำที่เหมาะสมค่ะ สิ่งแรกที่จะพูดคุยเกี่ยวกับ เป็นเครื่องใช้ เพื่อหวังว่าส่วนใหญ่ของคุณมี ดาวน์โหลดมันแล้ว แต่คุณสามารถดูคำแนะนำ ที่ cs50.net/appliance โอ้พระเจ้าตอนนี้ฉันประหม่า ผมยังได้ยินมัน JOSEPH: ว้าวมันเสียงเหมือน มันยุ่งเหยิง ROB: ดังนั้นบางคนได้รับมี ปัญหาเกี่ยวกับมันจึงไม่รอจนกว่า นาทีสุดท้ายของปัญหาการตั้งค่า และพยายามแก้ปัญหาและเครื่องใช้ พบว่ามันไม่ทำงาน JOSEPH และถ้าสิ่งที่ไม่ทำงาน และคุณต้องการความช่วยเหลือคุณสามารถไปที่ cs50.net/discussion ที่เรา มีฟอรั่มที่คุณ สามารถโพสต์คำถามของคุณ และเราจะให้พวกเขาในที่สุด ROB: ทั้งหมดขวา ดังนั้นนี่คือสิ่งที่เครื่องใช้ ดูเหมือนว่า อีกครั้งก็เป็นเพียงที่แยกจากกันอย่างสมบูรณ์ ระบบปฏิบัติการที่ใช้ภายใน สิ่งที่ระบบปฏิบัติการที่คุณ จะทำงานบนแล็ปท็อปของคุณ และสิ่งสำคัญที่คุณจะ จะใช้เป็น Gedit ดังนั้นหวังว่านี้มีอยู่แล้ว กลายเป็นสถานที่ที่คุ้นเคย ขั้ว และคุณยังสามารถเรียกใช้ Chrome เครื่องใช้ภายใน มีไม่กี่คน ที่มีการรายงานทางอินเทอร์เน็ต ไม่ทำงานในเครื่องใช้ และบางส่วนของพวกเขาได้เพียงแค่สันนิษฐาน ที่มีอยู่ไม่ควรจะเป็น อินเทอร์เน็ตในเครื่องใช้ แต่ใช่มีที่ควร จะเป็นอินเทอร์เน็ต ฉันจะบอกได้ในขณะนี้ แต่มันไม่ได้ จริงๆหมายถึงอะไร ถ้าอินเทอร์เน็ตไม่ทำงาน นี้คือสิ่งที่คุณมีแนวโน้มที่จะต้อง ในการทำงานที่จะแก้ไขได้ หากคุณกำลังมีปัญหาอินเทอร์เน็ตไม่ได้ จำได้เพียงแค่โพสต์บน พูดคุยและเราจะบอกให้เรียกว่า แต่อินเทอร์เน็ตควรจะทำงาน ดังนั้นเพียงสิ่งอื่น ๆ - ใช่ไม่มีอะไร อื่นมีความเกี่ยวข้องจริงๆ แต่ผมแค่อยากจะชี้ให้เห็นว่า - เห็นในมุมขวาล่างนี้ ดังนั้นแต่ละเครื่องใช้ไฟฟ้าของคุณควร มีที่อยู่ IP และต่อมาในภาคการศึกษา, IP นี้ ที่อยู่จะกลายเป็นที่เกี่ยวข้องมากขึ้นเมื่อ คุณกำลังทำงานบนเว็บ-p ชุดเพราะ คุณจะสามารถที่จะเข้าถึง เว็บไซต์ที่คุณกำลังทำงานต่อไปจากคุณ Chrome ในท้องถิ่นโดยใช้ที่อยู่นี้ แต่สิ่งที่ผมชอบที่จะใช้ที่อยู่ เพื่อ - และคุณไม่จำเป็นต้องทำเช่นนี้ฉัน เพียงแค่ต้องการที่จะชี้ออก - อยู่ที่นี่ ดังนั้นนี่คือหน้าต่าง terminal บน Mac ของฉันนี้ไม่ได้อยู่ใน เครื่องใช้ในทุก และคุณสามารถมองหาสิ่งที่ คำสั่งนี้จะ แต่ฉันจะ SSH โดยตรง กับเครื่องใช้ของฉัน ผมไม่ทราบว่าสิ่งที่ไอพีเป็น JOSEPH: 168 - 168.224.1.0 ROB: ดังนั้นเมื่อฉันทำ กับเรื่องนี้เข้าสู่ระบบ ตอนนี้โดยทั่วไปนี้จะเหมือนกับ หน้าต่าง terminal ภายในเครื่องของฉัน ดังนั้นผมสวยมากไม่เคยทำงานจริง จากภายในเครื่องตัวเอง ผมก็มักจะมีมันทำงาน ในพื้นหลังลดลง และ SSHed เป็นมัน ปัญหากับเรื่องนี้คือคุณจะไม่ได้ไป เพื่อให้สามารถใช้งานได้อย่างง่ายดาย Gedit โดยตรงจากนี้ แต่ถ้าคุณต้องการที่จะเป็นจริงเย็น แฮ็กเกอร์แล้วคุณควรจะได้รับในการใช้ แก้ไขข้อความบรรทัดคำสั่งต่อไป ดังนั้นเป็นกลุ่มและ Emacs และนาโนทั้งหมดเหล่านี้ มีทางเลือกที่แตกต่างกัน Nano มีแนวโน้มที่จะง่ายที่สุด และฉันคิดว่ามันไม่มี เน้นไวยากรณ์ โอ้ไม่ก็ไม่ทั้งหมด ดังนั้นคุณสามารถใช้นาโนเพราะ อย่างใดอย่างหนึ่งที่ง่ายสวย คุณจะเห็นคำสั่งทั้งหมดเหล่านี้ ที่ด้านล่าง สัญลักษณ์นี้แครอทน้อย หากคุณไม่ได้เห็นมันมาก่อนที่คุณจะ อาจจะเห็นว่ามันมากตอนนี้ มันมักจะหมายความว่าแครอทควบคุม เช่นด้านล่างซ้ายของแป้นพิมพ์ของคุณ อักขระควบคุม ดังนั้นที่นี่มันบอกฉันลงที่นี่ - โอ้ก็ไม่ได้ตัดออกไปถ้าผมซูมเข้า ดังนั้นการควบคุม X เป็นวิธีการที่ ฉันจะออกจาก และมันบอกว่าฉันสามารถกด Y เพื่อ ใช่สำหรับการประหยัด, ไม่มีการเลขที่ เพื่อให้เป็นนาโน เป็นกลุ่มและ Emacs มีแนวโน้มที่จะมากกว่าเล็กน้อย ซับซ้อนและครอบงำ แต่คุณจะได้รับใช้มัน แล้วคุณจะรักมัน ดังนั้นที่ว่า JOSEPH: ไม่จำเป็นต้องทำไม่ว่า ROB: ใช่ คุณมีอิสระที่จะใช้สำหรับ Gedit ส่วนที่เหลือของภาคการศึกษา ดังนั้นคำถามใด ๆ ที่เกี่ยวข้องกับเครื่องใช้? ? หรือคุณมีความคิดใด ๆ กับสิ่งอื่น จะต้องมีการพูดเกี่ยวกับเกี่ยวกับ เครื่องใช้หรือไม่ ใช่ ลำโพงที่ 1: เมื่อคุณ SSHed เป็นของคุณ สิ่งที่เป็นสีแดงเข้มรหัสผ่านหรือไม่ ROB: ใช่ รหัสผ่านสำหรับทุกอย่างสวยมาก ในเครื่องใช้ไฟฟ้าที่เป็นไป จะเป็นสีแดงเข้ม ลำโพงที่ 2: การติดตั้งเช่น IDE จริง บนเครื่องก็จะทำงานอย่างไร ROB: ผมคิดว่าจะมีคราส รุ่น Fedora ซึ่งในกรณีที่ใช่ คุณสามารถทำเช่นนั้นได้ มันอาจไม่คุ้ม ลำโพง 2: ตกลง ดังนั้นมันอาจจะง่ายกว่าถ้าผมอยากจะ ใช้ Eclipse เพียงใช้พื้นเมืองและ แล้วอัปโหลดไปยัง - ROB: โอ้ที่ยังอาจจะง่ายขึ้น แต่คุณสามารถได้รับมันทำงาน เครื่องใช้ภายใน JOSEPH: และสำหรับกล้องคำถาม คือคุณสามารถติดตั้งอีก IDE ภายในของเครื่องใช้หรือไม่ ROB: Eclipse เป็น ตัวอย่างของการ IDE คำถามเครื่องใช้อื่น ๆ ? ขวาทั้งหมด ดังนั้นตอนนี้เราจะย้ายไปบรรทัดคำสั่ง สิ่งที่เกี่ยวข้องกับอินเตอร์เฟซเพื่อ CLI และอีกครั้งฉันแค่จะไปทำงานใน ที่นี่เพราะเป็นเหมือนกันกับ การทำงานภายในหน้าต่าง terminal เครื่องใช้ภายใน วิธีที่แบบอักษรที่มองหา ที่มีขนาดใหญ่เพียงพอหรือไม่ ขวาทั้งหมด ดังนั้นมีจำนวนมากของคำสั่งที่ คุณควรจะได้รับสวยใช้ ตลอดภาคการศึกษา ขนาดใหญ่สองสำหรับการนำเป็นคำสั่ง ls รายการ ไฟล์ที่อยู่ในไดเรกทอรีนี้และ cd เพื่อเปลี่ยนไดเรกทอรี ดังนั้นผมจึงสามารถเปลี่ยนไปยังเดสก์ทอปแล้ว รูปแบบที่พบบ่อยมากคือแผ่นซีดีที่จะ ไดเรกทอรีและทันทีที่คำสั่ง ls สิ่งที่อยู่ในไดเรกทอรี บางครั้งคนยังไม่ได้ตระหนักถึง เสร็จสิ้นแท็บที่เป็นสิ่งที่ ดังนั้นเช่น cd, VH แล้วฉันกดแท็บ ฉันเกือบจะไม่เคยพิมพ์ที่ออก สิ่งที่ทั้ง แล้วถ้าผมให้กดปุ่มแท็บ อีกครั้งก็จะได้โดยอัตโนมัติ เริ่มรายการสำหรับฉัน ดังนั้นผมจึงสามารถ vhosts cd, โฮสต์ท้องถิ่น และที่เพิ่งจะ - ในกรณีที่คุณยังไม่เคยได้ยินคำว่า ก่อนไดเรกทอรีเป็นเพียงคำอื่น สำหรับโฟลเดอร์ ดังนั้นตอนนี้ถ้าคุณเห็น - ให้นำมาที่ไปด้านบน ดังนั้นตอนนี้ถ้าคุณเห็นในวงเล็บคุณ เห็นตัวหนอนน้อย, เฉือน, vhost, เฉือน, โฮสต์ท้องถิ่น ดังนั้นตัวหนอนที่หมาย ไปยังไดเรกทอรีบ้านของฉัน มันเป็นไดเรกทอรีที่คุณกำลัง ในเมื่อคุณ SSH ค่ะ มันเป็นไดเรกทอรีที่คุณอยู่ในเมื่อ คุณเปิดสถานี มันเป็นที่ที่คุณจะเริ่มต้น และดังนั้นฉันภายในของไดเรกทอรีบ้านของฉัน และฉันภายในของ vhost ไดเรกทอรีภายในของไดเรกทอรีบ้านของฉัน และแล้วฉันภายในของท้องถิ่น เป็นเจ้าภาพจัดการภายในของไดเรกทอรีที่ ดังนั้นบางสิ่งที่มีประโยชน์อื่น ๆ ที่มีซีดี - หรือดีโดยทั่วไปเพื่อจุดเสมอ หมายถึงไดเรกทอรีปัจจุบัน cd จุดเป็นคำสั่งที่ไร้ค่าสวย แต่ที่เปลี่ยนไป ไดเรกทอรีปัจจุบัน อย่างใดอย่างหนึ่งที่มีประโยชน์มากในแง่ของการ cd เป็นจุดจุดซึ่งเป็น เพียงแค่ขึ้นไปหนึ่งไดเรกทอรี และทราบว่าเหล่านี้ - ฉันอยากจะพูดแทน แต่เหล่านี้ สัญลักษณ์จุดและจุดจุดทำงานที่ สวยมากคำสั่งใด ๆ ที่คุณกำลัง จะได้รับความคิดของการทำงาน ดังนั้นเช่นแผ่นซีดีน่าจะเป็นที่ที่คุณจะ ใช้มากที่สุด แต่เหล่านี้จะไม่ สิ่งที่เพียงแค่ cd เข้าใจ มันเป็นสิ่งที่สวยมากทั้งหมดของคุณ บรรทัดคำสั่งเข้าใจ จำนวนมากของโปรแกรมเข้าใจ จุดและจุดจุด ดังนั้นคนที่มีประโยชน์อื่น ๆ - cd, ประ เพื่อที่จะนำมาให้ผม ไดเรกทอรีสุดท้ายที่ฉันได้ค่ะ ดังนั้นบางครั้งฉันจะทำสิ่งที่ต้องการ โอ้ผมทำงานที่นี่ และผมเห็นข้อผิดพลาดบางอย่างเกี่ยวกับบางสิ่งบางอย่างและ ฉันจะไปตรวจสอบได้โดยไปที่ บางไดเรกทอรีสุ่มอยู่ที่ไหนสักแห่ง และผมก็ไม่ทราบว่ามันจะ ให้ฉันอยู่ในนั้น มันจะ ดังนั้นแล้วฉันทำสิ่งที่ฉันต้องการ ไดเรกทอรีนี้ blah, blah, blah, blah, blah และฉันก็ชอบที่ถูกต้องทั้งหมดที่ฉันต้องการ ที่จะกลับไปที่ผม cd รีบและมันทำให้ผมกลับมา ดังนั้นฉันจะโยนมาก ของเหล่านี้ที่คุณในวันนี้ ผมไม่ได้คาดหวังให้คุณจดจำ ทั้งหมดของพวกเขา มันเป็นชนิดของเพิ่งรู้ ที่พวกเขามีอยู่ และจากนั้นในภายหลังเมื่อคุณต้องการ อืมผมอยากจะกลับไปที่ ไดเรกทอรีที่ฉันเป็นเพียงที่โอ้รอ สิ่งที่ต้องการที่มีอยู่ คุณไม่จำเป็นต้องเพียงพิมพ์ สารบบทั้งหมดอีกครั้ง JOSEPH: และในที่สุดคุณจะเพียงแค่ ใช้พวกเขาซ้ำแล้วซ้ำอีกและ มันจะกลายเป็นหน่วยความจำของกล้ามเนื้อ ROB: ใช่ ดังนั้นวิธีการที่ผมกล่าวว่าก่อนที่ตัวหนอน เป็นไดเรกทอรีที่บ้านของคุณ ดังนั้นผมจึงสามารถ cd, ตัวหนอน แต่ฉันไม่ได้มีการ ทำว่าถ้าฉันเพียง - ผมจะกลับไปที่ไดเรกทอรีเพื่อ มันไม่ได้เป็นตัวอย่างที่ไม่มีจุดหมาย แต่ถ้าฉันเพียงแค่ทำ cd, ที่ยัง เช่นเดียวกับที่ไปที่ไดเรกทอรีบ้านของฉัน ฉันทำคำสั่ง, K. JOSEPH: คุณยังสามารถพิมพ์ที่ชัดเจน คำและมันควรจะล้างมัน ROB: และผมคิดว่ายังควบคุม L ยังไม่ได้ ดังนั้นหลายวิธีที่แตกต่างกัน ผมคิดว่ามีความแตกต่างบางอย่างที่ ที่ชัดเจนและควบคุม L จะเพียงแค่ จริงๆผลักดันมันไปด้านบนและ ฉันยังสามารถเลื่อนกลับ คำสั่ง K แท้จริงทำลาย ทุกอย่างและคุณ ไม่สามารถเลื่อนกลับขึ้นไป อย่างน้อยที่สุดที่ วิธีการทำงานใน iTerm2 ผมไม่ทราบว่าสิ่งที่อื่น ๆ - โอ้ ด้วย SSHing ดังนั้นถ้าคุณอยู่ในวินโดวส์ คุณจะต้องดาวน์โหลดฉาบ เพื่อ SSH ตั้งแต่ Windows ไม่ได้ เช่นมีเครื่องมือในตัว SSH จากแม็คคุณสามารถเพียง SSH โดยตรง จากหน้าต่าง terminal ตกลง คำถาม? ด้วยคำสั่ง ls ดังนั้นสิ่งที่จะได้รับใช้ กับที่สุดของคำสั่งเหล่านี้คือ - ดีฉันก็จะทำอย่างใดอย่างหนึ่ง แอลเอสรีบลิตร ดังนั้นรีบลิตรคือสิ่งที่เรากำลังจะ ที่จะเรียกธงที่จะสั่ง ls และมากของคำสั่งเหล่านี้มีธง ที่คุณสามารถส่งผ่านไปยังพวกเขา ดังนั้นในกรณีนี้รีบลิตรเป็นธง ที่บอกว่ามันจะให้ฉันเต็ม รายการของข้อมูลทั้งหมดที่ ไฟล์เหล่านี้ ดังนั้นเราจึงเห็นว่านี่เป็นสก์ท็อป แก้ไขเมื่อวันที่ 30 กรกฏาคม 00:54 ดาวน์โหลดมีการปรับเปลี่ยนที่ 6 กันยายน เหล่านี้เป็นขนาดปัจจุบันและ ไบต์ของไดเรกทอรีเหล่านี้ คุณไม่จำเป็นที่จะเข้าใจ ทั้งหมดนี้ สิ่งนี้อยู่ทางด้านซ้ายของเหล่านี้ drwx, ที่จะกลายเป็นที่เกี่ยวข้องมากขึ้น ในภายหลังเมื่อคุณต้องจัดการกับ - ว่าจะทำอย่างไรกับผู้ที่มีสิทธิ์ ในการดูไฟล์เหล่านี้ ดังนั้นถ้าคุณไม่ได้ใช้เฉพาะใน คอมพิวเตอร์เครื่องนี้คุณจะสามารถที่จะ การพูดการตกลงฉันควรจะเป็นคนเดียว ได้รับอนุญาตให้ดูแฟ้มนี้หรือฉัน จะช่วยให้ทุกคน ในการดูไฟล์นี้ ดังนั้นคนอื่นบนคอมพิวเตอร์ของฉัน สามารถดูไฟล์นี้ ฉันไม่ได้รู้ว่าสิ่งนี้ - สิ่งนี้จะทำอย่างไร JOSEPH: ผมไม่แน่ใจว่าจริง ROB: ไม่มีความคิด JOSEPH: แต่ถ้าคุณไม่ได้รู้ว่ามี คำสั่งที่เป็นประโยชน์ที่คุณสามารถใช้ ที่จะบอกคุณในสิ่งที่หมายถึงการส่งออก และถ้าคุณพิมพ์ในมนุษย์ ก่อนที่คำสั่ง - ดังนั้น M--N ROB: คน ดังนั้นคนที่เป็นอีกหนึ่ง ที่มีประโยชน์มาก และมนุษย์คำสั่ง ls ดังนั้นหน้าคนที่พวกเขามีทั้ง คำสั่งที่คุณกำลังจะใช้ ที่บรรทัดคำสั่งและพวกเขายังมี ฟังก์ชั่นที่จะเกี่ยวข้อง C. ด้วยดังนั้นคุณจึงสามารถคน - และฉันไม่สนใจ 3 แต่คนที่ 3 printf จะนำ รุ่น C ขึ้นของ printf แต่ถ้าผมทำเพียงแค่คน printf นี้เป็น จะนำคำสั่ง printf ขึ้น ที่เกิดขึ้นที่บรรทัดคำสั่ง ดังนั้นคนสั่ง ls หน้าคนสามารถสวย ล้นหลาม ที่นี่ แต่คุณจะเห็นในรายการนี​​้ ทั้งหมดของธงเหล่านี้ที่คำสั่ง ls เข้าใจ ดังนั้นถ้าเราไปรีบ, ลิตรและ - ฉันแค่จะโยนนี้ที่คุณ แต่เพื่อการค้นหาที่คุณต้องการ การตีครั้งแรกคำถาม เครื่องหมายหรือปุ่มเฉือน ดังนั้นเฉือน แล้วฉันจะค้นหา สำหรับสิ่งที่ฉันต้องการ ดังนั้นฉันจะเฉือนเพื่อประลิตร และมีมันเป็น ดังนั้นใช้รูปแบบรายการที่มีความยาว แต่นั่นไม่ได้ช่วยให้ฉันคิดออกว่า คอลัมน์โดยเฉพาะอย่างยิ่งที่มีความหมาย แต่ฉัน สมมติที่ไหนสักแห่งในที่นี่ ก็จะอธิบายว่า เพื่อใช้หน้าคนสำหรับคำสั่งใด ๆ ที่คุณไม่เข้าใจได้ทันที ฉันแน่ใจว่าสวยที่คุณยังสามารถมนุษย์มนุษย์ อินเตอร์เฟซออนไลน์ คู่มืออ้างอิง โอ้, ไฟล์ล่าสุดหนึ่งที่อาจจะเล็กน้อย คำสั่ง ls มีความเกี่ยวข้องชน เพื่อแจ้งให้ทราบถ้าฉันทำคำสั่ง ls, ฉันจะได้รับเหล่านี้ห้าไฟล์ ถ้าฉันทำคำสั่ง ls, รีบ, ผม ได้รับไฟล์มากขึ้น ดังนั้นสิ่งที่เหมือนกันระหว่างเหล่านี้ ไฟล์ใหม่เป็นจุดก่อน ดังนั้นการประชุมก็คือแฟ้มที่ เริ่มต้นด้วยการจุดถูกซ่อนอยู่ ดังนั้นคุณจึงไม่ต้องการที่จะเห็นไฟล์ที่คุณ ไม่ต้องการที่จะมีมันยุ่งกับ รายการไดเรกทอรีของคุณ มันเป็นเพียงเมื่อคุณถามอย่างชัดเจน ทั้งหมดที่ถูกต้องคำสั่ง ls, ประ,, แสดงให้ฉัน ย่อมาจากไฟล์ทั้งหมด รวมถึงคนที่ซ่อนอยู่ ดังนั้นบางคำสั่งอื่น ๆ โอ้คำถามที่จุดที่ ใช่ ลำโพงที่ 3: เมื่อคุณทำคำสั่ง ls, สิ่งที่จุดจุด? ROB: โอ้ ดังนั้นนี่คือสิ่งที่ผมพูดเกี่ยวกับ มันเป็นสิ่งเดียวที่ ฉันสามารถชอบ cd จุดจุด ดังนั้นในทางเทคนิคจุดและจุดจุดที่ ไฟล์ที่มีอยู่ในทุกเดียว ไดเรกทอรีที่ไฟล์จุดหมาย ไปยังไดเรกทอรีปัจจุบัน ดังนั้นถ้าผม cd จุดฉันแค่จะ ที่จะอยู่ในไดเรกทอรี และจุดจุดมักจะหมายถึง หน้าที่ไดเรกทอรีหนึ่งระดับขึ้น ดังนั้นถ้าผมไปลงบันทึกและคำสั่ง ls รีบอัล, ฉันจะเห็นจุดจุด cd ไปยังจุดจุด นำฉันไปยังไดเรกทอรีก่อนหน้านี้ ใช่ ตกลง ดังนั้นอีกสิ่งที่สำคัญสวย คำสั่ง rm ใน ดังนั้นนั่นคือสิ่งที่เรากำลังจะ ที่จะใช้ในการลบ และแจ้งให้เราทำจริงอีก คำสั่งแรก ดังนั้น mkdir mkdir คือวิธีที่คุณสามารถ สร้างไดเรกทอรี และฉันจะสร้างไดเรกทอรีชั่วคราว และไปในไดเรกทอรีชั่วคราวที่ และเป็นที่คาดหวังมันว่างเปล่า แต่ถ้าคำสั่ง ls ฉันรีบ, ฉันยังคงมีจุด และจุดจุดจุดเพราะหมายถึง ไดเรกทอรีปัจจุบัน และจุดจุดหมายถึง ไดเรกทอรีที่แล้ว และผู้ที่มักจะอยู่ไม่ว่า ไดเรกทอรีที่คุณกำลังเข้า และนี่คือที่ไม่จำเป็นอย่างสิ้นเชิง คำสั่ง แต่สัมผัส ฉันแค่ใช้มันเพราะมันเป็น วิธีที่ง่ายในการสร้างไฟล์ เพื่อสัมผัสสัมผัส b สัมผัสคเป็นเพียง จะสร้างสามไฟล์ที่เรียกว่า b, c และที่ว่างเปล่า ดังนั้นจุดของฉันการสร้างผู้ที่อยู่ใน สถานที่แรกที่เป็นเพียงเพื่อให้ Rm ที่ วิธีที่เราสามารถลบออก ดังนั้น RM, มันจะถามฉันลบ ปกติไฟล์ว่างเปล่า แล้วฉันจะบอกว่าใช่ ดังนั้นถ้าผมทราบว่าผมต้องการที่จะ ลบไฟล์ที่โดยไม่ต้องมี ได้รับแจ้งให้ลบไฟล์ที่ว่างเปล่าปกติ? then rm รีบฉเป็นไปได้ ธงที่บอกว่าบังคับเอาโดยไม่ต้อง ได้แจ้งให้ฉันโอ้คุณ แน่ใจหรือว่าต้องการที่จะลบไฟล์หรือไม่ ใช่ฉันแน่ใจว่า ดังนั้น RM, ประ, FB จะเพียงแค่ ทำมันได้โดยไม่ต้องขอ ดังนั้นขอให้บางไดเรกทอรีมากขึ้น mkdir, tmp2, cd, tmp2, สัมผัสสัมผัสข ตกลง ดังนั้นตอนนี้ฉันต้องการที่จะลบ tmp2 เป็นไดเรกทอรี tmp2 ดังนั้น Rm คุณไม่สามารถลบ tmp2, มันเป็นไดเรกทอรี ดังนั้นปัญหาที่นี่เป็นที่ Rm ไม่ ทันทีทำงานในไดเรกทอรี มันเป็นความหมายสำหรับไฟล์เช่น ไฟล์ที่ไม่ไดเรกทอรี ดังนั้นสิ่งที่เราสามารถทำได้ ที่นี่เป็น RM, ประ, r ที่หมายถึงซ้ำซึ่งอาจ ไม่ได้หมายถึงอะไรให้คุณยัง แต่เมื่อคุณได้รับการเรียกซ้ำ มันจะหมายถึงมากขึ้น ดังนั้น RM, ประ, r, tmp2 เป็นไป ซ้ำไปลงในไดเรกทอรีที่ เพื่อลงไป tmp2 ไดเรกทอรี ใช่ให้ไปลงที่ เราต้องการที่จะลบ tmp2 /? ใช่ เราต้องการที่จะลบ tmp2 / b? ใช่ ตอนนี้เราต้องการที่จะลบ tmp2 ไดเรกทอรีหรือไม่ ใช่ และตอนนี้เพื่อไดเรกทอรี และทุกสิ่งที่อยู่ภายใน ของมันได้ถูกลบออก เป็นเทคนิคที่มีคำสั่ง rmdir ที่คุณสามารถใช้เพื่อลบ ไดเรกทอรี แต่มันใช้ได้เฉพาะ ในไดเรกทอรีที่ว่างเปล่าอยู่แล้ว และจะเห็นว่าให้เพียง ทำ mkdir, tmp2 อีกครั้ง Tmp2 สัมผัส ตกลง ดังนั้นถ้าผมพยายามที่จะลบ dirtmp2 ก็จะ พูดไดเรกทอรีไม่ว่างเปล่า ดังนั้นผมสวยมากไม่เคยใช้ลบ dir คำสั่งต่อไปเพราะ RM, ชน r จะทำงานในไดเรกทอรีว่าง และไดเรกทอรีที่ไม่ว่างเปล่า และนอกจากนี้ถ้าฉันไม่ต้องการให้มีการ ผ่านไปที่กระบวนการทั้งหมดของ ลงไปในไดเรกทอรีและ การลบไฟล์แต่ละ, RM, รีบ, RF, tmp2 และตอนนี้มันหายไป สิ่งที่ต้องระวัง เกี่ยวกับการเป็น RM, ประ, RF และมันกลัวฉันจะได้พิมพ์, เพราะถ้าฉันตั้งใจ กด Enter หรือสิ่งที่ ดังนั้น RM, ประ, RF, ตัวหนอนจะโดยไม่ต้อง แจ้งให้ฉันฉไม่ได้แจ้งให้ ฉันก็จะลบโดยอัตโนมัติ ไดเรกทอรีบ้านทั้งของฉันและ ทุกอย่างในนั้น ดังนั้นคุณอาจจะคิดว่าเป็น เป็นสิ่งที่โง่ที่จะทำ และดีมันเป็น แต่ก็สามารถเกิดขึ้นได้อย่างง่ายดายมากโดย อุบัติเหตุถ้าพูดที่ฉันต้องการที่จะลบ เฉือนไดเรกทอรี vhost ของฉัน และในการพิมพ์ที่รวดเร็ว ฉันตั้งใจทำเช่นนี้ ที่จะลบซ้ำทั้งสองของฉัน ไดเรกทอรีและไดเรกทอรี vhost ในไดเรกทอรีนี้โดยเฉพาะที่เพิ่ง ที่เกิดขึ้นไม่ได้มีอยู่ในตอนนี้ แต่นี้ยังจะเอา ไดเรกทอรีบ้านของฉันทั้งหมด อย่างน้อยโดยไม่ต้องฉ, ก็จะแจ้งให้ฉันแรก และฉันจะเป็นเหมือนโอ้ไม่ฉัน ไม่ต้องการที่จะทำเช่นนั้น แต่คนเฉือนรวมทั้ง ฉันมีแนวโน้มที่จะได้รับใน นิสัยของเสมอ RF-ไอเอ็นจี แม้แต่ไฟล์ปกติท​​ี่ฉันสามารถ rm, C, ฉันมักจะเพียงแค่ rm, ประ, RF, ค เพียงระมัดระวังเมื่อคุณ RF-ไอเอ็นจี ลำโพง 4: อะไร C ทำอย่างไร ROB: ซีที่ผมพูดเกี่ยวกับไฟล์ C ที่ ไดเรกทอรีนี้, RM ที่ค JOSEPH: และอันตรายมากขึ้นถ้าคุณใช้ ดาวมันหมายถึงทุกอย่างใน ไดเรกทอรี ดังนั้นสิ่งที่ฉันมักจะมีแนวโน้มที่จะทำคือฉันจะ ไปลงในไดเรกทอรีและผมต้องการที่จะ ลบไฟล์ทั้งหมดที่อยู่ในนั้น ดังนั้น RM, ประ, RF, ดาว ROB: ใช่ rm, ประ, RF, ดาว JOSEPH และถ้าคุณไม่ระวัง สิ่งที่ไดเรกทอรีที่คุณอยู่ใน - ผมไม่ได้อยู่ในอุณหภูมิ แต่ฉันก็ตั้งใจ ในไดเรกทอรีบ้านของฉัน แล้วฉันจะลบทุกอย่าง ในไดเรกทอรีบ้านของฉัน และฉันได้ทำจริงที่มาก่อนและ ฉันคิดว่าคุณได้กระทำเช่นนี้มาก่อนหรือ เจย์ได้ทำก่อนที่จะ ROB: ฉันได้ลบตั้งใจ - จึงไม่สนใจคำสั่งที่สำหรับบิต JOSEPH: ไม่สนุก ROB: ดังนั้นในไดเรกทอรีถังเฉือนเป็น พวงของไฟล์ไบนารีที่มีจะ เป็นคนที่คุ้นเคยเช่นเสียงดังกราว ดีและพื้นเสียงดังกราวสิ่งเหล่านี้ สิ่งที่ผมใช้คำสั่ง อยู่ในสายเฉือนนี้ไดเรกทอรีถัง JOSEPH: เช่นเดียวกับคำสั่ง ls อยู่ในที่นี่ ROB: ดังนั้นจุด, เฉือน, คำสั่ง ls จะ รายการไดเรกทอรีนี้ JOSEPH: Rm ยังอยู่ในไดเรกทอรีนี้ ROB: ฉันได้ตั้งใจ rm, ถัง RF-เอ็ด ซึ่งออกคำสั่งใด ๆ ที่ฉันสามารถทำได้ อาจจะเคยต้องการ ที่แล้วฉันเพิ่งติดตั้ง เครื่องใช้ใหม่ที่จุดที่ JOSEPH: ดังนั้นต้องระมัดระวังเมื่อ คุณใช้คำสั่งนี้ ผู้ชม: [ไม่ได้ยิน]? ROB: ใช่ ที่ยังนิสัยไม่ดีที่จะได้เป็น ถ้าคุณสังเกตเห็นฉันตอนนี้ - ดีคุณจะไม่สามารถสังเกตเห็น แต่ ซูมในอาจจะสามารถของฉัน ดังนั้นตอนนี้ผมราก @ เครื่องใช้ ดังนั้น jharvard เป็นผู้ใช้ที่เราต้องการ คุณเสมอจะใช้ รากเป็นผู้ใช้ที่มีสิทธิ์ใน ที่จะทำอะไรอย่างแน่นอน เพื่อแจ้งให้ทราบเมื่อฉัน jharvard, ถ้าฉันพยายามที่จะ cd - สิ่งที่ไดเรกทอรีที่? โอ้รากเป็นตัวอย่างที่ดี ดังนั้น cd ราก อนุญาต เพราะถ้าเราดูที่นี้ - และอีกครั้งที่คุณจะได้ไม่ต้อง เข้าใจทั้งหมดนี้ แต่ทั้งสามขีดกลางจะพูด ที่จะไม่ปล่อยให้คนอื่น ๆ ผู้ใช้ในไดเรกทอรีนี้ และไดเรกทอรีที่เกิดขึ้นกับ เป็นของผู้ใช้ราก ดังนั้นความจริงที่ว่าผม jharvard และไม่มี อย่างใดอย่างหนึ่งที่ไม่ได้เป็นรากที่ได้รับอนุญาตใน ไดเรกทอรีนี้ว่าหมายความว่าฉัน จะได้รับสิทธิ์ในการปฏิเสธเมื่อฉัน พยายามที่จะ cd เป็นมัน ดังนั้นเมื่อเราเป็นรากผมได้รับอนุญาตให้ ทำอะไรอย่างรวมทั้ง ลบไฟล์สำคัญ กับเครื่องใช้ไฟฟ้าและ ทำลายสิ่งทั้งหมด ดังนั้นมันเป็นนิสัยที่ดีที่จะได้รับเป็น เพียงแค่เดินไปรอบ ๆ ของคุณ ระบบปฏิบัติการเป็นราก ฉันทำมันต่อไป คำถาม? และฉันจะออกจากรากอยู่เป็น jharvard ตกลง คำสั่งที่เกี่ยวข้องเพิ่มเติม เพื่อที่จะกลับสู่อุณหภูมิของเรา ฟังเพลงคำสั่งยืนสำหรับการย้าย คุณสามารถย้าย ตอนนี้เราต้องการที่จะเรียกว่าข ดังนั้นตอนนี้ก็เรียกว่าข หรือบางทีเราต้องการที่จะย้าย b หนึ่งไดเรกทอรี ดังนั้นตอนนี้ว่างเปล่าไดเรกทอรีนี้ ผมจะกลับไปที่บ้านของฉันและ เราจะเห็นว่าขอยู่ในที่นี่เพราะ ไดเรกทอรีบ้านเป็นหนึ่งในไดเรคทอขึ้นจาก ไดเรกทอรีที่ขได้รับค่ะ นอกจากนี้ยังมี cp ดังนั้น cp คัดลอกเป็นส่วนซุปเปอร์ จุดข้อความ ฉันสามารถเรียกมันจุดข้อความ ตอนนี้เรามีทั้งส่วนซุปเปอร์ จุดข้อความและ s จุดข้อความ นอกจากนี้ยังทำงานในไดเรกทอรี ฉัน RF-เอ็ดไฟล์เดียว ดังนั้น cp - กันครั้งแรกที่ลอง cp, tmp, tmp2 ดังนั้นถนัด tmp ไดเรกทอรี จึงคล้ายกับ rm, การทำงานเริ่มต้น คือการไม่ทำงานในไดเรกทอรี และอีกครั้งคล้ายกับ rm เริ่มต้น พฤติกรรม - ดีการไปทำงาน กับไดเรกทอรีเป็นรีบ-r ไป เพื่อคัดลอกซ้ำชั่วคราว ไดเรกทอรีใน tmp2 และอื่น ๆ ตอนนี้เรามีทั้ง tmp และ tmp2, และที่ไม่ได้เป็นประโยชน์ที่ตั้งแต่ tmp ว่างเปล่าในสถานที่แรก Tmp2 ตอนนี้ขอคัดลอก tmp เป็น tmp2 และเราจะเห็นว่า tmp2 นอกจากนี้ยังมีไฟล์ เพราะไดเรกทอรีและ ทุกอย่างภายในที่ ไดเรกทอรีถูกคัดลอก และที่จะเป็นประโยชน์บ้าง ถ้าบอกว่าคุณกำลังทำงาน ในการแก้ปัญหาการตั้งค่าอย่างใดอย่างหนึ่ง - หรือที่จริงชุดปัญหาภายหลัง ยิ่งมีความสำคัญมากขึ้นเพราะมี จะเป็นทั้งกลุ่ม ของไฟล์และสิ่งที่ แต่คุณต้องการเพียงแค่การแยก สองคุณต้องการขวาทั้งหมดฉัน จะลองสิ่งที่แตกต่าง ผมขอคัดลอก pset1 ทั้งหมดของฉัน ไดเรกทอรีในการสำรองข้อมูล pset1 เพื่อว่าถ้า ฉันท้ายคาดคั้นสิ่งขึ้นฉันสามารถ ย้อนกลับไปในไดเรกทอรีการสำรองข้อมูลของฉัน มีวิธีการที่เหมาะสมมากขึ้นของการเป็น เวอร์ชันสำรองรหัสของคุณ แต่ นี้มักจะเป็นวิธีที่รวดเร็วเพื่อเพียงให้ แน่ใจว่าคุณมีสำเนาของบางสิ่งบางอย่าง ที่คุณกำลังจะแก้ไข ดังนั้นเสียงสะท้อนนี้ยังมีคำสั่งอย่างใดอย่างหนึ่งออกว่า ชนิดของ sillily ก็จะพิมพ์ไป บรรทัดคำสั่งว่าสิ่งที่ คุณต้องการที่จะสะท้อน ดังนั้น echo hi เราก็จะพิมพ์ hi ก้องโลก hello เราจะพิมพ์สวัสดีชาวโลก ที่เข้ามาในการใช้งานเมื่อคุณ เริ่มต้นการรวมคำสั่ง และอีกครั้งไม่ได้คาดหวังให้คุณอย่างสิ้นเชิง เข้าใจในเรื่องนี้ แต่ก็ บางสิ่งบางอย่างที่จะเห็น แล้วถ้าคุณกำลัง Googling ตัวอย่าง หรือคุณตระหนักได้ว่าคุณต้องการจะทำ บางสิ่งบางอย่างมันจะมีประโยชน์ จึงขอเป็นตัวอย่าง, คำสั่ง ls เพื่อรีบลิตร ดังนั้นที่นี่ฉันเห็นผลลัพธ์ ของคำสั่ง ls รีบลิตร และผมก็บอกว่าโอเคผมต้องการ ที่จัดเก็บเป็นไฟล์ ทั้งหมดของการส่งออกที่นี่ฉันต้องการ ที่จะใส่ลงไปในแฟ้มที่แยกต่างหาก ดังนั้นนี้น้อยกว่าสัญลักษณ์ คือสิ่งที่เราจะเรียก เรากำลังเปลี่ยนเส้นทาง ส่งออกเป็นไฟล์ ขอเรียก blah ไฟล์เพราะนั่นคือ สิ่งที่ฉันมีแนวโน้มที่จะมักจะเรียกว่า ดังนั้นตอนนี้เราจะเห็นว่าเรามี ยื่น blah ที่นี่ และถ้าผมเปิดมันขึ้นมาฉันจะเห็นมัน ตรงออกจากคำสั่ง ที่ฉันวิ่ง และเช่นเดียวกันคุณสามารถ - ว่านี่คือการส่งออกไปยังแฟ้มนี้ เป็นที่ได้รับข้อมูลจากแฟ้ม คืออะไรคำสั่งที่ฉัน - JOSEPH: ผมคิดว่าคุณสามารถใช้ น้อยลงหรือมากขึ้นอาจ ROB: แต่วิธีการเกี่ยวกับเพียงแค่ blah น้อยลงหรือไม่ ฉันไม่รู้ หากคุณเข้ามาในสถานการณ์นี้เช่น มี psets ว่ามันเป็นประโยชน์สำหรับ JOSEPH: คุณสามารถท่อมันเป็นเสียงสะท้อน ท่อไฟล์ลงสะท้อนที่จะเห็นมัน ROB: มันเป็นท่อ JOSEPH: ขออภัย ROB: ทั้งหมดขวา ดังนั้นนี่คือการส่งออกไปยังแฟ้ม นี้คือการได้รับข้อความจากไฟล์ และมือมันไปยังโปรแกรม และคุณยังจะเห็นผู้ชายคนนี้ ดังนั้นนี้เป็นชนิดของการทำทั้งสองอย่างพร้อม และที่จริงผมจะแนะนำสองใหม่ คำสั่งเพียงเพื่อให้ใช้ประโยชน์จากมัน ประวัติความเป็นมาเป็นคำสั่งที่มีประโยชน์ที่เป็นเพียง จะพิมพ์ออกรายการของ อะไรที่ฉันเคยวิ่งบรรทัดคำสั่ง ดังนั้นเรามาดูกันที่นี่ทุกอย่างที่ฉันมี รับการทำงานตลอดเวลานี้ จำนวนมากของคำสั่ง ls และคำสั่งที่มีประโยชน์อื่น grep ที่ จุดประสงค์ของมันคือการค้นหาผ่าน ข้อความที่กำลังมองหารูปแบบที่ดี มองหาสิ่งที่คุณ ต้องการที่จะมองหา และเพื่อให้การใช้ประโยชน์ที่นี่คือการพูด เราต้องการที่จะคว้าประวัติศาสตร์ และฉันต้องการที่จะมองหาคำสั่งที่ ที่ฉัน - สิ่ง หนึ่งในประโยชน์ที่จะมองหา JOSEPH: [ไม่ได้ยิน]? ROB: หรือให้เพียงมองหาทั้งหมด สัมผัสด้วยเหตุผลใด ดังนั้นนี่คือสิ่งที่มันจะมีลักษณะเช่น และคุณไม่จำเป็นต้องสมบูรณ์ เข้าใจว่า แต่ความคิดที่อยู่ที่นี่จะให้ประวัติศาสตร์ ออกเดียวกันมันก็ที่นี่ ที่มันพิมพ์ออกทั้งหมด ประวัติศาสตร์ของทุกอย่างที่ฉันเคยวิ่ง จากนั้นเราจะผ่านที่ - เพื่อแทนการพิมพ์ไปยังหน้าจอที่ เราต้องการที่จะผ่านไปยัง grep คำสั่งที่กำลังมองหา ทุกกรณีของคำสัมผัส และเพื่อใช้เป็นส่วนผสมของนี้ ประวัติเครื่องมือและ grep ฉันสามารถดูโอเค นี่คือทั้งหมดของคำสั่งที่ฉันได้เคย ทำงานและนี่เป็นหนึ่งค่อนข้างทั่วไป เราอยู่ที่ด้านล่าง และก็ยังให้ฉันคำสั่ง ฉันวิ่งที่มี สัมผัสคำในนั้น แต่ท่อเป็นสิ่งที่มีประโยชน์สวย สำหรับการรวมหลายโปรแกรม และที่จริงมันเป็นทางลัดในการขอ ฉันประวัติศาสตร์การส่งออกไปยังไฟล์ blah และ ให้ฉัน grep ใช้ blah ไฟล์ เป็นสิ่งที่ฉันต้องการที่จะดูมากกว่า ดังนั้นท่อเป็นเพียงทางลัด สำหรับผู้ที่สองคำสั่ง ใช่ ลำโพง 4: [ไม่ได้ยิน]? ROB: ใช่ คืออะไร - โอ้ ลองทดสอบ ดังนั้นแมว, สุนัข, ปลา ดังนั้นผมจึงต้องการที่จะ grep Dash, r อีกครั้งเป็นไปได้ ซ้ำดังนั้นฉันต้องการที่จะลงมาลง ไดเรกทอรีทั้งหมด ผมต้องการที่จะซ้ำ grep สำหรับทั้งหมด - และให้ฉันได้ชั่วคราว ออกจากทางนี้ ไม่สนใจฉัน ตกลง ดังนั้นผมจึงต้องการที่จะ grep ชั่วคราว ทุกกรณีของปลาคำว่า และอื่น ๆ ที่นี่สิ่งที่ฉันทำคือ grepping ซ้ำสำหรับปลาคำว่า และดาวหมายความว่าผ่านสิ่งเหล่านี้ แฟ้มในไดเรกทอรีนี้ และดังนั้นจึงให้ฉันอนุญาตปฏิเสธ, เพราะไม่ได้รับอนุญาตให้อ่านที่ ไฟล์โดยเฉพาะ แต่ก็พบว่าปลาในแฟ้มทดสอบ ฉันยังสามารถพูดได้เฉพาะฉันเท่านั้น ต้องการที่จะมองใน blah ไฟล์ใน ซึ่งในกรณีนี้จะไม่พบอะไร ฉันเพียงต้องการที่จะดูในแฟ้มทดสอบ มันจะหาปลา นั่นคือคำสั่งที่มีประโยชน์สวย รู้ทั่วไป มีทางเลือกที่จะ grep เป็น ที่ควรจะเป็นมากขึ้น โปรแกรมเมอร์เป็นมิตร แต่ฉันมัก ยังคงถอยกลับใน grep คำถาม? ตกลง จะมีคำสั่งอื่น ๆ โอ้ เพียงหนึ่งออกหนึ่งที่ฉันเสมอ พบว่าจะมีความสนุกสนานเป็นไขมัน เพื่อแจ้งให้ทราบเมื่อฉันอยู่ในนี้น่ารัก โหมดเต็มหน้าจอผมไม่มีเหมือนด้านบน แถบเครื่องมือหรืออะไร ดังนั้นไขมันเพียงแค่ให้ฉันน้อยดี ปฏิทินที่เหมาะสม ตอนนี้ตัดออกไปผมถือว่า แต่คำสั่งน้อยดี JOSEPH: มันเป็น [ไม่ได้ยิน] คำสั่งอื่น ๆ ที่คุณอาจมี รวมถึงการมองเห็นและทำเสียงดังกราว เราจะไปกว่าพวกเขาใน รายละเอียดเพิ่มเติมในภายหลัง แต่ถ้าคุณได้รับการทำงานใน pset คุณควรจะ ผู้ที่คุ้นเคยกับ ROB: ทั้งหมดขวา คำถามในสิ่งที่บรรทัดคำสั่ง? ขวาทั้งหมด จึงขอย้ายไปยังบาง สิ่งที่ C ที่เกี่ยวข้องกับ ตัวแปรทางคณิตศาสตร์ ตกลง เช่นดังนั้นเพียงแค่เรามีคณิตศาสตร์ในเกา, คุณยังสามารถใช้คณิตศาสตร์ใน C. ก่อนที่เราจะไปที่ทั้งหมด ดังนั้นตัวแปร โปรดจำไว้ว่าเมื่อใดก็ตามที่คุณประกาศ ตัวแปรเช่น int x หรือ y ลอยคุณ มีที่จะให้มันก่อนที่จะพิมพ์ได้ ชื่อตัวแปร ดังนั้นประเภทที่เราได้เห็นเพื่อให้ห่างไกลเป็น int, ลอยคู่ยาวยาวที่ฉัน ไม่จริงรู้ว่าถ้าเราได้ เห็นว่าเพื่อให้ห่างไกล มีบางคนอื่น ๆ ที่มี เราได้เห็นถ่าน มีระยะสั้นซึ่งเป็นเช่นนั้น ตรงข้ามยาวยาวที่มัน มีขนาดเล็กกว่าจำนวนเต็ม เรายังได้เห็นสตริง ดังนั้นสิ่งที่พิเศษเกี่ยวกับสตริง? ทำไมฉันจะบอกว่ามันเป็น ไม่มากเช่น int? ลำโพง 4: มันไม่ได้มีอยู่จริงๆ ROB: ใช่ ดังนั้นเหตุผลเดียวที่เรามีสตริง เป็นเพราะเมื่อคุณทำ กัญชารวม cs50.h. และเราจะเห็นตัวอย่างของการนี​​้ในภายหลัง - โอ้ที่ไม่ได้จัดการที่ดี - cs50.h ที่จะทำบางสิ่งบางอย่าง ตามสายของประเภท def ถ่านดาวสตริง และอื่น ๆ ที่บอกว่าเราทำไม่ได้ รู้ว่าสิ่งที่ดาวถ่านยัง แต่นี้จะบอกว่าเราต้องการสตริง สถานที่ที่คุณได้ใช้สายใด ๆ จะได้รับการใช้ถ่านดาว ซึ่งอันที่จริงเป็นชนิดที่ ที่มีอยู่ในภาษา C แต่เราจะไปที่ Oh, และมันจะไปขวากลับ เรียบร้อย สิ่งเดียวกันให้กับบูล ที่จริงและเท็จ ที่ไม่ได้จริงๆประเภทในตัวใน C. แต่มันเป็นแค่นี้ไม่ได้มี ค่าเป็นศูนย์หรือไม่ จากนั้นเราก็จะพิจารณา มันเป็นเท็จ นี้ไม่ได้มีค่า - ดีนี้ไม่ได้มี ค่าที่ไม่ได้เป็นศูนย์? แล้วเราก็จะคิดว่ามันจะเป็นจริง ดังนั้นหนึ่งเป็นความจริงทั้งสองเป็นความจริง อะไรภัณฑ์เป็นความจริง ดังนั้นผู้ที่เป็นคน คำถามตัวแปรและประกาศ ประเภทตัวแปรและทั้งหมดที่ ใช่ ลำโพง 4: นานนานในหนังสือ ก็กล่าวว่ามันจะต้องเป็น int ยาวยาว แต่ก็จะยาวยาวทำงานอย่างไร ROB: ดังนั้นเหล่านี้ปรับเปลี่ยนประเภท ดังนั้น int x ดังนั้นเรายังสามารถพูดได้ int x ลงนาม เราสามารถพูดได้ int x สั้น เราสามารถพูดได้ยาวยาว int x แต่สวยมาก ๆ สิ่งที่ฉัน เพียงแค่กล่าวว่า int ไม่ได้ลงนาม int สั้น int ยาวยาวคุณสามารถกำจัด int และมันก็จะถือว่า ที่คุณหมายถึง int x ดังนั้นไม่ได้ลงนามซึ่งก็หมายความว่า - คุณรู้ว่าปกติ int, คุณสามารถพูดได้ x เท่ากับลบ 3? กับ int ไม่ได้ลงนามคุณไม่สามารถ JOSEPH: และอีกครั้งสำหรับกล้อง คำถามคือสิ่งที่แตกต่าง ระหว่าง int ยาวยาว และเพียงแค่ระยะเวลาที่ยาว ROB: ใช่ ดังนั้นผมจะแทบไม่เคย เขียน int ยาวยาว ฉันจะเขียนยาวยาว JOSEPH: คำถามที่ใด? ROB: OK เตือนความทรงจำเล็ก ๆ น้อย ๆ โง่ของว่าเป็นวิธีที่ เราประกาศตัวแปรและเริ่มต้น ตัวแปรและประกาศอื่น ตัวแปรและเริ่มต้น มันทั้งหมดในขั้นตอนเดียว ดังนั้นการประกาศของตัวแปรและ ตัวแปรเริ่มต้นไม่ได้ แต่สามารถจะอยู่ในบรรทัดเดียวกัน ดังนั้นเราจึงมีผู้ประกอบการทางคณิตศาสตร์มาตรฐาน ว่าคุณกำลังใช้ในการ - บวก, ลบ, หาร, ครั้ง นอกจากนี้ยังมีแบบโมดูโลซึ่งเราจะได้เห็น ที่มีอยู่ไม่อย่างน้อยใน C, อำนาจในตัว ผู้ประกอบการยกกำลังเครื่องหมาย ดีมีเครื่องหมายประกอบการ แต่ก็ไม่ได้มีอำนาจ JOSEPH: แต่มันไม่ได้ยกกำลัง ใช่ ROB: อย่าใช้เครื่องหมาย จะคิดว่ามันหมายถึง เช่นยกกำลังสองหรืออะไรก็ตาม ดังนั้นบางสิ่งบางอย่างไปเก็บไว้ใน ทราบเกี่ยวกับการแบ่ง ฉันจะยืน คำตอบเริ่มต้นดังนั้นประกาศ ดังนั้นเรากำลังจะบอกคำตอบลอย เท่ากับ 1 หารด้วย 10 พิมพ์คำตอบทศนิยมสองตำแหน่ง และนี่คือการจัดเรียงของสิ่งที่ฉัน จะ printf คนที่จะคิดออกว่า ห่าไม่% จุด 2f หมายถึงอะไร และนั่นก็หมายความว่าดี ไม่สนใจ 0.2 และ% ฉเป็นสิ่งที่เราใช้ พิมพ์ไปลอย 0.2 บอกว่าการพิมพ์ที่ ลอยไปทศนิยมสองตำแหน่ง ดังนั้นโปรแกรมนี้มีข้อผิดพลาดและคุณอาจ ได้เห็นนี้มาก่อนในบางส่วน หลักสูตร CS ก่อน แต่สิ่งที่เป็นข้อผิดพลาดที่อะไร ลำโพง 5: ศูนย์ ROB: ใช่ ดังนั้นเมื่อเราพูดคำตอบเท่ากับ 1 หารด้วย 10 เราต้องการ ตอบ 0.1 แต่ 1 หารด้วย 10, 1 เป็น เลข 10 เป็นจำนวนเต็ม ดังนั้นเมื่อเราทำจำนวนเต็มหารด้วย จำนวนเต็มเรากำลังจะได้รับกลับ จำนวนเต็ม ดังนั้น 1 หารด้วย 10 0.1 เนื่องจากความต้องการที่จะให้เราจำนวนเต็ม มันเพิ่งจะโยนออกไปว่า ตำแหน่งทศนิยมและบอกว่า คำตอบคือ 0 และดังนั้นเมื่อเราพิมพ์คำตอบที่นี่ ก็จะพิมพ์ 0.00 JOSEPH: และเช่นเดียวกับโน้ตก็จริง พ่นออกสิ่งที่หลังจาก จุดทศนิยม ดังนั้นหากคุณแทนมี 6 หารด้วย 10 คุณอาจจะคิดว่ามันจะทำให้คุณ 0.6 และแล้วคุณจะรอบขึ้นถึง 1 แต่จริงๆแล้วสิ่งที่เกิดขึ้นเมื่อการพิมพ์ งานมันก็คือว่ามันลดลงสิ่งที่เป็น หลังจุดทศนิยม ดังนั้น 0.6 ไม่เป็น 0 ROB: ใช่ และเราจะบอกว่าตัดที่ ดังนั้นเมื่อใดก็ตามที่คุณโยนไป int, ทศนิยมจึงถูกตัดออก ดังนั้นการแก้ไขที่ - มี จริงสอง และฉันจะทำครั้งที่สองว่าเพราะ อันนี้แก้ไขได้ง่ายขึ้นมาก ดังนั้นหนึ่งแก้ไขคือการใช้ลอย ในส่วนของ และจริงๆคุณจะต้อง ทำให้หนึ่งของพวกเขาลอย แต่มันก็ค่อนข้างชัดเจนเพียง ที่จะทำให้ทั้งสองของพวกเขาลอย ดังนั้น 1.0 หารด้วย 10.0 หารสองลอย ดังนั้นคำตอบจะจบลงด้วยการ ลอยและเพื่อให้คุณจะ ได้อย่างถูกต้องพิมพ์ 0.10 ที่นี่ สิ่งที่ไม่ได้ทำงานให้ดี เกี่ยวกับการที่เป็นอย่างดีว่ามันเป็นเรื่องง่าย พอที่จะแปลง 1 ถึง ลอยด้วยการทำให้ 1.0 แต่ถ้าแทนเรามีสองจำนวนเต็ม เช่น int x เท่ากับ 1 และ int y เท่ากับ 10 และจากนั้นเราต้องการ ที่จะไม่ x หารด้วย Y? ดังนั้นมันจึงไม่ใช่เรื่องง่ายที่จะเพียงแค่ ทำ x.0 หรือสิ่งที่ ดังนั้นการแก้ไขปัญหาที่ได้รับการหล่อ ดังนั้นการหล่อเป็นวิธีการใน C การแปลง จากประเภทหนึ่งไปยังอีกตัวแปร ดังนั้นที่นี่ 1 เป็นจำนวนเต็ม และโดยการใส่ลอยนี้ในหน้าของ นั้นเราจะหล่อ 1 ถึงลอย และดังนั้นนี้จะแปลง 1 ถึง 1.0 และจะแปลง 10 ถึง 10.0 และแล้วสิ่งที่ประพฤติตัวคล้ายกับ รุ่นก่อนหน้านี้เราก็แสดงให้เห็นว่า ที่เป็นไปตามคาดที่เราได้รับ 0.10 และมันจะพิมพ์ว่า และเราสามารถทำเช่นนี้กับ ตัวแปรเกินไป ดังนั้นเราจึงสามารถพูดลอย x หารด้วยลอย y JOSEPH: คำถามที่ใด? ROB: ดังนั้นเช่นเดียวกับในทางคณิตศาสตร์ปกติ เรามีความสำคัญประกอบ ดังนั้นในชั้นเรียนคณิตศาสตร์คุณจะมีโอกาสมากขึ้น ที่จะเรียกว่าคำสั่งของการดำเนินงาน ที่นี่ระยะอย่างเป็นทางการเป็น สำคัญประกอบ แต่ความสำคัญผู้ประกอบการส่วนใหญ่หรือ ผู้ประกอบการเป็นที่คุณคาดหวัง ดังนั้นเช่นเดียวกับในคณิตศาสตร์ 2 ครั้ง 10 จะได้รับการจัดกลุ่มอย่างใกล้ชิดกว่า 10 หารด้วย 2 แล้ว 2 ลำดับของการดำเนินงานก็จะทำ 2 ครั้งที่ 10, 10 หารด้วย 2 แล้ว มันจะ 20 บวก 5 บวก 2 ดังนั้นจึงเป็นที่คาดหวังและคุณสามารถใช้ วงเล็บในการแสดงออกของกลุ่ม คุณไม่สามารถใช้วงเล็บ การแสดงออกของกลุ่ม ใช่? ลำโพง 5: คุณสามารถจริง เพิ่งกลับไปหนึ่งสอง คุณสามารถโยน int สตริง? ROB: ดังนั้นใน C คุณสามารถโยนอะไร คุณต้องการสิ่งที่คุณต้องการ แต่นั่นไม่ได้หมายความว่ามัน เป็นสิ่งที่ดีที่จะทำ ดังนั้นเมื่อคุณโยน int ไป สตริงนั่นหมายความว่า - และเราจะได้รับลงในนี้ มากขึ้นอย่างทั่วถึง - JOSEPH: ภายหลัง ROB: ผมไม่อยากจะพูดมากในภายหลัง ดังนั้นผมจึงพยายามที่จะเปลี่ยนประโยคของฉัน เราจะได้รับเป็นมันมากขึ้นอย่างทั่วถึง ภายหลังที่จริงๆเมื่อคุณมี ตัวแปรสตริง - เพื่อสตริงสามารถพล ยาวใช่มั้ย? และเราได้รับการบอกว่า int เป็น สี่ไบต์และระยะยาวยาวแปด ไบต์และลอยสี่ไบต์ ดังนั้นสายเช่นเดียวกับ int, มีเพียง จำนวนที่แน่นอนของไบต์เพื่อมัน และที่จะเป็นสี่ไบต์ แต่สายสามารถสวย ยาวโดยพลใช่ไหม ดังนั้น hello โลกแล้วหากที่ 10 ตัวละครหรือสิ่งที่มีอยู่แล้ว จะถูกกว่า 4 ไบต์ ฉันสามารถพอดีกับสตริง ดังนั้นวิธีการและเงื่อนไขการทำงานจริงๆก็คือ พวกเขาอยู่ในหน่วยความจำที่สตริงที่ จะถูกเก็บไว้ และอื่น ๆ กว่าที่นี่เมื่อฉันพูดสตริง x เท่ากับโลกสวัสดีภายในของ x คือ เพียง แต่พูดว่าโอ้สวัสดีชาวโลกจะถูกเก็บไว้ ณ สถานที่นี้โดยเฉพาะในหน่วยความจำ ดังนั้นถ้าเราพยายามที่จะโยนจำนวนเต็ม สตริงแล้วเรากำลังพยายามที่จะแปลความหมาย บางส่วนของหน่วยความจำแบบสุ่ม เป็นสตริง และที่มักจะแบ่งสิ่งที่ JOSEPH: แต่ถ้าสับสนว่า คุณเราจะครอบคลุมมัน เพิ่มเติมในเชิงลึกต่อไป ROB: ใช่ ซึ่งเป็นที่ที่คุณกำลังจะ จะได้รับเป็นตัวชี้ และที่เป็นชิ้นสำคัญ ของสองสัปดาห์ของหลักสูตรนี้ ลำโพง 6: มันทำงานเหมือนวัตถุ ในภาษาอื่นหรือไม่จริงหรือเปล่า ROB: ดังนั้นในภาษาอื่น ๆ วัตถุ จะได้รับการแสดงโดยใช้ตัวชี้ มันไม่ได้เป็นสิ่งเดียวกัน แต่ คิดใด? JOSEPH: เลขที่ ไม่มีความคิด ROB: OK JOSEPH: ถัดไป ROB: เพียงแค่ไปกับที่ ขวาทั้งหมด ดังนั้นโมดูโล เช่นเดียวกับที่เรามีบวกลบ แบ่งและคูณ ดังนั้นโมดูโลเป็นหนึ่งที่คุณอาจจะ ไม่ได้เห็นมาก่อน และมันก็บอกว่าให้ ผมส่วนที่เหลือของ ดังนั้น 55% 10 ส่วนที่เหลือของการทำ 55 แบ่งออก 10 จะเป็น 5 ดังนั้น 55% 10 คือ 5 และ 3% 5 จะเป็น 3 8% 8 จะเป็น 0 16% 15 จะเป็น 1 JOSEPH: สิ่งหนึ่งที่ควรทราบเกี่ยวกับเรื่องนี้ เกินไปก็อาจจะไม่ทำงานตามที่คาดไว้ ถ้าคุณใช้เป็นจำนวนลบ ดังนั้นลบ 5% 4 บางคน อาจจะคิดว่าเป็น - สิ่งที่คุณจะคิดในแง่ลบ 5% 4 จะเป็นอย่างไร ลำโพง 5: หนึ่ง JOSEPH: ดังนั้นบางคนบอกว่าหนึ่ง บางคนบอกว่าหนึ่งในเชิงลบ แต่สิ่งที่ - ROB: ฉันจะไม่ได้มี กล่าวว่าหนึ่งในบรรดา JOSEPH: สองขอโทษ บางคนบอกว่า - ROB สาม JOSEPH: สาม? ROB: ลบ - สิ่งที่เป็น - ลบห้า - JOSEPH: สามสามสาม ขอโทษ เพราะโมดูโลทั่วไปเมื่อคุณได้ เห็นมันที่อื่น ๆ ก็มักจะหมายถึง กลับเป็นจำนวนบวกใช่ไหม ROB: ดังนั้นเมื่อเราพูดในทางคณิตศาสตร์ 10% ของ พวกเขามักจะต้องการให้คุณ - ถ้าเรา mod 10 แล้วเราคาดหวังที่จะ ได้รับหมายเลขระหว่าง 0 และ 9 ในที่นี่ที่ไม่ได้กรณีที่คุณ จะได้รับตัวเลขที่ติดลบกลับ JOSEPH: ดังนั้นลบ 5% 4 จะเป็นเชิงลบ 1 ROB: แต่มันหายากที่คุณ mod ไอเอ็นจี ตัวเลขที่ติดลบจะเริ่มต้นด้วย ข้ามสิ่งนี้ JOSEPH: ใช่ ROB: Meh ตกลง ดังนั้นหนึ่งสิ่งสุดท้ายที่จะชี้ให้เห็นเกี่ยวกับ ลอยจะเป็นพฤติกรรมที่เป็นอันตราย แต่ลอยไม่ได้แน่นอน การแสดง ดังนั้นจะกลับไปอีกครั้งไบต์จำ ที่ int เสมอสี่ไบต์และ ลอยอยู่เสมอสี่ไบต์ ดังนั้นตัวอย่างของลูคัสเป็นสิ่งที่ดีสวย ดังนั้นคิดว่า 1 หารด้วย 3 ดังนั้น 0.3333333 ถ้าฉันมีเพียง 32 บิตวิธีที่สามารถ ฉันเก็บ 0.33333 ว่า? และอาจจะด้วยเหตุผลอะไรก็ตามที่คุณพูด ทั้งหมดที่ถูกต้องดีให้เพียงกล่าวว่า นี้โดยเฉพาะที่ 1011001 ให้ เพียงแค่บอกว่าควรจะ 0.333333 ดีคุณมีจำนวน จำกัด เพียง บิตเหล่านั้นจึงเป็นไปไม่ได้ เป็นตัวแทนของจุดลอยทุกเดียว ค่าที่กำหนดเพียง 32 บิต ดีก็เป็นไปไม่ได้ที่จะเป็นตัวแทนใด ๆ ค่าจุดลอยให้ไม่มีที่สิ้นสุด - ดีที่กำหนดจำนวน จำกัด ของบิต ดังนั้นปัญหาที่นี่คือดีเมื่อเราใช้ สั่งพิมพ์ไปยังทศนิยมสองตำแหน่ง เราไม่ถูกต้องได้คำตอบ 0.10 แต่อยู่ภายใต้ฝากระโปรงก็จริงๆ ถูกเก็บไว้ที่ใกล้ที่สุดเท่าที่เป็นไปได้ 0.10 เป็นบิตที่สามารถเป็นตัวแทนของ นี้บนภาพนิ่งต่อไปหรือไม่ หรือมันไม่ได้คืออะไร JOSEPH: ใช่ก็ว่า ROB: Blegh, Blegh JOSEPH: ใช่คุณสามารถเพียงแค่ ดึงบันทึกขึ้นเล็กน้อย ROB: ฉันแค่ไปเพื่อขยาย ในวันสุดท้ายว่า Oh my gosh ที่ [ไม่ได้ยิน] ดังนั้นตัวเลขที่ นั่นคือสิ่งที่จะพิมพ์ ถ้าเราเรียกใช้โปรแกรมที่ และแจ้งให้ทราบว่าไม่จริงเป็นเรื่องใหญ่ ถ้าเราเพียง แต่ดูแลเกี่ยวกับเช่น 2-3 ตำแหน่งทศนิยม เหมือนเราเพียง แต่พิมพ์เดิม 0.10, และที่ว่าทำไมเราเห็นอะไรผิดปกติ แต่เมื่อเราเริ่มต้นการเข้าสู่ แน่นอนจำนวนที่แน่นอนว่ามันเป็น ที่เป็นตัวแทนของเราจะเห็นว่ามันไม่สามารถ ว่าเป็นตัวแทนของ 0.1 และเป็นส่วนหนึ่งของปัญหาที่นี่เป็นเหมือน สิทธิทั้งหมดที่ดี แต่ดี ครั้งแรกสิ่งที่ถ้าเราพยายามที่จะทำ คำตอบเท่ากับเท่ากับ 0.1? คือการที่จะกลับมาจริงหรือเท็จ? และดังนั้นจึงเป็นเรื่องยากที่จะพูด ฉันคิดว่ามันจริงอาจกลับจริง มันจะเป็นครั้งแรก - ฉันไม่รู้ ? คำตอบคือเมื่อคุณเริ่มต้นการซื้อขาย ด้วยค่าจุดลอยตัวคุณสวย มากไม่ควรจะใช้ความเท่าเทียมกัน เพราะไม่แน่ชัดนี้ และสำหรับทุกคนที่คุณรู้ว่ามันเป็นร้อย ทศนิยมตำแหน่งที่ ลอยจุดก็ไม่สามารถ การจัดการอย่างถูกต้อง และเพื่อความเท่าเทียมกันก็จะล้มเหลวได้ แม้ว่าจำนวน - ถ้าคุณได้รับ โดยใช้ตัวเลขที่แน่นอนตัวเลขที่ควร ได้รับเหมือนกัน มันเป็นช่วงเวลาเช่น 50 คำนวณโดยใช้เหล่านี้ลอย ค่าจุดข้อผิดพลาดสามารถสร้าง ขึ้นและขึ้นและขึ้นและ สิ่งที่เพิ่งได้รับไม่ถูกต้อง JOSEPH: และมีจริงๆ ตัวอย่างที่มีชื่อเสียงของที่เกิดขึ้นนี้ เช่นวิศวกรนาซ่ามีอากาศนี้ ผิดจรวดที่ก่อให้เกิดการระเบิดใน อากาศหลังจากที่พวกเขาได้รับการเปิดตัว และจำนวนมากของปัญหาเช่นว่า เพื่อใช่ ลำโพง 6: เมื่อคุณพูด ​​0.3 ฉ, ที่ไม่ได้ตัดทอนส่วนที่เหลือหรือไม่ หรือไม่ก็รอบขึ้นหรือลง ROB: จะ printf รอบมันได้หรือไม่ JOSEPH: ผมคิดว่าตัดทอน printf ROB: OK ดังนั้นเราจึงเหมือนกันสามารถไปในทางตรงกันข้าม ทิศทางของที่นี้ในกรณีนี้ ที่ใกล้เคียงที่สุดที่จะสามารถเป็นตัวแทนของ 0.1 กับหมายเลขนี้ ที่ใกล้เคียงที่สุดก็อาจจะมีความสามารถในการ เป็นตัวแทนของ 0.2 อยู่ในฝั่งตรงข้าม ทิศทาง 0.199999996356 หรือสิ่งที่ ดังนั้นถ้าเราไปในทิศทางที่ว่า สิ่งที่แล้ว printf 0.3 ฉจะกลับมา 1.99 แทน 2.00 JOSEPH: และฉันไม่ได้ทั้งหมด แน่ใจว่า คุณอาจต้องการที่จะเขียนเล็ก ๆ น้อย ๆ โปรแกรมเพียงแค่ตรวจสอบว่า ROB: แม้ว่าสิ่งที่เราแน่ใจก็คือ ถ้าคุณพยายามที่จะโยนไปที่ int และ int หล่อจะเป็นไปได้ ทำให้ตัดทศนิยมถ้า คุณพยายามที่จะโยน 1.9999999 เป็น int คุณจะได้รับ 1 และเพื่อให้คุณโดยทั่วไปควรใช้ ฟังก์ชั่นในรอบห้องสมุดคณิตศาสตร์ คำถาม? ตกลง JOSEPH: ดังนั้นจะย้ายไปเงื่อนไข และสำนวนที่บูลีน เพื่อให้คุณได้เห็นเหล่านี้ก่อน และจริงให้ฉันแน่ใจว่าฉัน คอมพิวเตอร์ที่อยู่ในรูปแบบที่เหมาะสมที่นี่ ช่องว่าง ขออภัยเรากำลังจะมีการจัดการ นิด ๆ หน่อย ๆ กับการตัดที่ขอบ แต่ใช่พวกคุณได้เห็น นี้มาก่อนในเกา ดังนั้นตอนนี้ที่นี่คือการแสดงออก ซึ่งจะใช้ในการ คำสั่งเงื่อนไข ดังนั้นคำตอบที่มากกว่าศูนย์จะ บอกคุณจริงหรือเท็จ และเหล่านี้เป็นสิ่งสำคัญมากเพราะ พวกเขาช่วยให้เราสามารถแนะนำ ตรรกะในรหัสของเรา ดังนั้นตัวอย่างเช่นนี้เป็นโปรแกรม เขียน Scratch ที่ขอให้ผู้ใช้ เพื่อจำนวนเต็มและบอกพวกเขาว่า เลขที่พวกเขาให้คุณเป็น จำนวนบวกหรือลบ และการแปลงไปที่นี่จะเห็นคือ คุณพิมพ์แรกที่ออกคำสั่ง ให้ฉันจำนวนเต็ม แล้วคุณถามพวกเขาสำหรับจำนวนเต็ม แล้วคุณใช้ตรรกะเงื่อนไขกว่า ที่นี่เพื่อตรวจสอบว่าตัวเลขที่ เป็นจริงที่มากกว่าศูนย์หรือไม่ ดังนั้นที่นี่เรามีนิพจน์บูลีน ภายในเงื่อนไขถ้างบ มีคำถามหรือข้อสงสัย มีคำถามใด ๆ เกี่ยวกับที่ ตกลง จึงมีมากกว่าเพียงแค่ มากกว่าแน่นอน คุณสามารถสร้างนิพจน์ ใช้มากที่สุดของทุกประเภทของสิ่งที่คุณ จะคิดในทางคณิตศาสตร์ ดังนั้นที่ยิ่งใหญ่กว่า ที่ควรจะน้อยกว่า ขอโทษ และระยะห่าง ROB: พระเจ้าห้ามคุณปล่อยมัน JOSEPH: ทั้งหมดขวา ดังนั้นมากกว่าน้อยกว่ามากขึ้น กว่าหรือเท่ากับน้อย กว่าหรือเท่ากับ เราใช้เท่ากับสองเพื่อตรวจสอบ ความเท่าเทียมกันเพราะวิธีเดียวเท่ากับ ที่ได้รับมอบหมายใช่ไหม ใช่ แล้วเรายังสามารถไม่เท่ากับโดย ใช้เครื่องหมายอัศเจรีย์เท่ากับ และสัญลักษณ์เครื่องหมายอัศเจรีย์สามารถ ยังสามารถขยายเพื่อที่ว่าถ้าคุณต้องการ กลับไปจัดเรียงของบูลีนใด ๆ การแสดงออกที่คุณสามารถทำได้ ดังนั้นนี่จะประเมินให้เป็นจริง แต่ถ้าคำตอบคือน้อยกว่า กว่าหรือเท่ากับศูนย์ คำถามใด ๆ เกี่ยวกับการที่ ตกลง เพื่อให้คุณยังสามารถรวมเหล่านี้ สำนวนที่ใช้ตรรกะและและ หรือตรรกะ ดังนั้นนี่เป็นเพียงสัญลักษณ์และ ซึ่งควรจะกดปุ่ม Shift, 7 และนี่คือสัญลักษณ์ท่อซึ่งเป็น ไม่ได้กรณีที่ต่ำกว่าลิตรมันเป็นหนึ่งใน ที่เหมาะสมดังกล่าวข้างต้นที่สำคัญใส่ของคุณ ดังนั้นคุณจึงใช้สองของเหล่านี้เพื่อเป็นสัญลักษณ์ ตรรกะและตรรกะหรือ ดังนั้นนี้จะกลับจริงถ้าคำตอบ เป็นหนึ่งในสองสามหรือสี่ และนี้จะกลับจริงถ้าคำตอบ เกินกว่าที่ทั้งสองข้าง ดังนั้นจึงไม่หนึ่งสองสามหรือสี่ และวิธีที่คุณจะใช้ ว่าในการแสดงออก - ROB: หรือศูนย์หรือห้า JOSEPH: ศูนย์หรือห้า ขอโทษ ใช่ใช่ใช่ ตกลง และกว่าที่นี่ตอนนี้วิธีเดียวกับที่คุณ จะใช้การแสดงออกที่มีขนาดเล็ก ด้านการแสดงออกของหากเงื่อนไข คำสั่งคุณยังจะใช้ ทางเดียวกันโดยเพียงแค่วางไว้ภายใน วงเล็บของคำสั่งถ้า ดังนั้น printf นี้จะไฟหากคำตอบ เป็นหนึ่งในสองสามหรือสี่ คำถามใด ๆ เกี่ยวกับการรวม นิพจน์ ดังนั้นจึงมีเงื่อนไขอื่น สร้างที่เราเรียกว่าถ้า / อื่น ดังนั้นโดยทั่วไปในตอนนี้หมายความว่าตกลงถ้า สิ่งที่ฉันต้องการที่จะตรวจสอบไม่ได้ ความจริงแล้วไปที่อื่นและ ดำเนินการว่าการกระทำอื่น ๆ ดังนั้นในกรณีนี้โดยเฉพาะอย่างยิ่งผมถาม ผู้ใช้จำนวนเต็ม เป็นจำนวนเต็มมากกว่าศูนย์? ใช่? อืมแล้วพวกเขาเลือก จำนวนบวก ถ้าไม่เช่นนั้นมันจะต้องมี การลบหรือศูนย์ เพื่อให้คุณเลือกเป็นจำนวนลบ หรือศูนย์ในกรณีนี้ ใช่ หรือศูนย์ แล้วเรายังมีถ้า / อื่น ๆ , ถ้าและอื่น ดังนั้นนี้จะช่วยให้เราดำเนินการลำดับของ สิ่งเดียวถ้าคนแรกไม่ได้ ดังนั้นในกรณีนี้ตอนนี้เรากำลังทำ คนสุดท้ายที่คุณเลือกเป็นศูนย์ ดังนั้นหากพวกเขาไม่เลือกที่เป็นบวกหรือ จำนวนลบแล้วพวกเขาก็ต้อง ได้เลือกศูนย์ ดังนั้นมันก็จะต่ำลง ห่วงโซ่เช่นนี้ ดังนั้นตัวอย่างของวิธีการ ถ้าจะแตกต่างจาก - ถ้า / อื่น ๆ จะแตกต่างจาก เพียงลำดับของอิฟส์ และนี่เป็นคำถามทั่วไปที่ คนถามเป็นอย่างดีถ้าคุณได้รับเช่น 95 ใน CS50 สิ่งที่จะนี้ โปรแกรมบอกคุณ ลำโพง 5: คุณได้เอ JOSEPH: ใช่ คุณได้ทุกเดียว หนึ่งในผู้ที่ถูกต้อง คุณมีคุณได้ B คุณ ได้ C และ D ใช่ไหม ดังนั้นสิ่งเหล่านี้จะได้รับการประเมิน ในการสั่งซื้อ ดังนั้นในขณะที่ 95 มีมากกว่า 90 ก็ นอกจากนี้ยังมีมากขึ้นกว่า 80 ก็ยัง มากกว่า 70 และก็ ยังสูงกว่า 60 เพื่อให้คุณมีทั้งหมดของผู้ที่เกรด และฉันคิดว่าคุณจะ เพียงต้องการ A. วิธีการแก้ไขที่จะแทนที่ ผู้ที่มีอื่น ๆ / ถ้า 's ดังนั้นในสถานการณ์นี้ก็เห็นว่า 95 มากกว่า 90 และจากนั้นก็จะ ได้ประเมินส่วนที่เหลือ ของงบการเงิน คำถามใด ๆ เกี่ยวกับที่ เพื่อให้มีการจัดเรียงเป็นอีกเงื่อนไขของ โครงสร้างที่เรามีที่นี่ที่เรา เรียกคำสั่งสวิทช์ ดังนั้นนี้จะช่วยให้คุณสามารถตรวจสอบโดยทั่วไป สิ่งที่มีค่าของจำนวนที่คุณใส่ เป็นคำสั่งที่เปลี่ยนเป็น ดังนั้นในสถานการณ์นี้เรากำลังเปลี่ยน ที่ n และเรากำลังจะบอกว่าโอ้ถ้า n คือ หนึ่งแล้วพิมพ์คำว่า แล้วทำลายซึ่งหมายความว่าออก ออกมาจากคำพูดของสวิทช์ ถ้ามันไม่ได้อย่างใดอย่างหนึ่งแล้วดีเพียง ในที่สุดก็ตรวจสอบทุกกรณี และอื่น ๆ มันจะตรวจสอบว่าเป็นหนึ่งหรือสองหรือ สามและก็พิมพ์ตาม และสิ่งที่คำหลักที่เริ่มต้นนี้ลงมาที่นี่ หมายถึงคือถ้าพวกเขาไม่ได้เข้ามาใด ๆ ของเหล่านั้นแล้วบอกว่าไม่ถูกต้อง จึงขอบอกว่าฉันขอ n และ ผู้ใช้ให้ฉันสี่ ดีก็ตรงที่ไม่มีกรณีดังกล่าว จึงจะพิมพ์ออกมาสิ่งที่อยู่ใน ส่วนค่าเริ่มต้น มีคำถาม? ลำโพง 5: คุณสามารถใช้บูลีน การแสดงออกแทน หนึ่งสองหรือสาม? JOSEPH: ดังนั้นคำถามคือคุณสามารถใช้ นิพจน์แทนหนึ่ง สองและสาม และใน C ผมเชื่อว่าคุณ ไม่สามารถทำเช่นนั้นได้ แต่ในภาษาอื่น ๆ ที่คุณอาจจะ พบที่ส่วนท้ายของ ภาคการศึกษาเช่น JavaScript คุณสามารถ ดีคุณจะต้องคำนวณเป็นครั้งแรก ค่าที่แล้วใช้มันใน สลับคำ ใช่? ROB: ดังนั้นส่วนหนึ่งของผลประโยชน์ของสวิทช์ งบที่คิดว่าถ้าคุณทำอย่างนี้ เช่นหาก / อื่นดังนั้นเช่นถ้า n เท่ากับ เท่ากับหนึ่งหรืออะไรก็ตาม อื่น / ถ้า n เท่ากับเท่ากับสองสิ่ง อื่น / ถ้า n เท่ากับเท่ากับสาม ดังนั้นวิธีที่โปรแกรมจะเรียกใช้มัน จะลงไปตามลำดับรายชื่อที่ และตรวจสอบเป็นที่หนึ่ง n? Nope n เป็นสอง Nope n เป็นสาม ใช่ ทำเช่นนี้ ในขณะที่มีคำสั่งสวิทช์ก็ จริงสามารถที่จะรวบรวมให้เป็น อย่างรวดเร็วจริงๆ และทันทีที่มันบอกว่าสวิทช์มัน กล่าวว่าสิทธิทั้งหมด n คือสองผม ทันทีจะข้ามไปที่ ฉันควรจะเริ่มต้นดำเนินการ ฉันไม่ได้ไปตรวจสอบก่อน n เป็นหนึ่งเป็นสอง n? ได้ทันทีสามารถเริ่มต้นทำ สิ่งที่มันควรจะทำ และเนื่องจากการที่มันไม่สามารถ ใช้เงื่อนไขบูลีน หรืออื่น ๆ ที่จะต้องทำ เรียงตามลำดับเช่นขวาทั้งหมดเป็น n มากกว่าศูนย์? อื่นเป็น n มากกว่า 10 หรืออะไรก็ตาม JOSEPH: ในกรณีนี้ถ้าคุณใช้ ถ้า / อื่นถ้าแล้วสวิทช์จะ ทำงานประมาณสามครั้ง เร็วกว่าหาก / อื่นหาก เราสามารถจัดระเบียบสวิทช์ดังกล่าว วิธีการที่เราไม่ได้ทำลาย หลังจากที่แต่ละกรณี ดังนั้นในกรณีนี้ผมแบ่ง ตัวเลขที่เราเลือกเป็นหนึ่งและ สองคนไม่ได้ตัวเลขที่สูงและ สามเป็นจำนวนมาก ดังนั้นในกรณีนี้ถ้า n คือหนึ่งหรือสองก็ กรณีที่จะตีแล้วมันจะ ตกผ่านเพราะ มีการหยุดพักไม่ และมันจะจบลงที่นี่ ดังนั้นถ้าเราเลือกอย่างใดอย่างหนึ่งก็จะทำ printf แล้วทำลายเพื่อให้ไม่มีที่ นี้จะถูกดำเนินการ และแน่นอนว่าพวกเขาป้อนในสาม หรือสิ่งอื่นแล้วมันจะข้าม เหล่านั้นและไม่ได้ไปที่นั่นและมัน จะดำเนินการแทน สายที่เกี่ยวข้อง มีคำถามใด ๆ เกี่ยวกับที่ ใช่? ลำโพง 4: คุณจะได้รับข้อผิดพลาดถ้าคุณ มีการหยุดพักหลังจากกรณีหนึ่ง แต่ ไม่ได้มีสิ่งที่มันจะทำอย่างไร JOSEPH: ดังนั้นคำถามคือคุณจะได้รับ ข้อผิดพลาดถ้าคุณมีการหยุดพักหลังจากที่ กรณีที่หนึ่ง แต่ไม่มีอะไรที่จะทำหรือไม่ และคำตอบคือไม่มี คุณจะไม่ได้รับข้อผิดพลาดจริง ใช่อืมมมม เพื่อที่จะเรียงลำดับของการเปลี่ยนแปลงเล็กน้อยที่นี่ ฉันจะใส่ printf ที่นี่ ขออภัย ดังนั้นสิ่งนี้จะพิมพ์ถ้า ฉันใส่หนึ่งในเป็น input? ใช่ มันจะบอกคุณว่ามันไม่ได้ใช้เวลา จำนวนสองครั้งใช่ไหม เพราะมันจะตีกรณีแรกที่ มันจะไม่ทำลายและมันจะตก ผ่านไปยังกรณีที่สอง คำถามใด ๆ เกี่ยวกับที่ ROB: คุณมีคำถามอื่นได้หรือไม่ JOSEPH: ตกลงเย็น ขวาทั้งหมด จึงมีบางสิ่งบางอย่างที่เราเรียกว่า ประกอบ ternary ซึ่งเป็นพื้น ไวยากรณ์ทางเลือกในการทำ หากแล้วอื่น และมันช่วยให้คุณทำมันทั้งหมดในหนึ่งบรรทัด ดังนั้นในโปรแกรมนี้โดยเฉพาะอย่างยิ่ง ฉันขอให้ผู้ใช้สำหรับ n และถ้า n คือมากกว่า 100 ผมจะบอก พวกเขาพวกเขาเลือกจำนวนมาก อื่นผมบอกพวกเขาว่าพวกเขา เลือกจำนวนน้อย ดังนั้นเราจึงสามารถใช้ไวยากรณ์นานมากนี้ สตริง, S, และจากนั้นตรวจสอบว่า n คือ มากกว่า 100 และกำหนด มันตาม แต่เราสามารถทำให้รัดกุมมากขึ้น โดยใช้ไวยากรณ์ดำเนินการนี​​้ประกอบไปด้วย ที่เกี่ยวข้องกับคำถาม เครื่องหมายและลำไส้ใหญ่ ดังนั้นเครื่องหมายคำถามเป็นหลัก ถามคำถามใช่ไหม ROB: บางทีซูมในที่ JOSEPH: ใช่ จุดดี ดังนั้นนี่คือผู้ประกอบ ternary ครั้งแรกที่ฉันถามคำถามที่ เป็น n มากกว่า 100? หากเป็นเช่นนั้นแล้วฉันจะรันเป็นอันดับแรก ส่วนหนึ่งก่อนที่จะลำไส้ใหญ่ ถ้ามันไม่ได้แล้วฉันจะดำเนินการ ส่วนที่สองหลังจากลำไส้ใหญ่ ดังนั้นถ้า n คือมากกว่า 100, แล้วก็หยิบสูงและทำให้ ที่เป็นสตริง ถ้า n เป็นน้อยกว่า 100 ก็หยิบต่ำ แล้วทำให้ที่เป็นสตริง เพื่อที่จะรวมตัวก้อนใหญ่นี้ ลงไปเพียงว่าหนึ่งบรรทัด ลำโพง 5: ที่เป็นที่นิยม JOSEPH: ใช่มันค่อนข้างเป็นที่นิยมสำหรับ สิ่งที่เป็นหลักที่คุณต้องการ ไม่ได้รับมอบหมายตาม การเรียงลำดับของเงื่อนไขบางอย่าง และในกรณีนี้เรากำลังพยายาม การกำหนดค่าให้กับสตริง มันไม่ได้ - ผมคิดว่าผมไม่ชอบจริงๆ ในกรณีอื่น ๆ แต่มันก็มีประโยชน์โดยเฉพาะอย่างยิ่ง สำหรับการกำหนดนี้ ROB: นั่นเป็นรูปแบบทั่วไปสวย ที่คุณมีตัวแปรบางอย่างที่ คุณกำลังจะบอกว่าถ้าสิ่งที่ตั้ง ตัวแปรนี้จะเป็นหนึ่งในค่า; อื่นตั้ง ตัวแปรนี้เป็นค่าอื่น และนั่นคือสถานการณ์ ที่ใช้ประกอบ JOSEPH: และคุณประหยัด จำนวนมากของสายใช่ไหม และมันก็ทำให้รหัสของคุณเนื้อหา นิด ๆ หน่อย ๆ อ่านได้มากขึ้น มีคำถาม? ลำโพง 6: สำหรับ ternary คุณสามารถไป สตริงเท่ากับวินาที, เครื่องหมายคำถาม? แล้วคุณอาจจะมีการพูด ห้าตัวเลือกที่แตกต่างกัน และขึ้นอยู่กับสิ่งที่จำนวนของ n เป็นคุณจะเลือกอย่างใดอย่างหนึ่งเหล่านั้นหรือไม่ JOSEPH: ดังนั้นคำถามคือจะมี การเรียงลำดับของรูปแบบที่คุณสามารถทำสตริง s เท่ากับ n แล้​​วมีมากกว่าสอง ตัวเลือกหลังจากเครื่องหมายคำถามที่ และคำตอบง่ายๆคือไม่มีมีไม่ จริงๆเป็นวิธีที่ดีที่จะทำว่าถ้า คุณต้องการที่จะรัง ternary หลาย ผู้ประกอบการภายในของกันและกัน คุณสามารถทำเช่น n มากกว่า 100 เครื่องหมายคำถามและจากนั้นอีก ternary ประกอบ n มากกว่า 50, เครื่องหมายคำถามและรังมันเป็นแบบนั้น แต่ในสถานการณ์ที่เป็นรหัสของคุณ รับชนิดของและอ่านไม่ได้ยุ่ง และมันอาจจะดีกว่าที่จะไปที่ ถ้างบ / อื่น ๆ ที่จุดที่ ROB: และยังเป็นที่ทราบด้าน, PHP ไม่ถูกต้องดำเนินการประกอบ ผู้ประกอบการดังกล่าวว่า ternaries ซ้อนกัน ไม่ได้ทำงานตามที่ควรจะเป็น JOSEPH: ใช่ ดังนั้นจึงได้รับนิด ๆ หน่อย ๆ สับสน โดยเฉพาะอย่างยิ่งเมื่อคุณไป กับภาษาที่แตกต่างกัน ROB: มันพอที่จะทำให้เกิดความสับสน ภาษาที่ไม่ถูกต้องเกี่ยวกับเรื่องนี้ JOSEPH: ดังนั้นจริงเพียงเพื่อชี้แจง ไม่ทุกคนรู้ว่าสิ่งที่ % s ไม่ไปที่นี่? คำถามใด ๆ เกี่ยวกับที่ ผมคิดว่าเพียงสำหรับกล้อง% s โดยทั่วไปจะช่วยให้เราใส่ตัวยึด สตริง แล้วที่ท้ายที่สุดเราระบุว่า ตัวแปรที่เราต้องการจะใส่ลงไปในนี้ ถือเป็นสถานที่ของ ดังนั้นโดยทั่วไปจะใช้เวลา s และมันทำให้มันอยู่ในที่นี่ แล้วมันจะพิมพ์ออกมาคุณเลือก สูงหรือคุณเลือกจำนวนน้อย ตกลง ดังนั้นลูปช่วยให้คุณสามารถดำเนินการสิ่ง ในวงกลมใช่ไหม คุณอาจได้พบนี้ใน เริ่มต้นในรูปแบบของลูปตลอดกาล หรือทำซ้ำจนกว่าจะถึงหรือทำซ้ำโดยเฉพาะอย่างยิ่ง จำนวนครั้ง ดังนั้นทำไมนี้เป็นสิ่งที่ดีสำหรับเรา ดีใน C สมมติว่าเรามีนี้ เพลงดำเนินการใน Scratch ที่ ร้องเพลงนี้เป็นเพลง ที่ไม่สิ้นสุด มันก็ไปบนและบนและ อยู่กับคุณตลอดและตลอดไป ดีคุณไม่สามารถจริงๆทำให้โปรแกรม ที่มีจำนวนอนันต์ของ printf งบในนั้นใช่ไหม ดังนั้นในสถานการณ์นี้โดยเฉพาะอย่างยิ่งวิธีหนึ่ง ที่คุณสามารถทำให้งานนี้และ เพื่อให้พิมพ์ตลอดไปคือการ แทนการใช้ห่วงในขณะที่ ดังนั้นห่วงในขณะที่จะดำเนินการสิ่งที่ ในร่างกายของทั้งสองวงเล็บที่ เป็นไปตามสิ่งที่ เงื่อนไขเป็น ดังนั้นในตัวอย่างนี้โดยเฉพาะอย่างยิ่งก่อนถ้า เราต้องการที่จะพิมพ์นี้ตลอดไปสิ่งที่ เราอาจจะทำอย่างไร ดีแน่ใจใช่ไหม ดังนั้นการเรียงลำดับของความคิดรวม บางนิพจน์บูลีน พร้อมกับวง และเราได้เรียนรู้เกี่ยวกับการบูลีน การแสดงก่อนหน้านี้ ดังนั้นเมื่อใดก็ตามที่สภาพภายในของ ในขณะที่ยังคงเป็นจริงวงนี้ จะรันบนและบนและบน และในกรณีนี้ถ้าเราเพียงแค่จัดหา ด้วยความจริงนี้ทำให้ไม่มีที่สิ้นสุด วงเพลงที่พิมพ์บนและบน และในขณะที่เราต้องการก่อนที่จะได้โดยไม่ต้อง มีโปรแกรมที่มีไม่มีที่สิ้นสุด จำนวนงบ printf ซึ่งเป็น เป็นไปไม่ได้ ดังนั้นร้องขอมากขึ้นแม้ว่า คุณสามารถใช้กับ ตัวแปรและเงื่อนไข ดังนั้นสมมติว่าเราต้องการที่จะทำซ้ำ วลีวงแหวนทั้งหมด 10 ครั้ง ดังนั้นสิ่งที่คุณสามารถทำอะไรกับห่วงในขณะที่เป็น คุณสามารถเริ่มต้นเคาน์เตอร์ นอกตัวแปรของ ในขณะที่ห่วงถึง 10 โดยทั่วไปแล้วทุกครั้งที่คุณไป ผ่านห่วงในขณะที่คุณพิมพ์ออกมา คำสั่งแล้วคุณจะลดลง เคาน์เตอร์ตัวแปรจนถึงที่สิ้นสุด ในบางจุดเมื่อเราลบฉันพอ ครั้งที่ 1 ครั้งจากที่ผมพอ - และเพียงแค่ชี้แจงฉันลบลบ หมายความว่าฉันเท่ากับฉันลบ 1 ที่พื้นจะนำฉันลงไป จุดที่เมื่อฉันตีศูนย์นี้ สภาพไม่เป็นความจริงและ เพื่อที่จะออกจากออกจากวง ดังนั้นวงแหวนทั้งหมดเพียงพิมพ์ 10 ครั้ง คำถามใด ๆ เกี่ยวกับวงในขณะที่? ตกลง จึงมีวิธีที่เราสามารถทำได้คือสิ่งที่เราเพียงแค่ ทำในลักษณะที่รัดกุมมากขึ้นด้วย สิ่งที่เราเรียกสำหรับวง ดังนั้นสำหรับวงประกอบด้วย เริ่มต้นสภาพและ การปรับปรุงเช่นเดียวกับที่เราเคยมีมาก่อน ในวงในขณะนี้ ดังนั้นลองมาดู ในวงในขณะนี้เรามี เริ่มต้นแล้วเรามี สภาพที่เราตรวจสอบ แล้วเรามีการปรับปรุง ขั้นตอนที่ด้านบน ด้วยห่วงเพราะว่านี้โดยทั่วไปจะใช้เวลา สามสิ่งเหล่านี้และมันควบแน่น ลงไปหนึ่งบรรทัด ดังนั้นสิ่งแรกที่มันไม่ใน สำหรับวงคือการเริ่มต้น แล้วคุณทำเครื่องหมายแล้ว ที่คุณทำเงื่อนไขซึ่งเป็นฉัน มากกว่าศูนย์จะไปที่นั่น แล้วขั้นตอนการปรับปรุง ดังนั้นนี้ได้รับการดำเนินการใน ปลายสุดของร่างกายห่วง ดังนั้นทั้งสองโปรแกรมเป็น เทียบเท่าหลัก คำถามใด? ดังนั้นสิ่งที่เป็นหนึ่งในความแตกต่าง ระหว่างสองเหล่านี้หรือไม่ ทุกคนสามารถชี้ออกมาได้ มันอาจจะมีบิตที่ละเอียดอ่อน มันเป็นเพียงความแตกต่างที่มีขนาดเล็กมาก ใช่? ลำโพง 5: คุณจะไม่สามารถที่จะใช้ ฉันตัวแปรนอกวงสำหรับ [ไม่ได้ยิน]? JOSEPH: แน่นอน ดังนั้นนี่คือสิ่งที่เราจะได้รับ ภายหลังเรียกว่าขอบเขตตัวแปร แต่เป็นหลักนี้ int ชีวิตของฉัน นอกวงในขณะนี้ ดังนั้นเมื่อห่วงในขณะนี้จะทำ รันฉันจะสามารถที่จะใช้ผมมา ในโปรแกรม ในขณะที่มีนี้สำหรับวง, int นี้ฉัน มีการกำหนดขอบเขตภายในของนี้สำหรับวง และเพราะมันเป็นภายในของส่วนนี้ ของวงสำหรับการที่จะเริ่มต้น ที่วงเล็บและสิ้นสุดด้วย วงเล็บปีกกาที่นั่น อะไรที่ประกาศภายใน ที่นี่จะไม่สามารถใช้นอก ดังนั้นถ้าผมพยายามที่จะใช้ฉันออกไปข้างนอกก็จะ บอกฉันไม่ได้ประกาศสัญลักษณ์ และเป็นหลักที่ผมจะไม่ สามารถที่จะใช้มัน ROB: และดี 10 ปีที่แล้วใน แท้จริงทุกกรณีวงเล็บปีกกาเป็น สิ่งที่คุณใช้ในการตรวจสอบ ขอบเขตของตัวแปร ดังนั้นในมี int ฉันเท่ากับ 10 มีการประกาศภายในนี้ ชุดของวงเล็บปีกกา และอื่น ๆ จากนั้นตราบใดที่คุณพยายามที่จะใช้ฉัน ก่อนที่จะวงเล็บปีกกานี้ก็ปรับ คุณอาจพบเมื่อคุณพิมพ์ให้คุณ เห็นรีบรีบคว่ำเท่ากับ c99 เพื่อให้เป็นรุ่นที่ใหม่กว่าของ C ที่ GCC ได้ดำเนินการที่ยังช่วยให้ ทางลัดนี้ เพื่อใช้ในการนี​​้ไม่ได้รับอนุญาตในซีและ คุณสามารถดูว่าทำไมเพราะ int นี้ ผมอยู่นอกวงเล็บปีกกานี้ แต่ ก็ยังคงพิจารณาที่จะอยู่ใน ขอบเขตของวงเล็บปีกกาเหล่านี้ แต่นี้เป็นสิ่งที่สะดวกมาก และดังนั้นจึงเป็นส่วนขยายที่ดี JOSEPH: คำถามที่ใด? ตกลง ดังนั้นสิ่งที่มีประโยชน์มากขึ้นคือบางครั้ง คุณต้องการที่เรียงลำดับของชีวิตชีวาใน วงของคุณใช่ไหม คุณไม่ต้องการเพียงแค่จำเป็นต้องพิมพ์ ทั้งหมดวงแหวนทุกเวลาที่คุณ ต้องการที่จะนับถอยหลังจาก 10 หรือบางสิ่งบางอย่าง และเพื่อให้คุณสามารถใช้ตัวแปรเคาน์เตอร์ ภายในวงที่ดี และในกรณีนี้โปรแกรมนี้เพียงแค่ นับลงจาก 10 ตลอดทางลง และสิ่งที่ไม่ได้ไม่พิมพ์? มันไม่ได้พิมพ์เป็นศูนย์ ที่เหมาะสมเพราะเมื่อ - ใช่มันยังไม่พิมพ์ 11 ดังนั้นจึงไม่พิมพ์เป็นศูนย์เพราะเมื่อ ฉันเป็นศูนย์จำมันประเมิน สภาพก่อนที่จะไปอยู่กับ ที่จะดำเนินการร่างห่วง และเมื่อฉันเป็นศูนย์นี้เป็นเท็จดังนั้น มันก็ไม่ได้พิมพ์ออกมานับถอยหลัง ศูนย์ก็แค่พิมพ์ออกนับ ลดลง 10 ทั้งหมดทางลงไปที่ 1 ถ้าเราอยากให้มันเป็นจริงที่จะพิมพ์เป็นศูนย์ แล้วเราจะใส่เครื่องหมายเท่ากับ หลังจากนี้เครื่องหมายมากกว่า ตกลง ดังนั้นวิธีหนึ่งที่จะทำเข้าตรวจสอบที่ คือเมื่อคุณขอให้ผู้ที่จะทำ บางสิ่งบางอย่างที่คุณต้องการที่จะทำให้แน่ใจว่าพวกเขา ปฏิบัติตามคำแนะนำของคุณคือการใช้ ในขณะที่ห่วงใช่มั้ย? ดังนั้นในกรณีนี้โดยเฉพาะอย่างยิ่งที่ฉันขอ สำหรับจำนวนบวกและแล้วฉัน รอสำหรับการป้อนข้อมูล แล้วฉันจะตรวจสอบในขณะที่การเข้าเป็น น้อยกว่าศูนย์ให้ขอให้พวกเขา ดังนั้นตราบใดที่พวกเขาให้ฉันหมายเลข ที่ไม่ได้บวกให้ถาม ให้ถามให้ถาม แต่สิ่งที่จัดเรียงของแปลกเกี่ยวกับเรื่องนี้ หรือสิ่งที่ดูเหมือนจะไม่เกี่ยวกับการที่ดีที่สุด โครงสร้างนี้ที่นี่? ใคร? ใช่? ลำโพง 6: คุณทำซ้ำ การเรียนการสอนครั้งที่สอง JOSEPH ขวา ดังนั้นเราจึงมีสองงบ printf ที่นี่ใช่ไหม ดังนั้นไม่มีทางที่เราจะได้รับนี้ก็คือ ลงไปอย่างใดอย่างหนึ่งที่จะทำให้เรา รหัสง่ายต่อการอ่านและ นิด ๆ หน่อย ๆ สะอาดมากขึ้น แล้วเราจะได้ไม่ต้อง ได้รับในครั้งที่สองเช่นกัน และวิธีหนึ่งที่คุณสามารถทำเช่นนี้คือ โดยใช้ห่วงทำ-ในขณะที่ และทำห่วง-ในขณะที่เป็นพื้น รูปแบบที่แตกต่างกันของวงในขณะที่ สิ่งที่อยู่ภายในวงเล็บปีกกา ได้รับการดำเนินการอย่างน้อยหนึ่งครั้ง ดังนั้นในที่นี่ผมประกาศ, int ใส่ออกไปข้างนอกก่อน แล้วผมก็บอกว่าทำเช่นนี้ การเรียนการสอนในขณะที่นำเข้า มีค่าน้อยกว่าศูนย์ ดังนั้นจึงนิยมทำครั้งแรก มันจะดำเนินการอย่างน้อย ครั้งจึงมักจะขอให้ผู้ใช้ สำหรับใส่อย่างน้อยหนึ่งครั้ง และจากนั้นจะประเมินข้อมูลที่ และมันจะไปในวงกลม มีคำถาม? ลำโพง 6: มีวิธีที่จะทำมัน [ไม่ได้ยิน] ประเภทเช่นถ้าคุณจะพูดว่า GetString และคน [ไม่ได้ยิน] จะมีวิธีการ [ไม่ได้ยิน] JOSEPH: ดังนั้นคำถามคือจะมี วิธีการทำเข้าตรวจสอบกรณีที่ผู้ใช้ ไม่ได้ใส่ในสิทธิ ชนิดของตัวแปร? ดังนั้นหากเราขอ int และพวกเขา ให้เราสตริงแทน และฟังก์ชั่นที่เราใช้ สำหรับคุณ GetInt, GetString ในทุก ฟังก์ชั่นเหล่านั้นพวกเขาเป็นจริงแล้ว จะเรียงลำดับของข้อมูลชนิดพื้นฐานที่ การตรวจสอบภายใต้ประทุน ดังนั้นถ้าคุณกำลังใช้ฟังก์ชั่นที่เรา ได้มอบให้คุณไม่ได้จริงๆต้อง แต่ถ้าคุณต้องการที่จะดูมากขึ้นเป็นวิธีการ คุณจริงสามารถทำที่คุณสามารถดู ภายใต้ประทุนที่ไฟล์ I/O-- ไม่ได้ยื่น, ฟังก์ชั่น I / O มาตรฐาน เช่นการอ่านจากอินพุตมาตรฐานและ ออกมาตรฐาน และคุณจะได้รับความรู้สึกที่ดี วิธีการที่คุณอาจจะทำอย่างนั้น ROB: หนึ่งในปัญหา แต่เป็นเฉพาะ กับตัวอย่างที่คุณ กล่าวว่าที่คุณคาดหวังสตริง และฉันป้อน int วิธีที่คุณจะบอกความแตกต่าง ระหว่างเจตนาที่ต้องการ สาย 123 เมื่อเทียบกับที่ต้องการ int 123? ดังนั้นสตริงก็สวยมากไม่มี การตรวจสอบเป็นเพียงสิ่งที่พวกเขา เข้ามาคุณจะตีความ เป็นสตริง int จะง่ายเพราะไม่ว่า ข้อมูลที่คุณจะใช้จากผู้ใช้ที่คุณมี เสมอการสตริง และเพื่อให้สตริงที่คุณสามารถแล้ว ตรวจสอบมีทั้งหมดของเหล่านี้ หลักตัวเลขจริง JOSEPH: OK คำถามใด ๆ เกี่ยวกับการทำวง-ในขณะที่? ROB: Oh, และนี้ยัง - จะกลับไปขอบเขตค่อนข้างทั่วไป ความผิดพลาดที่พยายามที่จะใช้บางท้องถิ่น ตัวแปรจากภายในนี้ทำ-ในขณะที่ วงในของสภาพนี้ และอันที่จริงถ้าเราเพียงแค่ได้กำจัด นี้และกล่าวว่าเข้า int เท่ากับ GetInt แล้วคอมไพเลอร์จะตะโกนใส่ เราเพราะท่านไม่อยู่ นอกขอบเขตของ วงเล็บปีกกาเหล่านี้ JOSEPH: และที่ว่าทำไมเรา ต้องการผู้เล่นตัวจริงที่นี่ ตกลง เพื่อให้คุณยังสามารถแยกออกจาก วงแรกถ้าคุณต้องการที่จะ ดังนั้นนี้เป็นวิธีที่แตกต่างกันของ การดำเนินการเพียงแค่สิ่งที่เราดำเนินการ และแทนการใช้เงื่อนไข ในวงเล็บที่เรากำลังใช้ ถ้ามีคำสั่งภายในของร่างกาย ของวงที่ต้องทำ-ในขณะที่ และโดยทั่วไปเมื่อเข้าเป็นที่สุด มากกว่าศูนย์เราจะ แยกออกจากวง และเพื่อให้เราจะไปทั้งหมด ทางลงที่นี่ และคุณจะเห็นว่าจะนี้ อาจจะเป็นที่ต้องการในเรื่องนี้ สถานการณ์เพราะมันเล็ก ๆ น้อย ๆ ทำความสะอาดบิตและน้อย บิตง่ายต่อการอ่าน ขณะนี้คุณเรียงลำดับของ มีสายพิเศษอยู่ในนั้น มันก็แค่นิด ๆ หน่อย ๆ ไม่สวยงามเท่า, ผมคิดว่าในความรู้สึก มีคำถาม? ลำโพง 4: จะทำลายเพียง แต่ได้รับ คุณออกจากหนึ่งชุดของการจัดฟัน JOSEPH ขวา ดังนั้นคำถามคือจะทำลายเพียง รับคุณออกจากหนึ่งในวง? และคำตอบคือใช่ ดังนั้นถ้าคุณได้ซ้อนกันสำหรับลูปสำหรับ ตัวอย่างเช่นถ้าฉันมีสำหรับฉัน int เท่ากับ 0 จนถึง 10 แล้วสำหรับ int J เท่ากับ 0 จนถึง 10 ถ้าผมแยกออกจากด้านใน วงก็ยังจะไป ห่วงด้านนอก ดังนั้นมันจะเก็บที่มีประสิทธิภาพ การดำเนินงานที่อยู่ข้างนอก คำถามใด ๆ เกี่ยวกับที่ ใช่? ลำโพง 5: ทำลาย แต่เพียงฟังก์ชั่น วงเล็บปีกกาเพื่อไม่ให้คนอื่น ๆ งบ? [ไม่ได้ยิน] JOSEPH: ดังนั้นคำถามคือจะทำลาย ฟังก์ชั่นสำหรับลูปเป็นนอกคอก งบอื่น ๆ เช่นถ้า? และใช่เป็นกรณีที่เพราะ คุณกำลังทำลายออกจากวงขวา ในความรู้สึก ROB: ในส่วนใหญ่ของกรณีก็ นี้เป็นประเภทถ้าบางสิ่งบางอย่าง แล้วหยุดพัก ดังนั้นคุณจึงไม่ต้องแบ่งที่จะนำไปใช้กับ ถ้าที่ห่อรอบ และยังเป็นไม่มากของห่วง แต่จำไว้ว่ายังมีสวิทช์ แตกออกโดยแบ่ง เราเห็นการแบ่งการใช้ ด้วยสวิทช์ก่อน JOSEPH: และคุณยังสามารถใช้พวกเขา ในขณะที่ลูปและสำหรับลูป คำถามใด? ตกลง ขึ้นดังนั้นต่อไปคือฟังก์ชั่น ดังนั้นคุณอาจมีการใช้อย่างใดอย่างหนึ่งเหล่านี้ BYOB บล็อกในโครงการ Scratch ของคุณ และนี้โดยทั่วไปจะช่วยให้ คุณสามารถกำหนดชุดของ คำแนะนำที่จะปฏิบัติตาม และสิ่งที่ฉันหมายความโดยที่เราคิด กลับไปที่คณิตศาสตร์ขวาพีชคณิต คุณมีสิ่งที่เราเรียกฟังก์ชั่นของ x, ตัวแปรบางอย่างและขอพูดแบบนี้ ฟังก์ชัน f ของ x เท่ากับ x บวก 5 เพื่อให้คุณสามารถคิด f ของ x เป็นสีดำนี้ กล่องที่ใช้เวลา 15 ในแล้ว ผลิต 20 ดังนั้นโดยทั่วไปฟังก์ชั่นเป็น บางสิ่งบางอย่างที่ต้องใช้ปัจจัยการผลิตบางส่วนและ แล้วก่อให้เกิดผลบางอย่าง และเหตุผลที่ฟังก์ชั่นที่ดี? พวกเขากำลังดีสำหรับจำนวนเหตุผล ดังนั้นคนที่ไม่ต้องการที่จะใช้แทง สิ่งที่องค์กรหมายถึง ในแง่ของเหตุผลที่ฟังก์ชั่นที่เป็นประโยชน์หรือไม่ ใช่? ลำโพง 4: มันทำให้คุณ รหัสที่อ่านได้มากขึ้น JOSEPH ขวา ดังนั้นหนึ่งในสิ่งที่เป็นก็จะทำให้ รหัสของคุณอ่านได้มากขึ้นใช่ไหม แทนที่จะต้องเช่น int x เท่ากับ x ครั้ง x x ครั้งผมสามารถมีก้อนของ x ซึ่งเป็นอะไรที่สามารถอ่านได้และอื่น ๆ การอ่านเข้าใจ องค์กรยังอยู่ในแง่ของการ แยกรหัสของคุณลงในการจัดการ ส่วนเพื่อให้แทนการพยายามที่จะ ดำเนินการนี​​้ทั้งหมดในส่วนหนึ่งยาว ในหลักคุณสามารถเรียงลำดับของการแยกขึ้น เป็นเหมือนตกลงให้เขียนฟังก์ชั่น ลูกบาศก์สิ่งที่ให้เขียน ทำงานตารางบางสิ่งบางอย่าง วิธีการที่คุณสามารถแยกมันออกเป็นขนาดเล็ก ชิ้นส่วนเล็ก ๆ น้อย ๆ ที่คุณสามารถจัดการได้ ตรงข้ามกับการพยายามที่จะแก้ไขปัญหา เป็นปัญหาใหญ่ทั้งหมดในครั้งเดียว ROB: หรือแม้แต่เล็ก ๆ ชิ้นส่วนเล็ก ๆ ที่ คุณและคู่สามารถจัดการได้ JOSEPH: ใช่ ROB: ดังนั้นแทนที่จะทั้งสอง คุณพยายามที่จะปลูกฝังหนึ่ง ฟังก์ชั่นในเวลาเดียวกัน JOSEPH: เข้าใจง่าย ทุกคนต้องการที่จะคาดเดาได้หรือไม่ ใช่? ลำโพง 5: ซ้ำอีก JOSEPH ขวา ดังนั้นสิ่งหนึ่งที่คุณสามารถทำอะไรกับ ทำให้เข้าใจง่ายก็คือว่ามันเกี่ยวกับการจัดเรียงของ สายเดียวกับการใช้งานอีกครั้งก็คือ เมื่อฉันเขียนฟังก์ชันลูกบาศก์ฉันสามารถ เพียงแค่ใช้ว่ามีมากกว่าและเหนือและมากกว่า อีกครั้งในโปรแกรมของฉันแทนการพิมพ์ ครั้ง x x x ครั้งกว่าและ ครั้งแล้วครั้งเล่า และความเรียบง่ายที่นี่ก็เป็นเพียงแค่ หมายความว่ามันจะทำให้การจัดเรียงของรหัสของคุณ ง่ายต่อการแก้ปัญหาเมื่อคุณแยก นี้ขึ้นเป็นฟังก์ชั่น แล้วเพราะคุณสามารถ จำกัด วงที่ ปัญหาของคุณเรียงลำดับของการเป็น คำถามใด? ดังนั้นความคิดที่เป็นนามธรรมอื่นใช่ไหม กล่องดำนี้ เช่นเดียวกับที่คุณรู้ว่าสิ่งที่ GetInt ไม่ จะได้รับการป้อนข้อมูลจากผู้ใช้หรือไม่ เราไม่ได้บอกคุณจริงๆใช่มั้ย ทั้งหมดที่เราได้บอกคุณเป็น GetInt ไม่ ว่าสิ่งที่มันบอกว่ามันไม่ ดังนั้นแม้ว่าเราจะไม่บอกคุณว่า มันทำงานคุณยังรู้ ดังนั้นในกรณีนี้โดยเฉพาะอย่างยิ่งนี้ ฟังก์ชั่นที่ไม่สี่เท่า สิ่งที่แตกต่างที่จะนำเข้า การผลิตการส่งออก และคุณสามารถสี่เท่าจำนวน โดยคูณด้วยสี่ หรือคุณสามารถสิ่งที่เราเรียก บิตเปลี่ยนมันสอง และเราจะครอบคลุมถึงนี้ นิด ๆ หน่อย ๆ ในภายหลัง และมีความจำเป็นที่จะต้องรู้วิธีนี้ ฟังก์ชั่นใช้งานได้จริงตราบใดที่มัน ทำงานตามที่ระบุไว้ ดังนั้นภายใต้ประทุน, ฉันอาจจะ เหมือนกลับมาครั้งเข้า แปดหารสอง และคุณจะไม่ทราบใช่ไหม ทั้งหมดที่คุณต้องรู้คือ มันไม่สิ่งที่กล่าวว่า เพื่อให้เป็นสิ่งที่มีประโยชน์ เกี่ยวกับสิ่งที่เป็นนามธรรม และอีกสิ่งหนึ่งที่เป็นประเภทของความคิดนี้ ของ localizing รหัสของคุณให้เป็นหนึ่งใน ส่วนโดยเฉพาะอย่างยิ่ง ดังนั้นถ้าคุณมีปัญหาที่คุณทำไม่ได้ ต้องไปทั่วรหัสของคุณพยายาม ในการแก้ไขปัญหาที่เป็น ดังนั้นในกรณีนี้ผมดำเนินการ ผิดลูกบาศก์ ผมคิดว่าเป็นก้อนคูณ โดยสาม ดังนั้นในกรณีนี้เป็นโปรแกรมหนึ่ง ที่เพิ่งได้คูณด้วยสาม ทุกที่ และมีโปรแกรมที่มีอีก ก้อนปัจจัยออกไปในฟังก์ชั่น และอื่น ๆ ตอนนี้ถ้าผมต้องการที่จะแก้ไขความผิดพลาดของฉัน ที่นี่ผมมีการแก้ไขบรรทัดเดียวทุก ของรหัสในโปรแกรมนี้ ในขณะที่ในทางกลับกันถ้าผมใช้ ฟังก์ชั่นที่ผมจะต้องเปลี่ยน สิ่งที่เป็นความผิดในสถานที่หนึ่ง ดังนั้นในด้านวิทยาศาสตร์คอมพิวเตอร์เรา เรียกปัจจัยการผลิตและผลผลิต ปัจจัยการผลิตที่เรียกว่าพารามิเตอร์หรือ ข้อโต้แย้งและผลที่เรียกว่า ค่าตอบแทน และเราจะเห็นวิธีการนี​​้จะช่วยให้เราจัดเรียง ของกำหนดฟังก์ชั่นในครั้งที่สอง ดังนั้นนี่คือความหมายของฟังก์ชั่น เพื่อ Cubing ดังนั้นจึงจะเข้าแล้ว มันกลับมาที่จำนวนครั้ง ตัวเองสามครั้ง เพื่อขอทำลายลงนี้ ดังนั้นเราจึงมีส่วนหัวของฟังก์ชั่นที่ โดยทั่วไปประกอบด้วยสามสิ่ง ดังนั้นเราจึงมีพารามิเตอร์ที่ เป็นที่ผมกล่าวว่าก่อนหน้านี้ ปัจจัยการผลิตในการทำงานนี้ แล้วเราจะให้ฟังก์ชั่นชื่อ ในกรณีนี้ก็เรียกว่าก้อน แล้วเราระบุสิ่งที่ประเภท ค่าตอบแทนเ​​ป็น ดังนั้นในกรณีนี้ฟังก์ชั่นที่สามของฉัน จะใช้เวลาในจำนวนเต็มและมันก็ยัง กลับจำนวนเต็ม ดังนั้นถ้าผมผ่านในสองสองเป็นจำนวนเต็ม มันกลับแปดกับผมซึ่ง เป็นจำนวนเต็ม ดังนั้นกลับชนิดพารามิเตอร์ชื่อ คำถามที่เกี่ยวกับว่า แล้วค่าตอบแทนที่เป็นจริง ที่ระบุไว้ในตอนท้ายด้วยการบอกว่าการกลับมา แล้วกลับสิ่งที่ มีค่าตอบแทน ดังนั้นในกรณีนี้ถ้าเราวางไว้ พร้อมฟังก์ชั่นใช้เวลาใน พารามิเตอร์ก็เรียกว่าอะไรและ มันกลับเป็นสิ่งที่เป็นประเภท ที่เราบอกว่ามันเป็นไปได้ คำถามใด? ดังนั้นทำอย่างไรเราใช้ฟังก์ชั่นหรือไม่ ดีที่เราเขียนฟังก์ชั่นแล้ว เราใช้มันในโปรแกรมของเราใช่ไหม ดังนั้นผมจึงเรียกมันว่าก้อนและ แล้วฉันจะใช้ก้อน แต่สิ่งที่สำคัญที่ควรทราบ คือเรื่องการสั่งซื้อ ถ้ามีก้อนด้านล่างหลักก็ จะใช้เป็นก้อน และที่จุดนี้ไม่มีอะไร เรียกว่าก้อนในโปรแกรมและก็ ก็จะเป็นเหมือนผมมี ความคิดว่าเป็นก้อน ดังนั้นมันจะบอกคุณนัย การประกาศของฟังก์ชั่น นั่นเป็นข้อผิดพลาดที่แสดงขึ้น และอื่น ๆ ในกรณีนี้ก้อนอยู่ด้านล่าง หลักจึงจะไม่เกิด รู้เกี่ยวกับมัน ลำโพง 5: ดังนั้นที่สำคัญคือมักจะ ฟังก์ชั่นล่าสุดที่กำหนด? JOSEPH: ดังนั้นคำถามคือ เป็นหลักโดยปกติท​​ี่ผ่านมา สิ่งที่คุณต้องการกำหนด? และไม่มี มันเป็นเพราะเรามักจะชอบหลัก ที่จะเป็นที่ด้านบนขวา เพราะนั่นคือสิ่งแรกที่คุณ ต้องการโปรแกรมเปิด โปรแกรมที่จะเห็น ดังนั้นทำอย่างไรเราแก้ปัญหาของเรานี้ ต้องการหลักที่จะเป็นที่ด้านบน แต่ ฟังก์ชั่นที่เราต้องการเราต้องการให้พวกเขา จะต่ำกว่าหลักยังสามารถที่จะใช้ พวกเขาภายในของหลัก? ดีที่เราใช้สิ่งที่เราเรียก ต้นแบบฟังก์ชั่น ดังนั้นสิ่งที่ฟังก์ชั่นเป็นหลักต้นแบบ เป็นที่จะต้องใช้สิ่งที่แรก ลายเซ็นหรือส่วนหัวของฟังก์ชัน ของสิ่งที่เราต้องการที่จะใช้ลง ที่นี่และเราวางไว้ที่ ด้านบนของโปรแกรม ดังนั้นในกรณีนี้เราบอกว่าดี ต่อมาในโปรแกรมของเราที่เรากำลังจะ เพื่อให้สัญญาว่าจะดำเนินการนี​​้ ฟังก์ชั่นที่เรียกว่าลูกบาศก์ int ซึ่งจะใช้เวลา ใส่จำนวนเต็ม ดังนั้นตอนนี้เพราะที่อยู่เหนือหลัก หลักก็จะบอกว่าโอ้ดี ต่อมาในโปรแกรมที่เป็นไปได้ มีเพื่อให้สามารถอ้างถึงมันดังนั้นฉันจะ เพียงแค่ให้มันผ่านไปสำหรับตอนนี้ และจากนั้นที่ด้านล่าง เราใช้ก้อน แล้วที่สำคัญก็จะพูดว่า ดีก็จะเรียงลำดับของการเชื่อมโยง ทั้งสองสัญลักษณ์ร่วมกัน และเราจะครอบคลุมสิ่งที่ หมายถึงในภายหลัง และดังนั้นจึงจะรู้ว่านี่คือ ฟังก์ชั่นที่สามว่ามันควรจะใช้ ROB: [ไม่ได้ยิน] เรื่องความต้องการ หลักที่ด้านล่างหรือ ด้านบนฉันได้เห็นทั้ง มีสิ่งที่ชอบเพียง จะนำหลักที่ด้านล่าง แต่เมื่อโครงการได้รับโดยเฉพาะอย่างยิ่ง ใหญ่มักจะอยู่ในหลัก ไฟล์ทั้งหมดของตัวเอง และที่จุดนั้นเช่น สาย int จะลูกบาศก์ - ภายในของ stdio.h เป็นพวง ของสายเช่นเดียวกับ int ที่ สายใส่ก้อน int และเพื่อให้ต้นแบบเหล่านั้นเป็นสิ่งที่คุณ มีแนวโน้มที่จะใส่ลงไปในส่วนหัวของไฟล์ที่ จุดที่มันไม่สำคัญ ดีก็ไม่สำคัญ ผู้ที่เสมอไปที่ด้านบน และหากที่สำคัญคือไม่ได้ไฟล์ทั้งหมดของตัวเองที่ คุณไม่ต้องกังวลเกี่ยวกับการวาง ต้นแบบการทำงานของแต่ละบุคคล ในแฟ้ม JOSEPH: แล้วเราจะไปที่น้อย บิตต่อมาเมื่อร็อบเริ่มพูด เกี่ยวกับการรวบรวม และอื่น ๆ นอกจากนี้ยังมีความแตกต่าง ระหว่างพารามิเตอร์และอาร์กิวเมนต์ และพารามิเตอร์เป็นเพียงสิ่งที่ ที่เราเรียกว่าปัจจัยการผลิตเหล่านี้เมื่อ เรากำหนดฟังก์ชั่น และเราเรียกว่าอาร์กิวเมนต์เมื่อเรา จริงผ่านมันในการทำงาน ดังนั้นในกรณีนี้เป็นพารามิเตอร์ ในขณะที่เรากล่าวว่าก่อนที่จะ และเมื่อเราใช้งานจริงที่นั่น ลูกบาศก์ของ x x แล้วตัวเองเป็น สิ่งที่เราเรียกการโต้แย้ง กับฟังก์ชั่นก้อน ROB: ดังนั้นข้อโต้แย้งที่เป็นพารามิเตอร์ - มีความแตกต่างนี้มาก สับสนสลับกัน ณ จุดนี้ผมก็ชอบอย่างใดอย่างหนึ่ง คำพูดเหล่านั้นว่าเมื่อฉันเห็นมันออกมาใน ป่าที่ฉันไม่สามารถช่วย แต่ทันที คำถามที่ว่าพวกเขาจะใช้มันใน บริบทที่ถูกต้องเพราะ ความแตกต่างที่ละเอียดอ่อนพอที่จะเพียงแค่ ทุกคนมีแนวโน้มที่ - ฉันมักจะบอกว่าการโต้แย้ง โดยไม่คำนึงถึงสิ่งที่ผมหมายถึง JOSEPH: และฟังก์ชั่นยังมีประโยชน์ สำหรับสิ่งที่เราเรียกว่าผลข้างเคียง ดังนั้นฟังก์ชั่นสามารถใช้ปัจจัยการผลิตที่ไม่มีและ มันยังสามารถผลิตไม่มีผล ดังนั้นในกรณีนี้โดยเฉพาะอย่างยิ่งผม กำหนดย่อยที่ไม่มี ค่าตอบแทน และเพื่อที่จะระบุว่าเราจะใช้ สิ่งที่เราเรียกเป็นโมฆะกว่าที่นี่ และอื่น ๆ ผลข้างเคียงของฟังก์ชั่นนี้ คือว่ามันเป็นเพียงแค่พิมพ์สิ่งที่ ออกไปที่หน้า มันไม่ได้ใช้เวลาจริงใด ๆ ปัจจัยการผลิตและมันไม่ได้ จริงผลิตออกใด ๆ แต่นี้อาจจะมีประโยชน์ในแง่ที่ ถ้าคุณต้องการที่จะยกตัวอย่างเช่นการแก้ปัญหา บางสิ่งบางอย่างในโปรแกรมของคุณถ้าคุณต้องการ ที่จะเขียน subroutine น้อยที่ พิมพ์ออกสมมติว่าเนื้อหา ของหน่วยความจำหรือสิ่งที่ และเพื่อให้เกิดผลข้างเคียงเหล่านี้เป็นบางครั้ง ที่มีประโยชน์ที่อยู่นอกบริบท ของเช่นเดียวกับปัจจัยการผลิตและผลผลิต คำถามใด? และจะจบส่วนนี้โดยเฉพาะอย่างยิ่ง สิ่งที่ไม่โปรแกรมนี้จะทำอย่างไร ฉันจะให้พวกคุณสอง วินาทีในการอ่านผ่านมัน ในระดับพื้นฐานมากสิ่งที่เราต้องการ กล่าวคือการที่จะแลกเปลี่ยนและ y ใช่ไหม ดังนั้นวิธีที่หลายท่านคิดจริง นี้จะสลับ x และ y? ยกมือของคุณ ไม่มีใคร ตกลง ที่คิดว่ามันจะ ไม่สลับ x และ y? และผลรวมของที่เป็น ไม่ได้ทั้งห้อง ดังนั้นบางคนไม่แน่ใจว่า ตกลง ที่เหมาะสม เพื่อให้เป็นไปผ่านสิ่งที่เกิดขึ้นเมื่อ คุณจริงเรียกฟังก์ชั่นครั้งแรกใน เพื่อที่จะตอบคำถามนี้ ดังนั้นนี่คือสิ่งที่หน่วยความจำ การเรียงลำดับของดูเหมือนว่า นี่คือการจัดเรียงของชอบแบบง่าย หน่วยความจำในสิ่งที่ดูเหมือนว่าเมื่อ คุณเรียกใช้โปรแกรม ดังนั้นจึงมีสิ่งที่เรียกว่า กองลงที่นี่และ สิ่งที่เรียกว่ากอง และเหล่านี้เติบโตไปสู่ ตรงกลางของหน่วยความจำ ดังนั้นในกรณีนี้โดยเฉพาะอย่างยิ่งเมื่อ คุณเรียกใช้ฟังก์ชันมัน ได้รับการวางอยู่บนกอง และแล้วสิ่งที่มีอยู่ในที่ ฟังก์ชั่นยังคงอยู่ในสิ่งที่เราเรียกว่า กองกรอบการทำงานของ และเพื่อที่จะได้รับการแสดงที่ดีของ นี้ let's - ตัวอย่างเช่นเรามี โปรแกรมหลักก่อนหน้านี้ และภายในของหลักที่เราเรียกว่าก้อน ดังนั้นหลักแรกจะไปในกอง กรอบเพราะฟังก์ชั่นเป็นครั้งแรก ที่เรียกว่า และจากนั้นเมื่อก้อนที่เรียกว่าภายใน หลักจะได้รับการใส่ที่ด้านบนของหลัก ภายในของหน่วยความจำ ดังนั้นสิ่งที่คุณจะสังเกตเห็นที่นี่เป็นก้อนที่ มีพารามิเตอร์ของตัวเองและของ คนในท้องถิ่นของตัวเอง ดังนั้นเมื่อคุณจริงผ่านสิ่งที่จะ ฟังก์ชั่นพารามิเตอร์ที่ ได้รับสำเนาของสิ่งที่เป็น ผ่านจากหลัก และการเรียงลำดับของการอธิบายเรื่องนี้ให้ เดินผ่านโปรแกรม ดังนั้นเราจึงมีกองนี้เป็น เพียงแค่สแต็คส่วน และสิ่งที่เราทำคือครั้งแรกที่เราเริ่มต้น x และ y เพื่อที่หนึ่งและสอง ดังนั้นเราจึงมีกล่องเล็ก ๆ น้อย ๆ เหล่านี้ พวกเขากำลังนั่งอยู่ในกองหลัก กรอบในกอง พวกเขามีหนึ่งและสอง ตอนนี้ที่เราเรียกว่าการแลกเปลี่ยน สิ่งที่เกิดขึ้นคือเราผ่าน x และ y เป็น การแลกเปลี่ยนและการแลกเปลี่ยนจะสร้างสำเนาของตัวเอง ของตัวแปรเหล่านั้นไปใช้ภายใน ของกรอบสแต็คของ ดังนั้นตอนนี้ที่นั่นเราได้ที่ มีค่าที่มี x และข ซึ่งมีค่าที่ y มี ดังนั้นหนึ่งสอง และคุณจะสังเกตเห็นว่านี่คือที่แยกต่างหาก จาก x และ y ภายในของหลัก ดังนั้นตอนนี้เราสร้างชั่วคราว ตัวแปรที่จะมี เราตั้งค่าเท่ากับ b ดังนั้นจึง การเปลี่ยนแปลง 1-2 และจากนั้นเราจะกำหนด b เท่ากับ กับอุณหภูมิซึ่งเป็นหนึ่งใน แล้วตอนนี้เราออก ฟังก์ชั่นนี้ เมื่อคุณออกจากฟังก์ชั่น กรอบสแต็คที่ได้รับการโผล่ออกกอง เราเรียกว่าการผลักดัน คุณผลักดันกรอบกองลงบนสแต็ค และถ้าคุณป๊อปออกกอง และเพื่อให้สิ่งที่เกิดขึ้นคือทุกอย่างที่ ที่อยู่ในการจัดเรียงกรอบกองเพียง ขึ้นไปในเปลวไฟ และอื่น ๆ ที่ไม่มีอยู่ แต่เราทำในสิ่งที่สังเกตเห็น เราไม่เคยเปลี่ยนแปลงจริง ค่าของ x และ y ใช่ไหม ดังนั้นผู้ที่อยู่ในท้องถิ่นเพื่อหลัก และโดยผ่านการแลกเปลี่ยนสิ่งที่เป็นเรา จริงไม่เคยเปลี่ยนค่าเหล่านั้น และสิ่งที่เราจะเรียกสิ่งนี้? ที่เราเรียกว่าผ่านนี้ด้วยค่า ดังนั้นใน C, เมื่อคุณผ่านสิ่งที่เป็น ฟังก์ชั่นมันผ่านพวกเขาด้วยคุณค่าและ ทำให้สำเนาของพวกเขาสำหรับ ฟังก์ชั่นการใช้งาน และเราจะได้เรียนรู้เกี่ยวกับสิ่งที่เรียกว่า ผ่านอ้างอิงในภายหลัง แต่ที่ วิธีการที่คุณสามารถแก้ปัญหานี้ แต่เราจะไม่ต้องกังวลเกี่ยวกับ ที่จนกระทั่งต่อมา ROB: และที่จริงระยะที่ผ่าน โดยการอ้างอิงดังนั้น C ไม่ได้มี ผ่านโดยอ้างอิง C เฉพาะได้ผ่านค่า ไม่ว่าสิ่งที่คุณทำคุณอยู่เสมอ ผ่านสำเนาของบางสิ่งบางอย่าง มันเป็นเพียงแค่ว่าเหมือนที่ผมกล่าวถึงการจัดเรียงของ ก่อนที่จะมีการชี้ และที่สตริงเป็นจริงเพียงสี่ ไบต์ชี้ไปที่บางแห่งในหน่วยความจำ ดีถ้าฉันมีสายนี้และเป็น บอกฉันว่าเป็นที่ที่สาย - ดีถ้าฉันมีตัวชี้นี้เพื่อนี้ วางในหน่วยความจำแล้วฉันสามารถผ่าน สำเนาของตัวชี้ไปยังฟังก์ชั่นนั้นและ ฟังก์ชั่นที่ยังคงรู้ว่าใน หน่วยความจำมันเป็น ดังนั้นทั้งสองของตัวชี้เหล่านี้จะชี้ ไปยังสถานที่เดียวกันในหน่วยความจำและ นั่นคือวิธีที่เราจะสามารถ การปรับเปลี่ยนสิ่งที่เกินกว่า กรอบสแต็คในปัจจุบัน JOSEPH: คุณต้องการที่จะทำรวบรวม? ROB: ไม่ก็ 05:30 JOSEPH: OK มันเป็น 05:30 ตกลง ดังนั้นเราจะครอบคลุมการรวบรวมผมคิดว่าใน ส่วนถัดไปหรือส่วนของคุณ ผู้นำจะที่จุดที่ และ - ROB: คำถามที่ใด? JOSEPH: คำถามที่ใด? ใช่? ลำโพง 5: การใช้สตริงจาก CS50 ใด ๆ ฟังก์ชั่นที่เราต้องการที่จะใช้สำหรับ ผู้ที่จะเป็นเช่นฟังก์ชัน C CS50 ไม่ได้ไปในและ ทำเพิ่มเติมใด ๆ ROB: ที่ถูกต้อง ใด ๆ ของ C เช่น [ไม่ได้ยิน] คุณ จะใช้ผู้ที่อยู่ในสายของเรา JOSEPH: และสิ่งสุดท้ายที่ฉันต้องการ กล่าวถึงก็คือว่าเรามีคำแนะนำสไตล์ สำหรับชั้นนี้ ROB: โอ้ใช่ JOSEPH: ดังนั้นถ้าคุณได้มาจาก การเขียนโปรแกรมพื้นหลังก่อนที่คุณ อาจจะมีการประชุมบางอย่างเมื่อ คุณกำลังเขียนรหัสเช่นวาง วงเล็บในบรรทัดเดียวกันหรือโดยเฉพาะอย่างยิ่ง วิธีการเยื้อง หรือการตั้งชื่อตัวแปรของคุณ ในชั้นนี้เราต้องการที่จะปฏิบัติตาม คู่มือรูปแบบที่เฉพาะเจาะจงเพียงเพราะ ดีถ้าคุณจะออกไปทำงานใน อุตสาหกรรมที่คุณกำลังจะได้รับการคาดหมายว่า ที่จะปฏิบัติตามคำแนะนำรูปแบบของ บริษัท ที่คุณไป เช่นตัวอย่างเช่น Facebook ผมคิดว่า มีการเรียงลำดับโดยเฉพาะอย่างยิ่งของการตั้งชื่อ การประชุม และมีความแตกต่างระหว่างอูฐ ตัวแปรท่อและเช่นเดียวกับ แยกพวกเขาด้วยขีด และผมคิดว่าสำคัญมากที่สุดเช่น ตัวอย่างเช่นการเยื้องขวา เราวงเล็บปีกกาเริ่มต้นที่ เงื่อนไขเป็นและพวกเขา อยู่ในบรรทัดถัดไป และเรายังใส่วงเล็บปีกกาใน ถึงแม้ว่ามันจะเป็นเพียงหนึ่งบรรทัด และหลายครั้งมีวิธีที่จะทำ มันที่คุณสามารถออกจากการจัดฟันเหล่านี้ ออกจะเป็นเพียงหนึ่งบรรทัด ภายใต้คำสั่งถ้า แต่ในชั้นนี้เราต้องการที่จะปฏิบัติตาม คู่มือรูปแบบที่เฉพาะเจาะจงเพียงเพื่อให้คุณได้รับ ที่ใช้ในการเรียงลำดับของสิ่งที่ ROB: ใช่และสไตล์ 50 เป็นไปได้ บังคับใช้คู่มือรูปแบบนี้และเรากำลัง จะใช้รูปแบบ 50 เกรดรหัสของคุณ จึงทำให้สิ่งที่ง่ายสำหรับเราและ หวังว่าไม่ควรจะทำสิ่งที่ มากยิ่งสำหรับคุณได้รับ รูปแบบที่เป็นมาตรฐานไม่ควรที่ ที่ไม่สมจริง JOSEPH: และสุดท้ายที่จะหารูปแบบ คู่มือไป manual.cs50.net/style และใช่ ลำโพง 4: คุณจะไปบังคับใช้ ตัวอักษรใดต่อบรรทัด ROB: ใช่ JOSEPH: ขออภัยครับ ROB: นั่นเป็นเหมือนหนึ่งในคนเดียว ณ จุดนี้ผมตกลง 120 ฉันตกลงกับการพูด 120 ตัวอักษรต่อบรรทัด ผมเข้าใจว่ามีการ จำกัด บางอย่าง ผมคิดว่า 80 จะมีขนาดเล็ก แต่ เรากำลังบังคับมัน JOSEPH: ส่วนตัวผมคิดว่ามี C, 80 ตัวอักษรก็โอเคมากขึ้น เมื่อคุณเริ่มได้รับที่อื่น ๆ ภาษาเช่น JavaScript และ PHP, ไม่ ดังนั้นเหตุผลที่จะ จำกัด เพียงแค่ มันถึง 80 ตัวอักษร ตกลง ดีที่เป็นส่วนสุด ไม่มีใครต้องการขนม? ลำโพง 4: ใช่