1 00:00:00,000 --> 00:00:09,250 2 00:00:09,250 --> 00:00:11,070 >> ZAMYLA CHAN: กระโดด Let 's เป็นมาริโอ 3 00:00:11,070 --> 00:00:14,850 มาริโอเป็นโปรแกรมที่เราจะทำให้เรา ของตัวเองรุ่นแม้ว่าดั้งเดิมของ 4 00:00:14,850 --> 00:00:17,760 บราเธอร์สคลาสสิกซูเปอร์มาริโอ พื้นหลังเกม 5 00:00:17,760 --> 00:00:21,100 สำหรับชุดปัญหานี้เรากำลังจะไป การสร้างปิรามิดครึ่งสำหรับ 6 00:00:21,100 --> 00:00:23,000 มาริโอกระโดดขึ้นไปบน 7 00:00:23,000 --> 00:00:27,330 โครงการของเราจะโต้ตอบจึง จะขอให้ผู้ใช้ป้อนข้อมูลบางอย่าง 8 00:00:27,330 --> 00:00:28,660 ความสูงของพีระมิด 9 00:00:28,660 --> 00:00:32,920 และโปรแกรมที่จะพิมพ์ออกมา ครึ่งหนึ่งของปิรามิดของความสูงที่ที่ 10 00:00:32,920 --> 00:00:37,390 ด้านล่างซ้ายกัญชาสอดคล้องกับด้านล่าง มุมซ้ายของสถ​​านี 11 00:00:37,390 --> 00:00:39,710 หน้าต่างออก 12 00:00:39,710 --> 00:00:44,870 >> แบ่ง Let 's ปัญหานี้ออกเป็นสองส่วน หนึ่งได้รับข้อมูลของผู้ใช้และสอง 13 00:00:44,870 --> 00:00:47,040 พิมพ์ออกมาพีระมิด 14 00:00:47,040 --> 00:00:51,150 โปรดจำไว้ว่าแม้ว่าฟังก์ชัน GetInt จะเรียกจำนวนเต็มคุณ 15 00:00:51,150 --> 00:00:56,260 มีเพื่อให้แน่ใจว่าการป้อนข้อมูลนี้จะทำให้ ความรู้สึกสำหรับโปรแกรมของคุณดังนั้นใน 16 00:00:56,260 --> 00:00:59,690 มาริโอจะไม่ทำเพียงแค่ ผลิตภัณฑ์สำหรับจำนวนเต็ม 17 00:00:59,690 --> 00:01:03,440 คุณจะต้องตรวจสอบให้แน่ใจว่าผู้ใช้ ปัจจัยการผลิตที่เป็นจำนวนเต็มภายใน 18 00:01:03,440 --> 00:01:06,985 ขอบเขตล่างและชั้นบนของ ปิรามิดที่คุณสามารถพิมพ์ 19 00:01:06,985 --> 00:01:12,300 ต่อ spec นี้เป็น 0 และ 23 รวม 20 00:01:12,300 --> 00:01:16,410 ถ้าใช้ปัจจัยการผลิตจำนวนเต็มนอก ขอบเขตที่ยอมรับของเราแล้วเราต้องการ 21 00:01:16,410 --> 00:01:20,840 เพื่อให้พวกเขาอีกครั้งและอีกครั้งจนกว่า พวกเขาให้เราเป็นจำนวนเต็มถูกต้อง 22 00:01:20,840 --> 00:01:25,990 >> วิธีหนึ่งเพื่อให้แน่ใจว่าผู้ใช้ป้อนข้อมูลที่ถูกต้องคือ โดยใช้ห่วงในขณะที่ทำซึ่งเป็น 23 00:01:25,990 --> 00:01:28,100 คล้ายกันมากกับวงในขณะที่ 24 00:01:28,100 --> 00:01:32,580 Do-ขณะที่วงรันรหัส ภายในร่างกายครั้งเดียวแล้วตรวจสอบ 25 00:01:32,580 --> 00:01:35,270 ไม่ว่าจะเป็นเงื่อนไขที่จะพบหรือไม่ 26 00:01:35,270 --> 00:01:38,830 นี้จะเป็นประโยชน์สำหรับการได้รับข้อมูลจากผู้ใช้ เพราะคุณรู้ว่าคุณจะต้อง 27 00:01:38,830 --> 00:01:41,805 เพื่อให้พวกเขาอย่างน้อยหนึ่งครั้ง 28 00:01:41,805 --> 00:01:45,940 ถ้าเงื่อนไขจะไม่ตรงตามโปรแกรม จะดำเนินการหลังจากที่สาย 29 00:01:45,940 --> 00:01:47,270 ของคุณทำในขณะที่ห่วง 30 00:01:47,270 --> 00:01:50,950 ถ้าเงื่อนไขจะพบ แต่ ห่วงจะทำซ้ำ 31 00:01:50,950 --> 00:01:55,560 >> ห่วงทำในขณะที่สำหรับการตรวจสอบของผู้ใช้ การป้อนข้อมูลจะมีลักษณะบางอย่างเช่นนี้ 32 00:01:55,560 --> 00:02:02,920 ฉันประกาศ n ตัวแปร GetInt, และทำซ้ำจนกว่า n คือถูกต้อง 33 00:02:02,920 --> 00:02:06,270 จำไว้ว่าเมื่อคุณประกาศของคุณ ตัวแปรก็ต้องเหมาะสม 34 00:02:06,270 --> 00:02:08,449 ขอบเขตเช่นเดียวกับใน Scratch 35 00:02:08,449 --> 00:02:12,510 ถ้าผมประกาศ n ภายในห่วงทำในขณะที่ของฉัน ส่วนที่เหลือของโปรแกรมจะไม่ 36 00:02:12,510 --> 00:02:13,750 สามารถเข้าถึงได้ 37 00:02:13,750 --> 00:02:16,100 มัน จำกัด ขอบเขต ของวงเล็บปีกกา 38 00:02:16,100 --> 00:02:19,010 39 00:02:19,010 --> 00:02:23,090 >> ทั้งหมดขวาดังนั้นตอนนี้ที่เราได้ผ่านการตรวจสอบ การป้อนข้อมูลของผู้ใช้ที่เราจริงต้อง 40 00:02:23,090 --> 00:02:25,020 วาดนี้ครึ่งหนึ่งของปิรามิด 41 00:02:25,020 --> 00:02:29,700 มันสร้างขึ้นจากตัวอักษรที่พิมพ์ดังนั้น ขอให้ครึ่งหนึ่งของพีระมิดในที่เรียบง่าย 42 00:02:29,700 --> 00:02:31,480 แก้ไขข้อความ 43 00:02:31,480 --> 00:02:35,920 ถ้าเราต้องการที่จะทำให้พีระมิดสไตล์มาริโอ สามที่สอดคล้องความสูง 44 00:02:35,920 --> 00:02:41,370 ที่ด้านซ้ายของหน้าต่างของเราแล้ว เราต้องการพิมพ์สอง hashes คลิกใส่, 45 00:02:41,370 --> 00:02:47,180 จากนั้นพิมพ์สาม hashes คลิก ใส่แล้วพิมพ์สี่ 46 00:02:47,180 --> 00:02:51,090 >> แต่ในชุดปัญหานี้ของเรา ครึ่งหนึ่งของปิรามิดจะต้องมีการจัดชิดขวา 47 00:02:51,090 --> 00:02:55,550 การใช้แป้นพิมพ์มาตรฐานวิธีการที่อาจ คุณปรับเปลี่ยนแฟ้มนี้จะย้าย hashes 48 00:02:55,550 --> 00:02:57,210 ผ่านไปทางด้านขวา? 49 00:02:57,210 --> 00:03:03,190 ผมอาจจะใช้ในการขีดสอง แถวบนสุดและหนึ่งในสอง 50 00:03:03,190 --> 00:03:07,690 แต่นั่นไม่ได้ดูดีในขณะที่แม้ว่าดังนั้น ให้แทนที่ด้วยขีด 51 00:03:07,690 --> 00:03:12,450 ช่องว่างและมีเรามีครึ่งปิรามิด ในสามของความสูง 52 00:03:12,450 --> 00:03:16,330 >> ลองและจำโปรแกรมแก้ไขข้อความนี้ ตัวอย่างเช่นในขณะที่คุณเริ่มคิดกลับไป 53 00:03:16,330 --> 00:03:20,100 C. ลองและคิดออกบางส่วน ชนิดของรูปแบบที่เราสามารถทำได้ 54 00:03:20,100 --> 00:03:22,750 ใส่ในการสร้างห่วง 55 00:03:22,750 --> 00:03:27,570 ใช้ความสูงตัวอย่างเช่นการพูดการแปด และดูว่าคุณสามารถเริ่มต้น 56 00:03:27,570 --> 00:03:29,470 มากับรูปแบบ 57 00:03:29,470 --> 00:03:34,710 แถวแรกจะมีช่องว่างที่เจ็ด ตามด้วยสอง hashes 58 00:03:34,710 --> 00:03:40,090 แถวที่สองจะมีหกช่องว่างและ สาม hashes และอื่น ๆ จน 59 00:03:40,090 --> 00:03:41,440 แถวที่แปด 60 00:03:41,440 --> 00:03:45,210 >> แต่อย่างไรคุณจะเป็นตัวแทนของ แถวที่ n? 61 00:03:45,210 --> 00:03:48,170 โปรดจำไว้ว่าการประชุมโปรแกรมที่ การจัดทำดัชนีศูนย์ 62 00:03:48,170 --> 00:03:51,870 นั่นหมายความว่าคุณเริ่มนับที่ ศูนย์ดังนั้นแถวแรกเป็นเทคนิค 63 00:03:51,870 --> 00:03:57,110 เลขศูนย์แถวที่มีสองช่องแถว หมายเลขหนึ่งมีสาม hashes แถว 64 00:03:57,110 --> 00:04:01,860 บ้านเลขที่สองมีสี่ hashes ดังนั้นต่อไปนี้ รูปแบบสำหรับแถว ๆ นี้ 65 00:04:01,860 --> 00:04:05,800 n จำนวนมี n บวก 2 hashes เป็น 66 00:04:05,800 --> 00:04:09,270 ผมจะปล่อยให้คุณแม้ว่าจะหา ออกรูปแบบสำหรับพื้นที่ 67 00:04:09,270 --> 00:04:12,240 โปรดจำไว้ว่ารูปแบบของคุณจะ แตกต่างกันเล็กน้อยถ้าคุณเลือกที่จะ 68 00:04:12,240 --> 00:04:16,649 เริ่มนับของคุณจาก หนึ่งและไม่เป็นศูนย์ 69 00:04:16,649 --> 00:04:19,560 >> ตอนนี้คุณมีรูปแบบสำหรับ ใด ๆ แถวนามธรรม n 70 00:04:19,560 --> 00:04:25,190 คุณรู้ว่าหลายพื้นที่ในการพิมพ์และ วิธีการหลาย hashes เพื่อให้แต่ละแถว 71 00:04:25,190 --> 00:04:26,270 จำนวนจะมีการเปลี่ยนแปลง 72 00:04:26,270 --> 00:04:30,700 แต่กระบวนการเดียวกันในการพิมพ์ ตัวเดียวไม่ว่าจะเป็นช่องว่างหรือ 73 00:04:30,700 --> 00:04:33,200 กัญชาซ้ำแล้วซ้ำอีก 74 00:04:33,200 --> 00:04:37,470 ดังนั้นสิ่งที่คุณต้องทำคือการซ้ำแล้วซ้ำเล่า พิมพ์ตัวอักษรที่ครั้งเป็นจำนวนมาก 75 00:04:37,470 --> 00:04:40,120 เป็นรูปแบบของคุณจะเป็นตัวกำหนด 76 00:04:40,120 --> 00:04:42,522 >> ดังนั้นเราจะทำซ้ำกระบวนการอย่างไร 77 00:04:42,522 --> 00:04:45,160 ใน Scratch เราใช้บล็อกซ้ำ 78 00:04:45,160 --> 00:04:48,580 ใน C เราจะใช้สำหรับห่วง 79 00:04:48,580 --> 00:04:51,290 ลองดูที่ไวยากรณ์ สำหรับสำหรับลูป 80 00:04:51,290 --> 00:04:57,140 >> แต่ละวงจะประกอบด้วยสาม ส่วนการเริ่มต้น, เงื่อนไข, 81 00:04:57,140 --> 00:04:58,592 และการปรับปรุง 82 00:04:58,592 --> 00:05:01,550 สำหรับวงของคุณจะเริ่มต้น ตัวแปรเมื่อมันเป็นครั้งแรก 83 00:05:01,550 --> 00:05:02,960 เข้ามาในห่วงสำหรับ 84 00:05:02,960 --> 00:05:07,100 ถ้าเงื่อนไขจะพบในร่างกาย ของวงจะดำเนินการ 85 00:05:07,100 --> 00:05:10,070 หลังจากนั้นการปรับปรุงจะดำเนินการ 86 00:05:10,070 --> 00:05:13,630 >> ถ้าเงื่อนไขจะพบยัง ห่วงจะดำเนินการและการปรับปรุงและ 87 00:05:13,630 --> 00:05:18,580 ทำซ้ำตราบเท่าที่สภาพของคุณ ประเมินให้เป็นจริง 88 00:05:18,580 --> 00:05:21,450 คุณสภาพในที่สุดก็จะต้องประเมิน เป็นเท็จ แต่เนื่องจาก 89 00:05:21,450 --> 00:05:24,490 ซึ่งแตกต่างจากรอยขีดข่วนที่เราทำไม่ได้ มีตลอดกาลใด ๆ loops 90 00:05:24,490 --> 00:05:28,270 โปรแกรมของคุณจะต้องจบลงในที่สุด 91 00:05:28,270 --> 00:05:32,330 >> นี่คือตัวอย่างของการห่วงว่า คุณอาจต้องการที่จะใช้สำหรับมาริโอ 92 00:05:32,330 --> 00:05:36,790 เริ่มต้นประกาศ ผมจำนวนเต็มมีค่า 0 93 00:05:36,790 --> 00:05:40,750 ตราบเท่าที่ฉันมีค่าน้อยกว่าความสูง, ร่างกายของวงจะดำเนินการและ 94 00:05:40,750 --> 00:05:44,980 ผมเพิ่มขึ้นโดยหนึ่งและทำซ้ำ จน i มากกว่าหรือ 95 00:05:44,980 --> 00:05:47,220 เท่ากับความสูง 96 00:05:47,220 --> 00:05:49,140 >> ตอนนี้ห่วงสำหรับฉันเป็นศูนย์ดัชนี 97 00:05:49,140 --> 00:05:52,270 Int ผมเริ่มต้นที่ศูนย์ไม่ได้เป็นหนึ่ง 98 00:05:52,270 --> 00:05:55,320 ถ้าฉันเลือกที่หนึ่งแล้วสภาพของฉันจะ ยังต้องแตกต่างกันสำหรับ 99 00:05:55,320 --> 00:05:58,740 ห่วงที่จะดำเนินการ หมายเลขเดียวกันของครั้ง 100 00:05:58,740 --> 00:06:03,490 จำนี้อย่างระมัดระวังเมื่อคุณ เลือกการเริ่มต้นของคุณและของคุณ 101 00:06:03,490 --> 00:06:08,660 สภาพและให้คำปรึกษานี้ แผนภูมิการตรวจสอบอีกครั้ง 102 00:06:08,660 --> 00:06:13,430 >> หนึ่งในสิ่งที่ดีเกี่ยวกับคอมพิวเตอร์ วิทยาศาสตร์ก็คือว่ามีเพียงจำนวนมากดังนั้น 103 00:06:13,430 --> 00:06:15,490 วิธีการที่จะดำเนินการสิ่งที่ 104 00:06:15,490 --> 00:06:19,450 คุณสามารถเลือกว่าคุณ เริ่มต้นที่ศูนย์หรือหนึ่ง 105 00:06:19,450 --> 00:06:22,380 หากคุณไม่ต้องการที่จะใช้สำหรับห่วง คุณยังสามารถใช้ห่วงในขณะที่ไป 106 00:06:22,380 --> 00:06:26,530 ทำซ้ำงบตราบใดที่คุณ เก็บสาระสำคัญของห่วงสำหรับ, 107 00:06:26,530 --> 00:06:31,430 เริ่มต้นการปรับปรุงและ 108 00:06:31,430 --> 00:06:36,890 เมื่อเราคิดออกห่วงว่า เรากำลังสบายที่สุดด้วยแล้วเรา 109 00:06:36,890 --> 00:06:38,450 สามารถดำเนินการมาริโอ 110 00:06:38,450 --> 00:06:41,540 >> ครั้งแรกที่เราตรวจสอบสำหรับการป้อนข้อมูลผู้ใช้ และระบุแล้ว 111 00:06:41,540 --> 00:06:43,580 รูปแบบสำหรับแถว n ใด ๆ 112 00:06:43,580 --> 00:06:49,990 ดังนั้นสำหรับแถวจากศูนย์ถึง n ลบ 1 แต่ละ จะพิมพ์จำนวนที่เหมาะสมของ 113 00:06:49,990 --> 00:06:55,340 เว้นวรรคแล้วตามจำนวนที่เหมาะสมของ hashes ตามรูปแบบของเราและ 114 00:06:55,340 --> 00:06:57,180 แล้วบรรทัดใหม่ 115 00:06:57,180 --> 00:06:59,640 กับที่คุณมีปิรามิดของคุณ 116 00:06:59,640 --> 00:07:02,630 ชื่อของฉันคือ Zamyla และนี่ก็เป็นมาริโอ 117 00:07:02,630 --> 00:07:11,765