>> [เล่นเพลง]
>> ลำโพง 1: นี่คือ CS50 และ นี้คือจุดเริ่มต้นของสัปดาห์ที่สอง
ดังนั้นขอดำน้ำที่เหมาะสมเป็นสิ่งที่ ที่เป็นรถเพื่อที่จะพูด
ดังนั้นกว่าที่นี่เป็น IDE CS50 และฉันได้ ดึงขึ้นล่วงหน้า screen-- นี้แช่ง
มัน
แจ้งเตือนสปอยเลอร์.
ทั้งหมดขวา
ผมเคยดึงขึ้นหน้าจอนี้ที่นี่ ซึ่งมีโปรแกรมที่ง่ายมาก
ถ้าเราเลื่อนลงมากที่สุด นี้เป็นเพียงการแสดงความคิดเห็น
แต่ที่นี่ในสาย 13 ผ่าน 17 เรามีโปรแกรม
>> มันเป็นเรื่องที่ถูกต้อง syntactically ซ​​ึ่งหมายความว่าถ้า ฉันจะรวบรวมมันจะรวบรวมและทำงาน
แต่มันก็เป็นรถ
โปรแกรมนี้จะอ้างว่าในความคิดเห็น ขึ้นด้านบนว่ามันควรจะพิมพ์ 10 ดาว
แต่มันไม่ได้
และขึ้นอยู่กับประสบการณ์ของคุณ หรือเร็ว ๆ นี้จะมีประสบการณ์กับซี
คุณสามารถมองเห็นเหตุผล ทำไมนี้ในความเป็นจริง Buggy?
ใช่?
ผู้ชม: มันจะไปจากศูนย์ถึง 10
นั่นคือการทำซ้ำ 11
ลำโพง 1: ใช่
ดังนั้นมันจะจากศูนย์ ผ่านและเท่ากับ 10,
ซึ่งแน่นอนว่าเป็น 11 ซ้ำ
ดังนั้นจึงเป็นไปได้ พิมพ์จริง 11 ดาว
ดังนั้นการประชุมวิทยาการคอมพิวเตอร์ มากที่สุดในการเขียนโปรแกรมภาษา
เป็นจริงเพียงเพื่อ เริ่มนับที่ศูนย์
แต่นับถึง แต่ไม่ผ่าน มูลค่าจริงที่คุณดูแลเกี่ยวกับ
>> ตอนนี้สิ่งหนึ่งที่ ใช้เวลาเพียงเล็กน้อยรับใช้
และแม้กระทั่งรอยขีดข่วนได้รับการออกแบบตามที่มันเป็น สำหรับการเขียนโปรแกรมไม่ได้หรือคอมพิวเตอร์ที่ไม่ใช่
นักวิทยาศาสตร์และนักสำหรับเด็ก ส่วนใหญ่ถูกออกแบบให้มี
คุณจะเริ่มนับทั่วไปที่หนึ่ง
และที่ดี
คุณอย่างสามารถเริ่มนับ ที่หนึ่งหากที่สะดวกสบายมากขึ้น
และนับได้ถึง 10 และผ่านการ แต่ คุณจะรู้โดยเฉพาะอย่างยิ่งในสัปดาห์นี้
และนอกเหนือจากนั้นเพียงเพื่อให้ หลายสิ่งหลายอย่างในการเขียนโปรแกรม
0 คิดว่าเป็นครั้งแรกที่ หลักที่คุณนับ
ที่คุณจะพบว่ามันง่าย เพียงเพื่อให้ได้เป็นนิสัยของการเริ่มต้นนี้
จากศูนย์และการนับถึงค่า คุณดูแลเกี่ยวกับในขณะนี้จาก
รับไป
>> ดังนั้นที่ได้กำหนดว่า
เราเปลี่ยนหรือลดน้อยลง เท่ากับเพียงน้อยกว่า
ลองมาดูที่ ตัวอย่างที่สองที่นี่
>> ดังนั้นโปรแกรมนี้ในการเรียกร้องมากเกินไปของมัน แสดงความคิดเห็นขึ้นด้านบนว่ามันควรจะพิมพ์
สิบดาว แต่มันไม่ได้
ข้อผิดพลาดที่นี่คืออะไร?
>> ดังนั้น what-- และขอโทษขอให้เป็นคนที่ชัดเจน
10 ดาว
ต่อหนึ่งบรรทัด แต่มันไม่ได้
ดังนั้นในความเป็นจริงให้ฉันไปข้างหน้าและรวบรวม คนนี้เพราะมันเป็นน้อย
ที่ชัดเจนขึ้นอยู่กับคำอธิบายว่า
ผมขอไปลงในไดเรกทอรีแหล่งที่มาของเรา
ทำให้รถหนึ่งเฉือนจุดรถหนึ่ง
ตกลงผมเห็น 11 ดาวซึ่ง ยังคงเป็นปัญหา
แต่พวกเขายังทั้งหมดในหนึ่งบรรทัด
เกิดอะไรขึ้นที่นี่?
ใช่
ผู้ชม: [ไม่ได้ยิน]
ลำโพง 1: ใช่
ดังนั้นนี่คือความสวยงามที่คุณอาจ จำฉันเอ่ยสั้น ๆ ของ
แม้ว่าทุกอย่างดู สวยและก็เยื้องอย่าง
และชนิดของมันมีลักษณะเหมือนรอยขีดข่วน ในบรรทัดที่ 16 และ 17 มีความว่า
แน่นอนว่าภายใต้เยื้องสำหรับวง
นั่นเป็นสาระสำคัญ
คอมพิวเตอร์ไม่ได้ รู้หรือดูพื้นที่สีขาว
พื้นที่สีขาวเป็นเพียงสำหรับ มนุษย์เรา, stylistically
คอมพิวเตอร์ไม่ทราบเมื่อคุณมี วงเล็บปีกกาซึ่งจะจริง
แก้ไขปัญหานี้
>> ดังนั้นถ้าเราจริงไปและ ใส่อย่างชัดเจนในวงเล็บปีกกาเหล่านี้
ที่จะแก้ไขปัญหานี้ได้โดย การที่ชัดเจนในการคอมไพเลอร์
ว่าที่จริงผมต้องการที่จะดำเนินการ สองบรรทัดของรหัสอีกครั้ง
และอีกครั้งและอีกครั้ง
แต่สิ่งที่เป็นคำอธิบายพื้นฐาน?
ใช่มั้ย?
เราไม่จำเป็นต้องเคร่งครัด หยิกวงเล็บตลอดเวลา
แม้ว่ามันอาจจะดีที่สุด ที่จะได้รับการปฏิบัติเป็นนิสัยที่อยู่แล้ว
แม้ว่ามันจะเพิ่มสอง ตัวละครรหัสของคุณ ทำไม?
>> ผู้ชม: [ไม่ได้ยิน]
ลำโพง 1: ใช่เพื่อให้เป็น วิธีการแก้ปัญหาอื่นทั้งหมด
ใช่มั้ย?
โดยเฉพาะอย่างยิ่งถ้าได้อย่างรวดเร็วก่อนที่คุณทำไม่ได้ จริงๆขอบคุณสิ่งที่เกิดขึ้น
ดีแน่นอนที่เราจะทำได้ เพียงแค่ทำสองสิ่งที่ได้ในครั้งเดียว
และเพียงแค่หลีกเลี่ยงปัญหาทั้งหมด
และที่ว่าดี แต่ตอนนี้ สำหรับวัตถุประสงค์ของว​​ันนี้สิ่งที่
เป็นคำอธิบายสำหรับข้อผิดพลาดหรือไม่?
ทำไมดาวทุกคนในหนึ่งบรรทัด?
ใช่?
>> ผู้ชม: ดูเหมือนว่าถ้า คุณมีหนึ่งบรรทัดของรหัส
คุณสามารถทำมันไม่มี
ลำโพงที่ 1: ว่า
นี่เป็นเพียงการประชุมของมนุษย์
คนตระหนักดีว่ามันเป็น เล็ก ๆ น้อย ๆ ที่น่ารำคาญหรือน่าเบื่อ
ที่จะต้องใส่วงเล็บปีกกาทั้งหมด เวลาถ้าสิ่งที่คุณต้องการที่จะทำ
มีการดำเนินการอย่างใดอย่างหนึ่งของสายรหัส
ดังนั้นมนุษย์จึงตัดสินใจบางอย่าง เวลาที่ผ่านมาว่าที่ดี
หากคุณต้องการที่จะนำทั้งหมดของวงของคุณ เพียงแค่ว่าในหนึ่งบรรทัดเช่นนี้
ที่ดีกับซิงเกิ้ล อัฒภาคที่สิ้นสุด
แต่คุณสามารถทำเช่นหนึ่ง สายโดยไม่ต้องวงเล็บปีกกา
>> ดังนั้นเมื่อ CS50 คู่มือสไตล์ ขณะที่จะชี้ให้คุณ,
คุณจะเห็นว่าโดยทั่วไป มันเป็นนิสัยที่ดี
ที่จะได้รับในนี้จนกว่าคุณจะ หลงผิดค่อนข้างสะดวกสบาย
จากเหล่านี้ชนิดของการประชุม และทำสิ่งที่ตัวคุณเอง
ตราบใดที่คุณอยู่ด้วยตัวเองที่สอดคล้องกัน
และเราจะพูดคุยเกี่ยวกับ รูปแบบนิด ๆ หน่อย ๆ ต่อมาในวันนี้
>> ดังนั้นให้ฉันเปิดโปรแกรมอื่น ๆ
แน่นอนเราควร แก้ไขปัญหาที่ 10 รวม
ให้ฉันไปข้างหน้าและเขียนจริง โปรแกรมรวดเร็วที่ฉันจะโทร
สมมติว่าวงดอทซีดังนั้นห่วงดอทซี และในจุด C ห่วงฉันจะมี
รวมถึงมาตรฐาน I / O จุด H int main เป็นโมฆะ
และตอนนี้ขอเพียงแค่ทำจริงห่วง
ดังนั้น 4 int ผมได้รับเป็นศูนย์
ฉันจะน้อยกว่าการพูด, 50
ผมบวกบวก
และจากนั้นในที่นี่เรามา ไปข้างหน้าและไม่พิมพ์เอฟ
แล้วฉันต้องการพิมพ์ฉัน และสายใหม่อัฒภาค
>> และนี่ควรพิมพ์ทั้งหมด ตัวเลขจากศูนย์ถึง 50?
หัวไม่กี่พยักหน้า
ไม่กี่กัดกร่อน
มีอะไรผิดพลาดอยู่แล้ว?
ความผิดพลาดได้ง่ายที่ผมทำคืออะไร?
ใช่
>> ผู้ชม: [ไม่ได้ยิน]
ลำโพง 1: ใช่
ดังนั้นแม้ว่าจะมีลักษณะ เช่นนี้เป็นสิ่งที่ผมตั้งใจ
จำได้ว่าผมยังเป็น เพียงอักขระ ASCII
>> ดังนั้นถ้าฉันพูดว่าพิมพ์ "ที่หนึ่ง"
มันอย่างแท้จริงไป ในการพิมพ์ครั้งที่หนึ่งดังนั้นถ้าฉัน
ต้องการ plug-in ตัวยึด มูลค่าที่จริงผมต้องทำเช่นนี้
แล้วเสียบในตัว ค่าของฉันแบบไดนามิก
มิฉะนั้นฉันแค่จะไป จะได้รับ 50 ของฉันบนหน้าจอ
>> ดังนั้นให้ฉันไปข้างหน้าและ ทำให้วงนี้เรียกใช้มัน
และแน่นอนเรามีทั้งหมด วิธีผ่าน 49
และถ้าผมเลื่อนกลับในเวลาที่ฉันเห็น จำนวนศูนย์ที่จุดเริ่มต้น
>> ดีสิ่งที่ถ้าฉันชนิดของสกรูขึ้น?
ถ้าฉันทำเช่นนี้?
เพียงเพราะฉันไม่ได้คิด
มีอะไรโปรแกรมนี้
เมื่อกำลังรวบรวมและทำงาน จะทำมีเหตุผล?
>> ผู้ชม: ไม่มีอะไร
>> ลำโพง 1: ไม่มีอะไร
ว่าเป็นเพราะเหตุใด
>> ผู้ชม: ผมถูกออกแบบมาสำหรับศูนย์
ดังนั้นเงื่อนไขที่เป็นเท็จ
ลำโพง 1: ใช่ว่า
ทั้งหมดรหัสที่ถูกต้อง syntactically
นี้จะรวบรวมนี้ รหัสจะทำงาน แต่ก็ไม่ได้
จะไปทำอะไรที่เป็นประโยชน์ เพราะผมเริ่มต้นผมให้เป็นศูนย์
จากนั้นเราจะตรวจสอบคือผมมากกว่า 50?
เห็นได้ชัดว่าไม่มีก็ไม่ได้
ดังนั้นห่วงไม่เคยดำเนินการในทุก
>> ถ้าเราทำอะไรบางอย่าง เสี่ยงน้อยมาก?
ดังนั้นสิ่งที่ถ้าเราทำเช่น int ผมได้รับเป็นศูนย์
และตอนนี้ให้ฉันใช้ในขณะที่ วงซึ่งเป็นเงื่อนไขอีก
และในขณะที่ผมพูดในขณะที่ฉันมีค่ามากกว่า หรือเท่ากับศูนย์และจากนั้นในที่นี่ผม
ไปข้างหน้าและบันทึกแฟ้มให้ห่วง
และฉันจะใช้มัน
สิ่งที่ฉันจะได้เห็นนี้ เวลาที่มีห่วงขณะที่?
ใช่
>> ผู้ชม: เป็นห่วงไม่มีที่สิ้นสุด?
>> ลำโพงที่ 1: วง จำกัด ?
ใช่และทำไม?
ผู้ชม: เพ​​ราะมันเป็นศูนย์เสมอ
ลำโพง 1: ใช่
ดังนั้นฉันจะเริ่มต้นเป็นศูนย์
แน่นอนผมอยู่เสมอมากขึ้น มากกว่าหรือเท่ากับ 0 เป็นผล
ดังนั้นฉันแค่จะไป เห็นนี้เพียบ
และตอนนี้ได้เกิดขึ้นครั้งเดียว หรือสองครั้งต่อหัวของหลักสูตร
สิ่งที่เกิดขึ้นเมื่อคุณ มีวง จำกัด ?
>> ผู้ชม: การควบคุมซี
ลำโพง 1: ใช่
ดังนั้นการควบคุม C ในที่สุดก็จะตอบสนอง
แต่น่าเสียดายที่เราได้พิมพ์ออกมา และล้านล้านเลขศูนย์อยู่แล้ว
และเพื่อให้คอมพิวเตอร์มี ชนิดของการได้รับข้างหน้าผม
ดังนั้นมันเป็นไปที่จะไม่สนใจ ฉันนิด ๆ หน่อย ๆ
แต่ถ้าคุณเพียงแค่กดควบคุม C ไม่กี่ ครั้งบน Mac ของคุณหรือแป้นพิมพ์คอมพิวเตอร์
ในที่สุดมันก็ควรแน่นอนยุติ
และหากไม่ได้เราจะแสดงให้คุณเห็นบางอย่าง เทคนิคอีกไม่นานที่คุณ
จริงสามารถบังคับให้ฆ่าโปรแกรม เหมือนใน Windows และ Mac OS,
ถ้าจำเป็นต้อง.
แต่ขอลองอย่างอื่น
ลองจริงเพิ่มขึ้นเป็นครั้งที่หนึ่ง นี้ยังคงไปได้ไม่มีที่สิ้นสุด?
ให้ฉันทำงานนี้
และตอนนี้คุณสามารถชนิดของ ดูสิ่งที่เกิดขึ้น
นี้ก็เป็นวง จำกัด
แต่นี้เป็นบิตของคำถามเคล็ดลับที่
นี้เป็นไปที่จะพิมพ์หมายเลขถาวรหรือไม่
>> ผู้ชม: เลขที่
ลำโพง 1: เลขที่
ทำไม?
ผมได้ยินบางกัดกร่อนมากกว่าที่นี่
Someone-- ใช่
ผู้ชม: คุณไม่ได้มีเพียงพอ บิตจริงๆให้ไป
ลำโพงที่ 1: สิทธิทั้งหมด
ดังนั้นผมจึงไม่ได้มีมากพอ บิตให้ไป
ดังนั้นสิ่งที่จะเกิดขึ้น?
มันเป็นเพียงแค่จะหยุด?
>> ผู้ชม: ในบางจุด มันจะปิด the--
ลำโพง 1: มันจะปิด วงลง แต่ทำไม?
สิ่งที่จะเกิดขึ้นที่ ท้ายสุดของขอบเขตของตนหรือไม่
ใช่?
ผู้ชม: มันจะวงจร กลับไปที่ตัวเลขติดลบ
ลำโพงที่ 1: จำนวนลบหรือ ถ้าเราเป็นเพียงแค่การรักษาในเชิงบวก
ศูนย์อย่างน้อย
ดังนั้นใช่อย่างแน่นอน
จำได้ว่าที่เราเห็นครั้งสุดท้ายที่ว่าถ้าคุณ เพิ่มบิตของคุณหนึ่งครั้งมากเกินไป
และคุณก่อนมีล้น ความจุของ int ของคุณ
หรือสิ่งที่ชนิดของข้อมูลที่เป็นคุณ จะห่อรอบอาจจะ
ตัวเลขสองเชิงลบ
หรือถ้าคุณได้ระบุว่าคุณ ช่วงเท่านั้นที่ควรจะเป็นบวก
ซึ่งคุณสามารถทำ แต่ เราไม่ได้เห็นได้ว่ายัง
คุณอาจจะจบลงอย่างน้อยกลับไปที่ศูนย์
แม้ว่าในความเป็นจริงใช่
ในกรณีนี้ในแง่ลบ ตัวเลขซึ่งในกรณีนี้
วงเป็นไปที่จะยุติ เพราะผมไม่ได้ในความเป็นจริง
มากกว่าหรือเท่ากับ ศูนย์ถ้าเป็นเชิงลบ
>> ดังนั้นน่าเสียดายที่ว่า ระยะเวลาที่เราจะต้องรอ?
ตอนนี้เรากำลังขึ้นไป สิ่งที่ 2000000-ish?
เราเป็นเหมือน 2 พันล้าน, เราจะต้องรอ
จนกว่าเราจะสามารถมองเห็นอาการนี​​้
แต่เราสามารถดูได้เล็ก ๆ น้อย ๆ ได้เร็วขึ้น maybe-- ลองดูว่าเราสามารถหยุดยั้ง
เข้ามา.
แม้เมนูจะปรากฏช้า
ทั้งหมดขวา
ดังนั้นเราจะกลับมาก่อนที่จะยาว
มันเป็นสิ่งที่ดี time-- แช่งมันลูกสุนัข
>> มันเป็นเวลาที่ดีสำหรับการประกาศบางส่วน
ดังนั้นถ้าคุณอาจจะชอบ ที่จะมีส่วนร่วมใน YHack,
ซึ่งเป็นเหตุการณ์ที่เป็น การสนับสนุนจากเพื่อนของเราที่มหาวิทยาลัยเยล
และแน่นอนบางส่วนของหลักสูตรของ TFS ที่มหาวิทยาลัยเยลมีส่วนร่วมกับเรื่องนี้
YHack เป็นสากล สับธนบุรีเจ้าภาพโดยจัดขึ้นและ
ที่มหาวิทยาลัยเยลพากัน 1500 เช่นแฮกเกอร์ใจกว้างและโฆษณาทั้งหมด
ทั่วโลก
ถ้าเป็นที่น่าสนใจ ลองดูที่นี่
ถ้าเป็นมากเกินไปในเวลาสั้น ๆ หน้าจอจะดูที่สไลด์ของว​​ันนี้
สำหรับ URL สำหรับ yhack.org
ดังนั้นยังไม่กี่ประกาศอย่างรวดเร็ว
ดังนั้นส่วนที่เป็นทางการจะเริ่มต้น ในสัปดาห์หน้าทั้งที่นี่และนิวเฮเวน
เก็บไว้ในใจคุณจะได้รับ อีเมลต่อมาช่วงสุดสัปดาห์นี้มีแนวโน้มมากที่สุด
มันต้องใช้เวลานาน สำหรับในส่วน CS50,
รับทุกคนที่อยู่ใน ระดับและทุกคนย้ายไปรอบ ๆ
และการเรียนการสอนทุกคน ' นอกจากนี้ยังมีตารางเวลาที่ยังคงแข็งตัว,
แต่ติดตามความคืบหน้าสำหรับอีเมลและหากจำเป็นที่จะต้อง จะคุณสามารถอีกครั้งหลังจากที่มีส่วน
>> Study.cs50.net
ดังนั้นแม้ว่าคุณจะเป็นผู้เข้าร่วมประชุมอย่างต่อเนื่อง ที่ส่วนทราบว่าเกือบทั้งหมด
ของทรัพยากรที่เราใช้ในส่วน เป็นที่เปิดเผยต่อสาธารณชนที่ CS50
การศึกษาที่ URL นี้ที่นี่
ดังนั้นถ้าคุณเคยต้องการที่จะตรวจสอบอีกครั้ง วัสดุจากส่วนหรืออ่านไปข้างหน้า
หรือคุณไม่สามารถทำให้มันเป็นสัปดาห์ที่บาง ตระหนักดีว่าสไลด์ตัวอย่าง
และปัญหาที่เกิดขึ้นและคำจำกัดความ และอื่น ๆ ทั้งหมดที่มีเช่นกัน
>> เวลาทำงานกลับมาในวันนี้ และวันพรุ่งนี้และวันพุธ
และวันพฤหัสบดีการตรวจสอบของหลักสูตร เว็บไซต์สำหรับตารางเวลา
>> และยังเปิดตัวในขณะนี้ วันนี้เป็นวัน CS50 พูดคุย
ดังนั้นถ้าและเมื่อคุณมีคำถามสำหรับ แต่ละอื่น ๆ หรือสำหรับพนักงานที่แน่นอนของ
และมักจะทำงาน ชุดเกี่ยวกับปัญหาบางอย่าง
รู้ว่าคุณไม่จำเป็นต้อง ต้องหันไปของมนุษย์ต่อไปที่คุณ
ถ้าไม่มีใครมีคุณสามารถ ถึงออกมาให้เราและเพื่อนร่วมชั้น
ออนไลน์ผ่าน CS50 พูดคุย
ดังนั้นนี้เป็นความคิดเห็น กระดานสำหรับการเรียนการสอน
และตระหนักดีว่านี้ อาจจะเป็นสิ่งที่ดีที่สุด
วางที่จะเริ่มต้นเมื่อคุณมี คำถามเมื่อนอกเวลาทำการ
โดยเฉพาะอย่างยิ่ง
>> อาหารกลางวันจะเริ่มขึ้นในสัปดาห์นี้ด้วย
ที่ไฟและน้ำแข็ง [ไม่ได้ยิน] ในนิวเฮเวน
ลองดูที่หลักสูตรที่ เว็บไซต์เพื่อที่จะตอบรับคำเชิญ
มาก่อนแรกที่ให้บริการสำหรับ
ถ้าคุณไม่ได้รับในสัปดาห์นี้ เราจะทำสิ่งเหล่านี้ส่วนใหญ่ทุกวันศุกร์
ในระหว่างระยะเวลา
>> ตกลงและตอนนี้คำว่าการจัดลำดับเกี่ยวกับ
โดยเฉพาะอย่างยิ่งในขณะที่เราเข้าสู่ปัญหา ตั้งหนึ่งซึ่งจะออกในสัปดาห์นี้
และปัญหาที่เกิดขึ้นตั้งสองและหลังจากนั้น
เราจะไปเกี่ยวกับการประเมินชุด P วิธี และการประเมินผลที่มีคุณภาพนั้น?
ดังนั้นจึงเป็นสี่แกนที่เราใช้ในการ CS50 และพวกเขากำลังสี่เหล่านี้ที่นี่
>> ขอบเขตที่จับอยู่กับตัวเลข พื้นฐานเพียงเท่าใดชุดพี
คุณจะแก้ไขปัญหา
มันสอดคล้องกับประมาณ ความพยายามและมันเป็นวิธีการของเราในการจับภาพ
คุณไม่ลองครึ่ง P การตั้งค่าทั้งหมดของชุดพี
นี้เป็นหนึ่งง่ายต่อการได้รับที่สมบูรณ์แบบ คะแนนในถ้าคุณทำจริง
พยายามทุกแง่มุมของการตั้งค่า P ​​ทุก
ดังนั้นเก็บที่ในใจ
>> ความถูกต้องเป็นสิ่งที่
ทำงานรหัสของคุณเป็นสเปค และเป็นวิธีแก้ปัญหาตัวอย่างพนักงาน '
ชี้ให้เห็นว่ารหัสของคุณ ควรในความเป็นจริงการทำงาน
ตรวจสอบ 50 ถ​​้าคุณยังไม่เคยเจอมัน ยังอยู่ใน P ตั้งหนึ่งเปค
และจะโดยทั่วไป ให้คุณใช่ / ไม่ใช่คำตอบ
เป็นไปได้ว่ารหัสของคุณถูกต้อง
อย่างน้อยที่สุดเท่าที่เราจะ ในการประเมินนั้นอยู่บนพื้นฐานของการทดสอบ
ที่เราเรียกใช้โปรแกรมที่อยู่ภายใน
>> การออกแบบเป็นส่วนตัวมากขึ้น
นี่คือวิธีที่เขียนได้ดีเป็นรหัสของคุณ
และนี่คือสิ่งที่ คุณจะได้รับดีกว่าที่เมื่อเวลาผ่านไป
และมันเป็นสิ่งที่เราจะ ให้ข้อเสนอแนะในเชิงคุณภาพมากขึ้น
โดยการออกแบบและฉันอาจ หมายความว่าอีกไม่นานคุณ
อาจถูกล่อลวงในบาง P การตั้งค่าที่จะทำบางสิ่งบางอย่าง loopingly,
แต่อาจจะมีสามหรือสี่หรือ ห้าห่วงซ้อนกันก่อนหรือในขณะที่ซ้อนกัน
ลูป
ซึ่งโดยทั่วไปควร เริ่มต้นที่จะทำให้คุณประจบประแจง
และโดยทั่วไปจะเป็น การพิจารณาการออกแบบที่ไม่ดี
และคุณจะเริ่มเห็นในชั้นเรียนและ จากระดับวิธีการที่ดีในการทำสิ่ง
วิธีที่ดีในการทำสิ่งที่ ทั้งหมดอาจจะถูกต้อง แต่ไม่ได้
จำเป็นต้องออกแบบมาอย่างดี
เช่นเดียวกับการเขียนเรียงความ
คุณอาจจะสามารถที่จะนำคำพูดบน หน้าหลักไวยากรณ์ที่ถูกต้อง
แต่การเขียนเรียงความหรือ วิทยานิพนธ์พวกเขาอยู่ในเป็นเพียง
สมบูรณ์ไม่ต่อเนื่องกันหรือ unpersuasive
และอื่น ๆ ที่อาจจะมีในแบบอะนาล็อกที่ เขียนโลกของการออกแบบดีหรือดี
>> และรูปแบบก็เป็นอัตนัยอย่างเป็นธรรม
แต่อย่างน้อยเราคาดว่าสอดคล้อง
นี่คือวิธีที่สวยเป็นรหัสของคุณ
สิ่งที่มีการเยื้องอย่าง?
เป็นตัวแปรชื่อของคุณได้ดี / มีทั้งหมด วงเล็บและวงเล็บปีกกาของคุณ
สอดคล้องกับที่พวกเขาควรจะเป็นอย่างไร
เราจะมีคู่มือสไตล์ CS50 เป็น ชุดปัญหาจะชี้ให้คุณที่
ผู้ที่มีความสะดวกสบายมากขึ้น ยินดีที่จะหลงทางจากที่
ตราบใดที่คุณได้ด้วยตนเองที่สอดคล้องกัน
และนี่ก็เป็นบทเรียน เราจะเสริมในส่วน
ดังนั้นถ้าทั้งหมดนี้เป็นเพียงเล็กน้อย ได้อย่างรวดเร็วและตระหนักถึงการตั้งค่า P ​​และส่วน
จะเข้าสู่ความลึกมากขึ้นก่อนที่จะยาว
>> แต่โดยทั่วไปเรามี ไม่กี่ถังมากสำหรับ CS50
คะแนนโดยทั่วไปจะมีโย ของ 1-3 หรือ 1-5
เรา literally-- และผมก็ไม่สามารถพูดได้ นี้พอในสัปดาห์แรก
สามเป็นสิ่งที่ดี
ดังนั้นแม้ว่าใช่สาม ห้าปกติท​​างคณิตศาสตร์
อาจจะเป็นร้อยละ 60 หรือเหมือน D ลบ
สามคือในความเป็นจริงที่ดี
และในความเป็นจริงที่เราคาดหวัง นักเรียนส่วนใหญ่ในชั้นเรียน
ที่จะเริ่มต้นระยะที่อยู่รอบ ๆ เจ้าตัวและสามและสี่
อาจจะไม่ได้ห้าจำนวนมาก
ไม่ได้หลายคนเกินไป
แต่โดยทั่วไปจะเริ่มต้นใน จุดหวานว่าในโค้ง
เพื่อให้เวลาผ่านไปเรื่อย, มีจริงห้องสำหรับ
และโอกาสสำหรับความก้าวหน้าบน
ดังนั้นโปรดอย่าถือเอาสามกับ 60%
มันเป็นนามธรรมมากขึ้นกว่าที่
สูตรที่เราคำนวณ เกรดจะมีน้ำหนักดังต่อไปนี้
ความถูกต้องที่มีค่ามากที่สุด
การออกแบบที่มีค่าน้อย
สไตล์ที่มีค่าน้อย
และนี่โดยทั่วไป จับระยะเวลาที่
ที่จะเข้าสู่การได้รับในแต่ละ ของแกนเหล่านี้เพียงขวา
สไตล์เป็นเรื่องง่ายสุด ควรจะรวดเร็วสุด
แต่มันก็เป็นนิสัยง่าย ขี้เกียจที่จะได้รับเกี่ยวกับ
ความถูกต้องอาจใช้เวลา คุณใช้เวลาส่วนใหญ่
ไล่ลงมาอาจผิดพลาดบางอย่าง ใช้เวลาที่ชั่วโมงพิเศษหรือมากกว่า
และเพื่อให้คะแนน ในที่สุดที่จับ
ดังนั้นตอนนี้เป็นคำที่รุนแรงมากขึ้น
ตั้งแต่ CS50 มี ความแตกต่างที่ดีขึ้น
หรือแย่ลงของการเป็น บางทีอาจจะดีกว่าที่คุ้นเคย
กับปัญหาของการศึกษา ความซื่อสัตย์สุจริตมากที่สุดกว่าที่อื่น ๆ แน่นอน
และแน่นอนมันเป็นความรู้ของฉันว่า เราส่งนักเรียนโชคไม่ดี
เพื่อวัตถุประสงค์ทางวินัย ทุกปีเป็นผล ดังนั้น
ในความสนใจของเต็มรูปแบบ การเปิดเผยข้อมูลให้มาพูดคุยสั้น ๆ
เกี่ยวกับสิ่งที่เกิดขึ้นใน CS50 และสิ่งที่คุณ สามารถทำได้และสิ่งที่คุณสามารถมีสติในการ
>> ดังนั้นที่นี่มาตั้งแต่ปี 2007 เมื่อ ฉันได้รับการถ่ายทอดการเรียนการสอน
เป็นจำนวนคดีที่คณะกรรมการโฆษณา
โฆษณาคณะกรรมการวินัยของฮาร์วาร์ ร่างกายหรือตอนนี้เกียรติยศที่ปรึกษา
กรณีที่จะเรียกเมื่อ นักเรียนทำสิ่งที่แน่นอนของ
หลักสูตรที่ไม่สมควรพิจารณา
ไม่มีรูปแบบที่เป็นจริง ที่นี่ผมจะบอกว่า
มันมีความผันผวนมากกว่า ปี แต่โดยทั่วไป
นี้คือจำนวนของ กรณีที่มีการเรียก
จำนวนของนักเรียน ที่มีส่วนร่วม?
มันแตกต่างกันมากเกินไป
โดยปกติปีที่ผ่านมา ตัวอย่างเช่น 29 นักศึกษาที่ Harvard
ได้รับการโฆษณาขึ้นเพื่อที่จะพูด
29 ของพวกเขานักเรียนปัจจุบัน พวกเขาทั้งสองนักเรียนก่อน
ที่ได้ทำงานร่วมกัน ในบางวิธีที่ไม่ดี
และแล้วในแง่ของ เปอร์เซ็นต์ก็มักจะประมาณ 3%
ของชั้นที่โชคไม่ดี ทำให้เหล่านี้ชนิดของการตัดสินใจ
>> ดังนั้นปีที่ผ่านมามันเป็น 3.5% ของร่างกายของนักเรียน CS50
นั่นก็คือการโฆษณาขึ้นเพื่อที่จะพูด
>> ดังนั้นสิ่งที่ไม่ทั้งหมดนี้หมายความว่าอย่างไร
และสิ่งที่เราทำจริงทำอย่างไร
>> ดังนั้นสำหรับการเปิดเผยข้อมูลเต็มรูปแบบเรา อย่างเช่นนักวิทยาศาสตร์คอมพิวเตอร์
มีเครื่องมือซอฟต์แวร์ที่จำหน่ายของเรา และมันเป็นเรื่องง่ายมากสำหรับเราในความเป็นธรรม
ที่เพื่อนร่วมชั้นอื่น ๆ ที่ไม่ได้เป็น ข้ามเส้นเหล่านี้จะข้ามเปรียบเทียบ
ส่งทุกปีนี้กับทุกคน ส่งสำหรับแปดปีที่ผ่านมา
ซอฟแวร์ไม่นี้
และในที่สุดก็ ตาของมนุษย์ที่จะตัดสินใจ
หรือไม่ที่จะดูบาง เรื่องพิจารณาพิพากษาต่อไป
แต่จะช่วยให้ซอฟแวร์อย่างแน่นอน
และนี้ตรงไปตรงมาคือเหตุผลที่ฉันคิดว่า เรามีจำนวนมากดังกล่าวใน CS50
มันไม่ได้เป็นเพราะ CS50 นักเรียนหรือนักศึกษาลูกค้ามากขึ้น
โดยทั่วไปจะซื่อสัตย์ใด ๆ น้อย กว่านักเรียนอื่น ๆ
มันเป็นเพียงแค่เรามี เครื่องมือและเทคนิค
ที่จะใช้ผ่านครั้งแรกนี้
>> แต่ที่เราทำเก็บตา ในทุกสิ่งเหล่านี้
ได้เป็นอย่างดีอีกครั้งในความสนใจของ ตระหนักถึงการทำงานที่ถูกใส่
โดยส่วนใหญ่สุดของชั้นเรียน
และนโยบายการเรียนการสอนของ ความซื่อสัตย์ทางวิชาการ
แม้ว่าจะเป็นพวงของวรรค ยาวกับพวงของกระสุน
ที่มีความหวังว่าจะสามารถอ่านได้มากก็ จริงๆไม่ต้มลงไปจะเหมาะสม
และการปกครองที่ดีที่สุดของหัวแม่มือที่ เรานำเสนอภายในหลักสูตร
นี้เป็นสาระสำคัญ ของงานที่ทุกท่าน
ส่งไปยังหลักสูตรนี้จะต้องเป็นของคุณเอง
และแน่นอนในเกือบทุกคน กรณีที่เรียกว่าสำหรับการดำเนินการทางวินัย
มันเป็นเพราะนักเรียนบางช่วงปลายหนึ่ง คืนมักจะหันรหัสของเขาหรือเธอ
มากกว่าที่จะตรงไปตรงมาเพื่อนร่วมชั้น, จากนั้นก็นำมาใช้มัน
ครบถ้วนหรือ อย่างมีนัยสำคัญดังกล่าว
>> แต่จริงๆนี้ OK
และแน่นอนที่สำนักงาน ชั่วโมงบิลกระดาษ
คุณได้รับการส่งมอบถ้าคุณมาจากสำนักงาน ชั่วโมงสัปดาห์ที่ผ่านมาสนับสนุนให้มากที่สุดเท่าที่
คุณอย่างแน่นอน ยินดีและเป็นกำลังใจให้
เพื่อหารือเกี่ยวกับชุดปัญหากับเพื่อนร่วมชั้น
เพื่อช่วยให้แต่ละอื่น ๆ เมื่อสะดุด
แต่โดยทั่วไปกฎของหัวแม่มือควร เป็นแบบนี้ "เมื่อคุณจะขอความช่วยเหลือ
คุณอาจแสดงรหัสของคุณกับคนอื่น ๆ แต่คุณอาจไม่ดูพวกเขา. "
ดังนั้นในคำอื่น ๆ ถ้าฉัน ดิ้นรนกับชุด P บาง
และฉันนั่งอยู่ที่นั่นใน ห้องโถงรับประทานอาหารหรือในห้องสมุด
หรือในห้องเรียน พยายามที่จะหาข้อผิดพลาดบางอย่าง
แน่นอนฉันสามารถแสดง รหัสของฉันบนหน้าจอของฉัน
เพื่อคนนั่งต่อไป กับผมอย่างแน่นอนกับพนักงาน
แต่ยังมีเพื่อนร่วมชั้น
แต่ถ้าวิธีการแก้ปัญหาที่ เพื่อนร่วมชั้นของฉันมีคือโอ้
นี่เพียงแค่ใช้เวลาดูสิ่งที่ ฉันไม่ข้ามเส้น
>> และฉันจะกล้าบอกว่าโดยทั่วไป เป็นสิ่งที่เหมาะสมสำหรับคนส่วนใหญ่
ได้อย่างง่ายดายมากจุดแนว
และเพื่อให้ดูหลักสูตร รายละเอียดเพิ่มเติม
และตอนนี้อีกคนหนึ่งที่ ด้านความขัดแย้ง
ของหลักสูตร CS50 ที่ฉันคิดว่าฉัน จะพูดถึงในข้อสรุปที่นี่
เป็นข้อเสียใจที่เรียกว่า
ดังนั้นนี่คือทั้งหมดที่พิมพ์ดี
แต่โดยทั่วไปที่เราได้เห็น ที่ผ่านมา 8 ปีบวก
ที่จริงเกือบทั้งหมดของ CS50 ของ กรณีของการทุจริตทางวิชาการ
ได้รับผลมาจากการที่ไม่ดีเพียง การตัดสินใจในช่วงดึก
ผลของความเครียดผล การขาดของการรับประทานอาหาร, ขาดการนอนหลับ
มากเกินไปชุด P, มากเกินไป วันครบกำหนดภาระผูกพันมากเกินไป
สร้างความเครียดขึ้นมาใน 2:00, 03:00 AM, 04:00 กับเส้นตาย looming
นักเรียนส่วนใหญ่ในกรณีเหล่านี้ ได้ทำเพียงแค่การตัดสินใจที่ไม่ดี
ที่พวกเขาได้เป็นอย่างดีอาจจะเสียใจ เช้าวันถัดไปหากไม่ได้นาทีต่อมา
แต่จนถึงปีที่ผ่านมาไม่มี วาล์วปล่อยให้นักเรียนเหล่านี้สามารถทำได้
จริงเปิดขึ้นจริงที่อยู่ หัวปัญหาได้โดยไม่ต้องกลัวจะถูก
booted จากวิทยาลัยทั้งหมด
>> และแน่นอนเราแนะนำ ข้อเสียใจนี้เมื่อปีที่แล้ว
ที่บอกว่าถ้าภายใน 72 ชั่วโมงสามวัน
ของข้ามเส้นบาง ที่กำหนดไว้ในหลักสูตร
คุณมาข้างหน้าให้เป็นหนึ่งในหลักสูตรของ หัวและเราจะมีการสนทนาเกี่ยวกับเรื่องนี้
นอกจากนี้ยังมีบาง ผลที่ตรงกันข้ามกับสิ่งที่
รับการรายงานไปในทางตรงกันข้าม
ยังคงมีผลบางอย่างที่ คือการดำเนินการโดยการเรียนการสอน
โดยทั่วไป zeroing ชุด P หรือการกระทำบางอย่างอื่น ๆ
แต่เราจะแน่นอน จัดการมันเองและไม่ได้
ดูมันที่สูงขึ้นเป็นผล อาจจะมีมากที่รุนแรงมากขึ้น
และแน่นอนที่จะแบ่งปันสิ่งที่เกิดขึ้น เมื่อปีที่แล้วในช่วงแปดปีที่ผ่านมาและตอนนี้
เก้าปีของการเรียนการสอนหลักสูตรนี้ และหลังการ tinkering กับลูกบิดต่างๆ
เปลี่ยนหน้าปัดต่างๆที่ผ่านมา หลายปีที่ผ่านมาความซื่อสัตย์ทางวิชาการ
และเห็นต่อข้อมูลไม่ชัดเจน ผลกระทบแม้สุนทรพจน์เช่นนี้
นี่คือมือลงสิ่งที่ดีที่สุด เราได้แนะนำ pedagogically
ในรอบแปดปีพร้อม เส้นเหล่านี้ใน CS50
>> 19 นักเรียนมาข้างหน้า ตามข้อนี้เมื่อปี
เราเอาการกระทำไม่ เจ็ดของนักเรียนเหล่านั้น
ระบุว่าพวกเขา กังวลโดยไม่จำเป็น
พวกเขาไม่ได้ในความเป็นจริง ข้ามเส้น แต่มัน
ได้รับการสนทนาที่ดีที่จะมีกระนั้น
เรา zeroed 11 ของคะแนน ที่ถูกส่งมา
และหนึ่งในกรณีที่เราถาม นักเรียนที่จะทำปัญหาตั้ง
แต่ที่น่าสนใจมากขึ้น ตรงไปตรงมากับสิ่งเหล่านี้ 19 แชท,
ซึ่งเป็นวิธีที่มากกว่าฉัน คาดว่าจะมีแต่ละของพวกเขา
10 นาทีบางที ชั่วโมงนานนอกจากนี้ยังนำ
จะสว่างจำนวนของปัญหาเกี่ยวกับ ปัญหาครอบครัวปัญหาเพื่อน
ปัญหาสุขภาพจิต ที่เรามีส่วนร่วมแล้ว
ด้วยพรของนักเรียนที่มีถิ่นที่อยู่ คณบดีหรือเพื่อนหรือหมายเลขอื่น ๆ
ทรัพยากรสนับสนุน
ดังนั้นว่านี่คือไกลโดยหนึ่ง ของการใช้งานที่ดีที่สุดของเวลาของเรา
และเป็นหนึ่งในการแทรกแซงที่ดีที่สุด
>> กับที่กล่าวว่ามันไม่มี ข้อมูลเกี่ยวกับอัตราการตรวจสอบ
ของความไม่ซื่อสัตย์ทางวิชาการมากขึ้นโดยทั่วไป
และผมกล้าพูดว่าเซตนี้ ของนักศึกษาชั้นปีที่ผ่านมา
เป็นกลุ่มผู้เข้าชมที่เรา ก่อนหน้านี้ไม่เคยระบุก่อน
และไม่เคยเชื่อมต่อกับก่อน
และอื่น ๆ เหล่านี้ เรื่องราวความสำเร็จที่ยอดเยี่ยม
ถึงแม้ว่าพวกเขาถูกนำตัวไปแสง ในเวลาน้อยกว่าสถานการณ์ที่ดีที่สุด
ดังนั้นเก็บไว้ในใจ ขณะที่คุณทำอาจจะ
บางคนตัดสินใจไม่ดี ตัวเองในช่วงดึก
ว่ามีการขอความช่วยเหลือมานาน เป็นนักศึกษาอยู่ในสถานการณ์ที่
เป็นเจ้าของและมาข้างหน้าเพื่อที่เราจะสามารถทำได้ มีชนิดของการแชทและจัดการกับมัน
ในทางที่การศึกษาแล้ว เราสามารถวางไว้ข้างหลังพวกเราในวันถัดไป
>> โดยไม่ต้องกังวลใจต่อให้ใช้ ขอบออกจากการสนทนานี้
เหตุผลที่ลูกสุนัขมีขึ้นมี เพียงเพื่อทำลายน้ำแข็งสักครู่
และโชคร้ายที่พวกเขากำลังนอนหลับทั้งหมด แต่สิ่งที่ควรจะเกิดขึ้นที่นี่
ทุกคนควร จะกลัวและชนิดของการผ่อนคลาย
หลังจากนั้นการสนทนาหนักมาก
แต่เห็นได้ชัดผมใส่ ลูกสุนัขที่จะนอนหลับ
แต่ถ้าคุณไป CS50 ของ ลูกสุนัขเฉือนเว็บไซต์
คุณสามารถดูได้ตลอดทั้งวัน
โดยเฉพาะอย่างยิ่งอาจ 02:00 หรือ 03:00 หรือ 04:00 ในเวลากลางคืน
ที่จะเห็นการบรรเทาความเครียดเล็ก ๆ น้อย ๆ มี
เพื่อให้เป็นลูกสุนัขเฉือน
ทั้งหมดขวา
ไม่ได้เป็นเรื่องที่สนุกที่?
ตกลง.
ดังนั้นกลับไปยังคอมพิวเตอร์บาง วิทยาศาสตร์ถ้าฉันอาจ
>> ดังนั้นจำได้ว่าครั้งสุดท้ายที่เราเริ่มต้น มองไม่เพียง แต่ที่หลักซึ่ง
เป็นฟังก์ชั่นเริ่มต้นเมื่อ ธงสีเขียวคลิกเทียบเท่า
แต่เราก็เริ่มในเวลาสั้น ๆ เขียนบางส่วนของฟังก์ชั่นของเราเอง
และป่านนี้ไม่มีฟังก์ชั่นเหล่านี้ ได้รับโดยเฉพาะอย่างยิ่งใหญ่หรือเนื้อ
คุณจะได้รับในที่มีขนาดใหญ่ ฟังก์ชั่นอาจ P ชุดที่ 2, P ตั้ง 3
แน่นอน P ตั้ง 4 เป็นต้นไป
ตอนนี้ส่วนใหญ่ของโปรแกรมของคุณ หากไม่ได้ทั้งหมดของพวกเขาอย่างแน่นอนสำหรับ P
ชุดที่ 1 สามารถทำได้ทั้งหมดในหลัก
ถ้าโปรแกรมของคุณเป็นเพียง ห้าเส้น 10 เส้น
แม้กระทั่ง 20 สายยาวได้อย่างสมบูรณ์แบบ เหมาะสมที่จะเขียนมัน
ทั้งหมดในหลักและไม่ได้ที่จะซับซ้อนกว่า รหัสของคุณ แต่สิ่งที่เรากำลังทำในวันนี้
และเป็นต้นไปพยายามที่จะยัง แนะนำเทคนิคการออกแบบที่ดี
เพื่อให้เป็นรหัสของคุณได้รับมากขึ้น ที่ซับซ้อนและเป็นปัญหาที่เกิดขึ้น
คุณต้องการที่จะแก้ปัญหาได้ยากขึ้นและ ที่น่าสนใจมากกว่าที่คุณมีการเรียงลำดับของ
เครื่องมือในกล่องเครื่องมือของคุณที่ การออกแบบที่ดีที่จะแก้ปัญหาเหล​​่านั้น
>> ดังนั้นลองมาดูอย่างรวดเร็วกลับไปที่ โปรแกรมจากสัปดาห์ที่ผ่านมาของฉันนี้ซึ่ง
ฟังก์ชั่นเป็นจุดศูนย์ซีและ สังเกตเห็นว่าค่อนข้างง่าย
มันมีลักษณะเช่นนี้กับสอง ฟังก์ชั่นหลักและชื่อพิมพ์
และคิดกลับหรือบางทีอาจจะ วิศวกรรมย้อนกลับในวันนี้
สิ่งที่เป็นแรงจูงใจสำหรับการแนะนำ ฟังก์ชั่นในสาย 28 ที่เรียกว่า
พิมพ์ชื่อ?
หรือสิ่งที่เป็นตัวอย่างของการนี​​้ใน แง่ของหลักการหรือประเด็นที่
ถ้าคุณจะ
บางพึมพำ
อะไร?
>> ใช่สลายตัวฟังก์ชั่นอื่น ๆ เป็นชนิดของวิธีที่จินตนาการของว่า
ย่อยสลายโปรแกรมของคุณ เข้าไปในส่วนที่เป็นส่วนประกอบของ
และจากนั้นใช้ชิ้นส่วนเหล่านั้น การประกอบทั้งหมด
ดังนั้นที่มากเกินไปเป็นเพียงชนิด ของคำหนึ่งแล้ว
แต่อาจจะเป็นแม้กระทั่ง ตัวอย่างที่ดีของบางสิ่งบางอย่าง
เรียกว่าเพียงแค่สิ่งที่เป็นนามธรรม
ใช่มั้ย?
นามธรรมเป็นไปได้อย่างใดอย่างหนึ่ง ในรูปแบบที่เกิดขึ้นใน CS50
และวิทยาการคอมพิวเตอร์ มากขึ้นโดยทั่วไปเนื่องจากเป็น
เทคนิคที่คุณสามารถแก้ ปัญหาที่เกิดขึ้นได้อย่างมีประสิทธิภาพมากขึ้นเพราะคุณ
สามารถเขียนการแก้ปัญหามากขึ้น สังหรณ์ใจและในทางที่เครื่องชั่งน้ำหนัก
และเป็นที่เข้าใจโดยคนอื่น ๆ
ผมหมายถึงอะไรโดยที่?
>> ดังนั้นเนื้อหามันเป็นมากขึ้นที่สามารถอ่านได้ จะมองไปที่โปรแกรมเช่นนี้
ซุปเปอร์สั้นแม้ว่ามันจะเป็น
เมื่อคุณเห็นในบรรทัดที่ 22 ว่ามี ฟังก์ชั่นที่เรียกว่าชื่อพิมพ์
ชื่อที่อยู่คนเดียวกล่าวว่าสิ่งที่มันไม่
ฟังก์ชั่นที่เห็นได้ชัดว่าจะใช้เวลา การป้อนข้อมูลระหว่างวงเล็บของตน
และเห็นได้ชัดไม่บางสิ่งบางอย่าง สันนิษฐานพิมพ์ชื่อ
ดังนั้นแม้ว่าเรา อย่างที่อาจมี
ทำในสิ่งที่เราทำในสัปดาห์ที่ผ่านมาซึ่งเป็น เพียงแค่ใช้เวลานี้สายที่เกิดขึ้นจริงของรหัส
ได้รับการกำจัดนี้และได้รับการ กำจัดนี้ทั้งหมดเข้าด้วยกัน
เราเรียงลำดับของการแยกออกไป ความคิดในการพิมพ์ชื่อ
ผมไม่สนใจว่าคุณกำลังใช้ความละเอียดในการพิมพ์
ฉันไม่สนใจถ้าคุณมี ร้อยละ S และเครื่องหมายเหล่านี้เอ็น
เป็นรายละเอียดที่เป็นความลับอย่างไม่น่าเชื่อ
สิ่งที่ฉันจะดูแลเกี่ยวกับเป็น โปรแกรมเมอร์พิมพ์ชื่อ
และเพื่อสิ่งที่ดีกว่าที่จะทำ กว่าโดยการเรียกฟังก์ชั่นการพิมพ์ชื่อหรือไม่?
และอื่น ๆ ที่เป็นหนึ่งในแรงจูงใจ สำหรับการทำบางสิ่งบางอย่างเช่นนี้
ทำรหัสที่อ่านได้มากขึ้น นำมาใช้ใหม่และยังบรรยายตัวเอง
ตอนนี้ขอใช้เวลาดู ที่อีกตัวอย่างหนึ่ง
ซึ่งเป็นฟังก์ชั่นหนึ่ง ซึ่งเรามีมากกว่าที่นี่
>> ดังนั้นหนึ่งนี้อาจจะมากยิ่งขึ้น ที่น่าสนใจเพราะในกรณีนี้
ฉันไม่ต้องการที่จะเพียงแค่ได้รับเป็น int
ฉันต้องการที่จะได้รับ int บวก
และมันจะเปิดออกที่จะได้รับในเชิงบวก int ที่คุณต้องทำพวงของ legwork
ใช่มั้ย?
มันไม่ได้เป็นที่เรียบง่ายหนึ่งบรรทัด เรียกเหมือนเป็นชื่อพิมพ์
ซึ่งเป็นที่ยอมรับน่าสนใจน้อย
>> เพื่อให้ได้ int บวก logically-- ผมขอเลื่อนกลับลงไปซ่อนนี้
ที่คุณต้องทำอย่างไร?
เช่นเดียวกับเครื่องมือทั้งหมดที่เรา มีในขณะที่มีการ
สิ่งที่ต้องการความละเอียดการพิมพ์จากมาตรฐาน ห้องสมุดและจากห้องสมุด CS50
เรามีรับ Int และรับ Float, รับลองรับสตริง
แต่เพียงคนเดียว, ชิด, ในขณะนี้คือการได้รับดอกเบี้ย
ดังนั้นถ้าเครื่องมือเดียวที่คุณมี ในกล่องเครื่องมือของคุณจะได้รับ Int,
วิธีการที่เราจะไปเกี่ยวกับการใช้ ให้ได้รับ int บวก?
>> ผู้ชม: สร้างบันทึกและตรวจสอบ ว่าการป้อนข้อมูลที่พวกเขาให้
เป็นบวกหรือไม่
>> ลำโพงที่ 1: ที่สมบูรณ์แบบ
ที่แน่นอน
เป็นอีกเครื่องมือหนึ่งที่เรามีในของเรา จากกล่องหรือสองสัปดาห์ที่ผ่านมา
เป็นเพียงการสร้างการวนลูป
ดังนั้นใช่ถ้าเราใช้ในขณะที่ ห่วงหรือต้องทำในขณะที่ห่วงหรือก่อน
วงเราอาจได้รับไป กับใด ๆ ของผู้ที่อยู่ในรูปแบบบางส่วน
เราสามารถใช้ความคิดของการ GET int บวกโดยเพียงแค่ใช้รับ Int,
และจากนั้นก็ให้เรียกมันว่า อีกครั้งและให้รบกวนผู้ใช้
จนกว่าเขาหรือเธอจริง ช่วยให้เรามีสิ่งที่เราต้องการ
>> และดังนั้นตอนนี้ นามธรรมของกระบวนการ
ในการได้รับ int บวก ในการทำงานที่เรียกว่า
รับดอกเบี้ยบวกเพิ่มอีกนิด ที่น่าสนใจเพราะดูที่นี้
เหล่านี้เป็นเช่น 10 บวก บรรทัดของรหัสที่
มีส่วนร่วมในการรับ int บวก และฉันไม่สนใจว่าคุณทำมัน
สิ่งที่ผมสนใจคือการที่คุณ สามารถทำมันได้และเพื่อให้ฉันได้
ซ่อนรายละเอียดทั้งหมดเหล่านี้ที่อยู่เบื้องหลัง ฟังก์ชั่นที่เรียกว่าได้รับในเชิงบวก int ว่า
แน่นอนมีสิ่งที่ต้องทำในขณะที่วงนี้
>> และดูสัปดาห์ที่ผ่านมาสำหรับไวยากรณ์ มี แต่เพียงประกาศ N,
และจะพิมพ์ออก การเรียนการสอนให้กับผู้ใช้
มันเรียกรับ Int และจากนั้นจะตรวจสอบ สภาพนี้อีกครั้งและอีกครั้ง
และอีกครั้งจนกว่าผู้ใช้จะให้ความร่วมมือ
>> ดังนั้นตอนนี้ไม่กี่ตรวจสอบสติ
สำหรับผู้ที่คุ้นเคยอาจจะ กับการเขียนโปรแกรมบางอย่าง
ทำไมยังไม่มีการประกาศว่าทำไมจะสร้าง ยังไม่มีข้อความที่ด้านนอกของสิ่งที่ต้องทำในขณะที่วง?
ทำไมมันจึงเป็นในบรรทัดที่ 29 และไม่ได้ เมื่อวันที่ 33 เหมือนเช่น
>> ผู้ชม: เพ​​ราะเมื่อคุณ ประกาศนอกชนิด
ของมากขึ้น scope-- ขนาดใหญ่
>> ลำโพง 1: ดี
>> ผู้ชม: --and ถ้าคุณประกาศ ภายในวง [ไม่ได้ยิน]
เพราะมันไม่ได้รู้เกี่ยวกับมัน
ลำโพงที่ 1: ว่า
ถ้าฉันสามารถ simplify-- มันเป็นปัญหาของขอบเขต
และขอบเขตหมายถึงบริบท ซึ่งตัวแปรที่มีอยู่หรือสามารถใช้งานได้
และกฎที่ดีของหัวแม่มือที่นี่คือ โดยทั่วไปเมื่อคุณประกาศหรือสร้าง
ตัวแปรคุณสามารถใช้มันไว้ภายใน ที่ใกล้เคียงที่สุดของกอดวงเล็บปีกกา
ดังนั้นสิ่งที่หมายความว่า?
ถ้าฉันแทนยกเลิกและไปกับ บางสิ่งบางอย่างที่ให้ความรู้สึกเรียบง่ายเล็ก ๆ น้อย ๆ
ใช่มั้ย?
>> สาย 32 เพียงแค่รูปลักษณ์ทำความสะอาดเพื่อฉันตอนนี้
ฉันทำสิ่งทั้งที่ ครั้งเดียวแล้วกำหนด
ด้านขวามือด้านซ้ายมือ
ปัญหาที่เกิดขึ้นในขณะนี้ขึ้นอยู่กับ ความหมายของขอบเขตที่
คือการที่ยังไม่มีสามารถนำมาใช้ในสาย วันที่ 31 และ 32 ด้านในของวงนี้
แต่โดยความหมายที่ว่า ก็สามารถนำมาใช้ไม่ได้?
ในบรรทัดที่อะไร?
ใช่
>> ผู้ชม: 35
>> ลำโพง 1: 35
ไม่แน่นอน 35
และยังเป็นที่ที่อื่น?
ผู้ชม: 34
ลำโพง 1: ถึง 34 ปัญหาเพราะมันเป็น
นอกวงเล็บปีกกา
ดังนั้นในความเป็นจริงเรามาดูสิ่งที่เกิดขึ้น
ใช่มั้ย?
นี้อาจดูเหมือนเล็ก ๆ น้อย ๆ ที่ใช้งานง่ายหรืออาจจะไม่ได้
แต่ให้ดูว่า คอมไพเลอร์ได้กล่าวเมื่อ
ที่เราจะไปลงในไดเรกทอรีแหล่งที่มาของวันนี้
ทำให้ฟังก์ชั่นหนึ่ง
โอ้พระเจ้า.
ดีที่สุดผมก็เสร็จ ว่าโดยวิธีการ
ทั้งหมดขวา
และสิ่งที่เป็นปัญหาที่นี่?
ความลับมากที่จะมองไปที่
แต่นี่คือสิ่งที่ฉัน typed-- ทำให้ฟังก์ชั่นหนึ่ง
นี่คือสิ่งที่ทำให้เกิด ที่เป็นจริง
โดยใช้เสียงดังกราวคอมไพเลอร์ กับบางส่วนของธงเหล่านั้น
ที่เราจะได้เห็นอีกครั้งก่อนที่จะยาว
และอีกครั้งมักจะมอง ข้อผิดพลาดที่แรก
เพราะมันก็จะมีซ้อน ผลความหมายในสายอื่น ๆ
>> ดังนั้นสิ่งนี้หมายความว่า ปัญหาคือใน 1.c. ฟังก์ชั่น
มันอยู่บนเส้น 32
และมันก็เป็นที่คอลัมน์หรือตัวอักษรที่ 13
ดังนั้นเมื่อแก้ไขข้อความของคุณที่สามารถ ช่วยให้คุณระบุที่เป็นปัญหา
ดังนั้นถ้าผมเลื่อนขึ้นสิ่งที่เป็นสาย 32?
นั่นเป็นจริงนี้ ที่เน้นอยู่แล้ว
สิทธิ here-- n ตัวแปรที่ไม่ได้ใช้
แต่มันไม่ได้ที่ไม่ได้ใช้
ฉันใช้มัน
แต่คอมไพเลอร์ของสับสนเพราะ มันมีอยู่ภายในขอบเขตนี้
และดังนั้นผมจึงไม่สามารถใช้งานได้ที่นี่
ฉันไม่สามารถใช้งานได้ที่นี่
และคอมไพเลอร์จึง ไม่ได้สนใจว่าฉันพยายาม
มันน่าจะเป็นที่ไม่ได้ใช้ ภายในขอบเขตที่แท้จริงของมัน
>> ดังนั้นเราจึงสามารถขยายขอบเขตด้วยการทำ ว่าสิ่งที่เราเริ่มต้น with-- int n
และถึงแม้ว่ามันไม่ได้ ดูสง่างามบางที
และเรากำลังการสายพิเศษ ที่นี่ตอนนี้ก็อยู่ในขอบเขตทุกที่
ดังนั้นขอลองอีกครั้ง
เพื่อให้การทำงานอย่างใดอย่างหนึ่ง
นีซ
และตอนนี้ถ้าผมถ้าผมใช้ฟังก์ชั่น หนึ่งขอให้เชิงลบที่ 10
เชิงลบ 1, 0, 1, และมันแน่นอนทำงาน
>> ดังนั้นจึงมีวิธีอื่นที่นี่
คุณรู้อะไรไหม?
เกิดอะไรขึ้นถ้าผมกำลังต่อสู้กับเรื่องนี้?
ผมไม่ทราบว่า n ที่ควรจะไป
คุณรู้อะไรไหม?
ฉันแค่ไปที่จะนำมันทั้งหมด วิธีที่ด้านบนของไฟล์ของฉันที่นี่
สิ่งนี้จะทำคุณคิดว่า?
ใช่?
>> ผู้ชม: [ไม่ได้ยิน]
ลำโพง 1: ใช่
ดังนั้นผมจึงได้ทำมันทั่วโลกเพื่อที่จะพูด
หากคุณมีตัวแปรที่อยู่นอก ฟังก์ชั่นทั้งหมดของคุณที่จะได้รับอนุญาต
และรหัสควรรวบรวมและ n ในขณะนี้จะสามารถเข้าถึงได้ไม่เพียง แต่ในการรับ
int บวก แต่ยังอยู่ใน main-- ที่ เป็นที่น่าเป็นห่วงเล็ก ๆ น้อย ๆ เพราะมี
แล้ว n ในหลักเพื่อให้มากขึ้น ว่าในเวลาเพียง moment--
แต่นี้จะได้รับการพิจารณาการออกแบบที่ไม่ดี
ทั้งหมดขวา
หากคุณมีรีสอร์ทเพื่อ สิ่งที่ต้องการโอ้ฉันจะ
เพียงแค่ใส่มันขึ้นมาที่นี่เพราะ รหัสที่ดูเหมือนว่าจะรวบรวม
โดยทั่วไปไม่ได้เป็นวิธีที่ดีที่สุด
แต่คุณต้องการที่จะเลือก ขอบเขตที่เป็นไปได้ที่แคบ
สำหรับตัวแปรของคุณซึ่งจะหมายถึง ไปกับการออกแบบครั้งแรกของเราที่
ถูกต้องที่นี่
>> ขณะนี้เป็นกันถ้าคุณไม่ได้ เหมือนกันชื่อตัวแปรที่นี่
ทางคจะจัดการ this-- แม้เรื่องนี้จะไม่เกิดขึ้นมากเกินไป often--
คือว่านี้ยังคงเป็น สมบูรณ์ดีที่นี่
แต่ความหมายของ n ในสายนี้ 22 จะเงาหนึ่งของโลก
ดังนั้นหนึ่งนี้จะทำงานภายใน หลักและทั่วโลกหนึ่ง
จริงจะใช้เมื่อคุณอยู่ใน ได้รับในเชิงบวก int แต่เพิ่มเติมว่า
อีกครั้งหนึ่ง แต่เพียง สำหรับผู้ที่อยากรู้อยากเห็น
>> ดังนั้นในระยะสั้นเราแก้ไขปัญหานี้ที่นี่
ตอนนี้ขอแซวออกจากกันสองชิ้นอื่น ๆ ก่อนที่เราจะมองไปที่หนึ่งบรรทัดสุดท้ายของรหัส
ในโปรแกรมนี้
รับ int บวก
ที่ด้านซ้ายมือของ คำที่เป็น int คำ
อะไรที่มีความหมายว่าคุณคิดว่า?
ป่านนี้เราได้เห็นส่วนใหญ่เป็นโมฆะ
ใช่?
>> ผู้ชม: มันเป็นประเภทของ ตัวแปรที่คุณถามเกี่ยวกับ
>> ลำโพง 1: ใช่มันเป็นประเภทของการให้ฉัน ไม่พูดตัวแปร แต่ชนิดของค่า
ที่ฉันถามกลับ
และแน่นอนว่าเป็น ที่ใช้งานง่ายที่นี่หวังว่า
ใช่มั้ย?
ถ้าคุณต้องการที่จะได้รับ int บวกก็คือสิ่งที่คุณ
ต้องการ function-- เหมือนของเรา อาสาสมัครจากสัปดาห์ที่ผ่านมา
ที่จะถึงมือคุณกลับชิ้น ของกระดาษที่มี int กับมันอยู่แล้ว?
และเพื่อให้เราได้ระบุไว้ว่า ประเภทการกลับมาของฟังก์ชั่นนี้ที่เรียกว่า
จะได้รับ int บวก
ถ้าเราไม่ได้ต้องการให้ กลับสิ่งที่คุณบอกว่าเป็นโมฆะ
หากคุณต้องการที่จะกลับมา สตริงที่คุณพูดสตริง
หากคุณต้องการที่จะกลับมา ลอยคุณพูดลอย
แต่เพียงคนเดียวที่ใช้ที่นี่ เหตุผลเพราะผมใช้รับ int,
แม้ว่าฉัน จำกัด ไปยัง ค่าบวกคือการกลับเป็น int
>> ดังนั้นตรงกันข้ามมันหมายความว่าอะไร ว่ามีช่องว่างในวงเล็บหรือไม่?
ทำอะไรวงเล็บ โดยทั่วไปกำหนด?
ใช่?
>> ผู้ชม: มันมีความหมายของฟังก์ชั่น ไม่ได้รับก็จริง
>> ลำโพงที่ 1: มันมีความหมายของฟังก์ชั่น ไม่จริงได้รับสิ่งที่?
>> ผู้ชม: อินพุต
>> ลำโพงที่ 1: การป้อนข้อมูลอันใด ๆ
ดังนั้นแน่นอนถ้าวงเล็บ ที่นี่คุณระบุเป็นโมฆะ
ก็หมายความว่าฉันไม่ต้องการป้อนข้อมูลใด ๆ
ฉันจะจัดการกับปัญหาตัวเอง
และแน่นอนคุณจะได้ไม่ต้อง บอกได้อะไร int บวก
คุณเพียงแค่บอกว่าได้รับ int บวกและว่า ฟังก์ชั่นจะออกไปและทำสิ่งที่ตน
>> แต่มีการเคล็ดลับเล็ก ๆ น้อย ๆ ที่ฉันได้ รับการเล่นที่นี่ตลอดเวลานี้
เพื่อให้แน่ใจว่ารหัสนี้จะรวบรวม
ขอให้สังเกตว่า int-- ได้รับในเชิงบวก int void-- อยู่บนเส้น 27
แต่ด้วยเหตุผลบางอย่างที่ดูเหมือนจะแปลก ก็ยังขึ้นที่นี่ในบรรทัดที่ 16
และเพียงแค่การวัดที่ดีฉันจะทำซ้ำ นี้จึงเป็นสิ่งที่เหมือนกันอย่างสมบูรณ์แบบ
และฉันได้กล่าวกับต้นแบบ เล็ก ๆ น้อย ๆ ความคิดเห็นหนึ่งบรรทัด
ที่เกิดขึ้นถ้าฉันจะลบสิ่งนั้นและ ตอนนี้วิ่งให้ฟังก์ชั่น 1, ใส่
ขออภัย
ประเดี๋ยวก่อน
ในกรณีที่แท็บของฉัน?
หือ?
รอ.
ทำให้ฟังก์ชั่น 1
เราจะไปที่นั่น.
ตกลง.
ไม่ได้บันทึกไว้อย่างถูกต้อง
ดังนั้นผมคิดว่ามีน้อย ข้อผิดพลาดที่นี่ที่ฉันไม่ได้
เห็นชื่อแท็บในขณะนี้
ดังนั้นสิ่งที่เกิดขึ้นที่นี่?
ประกาศโดยนัยของฟังก์ชั่น ได้รับในเชิงบวกคือ int ไม่ถูกต้องใน C99
ดังนั้นอีกครั้งทำให้เกิดความสับสน
ดังนั้นสิ่งที่บ่งบอกถึงนี้หรือไม่?
ดีก็ปรากฎว่า C คือโง่สวย
ดีก็เขียนโปรแกรม ภาษาหรือมากกว่าเป็นคอมไพเลอร์
มันรู้ว่าสิ่งที่คุณมี สอนมันและมันก็เป็นเพียง
จะรู้ว่าสิ่งที่ ถ้าคุณสอนมาก่อน
ในคำอื่น ๆ ใน หลักในขณะที่ฉัน
พยายามที่จะเรียกฟังก์ชั่น เรียกว่าได้รับ int บวก
แต่คอมไพเลอร์จะไม่ จะสังเกตเห็นว่าได้รับ int บวก
อยู่จนสาย 26
และเพื่อให้สิ่งที่คอมไพเลอร์จะเป็นเพียง ข้อผิดพลาดโดยเร็วที่สุดเท่าที่จะได้รับสาย 17
กล่าวว่าการประกาศโดยปริยาย ได้รับของ int บวกซ​​ึ่ง
เป็นเพียงวิธีแฟนซีของว่าฉันทำไม่ได้ รู้ว่าสิ่งที่ได้รับในเชิงบวกคือ int ยัง
>> ภาษาอื่น ๆ เช่น Java และ งูหลามและทับทิมอาจจะมองไปข้างหน้า
C ไม่ได้
ดังนั้นวิธีการที่เราจะแก้ไขปัญหา นี้เป็นหนึ่งในสองวิธี
อย่างใดอย่างหนึ่งอย่างใดอย่างหนึ่งว่าปัญหาคือการที่ได้รับ int บวกไม่เคยเห็นมาก่อน
ดีให้ฉันเพียงแค่ย้ายไปยังด้านบน
ที่จะแก้ไขปัญหานี้
แต่โดยทั่วไปก็ ถือเป็นเทคนิคที่ดีกว่า
ที่จะใส่ฟังก์ชั่นหลักของคุณที่มาก ด้านบนเพื่อให้มนุษย์อ่านรห​​ัสของคุณ
รู้ว่าสิ่งที่โปรแกรมไม่ เพราะหลักไม่ได้ฝังอยู่ทั้งหมด
วิธีที่ด้านล่างหรืออยู่ตรงกลาง
มันเป็นที่ส่วนบนสุด
เพื่อให้ไม่รู้สึกเหมาะ
และคุณจะได้รับจริง ในสถานการณ์ที่
หากมีการเรียกฟังก์ชัน อีกซึ่งเรียกอีก
คุณจะได้รับเป็นปัญหาที่ไม่มี สามารถไปข้างต้นอื่น ๆ ที่มีเหตุผล
มันเป็นไปไม่ได้
>> และเพื่อให้วิธีการทำงาน รอบนี้คือการใช้เวลาเพียงแค่
ลายเซ็นของฟังก์ชั่นเพื่อที่จะ speak-- บรรทัดแรกที่มัน declared--
และเพียงแค่คัดลอกวางไว้ที่ ด้านบน แต่ไม่ได้มี braces-- หยิก
เพียงกับอัฒภาค
มันเหมือนคำใบ้เล็ก ๆ น้อย ๆ ของสิ่งที่จะมา
และในความเป็นจริงตลอดเวลานี้เมื่อเรา ได้เห็นสิ่งที่ต้องการ io.h มาตรฐาน
และ cs50.h ในทำนองเดียวกันในจุดเหล่านั้น ไฟล์เอชจะมีต้นแบบอื่น ๆ
และเราจะเห็นว่าก่อนที่จะยาว
>> ดังนั้นในระยะสั้นเมื่อคุณมีโปรแกรม ในแฟ้มที่มีฟังก์ชั่นหลาย ๆ
นอกเหนือจากหลักคุณเกือบจะ เคยต้องการที่จะประกาศให้
เพียงแค่วิธีการแรกของพวกเขา สายตามด้วยอัฒภาค
ที่ส่วนบนสุดของแฟ้ม
นั่นเป็นจำนวนมากทั้งหมดในครั้งเดียว
มีคำถามอะไรไหม?
ทั้งหมดขวา
>> ดังนั้นขอย้ายไปแล้ว เพื่อสิ่งที่ต้องการไอ
โอ้
วิธีที่เหมาะสม
ทั้งหมดขวา
อาการไอ
ดังนั้นนี่คือค การดำเนินงานของโปรแกรม
ที่เราทำในวันอื่น ๆ ใน รอยขีดข่วนได้เป็นอย่างมากเพียงแค่
กล่าวว่าไอไอไอ
ทั้งหมดขวา
และคนที่บอกว่าไม่กี่ วันที่ผ่านมาว่ามี
วิธีการทำความสะอาดรหัสนี้ขึ้นแล้ว
ทั้งหมดใช่มั้ย?
ทันทีที่คุณคัดลอกและ อาจจะวางการออกแบบที่ไม่ดี
อย่างน้อยหนึ่งครั้งที่เราจะไปสี่หรือห้า อาการไอหรือ 20 ก็รู้สึกปฏิบัติไม่ดี
เราเพียงแค่ให้คัดลอกวาง
อะไรคือทางออกที่ชัดเจน เพื่อการทำความสะอาดโปรแกรมนี้
>> ผู้ชม: ห่วง
>> ลำโพง 1: ใช่
ดังนั้นการใช้ห่วง
และเราสามารถใช้สำหรับวงในขณะที่ ห่วงจำนวนของวิธีการใด ๆ
และแน่นอนว่าเป็นสิ่งที่ เราทำในหนึ่งรุ่นที่นี่
ผมเคยเขียนใหม่แทน ในรุ่นหนึ่ง cough.c
จะเป็นเพียงไอภายในสำหรับวง
สิทธิทั้งหมด แต่มี โอกาสนี้ชนิดของการเริ่มต้น
ในการออกแบบนี้เล็ก ๆ น้อย ๆ มากขึ้นเช่น บทเรียนที่เราสอนสักครู่ที่ผ่านมา
ซึ่งเป็น this-- คิดว่าฉันต้องการ ในการสร้างฟังก์ชั่นที่เรียกว่าไอ
ขอพิจารณาเพื่อรอสักครู่ สิ่งที่มันจะมีลักษณะเหมือน
ดังนั้นถ้าผมต้องการอะไร ไอผมเพียงแค่ต้อง
ที่จะใช้พิมพ์ฉภายในฟังก์ชั่น
และแน่นอนผม
และในความเป็นจริงทั้งหมดนี้ เวลาเวลาที่คุณอยู่
สิ่งที่จะพิมพ์ หน้าจอ, โปรแกรมเมอร์
จะเรียกว่าผลข้างเคียง
มันไม่ได้ฉันมอบหมาย กลับมีคนค่า
ฉันก็จะดำเนินการบางอย่าง ที่อาจจะมีสายตาที่เห็นได้ชัด
แต่ไอฟังก์ชั่นนี้ก็ไม่กลับมา สิ่งที่อยู่บนพื้นฐานของบรรทัดแรกของตนหรือไม่
ไม่มีเพราะประเภทกลับ จะถือเป็นโมฆะซึ่งก็หมายความว่า
มันไม่ได้มอบหมายให้ฉันอะไรกลับ
มันอาจจะทำอะไรบางอย่าง มองเห็น แต่ก็ไม่ได้มอบให้ฉัน
กลับชิ้นส่วนของกระดาษเช่นสัปดาห์ที่ผ่านมา
>> มันต้องป้อนข้อมูลใด ๆ ?
เลขที่
และดังนั้นจึงเป็นโมฆะที่นี่ด้วย
ดังนั้นนี่ก็เป็นชนิดของ มากกว่าวิศวกรรมปัญหานี้
ใช่มั้ย?
ผมได้ทำโปรแกรมอื่น ๆ ที่ซับซ้อนมากขึ้นของสายรหัส
ฉันไม่ได้ทำมัน ๆ ทำงานได้มากขึ้น แต่
จะเป็นหินก้าวที่ บางทีอาจจะเป็นที่กว้างขึ้น
บริบทที่มีรหัสที่ซับซ้อนมากขึ้น
แต่สิ่งที่เกี่ยวกับเรื่องนี้?
ฉันมีอะไร done-- เพียง glancing ที่ โดยไม่ต้องมองหาที่แสดงความคิดเห็น
ที่ด้านบนสุดของ file-- สิ่งที่มี ผมทำที่นี่เป็นพื้นฐานที่มีอาการไอของฉัน
การดำเนินงานที่แตกต่างกันอย่างไร
ใช่ในด้านหลัง?
>> ผู้ชม: ทำให้มันเพื่อให้คุณสามารถ มีลักษณะปิด
ลำโพง 1: ใช่
ดังนั้นนี้รู้สึกชนิดของความสุข
ใช่มั้ย?
มันก็เหมือนกับการเพิ่มคุณสมบัติในการของคุณ โปรแกรมหรือการทำงานของคุณในกรณีนี้
ผลตอบแทนที่ได้ก็ยังไม่มีอะไร
มันอาจจะมีผลข้างเคียงภาพ เพราะมันโทรฉพิมพ์
แต่ตอนนี้ฉันได้ parametrized ฟังก์ชั่นที่
หมายถึงการที่ฉันได้ระบุการดำเนินการ การป้อนข้อมูลชนิด int และเรียกว่า n,
แต่ผมจะเรียกมันว่าอะไรที่ฉันต้องการ
ในความเป็นจริงมันก็อาจจะเป็น ครั้งที่จะได้อย่างชัดเจนมากขึ้น
และจากนั้นผมก็สามารถเปลี่ยนที่นี่
แต่ประเด็นก็คือว่านี่เป็นวิธีการที่ฉัน สร้างฟังก์ชั่นที่จะใส่
และถ้าคุณจำได้พลิก บางทีอาจจะผ่านออนไลน์ในหนึ่ง
ของเดิน throughs ที่ ตัวอย่างที่สี่และไอสุดท้าย
คุณจะสังเกตเห็นที่นี่ฉันได้ทั่วไป รหัสของฉันชนิดของ further-- ใจลอย
มันต่อไป
เช่นเดียวกับไอและจามทั้งสอง เหมือนพูดอะไรบางอย่างหรือการทำ
ชนิดของเสียงบาง
บันทึกที่จะเป็น บล็อกที่สอดคล้องกันรอยขีดข่วน
ดังนั้นสิ่งที่ผมทำในรุ่นนี้ ซึ่งเราสามารถได้อย่างรวดเร็วเพียงแค่ที่
เป็นไอก็เหมือนกับว่า [ไอ] ไอและในขณะเดียวกัน, จามเป็น
ชอบพูดว่า [Achoo]
และดังนั้นผมจึงได้ทั่วไป การดำเนินการของผู้ที่
โดยขณะนี้การดำเนินการ ฟังก์ชั่นนี้ทั่วไป
พูดซึ่งเป็นที่น่าสนใจ สำหรับวัตถุประสงค์ของว​​ันนี้
เพียงเพราะมันยังคง ไม่ได้มีชนิดของผลตอบแทน
แต่ปัจจัยการผลิตหลายวิธีที่มันไม่ได้?
ผู้ชม: สอง
ลำโพง 1: สอง
ดังนั้นถ้าคุณต้องการ ใช้เวลาในสองข้อโต้แย้ง
เพียงแค่แยกพวกเขาด้วยเครื่องหมายจุลภาค
และถ้าคุณต้องการแล้ว เรียกใช้ฟังก์ชันที่
สังเกตเห็นว่าคุณเพียง โทรพูดอ้างนำมาอ้าง,
สำหรับอาร์กิวเมนต์แรกร่วมกัน n สำหรับอาร์กิวเมนต์ที่สอง
ดังนั้นอีกครั้งเราก็มีตอนนี้ หน่วยการสร้างเพื่อให้เราสามารถจริง
การดำเนินการบางส่วนของฟังก์ชั่นของเราเอง
ทั้งหมดขวา
คำถามใด ๆ เกี่ยวกับเหล่านี้หรือไม่
>> ดังนั้นตอนนี้ขอกลับมาปอกเปลือกชั้นถ้าเป็นเช่นนั้น
และเป้าหมายในที่สุด ปัญหาในสัปดาห์หน้าชุด
เป็นไปได้ใน cryptogrophy-- ศิลปะของข้อมูล scrambling
และโดยเฉพาะข้อมูลที่ จะมีคุณเข้ารหัสหรือถอดรหัส
เป็นไปได้ข้อความ
และเพื่อให้ชนิดของเชิญที่ คำถามในวันนี้เช่นกัน
สิ่งที่เกิดขึ้นภายใต้ฝากระโปรง ที่มีข้อความเกิน ASCII จากสัปดาห์ที่ศูนย์
และวิธีการที่เราสามารถทำได้จริง เริ่มต้นที่จะจัดการกับมันได้หรือไม่
ดังนั้นนี่คือชื่อของ Zamyla
และในข้อความที่อาจจะป้อน เข้ารับฟังก์ชั่นเช่นสตริง
และเริ่มต้นตอนนี้เมื่อคุณเห็น สายเช่น this-- Z-A-M-Y-L-A--
เริ่มคิดว่ามันเป็นแม้ว่าแต่ละ ของตัวละครเหล่านั้นอยู่ในกล่องของ
ด้วยตัวเอง
และแน่นอนในสัปดาห์หรือดังนั้น เวลาแต่ละกล่องเหล่านี้
เป็นไปเพื่อเป็นตัวแทนมากโดยเฉพาะ บล็อกของ memory-- กัดของหน่วยความจำ
ดังนั้นแต่ละตัวอักษรเหล่านี้ ท้ายที่สุดจะเป็นตัวแทนของ 8 บิต
และเราจะเห็นจริงว่าเกิดอะไรขึ้น ในใต้ฝากระโปรงในคอมพิวเตอร์ของฉัน
>> แต่ไม่ได้พอเพียง เพียงแค่มองไปที่ Zamyla
ผ่านเลนส์นี้โดยแต่ละ ตัวอักษรเหล่านี้อยู่ในกล่องของตัวเอง
และอย่างเพียงพอใน C ที่เราสามารถทำได้ เข้าถึงแต่ละกล่องเหล่านี้ได้โดยตรง
ดังนั้นหากคุณต้องการที่จะได้รับเป็นครั้งแรก ตัวอักษรของชื่อของเธอง่ายสุดใน C.
ถ้าคุณต้องการที่จะได้รับที่ผ่านมา จดหมายง่ายสุดเช่นกัน
กับชิ้นส่วนของไวยากรณ์ใหม่
>> ดังนั้นฉันจะไปข้างหน้าเข้า CS50 IDE และเปิดสายศูนย์ dot ซี
และในตัวอย่างนี้ที่นี่ยังมี คู่ของสิ่งใหม่ที่เกิดขึ้น
ดังนั้นครั้งแรกในสาย 19 เราได้ เห็นนี้ before-- รับสตริง
ดังนั้นเพียงแค่เป็นกาสติอย่างรวดเร็ว ถ้ามีคนสามารถมีขึ้นด้วยวาจา
คำอธิบายของคนธรรมดา สิ่งที่เกิดขึ้นในสาย 19
เช่นเดียวกับที่แปลนี้เป็น ภาษาอังกฤษที่เพื่อนร่วมห้องไม่ได้อยู่ใน CS50
อาจจะเข้าใจ
ใช่
>> ผู้ชม: มีผู้ใช้เข้า สตริงและเก็บไว้ในตัวแปร s
ลำโพง 1: ดี
มีผู้ใช้ป้อนข้อมูลสตริง และเก็บไว้ในตัวแปร s
นั่นวิเศษมาก
ดังนั้นทางด้านขวามือ ด้านที่เราเรียกรับสตริง
ที่ส่งกลับค่า ที่ไม่ได้รับที่ได้รับมอบหมาย
จากด้านขวามือไปทางซ้ายมือ ด้านข้างเป็นตัวแปรที่เรียกว่า s ที่
ออกแบบมาเพื่อเก็บสตริง
ที่แน่นอน
>> ดังนั้นตอนนี้สาย 22 ต่อ ความคิดเห็นในสาย 21
เห็นได้ชัดพิมพ์สตริงที่ ตัวละครตัวหนึ่งต่อบรรทัด
แต่อย่างไร
ดังนั้นก่อนอื่นเราเริ่มต้นฉันถึง 0
และจากนั้นจะทำอย่างไรที่เราจะไป ส่วนท้ายของชื่อ Zamyla ได้หรือไม่
ดีในตอนท้ายของ ชื่อ Zamyla ของฉันได้
ตนเองพิมพ์ตัวอักษรตัวสุดท้ายของ ชื่อของเธออย่างใดหรือหมายเลขของมัน
ใช่มั้ย?
ถ้าเรากลับไป here-- Z-A-M-L-- Y-L-A-- ดังนั้นฉันสามารถพิมพ์ใน
อะไรดัชนีของ จดหมายฉบับสุดท้ายของ Zamyla?
ถ้าเป็น 0-- พูดเหมือน programmer-- 0, 1, 2, 3, 4, 5,
ฉัน heard-- ดังนั้นแน่นอนจดหมายฉบับสุดท้าย ชื่อ Zamyla เป็นที่หก
แต่ถ้าเรานับจาก 0, มันจะเป็นหมายเลข 5
ดังนั้นเก็บที่ในใจนี่
>> มันจะเปิดออกมีฟังก์ชั่นใน C เรียกว่า strlen และกลับในวันที่
และวันนี้ยังคง จำนวนมากของการเขียนโปรแกรม
เลือกที่จะซิงค์ชื่อของพวกเขา ฟังก์ชั่นที่เสียงเหมือนคำ
พวกเขากำลังพยายามที่จะบอกว่า
strlen ดังนั้นความยาวสตริง
ดังนั้นสิ่งที่จะมีความยาวของสตริง S กลับมาเมื่อ Zamyla คือการใส่หรือไม่
>> ผู้ชม: ห้า
>> ลำโพง 1: Z-A-M-Y-L หก
ใช่มั้ย?
เป็นความยาวของชื่อ Zamyla ของอะไร?
ใช่มั้ย?
และเพียงแค่ในความเป็นจริงหกตัวอักษร
ใช่มั้ย?
ดังนั้นสิ่งที่หมายความว่าสำหรับวงของเราหรือไม่
เรากำลังจะไปจากที่ 0 ถึงหกซึ่ง
เป็นไปเพื่อให้เราห้าซ้ำ
เราจะทำอย่างไรในแต่ละซ้ำ?
ดีซีร้อยละคน เดาได้ในวันอื่น ๆ
หมายถึงตัวยึดสำหรับสิ่งที่?
>> ผู้ชม: Char
ลำโพง 1: เพียงแค่ถ่าน
ดังนั้น character-- เดียวไม่ได้ ตัวละครหลายตัวเช่นสตริง
และแล้วนี่คือการขึ้นบรรทัดใหม่ ที่เราได้มีการพิมพ์ออก
และแล้วนี่เป็นไวยากรณ์ใหม่
ถ้าคุณต้องการที่จะพิมพ์ออก i-ครั้ง ตัวละครใน S สตริงเพื่อที่จะพูด
คุณก็สามารถพูด ชื่อของ S สตริง
แล้วเปิดวงเล็บเหลี่ยมและ แล้วปิดวงเล็บเหลี่ยมกับฉัน
ตรงกลาง.
และมันเป็นชนิดของความสุขในที่ ชนิดของมันมีลักษณะเหมือนตาราง
เช่นเดียวกับช่องสี่เหลี่ยมที่ Zamyla ของ ตัวอักษรที่อยู่ในภาพว่ามี
>> ดังนั้นถ้าจริงผมทำงานนี้ ตอนนี้เรามาดูสิ่งที่เกิดขึ้น
ทำให้สตริง 0 เฉือนจุด สตริง 0 แล้วฉัน
จะพิมพ์ชื่อของ Zamyla
มีพรอมต์ไม่ได้เพราะผมไม่ได้ ใช้ฉพิมพ์ แต่ที่ดี
ผมเพิ่งรู้ว่าสิ่งที่ต้องทำ
และแน่นอนมันพิมพ์ออก ชื่อ Zamyla ของหนึ่งบรรทัดต่อ
>> ตอนนี้ขอเป็นเพียงเล็กน้อยประมาท
สมมติว่าผมไม่ทราบ เกี่ยวกับ strlen และฉันคิด
สิ่งที่ถูกต้องไม่มีใครที่จะมี ชื่อที่ใหญ่กว่าเช่น 50 ตัวอักษร
ลองไปข้างหน้าและคอมไพล์นี้ และเรียกมันแล้วพิมพ์ใน Zamyla
อีกครั้ง
เหตุผลคืออะไร โปรแกรมจะพยายามที่จะพิมพ์?
Z-A-M-Y-L-A แล้วเช่น 45 ไม่รู้จักไบต์หน่วยความจำ
และแน่นอนเราจะกลับมา กับความคิดของหน่วยความจำนี้
แต่มีเหตุผลถ้า ชื่อ Zamyla นี้เป็นเวลานาน
ตามภาพ นี่คือสิ่งที่เรากำลังจะบอกว่า
จะให้การพิมพ์ให้พิมพ์ให้ การพิมพ์ให้พิมพ์ให้พิมพ์
ทุกทางที่จะเป็นตัวละครที่ 50 ซึ่งผู้ที่รู้สิ่งที่จะเกิดขึ้น
ดังนั้นขอจริงจะดู
ลองพิมพ์ใน Zamyla
ที่น่าสนใจ
เรามีโชคดี
เพียงแค่ทั้งกลุ่มของพื้นที่สีขาว
โอ้
มีตัวละครตัวหนึ่งเป็นขี้ขลาด
มันมีลักษณะเหมือนเป็นคำถามที่แปลก ทำเครื่องหมายที่นั่น แต่มีชื่อของ Zamyla
ให้ของได้รับประมาทจริงๆ
วิธีการเกี่ยวกับที่เราพิมพ์ออกมา 500 บล็อกในที่ไม่รู้จัก?
ลองไปข้างหน้าและจะทำให้เรื่องนี้ เช่นกันและแล้วการทำงานอีกครั้ง
และเต็มหน้าจอขอมันเพราะ เราต้องดูพื้นที่มากขึ้น
Zamyla
มีโชคดีอีกครั้ง
>> เราได้รับกล้าบ้าบิ่นมากขึ้น?
ให้ของได้รับประมาทมากขึ้น
50,000 ตัวอักษร
นี้เป็นส่วนใหญ่ก็ไม่ได้เป็นความคิดที่ดี
ทั้งหมดขวา
ทำให้สตริง 0
นี้จะเป็นครั้งสุดท้ายของเราสาธิต
Zamyla
อี๊
ตกลง.
ดังนั้นหน่วยความจำของฉันเป็นที่ว่างเปล่าจริงๆตอนนี้ ซึ่งเป็นจริงชนิดของความสะดวกสบาย
สิ่งที่ฉันพยายามที่จะได้รับสิทธิ to-- ทั้งหมด
และตอนนี้ฉันแค่ไปที่จะได้รับโดยประมาท
500,000
Make-- ช่วยให้เต็มหน้าจอมัน
เข้าสู่
Zamyla
เราจะไปที่นั่น.
ผมมีความคิดว่าว่าไม่มี เป็น แต่เสียงไม่ดี
ทั้งหมดขวา
และในความเป็นจริงในเร็ว ๆ นี้ถ้าคุณอยู่ในหมู่ ในไม่กี่คนที่โชคดีในเวลาทำการ
และปัญหาการตั้งค่าหนึ่งคุณ อาจเป็นอย่างดีพบนี้
ผิดส่วนที่ไม่จริง มีความหมายที่ดีที่กำหนด
มันหมายถึงชนิดของความผิดพลาดบางอย่าง ที่เกี่ยวข้องกับส่วนของหน่วยความจำ
และในแง่ของคนธรรมดา มันหมายความว่าเราสัมผัส
memory-- เราใช้ RAM ในเครื่องคอมพิวเตอร์ของฉัน ที่ฉันไม่ควรจะได้มีการเข้าถึง
และนั่นคือสิ่งที่ทั้งสอง ที่มีประสิทธิภาพและยังเป็นอันตราย
เกี่ยวกับ C เป็นจริงที่คุณ มีการเข้าถึงอิสระ
เพื่อความสมบูรณ์ของหน่วยความจำโปรแกรมของคุณ หรือไบต์หรือแรมมากขึ้นโดยเฉพาะ
>> ดังนั้นแม้ว่าชื่อของ Zamyla เป็นเพียงหกตัวอักษรยาว
ฉันยังคงสามารถไปได้ทุกที่ ในความทรงจำที่ฉันต้องการ
และเป็นกันถ้าคุณได้ เคยอ่านบทความบางส่วน
ในช่วงหลายปีเกี่ยวกับบางส่วน เซิร์ฟเวอร์หรือโปรแกรมบางอย่าง
ได้รับรอยแตกหรือ hacked ที่ นำประโยชน์จากบางสิ่งบางอย่าง
ที่เรียกว่าหน่วยความจำล้น ใช้ประโยชน์จากการที่เราจะเป็นจริง
พูดคุยเกี่ยวกับในช่วงไม่กี่สัปดาห์ที่ผ่านมาว่าเป็น โดยทั่วไปหมายถึงการหลอกล่ออย่างใด
ลงในคอมพิวเตอร์ไปด้วยดี เกินขอบเขตของหน่วยความจำ
ว่าควรจะมีแล้ว หาบางสิ่งบางอย่างฉ่ำ
ในการที่ memory-- รหัสผ่านบางทีวิธี
ในการหลีกเลี่ยงบางหมายเลขซีเรียล ตรวจสอบหรือเพียงแค่ความสามารถทั่วไป
เพื่อหลอกลวงให้คอมพิวเตอร์ที่รัน รหัสที่ไม่ได้ตั้งใจ
แต่ขอกลับไปมา ความเป็นจริงเพื่อรอสักครู่
ที่โปรแกรมนี้คือ ดำเนินการกับ strlen,
และแนะนำสิ่งหนึ่งที่นี่
มีอะไรใหม่ในหมู่เหล่านี้สามบรรทัดบน?
>> ดังนั้นจุดชมสตริง
มันจะเปิดออกมีห้องสมุดนี้เรียกว่า String Dot H หรือห้องสมุดสตริง
ที่มีไฟล์ส่วนหัวเพื่อที่จะพูด เป็นจุดชมสตริงที่ทำให้ผม
การเข้าถึงฟังก์ชั่นนี้ strlen
ถ้าผมเอาว่าเป็นคอมไพเลอร์ จะตะโกนมาที่ผมในบางรูปแบบ
แต่คุณรู้อะไรไหม
ตอนนี้ขอ nuanced จริงๆ
ในบรรทัดที่ 22 มีบางสิ่งบางอย่างชนิด ของ inefficient-- ออกแบบมาไม่ดี
arguably-- เกี่ยวกับสายของรหัสนี้
คิดว่ากลับไปว่า สำหรับวงจะดำเนินการ
และสิ่งที่เกิดขึ้นอีกครั้งขั้นตอนและ อีกครั้งและ again-- เริ่มต้นที่
สภาพรหัสว่า ได้รับการดำเนินการแล้วที่เพิ่มขึ้น
หรือการเปลี่ยนแปลงแล้วสภาพ แล้วรหัสที่แล้วการเปลี่ยนแปลงแล้ว
สภาพแล้วรหัส แล้วการเปลี่ยนแปลงและอื่น ๆ
ดังนั้นสิ่งที่อาจจะเล็ก ๆ น้อย ๆ ที่น่าเป็นห่วงหรือทำไม่ดีที่นี่?
ใช่สีฟ้า
ผู้ชม: strlen เป็น เรียกว่าหลาย ๆ ครั้ง
ลำโพง 1: ใช่
strlen ดังนั้นจะเรียกว่า หลายต่อหลายครั้ง แต่สิ่งที่เป็น
ความยาวของชื่อ Zamyla ของ ครั้งแรกที่วงรัน?
>> ผู้ชม: หก
>> ลำโพง 1: หก
ดีสิ่งที่มีความยาวของชื่อของเธอ เป็นครั้งที่สองรหัสรัน?
>> ผู้ชม: หก
>> ลำโพงที่ 1: สิทธิทั้งหมด
ก็ยังคงหก
ใช่มั้ย?
ชื่อ Zarla มีไม่ได้ การเปลี่ยนแปลงแม้ว่าฉันกำลังมองหา
ที่เพียงส่วนหนึ่งของตัวอักษรในชื่อของเธอ
และเพื่อให้ความจริงที่ว่าฉันได้อย่างมีประสิทธิภาพ ถามคำถามนี้สิ่งที่
ความยาวของ Zamyla สิ่งที่เป็นความยาว ของ Zamyla สิ่งที่ความยาวของ Zamyla ที่
หกครั้งที่แยกต่างหากหรือ เจ็ดแม้โง่เพียง
เพราะนั่นคือคำตอบที่ไม่มีการเปลี่ยนแปลง
และเพื่อให้สิ่งที่ฉันสามารถทำได้จริง ทำคือ this-- ในสายหนึ่ง
ฉันมีรุ่นที่ดีกว่าเล็กน้อยที่นี่
There-- สตริง whoops-- สองฉันมี รุ่นที่ดีกว่าเล็กน้อยนั้น
ฉันทำ this-- แทนเพียง ฉันเริ่มต้นเป็น 0, ฉันยังด้วยเครื่องหมายจุลภาค
ประกาศตัวแปรที่สองเรียกว่า n-- ผมไม่ได้กล่าว int อีกครั้ง
ฉันไม่ควรในความเป็นจริง
แต่เราบอก n
แล้วฉันจะเริ่มต้น n strlen ของ n เพื่อให้ในขณะนี้
กี่ครั้งไม่ strlen ได้รับการดำเนินการทั้งหมด?
เพียงครั้งเดียว.
ดังนั้นนี่คือสิ่งที่เราหมายถึง ก่อนหน้านี้เกี่ยวกับการออกแบบที่ดีขึ้น
ที่จริงครั้งเดียวรหัสของคุณถูกต้อง จะกลับคิดผ่าน
ฉันใช้น้อย หน่วยความจำหรือเป็นไม่กี่วินาที
หรือมิลลิวินาทีของเวลาที่เครื่องคอมพิวเตอร์เป็น เป็นไปได้ที่จะใช้ปัญหาบางอย่าง?
และฉันจะเลื่อน และเพียงแค่พูดถึง
ที่มีการกล่าวถึงนี้ ของโมฆะในรุ่นนี้
แต่เราจะกลับมาก่อนที่จะยาว
เพราะตอนนี้ลองมาดู ในที่นี้จะนำเราไป
ดังนั้นหนึ่งก็ปรากฎว่า ตอนนี้ที่เรามีความสามารถใน
จะมองไปที่ตัวละครของแต่ละบุคคล เราสามารถใช้ประโยชน์จากสิ่งที่
จากสัปดาห์ที่ 0 ที่เป็นความลับมากและ การเรียงลำดับของน่าทึ่งในเวลา
แต่ในขณะนี้และโดยเฉพาะอย่างยิ่งเมื่อเรา จะได้รับการเข้ารหัสในรอบสัปดาห์
มันเป็นไปได้ที่มีประสิทธิภาพสวย
ปรากฎว่ามีบางส่วน ข้อมูล types-- ints และลอย
และตัวอักษรและสตริงและ อื่น ๆ things-- บางคน
สามารถแปลงได้อย่างง่ายดายมากไปยังอีก
>> ตัวอย่างเช่นเมื่อเราได้พูดคุย เกี่ยวกับ ASCII บางครั้ง ago-- นี่
ตัวอักษรทุน ผ่านเอ็ม, จุดจุด
dot-- ที่เรากล่าวว่ามีการทำแผนที่ ระหว่างตัวอักษรและตัวเลขเหล่านี้
และในความเป็นจริงก็ถือเป็นจริง สำหรับตัวพิมพ์เล็กได้เป็นอย่างดี
ตัวพิมพ์เล็กเป็น 97 ทุนคือ 65
และมีตัวเลขใน ASCII ที่ ซึ่งเป็นเพียงการทำแผนที่นี้
ระบบทั้งหมดของตัวอักษรอื่น ๆ เหล่านั้น
ดังนั้นสิ่งที่หมายความว่า?
ดีฉันจะไปข้างหน้าและเปิดกว้าง บางสิ่งบางอย่างที่แท้จริงได้อย่างรวดเร็วเรียกว่า
ASCII 0 ซึ่งส่วนใหญ่เป็นความคิดเห็น
และอีกครั้งออนไลน์ที่คุณสามารถเสมอ ได้อย่างรวดเร็วผ่านการแสดงความคิดเห็น
>> และดูสิ่งที่ นี้จะไปทำ
ดังนั้นก็มีฟังก์ชั่นหลัก
ฉันได้ยากรหัสตัวเลขเพียงสำหรับ ตอนนี้เพราะผมรู้ว่าสิ่งที่ฉันทำ
ฉันรู้ว่าฉันต้องการที่จะเห็นที่นี่
และฉันได้เริ่มต้นฉันถึง 65
และฉันนับ ผ่าน 26 ตัวอักษรรวม
และสิ่งที่ฉันจะ พิมพ์เส้นหนึ่งที่เวลา
ถ้าคุณสามารถแปลความหมาย นี้เน้นเส้น?
สิ่งที่ได้รับพิมพ์?
ใช่
>> ผู้ชม: คุณจะ พิมพ์ตัวอักษรที่
สอดคล้องกับแผนที่ของ ค่าตัวอักษรและค่าจำนวนเต็ม?
ลำโพงที่ 1: ว่า
ฉันจะพิมพ์ตัวอักษร ที่สอดคล้องกับค่าจำนวนเต็มที่
และในทางกลับกันดังต่อไปนี้
อย่างนี้บางคนกล่าวว่าก่อนหน้านี้ เป็นเพียงตัวยึดสำหรับถ่าน
มันก็ยังคงเป็น
นี้แน่นอนเป็นตัวยึด สำหรับ int-- ไม่บรรทัดใหม่
และตอนนี้สังเกตเห็นค่าแรกของฉันที่ ฉันเสียบสำหรับตัวยึดที่
ไม่ได้เป็นเพียงครั้งที่ฉันพูด ในวงเล็บผมถ่าน,
ซึ่งสอดเป็นถ่าน บอกคอมไพเลอร์, การรักษาผม
ไม่เป็นสิ่งที่มันเป็นซึ่งเป็นตัวเลข
รักษามันเป็นตัวละครที่เกิดขึ้นจริง
ในขณะที่ค่าที่สองที่ฉันเสียบ in-- I-- ก็ควรจะเป็นตัวเลข
>> ดังนั้นถ้าผมรวบรวม program-- นี้ ดังนั้นนี่คือทำให้ ASCII 0,
ASCII เฉือนจุด 0-- ฉันเพิ่งได้รับ แผนภูมินี้เล็ก ๆ น้อย ๆ ที่มีประโยชน์ที่
แสดงให้เห็นฉันทั้งหมดที่เป็นไปได้ แมปโดยไม่ต้องคิดว่ามัน
ผ่านหรือคิดออกด้วยตัวเอง
และฉันยังพิมพ์ออก สังเกตตัวอักษรตัวพิมพ์เล็ก
เพราะไม่กี่บรรทัดต่อมาที่ผม ยังพิมพ์ออกมาทำแผนที่นี้
เช่นกันซึ่งเป็นเพียงการ บอกว่าเมื่อคุณเข้าใจ
สิ่งที่เกิดขึ้นภายใต้ เครื่องดูดควันที่คุณสามารถ
โดยอัตโนมัติแปลงไปมา
และในความเป็นจริงถ้าใด ๆ ของคุณ ที่เคยทำอย่างนี้ในโรงเรียนประถมศึกษา
หรือได้ยินเกี่ยวกับคน mythically การบันทึก
และผ่านไปของเขา หรือเพื่อนของเธอในชั้นเรียน
แต่คุณมีสัญญาณรบกวน โดยตัวอักษรที่ชอบกลายเป็น B,
และกลายเป็น B C หรือบางสิ่งบางอย่าง ที่มีความซับซ้อนมากขึ้นกว่าที่ดี
วิธีการที่คุณจะไปเกี่ยวกับ การดำเนินการที่เป็นเด็ก?
ดีที่คุณเพียงแค่ชนิดของทราบ จะกลาย B, B จะกลายเป็นซี
แต่ทางคณิตศาสตร์ สิ่งที่เด็กที่ทำอะไร
สิ่งที่คุณได้รับการเพิ่มตัวอักษรแต่ละตัว?
ได้อย่างมีประสิทธิภาพ 1
>> ดังนั้นเมื่อคุณเปลี่ยน A ไป B ที่ ชนิดเช่นการเปลี่ยนแปลง 65-66,
ซึ่งทางคณิตศาสตร์หมายถึงเพียงแค่เพิ่ม 1
ดังนั้นถ้าคุณมีการดำเนินการ เทคนิคเล็ก ๆ น้อย ๆ ที่หลอกลวง
สำหรับครูของคุณในรหัสคุณ อาจจะทำตรงนั้นเพียง
โดยการเพิ่มตัวอักษรเดียวร่วมกัน
ดังนั้นก่อนที่จะยาวเรา จะไปดูวิธีการที่เรา
สามารถใช้ประโยชน์จากการที่จริง การแย่งชิงอย่างแท้จริงและถอดรหัส
ข้อมูล.
ในขณะที่รู้ว่าเราได้เริ่มต้น ที่จะแนะนำห้องสมุดอื่น ๆ คู่
here-- สตริงหนึ่งวันนี้
และเว็บไซต์ที่เป็นประโยชน์มาก หวังว่าคุณจะได้พบกับ
เรียกว่า reference.cs50.net ซึ่ง พนักงานการเรียนการสอนได้ใส่กัน
เพื่อที่ว่าถ้าคุณต้องการที่จะ เงยหน้าขึ้นมองว่า strlen งาน
คุณสามารถเริ่มต้นการพิมพ์ ชื่อฟังก์ชั่นของ
คลิก strlen มีแล้ว คำอธิบายน้อยสบาย
จะไปปรากฏ
หรือถ้าคุณต้องการอย่างเป็นทางการ คำอธิบาย Linux-based,
คุณสามารถคลิกที่สะดวกสบายมากขึ้น ที่ด้านบนขวาและมัน
จะนำเสนอข้อมูลเดียวกัน แต่ในแง่ความซับซ้อนมากขึ้น
นั่นเป็นทรัพยากรที่มีประโยชน์ในการ จริงรู้ว่าสิ่งที่ทุกอย่างจะ
>> ครั้งต่อไปที่เราจะไป ดูที่โอวัลติ
และมากขึ้นและแนะนำตัวเอง สู่โลกของการเข้ารหัส
ก่อนหน้านั้นเราจะเห็น คุณในภายหลังในสัปดาห์นี้
และตอนนี้การตัดสินใจที่อ็อกเดน
เห็นคุณในวันพุธที่
>> [เล่นเพลง]
>> ลำโพง 1: อะไร [แหลม] คุณจะทำอะไร?
>> ลำโพงที่ 1: ฉันกินขนมของฉันได้อย่างไร
จะทำอย่างไรที่คุณกินมันได้หรือไม่
ด้วยมือของคุณ?
>> [เล่นเพลง]