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