SPEAKER 1: Mari kita bercakap tentang air. Dalam masalah ini, kita meminta pengguna untuk memberitahu kita berapa lama dalam beberapa minit pancuran mereka adalah dan kemudian kita mengira bersamaan beberapa botol air bahawa pancuran mereka digunakan. Jadi apakah kami tugasan ini bagi masalah ini? Pertama, kita akan mahu untuk meminta dan kemudian mengesahkan input yang pengguna memberikan kita. Apabila kita memastikan kita bahawa mempunyai input pengguna sah, kita akan mengira jumlah bersamaan dengan botol air bahawa pengguna mempunyai semasa pancuran mereka, dan kemudian kita akan memberitahu mereka dengan mencetak nombor itu. Jadi mari kita menangani pertama kami tugas, mendorong dan mengesahkan input pengguna. Untuk ini kita telah menulis satu fungsi untuk anda dipanggil get_int terletak di Perpustakaan CS50. get_int memastikan bahawa input pengguna integer, jadi mana-mana nombor positif, nombor negatif, atau sifar semua diterima. Tetapi jika pengguna input apa-apa lagi, jadi apa-apa gabungan huruf atau nombor atau nombor perpuluhan, maka pengguna akan diminta untuk mencuba semula dan fungsi yang tidak akan menerima apa-apa sehingga pengguna memberikan mereka integer. Jadi bagaimana kita menggunakan get_int? Jika anda membuka ruang kerja anda dan mencipta satu fail bernama integer.c mari taip yang berikut. Hashtag termasuk cs50.h. Ini adalah perlu kerana get_int adalah fungsi perpustakaan cs50, jadi kita mesti hashtag termasuk pengisytiharan dalam usaha untuk menggunakan fungsi ini. Dan kemudian dalam utama saya berfungsi Saya hanya akan untuk hanya memanggil get_int fungsi. Jadi mari kita menjalankan ini dan melihat bagaimana ia berfungsi. Saya telah disusun, jadi mari kita hanya pergi ke hadapan dan menjalankan program ini, ./integer. Di sini saya mempunyai segera dan di sini di mana saya input nilai. Katakanlah saya dimasukkan ke dalam hanya beberapa integer, 50, Petikan program dan letak jawatan dan itulah yang. Tetapi katakan saya berjalan lagi dan Saya input sesuatu yang lain. Mungkin, hello dunia. Itu bukan satu integer jadi program akan meminta saya untuk mencuba semula. Mari kita cuba lagi dengan mungkin perpuluhan masa ini. 0.5, sekali lagi, bukan integer supaya program ini tidak akan menerimanya dan ia akan memberitahu saya untuk mencuba semula. Jadi mari kita memberikan nombor lain. Program ini menerimanya, letak jawatan, dan kami sudah selesai. Jadi sekarang kita mempunyai fungsi yang membolehkan kita dan memastikan bahawa pengguna input yang integer, tetapi bagaimana boleh kita sebenarnya menjejaki integer diinput oleh pengguna? Well, semua yang kita akan lakukan adalah kedai nilai ini dalam pembolehubah, mengatakan n. Jadi jika saya mengisytiharkan integer n, dan saya menetapkan nilai yang ke get_int, kemudian n kemudian akan menyimpan apa sahaja berhargai pengguna yang dimasukkan. Baiklah, jadi sekarang kita telah memastikan bahawa pengguna akan memberi kita integer dan kita tahu bagaimana untuk mengesan integer, tetapi ingat, integer positif dan negatif. Oleh itu, ia tidak benar-benar masuk akal dalam konteks masalah ini bahawa pengguna mengambil mandi daripada kata negatif 12 minit. Oleh itu, kita perlu memastikan bahawa pengguna sebenarnya memberikan kita integer positif. Sekarang kita tidak mempunyai hanya fungsi tunggal untuk itu, jadi kita akan mempunyai untuk mewujudkan diri kita sendiri. Oleh itu, kita mahu untuk terus segera pengguna sehingga mereka memberi kita integer positif. Jika saya melakukan sesuatu secara berterusan maka itulah serupa dengan gelung, pengulangan. Jadi salah satu konstruk yang kita gunakan dalam c untuk melaksanakan pengulangan dan gelung adalah gelung sementara. Jadi gelung sementara, kerana ditunjukkan di sini, akan melaksanakan apa yang ada di badan gelung sebagai selagi itu menilai syarat yang diberikan kepada benar. Sebaik sahaja syarat menilai kepada palsu, maka program ini akan diteruskan untuk apa sahaja datang selepas mayat gelung. Oleh itu, sambil gelung akan benar-benar berguna dalam CS50. Tetapi dalam khusus ini kes, kita tahu bahawa kita berada akan segera pengguna sekurang-kurangnya sekali dan kemudian hanya gelung jika perlu. Jadi di sini kita datang ke membina khas dan itulah hampir sama dengan manakala gelung dipanggil gelung do-sementara. Jadi gelung do-while melaksanakan yang badan gelung sekurang-kurangnya sekali dan kemudian ia memeriksa untuk melihat sama ada ia perlu melaksanakan, yang bertentangan dengan gelung sementara, yang akan memeriksa keadaan dan kemudian melaksanakan badan. Jadi dalam gelung do-manakala apa yang kita mungkin lakukan adalah meminta pengguna untuk integer, dan kemudian memeriksa jika ia tidak sah atau tidak. Jika ia tidak sah, maka kita akan mengulangi proses tersebut meminta pengguna untuk memberi kita integer lain, dan kemudian hanya apabila integer yang sah, kami akan terus apa sahaja yang datang selepas itu. Sekarang anda akan melihat bahawa pengisytiharan integer n adalah sedikit berbeza dengan apa yang kita lakukan sebelum ini dalam contoh sebelum ini dan ini adalah kerana skop. Jika kita mengisytiharkan integer n dalam badan gelung do-sementara, maka kita tidak akan dapat mengakses bahawa nilai n luar kerinting mereka pendakap yang menunjukkan badan gelung. Tetapi kita sebenarnya mahu mengakses nilai n kemudian di dalam program kami. OK, jadi sekarang mari kita bercakap tentang apa syarat ini sepatutnya. Kami mahu hanya reprompt yang pengguna selagi n tidak sah. Jadi berfikir untuk diri sendiri apa yang tidak sah nilai integer akan kelihatan seperti dan kemudian buat Boolean yang ungkapan untuk menyatakan bahawa. Kami hampir selesai dengan subtask kami untuk mendorong dan mengesahkan input pengguna. Jadi mari kita membuat ini sedikit lebih mesra pengguna dan memberi pengguna sedikit bit maklumat lanjut daripada apa yang kita mendorong mereka untuk. Jadi mari kita segera pengguna, mengikut spec, dengan minit tali. Jadi menggunakan kenyataan printf anda, membuat memastikan bahawa anda sepadan ini betul-betul. Baiklah. Jadi sekarang kita mempunyai pengguna yang sah input, integer positif nilai untuk berapa minit mereka menghabiskan di bilik mandi. Jadi apa yang akan datang adalah untuk mengira jumlah bersamaan botol. Apa yang kita akan lakukan di sini mungkin sangat jelas kepada anda pada mulanya, dan itulah OK. Apa yang kita mahu lakukan ialah kita mahu mula mengamalkan idea mengesan corak dan membangunkan formula untuk masalah ini. Oleh itu, kita diberitahu setiap spec bahawa satu minit di bilik mandi adalah bersamaan dengan kira-kira 12 botol air. Oleh itu, maka dua minit akan bersamaan dengan 24, dan lima minit akan bersamaan dengan 60. Jadi sekarang jika anda berfikir anda akan dapat semuanya, maka mari kita melihat jika anda boleh datang dengan corak atau formula untuk menyatakan jika kita berkata, n minit, berapa banyak botol air akan yang dinyatakan dalam syarat-syarat n? Sekali lagi, walaupun ini mungkin mudah pada mulanya, kemudian apabila kita dapat masalah yang lebih rumit kita akan mahu masuk ke dalam amalan mengenal pasti corak dan membangunkan formula untuk memikirkan perkara-perkara ini. Dalam c anda mempunyai akses kepada operasi aritmetik standard, penambahan, penolakan, pendaraban, dan pembahagian. Jadi saya akan serahkan kepada anda sekarang untuk memikirkan bagaimana untuk menyatakan yang bilangan yang sama berjumlah botol bahawa pengguna dimakan semasa mandi mereka. Baiklah, kita hampir selesai. Kami telah mendorong pengguna untuk input mereka, kami telah memastikan bahawa itu input yang sah, dan kemudian kami telah digambarkan bagaimana untuk mengira bersamaan beberapa botol yang mereka digunakan. Jadi perkara terakhir yang perlu dilakukan adalah untuk output jumlah bersamaan botol dan mudah-mudahan menggalakkan mereka untuk menjimatkan air. Keluarkan nilai akan menjadi kenyataan printf. Jika saya mahu memberitahu anda bahawa saya mempunyai tiga haiwan peliharaan, misalnya, Saya mungkin menggunakan kenyataan printf yang kelihatan seperti ini. Saya mempunyai tiga haiwan peliharaan, dan yang baru line untuk pemformatan bagus. Sekarang kita tidak mahu hanya perkara kod keras. Berkata bilangan saya Haiwan kesayangan perubahan dari masa ke masa. Kemudian saya akan gunakan ruang letak dalam satu kenyataan printf saya. Jadi di sini nombor saya adalah integer. Jadi, saya akan membuat pemegang tempat untuk integer menggunakan% i. Saya akan menulis tali, dan kemudian selepas tali Saya menulis koma dan kemudian pembolehubah yang saya mahu untuk mencetak. Jadi nilai yang akan dicetak sebagai ganti yang pemegang tempat,% i. Anda boleh menggunakan ruang letak, kerana dengan baik, untuk terapung dengan% f. Anda juga boleh mempunyai beberapa ruang letak dalam rentetan. Sebagai contoh, jika saya mempunyai beberapa nombor anjing dan beberapa beberapa kucing, Saya meletakkan dua ruang letak di sini dan kemudian dua pembolehubah saya untuk masing-masing. Jadi sekarang kita tahu bagaimana untuk mencetak nilai-nilai yang disimpan dalam pembolehubah, Perkara yang terakhir untuk lakukan adalah untuk memastikan kita bahawa mencetak nilai dalam format yang tepat yang dinyatakan dalam penentuan itu. Dengan itu, kami telah mendorong pengguna dan mengesahkan input mereka. Kami telah kemudiannya dikira bersamaan beberapa botol air yang mereka makan semasa mandi mereka, dan kami telah outputted bahawa nilai kepada mereka. Dan sebagainya, kita telah menyelesaikan air. Nama saya ialah [? Zamila,?] dan ini adalah CS50.