1 00:00:00,000 --> 00:00:00,982 2 00:00:00,982 --> 00:00:11,293 >> [MUZIK Bermain] 3 00:00:11,293 --> 00:00:13,580 >> ROB Bowden: Ini aku, Rob. 4 00:00:13,580 --> 00:00:16,540 Mari kita berjalan melalui bagaimana untuk melaksanakan Mario. 5 00:00:16,540 --> 00:00:21,040 Jadi perkara pertama yang perlu kita lakukan adalah meminta pengguna untuk input. 6 00:00:21,040 --> 00:00:24,440 >> Kita perlu bertanya kepada mereka bagaimana tinggi piramid harus. 7 00:00:24,440 --> 00:00:27,110 Jadi di sini, kita lihat yang kami lakukan height = GetInt. 8 00:00:27,110 --> 00:00:32,479 Satu Dan ingat bahawa fungsi GetInt yang dilaksanakan dalam CS50 9 00:00:32,479 --> 00:00:38,060 perpustakaan, jadi sehingga atas, kita perlu ingat untuk # include cs50.h. 10 00:00:38,060 --> 00:00:41,360 >> Jadi mengapa kita mempunyai ini dibalut dalam gelung do-sementara? 11 00:00:41,360 --> 00:00:45,080 Nah, kita juga perlu ingat bahawa input pengguna mempunyai sah. 12 00:00:45,080 --> 00:00:46,910 Apakah yang dimaksudkan dengan input yang tidak sah? 13 00:00:46,910 --> 00:00:51,460 Nah spec Serangga yang khusus kata bahawa ketinggian yang kurang daripada 0 atau lebih 14 00:00:51,460 --> 00:00:54,530 daripada 23 adalah tidak sah. 15 00:00:54,530 --> 00:00:59,030 >> Jadi di sini, kita lihat bahawa kita menentukan pemalar yang dipanggil MAX_HEIGHT dengan 16 00:00:59,030 --> 00:01:00,750 nilai 23. 17 00:01:00,750 --> 00:01:06,380 Ini gelung do-sementara akan diteruskan manakala ketinggian kurang daripada 0 atau MAX_HEIGHT adalah 18 00:01:06,380 --> 00:01:11,870 kurang daripada ketinggian, yang bermaksud bahawa 23 adalah kurang daripada ketinggian. 19 00:01:11,870 --> 00:01:15,390 Jadi, jika ketinggian adalah 24 atau lebih besar, kami akan terus melakukan gelungan. 20 00:01:15,390 --> 00:01:18,300 Ingat yang melakukan-manakala gelung cukup membantu bila-bila masa kita mahu 21 00:01:18,300 --> 00:01:22,070 input pengguna dan kemudian mengesahkan ia, kerana kita tidak dapat tidak perlu bertanya pengguna pada 22 00:01:22,070 --> 00:01:25,010 kurangnya sekali untuk nilai yang mereka mahu. 23 00:01:25,010 --> 00:01:28,500 >> Jadi sebaik sahaja kami mempunyai input mereka, kami kini boleh membina piramid. 24 00:01:28,500 --> 00:01:31,940 Salah satu helah masalah ini ditetapkan adalah bahawa kita perlu bermula di bahagian atas 25 00:01:31,940 --> 00:01:32,750 piramid. 26 00:01:32,750 --> 00:01:36,800 Anda tidak boleh printf bahagian bawah piramid dan kemudian membina cara anda. 27 00:01:36,800 --> 00:01:38,830 Jadi mari kita lihat contoh di dari spec Serangga ini. 28 00:01:38,830 --> 00:01:41,530 29 00:01:41,530 --> 00:01:45,430 >> Kita lihat di sini bahawa apabila kita memasuki ketinggian 8, bahagian paling bawah yang 30 00:01:45,430 --> 00:01:48,660 piramid mencetak sembilan Hash. 31 00:01:48,660 --> 00:01:52,990 Satu tahap dari yang cetakan satu ruangan dan lapan Hash. 32 00:01:52,990 --> 00:01:58,250 Satu tahap dari yang dua ruang dan tujuh Hash, sepanjang jalan sehingga kita 33 00:01:58,250 --> 00:02:03,050 sampai ke atas piramid, yang merupakan lapan tahap sehingga, yang mencetak tujuh 34 00:02:03,050 --> 00:02:06,000 ruang dan dua Hash. 35 00:02:06,000 --> 00:02:08,810 Jadi ingat bahawa kita perlu melakukan peringkat tertinggi ini pertama. 36 00:02:08,810 --> 00:02:11,620 37 00:02:11,620 --> 00:02:18,500 >> Di sini kita iterating dari peringkat atas, baris 8, meneruskan 38 00:02:18,500 --> 00:02:22,150 sehingga berturut-turut sampai 0. 39 00:02:22,150 --> 00:02:25,820 Ruang Jadi berapa banyak yang kita perlu untuk mencetak dalam yang baris atas? 40 00:02:25,820 --> 00:02:29,310 Kami dicetak tujuh ruang dan dua Hash. 41 00:02:29,310 --> 00:02:34,450 Jadi bilangan tempat yang kami mahu ialah barisan yang berada di tolak 1. 42 00:02:34,450 --> 00:02:39,310 >> Jika baris atas ialah 8, 8 tolak 1 memberikan kita tujuh ruang. 43 00:02:39,310 --> 00:02:43,770 Maka kita mempunyai gelung yang akan mencetak satu persatu ruang pada satu masa. 44 00:02:43,770 --> 00:02:47,450 Oleh itu, apabila ruang adalah 7, gelung ini tujuh kali, percetakan 45 00:02:47,450 --> 00:02:50,300 tujuh ruang individu. 46 00:02:50,300 --> 00:02:54,672 >> Jadi sekarang kita perlu mencetak Hash ini pada akhir piramid. 47 00:02:54,672 --> 00:02:57,930 Jadi di sini, kita perlu mengira bilangan Hash. 48 00:02:57,930 --> 00:03:01,930 Kita melihat bahawa kita lakukan ketinggian berturut-turut tolak campur 2. 49 00:03:01,930 --> 00:03:04,170 Jadi bagaimana kita mendapatkan itu? 50 00:03:04,170 --> 00:03:08,630 >> Ingat bahawa atas piramid adalah barisan 8, dan ketinggian ialah 8. 51 00:03:08,630 --> 00:03:10,890 Dan kita masih dicetak dua Hash. 52 00:03:10,890 --> 00:03:15,420 Jadi sekurang-kurangnya, 8 tolak 8 ditambah 2 memberikan kita jawapan yang betul. 53 00:03:15,420 --> 00:03:19,170 Dan kemudian mempertimbangkan bahagian bawah piramid, baris 1. 54 00:03:19,170 --> 00:03:24,020 Berturut-turut tolak Tinggi akan memberikan kita 7, dan kemudian campur 2 memberikan kita sembilan Hash, 55 00:03:24,020 --> 00:03:26,620 yang betul-betul bilangan daripada Hash yang kita dicetak. 56 00:03:26,620 --> 00:03:29,880 Jadi ini adalah formula yang hendak kita gunakan untuk mengira bilangan 57 00:03:29,880 --> 00:03:32,220 Hash dalam setiap baris. 58 00:03:32,220 --> 00:03:36,020 >> Menggunakan jumlah itu, kita mempunyai satu lagi untuk gelung, hampir sama dengan 59 00:03:36,020 --> 00:03:41,270 untuk gelung yang kita digunakan untuk ruang, bahawa jumlah iterates daripada Hash kali 60 00:03:41,270 --> 00:03:43,720 mencetak hash tunggal setiap kali. 61 00:03:43,720 --> 00:03:46,010 Pada baris atas, yang akan mencetak dua Hash. 62 00:03:46,010 --> 00:03:48,390 Pada baris bawah, yang akan mencetak sembilan Hash. 63 00:03:48,390 --> 00:03:52,610 Dan setiap baris lain akan mencetak setiap beberapa Hash di antaranya. 64 00:03:52,610 --> 00:03:57,340 >> Dan kemudian pada akhir sangat, kita perlu mencetak talian baru kami untuk pergi ke seterusnya 65 00:03:57,340 --> 00:03:59,400 baris dalam piramid. 66 00:03:59,400 --> 00:04:03,070 Akhir sekali, kita perlu mencetak barisan baru pada akhir baris untuk 67 00:04:03,070 --> 00:04:06,260 terus ke depan deretan piramid. 68 00:04:06,260 --> 00:04:08,980 Dan pada akhir program kami, kita mempunyai pulangan 0. 69 00:04:08,980 --> 00:04:12,770 >> Sebagai satu spec Serangga, pulangan 0 tidak tegas perlu. 70 00:04:12,770 --> 00:04:15,710 Tetapi ia menandakan bahawa utama dilakukan. 71 00:04:15,710 --> 00:04:17,610 Nama saya Rob, dan ini adalah Mario. 72 00:04:17,610 --> 00:04:22,470 >> [MUZIK Bermain] 73 00:04:22,470 --> 00:04:25,558