>> ZAMYLA CHAN: กระโดด Let 's เป็นมาริโอ
มาริโอเป็นโปรแกรมที่เราจะทำให้เรา ของตัวเองรุ่นแม้ว่าดั้งเดิมของ
บราเธอร์สคลาสสิกซูเปอร์มาริโอ พื้นหลังเกม
สำหรับชุดปัญหานี้เรากำลังจะไป การสร้างปิรามิดครึ่งสำหรับ
มาริโอกระโดดขึ้นไปบน
โครงการของเราจะโต้ตอบจึง จะขอให้ผู้ใช้ป้อนข้อมูลบางอย่าง
ความสูงของพีระมิด
และโปรแกรมที่จะพิมพ์ออกมา ครึ่งหนึ่งของปิรามิดของความสูงที่ที่
ด้านล่างซ้ายกัญชาสอดคล้องกับด้านล่าง มุมซ้ายของสถ​​านี
หน้าต่างออก
>> แบ่ง Let 's ปัญหานี้ออกเป็นสองส่วน หนึ่งได้รับข้อมูลของผู้ใช้และสอง
พิมพ์ออกมาพีระมิด
โปรดจำไว้ว่าแม้ว่าฟังก์ชัน GetInt จะเรียกจำนวนเต็มคุณ
มีเพื่อให้แน่ใจว่าการป้อนข้อมูลนี้จะทำให้ ความรู้สึกสำหรับโปรแกรมของคุณดังนั้นใน
มาริโอจะไม่ทำเพียงแค่ ผลิตภัณฑ์สำหรับจำนวนเต็ม
คุณจะต้องตรวจสอบให้แน่ใจว่าผู้ใช้ ปัจจัยการผลิตที่เป็นจำนวนเต็มภายใน
ขอบเขตล่างและชั้นบนของ ปิรามิดที่คุณสามารถพิมพ์
ต่อ spec นี้เป็น 0 และ 23 รวม
ถ้าใช้ปัจจัยการผลิตจำนวนเต็มนอก ขอบเขตที่ยอมรับของเราแล้วเราต้องการ
เพื่อให้พวกเขาอีกครั้งและอีกครั้งจนกว่า พวกเขาให้เราเป็นจำนวนเต็มถูกต้อง
>> วิธีหนึ่งเพื่อให้แน่ใจว่าผู้ใช้ป้อนข้อมูลที่ถูกต้องคือ โดยใช้ห่วงในขณะที่ทำซึ่งเป็น
คล้ายกันมากกับวงในขณะที่
Do-ขณะที่วงรันรหัส ภายในร่างกายครั้งเดียวแล้วตรวจสอบ
ไม่ว่าจะเป็นเงื่อนไขที่จะพบหรือไม่
นี้จะเป็นประโยชน์สำหรับการได้รับข้อมูลจากผู้ใช้ เพราะคุณรู้ว่าคุณจะต้อง
เพื่อให้พวกเขาอย่างน้อยหนึ่งครั้ง
ถ้าเงื่อนไขจะไม่ตรงตามโปรแกรม จะดำเนินการหลังจากที่สาย
ของคุณทำในขณะที่ห่วง
ถ้าเงื่อนไขจะพบ แต่ ห่วงจะทำซ้ำ
>> ห่วงทำในขณะที่สำหรับการตรวจสอบของผู้ใช้ การป้อนข้อมูลจะมีลักษณะบางอย่างเช่นนี้
ฉันประกาศ n ตัวแปร GetInt, และทำซ้ำจนกว่า n คือถูกต้อง
จำไว้ว่าเมื่อคุณประกาศของคุณ ตัวแปรก็ต้องเหมาะสม
ขอบเขตเช่นเดียวกับใน Scratch
ถ้าผมประกาศ n ภายในห่วงทำในขณะที่ของฉัน ส่วนที่เหลือของโปรแกรมจะไม่
สามารถเข้าถึงได้
มัน จำกัด ขอบเขต ของวงเล็บปีกกา
>> ทั้งหมดขวาดังนั้นตอนนี้ที่เราได้ผ่านการตรวจสอบ การป้อนข้อมูลของผู้ใช้ที่เราจริงต้อง
วาดนี้ครึ่งหนึ่งของปิรามิด
มันสร้างขึ้นจากตัวอักษรที่พิมพ์ดังนั้น ขอให้ครึ่งหนึ่งของพีระมิดในที่เรียบง่าย
แก้ไขข้อความ
ถ้าเราต้องการที่จะทำให้พีระมิดสไตล์มาริโอ สามที่สอดคล้องความสูง
ที่ด้านซ้ายของหน้าต่างของเราแล้ว เราต้องการพิมพ์สอง hashes คลิกใส่,
จากนั้นพิมพ์สาม hashes คลิก ใส่แล้วพิมพ์สี่
>> แต่ในชุดปัญหานี้ของเรา ครึ่งหนึ่งของปิรามิดจะต้องมีการจัดชิดขวา
การใช้แป้นพิมพ์มาตรฐานวิธีการที่อาจ คุณปรับเปลี่ยนแฟ้มนี้จะย้าย hashes
ผ่านไปทางด้านขวา?
ผมอาจจะใช้ในการขีดสอง แถวบนสุดและหนึ่งในสอง
แต่นั่นไม่ได้ดูดีในขณะที่แม้ว่าดังนั้น ให้แทนที่ด้วยขีด
ช่องว่างและมีเรามีครึ่งปิรามิด ในสามของความสูง
>> ลองและจำโปรแกรมแก้ไขข้อความนี้ ตัวอย่างเช่นในขณะที่คุณเริ่มคิดกลับไป
C. ลองและคิดออกบางส่วน ชนิดของรูปแบบที่เราสามารถทำได้
ใส่ในการสร้างห่วง
ใช้ความสูงตัวอย่างเช่นการพูดการแปด และดูว่าคุณสามารถเริ่มต้น
มากับรูปแบบ
แถวแรกจะมีช่องว่างที่เจ็ด ตามด้วยสอง hashes
แถวที่สองจะมีหกช่องว่างและ สาม hashes และอื่น ๆ จน
แถวที่แปด
>> แต่อย่างไรคุณจะเป็นตัวแทนของ แถวที่ n?
โปรดจำไว้ว่าการประชุมโปรแกรมที่ การจัดทำดัชนีศูนย์
นั่นหมายความว่าคุณเริ่มนับที่ ศูนย์ดังนั้นแถวแรกเป็นเทคนิค
เลขศูนย์แถวที่มีสองช่องแถว หมายเลขหนึ่งมีสาม hashes แถว
บ้านเลขที่สองมีสี่ hashes ดังนั้นต่อไปนี้ รูปแบบสำหรับแถว ๆ นี้
n จำนวนมี n บวก 2 hashes เป็น
ผมจะปล่อยให้คุณแม้ว่าจะหา ออกรูปแบบสำหรับพื้นที่
โปรดจำไว้ว่ารูปแบบของคุณจะ แตกต่างกันเล็กน้อยถ้าคุณเลือกที่จะ
เริ่มนับของคุณจาก หนึ่งและไม่เป็นศูนย์
>> ตอนนี้คุณมีรูปแบบสำหรับ ใด ๆ แถวนามธรรม n
คุณรู้ว่าหลายพื้นที่ในการพิมพ์และ วิธีการหลาย hashes เพื่อให้แต่ละแถว
จำนวนจะมีการเปลี่ยนแปลง
แต่กระบวนการเดียวกันในการพิมพ์ ตัวเดียวไม่ว่าจะเป็นช่องว่างหรือ
กัญชาซ้ำแล้วซ้ำอีก
ดังนั้นสิ่งที่คุณต้องทำคือการซ้ำแล้วซ้ำเล่า พิมพ์ตัวอักษรที่ครั้งเป็นจำนวนมาก
เป็นรูปแบบของคุณจะเป็นตัวกำหนด
>> ดังนั้นเราจะทำซ้ำกระบวนการอย่างไร
ใน Scratch เราใช้บล็อกซ้ำ
ใน C เราจะใช้สำหรับห่วง
ลองดูที่ไวยากรณ์ สำหรับสำหรับลูป
>> แต่ละวงจะประกอบด้วยสาม ส่วนการเริ่มต้น, เงื่อนไข,
และการปรับปรุง
สำหรับวงของคุณจะเริ่มต้น ตัวแปรเมื่อมันเป็นครั้งแรก
เข้ามาในห่วงสำหรับ
ถ้าเงื่อนไขจะพบในร่างกาย ของวงจะดำเนินการ
หลังจากนั้นการปรับปรุงจะดำเนินการ
>> ถ้าเงื่อนไขจะพบยัง ห่วงจะดำเนินการและการปรับปรุงและ
ทำซ้ำตราบเท่าที่สภาพของคุณ ประเมินให้เป็นจริง
คุณสภาพในที่สุดก็จะต้องประเมิน เป็นเท็จ แต่เนื่องจาก
ซึ่งแตกต่างจากรอยขีดข่วนที่เราทำไม่ได้ มีตลอดกาลใด ๆ loops
โปรแกรมของคุณจะต้องจบลงในที่สุด
>> นี่คือตัวอย่างของการห่วงว่า คุณอาจต้องการที่จะใช้สำหรับมาริโอ
เริ่มต้นประกาศ ผมจำนวนเต็มมีค่า 0
ตราบเท่าที่ฉันมีค่าน้อยกว่าความสูง, ร่างกายของวงจะดำเนินการและ
ผมเพิ่มขึ้นโดยหนึ่งและทำซ้ำ จน i มากกว่าหรือ
เท่ากับความสูง
>> ตอนนี้ห่วงสำหรับฉันเป็นศูนย์ดัชนี
Int ผมเริ่มต้นที่ศูนย์ไม่ได้เป็นหนึ่ง
ถ้าฉันเลือกที่หนึ่งแล้วสภาพของฉันจะ ยังต้องแตกต่างกันสำหรับ
ห่วงที่จะดำเนินการ หมายเลขเดียวกันของครั้ง
จำนี้อย่างระมัดระวังเมื่อคุณ เลือกการเริ่มต้นของคุณและของคุณ
สภาพและให้คำปรึกษานี้ แผนภูมิการตรวจสอบอีกครั้ง
>> หนึ่งในสิ่งที่ดีเกี่ยวกับคอมพิวเตอร์ วิทยาศาสตร์ก็คือว่ามีเพียงจำนวนมากดังนั้น
วิธีการที่จะดำเนินการสิ่งที่
คุณสามารถเลือกว่าคุณ เริ่มต้นที่ศูนย์หรือหนึ่ง
หากคุณไม่ต้องการที่จะใช้สำหรับห่วง คุณยังสามารถใช้ห่วงในขณะที่ไป
ทำซ้ำงบตราบใดที่คุณ เก็บสาระสำคัญของห่วงสำหรับ,
เริ่มต้นการปรับปรุงและ
เมื่อเราคิดออกห่วงว่า เรากำลังสบายที่สุดด้วยแล้วเรา
สามารถดำเนินการมาริโอ
>> ครั้งแรกที่เราตรวจสอบสำหรับการป้อนข้อมูลผู้ใช้ และระบุแล้ว
รูปแบบสำหรับแถว n ใด ๆ
ดังนั้นสำหรับแถวจากศูนย์ถึง n ลบ 1 แต่ละ จะพิมพ์จำนวนที่เหมาะสมของ
เว้นวรรคแล้วตามจำนวนที่เหมาะสมของ hashes ตามรูปแบบของเราและ
แล้วบรรทัดใหม่
กับที่คุณมีปิรามิดของคุณ
ชื่อของฉันคือ Zamyla และนี่ก็เป็นมาริโอ