ZAMYLA CHAN: มันเป็นฉัน Zamyla วันนี้ในมาริโอเรากำลังจะเป็น วาดรูปปิรามิดครึ่งมาริโอ ปีนขึ้นไป ดังนั้นเรามาพูดคุยเกี่ยวกับเรา สิ่งที่ต้องทำสำหรับปัญหานี้ เรากำลังจะต้องการ เพื่อให้การและตรวจสอบ ผู้ใช้สำหรับการป้อนข้อมูลที่ถูกต้องของวิธีการ สูงที่พวกเขาต้องการที่ปิรามิดของมาริโอที่จะเป็น และจากนั้นเราจะวาดมัน จึงขอเริ่มต้นด้วยการกระตุ้นและ การตรวจสอบการใช้งานสำหรับใส่ของพวกเขา เราสามารถทำให้การใช้งานของ ฟังก์ชั่น CS50 ห้องสมุด ได้รับ int ที่จะให้แน่ใจว่า การใช้ปัจจัยการผลิตที่เป็นจำนวนเต็ม จำนวนเต็มบวกใด ๆ ลบ จำนวนเต็มจำนวน 0 เป็นเกมที่เป็นธรรม มิฉะนั้นผู้ใช้จะได้รับแจ้งให้ ลองใหม่อีกครั้งจนกว่าพวกเขาจะใส่เต็มที่ถูกต้อง ตอนนี้แม้จะได้รับ int ไม่ ทำงานมากสำหรับเรา ในการสร้างความมั่นใจว่า ผู้ใช้จะช่วยให้เราเป็นจำนวนเต็ม เรายังคงต้องใช้บางส่วน ข้อ จำกัด เพิ่มเติมเกี่ยวกับการที่ หลังจากที่ทุกคนเราไม่สามารถมีมาริโอปีนเขา ครึ่งปิรามิดของความสูงเชิงลบ 12 นอกเหนือไปจากนั้น ข้อมูลจำเพาะของปัญหา บอกว่าเราสามารถ ช่วยให้มาริโอที่จะปีนขึ้นไป ปิรามิดของความสูงระหว่าง 0 และ 23 ตกลงดังนั้นนั่นหมายความว่าเราต้อง อย่างต่อเนื่องเพื่อให้ผู้ใช้ ที่จะให้เราที่ถูกต้อง จำนวนและรายเดียวดำเนินการต่อ เมื่อพวกเขาได้ให้เรามีความสูงที่ถูกต้อง เราจะทำอย่างนั้นได้อย่างไร? ดีกระบวนการอย่างต่อเนื่องให้เรา ความคิดของ loops-- สิ่งที่ทำ ซ้ำ หนึ่งวงใน C เป็นในขณะที่ ห่วงที่จะต่อเนื่อง รันร่างกายของวงตราบเท่าที่ สภาพได้รับการตรวจสอบการจริง เร็วที่สุดเท่าที่มีเงื่อนไขว่า ประเมินเท็จ โปรแกรมจะดำเนินการต่อไป สิ่งที่มาหลังจากนั้น ดังนั้นในขณะที่ลูปเป็นวิธีหนึ่งในการ เพื่อให้มั่นใจว่าเราอย่างต่อเนื่อง แจ้งให้ผู้ใช้สำหรับการป้อนข้อมูลที่ถูกต้อง และเมื่อพวกเขาทำให้เรามีการป้อนข้อมูลที่ถูกต้อง เราจะดำเนินการต่อไปสิ่งที่มาต่อไป เรารู้ว่าเรากำลังจะถาม ผู้ใช้สำหรับการป้อนข้อมูลอย่างน้อยหนึ่งครั้ง ดังนั้นตอนนี้เรามาถึงน้องสาวของที่ ห่วงขณะซึ่งเป็นสิ่งที่ต้องทำในขณะที่วง ทำในขณะที่ลูปจะดำเนินการ ร่างกายของวงอย่างน้อยหนึ่งครั้ง ดังนั้นไม่มีการตรวจสอบสภาพ ก็จะดำเนินการร่างกายของวง แล้วตรวจสอบสภาพที่จะเห็น ไม่ว่าจะเป็นความต้องการที่จะทำซ้ำตัวเอง นี้มีประโยชน์เมื่อ เรากำลังตรวจสอบผู้ใช้ป้อน เรารู้ว่าเรากำลังจะ จะถามพวกเขาอย่างน้อยหนึ่งครั้ง ดังนั้นทำในขณะที่วงอาจ มีลักษณะบางอย่างเช่นนี้ เรามีจำนวนเต็ม n และภายในของทำ ในขณะที่วงเราได้ทันที แจ้งให้ผู้ใช้จำนวนเต็ม ถ้า n เป็นที่ไม่ถูกต้องแล้วเราจะให้พวกเขา อีกครั้งและอีกครั้งและอีกครั้งจนกว่าพวกเขาจะ ให้เราว่าจำนวนเต็มถูกต้อง สุดท้ายเมื่อ n คือการป้อนข้อมูลที่ถูกต้องเราจะ ดำเนินการต่อไปส่วนที่เหลือของโปรแกรมของเรา ดังนั้นขอให้กลับไปที่ข้อมูลจำเพาะและการตรวจสอบ สิ่งที่เงื่อนไขสำหรับการป้อนข้อมูลที่ถูกต้อง เป็นไปได้ เดอะไฮทส์ที่ถูกต้องจะไป อยู่ระหว่าง 0 ถึง 23 ความสูงที่ไม่ถูกต้องดังนั้นจะไป จะน้อยกว่า 0 หรือมากกว่า 23 ดังนั้นอย่าลืมที่จะออกแบบ สภาพของคุณอย่างระมัดระวัง รู้ว่าเงื่อนไข สำหรับสิ่งที่ต้องทำในขณะที่ห่วง ควรจะเป็นในขณะที่ n เป็นที่ไม่ถูกต้อง ตอนนี้ไม่ได้เป็นไปได้ ง่ายนิพจน์บูลีนเดียว เรากำลังจะต้องรวม สองการแสดงออกที่แตกต่างกัน ที่จะทำให้สภาพของเราทั้งหมด ดังนั้นขอเพียงแค่มองไปที่ตารางความจริงฉันได้ รับแล้วคุณคำใบ้ว่าเรา จะต้องจัดการกับสอง Booleans ดังนั้นนี่คือตารางความจริงที่ฉัน มีสอง Booleans-- บูลีน 1 และ 2 ดังนั้นเราจึงมีตัวเลือกในการประเมิน bool1 และ bool2 หรือ bool1 หรือ bool2 และจะเป็นจริงถ้าทั้งสอง booleans ประเมินให้เป็นจริงในขณะที่ทั้งหมด หรือจะเป็นจริงตราบใดที่หนึ่งของ ทั้งสอง Booleans ตรวจสอบการจริง ตกลงดังนั้นใช้เวลาสักครู่หยุดนี้ วิดีโอและย่อยตารางความจริงนี้ ฉันจะอยู่ตรงนี้รอ เมื่อคุณกลับมาให้ดู ถ้าคุณสามารถปะติดปะต่อ นิพจน์บูลีนสำหรับคุณ สภาพของ n เป็นข้อมูลไม่ถูกต้อง ดังนั้นขณะนี้ที่เรามี ผู้ใช้ป้อนข้อมูลที่ถูกต้องให้ของ ไปข้างหน้าและพูดคุยเกี่ยวกับวิธีการที่เรา อาจวาดครึ่งปิรามิด ที่นี่ในโปรแกรมแก้ไขข้อความนี้ง่าย ฉันได้วาดซ้ายชิดปิรามิด แต่เรารู้ว่าเราต้องของเรา ปิรามิดที่จะชิดขอบขวา ดังนั้นวิธีที่ผมอาจจะทำเช่นนี้? ดีฉันอาจจะพยายามที่จะผลักดัน ทุกอย่างไปด้านข้าง โดยเพียงแค่การวางเล็ก ๆ น้อย ๆ ตัวละครในระหว่าง และแล้วสำหรับครั้งต่อไป สายผมจะใส่ บางตัวละครมากขึ้นเพื่อผลักดันมันพร้อม และ further-- อื่น ๆ และเพื่อให้ forth-- จนกว่าฉันจะมีปิรามิดชิดขวา ดังนั้นเราจะมีปิรามิดแหน่งขวา แต่ มันไม่ได้ดูดีเพื่อให้มีจุด แต่เรายังคงต้องการที่จะ รักษาระยะห่างที่ดี ดังนั้นฉันจะไปตามตัวอักษร แทรกช่องว่างบาง แทนการจุดสามจุดฉันจะ ใส่หนึ่งสองสามช่อง ในบรรทัดที่สอง ฉันจะใส่หนึ่งสองช่องว่าง และในวันถัดจากสุดท้าย สายเพียงหนึ่งในพื้นที่ และที่นี่ฉันมีสิทธิชิดปิรามิด จากการทำตัวอย่างในข้อความ Editor เรามีความคิดสำหรับรูปแบบที่ ว่าเราจะใช้ในการวาดครึ่งปิรามิด สำหรับแถวทุกสิ่งที่เราทำ คือเราพิมพ์ช่องว่างบาง แล้วพิมพ์บาง hashes และจากนั้นพิมพ์ ปุ่ม Enter ซึ่ง คือการสร้างบรรทัดใหม่ ดังนั้นขณะนี้ที่เรามีที่ขอไป อีกขั้นหนึ่งและหารูปแบบ ดังนั้นฉันจะบอกว่าสำหรับ ความสนใจของตัวอย่างนี้ เราจัดการกับความสูงของ 8 แถวแรกเป็นไปได้ที่สอง แฮชที่ตามเจ็ดช่องว่าง second-- สาม hashes หกช่องว่าง สามสี่ row-- hashes ห้า spaces-- อื่น ๆ และอื่น ๆ จนกว่าเราจะได้ไปยังแถว NTH ดังนั้นแล้วผมขอให้คุณสำหรับแถวชับ วิธีการหลาย hashes เราจะมี และวิธีการหลายช่องว่าง? ดังนั้นมันก็ขึ้นอยู่กับคุณที่จะคิดออก สูตรที่จะเป็นตัวแทน hashes หลายวิธี และวิธีการหลายพื้นที่มีความจำเป็นสำหรับ แถว NTH เมื่อคุณมีความสูงบาง ตอนนี้เมื่อคุณกำลังหานี้ ต้องระวังว่าคุณกำลังจัดทำดัชนี สิ่งที่ผมหมายถึงนี้ก็คือว่า ในชีวิตประจำวันของเราทุกคน เริ่มนับโดยปกติ 1 แต่ใน CS50 และวิทยาการคอมพิวเตอร์ โดยทั่วไปเราจะจัดทำดัชนี 0 ดังนั้นแถวแรกจะเป็น n 0 เมื่อเทียบกับ 1 โปรดใช้ความระมัดระวังในเรื่องนี้เมื่อคุณอยู่ พยายามที่จะคิดออกรูปแบบของคุณ ดังนั้นตอนนี้ขอกลับไปที่วิธีการ เรากำลังจะวาดปิรามิดของเรา สำหรับทุกแถวที่เรากำลังจะต้องการที่จะ พิมพ์ช่องว่างพิมพ์ hashes ที่ แล้วพิมพ์บรรทัดใหม่ คำใบ้ที่นี่เป็น คำว่า "สำหรับ" ทุกแถว ใน C เรามีการสร้าง เรียกได้ว่าเป็นห่วง ซึ่งจะประกอบด้วย เริ่มต้นเงื่อนไขการปรับปรุง และร่างกายของวง บอกว่าผมอยากจะบอกว่าสวัสดี โลกครั้งที่ 50 ของฉันสำหรับวง จะมีลักษณะบางอย่างเช่นนี้ ฉันเริ่มต้นจำนวนเต็มของฉันไปที่ 0 เงื่อนไขคือว่าผมมีค่าน้อยกว่า 50 แล้วปรับปรุงของฉันเป็นเพียง การเพิ่มฉันโดยหนึ่งทุกครั้ง นอกจากนี้เรายังสามารถใช้สำหรับการลูป ย้ำกว่าสิ่ง ขอให้สังเกตว่าที่นี่เราไม่ได้ ยากรหัสตัวเลข แต่วางตัวแปร ความสูงแทนเข้าเงื่อนไข ดังนั้นสิ่งที่ฉันทำที่นี่คือฉันทำซ้ำ เหนือแถวของปิรามิดทุก ฉันจะทำบางสิ่งบางอย่างสำหรับแต่ละ แถวภายในร่างกายของวงของฉัน เรากำลังทำอะไรอยู่ภายใน ร่างกายของวงหรือไม่ ดีที่เรามีอยู่แล้วกล่าวว่าเรากำลังพิมพ์ ช่องว่างและเรากำลังพิมพ์ hashes และเรากำลังพิมพ์บรรทัดใหม่ ดังนั้นด้านนอกของฉันสำหรับวง จะมีลักษณะเช่นนี้ ผมย้ำกว่าทุกแถว ของปิรามิดที่ใช้ ในกรณีนี้มีความสูงเป็นตัวแปร ที่เก็บความสูงของปิรามิด ภายในร่างกายของวงที่ผม จะพิมพ์ซ้ำแล้วซ้ำอีกช่องว่างพิมพ์ hashes ซ้ำ แล้วพิมพ์บรรทัดใหม่ ดังนั้นตอนนี้ใช้ทั้งหมดของแนวความคิดที่ว่า ผมได้พูดคุยเกี่ยวกับในการเดินผ่านนี้ คุณควรจะสามารถที่จะแจ้งให้ ผู้ใช้สำหรับการป้อนข้อมูลตรวจสอบการป้อนข้อมูลที่ แล้ววาดครึ่งปิรามิด ชื่อของฉันคือ Zamyla และนี่คือ CS50