SPEAKER 1: Mari kita bicara tentang air.
Dalam masalah ini, kami meminta pengguna untuk memberitahu kami berapa lama di menit mandi mereka adalah
dan kemudian kita menghitung setara jumlah botol air
bahwa mandi mereka digunakan.
>> Jadi apa yang kami to-do untuk masalah ini?
Pertama, kita akan ingin untuk mendorong dan kemudian memvalidasi
input bahwa pengguna memberi kita.
Setelah kami memastikan kami bahwa memiliki input pengguna yang valid,
kita akan menghitung jumlah setara botol air
bahwa pengguna memiliki selama mandi mereka, dan kemudian kami
akan memberitahu mereka dengan mencetak angka itu.
>> Jadi mari kita menangani pertama kami tugas, mendorong dan memvalidasi
input pengguna.
Untuk ini kami telah menulis Fungsi untuk Anda disebut
get_int terletak di Perpustakaan CS50.
get_int memastikan bahwa input pengguna integer, sehingga setiap angka positif,
angka negatif, atau nol semua diterima.
Tetapi jika pengguna masukan apa pun, sehingga setiap kombinasi huruf atau angka
atau angka desimal, maka pengguna akan diminta untuk mencoba lagi
dan fungsi tidak akan menerima apa-apa sampai pengguna memberikan mereka integer.
>> Jadi bagaimana kita menggunakan get_int?
Jika Anda membuka ruang kerja Anda dan membuat file bernama integer.c mari
ketik berikut ini.
Hashtag termasuk cs50.h.
Hal ini diperlukan karena get_int adalah fungsi CS50 perpustakaan,
jadi kita harus hashtag mencakup deklarasi dalam rangka
untuk menggunakan fungsi.
Dan kemudian di utama saya berfungsi aku hanya akan
untuk hanya memanggil fungsi get_int.
>> Jadi mari kita jalankan ini dan melihat cara kerjanya.
Aku sudah dikompilasi, jadi mari kita hanya pergi ke depan dan menjalankan program ini,
./bilangan bulat.
Di sini saya memiliki cepat dan di sinilah saya masukan nilai.
Katakanlah saya dimasukkan ke dalam hanya beberapa integer, 50, excepts Program dan berhenti
dan itulah yang.
>> Tapi mengatakan saya jalankan lagi dan Saya masukan sesuatu yang lain.
Mungkin, halo dunia.
Itu bukan integer sehingga Program akan meminta saya untuk mencoba lagi.
Mari kita coba lagi dengan mungkin desimal kali ini.
0,5, sekali lagi, bukan integer sehingga program tidak akan menerimanya
dan itu akan memberitahu saya untuk mencoba lagi.
Jadi mari kita nomor lain.
Program ini menerimanya, berhenti, dan kita sudah selesai.
>> Jadi sekarang kita memiliki fungsi yang memungkinkan kita dan memastikan
bahwa pengguna input sebuah integer, tapi bagaimana kita bisa
sebenarnya melacak bilangan bulat diinput oleh user?
Yah, semua akan kita lakukan adalah toko nilai ini dalam variabel, mengatakan n.
Jadi jika saya menyatakan integer n, dan saya menetapkan nilai yang ke get_int,
maka n kemudian akan menyimpan apa pun menghargai pengguna diinput.
>> Baiklah, jadi sekarang kita sudah memastikan bahwa pengguna akan memberi kita integer
dan kita tahu bagaimana untuk melacak integer, tapi ingat,
bilangan bulat positif dan negatif.
Sehingga tidak benar-benar masuk akal dalam konteks masalah ini
bahwa pengguna mengambil mandi dari mengatakan negatif 12 menit.
Jadi kita perlu memastikan bahwa pengguna benar-benar memberi kita bilangan bulat positif.
Sekarang kita tidak hanya memiliki fungsi tunggal untuk itu,
sehingga kita akan memiliki untuk menciptakan diri kita sendiri.
>> Jadi kami ingin terus meminta pengguna
sampai mereka memberi kita bilangan bulat positif.
Jika saya melakukan sesuatu yang terus menerus maka yang mirip dengan loop, pengulangan.
Jadi salah satu konstruksi yang kita gunakan di c untuk melaksanakan pengulangan dan loop
adalah loop sementara.
Jadi loop sementara, sebagai ditampilkan disini, akan mengeksekusi
apa yang ada di tubuh loop sebagai Selama mengevaluasi kondisi tertentu
true.
Segera setelah kondisi yang mengevaluasi ke false, maka
program akan melanjutkan ke apapun datang setelah tubuh loop.
>> Jadi sementara loop akan benar-benar berguna dalam CS50.
Namun dalam khusus ini kasus, kita tahu bahwa kita
akan meminta pengguna setidaknya sekali dan kemudian hanya lingkaran jika diperlukan.
Jadi di sini kita datang ke konstruk khusus dan itu
sangat mirip dengan sementara lingkaran disebut loop do-while.
>> Jadi loop do-while mengeksekusi tubuh loop setidaknya sekali
dan kemudian memeriksa untuk melihat apakah harus melaksanakan,
sebagai lawan loop sementara, yang akan memeriksa kondisi
dan kemudian jalankan tubuh.
Jadi dalam satu lingkaran do-while apa yang kita mungkin lakukan adalah meminta pengguna untuk integer,
dan kemudian memeriksa apakah itu sah atau tidak.
Jika itu tidak valid, maka kita akan ulangi proses meminta user
untuk memberikan bilangan bulat lain, dan kemudian hanya ketika bahwa bilangan bulat berlaku,
kami akan terus apa pun yang datang sesudahnya.
>> Sekarang Anda akan melihat bahwa deklarasi integer n
sedikit berbeda dengan apa yang kita lakukan sebelumnya pada contoh sebelumnya
dan ini adalah karena ruang lingkup.
Jika kita telah menyatakan bilangan bulat n dalam dari tubuh loop do-while,
maka kita tidak akan dapat mengakses bahwa nilai n luar keriting mereka
kawat gigi menunjukkan tubuh loop.
Tapi kita sebenarnya ingin mengakses nilai n nanti di program kami.
>> OK, jadi sekarang mari kita bicara tentang apa kondisi ini harus.
Kami ingin hanya reprompt yang pengguna selama n tidak valid.
Jadi berpikir untuk diri sendiri apa yang tidak valid nilai integer akan terlihat seperti
dan kemudian membuat Boolean sebuah ekspresi untuk mengungkapkan itu.
>> Kami hampir selesai dengan subtask kami dari mendorong dan memvalidasi input pengguna.
Jadi mari kita membuat ini sedikit Sedikit lebih user friendly
dan memberikan pengguna sedikit bit informasi lebih lanjut
dari apa yang kita mendorong mereka untuk.
Jadi mari kita meminta pengguna, per spec, dengan menit tali.
Jadi menggunakan pernyataan printf Anda, membuat Pastikan bahwa Anda cocok dengan ini persis.
>> Baiklah.
Jadi sekarang kita memiliki pengguna yang valid input, bilangan bulat positif
nilai berapa menit mereka menghabiskan di kamar mandi.
Jadi apa yang berikutnya adalah menghitung setara dengan jumlah botol.
Apa yang akan kita lakukan di sini mungkin sangat jelas bagi Anda pada awalnya,
dan itu OK.
Apa yang ingin kita lakukan adalah kita ingin mulai berlatih
ide mendeteksi pola dan mengembangkan formula untuk masalah tersebut.
>> Jadi kami diberitahu per spec yang satu menit di kamar mandi
adalah setara dengan sekitar 12 botol air.
Jadi dua menit akan setara dengan 24,
dan lima menit akan setara dengan 60.
Jadi jika Anda berpikir Anda punya itu, maka mari kita
lihat apakah Anda dapat datang dengan pola atau rumus
mengungkapkan jika kita telah mengatakan, n menit, berapa banyak botol air
akan yang dinyatakan dalam hal n?
>> Sekali lagi, meskipun ini mungkin sederhana pada awalnya,
nanti pada saat kita sampai masalah yang lebih rumit
kita akan ingin masuk ke praktek mengidentifikasi
pola dan mengembangkan formula untuk mencari hal-hal ini.
>> Dalam c Anda memiliki akses ke operasi aritmatika standar,
Selain itu, pengurangan, perkalian, dan pembagian.
Jadi saya akan meninggalkannya untuk Anda sekarang untuk mencari tahu
bagaimana mengekspresikan jumlah setara dengan botol
bahwa pengguna dikonsumsi selama mandi mereka.
>> Baiklah, kita hampir selesai.
Kami telah diminta pengguna untuk masukan mereka, kami telah memastikan bahwa itu masukan yang valid,
dan kemudian kita sudah tahu bagaimana untuk menghitung setara
jumlah botol yang mereka konsumsi.
Jadi hal terakhir yang harus dilakukan adalah keluaran setara dengan jumlah botol
dan mudah-mudahan mendorong mereka untuk menghemat air.
>> Keluaran nilai akan menjadi pernyataan printf.
Jika saya ingin memberitahu Anda bahwa saya memiliki tiga hewan peliharaan, misalnya,
Saya mungkin menggunakan pernyataan printf yang terlihat seperti ini.
Saya memiliki tiga hewan peliharaan, dan baru line untuk format yang bagus.
>> Sekarang kita tidak ingin hanya hal kode keras.
Mengatakan jumlah saya hewan peliharaan berubah dari waktu ke waktu.
Lalu aku akan memanfaatkan placeholder dalam pernyataan printf saya.
Jadi di sini nomor saya adalah bilangan bulat.
Jadi saya akan membuat placeholder untuk integer menggunakan% i.
Aku akan menulis string, dan kemudian setelah string
Saya menulis koma dan kemudian variabel yang ingin saya cetak.
Jadi nilai yang akan dicetak sebagai pengganti yang placeholder,% i.
>> Anda dapat menggunakan placeholder, sebagai baik, untuk mengapung dengan% f.
Anda juga dapat memiliki beberapa placeholder dalam sebuah string.
Misalnya, jika saya memiliki beberapa nomor anjing dan beberapa jumlah kucing,
Saya menempatkan dua penampung di sini dan kemudian saya dua variabel dalam rangka masing.
>> Jadi sekarang kita tahu cara mencetak nilai-nilai yang disimpan dalam variabel,
hal terakhir untuk lakukan adalah untuk memastikan kami bahwa
mencetak nilai dalam format yang tepat ditunjukkan dalam spesifikasi.
Dengan itu, kami telah mendorong pengguna dan divalidasi masukan mereka.
Kami telah kemudian dihitung setara jumlah botol air
bahwa mereka mengkonsumsi selama mandi mereka, dan kami telah dikeluarkan bahwa nilai kepada mereka.
Dan, kami telah menyelesaikan air.
>> Nama saya adalah [? Zamila,?] dan ini CS50.