เดวิดเจลัน: ดังนั้นนี่คือ CS50 และนี่คือ CS50 ของตัวเองโคลตันอ็อกเดน สำหรับข้อมูลเพิ่มเติมของผู้ที่เพลงที่คุณสามารถ ดาวน์โหลดได้ที่ soundcloud.com/cs50 ดังนั้นวันนี้เรามุ่งเน้นมากขึ้นทุก เกี่ยวกับศิลปะของการเขียนโปรแกรม และเราใช้เวลาที่เราเหลือ ออกเมื่อสัปดาห์ที่แล้วโดยมุ่งเน้น ใน Scratch ซึ่งเป็นแบบนี้ ภาษาโปรแกรมกราฟิก และใช้สิ่งที่ลงไปในระดับที่ต่ำกว่า โดยใช้การเขียนโปรแกรมแบบดั้งเดิมมากขึ้น ภาษาที่เรียกว่าซี แต่ ไปพร้อมกันตระหนัก ที่ความคิดเดียวกันกับที่เรา พูดคุยเกี่ยวกับเมื่อวันศุกร์ที่ จะเกิดขึ้นอีกไม่เพียง แต่ในเรื่องนี้ ภาษา C แต่ในส่วนอื่น ๆ ทุก ที่เรามองไปที่ภาคการศึกษานี้ ดังนั้นเราจึงเรียกสิ่งนี้ ที่นี่สิ่งที่เป็นครั้งสุดท้าย? นี้เป็นตัวแทนของคำสั่ง ดังนั้นเราจึงเรียกว่าคำสั่ง และมันจะมีอะไรบางอย่าง มันเป็นคำสั่งที่ คอมพิวเตอร์หรือเกาอาจดำเนินการ และต่อจากนี้ไปให้ยังเริ่มต้น เรียกร้องบางอย่างเช่นนี้ฟังก์ชั่น สำหรับเหตุผลที่เราจะเห็นในไม่ช้า ในขณะเดียวกันเราได้เห็นสิ่งนี้ และเหล่านี้มักจะ เรียกได้ว่าเป็นสิ่งที่สร้าง? ผู้ชม: ห่วง เดวิดเจลันดังนั้นห่วง ดังนั้นตรงไปตรงสวย แท้จริงมันไม่สิ่งที่มันบอกว่า และรอยขีดข่วนถ้าคุณต้องการที่จะ อัดชิ้นส่วนปริศนามากขึ้นในนั้น ชิ้นจะเติบโตให้พอดีกับมัน และเราจะเห็นว่าใน C เราสามารถทำในสิ่งเดียวกัน ประเภทของวงอีกแม้ว่า ในเกาอาจจะตลอดไป หรือมีจำนวนใด ๆ ของวิธีการอื่น ๆ แต่ขอใช้เวลามากขึ้น ดู Generalist กับใบหน้า ที่น่าจะคุ้นเคยมาก ที่ห่วงมากขึ้นโดยทั่วไป Mark Zuckerberg: หนึ่ง สิ่งที่คอมพิวเตอร์ เป็นสิ่งที่ดีจริงๆที่เป็น การทำซ้ำคำสั่ง เป็นคนที่คุณจะได้รับ เบื่อจริงๆถ้าคุณ ต้องทำในสิ่งเดียวกัน จำนวนมากครั้งในแถว แต่คอมพิวเตอร์สามารถทำสิ่งเดียวกัน ล้านหรือพันล้านครั้ง และไม่ได้รับเบื่อและจะสามารถ ในการดำเนินการที่ออกมาดีจริงๆ ดังนั้นสำหรับตัวอย่างเช่นถ้าฉัน อยากจะขอให้ทุกคน ใน Facebook วันเกิดมีความสุข โดยการส่งอีเมล มันอาจจะพาฉันมากกว่า ศตวรรษที่จะเขียนจริงออก ทั้งหมดของอีเมลเหล่านั้นให้กับทุกคน แต่มีเพียงไม่กี่บรรทัดของรหัสที่ฉันสามารถ มีระบบส่งอีเมล์ไปที่ทุกคน ใน Facebook ที่ต้องการ พวกเขามีความสุขในวันเกิด ดังนั้นนั่นคือสิ่งที่ลูปและทำไม พวกเขากำลังที่มีคุณค่าและบางสิ่งบางอย่าง ว่าคอมพิวเตอร์สามารถทำได้เป็นอย่างดี เดวิดเจลัน: ดังนั้นหาก คุณได้รับรางวัล ของบางส่วนของ CS50 และ พื้นที่ Dropbox ของปลาย ที่จริงสิ่งที่เรา ทำโดยใช้รหัสที่ค่อนข้างชอบ เราเป็นหลักมีขนาดใหญ่ สเปรดชีทเป็นที่ คนที่ได้รับการป้อนของพวกเขา ชื่อและที่อยู่อีเมล และเราเขียนบิตขนาดเล็กของรหัสที่ สามารถย้ำกว่าที่อยู่เหล่านั้น และคายออกจากที่อยู่ไม่ซ้ำกันใน กรณีที่คนที่ส่งมาหลายครั้ง และหลังจากนั้นเราจะส่ง อัตโนมัติอีเมลจากบอ CS50 ของ รวมทั้งรหัสคูปอง ตอนนี้เรายังมองไปที่ โครงสร้างนี้เป็นครั้งสุดท้าย และนี่คือโดยเฉพาะอย่างยิ่ง ตัวอย่างของสิ่งที่? ดังนั้นใช่นิพจน์บูลีน และรูปร่างที่มีความหมาย เพื่อจับภาพที่ดี ทุกคำถามดังกล่าว รูปแบบจริงหรือเท็จใน Scratch จะมีลักษณะที่บางสิ่งบางอย่างเล็ก ๆ น้อย ๆ เช่นนี้ และเราเรียกสิ่งนี้ว่านิพจน์บูลีน นั่นเป็นความจริงหรือเท็จใช่หรือไม่ ซึ่งเป็นวิธีการของการตอบคำถาม และในขณะเดียวกันคุณสามารถใช้บูลีนเหล่านี้ การแสดงออกภายในของโครงสร้าง เช่นนี้ซึ่ง แน่นอนเป็นเงื่อนไข หรือสาขาที่เลื่องลือ ส้อมในถนน และพวกเขาสามารถมองไม่เพียง แต่ เช่นนี้ แต่พวกเขายังสามารถ elses ได้เกี่ยวข้องกับพวกเขา และคุณสามารถจริงมีวิธีที่สาม ทางแยกในถนนหรือทางแยกสี่ทาง ในถนนเพียงโดย รังสิ่งเหล่านี้ ในขณะที่คุณจะเห็นใน Scratch ถ้าคุณยังไม่ได้ และในขณะที่คุณสามารถทำได้ใน C เช่นกัน ลองมา Generalist อื่น ดู alumnist เช่นเดียวกับที่ อาจจะนำเสนอวิธีการที่แตกต่างกัน กับสิ่งเหล่านี้เรียกว่าเงื่อนไข บิลเกตส์: ผู้คนให้ การตัดสินใจทุกวัน ตัวอย่างเช่นก่อนที่คุณจะออกไปข้างนอกคุณ ชนิดของมีคำว่าที่กล่าวว่า ถ้าฝนตกแล้วฉัน ต้องได้รับแจ็คเก็ตของฉัน และคอมพิวเตอร์เป็นที่น่าอัศจรรย์เมื่อคุณ ตัดสินใจชนิดของงบ ที่พวกเขาสามารถดำเนินการได้อย่างน่าเชื่อถือ สิ่งเหล่านั้นที่ความเร็วไม่น่าเชื่อ และเพื่อให้โปรแกรมคอมพิวเตอร์จริงๆ เป็นเล็กน้อยของคณิตศาสตร์และบาง ถ้างบที่ การตัดสินใจที่ได้รับการทำ เดวิดเจลันก็อย่างที่ คุณอาจจะรู้ว่ามันเป็น คนเหมือนบิลเกตส์ พอลอัลเลนและคนอื่น ๆ ที่เตะอย่างแท้จริงออก ที่เรียกว่าคอมพิวเตอร์ส่วนบุคคล การปฏิวัติเมื่อหลายปีก่อน ผมคิดว่าก่อนที่เราจะดำน้ำ เป็น administrivia บาง เราจะเกี่ยวข้องกับเรื่องจาก Albuquerque, พิพิธภัณฑ์นิวเม็กซิโกประวัติศาสตร์ธรรมชาติ และวิทยาศาสตร์ที่บางส่วนของบิลเกตส์ ' และเรื่องราวที่เก่าแก่ที่สุดพอลอัลเลน จะเล่าให้ฟังวิธีการที่เรามีตอนนี้ เครื่องคอมพิวเตอร์ในปัจจุบันและแม็คและอื่น ๆ สำหรับเรื่องนี้ แต่เราต้องสองอาสาสมัคร ที่มีคำบรรยายเสียงที่ดีมาก การอ่านสคริปต์ออกมาดัง ๆ ขวาทั้งหมดเกี่ยวกับวิธีการในการกลับไปที่นั่น มาขึ้น และวิธีการเกี่ยวกับที่นี่ในหน้า มาลง ใช้สถานที่ของคุณที่นี่ ในฐานะที่พวกคุณขึ้นมาคู่ การประกาศการบริหาร อร์กระบวนการ ของการเลือกส่วนที่ จะเริ่มต้นนี้ วันพุธถึงวันศุกร์ เพิ่มเติมเกี่ยวกับที่จะมาถึงนี้ วันพุธในการบรรยาย ส่วนซูเปอร์ขณะที่มี สิ่งที่เรานำเสนอในสัปดาห์หน้า โดยทั้งชั้นได้รับเชิญ จะมีส่วนร่วมในระดับที่ค่อนข้างใหญ่ ส่วนหนึ่งที่แสนสบายมากขึ้น หนึ่งความสะดวกสบายน้อยลง และเราจะมีการประกาศรายละเอียด การที่เป็นอย่างดีต่อมาในสัปดาห์นี้ ส่วนในขณะเดียวกัน ตัวเองจะเริ่มต้น ในสามของหลักสูตรสัปดาห์ที่ศูนย์ดัชนี ซึ่งหมายความว่าผู้ที่มีสองสามสัปดาห์ที่ ออก ดังนั้นไม่ต้องกังวล คุณยังไม่ได้ยังไม่ได้รับ อะไรทำนองนั้น ในขณะเดียวกันในระหว่างนี้ถ้าคุณ มีคำถามใด ๆ ดำเนินการ, อีเมล์ตัวเองและเดวอนและเกบ และร็อบตามที่อยู่ที่นี่ สุดท้ายปัญหาการตั้งค่า 0 เป็นที่แน่นอนออกมา คุณอาจจะสังเกตเห็นมัน บนเว็บไซต์ของหลักสูตร มันควรจะให้คุณกับ ทุกคำตอบสำหรับคำถามที่ คุณอาจต้องไปพร้อมกันสำหรับ การเริ่มต้นกับปัญหาที่กำหนด แต่ถ้าคุณพบว่าตัวเอง ในความต้องการของมือช่วย โดยทั้งหมดได้เข้าร่วมเวลาทำการ จันทร์, อังคาร, พุธ, พฤหัสบดี ของสัปดาห์ในช่วงเย็นนี้ ในสี่ห้องอาหาร ดู URL ที่มีรายการ ของที่เวลาทำงานจะต้องเป็น ตอนนี้เรามาพบกับเรา แขกผู้เข้าพักสองวันนี้ คุณชื่ออะไร? JAY PAUL: เจย์พอล เดวิดเจลัน: เจย์ พอลมีความสุขที่ได้พบคุณ HIKARI: การิ เดวิดเจลัน: การิ? HIKARI: การิ เดวิดเจลัน: การิ ยินดีที่ได้พบคุณเช่นกัน เจย์พอลและการิมีใน ด้านหน้าของพวกเขาในเพลงเหล่านี้ ยืนสองสคริปต์ที่ผมพิมพ์ ออกเช้าวันนี้จากนิวเม็กซิโก พิพิธภัณฑ์ประวัติศาสตร์ธรรมชาติและวิทยาศาสตร์ และสิ่งที่ผมคิดว่า ฉันทำในค่าใช้จ่าย จะมาพร้อมกับการบรรยายของคุณ ของสคริปต์และประวัติศาสตร์นี้ กับภาพที่มองเห็นบางอย่างที่น่าประหลาดใจที่ไม่มี และสิ่งที่ฉันได้ทำล่วงหน้า เป็น prehighlight ในสคริปต์ของคุณ สิ่งที่คุณควรอ่าน และสิ่งที่คุณควรอ่าน และเราจะเป็นหลัก ย่อหน้าสำรองเพียง ดังนั้นจึงเป็นเหมือนคุณอาจ ได้กระทำในชั้นเรียนภาษาอังกฤษ ที่บังคับให้ผู้ชมจริงๆ ที่จะเชื่อในเรื่องของคุณที่นี่ เราจะ? ดังนั้นเรื่องราวที่นี่คือเรามี ขั้นพื้นฐานและมันจะเริ่มขึ้นในเคมบริดจ์ JAY PAUL: มันเป็นฤดูหนาว 1974 ในเคมบริดจ์, แมสซาชูเซต ที่ฤดูหนาวจะหนาว เคราผมยาว กลางคันวิทยาลัยชื่อ พอลอัลเลนได้รับการ drudging ข้ามฮาร์วาร์ สแควร์, ดูดซึมในความคิดของเขา ความลุ่มหลงหลักของเขาในวันนั้น คือวิธีการที่จะได้รับเพื่อนของบิลเกตส์ของเขา ที่จะลาออกจากโรงเรียนและไป เข้าสู่ธุรกิจกับเขา HIKARI สองได้ไปแล้ว ผ่านหมายเลขของการลงทุนทำธุรกิจ ร่วมกันเริ่มต้นที่เลคไซด์ โรงเรียนในซีแอตเติที่ พวกเขาได้รับการชำระเงินในเวลาที่เครื่องคอมพิวเตอร์ฟรี ทดสอบคอมพิวเตอร์ PDP-10 ในเวลาท้องถิ่น บริษัท ร่วมกัน แผนล่าสุดที่ได้รับการที่จะเลิก โรงเรียนและรูปแบบ บริษัท ซอฟต์แวร์ อัลเลนได้ออกจากวอชิงตัน มหาวิทยาลัยแห่งรัฐ แต่ในนาทีสุดท้ายประตู ตัดสินใจที่จะยึดติดอยู่กับฮาร์วาร์ JAY PAUL: วันนั้นข้ามฮาร์วาร์ สแควร์, อัลเลนเห็นเดือนมกราคม 1975 ปัญหาของฮิตอิเล็กทรอนิกส์ กับพาดหัวโลกหยุด, แรกของโลกมินิคอมพิวเตอร์ชุด กับคู่ต่อสู้รุ่นเชิงพาณิชย์ ภายใต้พาดหัวเป็น ภาพของกล่องขนาดเล็ก ประดับด้วยไฟและสวิทช์ มันถูกเรียกว่า MITS Altair 8800 และอัลเลนรู้ว่านี่คือสิ่งที่ เขาได้รับการมองหา HIKARI: วันของการอภิปรายตาม อัลเลนและเกตส์เข้าใจ ความสำคัญของ Altair พวกเขาได้พูดคุยกันบ่อย เกี่ยวกับไมโครโปรเซสเซอร์ และกำลังรอที่จะเห็นสิ่งที่ จะทำกับพวกเขา ตอนนี้มีชุดมินิคอมพิวเตอร์ที่ หน้าปกของฮิตอิเล็กทรอนิกส์ มันเห็นได้ชัดว่ายังไม่มีซอฟแวร์ พวกเขาคิดว่าประเทศของ โปรแกรมเมอร์ลงอยู่ MITS และเพื่อให้พวกเขาเรียกว่าเอ็ดโรเบิร์ต หัวของ บริษัท ฯ ที่อ้างว่ามีรุ่นของ การเขียนโปรแกรมภาษาขั้นพื้นฐานเกือบจะพร้อม สำหรับ Altair พวกเขาไม่ได้ และโรเบิร์ตจะต้องได้รู้จักพวกเขาไม่ได้ เขาได้รับการโทร 10 วันตั้งแต่ คนที่มีพื้นฐานเกือบจะพร้อม และการตอบสนองต็อกของเขา คือ "คนแรก ที่แสดงขึ้นกับการทำงาน ขั้นพื้นฐานได้รับสัญญา ". JAY PAUL: เกตส์และอัลเลน ไม่เคยเห็น Altair พวกเขาไม่เคยเห็นแม้แต่ Intel 8080 ไมโครโปรเซสเซอร์ ที่เป็นหัวใจของ Altair แต่สองสามปีก่อนหน้านี้ อัลเลนได้เขียนโปรแกรม บนเครื่องคอมพิวเตอร์เมนเฟรมที่เทิดทูน การดำเนินการของก่อนหน้านี้ของอินเทล ไมโครโปรเซสเซอร์ และเวลาที่พวกเขาไปรอบนี้ จะทำในสิ่งเดียวกัน HIKARI: กับอินเทล 8080 คู่มือที่ด้านข้างของเขา อัลเลนนั่งลงที่ คอมพิวเตอร์ฮาร์วาร์ PDP-10 และเขียนโปรแกรมจำลองและซอฟต์แวร์ เครื่องมือที่จำเป็นในการทำโปรแกรม ในขณะที่เกตส์หยุดไป การเรียนและการอุทิศตัวของเขาเอง การออกแบบขั้นพื้นฐานที่ โดยใช้ทุกเคล็ดลับ เขารู้ว่าจะได้รับขนาด ลงมาด้านล่าง 4 กิโลไบต์ JAY PAUL: นอกใน Albuquerque, เอ็ดโรเบิร์ตได้รับโทรศัพท์จากเกตส์ ขอรายละเอียดเกี่ยวกับวิธีการ Altair จัดการการปฏิบัติที่เฉพาะเจาะจง ไม่มีใครเคยถามว่าก่อนที่จะ และโรเบิร์ตเริ่มที่จะได้รับความสนใจ HIKARI: กับการพัฒนา เครื่องมือและการออกแบบพร้อม เกตส์และอัลเลนเขียน โค้ดบน PDP-10, สมัครเป็นนักศึกษาฮาร์วาร์อีก มอน Davidoff การเขียนขั้นตอนการคณิตศาสตร์ หลังจากคืนสุดท้ายของ การเขียนโปรแกรมอัลเลนได้บนเครื่องบิน ที่จะส่งมอบขั้นพื้นฐานของพวกเขาที่จะ MITS เขาใช้เวลาเครื่องบินออกมานั่งกังวล และกลับมาอยู่ในเคมบริดจ์ เกตส์เป็นกังวล พวกเขาได้ผ่านการทดสอบขั้นพื้นฐานของพวกเขาและ มันเคยทำงานในโปรแกรมจำลอง แต่ถ้าจำลองผิด? JAY PAUL: เป็นเครื่องบิน เดินเข้ามาใกล้ Albuquerque, อัลเลนตระหนักว่าพวกเขา ขั้นพื้นฐานตอนนี้มีอยู่อย่างเรียบร้อย ในม้วนเล็ก ๆ ของ กดเทปกระดาษจะ จะไร้ประโยชน์โดยไม่ต้องแยกจากกัน โปรแกรมที่เรียกว่าโหลดที่ จะบอก Altair วิธี การอ่านเทปกระดาษเป็น ป้อนเข้าเครื่องโทรพิมพ์ เขาหยิบเอาสมุดบันทึกของเขาได้อย่างรวดเร็วและ ขีดเขียนลงโปรแกรมโหลด ในภาษา Assembly แล้วด้วยตนเอง แปลว่าเป็น 1s และ 0s Altair จะเข้าใจ HIKARI: อัลเลนได้รับการคาดหวังว่า สะอาดเล็ก ๆ น้อย ๆ บริษัท ที่มีเทคโนโลยีสูง ดำเนินการโดยคนในเหมาะสมกับธุรกิจ ดังนั้นเขาจึงรู้สึกประหลาดใจเมื่อพบกับโรเบิร์ต เขาที่สนามบินมองเช่นฟาร์ม มือ โรเบิร์ตก็ยังประหลาดใจ เมื่อเขาทิ้งฮาร์วาร์ โปรแกรมเมอร์ที่โรงแรมราคาแพง อัลเลนก็ต้องยอมรับว่า เขาไม่สามารถจ่ายห้องพัก JAY PAUL: MITS ตัวเองเป็น ตั้งอยู่ในห้างสรรพสินค้าแถบเต็มไปด้วยฝุ่น ภายในในรก โต๊ะเป็น Altair โหลดขึ้นกับ 5 กิโลไบต์ของ หน่วยความจำและการเชื่อมต่อด้วยสายเคเบิล ไปยังเครื่องโทรพิมพ์ โรเบิร์ตและหัวหน้าวิศวกร บิลเยตส์, รอลุ้น ขณะที่อัลเลนสลับตักของเขา โปรแกรมเป็น Altair โทรพิมพ์เริ่ม chugging มันดึง เทปกระดาษที่ผ่านการอ่านเทป มันต้องใช้เวลาอาจจะ 15 นาที จะโหลดโปรแกรม แล้วโทรพิมพ์ทันทีพิมพ์ พร้อมหน่วยความจำแล้วให้พร้อม และอัลเลนเริ่มพิมพ์ คำสั่งการทดสอบไม่กี่ ท่ามกลางความประหลาดใจของทุกคน ซอฟแวร์ทำงาน มีข้อบกพร่องอยู่แน่นอน แต่สิ่งที่สำคัญก็คือการทำงาน HIKARI: ต่อมาในทางของพวกเขาไป $ 3.00 รับประทานอาหารกลางวันที่พันโชของตัวต่อบิน ในหน้าต่างของรถกระบะ รถบรรทุกและต่อยอัลเลนบนแขน แต่ในจุดที่ไม่มีอะไร อาจจะเสียอารมณ์ Altair ในขณะนี้มีของพื้นฐาน ซอฟต์แวร์เชิงพาณิชย์เป็นครั้งแรกสำหรับบ้าน คอมพิวเตอร์ทำโดยพอลอัลเลนและบิล เกตส์, การทำธุรกิจกับไมโครซอฟท์ เดวิดเจลัน: หลาย ขอบคุณสองผู้อ่านของเรา [APPLAUSE] เดวิดเจลัน: ตอนนี้ คุณมีทางเลือกของคุณ ก่อนที่จะออกจากประกาย หรือเรืองแสงในที่ dark-- โอ้, รอสักครู่หนึ่งวินาที wait-- sparkly และเรืองแสงในที่มืดช้าง จาก CS50 ของตัวเอง Cheng Gong HIKARI: Aw ขอขอบคุณ เดวิดเจลัน: ทั้งหมด ที่ถูกต้องขอบคุณมาก [APPLAUSE] เดวิดเจลัน: เรื่องจริงดังนั้น นี่คือการที่จะบอกว่าสิ่งเหล่านี้ เครื่องจักรและความสะดวกกับที่เรา ใช้พวกเขาในขณะนี้และใช้เวลา เพื่อรับจริงๆ เริ่มที่นี่เพียงไม่กี่ก้าว จากนี้ละครที่เกิดขึ้นจริง และตอนนี้ในวันนี้ถ้าคุณไม่ได้รับ นี่คือแมกซ์เวดวอร์คิคอมพิวเตอร์ อาคารวิทยาศาสตร์ นอกจากนี้ยังมีรอบมุม และบนชั้นสองของเรื่องนี้ อาคารไม่แขวนสามหน้า จากซอร์สโค้ดเดิมที่ บิลเกตส์และพอลอัลเลนเขียน ในความเป็นจริงถ้าคุณใช้ซูม ในคุณสามารถมองเห็นไม่เพียง แต่ ชื่อของพวกเขาใน ชนิดเดิม แต่ยัง ลายเซ็นของพวกเขาว่าพวกเขาประดับ ไม่กี่ปีหลังเมื่อพวกเขาเข้าเยี่ยมชมล่าสุด แต่สิ่งที่น่าสนใจโดยเฉพาะอย่างยิ่ง เกี่ยวกับเรื่องนี้เป็นสิ่งที่พวกเขาออกไปทำ คือการเขียนโปรแกรมที่จะ ช่วยให้คนอื่น ๆ ที่จะเขียน โปรแกรมของตัวเอง ในช่วงเวลาทั้งหมดที่มีอยู่กับ เครื่อง Altair นี้ทำโดย MITS และสิ่งที่พวกเขาต้องการก็คือวิธีการบางอย่าง ทำให้มันง่ายสำหรับมือสมัครเล่นและผู้คน ต้องการให้เราในห้องนี้ในการเขียนโปรแกรมจริง ที่โดยไม่จำเป็นต้องทำความเข้าใจ รหัสการชุมนุมหรือเครื่อง รหัสหรือพระเจ้าห้าม 0s และ 1s โปรแกรมเมอร์เราเช่น ผู้ที่อยู่ในห้องนี้เรา ต้องการเพื่อให้สามารถที่จะแสดง ตัวเองมากขึ้นเช่นรหัสเทียม แม้ว่าจะเป็นจู้จี้อีกเล็กน้อย จู้จี้จุกจิกกว่าที่เราคุยกันเมื่อสัปดาห์ที่แล้ว เราไม่ต้องการที่จะเขียนโค้ดเช่นนี้ ซึ่งพอลอัลเลนและบิลเกตส์ได้ เราแทนต้องการที่จะเขียนโค้ดที่ มีลักษณะการใช้งานน้อยมากที่เป็นมิตร ขณะนี้เป็นที่รู้จักกันในภาษาขั้นพื้นฐาน และหมายเลขบรรทัดมีสิ่งที่คุณ ใช้เพียงหมายเลขบรรทัดของรหัส ที่คุณกำลังเขียน เราไม่ได้มีการ ทำวันนี้ แต่คุณสามารถดูที่นี่ วิธีพิมพ์ "สวัสดีโลก" จะแน่นอนน่าจะพิมพ์เพียงว่า และอื่น ๆ สิ่งที่บิลและพอลไม่ได้ ช่วยให้คนที่จะเขียนโค้ดเช่นนี้ แทนเเล้ถ้าคุณดูที่ วิทยาการคอมพิวเตอร์ wall-- รหัสเช่นนี้ ในความเป็นจริง CS50 เมื่อเร็ว ๆ นี้ มีโอกาสที่ ที่จะนั่งลงกับศาสตราจารย์แฮร์รี่ลูอิส ในภาควิชาวิทยาการคอมพิวเตอร์ที่ จริงสอนบิล เกตส์เมื่อหลายปีก่อน และกำลังยืนอยู่ที่นี่ก่อน ทั้งสามหน้าของเนื้อหา ลองมาดู HARRY LEWIS: สิ่งที่คุณต้องอยู่ที่นี่ รายชื่อของชิ้นแรกของซอฟแวร์ เขียนโดยบิลเกตส์และพอล อัลเลนผู้ก่อตั้งไมโครซอฟท์ ดังนั้นรหัสเป็นที่น่าสนใจ ด้วยเหตุผลสองประการ แรกของทุกคนมันก็กลายเป็น ผลิตภัณฑ์แรกไมโครซอฟท์ ซึ่งเป็นล่าม ภาษาการเขียนโปรแกรมขั้นพื้นฐาน และประการที่สองนี้คือ หนึ่งในความพยายามครั้งแรก เพื่อสร้างล่ามสามัญเพื่อ ผู้คนสามารถใช้เครื่องคอมพิวเตอร์ส่วนบุคคล ดังนั้นบิลเกตส์เป็น นักศึกษาปริญญาตรีที่ฮาร์วาร์ ผมเริ่มการเรียนการสอนที่ฮาร์วาร์ในปี 1974 นี้ทำในปี 1975 ดังนั้นจึงเป็นช่วงต้นของอาชีพของเขา และต้นในอาชีพของฉัน ที่จริงผมสอนในบิล แน่นอนในเวลานี้ พอลอัลเลนไม่ได้ ฮาร์วาร์นักเรียน แต่เขา เคยเป็นโรงเรียนมัธยม เพื่อนร่วมชั้นของบิลเกตส์ ถ้าคุณมาและดู ที่รายการของคุณจะ จริงหาที่สาม ชื่อมอน Davidoff, ซึ่งเป็นเพื่อนร่วมชั้นของเกตส์ ที่นี่ที่ฮาร์วาร์ ตกลงดังนั้นนี่คือ แสดงความคิดเห็นที่น่าสนใจได้ที่นี่ มันกล่าวว่า "ใน 4K สามารถลบรากที่สอง แต่สำหรับลูปควรจะยังคงทำงาน ". ตกลงดังนั้นสิ่งที่หมายความว่ามีที่ มีสองวิธีที่จะรวบรวมโปรแกรมนี้ หนึ่งคือการทำงานในรุ่น ของคอมพิวเตอร์เครื่องนี้ Altair ที่มีเพียง 4K คำพูดของ หน่วยความจำ 4,096 คำพูดของหน่วยความจำ แต่รุ่นใหญ่มี 8K และอื่น ๆ สิ่งที่บอกว่าเป็น ที่ในรุ่น 4K คุณต้องลบบาง รหัสที่จะให้มันพอดี และหนึ่งในสิ่งที่ ที่จะถูกลบ จะเป็นขั้นตอนการรากที่สอง แต่เห็นได้ชัด สำหรับลูปควรจะยังคง ทำงานได้แม้ในขณะที่คุณกำลังรวบรวมลง เพียงรุ่น 4K ของคอมพิวเตอร์ เดวิดเจลันดังนั้นหนึ่งในรูปแบบที่ ในขณะที่เราจะเห็นในวิทยาการคอมพิวเตอร์ คือความคิดนี้ ฝังรากลึกและนามธรรม และจริงๆยืนอยู่บนไหล่ ของคนที่ได้มาก่อนเราไม่ได้ ซึ่งแตกต่างจากบางส่วนของบิลเกตส์ และพอลอัลเลนเรื่องเล่าที่นี่ และสิ่งที่นี้หมายความว่า วันนี้เราสามารถใช้สำหรับการที่ รับว่าสิ่งที่เป็นจริง ง่ายขึ้นสำหรับเราในการเขียนโค้ด อันที่จริงรหัสที่เรากล่าวเมื่อวันศุกร์เป็น เป็นที่รู้จักกันมากขึ้นในทางเทคนิคเป็นรหัสที่มา และมันก็เป็นภาษาอังกฤษเช่นรูปแบบนี้ ที่มากขึ้นที่เหมาะสมและกำหนดดีกว่า กว่าสิ่งที่ต้องการรหัสเทียมสำหรับ ที่ไม่มีความหมายอย่างเป็นทางการ และวันนี้สิ่งที่เรากำลังจะ จะมุ่งเน้นการเป็นรหัสที่มา ที่มีลักษณะเช่นนี้ซึ่ง เป็นที่ยอมรับได้อย่างรวดเร็วก่อน มีลักษณะที่เป็นความลับอย่างสมบูรณ์ และตรงไปตรงมาเป็นวิธีสกอร์เพิ่มเติม ที่ซับซ้อนกว่าโปรแกรมพื้นฐานเป็น ทั้งหมดโปรแกรมนี้ไม่ การเรียกคืนคือสิ่งที่พวกเราพูด? มันเป็นเพียงแค่พิมพ์ "สวัสดีโลก". และยังมองไปที่ทุกสิ่งที่เราต้องการ เพื่อห่อรอบที่วลีที่ง่ายมาก แต่ก่อนที่จะยาวทั้งหมดของ เส้นเหล่านี้และอื่น ๆ จะให้ความรู้สึกที่ดีมากกับคุณ และไหลเป็นดังนี้ สิ่งที่เราต้องการที่จำหน่ายของเรา คือการใช้รหัสเช่นแหล่งที่มา รหัสที่เราเพิ่งเห็น และเราจำเป็นต้องโปรแกรมใหม่ เพื่อเรียกใช้ผ่าน เราจำเป็นต้องมีขั้นตอนวิธีการที่สามารถ แปลงรหัสแหล่งที่มาเช่นนี้ เป็นรหัสวัตถุ 0s และ 1s ในคำอื่น ๆ สิ่งที่ เราจะได้เรียนรู้วันนี้ เป็นวิธีการที่จะทำเช่นนี้เขียน รหัสแหล่งที่มาขึ้นด้านบน ผ่านมันเป็น input เพื่อพิเศษ โปรแกรมที่เรียกว่าคอมไพเลอร์, และเรากำลังจะสร้างรหัสวัตถุ ซึ่งเป็นเพียงวิธีแฟนซีของ บอกว่าเราจะนำสิ่งที่ ที่มีลักษณะเช่นนี้ผ่านมัน เป็นโปรแกรมที่เรียกว่าคอมไพเลอร์, การผลิตรหัสวัตถุ ที่มีลักษณะเช่นนี้ ดังนั้นเหล่านี้เป็นตัวอักษร รูปแบบของการ 0s และ 1s ที่มีความเข้าใจโดย คอมพิวเตอร์ของอินเทลวันนี้ ว่าถ้าตีความโดย CPU, สมองภายในของคอมพิวเตอร์ ตัวอักษรจะพิมพ์ออกมา ค่อนข้างง่าย "สวัสดีโลก". ตอนนี้มีวิธี 0s และ 1s กว่าที่คุณ หวังว่าอาจจะมีความจำเป็นสำหรับการที่ แต่นั่นเป็นเพราะเรากำลังสร้าง ในการจัดการที่ดีของความซับซ้อน ที่เราต่อจากนี้ไปสามารถใช้สำหรับการรับ ในคำอื่น ๆ ที่ผู้คนจำนวนมากมาร์ท ได้ให้เราจำนวนมากเครื่องมือเย็น และซอฟต์แวร์ที่มีประสิทธิภาพที่เรา ตอนนี้สามารถทำให้โครงการของเราเอง ดังนั้นขอเริ่มต้น ในขณะที่เมื่อวันศุกร์และ สำหรับปัญหาการตั้งค่า 0 ในสัปดาห์นี้ คุณจะได้เล่นใน โลกที่มีลักษณะเช่นนี้ วันนี้เริ่มต้นและสำหรับปัญหา ชุดที่ 1 ในสัปดาห์หน้ารหัส จะไปดูอีกหน่อย ความลับ แต่เป็นหน้าที่ จะเป็นเหมือนกัน เพื่อแจ้งให้ทราบด้านบนเป็นเกา ด้านล่างเป็นซีตรงไปตรงรอยขีดข่วน เป็นผู้ใช้มากขึ้น เป็นมิตรและสามารถเข้าถึงได้ แต่ถ้าตอนนี้คุณเปรียบเทียบสายตาด้านบน ด้านล่างมีชนิดของ 1-1 ความสอดคล้องระหว่าง ชิ้นส่วนปริศนาและภาษา เรากำลังจะเล่นกับ โดยเฉพาะอย่างยิ่งบอกว่า ปริศนาสีฟ้าชิ้นขึ้นด้านบน เทียบเท่ากับสิ่งที่เห็นได้ชัดคำ หรือวลีพิเศษในภาษานี้ เรียกว่า C? ผู้ชม: Printf เดวิดเจลัน: Printf นั่นหมายถึงการพิมพ์รูปแบบ และนี่เป็นเพียงจินตนาการ วิธีที่บอก printf ใน C เป็นไปได้ที่คำสั่งหรือการทำงาน สิ่งที่พิมพ์ไปที่หน้าจอ มันไม่สิ่งที่พิมพ์ไปที่หน้าจอหรือไม่ สิ่งที่คุณบอกให้ภายใน ของคำพูดที่อยู่ภายในวงเล็บ ดังนั้นอีกครั้งเป็นที่ยอมรับ มีจำนวนมากของสิ่งที่เป็น ที่คุณต้องเก็บไว้ในใจ วงเล็บ, คำพูด, อัฒภาค และทั้งหมดนี้ แต่ทั้งหมดที่มีการจัดเรียง ของข้างจุด Takeaway ที่น่าสนใจสำหรับตอนนี้ คือบล็อกพูดใน Scratch สวยมากเทียบเท่ากับ คำสั่ง printf ในซี ในขณะที่ชิ้นส่วนจิ๊กซอว์สีเหลือง ขึ้นด้านบนเมื่อธงสีเขียวคลิก น่าจะเทียบเท่า กับสิ่งที่คำหลักที่นี่? ผู้ชม: หลัก เดวิดเจลันดังนั้นหลัก บางที int เป็นโมฆะอาจจะ แต่ชนิดหลักของเสียงเหมือน จึงเป็นสิ่งสำคัญและแน่นอนมันเป็น ดังนั้นเมื่อธงสีเขียวคลิก คืออีกชิ้นจิ๊กซอว์ ที่ kicks off โปรแกรม Scratch ทั้งหมด แต่เราจะไปตอนนี้เริ่มเรียก หลักฟังก์ชันที่นี้เป็นที่รู้จักกันเป็นหลัก ตอนนี้ในขณะเดียวกันเราจะ พูดคุยดังต่อไปนี้ เราอาจจะเรียกว่าฟังก์ชั่น และมันอาจจะดู โดยเฉพาะเช่นนี้ ดีสิ่งที่เกี่ยวกับลูป? ถ้าเราต้องการที่จะเริ่มต้นการแปลงหรือ แปลมากขึ้นในการป้องกันรอยขีดข่วนที่ C, สิ่งนี้ที่นี่เห็นได้ชัดเพียง กล่าวว่า "โลกสวัสดี" ตลอดไป ดังนั้นถ้าคุณเชื่อมโยงเหล่านี้ สคริปที่มีแมวในเกา, ก็แค่จะให้บอกว่า ในรูปแบบของการ์ตูนฟองบาง "สวัสดีโลกสวัสดีชาวโลกสวัสดี โลก "nauseum โฆษณาตลอดไป ถ้าเราต้องการที่จะทำบางสิ่งบางอย่างที่คล้ายกันใน C ก็จะดูเล็ก ๆ น้อย ๆ ที่เป็นความลับ แต่เราสามารถบรรลุเดียวกัน ผลที่เราจะได้ในที่สุด หากับรูปแบบเช่นนี้ ฉันจะใช้ printf อีกครั้ง เพราะในตอนท้ายของวัน ฉันต้องการพิมพ์ "สวัสดีโลก". และฉันเห็นได้ชัดโดยใช้ คำหลักที่ไม่ได้ตลอดไป มันแทนคำพูดในขณะที่ แต่เพียงความหมายใน ภาษาอังกฤษในขณะที่ชนิดของ แสดงให้เห็นชนิดของวงรอบหรือบางส่วน เพื่อที่ว่าจะเกิดขึ้น คำหลักที่ใช้ C และในขณะที่จริงทำไมไม่ในขณะที่ ความจริงได้อย่างมีประสิทธิภาพหมายถึงการถาวรหรือไม่ ดีในขณะที่เราจะเร็ว ๆ นี้ ขอขอบคุณทุกมากขึ้น มีสอดนี้ถัดไป ที่คุณสามารถใส่นิพจน์บูลีน และตราบใดที่ การแสดงออกเป็นความจริงรหัสนี้ เป็นแสดงระหว่างทั้งสอง วงเล็บปีกกาที่เราจะเรียกพวกเขา ก็จะให้ทำงานอีกครั้งและอีกครั้ง ความจริงก็คือค​​วามจริง ดังนั้นในขณะที่ความหมายที่แท้จริง เพียงแค่ทำเช่นนี้ตลอดไป มันเกือบจะโง่ สร้างการแสดงตัวเอง แต่ไม่มีตลอดไป คำหลักในซีมีในขณะที่เป็น และมีที่ง่ายมาก นิพจน์บูลีนเหมือนจริง และอื่น ๆ นี้เราจะเห็น ประสบความสำเร็จในผลเดียวกัน วิธีการอื่นที่คุณอาจใช้ห่วงหรือไม่ ทั้งใน Scratch คุณอาจ ยากรหัสตัวเลขที่เฉพาะเจาะจง ซ้ำในวงที่นี่ และเพื่อให้เป็นสิ่งที่เรา อาจทำในรุ่น C นี้ โดยที่เราได้เรียกว่าสำหรับวง และสำหรับวงที่นี่เป็นไป ย้ำค่อนข้างลับ, จากมูลค่า 0 ขึ้น แต่น้อยกว่า 10 ตอนนี้ตัวแปรใน Scratch คุณอาจไม่ได้มี โอกาสที่จะใช้เหล่านี้ แต่สิ่งที่จุดโดยทั่วไป ของตัวแปรที่เราไม่บอกว่าเมื่อสัปดาห์ที่แล้ว? มีอะไรที่? ผู้ชม: คะแนน เดวิดเจลัน: เพื่อชี้? โอ้ชี้ ตกลงการติดตามของจุด ตัวอย่างเช่นในเกม หรือมากกว่าโดยทั่วไปทำ สิ่งที่มีตัวแปรหรือไม่ สิ่งที่ยูทิลิตี้ของพวกเขาหรือไม่ ผู้ชม: หน่วยความจำ เดวิดเจลัน: ใช่ดังนั้นหน่วยความจำ มันเป็นบางสิ่งบางอย่างสำหรับการจัดเก็บ และการเรียงลำดับของภาพโง่ผมใช้ ครั้งสุดท้ายที่เป็นเหมือนชามแก้วนี้ และถ้าเราต้องการที่จะเก็บ บางสิ่งบางอย่างที่อยู่ภายในตัวแปร ตัวอย่างเช่นตอนนี้ มูลค่าหกเพราะมี หกลูกปิงปองที่นี่ มันเป็นเพียงชนิดของการจัดเก็บข้อมูลบางอย่าง คอนเทนเนอร์ที่อยู่ใต้ฝากระโปรง จะดำเนินการกับบิต, 0s และ 1s, แต่เครื่องคอมพิวเตอร์ที่เกิดขึ้นจะทำอย่างนั้น ดังนั้นใน Scratch ถ้าเรา ต้องการที่จะมีตัวแปร เราสามารถใช้บล็อกสีส้มเช่นนี้ เราจะเรียกตัวนับที่ ในกรณีนี้โดยเฉพาะ ฉันเริ่มต้นมันเป็น 0 และสิ่งที่ฉันแล้วทำอย่างไร ตลอดกาลพูดเคาน์เตอร์ซึ่งถ้า คุณเล่นกับที่ในเกา คุณก็จะเห็นรอยขีดข่วน แมวหรืออะไรก็ตามเครื่องแต่งกายที่คุณใส่ใน เขาจะพูดตัวเลขที่อยู่ในคำถาม เปลี่ยนเคาน์เตอร์โดยที่ 1 เป็น เช่นการเพิ่มขึ้น 1 และเพื่อให้เป็นไป นับจากสิ่งที่เพื่ออะไร จาก 0 ถึงอินฟินิตี้หรือ จนกว่าจะมีการหยุดพักเกา หรือจนกว่าคุณจะเรียงลำดับของ หมดความสนใจในการดู วิธีการที่สูงจริง ๆ แล้วเขาสามารถนับ ดังนั้นวิธีการที่เราอาจจะไปที่ C แปลงนี้ มันจะดูเล็ก ๆ น้อย ๆ ที่เป็นความลับ อีกครั้ง แต่ถ้าคุณมองไปที่แต่ละ เส้นเหล่านี้ทีละ พวกเขาชนิดของรายการโดยทั่วไป ดังนั้นเห็นได้ชัด int เป็นไปได้ มีบางความหมายพิเศษในซี เราจะเห็นว่าอีกครั้ง เช่นกันมันหมายความว่าจำนวนเต็ม ดังนั้นมันก็หมายถึงจำนวน นั่นคือประเภทของ ชามแก้วที่ฉันต้องการหนึ่ง ที่สามารถเก็บตัวเลข ไม่ลูกปิงปอง และฉันจะใช้เครื่องหมายเท่ากับ มีการกำหนดค่าเป็น 0 ดังนั้นที่ค่อนข้างเหมือนที่ตั้ง นับถึง 0 แต่ในซี ในขณะเดียวกันในขณะที่ความจริงที่เป็น เทียบเท่าของหลักสูตรที่จะตลอดไป แม้ว่ามันจะเป็นความลับเล็ก ๆ น้อย ๆ แล้วภายในวงเล็บปีกกา และคุณสามารถคิดวงเล็บปีกกาเหล่านี้ ซึ่งคุณสามารถพิมพ์บนแป้นพิมพ์ของคุณ เป็นจริงเป็นเช่นความโค้งใน เหล่านี้บล็อกห่วงเหลืองใน Scratch มันโอบกอดหลายบรรทัดของรหัส printf จะได้รับ เล็ก ๆ น้อย ๆ ที่น่ากลัวในขณะนี้เพราะฉัน เห็นไม่เพียง แต่คำพูดในวงเล็บ แต่อะไรที่เป็นของใหม่ syntactically ในตัวอย่างนี้? มีร้อยละงเป็น แล้วทับขวา n คือมี เราไม่เห็นว่าก่อนที่จะถึง แม้ว่าผมไม่ได้พูดถึงมัน แล้วมีเครื่องหมายจุลภาค และจากนั้นยังมีเคาน์เตอร์ แต่เราจะเห็นได้ในเวลาเพียง ช่วงเวลาที่ว่านี้เป็นเพียงแค่ วิธีมาตรฐานในการพูดการพิมพ์ "จำนวนทศนิยม" อ้าง unquote, บางตัวเลขทศนิยม แต่ฉันจะบอกคุณในภายหลัง สิ่งที่ตัวเลขทศนิยมที่เป็น ดังนั้นความจริงที่ว่ามีเครื่องหมายจุลภาค ในสายนี้ printf คำพูด, หมายถึงไปข้างหน้าและการพิมพ์ บางตัวเลขทศนิยม อ้อและโดยวิธีการที่ตัวเลขคือ สิ่งที่ค่าของตัวแปรนี้ และอื่น ๆ ให้มากขึ้นนี้ ชัดเจนเราจะเห็นตัวอย่างเช่น ก่อนที่จะยาวที่เกี่ยวข้องกับสิ่ง printf ในบริบทของโปรแกรม C จริง ขณะนี้เป็นเพียงการห่อขึ้นบาง ของโครงสร้างเหล่านี้ สำนวนที่บูลีนที่คุณอาจไม่ได้ โอกาสที่จะใช้เหล่านี้ในโปรแกรมของคุณ แต่คุณอาจจะเป็นอย่างดี โดยเฉพาะอย่างยิ่งถ้าใช้เงื่อนไข และเพื่อให้ทั้งสองตัวอย่างจาก เกาหมายถึงถ้า x น้อยกว่าปี, หรือถ้า x น้อยกว่า Y และ y น้อย กว่า Z, วิธีการที่เราอาจจะแปลว่า? ดีใน C มันเป็นเพียงแค่ จะมีลักษณะเช่นนี้ ความลับวงเล็บน้อยมาก บาง ampersands แปลก แต่พื้นฐาน ความคิดที่จะเป็นง่ายๆเป็นพวกเขา อยู่ในโลกชิ้นส่วนปริศนา เรากำลังเพียงตรวจสอบว่าสิ่งที่ น้อยกว่าสิ่งอื่น วิธีการเกี่ยวกับเงื่อนไข? สรุปในภาษาอังกฤษเป็นสิ่งที่ไม่นี้ ก้อนของรหัสเกาที่คุณจะพูด? ผู้ชม: เปรียบเทียบตัวเลขสอง เดวิดเจลัน: เปรียบเทียบสอง หมายเลขและถ้า x น้อยกว่าปี มันบอกว่าให้มากที่สุด ถ้า x มากกว่าปี มันบอกว่าเท่าที่อื่น ถ้า x เท่ากับปีมันบอกว่าเท่า ตอนนี้ที่ไม่ x และ y มาจากไหน? ใครจะรู้ ก้อน Scratch นี้ รหัสจะออกจากบริบท แต่สิ่งที่เราต้องการที่จะทำตอนนี้คือการแปล นี้เพียงช่วงเวลาที่จะเห็น เพื่อที่คุณจะได้รับความสะดวกสบาย สัปดาห์ในชุดปัญหานี้ 0 เล่นอยู่ในโลกนี้ ด้านซ้ายตระหนัก ความคิดที่จะไม่เปลี่ยนแปลง ในสัปดาห์นี้หรือถัดไปหรือเกิน เราเพียงแค่ไป เริ่มต้นเขียนสิ่งที่ ในวิธีที่แตกต่างกับของเรา คีย์บอร์ดแทนการใช้เมาส์ของเรา ดังนั้นหาก x น้อยกว่า y, มีวงเล็บบางอย่างที่นั่น แล้วมีวงเล็บปีกกาบาง อีกครั้งเพื่อสรุปชนิดของมัน เช่นเดียวกับชิ้นส่วนสีเหลืองปริศนาทำ และฉันจะ printf x น้อยกว่าปีและอื่น ๆ อะไรคือสิ่งที่ดีเกี่ยวกับ C, ในขณะที่คุณสามารถดูที่นี่ คือการที่คุณไม่ได้รับการทำรังนี้ ทำรังรังที่จำเป็น จะผลักดันให้รหัสของคุณไปทางขวา คุณแทนสามารถมีทุกอย่าง ผู้เล่นตัวจริงอย่างเป็นระเบียบเช่นนี้ แต่นั่นเป็นเพียงแค่ความงาม รายละเอียดเราจะได้เห็นอีกครั้งก่อนที่จะยาว ขวาทั้งหมด เพื่อที่จะนำเรากลับไปที่ โปรแกรมนี้มองที่เป็นความลับ ลองจริงเขียนรหัสบางอย่าง ตอนนี้คุณจะไปเกี่ยวกับการเขียนโค้ด? ทุกปีเหล่านี้ที่คุณได้เป็นเจ้าของ Mac หรือ PC สก์ท็อปหรือแล็ปท็อป คุณมีความสามารถจริง ที่จะเริ่มต้นการเขียนโค้ดโปรแกรม แต่คุณอาจจะหายไป ชนิดพิเศษของโปรแกรม แน่นอนคุณสามารถเขียนโค้ด แต่คุณไม่สามารถจำเป็น ออกมาจากกล่อง แปลงรหัสแหล่งที่มาที่ เป็นรหัสวัตถุ 0s และ 1s ไม่มีอะไรในคอมพิวเตอร์ของคุณ ผู้ชม: คอมไพเลอร์ เดวิดเจลันดังนั้นคอมไพเลอร์ขวา ตอนนี้ส่วนใหญ่ของคุณอาจ ไม่ได้เป็นเจ้าของคอมไพเลอร์, ไม่เคยดาวน์โหลดคอมไพเลอร์ แต่คุณจะเห็นคุณสามารถดาวน์โหลดได้ ชอบมากที่สุดชิ้นส่วนอื่น ๆ ของซอฟแวร์ ในโลกของ Mac OS คุณอาจ ดาวน์โหลดหรือได้ดาวน์โหลดแล้ว สิ่งที่เรียกว่า Xcode หรือ GCC หรือเสียงดังกราว ถ้าคุณมาจาก หน้าต่างโลกที่คุณอาจจะ ได้ดาวน์โหลดภาพสตูดิโอ Visual Basic, สภาพแวดล้อมเช่นนั้น มีหลายสิบของคอมไพเลอร์เป็น วันนี้ที่คุณอาจใช้ แต่ในระยะสั้นของมันที่นี่ คือว่ามันจะเป็นความเจ็บปวด และตรงไปตรงเทคโนโลยี ฝันร้ายสำหรับหลายร้อย ของคนที่มีความแตกต่างกัน การกำหนดค่าคอมพิวเตอร์ทุก กำหนดค่าเครื่องของพวกเขา ในตรงทางเดียวกัน เพื่อให้เราทุกคนสามารถจะอยู่ในหน้าเดียวกัน ดังนั้นสิ่งที่เราแทนทำ ใน CS50 คือเราให้คุณ สภาพแวดล้อมมาตรฐาน สภาพแวดล้อมลินุกซ์ที่ จะดูเล็ก ๆ น้อย ๆ บางสิ่งบางอย่างเช่นนี้ คุณจะเห็นมากขึ้นในเรื่องนี้ ปัญหาชุดที่ 1 ซึ่งเป จะไปออนไลน์นี้คืนวันศุกร์ และสิ่งที่นี้หมายถึง คือการที่คุณต่อจากนี้ไป จะต้องสามารถที่จะ ดาวน์โหลดและติดตั้งโปรแกรม เรียกว่า CS50 เครื่องใช้ และคุณกำลังจะดาวน์โหลดและ ติดตั้งโปรแกรมที่เรียกว่าอีก ไฮเปอร์ไวเซอร์ซึ่งเป็นเพียง วิธีแฟนซีของความสำเร็จนี้ ไม่ว่าคุณจะเป็นเจ้าของ Mac หรือ PC หรือ คอมพิวเตอร์ลินุกซ์หรือคอมพิวเตอร์ที่ใช้โซลาริส หรืออะไรก็ตามปฏิบัติการบ้า ระบบที่คุณกำลังทำงาน คุณกำลังจะดาวน์โหลดโปรแกรม ที่เรียกว่าไฮเปอร์ไวเซอร์ที่ ไปทำงาน CS50 เครื่องใช้ในคอมพิวเตอร์ของคุณ ไม่ว่าสิ่งที่ระบบปฏิบัติการของคุณ ไฮเปอร์ไวเซอร์ในคำอื่น ๆ แปลง สิ่งที่เราเป็นภาษาอะไรก็ตาม สิ่งที่คำแนะนำของคุณ คอมพิวเตอร์ของเข้าใจ ดังนั้นนี่คือชั้น และอีกครั้งนี้เป็นชนิด ของต่าง ๆ ในเครื่องคอมพิวเตอร์ วิทยาศาสตร์อาคารด้านบนของสิ่ง คุณอาจมี Windows คุณอาจมี Mac OS แต่เริ่มต้นในสัปดาห์หน้าคุณ จะได้ดาวน์โหลด ชิ้นฟรีของซอฟต์แวร์ ที่เรียกว่าไฮเปอร์ไวเซอร์ คุณกำลังจะได้ดาวน์โหลดชิ้น ของซอฟต์แวร์ที่เรียกว่า CS50 เครื่องใช้ ที่จะทำงานในไฮเปอร์ไวเซอร์, ซึ่งจะทำงานบนเครื่องคอมพิวเตอร์ของคุณ และผลลัพธ์ที่ได้คือ ที่เราทุกคนจะ มีหน้าต่างง่ายๆเช่น นี้บน Mac หรือ PC ของคุณ ที่ทำให้เราภาพลวงตาของทั้งหมด ที่ใช้ระบบปฏิบัติการเดียวกัน โดยไม่ต้องอื่น ๆ ส่งผลกระทบต่อคอมพิวเตอร์ของคุณ และคุณสามารถแบบเต็มหน้าจอ มันและเป็นหลักประพฤติ ราวกับว่าคุณกำลังทำงานอยู่ ระบบปฏิบัติการที่เรียกว่าลินุกซ์ ซึ่งเป็นสิ่งที่ CS50 เครื่องจะขึ้นอยู่กับ ดังนั้นขอให้ใช้งานจริงนี้ ตอนนี้ในการเขียนโปรแกรม คุณสามารถเขียนโปรแกรม โดยใช้โปรแกรม Microsoft Word คุณสามารถเขียนโปรแกรม ใช้โปรแกรม TextEdit หรือ Notepad, หรือ WordPad หรือสวยมากคำใด ๆ โปรแกรมประมวลผลคุณเคยใช้ แต่ความจริงก็คือค​​ุณไม่ควร จริงๆใช้ใด ๆ ของโปรแกรมเหล่านั้น แน่นอนคุณไม่ควรใช้ บางสิ่งบางอย่างเช่น Microsoft Word, ซึ่ง มีหันหน้าตัวหนาและตัวเอียงและ แบบอักษรที่ใหญ่กว่าและแบบอักษรขนาดเล็ก เนื่องจากคอมพิวเตอร์ไม่ได้ เกี่ยวกับการดูแลใด ๆ ที่ คอมพิวเตอร์เป็น ไปดูแลเกี่ยวกับการเป็น เช่นภาษาอังกฤษเขียนคำแนะนำในซี ดังนั้นสิ่งที่เราจะทำภายใน ของเครื่องใช้ CS50 จะใช้โปรแกรมได้อย่างอิสระ ที่มีอยู่และเป็น ที่ติดตั้งในครั้งนี้ เครื่องใช้ที่เรียกว่า Gedit และ Gedit เป็นเพียงที่ง่ายสุด แก้ไขข้อความเช่น Mac OS ของ TextEdit, เช่น Windows Notepad ที่จะ มองสิ่งที่เล็ก ๆ น้อย ๆ เช่นนี้ จึงขอจริงไม่ ดูสไลด์นี้ แต่ขอจริงไปเป็น สภาพแวดล้อมของตัวเอง ฉันจะไปข้างหน้าและ เข้าสู่ระบบในหน้าต่างอื่น ๆ ที่นี้ เพื่อ CS50 เครื่องใช้ซึ่งฉันของฉัน ก่อนติดตั้งบนแล็ปท็อปของฉันที่นี่ ขอให้สังเกตว่าเช่น Windows และ Mac OS ก็มีบางเมนู เช่น Windows มันทำให้ มันลงไปที่นั่นแทน ของ Mac OS ซึ่งทำให้มันลงไปที่นั่น แต่ความเป็นจริงคือมัน ทุกชนิดของเดียวกัน และในที่นี่เป็นทั้ง พวงของซอฟแวร์ มี Dropbox เป็น มีทั้งกลุ่มของอุปกรณ์เสริมที่, โปรแกรมกราฟิกที่เราจะ ใช้ต่อไปในระยะยาวสำหรับชุดปัญหา มีเว็บเบราว์เซอร์ที่สร้างขึ้นในเพื่อให้เป็น ว่านี่คือคอมพิวเตอร์เต็มเปี่ยม ภายในเครื่องคอมพิวเตอร์ แต่ผมกำลังจะไปคลิกที่นี้ ซ้ายสุดไอคอนสีขาวที่นี่ ซึ่งเป็นไอคอนสำหรับ Gedit และมันจะเปิดหน้าต่าง ที่มีสามแผงกับมัน หนึ่งซ้ายหนึ่งด้านบนและด้านล่างหนึ่ง ตอนนี้มันอยู่ในนี้ด้านบนขวาว่า ฉันจะไปจริงเขียนรหัสบางอย่าง จึงขอทำเช่นนี้ ,. ฉันจะไปที่ File, Save และคุณอาจจะไม่เคยได้เห็น หน้าต่างนี้โดยเฉพาะอย่างยิ่งก่อนที่จะ แต่นี้เป็นเช่น Mac OS หรือ Windows มันเป็นเพียงหน้าต่าง กับทุกโฟลเดอร์ ที่ฉันมีอยู่ในคอมพิวเตอร์เครื่องนี้ และฉันจะบันทึก แฟ้มเป็น hello.c และฉันจะไป ข้างหน้าและคลิกบันทึก และตอนนี้สังเกตเห็นฉันมีแท็บ ที่ hello.c ซ้ายด้านบนที่เรียกว่า ดังนั้นอาจจะสวย คุ้นเคยแม้ว่าคุณจะไม่ได้ ใช้โปรแกรมนี้โดยเฉพาะก่อนที่จะ และตอนนี้ฉันกำลังจะไปพิมพ์ในบรรดา ลำดับความลับอย่างเป็นธรรมของคำสั่ง ที่เราเห็นช่วงเวลาที่ผ่านมา รวมถึงมาตรฐาน I / O.h เพิ่มเติมเกี่ยวกับที่เร็ว ๆ นี้ เป็นโมฆะหลัก int เปิดหยิก รั้งปิดวงเล็บปีกกา แล้วภายในมีฉันคิดว่าเป็น ที่เรามี "สวัสดีโลก" อัฒภาค และตอนนี้บันทึก ดังนั้นนี่คือโปรแกรมที่เขียนใน C, เขียนดังนั้นในรหัสแหล่งที่มา แต่ผมก็ไม่สามารถรันโปรแกรมนี้ ชนิดของฉันต้องการที่จะเป็นสองเท่า คลิกที่ไอคอนบาง แต่ไอคอนที่มีอยู่อื่น ๆ กว่าแฟ้มรหัสแหล่งที่มา สิ่งที่อีกครั้งเป็นกระบวนการตอนนี้ที่ ฉันต้องการที่จะเรียกใช้แฟ้มนี้ผ่าน? ผู้ชม: คอมไพเลอร์ เดวิดเจลันดังนั้นคอมไพเลอร์ ดังนั้นในคอมพิวเตอร์ที่แตกต่างกันคุณ ทำเช่นนี้ในรูปแบบที่แตกต่างกัน แต่สิ่งที่เราได้ทำที่นี่ใน เครื่องใช้ CS50 ที่ ตัวแทนของวิธีการที่คุณอาจจะ ทำเช่นนี้ในระบบที่แตกต่างกัน เป็นผมก็จะไป ทำงานทำให้คำสั่งที่เรียกว่า และทำให้เป็นอักษรที่จะไปทำอย่างนั้น ทำให้ฉันโปรแกรม เพื่อให้เป็นไป ใช้คอมไพเลอร์สำหรับฉัน และชื่อของโปรแกรม ฉันต้องการจะทำคือสวัสดี ตอนนี้ให้เป็นโปรแกรม และทำให้เป็นสมาร์ทพอที่จะ ตระหนักดีว่าหากผมบอกว่าให้สวัสดี ก็จะไปดูโดยอัตโนมัติ สำหรับไฟล์ที่เรียกว่า hello.c เพียงเพราะนั่นคือ วิธีที่จะกำหนดค่า ดังนั้นเมื่อตอนนี้ผมกด Enter นี่นี้ สายลับบ้าเพิ่งดำเนินการ และเชื่อฉันก่อน ยาวภายในเพียงวัน คุณจะเข้าใจสิ่งที่ทุก ที่หมายถึงเรื่องไร้สาระ แต่ตอนนี้เพิ่งรู้ว่าทำ การดำเนินการที่ถูกสั่งของคอมไพเลอร์ ในคำอื่น ๆ ก็พบ คอมไพเลอร์ในคอมพิวเตอร์ของฉัน ที่ติดตั้งไว้ล่วงหน้า ในเครื่องใช้ CS50 ว่าเราจะส่งให้คุณในปัญหาชุดที่ 1 และมันแล้วเอา hello.c เป็น การป้อนข้อมูลและการผลิตที่เห็นได้ชัด 0s และ 1s เป็นผลผลิต และโดยการเริ่มต้นสิ่งที่มันไม่เป็นมันจะช่วยประหยัด 0s เหล่านั้นและ 1s ในไฟล์ที่เรียกว่าสวัสดี และแม้ว่ารูปแบบนี้อาจจะเกินไป จะใหม่สำหรับคุณเพียงแค่ด้วยการพูดว่าจุด เฉือนสวัสดีเป็นไปได้ หมายถึงการที่ผมใช้โปรแกรมนี้ สำหรับตอนนี้และสำหรับสองสามอย่างน้อย ของสัปดาห์ที่ผ่านมาเกือบทั้งหมดของโปรแกรม เราเขียนเป็นไปได้ใน หน้าต่างข้อความสีดำและสีขาว ไม่มีหนูไม่มีการคลิก, หน้าต่างไม่มีไอคอนไม่มี เราจะให้มันง่าย และมุ่งเน้นไปที่ความคิดพื้นฐาน ในตอนแรกก่อนที่เราจะได้รับบางสิ่งบางอย่าง ระดับที่สูงขึ้นเช่น เช่นการหยุดพักจากเกมที่เราได้พูดคุย เกี่ยวกับในการบรรยายครั้งแรกเมื่อสัปดาห์ที่แล้ว ดังนั้นเมื่อผมกด Enter ที่นี่มันเป็น เทียบเท่าในข้อความสภาพแวดล้อมเท่านั้น สองคลิกที่ไอคอนเรียกว่าสวัสดี สิ่งที่คุณคาดหวังว่าจะ เกิดขึ้นเมื่อผมกด Enter จากนั้น? ผู้ชม: มันจะพิมพ์ "สวัสดีโลก". เดวิดเจลัน: หวังว่า จะพิมพ์ "สวัสดีโลก". และแน่นอนมันไม่ได้ ขณะนี้มีบางส่วนที่ได้รับ ไวยากรณ์ลับที่นี่ ลองย้อนกลับเพียง สักครู่และดูว่าเรา ไม่สามารถเริ่มการอนุมานเพียงแค่ tinkering พยายามและล้มเหลว เป็นสิ่งที่เกิดขึ้นที่นี่ ถ้าฉันได้รับการกำจัดเครื่องหมาย n? ตอนนี้บางท่านที่ได้ โปรแกรมก่อนที่อาจจะ รู้ได้ทันทีสิ่งที่หมายถึง แต่สำหรับบรรดาผู้ที่ได้ ไม่เคยตั้งโปรแกรมก่อน อย่างน้อยคิดว่าตัวเองสิ่งที่เกิดขึ้น การเปลี่ยนแปลงเมื่อฉันวิ่งโปรแกรมนี้ ดังนั้นฉันจะกลับไปลงไปที่ของฉัน สีดำและสีขาวหน้าต่างเล็ก ๆ น้อย ๆ ที่ เป็นหน้าต่างที่ ฉันสามารถรวบรวมนี้ ฉันจะคอมไพล์สวัสดี เรากำลังจะได้เห็นเหมือนกัน ลำดับความลับของคำสั่ง และฉันจะทำจุดเฉือนสวัสดี และตอนนี้คนถ้าคุณจะ, ผู้ที่ไม่เคยเขียนโปรแกรมมาก่อน สิ่งที่อาจจะแตกต่างกันครั้งนี้หรือไม่ ใช่ ผู้ชม: มันจะไม่หยุด พิมพ์ "สวัสดีโลก". เดวิดเจลัน: มันจะเสียใจยา่ก? ผู้ชม: มันจะไม่หยุดพิมพ์มันได้หรือไม่ เดวิดเจลัน: มันจะไม่ หยุดการพิมพ์ "สวัสดีโลก". จึงไม่เป็นความคิดที่ไม่ดี ความคิดอื่น ๆ ? ใช่ ผู้ชม: ข้อผิดพลาด? เดวิดเจลัน: ข้อผิดพลาด ข้อความตกลงอาจจะ อะไร? ผู้ชม: มันอาจจะพิมพ์ วงเล็บด้วยอัฒภาคด้วยหรือไม่ เดวิดเจลัน: อาจพิมพ์ วงเล็บด้วยอัฒภาคได้เป็นอย่างดี ดังนั้นบางทีเครื่องหมายที่แล้วเป็นบางส่วน ชนิดของ terminous ที่สำคัญ ใด ๆ ความคิดอื่น ๆ ดังนั้นความคิดที่ดี และในความเป็นจริงมันเป็นไป ที่จะเป็นข้อผิดพลาด นั่นอาจเป็นไปได้มากที่สุด ที่จะเป็นคำตอบโดยทั่วไป ไม่กี่สัปดาห์ข้างหน้า ในขณะที่เราเรียนรู้ที่จะใช้รหัสที่นี่ แต่ตอนนี้จำได้ว่าเครื่องคอมพิวเตอร์ เพียง แต่สิ่งที่คุณบอกให้พวกเขาทำ เหมือนถั่วลิสงไร้สาระ เนยและวุ้นตัวอย่างเช่น คอมพิวเตอร์ของมนุษย์เราควรเท่านั้น ทำสิ่งที่คุณบอกพวกเขาที่จะทำ ดังนั้นในกรณีนี้ถ้าคุณ ไม่บอกคอมพิวเตอร์ ที่จะย้ายที่เคอร์เซอร์กระพริบเพื่อ บรรทัดถัดไปก็จะไม่ทำมัน ดังนั้นเมื่อผมรันโปรแกรมนี้ ตอนนี้เห็นความแตกต่าง ดูเหมือนว่าข้อผิดพลาด มันเป็นข้อผิดพลาดความงามอาจ แต่สิ่งที่แตกต่างกันเกี่ยวกับเรื่องนี้ การส่งออกเมื่อเทียบกับคนสุดท้ายที่เห็นได้ชัด? ใช่ ผู้ชม: มันไม่ได้ทำขึ้นบรรทัดใหม่ เดวิดเจลัน: มันไม่ได้ทำขึ้นบรรทัดใหม่ ตอนนี้บรรดาผู้ที่ มีหน้าเว็บที่อาจจะทำ ก่อนที่คุณจะได้รู้ของ แท็ก BR หรือแท็กวรรคที่ คล้ายกันในจิตวิญญาณ เว็บเบราว์เซอร์จะไม่สนใจคุณจนกว่า คุณบอกว่าจะทำอย่างไร ในทำนองเดียวกันภาษาเช่น C เท่านั้น จะทำในสิ่งที่คุณบอกว่าจะทำอย่างไร ดังนั้นเหตุผลที่ว่า ทั้งหมดของตัวอย่างเหล่านี้ ป่านนี้มีชนิดของ สบาย ๆ มีเครื่องหมายนี้ ในนั้นที่หมายถึง โดยที่คุณแสดงตัวเอง เป็นตัวอักษรบรรทัดใหม่จึงจะพูด และคุณชนิดของสามารถชื่นชมบางที ว่าเรื่องนี้จะดูชนิดของโง่ ถ้าไม่มีอะไรอื่น ถ้าผมต้องการขึ้นบรรทัดใหม่เพียง ตีใส่แล้วชนิด แล่เนื้อของรหัสที่ต้องการที่ ไม่ควรถูคุณทางที่ถูกต้อง และแม้ว่าคุณจะทำไม่ได้ จริงๆดูแลที่จุดนี้ คุณจะรู้ว่า นี้ไม่ได้โดยเฉพาะอย่างยิ่ง หาชิ้นส่วนที่ดีของรหัส และอื่น ๆ สิ่งที่โลก ปีที่ผ่านมาจึงตัดสินใจเป็น ว่าเมื่อคุณต้องการที่จะนำ เคอร์เซอร์บนบรรทัดใหม่อย่างชัดเจน คุณต้องพูดว่า บรรทัดใหม่, เครื่องหมาย n และมีบางอื่น ๆ สัญลักษณ์เช่นนั้น แต่ตอนนี้เราจะเพียงแค่ มุ่งเน้นไปที่เครื่องหมาย n ตอนนี้ขอให้โปรแกรม เล็ก ๆ น้อย ๆ ที่น่าสนใจมากขึ้น ฉันจะไปข้างหน้าและ เวลานี้เปิดไฟล์ใหม่ ฉันจะบันทึกนี้เป็น Hello-1.c และเพียงสำหรับลูกผมจะไป ไปใส่ลงในโฟลเดอร์ Dropbox ของฉัน ในขณะที่คุณจะเห็นใน CS50 เอกสารสำหรับเครื่องที่ ต่อสัปดาห์สำหรับปัญหานี้ ชุดที่ 1 เราจะสนับสนุนให้ คุณใช้ Dropbox หรือ บางบริการเทียบเท่า แล้วเพราะทั้งหมดของรหัสของคุณ จะได้รับการสนับสนุนขึ้นโดยอัตโนมัติ และเพื่อที่ว่าทำไมฉันได้ ไปลงในโฟลเดอร์ที่นี่ และตอนนี้ฉันจะเขียน โปรแกรมแตกต่างกันเล็กน้อย รวมถึงมาตรฐาน I / O.h, เป็นโมฆะหลัก int และจากนั้นในที่นี่ printf สวัสดีโลก ซึ่งเป็นสิ่งเดียวกับก่อนที่จะ แต่ตอนนี้ผมต้องการที่จะพิมพ์อะไรบางอย่าง ที่แตกต่างกันเล็กน้อย ฉันต้องการที่จะพิมพ์ออกมา พูดว่า "สวัสดีเดวิด". สิทธิทั้งหมดเพื่อให้เห็นได้ชัดว่า ที่ควรจะหวังว่า เป็นกรณีที่ว่าถ้าผมคอมไพล์ โปรแกรมนี้วิ่งมัน มันจะบอกว่า "สวัสดีเดวิด". แต่สิ่งที่ถ้าฉันต้องการที่จะแนะนำ เรียงลำดับของตัวแปร ความคิดของภาชนะที่เกิด ในการจัดเก็บ D--V-ฉัน-d และรหัสมันไม่ยาก เป็นโปรแกรมของฉัน ดีสิ่งที่ถ้าผมเริ่มต้น ทำอะไรเช่นนี้หรือไม่? สตริงดังนั้นนี้เป็นตัวแปร ถ้าคุณต้องการสตริง a.k.a. คำหรือวลี ลำดับของตัวละครคือสิ่งที่ เราในสายการเขียนโปรแกรมสตริง เรากำลังจะโทรทั่วไป มันเป็นเพราะมันเป็นชื่อที่เรียบง่ายอย่างมีความสุข แต่ผมจะเรียกมันว่าอะไร ฉันจะบอกว่าเท่ากับสตริง อ้าง unquote "เดวิด" อัฒภาค และตอนนี้ฉันต้องการแทรก D--V-ฉัน-D เป็นสิ่งที่ฉันพิมพ์ และก่อนที่เราจะได้เห็นทีเซอร์ที่ หน้าจอของไวยากรณ์พิเศษบางอย่าง ที่ได้รับอนุญาตให้เรา แทนค่า อะไรคือสิ่งที่พิเศษ สัญลักษณ์สไลด์ไม่กี่ที่ผ่านมา? ดังนั้นร้อยละ ในขณะที่มันเป็นร้อยละ งสำหรับจำนวนทศนิยม แต่นั่นไม่ได้จริงๆดูเหมือนที่เกี่ยวข้องที่นี่ เปิดออกมีของ สัญลักษณ์อีกร้อยละ, ซึ่งเป็นร้อยละวินาที, ซึ่งย่อมาจาก สำหรับตัวยึดสำหรับสตริง ดังนั้นตอนนี้มากเพียงฉัน จะไปทำให้สวัสดี-1, เพราะไฟล์นี้เรียกว่า Hello-1.c และกด Enter และฉันเมาขึ้น สิ่งที่เกิดขึ้น? ดีที่นี่คือสิ่งที่เราต้องเริ่มต้นที่จะ ขอขอบคุณที่เราอยู่ในคำสั่งนี้ สภาพแวดล้อมที่บรรทัดนี้ ข้อความสภาพแวดล้อมเท่านั้น มีการคลิกที่ไอคอนไม่เป็น เช่นโฟลเดอร์ได้ในขณะนี้ และคิดว่ากลับไปช่วงเวลาที่ผ่านมา ในสิ่งที่โฟลเดอร์ได้ผมบอกว่า ฉันถูกบันทึกรหัสของฉัน? ดังนั้นโฟลเดอร์ Dropbox จะได้รับการเรียกว่าอะไร แต่มันเกิดขึ้นที่จะเรียกว่า Dropbox ดังนั้นผมก็ต้องดับเบิลคลิกที่ ที่โฟลเดอร์ Dropbox เพื่อให้ได้รับ เป็นมันและได้รับของฉัน รหัสเรียกว่า Hello-1.c ในความเป็นจริงให้ฉันไปข้างหน้าและลด หน้าต่างนี้เพียงสักครู่ เช่นเดียวกับ Windows และ Mac OS, มีโฟลเดอร์ในลินุกซ์ มีโฟลเดอร์ใน CS50 เครื่องใช้เป็น มันเป็นเพียงแค่ตอนนี้เรากำลัง confining ตัวเองเพื่อสภาพแวดล้อมที่ข้อความนี้ แต่ถ้าผมดับเบิลคลิกที่ Dropbox ที่สังเกตมี เป็นไฟล์ที่ฉันต้องการที่จะรวบรวม แต่ฉันต้องการสีดำและสีขาว หน้าต่าง terminal จึงจะพูด แต่ฉันต้องการจึงจะย้าย ลงในโฟลเดอร์นั้นหรือไดเรกทอรี ดังนั้นความลับเล็กน้อย แต่ คุณจะได้รับใช้ในการนี​​้ด้วย ในโลกของลินุกซ์ ซึ่งเป็นอีกครั้งที่การดำเนินงาน ระบบที่เรากำลังทำงานอยู่ภายใน CS50 เครื่องใช้ไฟฟ้ามีซีดีคำสั่งที่เรียกว่า ซึ่งหมายความว่าฉันสามารถทำซีดี, พื้นที่, Dropbox ซีดีเปลี่ยนไดเรกทอรี ขวา ย้อนกลับไปในวันที่คน ประดิษฐ์เครื่องคอมพิวเตอร์และการดำเนินงาน ระบบเช่นนี้พวกเขาต้องการที่จะ พิมพ์การกดแป้นพิมพ์น้อยที่สุดที่เป็นไปได้ ดังนั้นวิธีที่ง่ายที่สุดที่จะบอกว่า เปลี่ยนไดเรกทอรีเป็นซีดี ดังนั้นถ้าผมตีซีดีพื้นที่ Dropbox, สังเกตเห็นสิ่งที่มีการเปลี่ยนแปลงที่นี่ ภายในวงเล็บ เครื่องใช้เป็นชนิด ของ humoring ฉันและ เตือนฉันว่าฉันอยู่ที่ไหน ดังนั้นโฟลเดอร์เปิดเป็น Dropbox ถ้าตอนนี้ฉันพิมพ์คำสั่ง ls สำหรับ รายการสั้นอีกครั้ง เพราะคนที่ไม่ได้ต้องการที่จะ พิมพ์กลับในวันที่ L-I-s-T ดังนั้นพวกเขาแทนที่จะทำให้มัน ls ใส่ ขอให้สังเกตที่ผมเห็นสองสิ่ง Hello-1.c, และแล้วสิ่งที่เป็นความลับนี้มา 1m นั่นเป็นเพียงวิธีที่บอกฉัน รหัสแหล่งที่มาสำหรับสัปดาห์ 1 จันทร์ นั่นเป็นโฟลเดอร์ที่ผมดาวน์โหลดมาจาก เว็บไซต์ CS50 ที่ผมทำในวันนี้ และเพียงแค่ใส่มันลงไปใน เครื่องล่วงหน้า แต่ตอนนี้สิ่งเดียวที่เรา ดูแลเกี่ยวกับการทำโปรแกรมนี้ ดังนั้นเมื่อผมพิมพ์ทำให้สวัสดี-1, ใส่ บ้าที่สุด สิ่งที่ผิดพลาด จึงขอแซวนี้นอกเหนือ และโชคร้ายนี้คือสิ่งที่ รับเครียดเล็ก ๆ น้อย ๆ ในตอนแรก อย่างน้อยถ้าคุณได้ ไม่เคยตั้งโปรแกรมก่อน พระเจ้าของฉัน ผมเขียนโปรแกรมสองเส้นและ ฉันมีสี่สายของข้อผิดพลาด ดังนั้นสิ่งที่เกิดขึ้นที่นี่ แรกและสำคัญที่สุดเสมอเลื่อนกลับ ขึ้นและหาข้อผิดพลาดครั้งแรก เพราะอาจเกิดคอมไพเลอร์เพียง รับสับสนโดยสิ่งที่คุณและฉัน คอมไพเลอร์เป็นใบ้สวย พวกเขาจะทำในสิ่งที่เพียง คุณบอกพวกเขาที่จะทำ และถ้าคุณสับสนพวกเขาพวกเขากำลังเพียง ไปชนิดของโยนขึ้นมือของพวกเขา และอาจจะทิ้งข้อความผิดพลาดมากขึ้น กว่าจะมีความจริง เพื่อให้ดูเป็นครั้งแรกที่ ซูเปอร์ลับในตอนแรก แต่แจ้งให้ทราบต่อไปนี้เป็นชื่อของ ไฟล์ที่ฉันเมาขึ้นเห็นได้ชัด 5 ลำไส้ใหญ่ลำไส้ใหญ่ 5 ก็หมายความว่าใน 5 สายที่ตัวละครที่ห้า ดังนั้นคอลัมน์ที่ห้าของตัวอักษร ถ้าคุณจะผิดพลาด การใช้งานของสตริงตัวระบุไม่ได้ประกาศ คุณหมายถึงมาตรฐาน n? ไม่ฉันหมายถึงสตริง และจากนั้นก็เป็นชนิดของ คัดลอกและวาง สิ่งที่ผมพิมพ์การวาดของฉันจริงๆ ความสนใจไปที่ฉันเมาขึ้น ดังนั้นด้วยเหตุผลบางอย่าง C, หรืออย่างน้อยก็คอมไพเลอร์ ไม่เข้าใจคำว่าสาย และนั่นเป็นเพราะเราทำมันขึ้นมา ดังนั้นสตริงไม่อยู่ ใน C. อะไร CS50 ไม่ สำหรับสองสามสัปดาห์แรก เพียง แต่ของชั้น คือเราให้การฝึกอบรมบางส่วน ล้อจึงจะพูด และเราใส่ล้อการฝึกอบรมเหล่านี้ ภายในของแฟ้มพิเศษที่เรียกว่า CS50.h. ดังนั้นนี่เป็นครั้งที่สองของทั้งสองไฟล์ ชื่อที่เห็นได้ชัดสิ้นสุดในจุดชั่วโมง ลองย้อนกลับ printf เป็นคำสั่งหรือการทำงาน เห็นได้ชัดว่าสิ่งที่พิมพ์ ไปที่หน้าจอ แต่คุณไม่ได้เห็นฉัน ใช้ printf ขวา ปีที่ผ่านมามีคนนำมาใช้ printf ในสิ่งที่ไฟล์ที่คุณจะเดิมพันเขา หรือเธอวางการดำเนินงาน สำหรับ printf รหัสสำหรับ printf? ในไฟล์ที่เรียกว่ามาตรฐาน I / O.h ในความเป็นจริงก็อาจจะอยู่ใน สองไฟล์มาตรฐาน I / O.h, ซึ่งย่อมาจากส่วนหัว ไฟล์และมาตรฐาน I / O.c, ซึ่งหมายถึงรหัสที่มา C ดังนั้นเขาหรือเธอเมื่อหลายปีก่อนแล้ววาง รหัสที่พวกเขาเขียนลงในแฟ้มที่ เพื่อให้ผู้คนอย่างเรา ปีต่อมาสามารถรวมมัน จึงจะพูดในโปรแกรมของเราเอง และแน่นอนว่าเป็นสิ่งที่เครื่องหมายปอนด์ ตามด้วยคำว่าไม่รวมถึง ดูเหมือนในฮาร์ดไดรฟ์ในท้องถิ่น พบไฟล์ที่เรียกว่ามาตรฐาน I / O.h, แล้วสำเนาอย่างมีประสิทธิภาพและ วางไว้ภายในของไฟล์ของตัวเอง ดังนั้นตอนนี้โปรแกรมของฉันรู้ว่า วิธีการสั่งพิมพ์ไปยังหน้าจอ ดังนั้นโดยตรรกะที่ที่ เป็นสตริงที่กำหนด? ผู้ชม: CS50.h. เดวิดเจลัน: CS50.h. และแน่นอนว่าเป็นสิ่งที่เรา พนักงานหลักที่ได้ทำ เราได้คิดค้นชนิดข้อมูลไม่กี่ จึงจะพูดเช่นสตริง นอกเหนือจากคนที่คุณ รับฟรีเช่น int และเราจะเห็นคนอื่น ๆ เหมือนถ่าน สำหรับตัวอักษรและไม่กี่เพิ่มเติม ภายในของ CS50.h เห็นได้ชัดคือ ที่กล่าวถึงอย่างน้อยบางส่วนของสตริง ดังนั้นตอนนี้ให้ฉันไปข้างหน้า และวิ่งให้สวัสดี-1 ฉันจะขยายอีกครั้งและข้ามมือของฉัน โดยขณะนี้ได้ทำอย่างใดอย่างหนึ่ง ฉันคงเปลี่ยนแปลงสิ่งที่มากที่สุด แต่เจ้ากรรมมัน ร้อยละมากกว่าข้อโต้แย้งข้อมูล ผมทำอะไรที่ผิดพลาดครั้งนี้หรือไม่ ดังนั้นจึงยังคงเป็นความลับสวย แต่ข้อผิดพลาดนี้เมื่อวันที่ สาย 7 และ 21 ตัวอักษร จึงขอไปดูได้ที่นี่ มันเป็นเรื่องที่ละเอียดอ่อนเล็ก ๆ น้อย ๆ แต่ถ้าคุณคิดเกี่ยวกับสิ่งที่ ความคิดพื้นฐานที่นี่มี บางทีเราสามารถหยอกล้อนี้นอกเหนือ ดังนั้น printf เป็นชื่อของฟังก์ชั่น วงเล็บป่านนี้เป็น เช่นเดียวกับสิ่งที่เราใส่รอบ สิ่งที่เรากำลังผ่าน เป็นปัจจัยการผลิตให้กับฟังก์ชัน ขวาทั้งหมดเพียง การประชุมของมนุษย์โดยพลการ การใช้วงเล็บ ภายในวงเล็บที่ เราได้รับการใส่เครื่องหมายคำพูดคู่ แล้วสตริงเช่น "สวัสดีโลก". แต่ในตัวอย่างก่อนหน้านี้ว่ามาก สั้น ๆ ที่เรามองไปที่ที่มีรอยขีดข่วน และเรามีงร้อยละอะไร ที่อยู่ในวงเล็บที่ ที่ผมร้องออกมาด้วยวาจา? ใช่ ผู้ชม: ดังนั้นมันเป็นสิ่งที่คุณกำลังการ [ไม่ได้ยิน] จากภายใน [ไม่ได้ยิน] สิ่งเหล่านี้ [ไม่ได้ยิน] เดวิดเจลัน: แน่นอน ดังนั้นเราจึงมีเปอร์เซ็นต์ง แต่เราก็มีความใกล้ชิด อ้างจุลภาคเคาน์เตอร์ ขวา เรากำหนดสิ่งที่เราต้องการ จะทำตามที่ตัวยึด ดังนั้นสิ่งที่ผมจะทำนี่คือ จุลภาคสิ่งที่คุณต้องการให้ฉันไปใส่? ผู้ชม: เอส เดวิดเจลัน S, เพราะในกรณีนี้ เป็นชื่อของภาชนะที่เก็บ มันเป็นชื่อของชามแก้วที่ ในขณะที่ก่อนที่จะถูกนับในการที่ ตัวอย่างเช่นรอยขีดข่วนง่ายเรามองที่ ดังนั้นตอนนี้ได้ทำสอง การเปลี่ยนแปลงให้ฉันดูภาพขยาย และพยายามอีกครั้งเพื่อ รวบรวมโปรแกรมนี้ ตอนนี้ฉันเห็นเส้นที่เป็นความลับว่า แต่ที่จริง ชื่อของคอมไพเลอร์ เสียงดังกราวเป็นชื่อของคอมไพเลอร์ ให้เป็นเพียงการประหยัดฉัน อาการปวดหัวของที่เคย พิมพ์ว่าคำสั่งบ้ายาวออก ดังนั้นตอนนี้ถ้าฉันไม่จุดเฉือนสวัสดี-1, ฉันควรจะเห็น "สวัสดีเดวิด". สวย underwhelming แม้ว่าใช่มั้ย? เราจะได้ทำ นี้มากขึ้นเพียง โดยไม่ต้องพูดเกี่ยวกับตัวแปร และ CS50.h และทุกที่ ดังนั้นขอให้มัน น่าสนใจมากขึ้น นอกจาก CS50.h, มีสิ่งที่ต้องการสตริง ประกาศห้องสมุด CS50 นอกจากนี้ยังมีฟังก์ชั่นไม่กี่ ดังนั้นเช่นเดียวกับปีที่ผ่านมามีคนเขียน printf และวางไว้ในมาตรฐาน I / O.h และบางไฟล์อื่น ๆ เราพนักงาน CS50 เขียนฟังก์ชั่น เรียกว่า getchar, GetDouble, GetFloat, GetInt, GetLongLong, GetString, และเราจะนำผู้ที่อยู่ในไฟล์ เรียกว่า CS50.h และ CS50.c. และเราจะนำพวกเขาภายใน ของเครื่องใช้ CS50 และผู้คนยังสามารถ ดาวน์โหลดพวกเขาหากพวกเขาออนไลน์ ต้องการที่จะนำพวกเขาในของพวกเขา คอมพิวเตอร์เองเช่นกัน ซึ่งเป็นที่จะบอกว่าเราได้สร้าง ฟังก์ชั่นที่ได้รับข้อมูลจากผู้ใช้ ผมไม่ทราบว่าสิ่งที่ทุก ของข้อมูลเหล่านี้ประเภท GetInt เป็นชนิดของตรงไปตรงมาเช่น ได้รับจำนวนเต็มอย่างใดจากผู้ใช้ และ GetString น่าจะได้รับเช่น คำหรือประโยคจากผู้ใช้ จึงขอมุ่งเน้นไปที่ และฉันจะกลับไปเป็น เครื่องใช้ไฟฟ้าและฉันจะไปข้างหน้า และบันทึกไฟล์นี้ขอเรียก มัน Hello-2.c เป็นรุ่นที่สองของฉัน และขอให้คู่ของการเปลี่ยนแปลง เวลาแทนนี้ ยากที่เข้ารหัสดาวิดซึ่ง ทำให้สอดคล้องกันอย่างไม่น่าเชื่อ แต่โปรแกรม underwhelming, ถ้าฉันทำแทน GetString? ตอนนี้สังเกตเห็น GetString มีวงเล็บเปิด วงเล็บปิดเพราะ ก็ไม่จำเป็นต้องป้อนข้อมูลใด ๆ มันเพิ่งจะไปรับ สตริงจากผู้ใช้ และตอนนี้คำไวยากรณ์อื่น ๆ อัฒภาคเพียงแค่จบบรรทัดของรหัส คุณไม่จำเป็นต้องพวกเขาทุกที่ แต่นั่นก็หมายความว่าฉัน ทำกับบรรทัดของรหัสนี้ ผมขอย้ายไปยังอีก คำสั่งหรือการทำงาน สตริงประกาศตัวแปร สตริงเป็นเหมือนว่า ให้ฉันชามโปรด และแจ้งให้เราวางสายในนั้น และตอนนี้เครื่องหมายเท่ากับ เป็นเครื่องหมายเท่ากับอะไร เป็นหลักเทียบเท่ากับ? ผู้ชม: กำหนด เดวิดเจลัน: ใช่กำหนดค่า ดังนั้นถ้าผมเช่นโทร GetString ฟังก์ชันนี้ และเราจะเห็นในช่วงเวลาที่ จะแจ้งให้ผู้ใช้สำหรับสตริง นี้เป็นเหมือนการให้ฉันแล้วเขียน D--V-ฉัน-D บนแผ่นกระดาษ และเมื่อฉันพูดสตริง S เท่ากับ GetString, เท่ากันไม่ได้จริงๆหมายถึง เท่าเทียมกันในการเขียนโปรแกรม C มันหมายถึงการกำหนดจากขวา ด้านซ้ายมือไปทางด้านซ้ายมือ ดังนั้นผมเคยสตริง และเครื่องหมายเท่ากับหมายถึงการวางไว้ ในภาชนะจัดเก็บที่เรียกว่าส และจากนั้นส่งผ่านออกไป printf จริงทำสิ่งที่ตน ดังนั้นผลสุดท้ายแล้วจะ จะดูแตกต่างกันเล็กน้อย ขอทำทำให้สวัสดี-2 ทั้งสามารถทำงาน คุณไปพร้อม ทำให้สวัสดี-2 ทำงาน Dot เฉือนสวัสดี-2, ใส่ ฉันดูเหมือนจะมีที่สิ้นสุด ห่วงหรือสิ่งที่ สิ่งที่เกิดขึ้นไม่มีอะไร ทำไม? ผู้ชม: มันทำให้วง จำกัด เดวิดเจลัน: มันเป็นวงที่ไม่มีที่สิ้นสุด เป็นประเภทของการรอคอยสำหรับผมที่จะ จริงให้มันด้วยการป้อนข้อมูลบางส่วน เพื่อให้ฉันไปข้างหน้าและพิมพ์ ในเดวิดและกด Enter และตอนนี้ก็บอกว่า "สวัสดีเดวิด". ถ้าผมเรียกใช้อีกครั้ง ลองพิมพ์ในร็อบ "สวัสดีร็อบ". ขณะนี้เป็นที่เลวร้ายที่สุด ส่วนติดต่อผู้ใช้ที่เคย ใช้เป็นที่เห็นได้ชัด ควรจะรู้ว่าสิ่งที่จะทำ แต่ไม่ว่า โดยใช้อาคารเดียวกันนี้ บล็อกเช่นเดียวกับในเกา เราสามารถแก้ปัญหาที่และพูดว่า สิ่งที่ต้องการชื่อของคุณกรุณาลำไส้ใหญ่ พื้นที่ปิดอ้างใกล้ วงเล็บอัฒภาค ดังนั้นจำนวนมากอีกครั้ง ความโง่เขลากับไวยากรณ์ แต่สังเกตเห็นฉันได้เพิ่มเพียง ปริศนาชิ้นดังกล่าวข้างต้นนี้ และสูงกว่านี้ ดังนั้นตอนนี้ถ้าฉันวิ่งนี้สวัสดี-2, ใส่ รอสักครู่ เกิดอะไรขึ้น มันไม่ได้มีพฤติกรรมใด ๆ ที่แตกต่างกัน ใช่ ผู้ชม: คุณไม่ได้วิ่งให้อีกครั้ง เดวิดเจลัน: ฉันไม่ได้ ทำงานให้อีกครั้งขวา ดังนั้นผมจึงได้เปลี่ยนรหัสแหล่งที่มาของฉัน แต่อีกครั้งมีการไหลที่ รหัสผ่านที่มาคอมไพเลอร์จะช่วยให้ คุณรหัสวัตถุใหม่หรือ 0s และ 1s ดังนั้นผมจึงจำเป็นต้องจริง วิ่งให้สวัสดี-2 ใส่ ตกลงอะไรบางอย่างที่ดูเหมือนจะเกิดขึ้น Dot เฉือนสวัสดี-2 ชื่อของคุณกรุณา และต้องมีความชัดเจนตอนนี้ทำไม เคอร์เซอร์บนบรรทัดเดียวกันได้หรือไม่ ว่า ฉันไม่ได้ใส่เครื่องหมาย n ขึ้นที่นี่ในรหัสของฉัน ดังนั้นตอนนี้ฉันสามารถเขียน สิ่งที่ต้องการ Daven, ใส่ ฉันสามารถเรียกใช้อีกครั้งและพิมพ์ สิ่งที่ต้องการเกบใส่ และเราได้รับโปรแกรมที่แตกต่างกัน อีกครั้งและอีกครั้งและอีกครั้ง ตอนนี้ในที่สุดเราจะต้อง ที่จะใช้ความสามารถในการที่แตกต่างกันไม่กี่ เราต้องการที่จะแนะนำในที่สุดบาง เงื่อนไขในการที่จะทำสิ่งเงื่อนไข บางทีลูปเพื่อให้เราสามารถทำ สิ่งที่อีกครั้งและอีกครั้ง บางทีมันจะดีถ้าเรา สามารถใช้ฟังก์ชั่นของเราเอง เหมือนอย่างที่เราสามารถใช้ของเราเอง printf หรือรุ่นของเราเองของ GetString และ GetFlow เพราะในท้ายที่สุดแม้ โดยใช้สภาพแวดล้อมที่บรรทัดคำสั่งนี้ เราสามารถทำอะไรได้มากที่สุด สายตาที่น่าสนใจของสิ่งที่ อันที่จริงในการสรุปให้ฉันทำเช่นนี้ ฉันจะไปข้างหน้า และปิดหน้าต่างนี้ และเปิดไอคอนนี้ที่นี่ ซึ่งเป็นเพียงที่ใหญ่กว่า รุ่นที่ฝังตัว หน้าต่าง terminal ดังนั้น Gedit มีไม่เพียง สถานที่สำหรับรหัสของฉัน แต่ยังสร้างขึ้นในหน้าต่าง terminal, หน้าต่างสีดำและสีขาวที่ฉันสามารถเรียกใช้ คำสั่งที่ ฉันเพิ่งเกิดขึ้นเพื่อเปิด รุ่นที่ใหญ่กว่านี้ และตอนนี้ฉันจะไปลงใน โฟลเดอร์ที่ฉันได้อยู่แล้ว ใส่ในล่วงหน้าในเว็บไซต์ของหลักสูตร และฉันจะไปข้างหน้าและ เปิดไฟล์ที่เรียกว่า thadgavin.c, ซึ่งเขียนโดยคนอื่น และถ้าเรามองไปที่นี้ นี้ไม่ได้ชนิดของรหัส เราจะเขียนตั้งแต่ เป้าหมายของรหัสนี้ คือการเขียนที่สวยที่สุด มองหารหัสที่เขาหรือเธอจะทำได้ โดยไม่คำนึงถึงหรือไม่ มนุษย์อีกคนเคยได้ เข้าใจรหัสนี้ อันที่จริงในแต่ละปีมีสิ่งที่ เรียกว่าลักษณะที่ยุ่งเหยิงประกวดซีซึ่ง สำหรับ geeks จริงที่เขียน รหัสที่ไม่มีใครสามารถอ่าน แต่ที่ทำอะไรอย่างใดอย่างหนึ่ง ง่ายจริงๆหรือที่น่าตื่นตาตื่นใจจริงๆ และเราคิดว่าเราควรที่จะ สรุปด้วยรูปลักษณ์นี้ ที่สิ่งที่น่ารัก คุณอาจจะได้เห็นอีกครั้งก่อน แต่เราจะสิ้นสุดในวันนี้ หมายเหตุจุดเฉือน thadgavin นี้ก็เป็นสิ่งที่รอคอย ที่มันสำหรับ CS50 เราจะเห็นคุณในวันพุธที่ [เล่นเพลง]