>> [MUZIK Bermain]
>> ROB Bowden: Ini aku, Rob.
Mari kita berjalan melalui bagaimana untuk melaksanakan Mario.
Jadi perkara pertama yang perlu kita lakukan adalah meminta pengguna untuk input.
>> Kita perlu bertanya kepada mereka bagaimana tinggi piramid harus.
Jadi di sini, kita lihat yang kami lakukan height = GetInt.
Satu Dan ingat bahawa fungsi GetInt yang dilaksanakan dalam CS50
perpustakaan, jadi sehingga atas, kita perlu ingat untuk # include cs50.h.
>> Jadi mengapa kita mempunyai ini dibalut dalam gelung do-sementara?
Nah, kita juga perlu ingat bahawa input pengguna mempunyai sah.
Apakah yang dimaksudkan dengan input yang tidak sah?
Nah spec Serangga yang khusus kata bahawa ketinggian yang kurang daripada 0 atau lebih
daripada 23 adalah tidak sah.
>> Jadi di sini, kita lihat bahawa kita menentukan pemalar yang dipanggil MAX_HEIGHT dengan
nilai 23.
Ini gelung do-sementara akan diteruskan manakala ketinggian kurang daripada 0 atau MAX_HEIGHT adalah
kurang daripada ketinggian, yang bermaksud bahawa 23 adalah kurang daripada ketinggian.
Jadi, jika ketinggian adalah 24 atau lebih besar, kami akan terus melakukan gelungan.
Ingat yang melakukan-manakala gelung cukup membantu bila-bila masa kita mahu
input pengguna dan kemudian mengesahkan ia, kerana kita tidak dapat tidak perlu bertanya pengguna pada
kurangnya sekali untuk nilai yang mereka mahu.
>> Jadi sebaik sahaja kami mempunyai input mereka, kami kini boleh membina piramid.
Salah satu helah masalah ini ditetapkan adalah bahawa kita perlu bermula di bahagian atas
piramid.
Anda tidak boleh printf bahagian bawah piramid dan kemudian membina cara anda.
Jadi mari kita lihat contoh di dari spec Serangga ini.
>> Kita lihat di sini bahawa apabila kita memasuki ketinggian 8, bahagian paling bawah yang
piramid mencetak sembilan Hash.
Satu tahap dari yang cetakan satu ruangan dan lapan Hash.
Satu tahap dari yang dua ruang dan tujuh Hash, sepanjang jalan sehingga kita
sampai ke atas piramid, yang merupakan lapan tahap sehingga, yang mencetak tujuh
ruang dan dua Hash.
Jadi ingat bahawa kita perlu melakukan peringkat tertinggi ini pertama.
>> Di sini kita iterating dari peringkat atas, baris 8, meneruskan
sehingga berturut-turut sampai 0.
Ruang Jadi berapa banyak yang kita perlu untuk mencetak dalam yang baris atas?
Kami dicetak tujuh ruang dan dua Hash.
Jadi bilangan tempat yang kami mahu ialah barisan yang berada di tolak 1.
>> Jika baris atas ialah 8, 8 tolak 1 memberikan kita tujuh ruang.
Maka kita mempunyai gelung yang akan mencetak satu persatu ruang pada satu masa.
Oleh itu, apabila ruang adalah 7, gelung ini tujuh kali, percetakan
tujuh ruang individu.
>> Jadi sekarang kita perlu mencetak Hash ini pada akhir piramid.
Jadi di sini, kita perlu mengira bilangan Hash.
Kita melihat bahawa kita lakukan ketinggian berturut-turut tolak campur 2.
Jadi bagaimana kita mendapatkan itu?
>> Ingat bahawa atas piramid adalah barisan 8, dan ketinggian ialah 8.
Dan kita masih dicetak dua Hash.
Jadi sekurang-kurangnya, 8 tolak 8 ditambah 2 memberikan kita jawapan yang betul.
Dan kemudian mempertimbangkan bahagian bawah piramid, baris 1.
Berturut-turut tolak Tinggi akan memberikan kita 7, dan kemudian campur 2 memberikan kita sembilan Hash,
yang betul-betul bilangan daripada Hash yang kita dicetak.
Jadi ini adalah formula yang hendak kita gunakan untuk mengira bilangan
Hash dalam setiap baris.
>> Menggunakan jumlah itu, kita mempunyai satu lagi untuk gelung, hampir sama dengan
untuk gelung yang kita digunakan untuk ruang, bahawa jumlah iterates daripada Hash kali
mencetak hash tunggal setiap kali.
Pada baris atas, yang akan mencetak dua Hash.
Pada baris bawah, yang akan mencetak sembilan Hash.
Dan setiap baris lain akan mencetak setiap beberapa Hash di antaranya.
>> Dan kemudian pada akhir sangat, kita perlu mencetak talian baru kami untuk pergi ke seterusnya
baris dalam piramid.
Akhir sekali, kita perlu mencetak barisan baru pada akhir baris untuk
terus ke depan deretan piramid.
Dan pada akhir program kami, kita mempunyai pulangan 0.
>> Sebagai satu spec Serangga, pulangan 0 tidak tegas perlu.
Tetapi ia menandakan bahawa utama dilakukan.
Nama saya Rob, dan ini adalah Mario.
>> [MUZIK Bermain]