ZAMYLA CHAN: Ia adalah saya, Zamyla. Hari ini di Mario, kita akan menjadi lukisan separuh piramid untuk Mario untuk naik. Jadi mari kita bercakap tentang kami tugasan untuk masalah ini. Kami akan mahu untuk meminta dan mengesahkan pengguna untuk input yang sah bagaimana tinggi mereka mahu piramid Mario untuk menjadi. Dan kemudian, kita akan menarik ia. Jadi mari kita mulakan dengan mendorong dan mengesahkan pengguna untuk input mereka. Kita boleh gunakan Perpustakaan CS50 Fungsi mendapatkan int yang akan memastikan pengguna input integer. Setiap bilangan bulat positif, negatif integer, nombor 0 adalah semua permainan yang adil. Jika tidak, pengguna akan diminta untuk cuba semula sehingga mereka input integer yang sah. Sekarang walaupun mendapatkan int tidak banyak kerja-kerja untuk kita dalam memastikan bahawa pengguna memberikan kita integer, kita masih perlu memohon beberapa kekangan tambahan kepada itu. Lagipun, kita tidak boleh mempunyai Mario mendaki setengah piramid ketinggian negatif 12. Selain itu, spesifikasi masalah mengatakan bahawa kita hanya boleh membolehkan Mario memanjat piramid ketinggian antara 0 dan 23. OK, jadi ini bermakna bahawa kita perlu untuk terus meminta pengguna untuk memberi kita yang sah nombor dan hanya terus apabila mereka telah memberikan kita ketinggian yang sah. Bagaimana kita berbuat demikian? Well, proses yang berterusan memberikan kita idea loops-- sesuatu melakukan secara berulang-ulang. Satu gelung dalam C sebagai seketika gelung yang akan berterusan melaksanakan badan gelung selagi syarat yang diberikan menilai kepada benar. Sebaik sahaja syarat menilai kepada palsu, program ini akan meneruskan apa sahaja yang datang selepas itu. Oleh itu, sambil gelung adalah salah satu cara untuk memastikan kami terus mendorong pengguna untuk input yang sah. Dan apabila mereka memberi kita input yang sah, kami akan meneruskan apa sahaja yang datang akan datang. Kita tahu bahawa kita akan meminta pengguna untuk input sekurang-kurangnya sekali. Jadi sekarang kita datang kepada saudara perempuan yang manakala gelung, yang do manakala gelung. Adakah manakala gelung akan melaksanakan badan gelung sekurang-kurangnya sekali. Jadi tanpa memeriksa keadaan, ia akan melaksanakan badan gelung. Dan kemudian memeriksa keadaan untuk melihat sama ada ia perlu berulang. Ini amat berguna apabila kami mengesahkan input pengguna. Kita tahu bahawa kita akan untuk bertanya kepada mereka sekurang-kurangnya sekali. Jadi lakukan semasa gelung mungkin melihat sesuatu seperti ini. Kami mempunyai integer n. Dan di dalam tugasan manakala gelung, kita segera mendorong pengguna untuk integer. Jika n adalah tidak sah, maka kita akan meminta mereka lagi dan lagi dan lagi sehingga mereka Berikanlah kepada kami pahala integer sah. Akhir kata, sekali n adalah input yang sah, kami akan meneruskan ke seluruh program kami. Jadi mari kita kembali ke spec dan daftar apa syarat-syarat untuk input yang sah akan menjadi. Ketinggian sah akan antara 0 dan 23, keseluruhan. ketinggian Jadi tidak sah akan tidak kurang daripada 0 atau lebih daripada 23. Jadi ingat untuk mereka bentuk keadaan anda dengan teliti, mengetahui bahawa keadaan untuk do gelung while harus manakala n adalah tidak sah. Sekarang ini tidak akan menjadi mudah ungkapan Boolean tunggal. Kami akan perlu untuk menggabungkan dua ungkapan yang berbeza untuk membuat seluruh keadaan kita. Jadi mari kita hanya melihat jadual kebenaran saya telah sudah memberikan kamu tanda-tanda bahawa kita akan berhadapan dengan dua Booleans. Jadi di sini adalah jadual kebenaran di mana saya mempunyai dua Booleans-- Boolean 1 dan 2. Oleh itu, kita mempunyai pilihan untuk menilai bool1 dan bool2 atau bool1 atau bool2. Dan hanya akan menjadi kenyataan jika kedua-dua Booleans menilai kepada yang sebenar, sedangkan semua atau akan menjadi kenyataan selagi salah satu daripada dua Booleans menilai kepada benar. OK, jadi mengambil masa, jeda ini video dan mencerna jadual kebenaran ini. Saya akan berada di sini menunggu. Apabila anda kembali, lihat jika anda boleh simpulkan ungkapan Boolean untuk anda keadaan n menjadi input tidak sah. Jadi sekarang kita mempunyai input pengguna sah, mari kita pergi ke depan dan bercakap tentang bagaimana kita mungkin menarik setengah piramid. Di sini dalam editor teks ini mudah, Saya telah disediakan piramid kiri sejajar. Tetapi kita tahu bahawa kita perlu kami piramid untuk kanan sejajar. Jadi bagaimana saya boleh melakukan ini? Well, saya mungkin cuba untuk menolak segala-galanya untuk sebelah dengan hanya meletakkan sedikit aksara di antaranya. Dan kemudian, untuk seterusnya line, saya akan meletakkan beberapa watak lebih untuk menolak bersama-sama, dan further-- sebagainya dan sebagainya forth-- sehingga saya mempunyai piramid kanan sejajar itu. Jadi kita mempunyai piramid align betul, tetapi ia tidak kelihatan begitu hebat dengan titik-titik. Tetapi kita masih mahu mengekalkan jarak bagus. Jadi saya akan literal memasukkan beberapa ruang. Daripada tiga titik, saya akan meletakkan satu, dua, tiga ruang. Pada baris kedua. Saya akan meletakkan satu, dua ruang. Dan pada kedua terakhir talian, hanya satu ruang. Dan di sini saya mempunyai piramid tegak sejajar. Daripada melakukan contoh di dalam teks editor, kita mempunyai idea untuk corak yang kami akan gunakan untuk menarik setengah piramid. Bagi setiap baris, apa yang kita lakukan adalah kita menaip beberapa ruang, dan kemudian ditaip beberapa hash, dan kemudian ditaip utama Masukkan, yang mewujudkan barisan baru. Jadi sekarang yang kita ada itu, mari kita pergi satu langkah ke hadapan dan mencari corak. Jadi, saya akan berkata, bagi kepentingan contoh ini, kita berurusan dengan ketinggian 8. Baris pertama akan mempunyai dua Hash yang berikut tujuh ruang. The second-- tiga Hash, enam ruang. Ketiga row-- empat Hash, lima spaces-- sebagainya dan sebagainya sehingga kita sampai ke baris ke-n. Sebab itu, saya meminta anda untuk baris NTH, berapa ramai Hash kita akan mempunyai dan berapa banyak ruang? Supaya ia terpulang kepada anda untuk memikirkan formula untuk mewakili berapa banyak Hash dan berapa banyak ruang yang diperlukan untuk baris ke-n apabila anda mempunyai beberapa ketinggian. Sekarang apabila anda memikirkan ini keluar, berhati-hati bagaimana anda mengindeks. Apa yang saya maksudkan dengan ini adalah bahawa dalam kehidupan sehari-hari kita semua mula mengira, biasanya dengan 1. Tetapi dalam CS50 dan dalam bidang sains komputer secara umum, kami 0 diindeks. Jadi baris pertama akan n 0 berbanding dengan 1. Berhati-hati ini apabila anda berada cuba untuk memikirkan corak anda. Jadi sekarang mari kita kembali kepada bagaimana kita akan menarik piramid kami. Bagi setiap baris, kita akan mahu mencetak ruang, mencetak Hash, dan kemudian mencetak baris baru. tanda-tanda di sini adalah perkataan "untuk" setiap baris. Dalam C, kita perlu membina satu dipanggil untuk gelung, yang terdiri daripada satu pengawalan, keadaan, kemas kini, dan badan gelung. Mengatakan saya mahu berkata, hello dunia, 50 kali, saya untuk gelung akan kelihatan seperti ini. Saya memulakan integer saya kepada 0. Keadaan ini adalah bahawa saya adalah kurang daripada 50. Dan kemudian maklumat Ku adil menokok saya demi satu setiap kali. Kita juga boleh menggunakan untuk gelung untuk melelar lebih perkara. Perhatikan di sini bagaimana kita tidak mempunyai keras berkod nombor, tetapi diletakkan pembolehubah ketinggian dan bukannya ke dalam keadaan. Jadi apa yang saya lakukan di sini saya iterating atas setiap deretan piramid. Saya boleh melakukan sesuatu untuk setiap baris dalam badan gelung saya. Apa yang kita lakukan di dalam badan gelung? Well, seperti yang kita telah berkata, kita mencetak ruang dan kami mencetak Hash dan kami mencetak baris baru. Jadi luar saya untuk gelung akan kelihatan seperti ini. Saya melelar lebih setiap baris piramid, menggunakan, dalam kes ini, ketinggian sebagai pembolehubah yang menyimpan ketinggian piramid. Di dalam badan gelung itu, saya akan mencetak ruang berulang kali, cetak yang Hash berulang kali, dan kemudian mencetak baris baru. Jadi sekarang, dengan menggunakan semua konsep-konsep yang Saya telah berbincang kira-kira dalam berjalan-melalui ini, anda akan dapat mendorong pengguna untuk input, mengesahkan input itu, dan kemudian menarik setengah piramid. Nama saya Zamyla, dan ini adalah CS50.