>> LUCAS FREITAS: OK, saya kira sekarang kita hidup.
Selamat Datang CS50 Supersection.
Kita Kurang Nyaman.
Nama saya Lucas Freitas.
Aku salah satu CS50 Kepala TF.
Ini adalah Lauren.
>> LAUREN Carvalho: Hi, aku Lauren.
Saya juga Kepala TF untuk CS50.
>> LUCAS FREITAS: Hari ini kita hanya akan untuk memberikan gambaran tentang apa yang Anda
Orang-orang telah belajar dalam satu minggu, mudah-mudahan untuk memberikan orang-orang baik yang
akal untuk apa yang harus Anda ketahui untuk menetapkan satu masalah.
>> Hanya beberapa pengumuman.
Pertama-tama, jam kantor.
Jam kerja yang terjadi dari hari Senin Kamis di rumah-rumah yang berbeda dalam
Annenberg setiap hari.
Mereka sumber daya yang sangat baik untuk Anda orang untuk datang dan mengajukan pertanyaan, dan
berbicara dengan TF, dan bahkan pertukaran ide dengan siswa lain.
Jadi pastikan untuk menggunakan sumber daya yang dalam mendukung Anda.
>> Yang kedua adalah CS50 Appliance.
Untuk terakhir [Tak terdengar]
kalian tidak harus benar-benar memiliki alat.
Anda hanya melakukan semuanya dalam komputer pribadi Anda.
Tapi untuk masalah ini, Anda benar-benar memiliki untuk memiliki mesin virtual, jadi
Pastikan untuk men-download CS50 Peralatan dan mengaturnya.
>> Dan hal ketiga adalah pastikan untuk mulai masalah mengatur secepatnya hanya
karena itu jauh lebih mudah untuk menemukan membantu ketika Anda berada di
awal minggu.
Karena orang-orang cenderung untuk menunggu sampai detik terakhir untuk memulai set masalah,
dan kemudian Anda pergi ke jam kantor, dan ada banyak orang.
Dimana jika Anda pergi pada hari Senin, Anda akan untuk melihat bahwa Anda dapat berbicara dengan TF
cukup banyak untuk sepanjang malam, dan mereka akan lebih dari
senang untuk membantu Anda.
>> LAUREN Carvalho: Bisakah saya berhenti Anda hanya satu detik?
Apakah semua orang bisa men-download the CS50 Appliance?
Apakah orang mencoba?
>> LUCAS FREITAS: Untuk men-download, dengan cara, Anda bisa mendapatkan petunjuk di
cs50.net/appliance.
>> LAUREN Carvalho: Benar.
Dan itu tidak mengambil sedikit waktu untuk kami sys admin untuk mendapatkan lisensi
kunci, jadi mendaftar untuk percobaan gratis pertama.
Dengan cara itu Anda akan memiliki selama 30 hari, dan kemudian menunggu untuk kunci lisensi Anda
yang harus memberikan kepada Anda selama satu tahun.
>> LUCAS FREITAS: Pertama-tama, mari kita bicara sedikit
tentang CS50 Appliance.
The CS50 Appliance sebenarnya virtual mesin yang Anda akan
berjalan di komputer Anda sendiri yang pada dasarnya menjalankan komputer lain
dalam komputer Anda sendiri.
Yang cukup keren.
Dan sebenarnya itu digunakan di mana-mana.
Orang-orang yang ke tech akan tahu bahwa ini digunakan sepanjang waktu.
Anda?
Dapat memiliki beberapa komputer dalam satu perangkat.
>> Mari kita benar-benar kita lihat di Appliance itu.
Ketika Anda pergi ke Appliance setelah mendaftar, Anda akan harus
menempatkan nama Anda dan masuk ke Harvard sehingga kita bisa mendapatkan semua terdaftar.
Anda akan melihat pada dasarnya hanya wallpaper, dan kemudian Rumah dan Sampah,
dan kemudian ini ikon kecil.
Ini tiga ikon sebenarnya yang paling hal penting yang dapat Anda miliki dalam
Peralatan Anda.
>> Yang pertama adalah gedit, yang merupakan teks Editor, seperti Notepad atau seperti
setiap jenis editor teks.
Ini hanya sesuatu yang kita gunakan untuk menulis kode dan kemudian melakukan hal-hal dengan itu.
>> Hal kedua yang kita miliki di sini adalah Chrome.
Jadi jika Anda perlu untuk menggunakan internet di Appliance, itu
apa yang dapat Anda gunakan.
>> Dan hal ketiga adalah terminal, yang sebenarnya sangat manis.
Orang-orang biasanya jenis takut terminal karena ini sangat
aplikasi kuno di mana Anda hanya pada dasarnya mengetik segala sesuatu dengan
keyboard Anda.
Tidak ada banyak interaksi dengan mouse Anda.
Tapi sebenarnya terminal melakukan hal-hal yang sangat baik.
>> Pertama-tama, mari kita pergi melalui beberapa perintah yang Anda
dapat digunakan dalam terminal.
>> LAUREN Carvalho: Dan merasa bebas untuk menghentikan kami jika Anda memiliki pertanyaan.
>> LUCAS FREITAS: Ya.
Jadi perintah pertama yang kita miliki untuk terminal ls.
ls pada dasarnya berarti daftar semuanya, semua file dan semua direktur,
bahwa saya memiliki di tempat itu saya di.
Jadi jika saya melakukan ls di sini, aku akan melihat bahwa saya memiliki beberapa direktori.
Saya memiliki desktop, download, log, dan vhosts.
Mereka adalah warna biru karena mereka semua direktori.
>> Kemudian Anda memiliki beberapa file lainnya.
Anda punya seperti Halo dan hello.c, yang hanya file, dan mereka berada di
warna yang berbeda.
Jadi ini adalah perintah yang sangat penting hanya Anda dapat melihat apa saja file
dan direktori yang Anda miliki di direktori yang
Anda berada di dalam terminal.
Ketika Anda melihat jharvard @ alat dan maka simbol kecil di sana,
tilde, itu hanya berarti bahwa itulah direktori yang Anda berada saat ini.
>> LAUREN Carvalho: Jadi mengetik ls hampir seperti mengklik pada folder
yang tercantum di sana, di dalamnya menunjukkan Anda semua konten yang
dalam folder itu.
>> AUDIENCE: Apakah ada teks setelah hello.c ini?
>> LAUREN Carvalho: Oh, Anda tidak bisa melihat bahwa, karena itu biru.
>> LUCAS FREITAS: Dikatakan log dan vhost.
>> LAUREN Carvalho: Mereka adalah hanya folder lain.
Maafkan aku, itu benar-benar sulit untuk melihat.
Mungkin jika kita mematikan lampu?
Colton, apakah Anda ingin mencoba dan menemukan tombol lampu?
Maaf tentang itu.
Saya tidak berpikir tentang hal itu.
>> LUCAS FREITAS: Tapi itu pada dasarnya -
yeah, jika Anda bisa -
>> LAUREN Carvalho: Zoom di layar Anda.
>> LUCAS FREITAS: Saya tidak memiliki fitur itu.
>> LAUREN Carvalho: [Tak terdengar].
OK.
Nah, ada hanya banyak alami cahaya di ruangan ini juga.
>> LUCAS FREITAS: Mari kita berasumsi bahwa ada dua direktori lain di sana.
>> LAUREN Carvalho: Hanya beruang dengan kami.
Ini adalah satu-satunya bagian yang Anda akan akan melihat terminal.
>> LUCAS FREITAS: Perintah berikutnya adalah pada dasarnya mungkin Anda ingin mengatur
file Anda -
misalnya, semua file C Anda dalam satu direktori-tetapi Anda tidak memiliki
direktori C hanya untuk file belum.
Anda pada dasarnya dapat membuat direktori menggunakan terminal juga, yang
hal yang sama seperti mengklik kanan dan mengatakan New Folder.
Perintah ini membuat direktori, yang adalah mkdir, jadi pada dasarnya "membuat" dan
"Direktori."
>> Dan kemudian Anda dapat menempatkan nama direktori.
Mari kita mengatakan bahwa saya ingin dipanggil, Saya tidak tahu, katakanlah pset1 Melakukan
ini, saya baru saja membuat sebuah direktori.
Mari kita periksa bahwa itu ada.
Jadi jika saya lakukan ls, sekarang saya melihat log, dan maka pset1, dan kemudian vhosts.
Jadi saya memiliki direktori baru di sana.
>> Dan kemudian setelah Anda memiliki direktori baru, mungkin Anda ingin untuk menavigasi
ke dalamnya, sehingga perintah berikutnya cd ini, yang pada dasarnya hanya berarti pergi ke
direktori tertentu.
Jadi jika saya ingin pergi ke pset1, Saya hanya dapat melakukan cd pset1.
>> LAUREN Carvalho: cd singkatan dari perubahan direktori, [Tak terdengar] mampu
ingat itu.
>> LUCAS FREITAS: Dan sekarang Anda melihat bahwa bukan hanya memiliki jharvard
alat, saya telah jharvard alat, dan kemudian pset1, karena itu menunjukkan
saya di mana saya di komputer ini.
>> Sekarang jika saya ingin kembali ke direktori yang sebelum ini, saya
dapat melakukan cd dot dot, yang hanya berarti pergi ke direktori yang saya sebelumnya,
seperti induk ini direktori, pada dasarnya.
Dan sekarang saya melihat bahwa saya kembali ke jharvard.
>> Hal berikutnya yang bisa saya melakukannya adalah rm, yang menghapus file.
Sebagai contoh, mari kita pertama melakukan ls untuk melihat apa yang saya miliki di sini.
Aku punya halo dan hello.c.
Mari kita mengatakan bahwa saya ingin menghapusnya.
Aku bisa melakukan rm halo.
Ini akan mengatakan "menghapus file biasa halo? "Dan saya berkata" ya. "Dan sekarang jika saya
melakukan ls, saya melihat bahwa itu tidak ada lagi.
>> Jika saya mencoba untuk menggunakan rm untuk direktori, meskipun, itu tidak akan
untuk membiarkan Anda melakukan apa-apa.
Ini akan mengatakan, hei, Anda tidak dapat menghapus direktori.
Jadi kita memiliki ini lain datang disebut rmdir, yang hanya pada dasarnya berarti
menghapus direktori.
Saya bisa, misalnya, menghapus pset1.
Dan jika saya lakukan ls, saya tidak memilikinya lagi.
>> Pertanyaan tentang ini?
Tidak ada?
Ya?
>> AUDIENCE: Apakah penting bahwa Anda meninggalkan spasi setelah - setiap kali Anda
mulai mengetik sesuatu di?
>> LUCAS FREITAS: Ya.
Jika saya melakukan seperti cd dan direktori, Saya harus menempatkan spasi.
Apa ruang yang kau bicarakan?
>> LAUREN CARVALHO: Ruang antara cd dan [Tak terdengar].
>> LUCAS FREITAS: Ya, Anda harus menempatkan ruang karena cd adalah
perintah, dan kemudian string berikutnya yang jenis pada dasarnya adalah direktori.
Jadi itu seperti sebuah argumen.
Ya?
>> AUDIENCE: Bila Anda daftar, semua orang adalah direktori yang berbeda, kan?
>> LUCAS FREITAS: Ya, mereka berada di direktori.
>> AUDIENCE: Apa perbedaan antara direktori?
>> LUCAS FREITAS: Mereka hanya folder yang berbeda.
Direktori adalah folder di komputer Anda.
>> AUDIENCE: Buka folder.
>> LUCAS FREITAS: Ya, itu hanya sebuah folder yang terbuka.
>> LAUREN Carvalho: Di sini, orang-orang yang warna biru yang sebenarnya
direktori yang dapat Anda masuk ke dan kemudian melihat sekelompok hal-hal yang
dalam itu, yang sangat disayangkan karena Anda tidak bisa benar-benar membaca
yang warna biru.
Dan yang putih hanya file yang berada di dalam direktori saat ini.
>> LUCAS FREITAS: Jadi direktori adalah folder.
Yang lainnya adalah file.
>> AUDIENCE: Apa perintah untuk me-reset atau untuk menghapus itu?
LUCAS FREITAS: Untuk menghapus?
LAUREN Carvalho: Untuk menghapus?
LUCAS FREITAS: Saya pikir itu "jelas." Ya.
Jadi Anda hanya mengetik jelas apakah layar Anda terlalu berantakan.
Ada pertanyaan lain?
Dan Anda akan belajar banyak lainnya perintah hanya alami selama
semester karena mereka sangat berguna.
>> Jadi sekarang mari kita bicara tentang kompilasi.
Kami berbicara tentang pseudocode dan kode sumber dan kode objek.
Dan ada banyak kode, dan mungkin kalian bingung tentang hal itu.
Mari kita bicara sedikit tentang apa terjadi ketika Anda sedang menulis sebuah program,
dan Anda kompilasi, dan itu menjadi file eksekusi.
Mereka adalah semua kata yang kalian mungkin mendengar, dan mungkin Anda tidak
benar-benar yakin apa yang sedang terjadi.
>> Katakanlah, misalnya, bahwa saya ingin menulis sebuah program yang mengatakan "Halo." Itu
hal pertama yang muncul dalam pikiran Anda adalah Anda jenis mencoba untuk memikirkan bagaimana Anda
akan melakukan itu dalam pikiran Anda, dan Anda mungkin berpikir dalam bahasa Inggris atau
beberapa bahasa lain, seperti alam bahasa, mungkin.
Dan kemudian Anda berpikir, baik, jika saya ingin, misalnya, menulis sebuah program yang
mengatakan "halo," Aku akan memulai sebuah program, Saya akan mencetak halo, dan kemudian saya akan
keluar dari program.
Ini adalah pseudocode.
Ini hanya pada dasarnya Anda mencoba untuk datang dengan urutan kejadian
bahwa Anda akan lakukan untuk menjadi mampu menulis sebuah program.
>> Kemudian Anda memiliki kode sumber, dan kode sumber tidak harus
secara khusus berada di C. Kita bicara tentang kode sumber dalam C karena itulah
bahasa yang kita pelajari, tapi tentu saja kode dapat hampir semua
bahasa pemrograman yang Anda miliki.
Kemudian dalam semester, Anda akan untuk belajar bahasa lain.
Itu juga kode sumber.
>> Sebagai contoh, di sini, ini adalah sumber saya kode, dan kemudian aku termasuk
perpustakaan, dan kemudian saya mulai utama, dan kemudian saya mencetak.
Dan Laura akan berbicara sedikit sedikit tentang semua ini.
Jadi ini adalah kode sumber.
>> Dan apakah kode objek?
Tujuannya adalah sekelompok nol dan orang-orang, pada dasarnya.
Apa yang terjadi adalah Anda awalnya memiliki pseudocode, yang semua dalam bahasa Inggris.
Dan Maksudku, kau memahaminya.
Mungkin teman Anda memahami itu, dan kebanyakan orang akan
memahami ide.
Tapi komputer benar-benar bodoh, dan mereka tidak mengerti bahasa Inggris, sehingga Anda
telah menerjemahkannya ke sesuatu, biasanya diterjemahkan ke dalam beberapa
bahasa pemrograman.
>> Dan Anda bisa memikirkan pemrograman yang bahasa sebagai jenis seperti bahasa
bahwa Anda memberitahu bagaimana komputer Anda untuk berbicara dan memahami.
Anda pada dasarnya menulis sesuatu di bahasa yang Anda berdua dan Anda
komputer mengerti.
Itulah kode sumber.
Jadi akan bentuk pseudocode ke sumber kode, itu terserah Anda.
Ini pada dasarnya Anda melakukan program anda.
>> Tapi masalahnya adalah bahwa komputer bahkan tidak
memahami bahasa pemrograman.
Ia tidak memahami source code sama sekali.
Ini sebenarnya hanya memahami nol dan satu.
Jadi kita memiliki hal ini sangat ajaib yang disebut compiler, yang pada dasarnya adalah
akan mendapatkan sumber yang disebut bahwa Anda menulis dalam bahasa kedua Anda
dan komputer Anda berbicara, dan sekarang kau akan mengubah bahwa dalam
nol dan satu.
Jadi pada dasarnya apa yang dilakukan adalah compiler mendapat kode sumber, dalam hal ini C,
itu akan mengubahnya menjadi nol dan orang-orang yang komputer
memahami dan dapat membuat file executable dari itu.
>> Apakah itu masuk akal?
Anda hanya bisa memikirkan compiler sebagai semacam penerjemah yang
membantu Anda menjelaskan kepada komputer persis apa yang seharusnya dilakukan.
>> Tapi bagaimana saya mengkompilasi.
Mari kita kembali ke Appliance, dan mari kita mengatakan bahwa saya melakukan program itu.
Pertama saya akan membuat direktori di sini, dan aku akan menyebutnya
"Praktek." Sekarang aku akan menavigasi ke direktori, sehingga praktek cd.
Sekarang aku dalam praktek.
>> Sekarang saya ingin memulai gedit, jadi bagaimana saya melakukannya?
Saya juga bisa klik di sini, atau aku hanya bisa harfiah ketik "gedit," dan itu akan
untuk membuka bagi saya.
>> Sekarang aku akan mengetik program saya, jadi persis apa yang saya tulis dalam slide.
Saya menyatakan perpustakaan.
Aku melakukan int main, batal.
Dan sekarang aku melakukan printf, halo.
Sekarang aku akan menyimpan ini.
Mari saya mempraktikkannya, dan Aku akan memanggil hello.c ini.
Jadi sekarang itu disimpan.
>> Jika saya ingin melakukan kompilasi, saya benar-benar dapat melakukannya di dua tempat yang berbeda.
Aku juga bisa melakukannya di jendela terminal, jadi yang besar ini, atau Anda dapat
menggunakan gedit yang benar-benar memiliki jendela terminal di sini.
Jadi Anda bisa sangat nyaman hanya melakukan kode Anda, dan kemudian Anda dapat cukup ketik
apa pun di sini, dan mencoba untuk compile.
>> Jadi bagaimana cara mengkompilasi kode?
Cara termudah yang kita miliki adalah dengan menggunakan membuat, yang merupakan fungsi yang
pada dasarnya akan mengkompilasi kode Anda.
Anda hanya harus mengatakan membuat halo, sehingga "Membuat" dan nama program.
>> Oops.
Ini adalah aneh.
>> LAUREN Carvalho: Dapatkah Anda [Tak terdengar]?
>> LUCAS FREITAS: Maaf.
Aku tidak menyimpannya dalam direktori yang benar.
Datang untuk berlatih, dan sekarang simpan sebagai hello.c.
Maafkan aku.
Sekarang itu disimpan.
>> Mari saya hanya melakukan ls dan menjadi yakin bahwa itu di sini.
OK, sekarang ada di sini.
Jadi sekarang jika saya membuat halo, meludah a banyak hal, tetapi kemudian hanya memberi
saya baris lain untuk terminal, yang berarti bahwa itu berhasil.
Jadi sekarang jika saya melakukan ls lagi, aku benar-benar melihat file ini di hijau, yang merupakan
file executable.
>> Dan kemudian jika saya ingin menjalankannya, semua yang Saya harus lakukan adalah dot slash halo.
Ini akan menyapa di sini, jadi itu persis apa yang saya minta itu.
>> Ada satu lagi cara kompilasi, yang menggunakan dentang.
Dentang hanya compiler yang kita miliki, dan itu sedikit lebih verbose untuk
kompilasi.
Tapi itu bekerja sama dengan baik.
Jadi jika saya melakukan dentang, dan kemudian-o, dan kemudian nama yang ingin saya berikan kepada
file executable, jadi mari kita katakan "Halo." Dan kemudian file yang saya inginkan
untuk mengkompilasi, hello.c.
Ini juga akan mengkompilasi.
Dan Anda memiliki file di sini, dan Aku hanya bisa jalankan juga.
Jadi keduanya bekerja.
>> Apakah itu masuk akal?
Ada pertanyaan?
>> AUDIENCE: Dapatkah Anda zoom dalam sedikit?
>> LUCAS FREITAS: Maaf?
>> AUDIENCE: Zoom in?
>> LAUREN Carvalho: Saya pikir Anda hanya dapat perintah plus.
>> LUCAS FREITAS: Command apa?
>> LAUREN Carvalho: Command plus.
>> LUCAS FREITAS: No
>> LAUREN Carvalho: Oh, itu bukan akan bekerja karena -
itu karena kita mengatur resolusi untuk hal ini.
>> LUCAS FREITAS: Saya tidak pikir kita bisa zoom in
Ya, kita tidak bisa tampilannya.
Apakah Anda memiliki pertanyaan lain?
Maaf.
>> AUDIENCE: Bisakah Anda mengulangi dentang?
>> LUCAS FREITAS: dentang The?
Dentang adalah hal yang sama seperti make, tapi perbedaan adalah yang pertama kali aku akan
untuk menulis dentang, yang merupakan perintah, maka aku akan melakukan -0, semua, yang
hanya apa yang kita akan pelajari nanti sebagai bendera.
Jadi hanya berpikir bahwa Anda selalu harus meletakkan-o.
>> Dan maka pertama, Anda akan menempatkan nama file executable,
pada dasarnya file yang Anda akan menciptakan.
Jadi saya bisa mengatakan, misalnya, hello2 dan maka file yang saya ingin mengkompilasi,
yang merupakan file c..
Jadi itulah hello.c.
Apakah itu masuk akal?
>> AUDIENCE: Hello apa?
Apa itu?
>> LUCAS FREITAS: hello.c.
Dan jika saya compile, dan jika Saya ls, saya juga memiliki
hello2 bahwa saya baru saja anda kompilasi.
Dan jika saya mencoba untuk menjalankannya, itu akan melakukan hal yang sama seperti halo,
hanya mencetak halo.
>> AUDIENCE: Kenapa untuk make Anda dapat menempatkan hello.c setelah?
>> LUCAS FREITAS: Pada make, Anda tidak harus meletakkan. c.
Dalam make, Anda hanya mengatakan nama program.
Anda tidak harus mengatakan. C.
Tapi untuk dentang, Anda harus.
>> AUDIENCE: Dengan dentang apakah Anda juga harus menambahkan [Tak terdengar]
>> LAUREN Carvalho: Ya.
Jadi Anda juga harus ke perpustakaan.
>> LUCAS FREITAS: Ya, itu sesuatu kita akan menggunakan nanti.
Itulah yang disebut menghubungkan, dan saya pikir kita akan membicarakannya nanti.
Pertanyaan lain?
>> AUDIENCE: Apakah Anda menempatkan dentang dot slash?
>> LUCAS FREITAS: No
Dot slash hanya untuk membuka file executable.
Jadi dentang, Anda hanya menulis "dentang," dan maka jika Anda ingin membuka
file executable yang baru saja Anda dikompilasi, maka Anda dot
tebang dan nama.
Apakah itu masuk akal?
>> AUDIENCE: Jika Anda hanya perubahan [Tak terdengar] untuk hello world, apakah Anda
harus mengkompilasi ulang itu?
>> LUCAS FREITAS: Ya.
jika saya ingin mengatakan, misalnya, "halo ada, "Aku hanya bisa menyimpannya sekarang, dan saya
hanya compile lagi.
Jadi biarkan aku melakukan make halo.
Dan jika saya melakukan halo, itu akan mengatakan "halo ada." Masuk akal?
Ada pertanyaan lain?
>> AUDIENCE: Apakah Anda harus menyertakan standar I / O untuk mengkoordinasikan pekerjaan?
>> LUCAS FREITAS: Ya.
Standar I / O pada dasarnya adalah perpustakaan yang memiliki
implementasi untuk printf.
Sehingga hal yang benar pada atas termasuk stdio.
Itu termasuk perpustakaan yang pada dasarnya memiliki banyak berbeda
alat yang dapat Anda gunakan.
satu?
Satunya adalah printf yaitu fungsi yang pada dasarnya cetakan
pesan ke layar.
>> Ada pertanyaan lain?
Tidak ada?
OK.
Jadi sekarang mari kita bicara tentang -
>> LAUREN Carvalho: Mari kita pergi ke panduan gaya.
Apakah Anda ingin hanya menemukannya di sini?
>> LUCAS FREITAS: Jadi kita akan untuk berbicara tentang gaya.
>> LAUREN Carvalho: Oh, David tidak selesai.
OK.
Mengapa kita tidak kembali ke gaya di akhir?
Ini benar-benar telah diperbarui saat kita bicara.
>> LUCAS FREITAS: Ya.
Mari cara untuk David untuk menyelesaikan itu.
>> LAUREN Carvalho: Can kita beralih sebenarnya?
>> Jadi saya harap semua orang sudah menikmati Scratch.
Sayangnya, saatnya untuk menjauh dari ini -
sayangnya saatnya untuk pindah dari blok-blok pemrograman cantik
ke C. Tapi untungnya, semua pemrograman konstruksi bahwa Anda telah
telah bekerja dengan di Scratch adalah langsung diterjemahkan ke C, dan kami
akan mulai belajar tentang beberapa dari mereka sekarang.
Mari kita pertama berbicara tentang kondisi dalam ekspresi Boolean.
>> Hal ini berjalan pada cadangan daya baterai.
>> LUCAS FREITAS: Bagaimana yang tidak bekerja?
OK.
Anda pergi ke sana, aku akan mendapatkan -
>> LAUREN Carvalho: Jadi kondisi penting karena mereka memungkinkan kita untuk
memperkenalkan logika ke dalam program kami.
Berikut ini adalah contoh dari kondisi dalam program C.
Mari kita perhatikan bagaimana ini -
Jadi blok kondisi ini di sini, ini Pernyataan printf tidak akan mengeksekusi
kecuali kondisi dalam kurung, n lebih besar dari 0,
bernilai true.
>> Sekarang, semua kondisi dalam f Pernyataan adalah ekspresi Boolean,
yang berarti bahwa ada hanya dua pilihan.
Mereka juga bisa mengevaluasi dengan benar, atau mereka dapat mengevaluasi ke false.
Jadi di sini, jadi ini masuk akal, kan? n lebih besar dari 0, berarti itu adalah positif
nomor, yang berarti bahwa itu akan mencetak out "Anda memilih angka positif."
>> Ada banyak ekspresi Boolean yang dapat membentuk kondisi dengan
Pernyataan init.
Kami memiliki kurang dari.
Ini adalah kurang dari atau sama dengan.
Ini hanya lucu [Tak terdengar].
Jika Anda ingin printf terjadi jika lebih besar dari atau sama dengan 0, maka
Anda akan memilih ini.
Jadi sama saja menambahkan tepat setelah lebih besar dari tanda.
>> Sama sama, yang berbeda dari hanya satu tanda sama, sama sama
sebenarnya berarti bahwa apa pun yang pada sisi kiri ini adalah sama dengan
apa yang ada di sisi kanan ini di mana satu tanda sama adalah apa?
Apa hanya satu tanda sama?
Penugasan.
>> LUCAS FREITAS: Siapa yang bilang?
Apakah itu permen?
Oh, tidak.
Maaf.
Anda berdua mendapatkan permen.
Oh, OK!
Tiga orang mendapatkan permen!
>> LAUREN Carvalho: Jadi yang satu ini di sini adalah operator ledakan sebelumnya
tanda sama, jadi itu tidak sama dengan.
Jadi jika ini berada dalam kondisi saya, tubuh kondisi akan
mengeksekusi hanya jika apa pun di sebelah kiri adalah tidak sama dengan
apa yang ada di sebelah kanan.
>> Saya juga dapat memiliki hanya tanda seru.
Sebenarnya kita akan melihat di fitur geser bagaimana hal ini akan digunakan.
>> LUCAS FREITAS: Ada pertanyaan?
Tidak ada?
>> LAUREN Carvalho: Kita dapat menggabungkan Ekspresi Boolean untuk membangun lebih
pernyataan bersyarat rumit.
Jadi di sini, jika apa pun di sebelah kiri sisi ganda bar atau
apa yang ada pada sisi kanan ganda bar mengevaluasi untuk benar,
maka kita akan mencetak valid.
Dan kemudian turun di sini, jika apa pun yang di sisi kiri dari dua
ampersands dan apa pun di sebelah kanan sisi dari dua ampersands
mengevaluasi ke benar, maka kami akan mencetak valid.
Ganda bar yang disebut logis OR operator ampersands ganda
disebut operator logika AND.
Ya?
>> AUDIENCE: Apakah itu hanya huruf kecil l's?
>> LAUREN Carvalho: No
Mereka sebenarnya -
Anda tahu backlash, seperti di atas tombol Kembali Anda?
Apakah Anda melihat itu?
>> LUCAS FREITAS: Ini sebenarnya sebuah bar.
>> LAUREN Carvalho: Ini sebenarnya hanya dua bar.
>> AUDIENCE: Dapatkah Anda menggunakan sama sama untuk string?
>> LUCAS FREITAS: No
Kita akan pelajari nanti sesuatu tentang itu.
>> LAUREN Carvalho: Ada fungsi yang dapat Anda gunakan.
Tapi Anda tidak perlu khawatir bahwa dulu.
>> Bagaimana jika saya memberikan program ini nomor 5?
Apa yang akan mencetak?
>> AUDIENCE: [Tak terdengar]
valid.
>> LAUREN Carvalho: Valid?
Ya.
Saya tidak tahu siapa yang punya itu.
>> [Tertawa]
>> LAUREN Carvalho: Itu semacam menakutkan [Tak terdengar].
>> AUDIENCE: Jadi ganda dan, itu hanya berarti dan?
>> LAUREN Carvalho: Ya.
Jadi nomor 5 adalah baik lebih besar dari 0 dan kurang dari 100.
>> AUDIENCE: Mengapa itu akan menjadi satu?
>> LAUREN Carvalho: Satu ampersand adalah sebenarnya sesuatu yang berbeda, dan itu
operator bitwise, yang Anda akan belajar tentang nanti.
Tapi itu adalah sesuatu yang benar-benar bekerja dengan bit angka yang diberikan.
>> LUCAS FREITAS: Hanya berpikir mereka tidak perlu khawatir tentang hal itu untuk saat ini.
>> LAUREN Carvalho: Saya pikir itu mungkin datang minggu depan.
>> LUCAS FREITAS: Ada pertanyaan lain?
Tidak ada?
>> LAUREN Carvalho: Jadi kita telah melihat bahwa itu blok dapat berdiri sendiri, tetapi bisa
juga dipasangkan dengan dan lain blok.
Jadi dalam hal ini, jika n lebih besar dari 0, kita akan mencetak "Kau
mengambil angka positif. "yang lain, yang berarti jika 0 atau jika itu kurang
dari 0, kita akan mencetak, "Kau memilih angka negatif."
>> Yang menarik di sini adalah bahwa ini eksklusif satu sama lain.
Ada pernah akan menjadi kasus di mana ini dan ini
berdua bisa mencetak.
>> Saya yakin Anda bekerja dengan jika / lain kotak di Scratch, jadi ini harus
cukup akrab.
Ya?
>> AUDIENCE: Apakah kita perlu ruang antara int n sama getInt maka ruang di
jika pernyataan?
Seperti kita menggunakan garis [Tak terdengar]
>> LAUREN Carvalho: Oh, ruang di sini?
>> AUDIENCE: Seperti itu, tapi Anda dua spasi.
Tidak, naik.
Naik.
>> LUCAS FREITAS: Hanya garis?
>> AUDIENCE: Ya.
>> LUCAS FREITAS: Hanya baris kosong?
>> AUDIENCE: Ya.
>> LAUREN Carvalho: baris kosong?
Tidak.
Itu hanya hal gaya.
>> LUCAS FREITAS: Ini seperti kadang-kadang Anda hanya melewatkan beberapa baris jadi
bahwa kode tidak terlihat seperti blok besar teks.
>> LAUREN Carvalho: Saya pikir apa yang terjadi adalah bahwa kita memiliki komentar di sini, tapi saya
membawanya keluar sehingga kalian akan memiliki untuk berpikir tentang kode agak
dari sekedar membaca komentar saya.
Secara umum, jarak tidak akan benar-benar mempengaruhi cara program Anda berjalan.
Ini lebih dari hal gaya.
Dan ketika kita memiliki panduan gaya diperbarui dan siap untuk pergi pada akhir
supersection, kita akan bicara tentang itu lagi.
>> Ada sesuatu yang salah dengan program ini, kan?
Karena 0 adalah tidak benar-benar angka negatif.
Jadi mari kita lihat apakah kita bisa memperbaikinya.
>> Anda mungkin bisa membayangkan dengan ini mengatakan, kan?
Jika n lebih besar dari 0, kita cetak, "Kamu mengambil angka positif. "Kemudian lain
jika n kurang dari 0, "Kau memilih angka negatif. "yang lain," Kau memilih
0. "
>> Sekarang hal yang menarik adalah bahwa ini bisa berlangsung selamanya.
Anda dapat memiliki blok if, seorang lain jika blok, lain lain jika blok, lain jika,
else if, else if, else, pada dasarnya selama Anda inginkan.
Dan ketika dibangun seperti ini, ini semua akan menjadi
terpisah satu sama lain.
Ya?
>> AUDIENCE: Jadi kenapa tidak Anda hanya menggunakan lain jika bukan [Tak terdengar]?
>> LAUREN Carvalho: Dalam kasus ini, ya saya bisa menggunakan lain jika, dan itu akan
baik-baik saja karena kondisi sendiri
terpisah satu sama lain.
Namun jika kondisi tidak eksklusif satu sama lain, hal ini akan
memaksa mereka untuk tidak pernah keduanya mengevaluasi, jika itu masuk akal.
>> AUDIENCE: Dalam hal ini, bisa kita sarang kedua jika di pertama jika?
>> LAUREN Carvalho: Jika - apa maksudmu?
>> AUDIENCE: Jika dua kondisi tidak saling eksklusif?
>> LAUREN Carvalho: Jika kondisi tidak saling eksklusif?
Tapi Anda ingin hanya salah satu dari mereka untuk menjalankan?
>> AUDIENCE: Anda ingin hanya jika bukan yang lain.
>> LAUREN Carvalho: Ya.
Selalu ada akan menjadi banyak cara yang dapat Anda lakukan ini.
Anda pasti dapat sarang mereka.
Dan Anda akan melihat dalam slide masa depan yang Anda dapat memiliki beberapa ifs, hanya satu
demi satu.
Tapi ini adalah cara logis mengatur aliran program anda.
>> LUCAS FREITAS: Dan ada satu lagi hal, adalah bahwa Anda bertanya tentang menempatkan
jika dan kemudian lain jika.
Itu akan bekerja dengan sempurna, tapi itu buruk desain karena pada dasarnya jika Anda
periksa pertama jika, dan Anda melihat bahwa jumlahnya lebih besar dari 0, Anda
hanya dapat menyelesaikan program ini.
Anda tidak harus memeriksa apakah itu kurang dari 0, kan?
>> Tapi jika Anda jika jika, itu akan memeriksa baik, sedangkan jika saya lakukan jika lain adalah,
itu akan memeriksa apakah itu lebih besar dari 0.
Jika ya, itu tidak akan bahkan terlihat di jalur lain kode.
Jadi pada dasarnya Anda memeriksa seperti dua kali tidak perlu, jadi itu sebabnya kami
lakukan jika lain jika.
Ada pertanyaan lain?
>> AUDIENCE: Jadi fungsi tersebut dari yang lain jika sama dengan
apakah itu hanya jika?
>> LAUREN Carvalho: No
Anda benar-benar akan melihat dalam berikutnya geser contoh di mana ia dapat
berbeda.
Dalam hal ini, itu hampir sama.
>> Jadi di sini, kami memiliki contoh beberapa jika laporan, dan
fungsi tidak sama seolah-olah aku baru saja mengatakan jika
lain, jika lain, jika lain.
Mari kita berpikir tentang apa yang akan mencetak jika saya masukkan nomor 95
ke dalam program ini.
>> AUDIENCE: [Tak terdengar]
>> LAUREN Carvalho: Lalu?
>> AUDIENCE: [Tak terdengar]
>> LAUREN Carvalho: Ya.
Jadi dalam hal ini, kondisi ini tidak saling eksklusif satu sama lain.
Dan karena tidak ada yang menghentikan kondisi ini dari mengevaluasi apakah ini
satu sudah memiliki, mereka hanya semua akan mencetak.
Jadi bagaimana saya bisa memperbaiki ini?
>> AUDIENCE: lain seandainya?
>> LAUREN Carvalho: Anda dapat menggunakan lain ifs.
Aku bisa mengubah urutan ini, kan?
Jika saya melakukan ini pertama?
Well, sebenarnya, tidak ada.
Itu tidak akan bekerja untuk 95.
>> LUCAS FREITAS: Tidak, hanya yang lain seandainya.
>> LAUREN Carvalho: lain The ifs akan tetap ini.
Apakah itu menjernihkan kebingungan antara ifs dan lain seandainya?
>> AUDIENCE: Saya hanya ingin bertanya, jika Anda tidak menggunakan else if, itu akan berhenti?
>> LAUREN Carvalho: Benar.
Jadi hanya satu pertama ini.
Jika saya memasukkan nomor 95, hanya ini akan dicetak, dan itu tidak pernah
akan berkembang ke yang lain tersebut.
>> LUCAS FREITAS: Hanya jenis pikirkan sebagai jika hal ini terjadi, lakukan ini.
Yang lain adalah seperti jika tidak, cek untuk ini, dan kemudian melakukannya.
Jadi seperti mereka semua saling eksklusif.
Anda tidak bisa masuk ke dua atas mereka.
>> AUDIENCE: Dapatkah Anda menggunakan logis DAN untuk situasi itu?
>> LAUREN Carvalho: Ya.
Itulah cara lain bahwa kita bisa telah tetap masalah ini.
Kita bisa didefinisikan berkisar, kan?
Jadi saya bisa mengatakan jika n lebih besar dari 90 dan kurang dari -
baik, saya kira ini tidak benar-benar masalah, tapi di sini aku bisa mengatakan jika
n lebih besar dari 80 dan kurang dari 90.
Lebih besar dari 70, kurang dari 80.
Itu akan juga bekerja.
>> [Tertawa]
>> LUCAS FREITAS: Dia takut.
>> LAUREN Carvalho: Jangan takut.
>> LUCAS FREITAS: Ini bukan bahwa itu akan salah.
Hanya saja itu tidak perlu verbose.
Seperti dalam ilmu komputer, salah satu harus sesederhana mungkin selama
Anda memiliki fungsi tersebut.
Apakah Anda ingin permen?
>> AUDIENCE: Jangan membutuhkannya.
>> LAUREN Carvalho: Kau membuatku takut semua orang, Lucas.
>> LUCAS FREITAS: Maaf.
>> LAUREN Carvalho: David juga menyebutkan ini beralih pernyataan di kelas.
Pada dasarnya apa yang terjadi adalah saklar Pernyataan mengambil variabel.
Dalam hal ini, kami mengambil integer.
>> Jika integer adalah 1, kita akan mencetak, "Kau memilih kecil
nomor. "Jika integer adalah 1," Kau mengambil sejumlah media. "Jika
integer 3, "Kau memilih tinggi nomor. "Dan saya juga punya kasus standar
di sini, tapi itu tidak menunjukkan up, yang terlalu buruk.
>> Pada dasarnya, ini hanya sintaks lain.
Kita bisa menerapkan ini tepat hal yang sama dengan jika dan lain jika
pernyataan.
Tapi ketika ada banyak yang berbeda kondisi dan banyak yang berbeda
variasi pada apa yang ingin Anda lakukan untuk setiap masukan, ini adalah pilihan.
Jadi itu hanya sintaks yang baik untuk tahu.
Ya?
>> AUDIENCE: Mengapa tidak ada backslash n di yang pertama?
>> LAUREN Carvalho: Untuk atas sana?
Tidak ada backslash n di sana karena getInt -
jika Anda mencoba ini, itu akan memberikan prompt ini.
Beri aku integer antara 1 dan 3.
Dan jika saya menempatkan tendangan n, itu akan membawa saya ke baris berikutnya, tapi aku hanya
ingin mereka untuk mengetik integer tepat setelah usus besar.
Anda bisa menempatkan tendangan n.
Ini bukan masalah besar.
Ya?
>> AUDIENCE: Untuk kode ini, apakah ini kasus satu, adalah bahwa karena
itu adalah kasus pertama?
Karena -
>> LAUREN Carvalho: Tidak, tidak, tidak.
Jadi ini memberikan saya integer antara 1 dan 3.
Jika n adalah 1, saya mencetak ini.
Jika saya telah meminta untuk surat, aku bisa memiliki mengatakan memberi saya surat antara A
dan C. Maka ini akan menjadi kasus A.
>> AUDIENCE: [Tak terdengar].
Kasus ini hanya akan [Tak terdengar]
>> LAUREN Carvalho: Ya, benar.
Ya?
>> AUDIENCE: Bagaimana jika Anda ingin memiliki lebih dari sebuah ekspresi relasional?
Jadi, bukannya mengatakan n sama dengan 1, [Tak terdengar]
n lebih besar dari 1 dalam kasus pertama?
>> LAUREN Carvalho: Sebenarnya, jika saya tidak mendefinisikan beberapa kasus, hal ini akan
akan membawa turun.
Jadi sebenarnya, mungkin ini bukan apa yang Anda minta.
>> LUCAS FREITAS: Saya pikir dia menanyakan apakah kasus itu n lebih besar dari 0, kasus
kurang dari 0.
>> LAUREN Carvalho: Mungkin saklar Pernyataan ini tidak benar-benar apa yang Anda inginkan
untuk digunakan dalam kasus itu.
>> LUCAS FREITAS: Pernyataan switch hanya untuk nilai, sehingga Anda pengecekan
nilai seperti ini atau itu.
Jadi Anda tidak bisa benar-benar menempatkan kondisi.
>> AUDIENCE: Bagaimana jika orang tersebut tipe dengan [Tak terdengar]?
>> LAUREN Carvalho: Yang pasti kasus default saya, yang sayangnya
Anda tidak dapat melihat.
>> LUCAS FREITAS: [Tak terdengar] membuat mereka melihat.
>> LAUREN Carvalho: Sebenarnya, Anda tahu apa?
Mari kita pergi untuk belajar 50, dan aku akan hanya memperbesar slide pada studi
50, karena ini hanya mengganggu.
Jadi biarkan aku benar-benar pergi ke kondisi.
Ini hanya akan mengambil sedikit waktu.
>> Baik.
Jadi, aku minta maaf.
Setidaknya sekarang kita akan dapat melihat segala sesuatu tanpa memotong.
Baik.
>> Jadi jika mereka dimasukkan ke dalam 10, kita akan default di sini untuk kasus default saya, dan saya
hanya akan mencetak valid karena saya meminta mereka untuk memasukkan integer
antara 1 dan 3.
Ada pertanyaan lain?
Ya?
>> AUDIENCE: Katakanlah untuk satu kasus, kasus tiga, katakan Anda ingin menjadi semua
hal yang sama, sehingga Anda memilih nomor itu bukan nomor menengah.
Dalam hal ini, apakah itu berlebihan?
Apakah Anda hanya mengubah teks di kedua dari mereka, atau akan ada beberapa
redundansi?
Apakah ada cara untuk menggabungkan [Tak terdengar]?
>> LAUREN Carvalho: Ada cara untuk menggabungkan mereka, tapi saya yakin Anda bisa
hanya menggabungkan yang berdekatan.
Jadi jika saya tidak menentukan apa-apa untuk kasus dua, ini akan
berlaku untuk kedua kasus.
Oh, jika saya tidak memasukkan apa pun untuk kasus satu, ini akan berlaku untuk
kasus satu dan dua.
Jika itu masuk akal.
>> AUDIENCE: Bisakah Anda mengulangi itu?
>> LUCAS FREITAS: OK.
Jika Anda melakukannya pada dasarnya, seperti, Anda memiliki hal yang sama, tetapi Anda tidak menempatkan
apa pun di sini, Anda akan baik untuk kasus satu atau dua kasus, melakukan hal ini.
Benar?
Dan istirahat ini berarti jika Anda mendapatkan dalam kasus ini, hanya meninggalkan.
Jadi itulah yang berarti rem.
Jadi jika saya hanya melakukan ini, Anda melihat, itu kasus satu, dan Anda hanya akan melakukan hal ini.
Jika itu terjadi dua, itu juga akan hanya datang ke sini dan melakukan itu.
>> AUDIENCE: Tapi Anda bisa melakukannya?
Jika ada sesuatu untuk kasus dua [Tak terdengar]
>> LAUREN Carvalho: Saya tidak percaya Anda bisa melakukan itu.
Saya tidak berpikir Anda dapat melewatkan sekitar.
Anda bisa melakukan itu, Rob?
Saya rasa tidak.
>> AUDIENCE: Jadi hanya satu nomor bisa pergi setelah kasus, kan?
Tidak mungkin ada satu kasus, koma, dua?
>> LUCAS FREITAS: Tidak, Anda tidak bisa.
Anda pasti tidak bisa.
>> LAUREN Carvalho: Maksud saya, intinya adalah ini adalah pilihan, dan ini mungkin tidak
sesuai dengan kasus penggunaan Anda, sehingga kemudian Anda akan menggunakan jika kondisi.
>> AUDIENCE: Jadi, mengapa Anda melakukan hal ini?
Saklar?
>> LAUREN Carvalho: Saya akan menggunakan ini jika Anda sangat ditentukan -
sebenarnya, Lucas, yang Anda memblokir.
>> LUCAS FREITAS: Oh, maaf.
>> LAUREN Carvalho: Jika Anda memiliki sangat perilaku didefinisikan yang Anda inginkan untuk
setiap masukan, mungkin ini sedikit lebih ringkas daripada menuliskan
jika pernyataan untuk masing-masing.
>> AUDIENCE: Apakah yang istirahat berarti lagi?
>> LAUREN Carvalho: istirahat berarti berhenti.
Ingat, jika saya tidak memiliki istirahat ini sini, kita akan hanya jatuh ke bawah
ke kasus berikutnya.
>> LUCAS FREITAS: Istirahat berarti untuk mendapatkan keluar dari pernyataan switch.
Karena jika itu 1, saya ingin untuk mencetak ini dan meninggalkan.
Saya tidak ingin memeriksa apa-apa lagi.
>> AUDIENCE: Anda tidak ingin untuk mencetak apa pun.
>> LUCAS FREITAS: Ya.
Karena itu saling eksklusif.
>> AUDIENCE: Dan apakah ini hanya melanjutkan untuk kasus berikutnya jika kasus pertama
tidak benar?
Atau apakah itu menguji semua kasus pada saat yang sama?
>> LUCAS FREITAS: Tidak, cek berurutan.
Secara berurutan, yeah.
Satu pertanyaan lagi, maka kita harus bergerak sehingga kita bisa menutupi semuanya.
Ya?
>> AUDIENCE: Jadi untuk kasus ini, bisa melakukan sesuatu selain hanya satu?
Bisakah Anda memberikan kisaran?
>> LUCAS FREITAS: No
>> LAUREN Carvalho: Saya tidak berpikir Anda dapat memberikan berbagai.
>> LUCAS FREITAS: Anda tidak bisa Anda tidak bisa memberikan kisaran.
>> AUDIENCE: Kasus ini spesifik [Tak terdengar].
>> LUCAS FREITAS: Beralih adalah semacam nilai-nilai.
Anda melakukan hal-hal yang berbeda tergantung pada nilai, nilai tertentu.
Anda tidak dapat melakukan jangkauan, Anda tidak bisa melakukan hal lain.
Ini hanya alat lain untuk melihat.
>> LAUREN Carvalho: Kebanyakan orang tidak menggunakan beralih pernyataan yang sangat banyak dalam CS50,
tapi itu ada.
>> Baik.
Jadi hal berikutnya kita akan berbicara tentang adalah operator ternary.
Ini hanyalah jenis lain bersyarat.
Pada dasarnya apa yang terjadi di sini adalah aku meminta integer, dan jika n
lebih besar dari 100, aku akan mencetak "Tinggi." Jika tidak, aku akan
mencetak "rendah."
>> Jadi apa yang dilakukannya adalah kondisi ini di sini, di kurung, dan Anda
dapat jenis memikirkan pertanyaan karena saya menanyakan apakah
ini benar atau tidak.
Jika itu benar, aku akan melakukan hal ini pertama hal, dan jika itu tidak benar, aku
akan melakukan hal yang kedua ini.
>> Pertanyaan tentang operator ternary?
>> LUCAS FREITAS: Hanya ingin diketahui dari David adalah bahwa setiap kali Anda memiliki
Kondisi -
>> LAUREN Carvalho: Saya kira David menonton via live streaming.
>> LUCAS FREITAS: Dia melakukan kehidupan sungai sekarang.
Jadi, setiap kali Anda memiliki kondisi, Anda seharusnya menempatkan kurung kurawal,
seperti yang kita miliki dalam sebuah saklar Pernyataan sini.
Kami memiliki kurung kurawal di sini.
Untuk kondisi apapun, Anda seharusnya juga menempatkan itu.
>> LAUREN Carvalho: Anda akan melihat ini dalam panduan gaya.
Kami tidak benar-benar memiliki panduan gaya sekarang.
Saya pikir David masih bekerja.
>> LUCAS FREITAS: Dia mengatakan bahwa itu hanya bekerja sekarang.
>> LAUREN Carvalho: Oh, itu bekerja sekarang?
OK.
Jadi rupanya tahun ini dalam gaya membimbing, bahkan jika Anda hanya memiliki satu baris,
Anda harus menempatkan orang kurung kurawal masuk
Anda tidak perlu perlu untuk fungsi program.
Dan mungkin kita harus istirahat setelah kondisi dan langsung
untuk panduan gaya untuk membersihkan beberapa dari hal-hal ini?
>> LUCAS FREITAS: Ya.
Apakah Anda memiliki pertanyaan?
>> AUDIENCE: Tidak, aku hanya akan menunggu sampai panduan gaya.
>> AUDIENCE: Bisakah Anda kembali kepada operator terner?
>> LAUREN Carvalho: Ternary, ya.
>> LUCAS FREITAS: Operator Ternary adalah pada dasarnya pernyataan jika yang lain, tapi
daripada harus memiliki dua baris memeriksa sebuah jika dan kemudian
lain, Anda hanya memiliki satu baris.
Jadi pada dasarnya jika saya ingin memberikan string nilai tinggi atau rendah, dan saya
ingin melakukan tinggi jika n lebih besar dari 100 atau rendah jika kurang, apa yang bisa saya lakukan
apakah ini [Tak terdengar]
string akan menjadi, dan kemudian saya meminta program ini n lebih besar dari 100?
>> Jadi itulah mengapa saya memiliki ungkapan ini dalam tanda kurung dan kemudian
tanda tanya.
Aku bertanya apakah itu lebih besar dari 100?
Jika ya, itu akan menjadi tinggi.
Jika tidak, itu akan menjadi rendah.
>> Jadi pada dasarnya apa yang Anda pikirkan adalah Anda meminta pertanyaan, sehingga Anda masukkan ke dalam tanda kurung
kondisi.
Kemudian Anda menempatkan tanda tanya karena kau bertanya itu.
Dan jika ini benar, itu akan menjadi nilai pertama [Tak terdengar] di sini.
Jika tidak, aku akan menempatkan nilai yang setelah usus besar.
Apakah ini masuk akal?
>> Ini juga sesuatu yang seperti alat dalam C tetapi Anda tidak perlu
khusus menggunakannya.
Tetapi orang-orang CS biasanya seperti itu karena hanya menyimpan baris.
>> LAUREN Carvalho: Ini sangat elegan.
Itu banyak hanya dalam satu pernyataan.
>> AUDIENCE: Jadi tanda persen hanya apa pun hasilnya pada
baris sebelumnya?
>> LAUREN Carvalho: Oh, maafkan aku.
Tanda persen ini sebenarnya sebuah tempat untuk ini s.
Dalam sebuah pernyataan printf, Anda punya ini String di sini, yang adalah apa yang akan
mencetak, tetapi Anda tidak bisa hanya menempatkan ini s di sana.
Jika tidak itu akan mencetak keluar s harfiah.
Jadi kita menempatkan persen di sini untuk menjaga tempat ini diadakan untuk apa pun
datang setelah koma.
>> Jadi untuk string, Anda punya persen s.
Untuk integer, i persen.
Untuk float, persen f.
Anda akan melihat orang-orang seperti kita melihat lebih banyak contoh.
Tapi mungkin Anda harus berbicara tentang panduan gaya untuk sementara waktu, sekarang
bahwa terserah.
>> LUCAS FREITAS: Jika Anda pergi ke cs50.net/style, Anda akan melihat
panduan gaya.
Untuk masalah set, skor Anda untuk Masalah set terdiri dari ruang lingkup,
yang pada dasarnya berarti jika Anda melakukan semua bagian dari masalah mengatur atau jika Anda
mencoba sesuatu.
Hal kedua adalah kebenaran, yang berarti adalah program anda melakukan apa yang
seharusnya melakukan, atau apakah itu memiliki bug, atau tidak melakukan apa
itu seharusnya dilakukan.
>> Yang ketiga adalah desain, yang berarti Anda menerapkan dengan baik ini, atau
Anda menggunakan pernyataan yang tidak perlu?
Jadi misalnya, jika Anda ingin mengulang nomor 10 kali, apakah Anda menulis
untuk loop atau Anda hanya melakukan 10 kali pernyataan yang sama, hanya melakukan
copy dan paste.
Jadi desain untuk itu.
>> Dan akhirnya, Anda memiliki gaya.
Gaya adalah seperti menilai jika kode Anda terlihat
dibaca dan agak cantik.
Itu hanya pada dasarnya berarti adalah kode Anda dapat dibaca?
Apakah orang lain yang sedang mencari yang kode Anda dapat memahami apa yang
itu lakukan?
Apakah ada komentar dan sejenisnya?
>> Mari kita bicara tentang gaya yang Anda seharusnya digunakan.
Hal pertama adalah komentar.
Komentar yang sangat penting bagi Anda kode karena kadang-kadang Anda lakukan
program Anda, dan Anda tahu persis apa Anda ingin melakukannya Anda hanya mulai
coding, hanya mengetik sekelompok C. Tapi jika orang lain sedang mencari yang Anda
kode, mereka tidak akan dapat mengerti karena mereka tidak tahu
hal-hal yang ada di kepala Anda, seperti pesudocode, jadi mungkin mereka akan
memiliki waktu yang sulit untuk memahami apa kode lakukan.
>> Jadi komentar yang benar-benar berguna untuk menjelaskan untuk seseorang yang melihat
kode Anda apa yang dilakukannya, dan sebenarnya bahkan untuk Anda,
mereka sangat berguna.
Ketika Anda pergi ke lebih keras dan keras Psets, Anda akan melihat bahwa kode menjadi
lagi, dan kemudian komentar yang benar-benar penting sehingga Anda ingat apa yang masing-masing
bagian dari program Anda tidak.
>> Untuk menempatkan komentar, Anda hanya dapat melakukan slash slash dan kemudian menulis komentar.
Dan seluruh garis adalah bagian dari komentar, dan apa pun yang Anda tuliskan,
itu tidak akan menjadi digunakan untuk kode Anda.
Pada dasarnya seperti compiler akan mengabaikan itu.
Apakah itu masuk akal?
>> AUDIENCE: Apa yang Anda lakukan lagi untuk menulis komentar?
>> LUCAS FREITAS: Ini?
Slash slash?
Setiap kali Anda mengetik slash slash, apa pun sejalan yang tidak akan
untuk dianggap C. Ya?
>> AUDIENCE: Jadi setelah komentar, Anda Cukup masukkan dan memulai baris baru?
>> LUCAS FREITAS: Ya, persis.
>> LAUREN Carvalho: The slash slash adalah untuk komentar satu baris.
>> LUCAS FREITAS: Misalnya, di sini kita memiliki -
biarkan aku memperbesar -
misalnya, di sini saya menyatakan pelampung, tapi mungkin jika Anda hanya menempatkan ini
dalam kode Anda, seperti Anda tidak tahu apa ini lakukan, seperti benar-benar
seseorang yang melihat kode ini akan menjadi, seperti, apa
sih yang terjadi?
>> Jika Anda menempatkan komentar mengatakan "mengkonversi Fahrenheit ke Celsius, itu membuat banyak
lebih masuk akal.
Kau, seperti, OK, kau melakukan konversi.
Apakah itu masuk akal?
Jadi itu hanya sesuatu yang membantu orang siap kode Anda dan juga membuat
Anda dapat mengatur kode Anda lebih baik.
>> Hal kedua adalah bahwa Anda dapat melakukan komentar multi-line, sehingga memiliki satu
komentar untuk sekelompok baris.
Daripada harus menempatkan slash slash, komentar baris pertama, slash slash,
baris kedua, dan seterusnya, Anda dapat menggunakan bintang slash.
Cara yang Anda lakukan itu adalah bahwa untuk baris pertama komentar, Anda
akan melakukan star star slash, jadi hanya seperti itu.
Sama seperti di sini kita memiliki awal program, Anda biasanya menempatkan siapa Anda
, apa program ini tidak, dan hal-hal seperti itu.
Ini semacam seperti header untuk program tersebut.
>> Sekali lagi, itu bukan sesuatu yang compiler akan peduli, tapi
itu penting bagi Anda untuk tahu apa ini Program yang dilakukan atau untuk orang lain
untuk mengetahui apa program anda lakukan.
Jadi Anda slash bintang bintang, dan kemudian baris terakhir Anda akan melakukan star
slash untuk dapat menutup yang komentar.
Jadi pada dasarnya untuk semua jalur lain, Anda hanya bisa menulis apa pun, dan ini
semua akan diabaikan.
>> Dan juga, seperti gaya, Anda melihat bahwa setiap baris memiliki bintang, dan semua
bintang-bintang selaras.
Ini adalah hal penting sehingga bahwa kode Anda terlihat cantik.
Kedengarannya bagus?
>> Sekarang, kondisi.
Apa David mengatakan bahwa kita harus benar-benar dimasukkan ke dalam slide tersebut, adalah bahwa
ketika Anda memiliki jenis jika pernyataan atau segala kondisi,
Anda harus menggunakan kurung kurawal untuk menunjukkan bahwa ini adalah apa yang akan terjadi
ketika Anda memiliki kondisi tersebut.
Secara teknis, ketika Anda memiliki kondisi dan kemudian baris berikutnya adalah salah satu
line, Anda tidak secara teknis memiliki untuk menempatkan kurung kurawal.
>> Pada dasarnya compiler akan mengerti tetap sebagai implisit.
Tapi untuk CS50, kami meminta kalian untuk menempatkan kurung kurawal hanya agar Anda
kode lebih terorganisir dan lebih mudah dibaca.
Karena kode yang mendapat lebih lama jika Anda tidak memiliki kurung kurawal dan semacamnya.
Itu akan benar-benar berantakan.
>> LAUREN Carvalho: Ini adalah persis apa yang David hanya menunjukkan
dalam slide saya sebelumnya.
Ini jelas bekerja tanpa keriting kawat gigi, tetapi untuk alasan gaya
kita akan meminta Anda menempatkan orang masuk
>> Dan ketika Anda mulai menjalankan style50, yang merupakan jenis cek 50 untuk
gaya, itu akan mengingatkan Anda untuk melakukan hal ini.
>> LUCAS FREITAS: Dan satu hal lagi adalah ingat untuk menempatkan kurung kurawal bersama
di setiap lini.
Jadi yang Anda lakukan, misalnya, l's.
Pergi ke baris berikutnya, buka keriting brace, maka Anda pergi ke baris berikutnya.
Indentasi, yaitu empat spasi.
Kemudian Anda menulis apa saja, maka lain line, dan tutup kurung kurawal.
Jadi pastikan bahwa kedua keriting tersebut kawat gigi dalam baris yang berbeda.
>> AUDIENCE: Jadi, jika kode ini punya seperti 10 ifs lain, ini harus
menjadi 10 set tanda kurung?
>> LUCAS FREITAS: Ya, untuk masing-masing.
Ya.
Jadi jika, lain jika, dan sebagainya.
>> AUDIENCE: Dapatkah Anda tidak tekan Tab untuk indent?
>> LUCAS FREITAS: Kami meminta Anda orang untuk menggunakan empat ruang.
Beberapa editor teks menerjemahkan tab empat ruang secara otomatis.
gedit tidak, sehingga Anda harus melakukan space space space space.
Ini juga sesuatu yang beberapa programmer hanya melakukan tabs, beberapa
programmer hanya melakukan empat ruang, dan beberapa orang lain bahkan melakukan
dua atau tiga ruang.
Hanya saja bahwa di sini kita bertanya kalian untuk melakukan empat ruang.
>> AUDIENCE: Ada hampir pasti harus menjadi jalan bagi gedit untuk
otomatis [Tak terdengar].
Seperti tidak ada [Tak terdengar] melakukan itu.
>> LUCAS FREITAS: Ya.
Saya pikir Anda bisa pergi ke Settings.
>> AUDIENCE: Ini sudah melakukan semua itu.
>> LUCAS FREITAS: Ini sudah tidak?
OK.
Jadi pastikan bahwa Anda memiliki empat ruang.
>> AUDIENCE: Apakah kita harus meletakkan keriting kurung dalam untuk loop juga?
>> LUCAS FREITAS: Ya.
>> LAUREN Carvalho: Setiap kali Anda encapsulating blok kode, hanya
silakan gunakan kurung kurawal.
Dan sebelum Anda berpikir bahwa kita hanya menjadi sticklers tentang hal ini tidak baik untuk
Alasannya, jika kalian tidak pergi untuk mendapatkan magang di perusahaan-perusahaan teknologi besar,
mereka akan memberikan panduan gaya, dan mereka akan memberitahu Anda ini adalah apa yang Anda
kode harus terlihat seperti.
Dan meskipun Anda belajar kode seperti ini, mungkin di magang
Anda harus melakukan sesuatu sama sekali berbeda.
Mereka mengharapkan Anda untuk menyesuaikan dengan gaya mereka.
>> LUCAS FREITAS: Dan satu hal lagi adalah yang Anda perhatikan bagaimana saya harus seperti x,
ruang, kurang, ruang, 0?
Kapanpun Anda memiliki operator -
bisa seperti ditambah, dikurangi, kali, kurang, lebih besar operator, apa pun -
Anda harus menempatkan spasi di sebelah kiri dan hak operator.
>> LAUREN Carvalho: Mereka adalah disebut operan biner.
Pastikan Anda selalu ruang out operan biner Anda.
>> LUCAS FREITAS: Ini adalah bukan operan biner.
>> LAUREN Carvalho: Itu karena dibutuhkan dua.
>> LUCAS FREITAS: Oh, yeah.
>> OK, switch.
Pertama, Anda harus melihat bahwa sama seperti dalam sebuah pernyataan jika atau yang lain, Anda harus
untuk menempatkan kurung kurawal pada baris sendiri dan di bawah penjepit keriting di sini.
Perhatikan bahwa ada satu ruang setelah switch, sama seperti di jika dan lain
kami memiliki satu ruang antara itu dan tanda kurung.
Jadi, Anda harus menempatkan bahwa.
>> Dan tidak ada ruang tepat setelah masing-masing kurung atau sebelum akhir
kurung.
Jadi Anda lihat bahwa itu semua bersama-sama, dan juga suka di sini.
>> Ya?
>> LAUREN Carvalho: Saya pikir kita perlu untuk melanjutkan.
>> LUCAS FREITAS: Jadi ini adalah bagian dari panduan gaya yang Anda miliki untuk CS50.
Pastikan untuk pergi ke cs50.net/style dan lihatlah ini.
Ini semua sangat penting untuk skor gaya Anda.
>> Biarkan aku kembali ke pernyataan.
>> LAUREN Carvalho: Saya lebih suka hanya menggunakan style50.
Kami hanya akan pergi langsung ke loop.
Baik.
>> Jadi mari kita kembali ke konten, sekarang bahwa kita telah melebihi bagian panduan gaya.
Loops, Anda telah melihat mereka di Scratch, dan kita akan berbicara tentang mereka dalam
C.
>> Dalam untuk loop, ada tiga bagian dengan
deklarasi ini untuk loop.
Anda punya inisialisasi Anda yang Anda mengatur variabel Anda.
Anda punya kondisi Anda, yang memeriksa untuk melihat apakah ada sesuatu yang
benar atau salah dan apakah loop harus terus.
Dan Anda punya update Anda, yang adalah memperbarui variabel Anda.
>> Mari kita mengambil cepat melihat beberapa Kode C ini untuk loop dalam tindakan.
Apa yang terjadi di sini dalam inisialisasi, kita sedang menyiapkan i ke 0.
Dalam kondisi kami sedang memeriksa apakah saya kurang dari 10.
Dan di update kita incrementing i.
Jadi apa yang akan dihasilkan dari ini untuk loop?
>> LUCAS FREITAS: Sebenarnya, pertama-tama, kalian tahu apa i + + adalah?
>> AUDIENCE: Peningkatan oleh 1.
>> LUCAS FREITAS: Naik 1, ya.
Jadi ini adalah hal yang sama seperti melakukan i sama dengan i ditambah 1.
Dan perhatikan bahwa kita tidak memiliki ruang antara i dan + +.
>> Jadi kalian tahu apa yang akan lakukan?
Dapatkah seseorang mengatakan padaku?
Dan mungkin mendapatkan beberapa permen karena itu?
>> AUDIENCE: [Tak terdengar]
>> LUCAS FREITAS: OK.
[Tak terdengar]
menunjukkan semua orang kemudian [Tak terdengar].
Ya, itu akan menunjukkan "Ini adalah CS50 "10 kali.
>> LAUREN Carvalho: Saya kira itu dalam judul slide.
>> LUCAS FREITAS: Oh, yeah.
>> [Tertawa]
>> LUCAS FREITAS: Yang membantu.
>> LAUREN Carvalho: Jadi mereka adalah untuk loop.
Kita akan melihat beberapa contoh untuk loop di kemudian hari.
Tapi mari kita benar-benar melihat pada Tipe kedua loop Anda akan menemukan
di C, dan itu disebut loop sementara.
>> Dalam beberapa saat loop, Anda sudah baru saja kondisi.
Kondisi ini diperiksa dalam awal, dan jika kondisi yang
mengevaluasi ke benar, maka kode dalam tubuh blok sementara
akan mengeksekusi.
Dan kode tersebut akan terus mengeksekusi selama itu
kondisi tetap benar.
>> Berikut ini adalah contoh dari sebuah loop sementara di C. Kita akan mengatur menghitung sampai 10 untuk
mulai dengan.
Selama hitung lebih besar dari 0, kita akan terus mencetak ini
variabel di sini.
Kita akan pengurangan jumlah dan kemudian memeriksa kondisi lagi.
Print, pengurangan, cek kondisi lagi.
>> Di sini kita memiliki contoh yang berhubungan untuk pertanyaan anda tadi.
Kami memiliki persen s ketika kami mencetak string, dan sekarang
kami mencetak sebuah int, kita memiliki persen i sebagai placeholder kami sebagai gantinya.
Surat-surat semua harus cukup intuitif, s string, i untuk int.
>> Jadi, jika kode ini dijalankan, Anda harus menghitung mundur dari 10 ke 0, mencetak
setiap bilangan bulat.
>> LUCAS FREITAS: Dan Anda dapat memikirkan persen karena rasanya seperti kosong
ruang, dan kemudian Anda meletakkan ini variabel di sini dalam ruang kosong.
Jadi misalnya, di sini saya hanya akan memiliki kosong, dan kemudian aku menempatkan
menghitung kanan sana, nilai hitungan.
Apakah itu masuk akal?
>> Bisakah saya hanya melakukan seperti printf dan kemudian mengutip, menghitung?
Apakah itu bekerja?
>> AUDIENCE: No
>> LUCAS FREITAS: Tidak, karena akan benar-benar mencetak kata "count"
bukannya mencetak nilai.
Ini adalah bagaimana Anda membuatnya mencetak nilai-nilai terhadap variabel bukannya
hanya nama variabel.
Ada pertanyaan?
>> AUDIENCE: Mengapa Anda gunakan untuk sebagai menentang untuk sementara?
>> LAUREN Carvalho: Saya akan menggunakan untuk loop jika saya tahu persis berapa banyak
iterasi Saya ingin loop saya untuk menjalankan.
Dalam kasus ini, itu tidak masalah karena, Maksudku, aku hanya mencoba untuk
memikirkan benar-benar sederhana contoh untuk slide ini.
Tapi mari kita mengatakan bahwa Anda menginginkan sesuatu untuk terus sementara -
>> LUCAS FREITAS: Misalnya, Anda meminta masukan sampai orang
memberikan masukan yang tepat.
Jadi seperti sementara input tidak OK, terus meminta untuk itu.
Atau seperti saat Anda sedang orang tua tidak memberikan uang, terus meminta untuk itu.
>> [Tertawa]
>> LAUREN Carvalho: Anda tidak tahu bagaimana banyak kali Anda harus melakukannya.
>> LUCAS FREITAS: Karena Anda tidak tahu berapa kali itu
akan terus berjalan.
>> LAUREN Carvalho: Tapi dalam untuk loop, Anda perlu tahu berapa kali.
Ya?
>> AUDIENCE: Hanya untuk memperjelas, persen mengatakan ini adalah sesuatu akan
terjadi, i untuk integer, dan backslash n -
>> LAUREN Carvalho: Sarana?
Siapa yang tahu apa artinya backslash n?
Baris baru, ya.
Tepat.
>> LUCAS FREITAS: Anda dapat berpikir n sebagai baris baru.
>> LAUREN Carvalho: Nice.
>> AUDIENCE: Apa count yang dasbor dasbor [Tak terdengar]?
>> LUCAS FREITAS: Hitungan dikurangi minus hal yang sama seperti plus plus, tapi
bukannya meningkatkan, itu mengalami penurunan sebesar 1.
>> LAUREN Carvalho: Setiap lebih sementara pertanyaan lingkaran?
Tidak ada?
Oh, kita seharusnya telah melewatkan itu.
>> Ini adalah do while.
Sangat mirip dengan while loop kecuali dalam hal ini kita memeriksa kondisi setelah
kode dalam tubuh Loop mengeksekusi sekali.
Jadi kita mengeksekusi kode pertama tidak peduli apa.
Kemudian kita memeriksa kondisi, jalankan lagi jika kondisi benar.
>> Anda akan menemukan diri Anda menggunakan ini ketika Anda meminta input pengguna.
Karena Anda akan selalu harus bertanya sekali, dan kemudian tergantung pada apa
input pengguna, Anda mungkin harus reprompt dan meminta lagi dan lagi jika
input adalah bukan apa yang Anda diharapkan untuk menjadi.
>> AUDIENCE: Jadi itu seperti bentuk bagi orang-orang untuk mengisi.
>> LAUREN Carvalho: Ya, persis.
Anda akan menemukan, saya pikir, dalam Anda pertama Pset, Anda akan harus
menggunakan loop do baik untuk mengumpulkan masukan dari pengguna.
>> AUDIENCE: Tergantung pada situasi, loop sementara Anda akan cenderung berjalan lebih
sering daripada sementara loop, seperti oleh satu atau sesuatu?
>> LAUREN Carvalho: Jika itu adalah tepat -
>> LUCAS FREITAS: Mereka harus selalu dijalankan jumlah yang tepat waktu yang Anda
ingin menjalankannya.
Seperti kita menggunakan lakukan sementara karena kita benar-benar ingin mendapatkan masukan setidaknya sekali.
Dalam loop sementara, kadang-kadang Anda tidak ingin untuk mengeksekusi sama sekali jika tidak
kasus untuk mengeksekusi.
Jadi itu tergantung pada desain.
Maksudku, Anda dapat menggunakan lakukan sementara atau sementara selama kode Anda melakukan itu
itu seharusnya dilakukan.
>> LAUREN Carvalho: Tapi aku kira jawabannya untuk Anda
Pertanyaannya adalah mungkin ya.
Katakanlah kondisi itu palsu.
Dalam satu kasus itu akan berjalan sekali, dan kasus lain itu akan berjalan nol kali.
Jadi, ya.
>> Pertanyaan lagi?
Ya?
>> AUDIENCE: Dapatkah kondisi loop menjadi untuk loop dalam hal variabel lainnya
dari [Tak terdengar].
>> LAUREN Carvalho: Ya, itu bisa apa saja.
Mungkin untuk Psets awal, Anda tidak perlu mengalami hal itu, tapi
pasti itu bisa apa saja.
>> LUCAS FREITAS: Saya pikir kami sudah selesai di sini.
>> LAUREN Carvalho: Apakah kita?
Tidak ada?
>> LUCAS FREITAS: Loops?
Ya.
>> LAUREN Carvalho: Kita tidak seharusnya.
Oh, kita sudah selesai dengan loop.
OK.
>> Sebenarnya, karena kita sudah berbicara begitu banyak, mari kita benar-benar semua menavigasi
ke study.cs50.net/conditions.
Dan Anda akan menavigasi turun untuk masalah widget.
Well, sebenarnya, sementara orang yang mendapatkan ini diatur, CS50 Study adalah
akan menjadi alat yang TF Anda akan gunakan untuk mempersiapkan bagian dan bahwa
kalian dapat Anda gunakan jika Anda melewatkan bagian.
Ini akan berisi sekelompok slide, beberapa tips dan trik untuk masing-masing
topik, dan beberapa masalah praktek dengan solusi.
>> Mengapa tidak semua orang hanya melihat-lihat pada masalah ini di sini.
>> Maafkan aku, aku harus mengingatkan orang untuk membawa laptop saat ini.
Tapi jika Anda tidak memiliki laptop, itu OK.
Anda hanya dapat menuliskan ini ke bawah pada selembar kertas atau melihat lebih
bahu tetangga Anda.
>> Mari kita coba dan menulis sebuah program yang meminta pengguna untuk mengambil menebak, yang
rata-rata jumlah anak per keluarga Unit di Amerika Serikat.
Angka itu adalah 2, by the way, karena Anda dapat melihat dari contoh-contoh ini.
>> Kami ingin mencetak rata-rata jumlah anak per keluarga di AS, maka kita
ingin apa?
Kami ingin mengumpulkan input dari pengguna.
Dan kemudian tergantung pada apa yang user itu input, Anda akan mencetak
baik ini benar atau ini tidak benar.
>> Dan hal pertama yang Anda akan lihat, jika Anda mengklik panah kecil di
bagian bawah widget masalah adalah tempat untuk menuliskan beberapa pseudocode.
Jadi Anda tidak pemrograman belum.
Anda hanya mendapatkan Anda ide-ide dalam rangka.
>> Apakah ada yang ingin membantu Lucas datang dengan hak
pseudocode untuk masalah ini?
>> LUCAS FREITAS: Apa hal pertama bahwa kita mungkin harus lakukan di sini?
Apa yang kalian pikirkan?
>> AUDIENCE: [Tak terdengar]
>> LUCAS FREITAS: Yeah, OK.
Jadi, cetak.
Katakan saja mencetak rata-rata ini jumlah orang?
OK.
Pertanyaan Print, katakanlah.
Setelah saya mencetak pertanyaan ini, apa yang harus saya lakukan?
>> AUDIENCE: Dapatkan masukan.
>> LUCAS FREITAS: Dapatkan masukan.
Ada lagi?
>> AUDIENCE: Kondisi.
>> LUCAS FREITAS: Kondisi.
>> LAUREN Carvalho: Apa itu Kondisi akan menjadi?
>> AUDIENCE: Jumlah [Tak terdengar].
>> LAUREN Carvalho: Benar.
>> LUCAS FREITAS: Jadi apa yang akan saya untuk check-in kondisi?
>> AUDIENCE: Jika itu sama dengan 2.
>> LAUREN Carvalho: Jika itu sama dengan 2.
Tepat.
>> LUCAS FREITAS: Apakah ada sesuatu lain yang harus saya lakukan?
>> AUDIENCE: Hitung.
>> LUCAS FREITAS: Jadi jika sama dengan 2, katakanlah -
saya hanya menulis jika input sama dengan 2, maka apa yang akan saya
lakukan adalah cetak yang benar.
Dan kemudian yang lain, aku akan untuk mencetak salah.
Ada lagi?
Tidak ada?
>> LAUREN Carvalho: Jadi Anda dapat mengklik -
tidak semua orang memiliki ini turun?
>> LUCAS FREITAS: Apakah masuk akal?
Jadi sekarang mari kita coba untuk kode ini.
>> LAUREN Carvalho: Jika Anda mengklik sedikit panah, itu benar-benar menghemat Anda
pseudocode, yang benar-benar menarik.
Dan Anda dapat membuat mereka menjadi komentar jika Anda ingin hanya untuk mengingatkan diri Anda dari
apa yang harus dilakukan.
>> LUCAS FREITAS: Jadi misalnya, pertama Aku akan mencetak pertanyaan, sehingga
bagaimana aku akan melakukan itu, sebenarnya?
printf.
Jadi printf, dan pertanyaannya adalah rata-rata jumlah anak per
keluarga di AS.
>> Lalu aku akan mendapatkan masukan dari pengguna.
Jadi bagaimana saya bisa melakukan itu?
>> AUDIENCE: Dapatkan Int.
>> LAUREN Carvalho: getInt.
>> LUCAS FREITAS: OK.
Jadi pertama menyatakan, kan?
int, sebut saja n sama getInt.
>> Dan sekarang kondisi.
Jadi saya katakan bahwa saya akan ke sini cek jawaban.
Jadi pertama, jika input, yang n, sama dengan untuk - bagaimana aku akan menulis itu?
>> AUDIENCE: Sama sama.
>> LUCAS FREITAS: Sempurna.
Jadi n.
Dan perhatikan bahwa saya melakukan spasi, sama, sama, ruang, benar.
Dan sekarang apa yang harus saya lakukan?
Sesuatu yang sangat penting untuk gaya.
Kurung kurawal.
>> Dan kemudian aku akan mencetak.
Bagaimana cara mencetak?
printf.
>> AUDIENCE: Mungkinkah dikapitalisasi?
>> LUCAS FREITAS: No
Ini seharusnya menjadi semua huruf kecil.
Jadi yang benar.
>> Apakah ini cukup untuk printf pernyataan, atau aku kehilangan sesuatu?
>> AUDIENCE: baris baru.
>> LUCAS FREITAS: baris baru, ya.
Dan sekarang lain.
>> AUDIENCE: Apakah ada spasi setelah printf, atau tidak?
>> LAUREN Carvalho: Kita harus periksa panduan gaya.
>> AUDIENCE: Seharusnya tidak.
>> LUCAS FREITAS: Seharusnya tidak, OK.
Jadi lain, printf, "Itu tidak benar."
>> LAUREN Carvalho: Ups, kutipan Anda.
>> LUCAS FREITAS: OK.
Ada lagi?
Apakah terlihat bagus?
>> LAUREN Carvalho: Bagaimana kalau kita mencobanya?
>> LUCAS FREITAS: Yeah, mari kita jalankan.
Jadi kompilasi, dan Tampaknya ia bekerja.
Mari kita coba dua anak.
Itu benar.
Dan sekarang mari kita jalankan lagi, tapi sekarang sebaliknya menempatkan dua anak, mari kita
mengatakan bahwa aku akan dimasukkan seperti lima.
Itu tidak benar.
Jadi sepertinya bahwa ia bekerja.
>> LAUREN Carvalho: Mengapa tidak Anda menunjukkan kepada mereka apa yang terjadi jika Anda meletakkan sesuatu
aneh, seperti beberapa huruf.
>> LUCAS FREITAS: Oh, yeah.
Mari kita periksa juga.
Bagaimana jika pengguna mencoba untuk mengacaukan dengan program anda, dan mereka hanya
menulis, saya tidak tahu dua.
Ini akan mengatakan coba lagi.
>> LAUREN Carvalho: So getInt meminta mereka untuk mencoba lagi.
Kita tidak harus berhati-hati itu diri kita sendiri.
>> LUCAS FREITAS: Ya.
Jadi kecuali aku benar-benar menempatkan nomor, itu akan terus meminta saya untuk mencoba lagi.
>> AUDIENCE: Bagaimana Anda menjalankannya?
>> LUCAS FREITAS: Cukup klik ini tombol bintang.
>> LAUREN Carvalho: Anda harus pergi.
Di sana Anda pergi.
>> LUCAS FREITAS: Bintang tombol di sana.
Ya?
>> AUDIENCE: Apakah itu meminta [Tak terdengar] dengan angka desimal juga?
>> LAUREN Carvalho: Saya percaya itu akan.
>> LUCAS FREITAS: Jika tidak apa?
>> LAUREN Carvalho: Jika mereka mengetik dalam angka desimal, saya pikir
itu akan meminta.
>> LUCAS FREITAS: Mari kita lihat.
>> LAUREN Carvalho: Karena itu bukan int.
>> LUCAS FREITAS: Ya.
>> LAUREN Carvalho: Jadi itu bukan int, Dapatkan Int akan meminta Anda untuk mencoba lagi.
>> AUDIENCE: Jadi di mana dalam kode yang akan tempat desimal yang mendorong
pengguna bahwa mereka harus memasukkan integer khusus?
>> LAUREN Carvalho: getInt sebenarnya melakukan hal itu bagi kita.
>> AUDIENCE: Tidak, maksudku jika kita ingin untuk masuk [Tak terdengar]
>> LUCAS FREITAS: Anda dapat mengatakan seperti rata-rata jumlah anak di AS.
Saya tidak tahu.
Kita dapat mengatakan, misalnya, "Silakan masukan integer. "
>> LAUREN Carvalho: Sebuah integer sama dengan jumlah rata-rata.
Maksudku, itu hanya bagaimana kata yang itu, kan?
>> LUCAS FREITAS: Ya.
Ini bukan bagian dari coding sebenarnya.
Ini lebih dari seperti apa pun Anda akan ingin
menulis dalam program anda.
>> AUDIENCE: Bagaimana kita menjalankannya jika benar-benar di gedit [Tak terdengar].
Alih-alih menekan bermain?
>> LUCAS FREITAS: Kami akan pertama compile.
Kita bisa melakukannya dengan melakukan make dan nama file.
Dan kemudian untuk menjalankannya, kami akan melakukan dot slash dan nama program.
>> AUDIENCE: Saya kira apa yang saya maksudkan adalah jika kami ingin program untuk menanggapi
salah, entri yang tidak valid mereka, Anda tidak harus dimasukkan ke dalam -
>> LUCAS FREITAS: Kita tidak akan dapat melakukan itu karena kode ini mengatakan
coba lagi berasal dari Get Int yang merupakan fungsi yang sudah dilaksanakan
bagi kita melalui perpustakaan CS50, dan karena itu sudah diterapkan di sana, kami
tidak bisa hanya [Tak terdengar].
>> LAUREN Carvalho: Jika Anda tidak menggunakan GetInt, maka Anda bisa melakukan itu.
>> LUCAS FREITAS: Ya.
Tetapi jika Anda menggunakan getInt, Anda tidak bisa.
Ada pertanyaan lain?
>> AUDIENCE: Bisakah Anda pergi dengan seperti GetFloat dan kemudian dapat menempatkan
dalam desimal?
>> LUCAS FREITAS: Ya.
>> AUDIENCE: OK.
Kemudian Anda hanya bisa input mengapung equals -
>> LAUREN Carvalho: Ya.
Persis sama kecuali mengapung bukan sebuah int.
>> LUCAS FREITAS: Hanya taruh di sini dan kemudian getFloat ada.
>> AUDIENCE: Seperti yang Anda akan melihat atau telah melihat -
>> LAUREN Carvalho: kita memiliki tidak sampai di sana belum.
>> AUDIENCE: - melakukan ketidaksetaraan dengan mengapung tidak [Tak terdengar]
>> AUDIENCE: Apa titik koma artinya?
>> LAUREN Carvalho: titik koma saja berarti bahwa pernyataan ini selesai,
dan kita akan pergi ke slide berikutnya.
>> AUDIENCE: Jadi itu perlu setiap kali?
>> LAUREN Carvalho: Ya.
Well, OK, jadi tidak untuk kondisi ini, karena mereka
encapsulating sesuatu.
Jadi pada dasarnya jika ada sesuatu yang menyebabkan Anda kemudian membuat kurung kurawal
blok, tidak menempatkan titik koma di akhir.
>> LUCAS FREITAS: Tapi semuanya lain, ya.
Setelah Anda selesai pernyataan, menempatkan titik koma.
Dan jika Anda lupa titik koma, yang compiler akan marah pada Anda,
dan Anda akan memiliki mencoba untuk memperbaikinya.
>> LAUREN Carvalho: Jika saya meletakkan titik koma di sini, yang akan menghentikan ini, dan saya
akan pernah bisa mengeksekusi apa dalam, by the way.
Jadi salah satu bug umum.
>> AUDIENCE: Selalu mengeksekusi.
>> LAUREN Carvalho: Ya.
Dalam hal ini, kita akan selalu menjalankan apa yang ada di dalamnya.
>> AUDIENCE: gaya Anda [Tak terdengar] melampirkan untuk Anda, pikir.
>> LAUREN Carvalho: Oh, itu benar.
>> AUDIENCE: [Tak terdengar] tunggal Hal baris [Tak terdengar]
>> AUDIENCE: Ya?
>> AUDIENCE: Dapatkah Anda memiliki beberapa masukan dalam satu baris?
Jadi seperti yang bisa Anda meminta pengguna mencetak dua hal?
>> LAUREN Carvalho: Tidak menggunakan -
>> LUCAS FREITAS: No
Mari kita mengatakan bahwa saya juga ingin untuk mendapatkan bilangan bulat ini m.
Saya harus melakukannya dalam garis yang berbeda.
>> AUDIENCE: Jika Anda adalah untuk menjalankan itu, bagaimana [Tak terdengar]?
Ini akan mencetak prompt ada [Tak terdengar]
dan kemudian Anda akan memasukkan salah satu dan -
>> LAUREN Carvalho: Yah, menjalankannya.
Maksudku, tidak ada yang menghentikan kita dari hanya menjalankannya dan melihat apa
akan terjadi.
>> LUCAS FREITAS: Saya pikir itu akan mengeluh pada kami
karena kita tidak menggunakan -
>> LAUREN Carvalho: Oops.
>> LUCAS FREITAS: Ini mengeluh pada kita tepat sekarang karena kita tidak menggunakan ini
variabel, tapi jika saya lakukan, misalnya, n adalah sama dengan sama dengan, dan m sama
sama dengan, maka apa yang akan terjadi dalam kasus ini?
Apa yang akan program ini lakukan?
>> AUDIENCE: Saya hanya ingin tahu bagaimana itu akan -
>> LAUREN Carvalho: Dia hanya ingin untuk mengetahui bagaimana tampilannya
seperti, saya pikir, kan?
Jadi butuh salah satu dari mereka, dan kemudian butuh yang kedua.
>> Saya pikir kita harus bergerak, karena kita memiliki satu lagi
slide show untuk pergi sebelum -
Anda ingin menarik matematika?
>> LUCAS FREITAS: Ya, matematika.
>> LAUREN Carvalho: Berikan saya hanya satu detik.
>> Ada numerik yang berbeda variabel dalam data C. angka pada C
dapat diklasifikasikan ke dalam jenis yang berbeda, dan ini adalah orang-orang Anda akan
melihat yang paling sering.
>> Dan int adalah bilangan bulat.
Anda tidak dapat memiliki desimal.
Dalam Appliance, dibutuhkan 32 bit untuk menyimpan int.
>> Sebuah float dapat memiliki desimal.
Ini juga membutuhkan 32 bit untuk menyimpan pelampung di Appliance tersebut.
>> Sebuah ganda adalah angka dengan desimal titik yang mengambil 64 bit untuk menyimpannya,
yang berarti bahwa Anda hanya dapat memiliki presisi yang lebih besar karena
Anda dapat memiliki lebih -
apa yang Anda menyebutnya?
>> LUCAS FREITAS: Ya, itu lagi.
>> LAUREN Carvalho: tempat lainnya setelah titik desimal.
Dan lama adalah seluruh nomor yang mengambil 64 bit untuk
itu sakit di Appliance tersebut.
>> LUCAS FREITAS: Jadi dapat lebih besar dari ints dapat.
>> LAUREN Carvalho: Hal tentang data jenis di C adalah bahwa mereka memberitahu Anda apa
jenis data yang Anda dapat menyimpan dalam variabel Anda.
Mereka memberitahu Anda bagaimana Anda dapat menggunakan ini variabel dalam program Anda.
Ini sangat penting untuk hanya melacak apa tipe data yang Anda gunakan, dan jika
Anda perlu untuk membuang dari tipe data ke yang lain, pastikan bahwa Anda tahu
persis apa yang terjadi ketika itu pengecoran berlangsung.
Dan Anda akan melihat contoh kemudian di dalam slide tersebut dari
kesalahan yang dapat terjadi.
>> Mari kita lihat beberapa matematika di C dan berpikir benar-benar hati-hati, saya kira,
tentang apa yang terjadi saat ini matematika berlangsung.
Pada baris pertama, apa terjadi ketika saya menyatakan x?
>> AUDIENCE: Anda memungkinkan x menjadi sesuatu?
>> LAUREN Carvalho: Ya.
Yah, aku benar-benar meminta operasi sistem 32 bit memori, kan?
Di mana saya bisa menyimpan int, dan Aku akan menyebutnya int x.
>> LUCAS FREITAS: Pada dasarnya terjadi dalam memori dan menemukan tempat yang memiliki 32
bit dan berkata, hey, aku ingin ruang ini, dan itu akan disebut x.
Jadi Anda hanya cukup banyak temuan kotak dalam memori Anda untuk
menyimpan nilai-nilai untuk x.
>> LAUREN Carvalho: Dan kemudian aku menginisialisasi x, yang berarti bahwa saya hanya menyimpan
nilai 2 di tempat itu, bongkahan itu memori, yang kami ajukan operasi
sistem.
Dan di sini apa yang kita lakukan adalah kita benar-benar menyatakan dan
menginisialisasi y dalam satu baris, bukan dalam dua baris seperti yang kami lakukan di sini,
yang juga merupakan baik-baik saja, Kita menambahkan 1 sampai x, dan kami menyimpan bahwa
nilai y.
>> LUCAS FREITAS: Jadi pada dasarnya apa ini baris tidak, ia menemukan sekarang kotak untuk y,
dan kemudian nilainya, hal yang Anda akan dimasukkan ke dalam kotak, adalah
akan menjadi nilai x ditambah 1.
Sehingga memiliki kotak ini untuk y.
Ia mendapat nilai x, terlihat di sini, dan melihat bahwa itu 2.
Menaruhnya di sana, ditambah 1, sehingga menempatkan 3 di sana.
Apakah itu masuk akal?
Jadi y akan menjadi 2 dalam kasus ini.
>> LAUREN Carvalho: Baiklah, keren.
Kami melihat beberapa tambahan, jadi mari kita sekarang berpikir tentang pembagian di C. Di sini aku
menyatakan dan menginisialisasi pelampung disebut jawaban dan membagi 1 dengan 10,
dan kemudian saya mencetak jawabannya dua tempat desimal.
Dan dicatat di sini, dalam pernyataan printf saya, ketika saya ingin mencetak sesuatu untuk dua
tempat desimal,% .2 f adalah apa yang ingin saya gunakan.
Jadi titik 2 hanya mengatakan Aku butuh dua tempat setelah
desimal dicetak.
>> Sekarang, apa yang akan terjadi jika saya menjalankan kode ini?
Apakah ada yang punya ide?
Apa yang akan mencetak?
>> LUCAS FREITAS: Apa kita mengharapkan untuk mendapatkan.
>> LAUREN Carvalho: Apa kita inginkan, pertama-tama?
>> LUCAS FREITAS: [Tak terdengar]
>> LAUREN Carvalho: 0,1, yeah.
Tapi apa yang akan mencetak?
>> AUDIENCE: [Tak terdengar]
>> LAUREN Carvalho: Yah, tidak, sebenarnya.
Ini adalah apa yang saya bicarakan tentang mengapa Anda perlu untuk melacak sangat hati-hati
jenis data Anda.
Jadi, apa jenis data ini?
Adalah int, kan?
Tak ada tempat desimal.
10 juga merupakan int.
Tak ada tempat desimal.
>> Jika saya membagi int oleh int, saya mendapatkan int yang tidak 0.1, karena ints
tidak dapat memiliki tempat desimal, tetapi hanya 0.
Karena int hanya memotong dari tempat-tempat desimal.
>> LUCAS FREITAS: Jadi, setiap kali Anda melakukan operasi dengan ints, Anda akan
mendapatkan int sebagai jawabannya.
Jadi pada dasarnya, apa komputer lakukan, itu membagi 1 oleh
10, dan itu akan 0.1.
Tapi kemudian itu seperti, tunggu, ini seharusnya menjadi integer, sehingga Anda hanya
mengabaikan 0.1, jadi sekarang hanya 0.
>> LAUREN Carvalho: Jadi ketika saya mencetak ini keluar, saya mendapatkan 0.00 daripada 0.10.
>> LUCAS FREITAS: Apakah itu masuk akal?
>> LAUREN Carvalho: Itu semacam malang, kan?
>> LUCAS FREITAS: Jadi bagaimana kita bisa memperbaiki ini?
>> LAUREN Carvalho: Mari mencoba dan memperbaikinya.
Berikut ini adalah contoh di mana aku sebenarnya casting 1
dan 10 sampai mengapung.
Jadi sekarang, 1 tidak lagi menjadi int.
1 adalah pelampung.
By the way, ini hanya sintaks ketika Anda ingin membuang dari satu
tipe data yang lain.
Anda hanya dapat menempatkan jenis data dalam kurung dan memiliki hanya mendahului
nilai bahwa Anda pengecoran.
>> Jadi di sini, saya membagi pelampung oleh pelampung untuk mendapatkan jawaban yang mengambang.
Dan ya, ini akan di Bahkan mencetak 0.10.
Apakah itu masuk akal?
>> LUCAS FREITAS: Jadi tipe casting hanya mengkonversi dari satu jenis yang lain.
Jadi mengapung 1 sebenarnya 1.000.
Tidak persis ini, tapi itu sesuatu dengan desimal
yang sebenarnya 1.
Apakah itu masuk akal?
Ya?
>> AUDIENCE: Bagaimana jika Anda melakukan mengambang jawaban equals 1,0 dibagi dengan 10?
>> LAUREN Carvalho: Anda benar-benar akan untuk melihat bahwa dalam slide berikutnya.
Itu sebenarnya geser kami berikutnya.
Ini sebenarnya lebih baik daripada ketik casting, saya pikir.
Jadi dua ini mengapung hanya dengan sifat fakta bahwa mereka
memiliki tempat desimal.
Ya?
>> AUDIENCE: Bagaimana jika Anda lakukan [Tak terdengar]
dibagi dengan 10?
>> LAUREN Carvalho: Sebenarnya pelampung dibagi dengan int sebenarnya memberi Anda
mengapung, sehingga akan bekerja dengan baik.
>> Tunggu, tidak semua orang memahami hal ini?
Karena ini akan menjadi benar-benar masalah besar di Pset1, sebenarnya.
Ya?
>> AUDIENCE: Bisakah Anda hanya cepat pergi ke bagian merah?
>> LAUREN Carvalho: Bagian merah, yeah.
Lucas, apakah Anda mau?
>> LUCAS FREITAS: OK.
Jadi ingat bahwa persen adalah placeholder.
Ini seperti ruang kosong.
Jadi mari kita mencoba untuk memahami segala sesuatu yang terjadi di sini.
Persen berarti bahwa itu placeholder.
Kemudian Anda memiliki f, yang berarti bahwa placeholder ini adalah untuk pelampung.
Hal terakhir yang kita miliki di sini adalah .2, Yang berarti saya ingin memiliki dua
desimal untuk mengapung.
>> Jika saya hanya punya% f, mereka akan menempatkan sekelompok tempat desimal.
Jadi aku hanya dapat menempatkan 0,2 atau 0,1 atau 0,5, atau apa pun, dan itu akan menempatkan bahwa
jumlah tempat desimal.
Satu-satunya hal adalah bahwa jika Anda menempatkan seperti .100 Atau .1,000, itu tidak benar-benar
akan menempatkan semua tempat desimal karena tidak memiliki cukup memori
memiliki presisi itu.
>> Ada pertanyaan lain?
Ya?
>> AUDIENCE: Jadi mengambang hanya memungkinkan Anda melampaui bilangan bulat?
>> LUCAS FREITAS: Ya.
>> LAUREN Carvalho: Well, pelampung hanya memungkinkan Anda untuk memiliki tempat desimal.
>> LUCAS FREITAS: Ini hanya berarti bahwa Anda sekarang dapat memiliki angka desimal.
>> AUDIENCE: Mengapa kita pernah menggunakan bilangan bulat?
>> LUCAS FREITAS: Mengapa Anda menggunakan bilangan bulat?
Mungkin jika Anda menghitung dari 0 sampai 10, Anda ingin menggunakan sebenarnya integer.
Anda tidak perlu menggunakan pelampung.
Dalam beberapa situasi, Anda tidak harus benar-benar -
>> LAUREN Carvalho: Mungkin Anda tidak ingin desimal.
>> LUCAS FREITAS: Mungkin Anda tidak ingin menggunakan pelampung.
>> LAUREN Carvalho: Hal lain adalah, ingat, keduanya menempatkan pelampung dan int
mengambil 32 bit untuk menyimpan mereka, dan mungkin Anda tidak ingin menyia-nyiakan bit pada
tempat desimal.
>> LUCAS FREITAS: Ya.
Jadi seperti, hanya berpikir tentang hal ini.
Anda memiliki 32 bit untuk kedua int dan float.
Untuk int, semua 32 bit pergi ke bagian integer.
Jika Anda menggunakan pelampung dengan 32 bit, Anda memiliki bagian memori ini digunakan
untuk nomor tersebut, untuk jumlah keseluruhan, dan bagian lain yang digunakan untuk
tempat desimal.
Jadi itu berarti bahwa Anda tidak bisa sampai ke jumlah yang sangat besar dengan mengapung karena
float sudah menggunakan banyak memori untuk tempat desimal.
Ya?
>> AUDIENCE: Itu jawaban pertama, apa sebenarnya itu lakukan?
Apakah pengaturan nilai float sama untuk placeholder itu untuk yang dapat Anda
ingat itu di baris berikutnya?
Dikatakan mengapung jawaban.
>> LUCAS FREITAS: Ya.
Jadi, float jawaban berarti Anda mendapatkan sekarang ember kecil di memori yang
memegang pelampung, dan itu akan disebut jawaban.
Jadi itulah yang mengapung jawabannya tidak.
>> Dan kemudian Anda mengatakan bahwa dalam ini, Anda akan menempatkan
hasil ini.
Jadi Anda akan melakukan 1,0 dibagi dengan 10,0, Anda mendapatkan 0,1, dan kemudian Anda meletakkan
bahwa dalam jawaban.
>> LAUREN Carvalho: Jadi dalam satu baris, kami menyatakan dan menginisialisasi mengambang ini
disebut jawaban.
>> LUCAS FREITAS: Menariknya, meskipun ini hanya satu baris, itu melakukan
beberapa operasi.
Ini hanya cara C membiarkan Anda menggunakan kode kurang.
Ini hal yang sama seperti yang terner operator, bagaimana Anda bisa melakukan
[Tak terdengar] dalam satu baris.
Ini benar-benar melakukan hal yang sama seperti melakukan mengambang jawaban, titik koma, dan
maka jawabannya sama dengan ini, tapi bukannya membuat Anda melakukan dua baris untuk itu,
itu seperti jalan pintas.
Ya?
>> AUDIENCE: Jadi, jika Anda berlari ini, itu akan menjadi 0,10?
>> LUCAS FREITAS: Ya.
Ya?
>> AUDIENCE: Apakah jawaban sebenarnya kode, atau hanya nama?
>> LAUREN Carvalho: Ini sebenarnya kode.
Ini adalah apa yang kita akan untuk nama variabel kami.
>> AUDIENCE: Jadi itu hanya nama [Tak terdengar].
>> LAUREN Carvalho: Ya.
Saya bisa saja mengatakan mengambang x sama dengan 1.0.
>> LUCAS FREITAS: Masalahnya adalah bahwa nama variabel adalah
sesuatu yang Anda gunakan.
Sangat penting bagi Anda.
Untuk program yang sebenarnya, satu-satunya hal yang penting adalah nilai yang Anda
memiliki di dalam ember.
Alasan mengapa Anda memiliki variabel dan nama-nama variabel sehingga Anda akan tahu
apa yang Anda hadapi, seperti jenis data Anda
mengakses pada suatu waktu.
Tapi untuk kode itu sendiri, jika Anda memanggil itu menjawab pertanyaan atau atau apa pun,
cukup banyak, itu tidak masalah.
Itu tidak masalah.
Selama Anda konsisten dalam setiap kejadian itu dan sehingga Anda menyebutnya
sesuatu yang lain.
Ya?
>> AUDIENCE: Apakah variabel melampaui fungsi?
Seperti jika Anda adalah untuk membuat braket [Tak terdengar], bisa Anda hanya
[Tak terdengar] menjawab lagi?
>> LAUREN Carvalho: No
>> AUDIENCE: [Tak terdengar]
>> LAUREN Carvalho: No
Itu akan luar lingkup variabel tertentu.
Dan sebenarnya, itu semacam menarik, karena ketika kita memiliki
hal-hal seperti loop atau ini jika kondisi, jika Anda mendeklarasikan variabel
dalam satu set kurung kurawal, itu benar-benar hanya ada
dalam kurung kurawal tersebut.
>> AUDIENCE: Satu catatan terakhir tentang yang [Tak terdengar] mengapung.
Mengapa Anda pernah ingin menggunakan ints?
Ini adalah lebih dari sebuah catatan dari apa-apa, tetapi komputer Anda
secara signifikan lebih baik dalam menangani ints daripada di mengapung penanganan.
Ini seperti urutan besarnya lebih cepat.
Jadi jika kita hanya ditangani hanya mengapung, hal akan jauh lebih lambat.
>> LAUREN Carvalho: Sebenarnya, tampaknya ada menjadi masalah dengan mengapung.
>> LUCAS FREITAS: Jenis alasan itu, Anda bisa berpikir, adalah bagaimana dalam biner
Anda dapat mewakili bilangan bulat dengan menempatkan 0 dan 1.
>> LAUREN Carvalho: Itu hal berikutnya.
>> LUCAS FREITAS: OK.
Mengagumkan.
>> LAUREN Carvalho: Just terus pikiran itu.
>> LUCAS FREITAS: OK, saya akan tell you later.
>> LAUREN Carvalho: Sebelum kita mendapatkan apa Lucas hanya mengatakan, operator
didahulukan.
Ini adalah akal sehat.
Kalian telah melakukan hal ini cukup.
Jadi, hanya jika ada sesuatu yang dalam tanda kurung, itu akan terjadi terlebih dahulu.
Ini perkalian diutamakan lebih Selain itu,
pengurangan, hal-hal seperti itu.
Jadi sebenarnya, hanya tidak ada yang ingin ceritakan apa sebenarnya nomor satu
mengevaluasi ke?
>> AUDIENCE: 27.
>> LAUREN Carvalho: 27?
Ya.
>> LUCAS FREITAS: Biarkan saya memberi permen kepada orang-orang.
>> LAUREN Carvalho: Baiklah.
Bagaimana dengan nomor dua?
>> AUDIENCE: 22.
>> LAUREN Carvalho: 22, yeah.
Saya tidak tahu siapa yang punya itu.
Nomor tiga?
>> AUDIENCE: 10.
>> LAUREN Carvalho: 10, ya.
Keren.
Jadi modulo.
Lucas, apakah Anda ingin menjelaskan Modulo?
>> LUCAS FREITAS: Modulo operator ini yang sebenarnya sangat berguna untuk
banyak masalah.
Jika saya melakukan 55 modulo 10, apa yang dilakukannya ini mari kita mengatakan bahwa saya ingin
membagi 55 dengan 10.
Apa yang saya dapatkan?
Rasanya seperti jika saya sebenarnya hanya melakukan pembagian, apa
pertama kali yang saya dapatkan integer?
>> AUDIENCE: 5.
>> LUCAS FREITAS: 5.
Dan kemudian sisanya adalah 5, kan?
Jadi seperti 5 kali 10 ditambah 5.
Pada dasarnya, apa modulo tidak, ia mencoba untuk membagi angka ini dengan yang satu ini, dan
itu melihat apa yang sisanya divisi.
>> LAUREN Carvalho: Jadi itu hanya mengembalikan sisanya.
Jadi nomor satu adalah apa?
5.
Nomor dua?
>> AUDIENCE: 3.
>> LAUREN Carvalho: 3.
Nomor tiga?
0.
Dan empat adalah 1.
Tepat.
>> LUCAS FREITAS: Sederhana, kan?
>> LAUREN Carvalho: Mengapa kita tidak melewatkan ini hanya karena kita tidak benar-benar memiliki
waktu, dan orang-orang tampaknya mengerti.
Jadi, inilah yang Lucas hanya berbicara tentang.
>> LUCAS FREITAS: Alasan lain mengapa saya akan menggunakan ints bukan mengapung adalah
yang mengapung sangat tidak tepat.
Dan mengapa mereka tidak tepat?
David mengatakan bahwa untuk mewakili integer, misalnya, kita menggunakan 0 dan
1, kan?
Dan kemudian Anda pada dasarnya melakukan perkalian, melakukan semua
operasi untuk mengetahui apa desimal nomor Anda memiliki bukan biner.
>> Apa yang terjadi jika saya mencoba untuk menempatkan poin desimal?
Sebenarnya, misalnya, jika saya memiliki jumlah seperti 3,33333?
Rasanya seperti 10 lebih dari 3.
Bagaimana aku akan menyimpan semua 3 adalah bahwa saya memiliki setelah itu?
Ini sangat sulit, kan?
Anda tidak bisa hanya memberitahu komputer, hey, saya punya 3, dan
maka Anda melakukan itu selamanya.
Sebenarnya komputer tidak cukup pintar untuk ini.
>> Jadi pada dasarnya semua komputer Anda tidak adalah bahwa ia mencoba untuk menempatkan banyak digit sebagai
itu bisa sampai ke memori yang Anda miliki.
Jadi mari kita mengatakan bahwa itu akan mengatakan 3,3333, dan hanya itu.
Sehingga tidak dapat benar-benar mengekspresikan tepat apa pelampung itu.
>> LAUREN Carvalho: Kami memiliki jumlah terbatas bit, yang berarti bahwa tidak
setiap angka desimal akan menjadi dapat diwakili tepat.
Dan dalam contoh ini, jika kita mencetak 0,1, kita sekarang printing
out 20 tempat.
>> LUCAS FREITAS: Sama seperti aku mengatakan kalian, Anda bisa memasukkan nomor apapun.
Tetapi jika Anda hanya melakukan dua tempat, Anda akan mendapatkan 0,10, tetapi jika Anda menempatkan 20
tempat, itu akan menunjukkan a bunch dari 's karena ini adalah apa yang dapat Anda masukkan
dalam memori, kan?
>> Tapi di sini, hingga 0, dan kemudian hanya menaruhnya a
sekelompok angka acak.
Ini adalah jenis seperti beberapa -
>> LAUREN Carvalho: Ini karena kita tidak dapat mewakili desimal ini
justru dengan nomor bit yang kita miliki.
>> LUCAS FREITAS: Dan kemudian komputer pada dasarnya adalah
memberikan Anda sejumlah sampah.
Hal ini tidak benar-benar nilai nomor tersebut.
>> AUDIENCE: Ini sedekat itu bisa mendapatkan [Tak terdengar]
menggunakan [Tak terdengar].
>> LAUREN Carvalho: Jadi implikasi ini adalah bahwa katakanlah bahwa alih-alih
menjadi 0.100014, apa pun, bagaimana jika itu adalah 0,0999 -
baik, OK.
Mari kita berpura-pura bahwa jawaban yang sebenarnya ini adalah 0,9999999.
Itu sangat dekat dengan 1, tetapi itu tidak benar 1.
Ini 0,99999.
>> Itu berarti bahwa jika saya mengambil 0.999, dan aku melemparkannya ke int, saya mendapatkan 0.
Saya tidak mendapatkan 1.
>> LUCAS FREITAS: Karena ingat, pengecoran dari float ke int, Anda hanya
mengabaikan semua tempat desimal.
Anda hanya mengabaikan mereka.
Tidak ada hal seperti pembulatan atau mengalir ketika Anda typecast.
Sebenarnya, ada fungsi ini yang melakukan pembulatan, yang sangat
penting, tapi Anda hanya berpikir bahwa ketika Anda melakukan typecasting, itu hanya
akan menghapus segala sesuatu.
Jadi bahkan jika Anda memiliki 0,99999, itu akan hanya memberikan 0 jika Anda typecast
[Tak terdengar] integer.
>> LAUREN Carvalho: Jadi hanya benar-benar menyadari floating point dalam presisi,
terutama ketika Anda mulai menggunakan mengapung di Pset1.
Tapi harus berjalan melalui memperingatkan Anda tentang itu juga.
>> LUCAS FREITAS: sebenarnya Dan itu benar-benar keras, misalnya, jika saya lakukan
mengambang jawaban 1 sama dengan 1,0 lebih 10, dan kemudian mengambang jawaban 2
sama dengan 10,0 lebih 100,0.
Mereka adalah nomor yang sama, kan?
0.1, kan?
1 lebih dari 10 atau 10 lebih dari 100.
Tapi sekarang jika saya mencoba untuk melihat kesetaraan, seperti jika jawaban 1 adalah sama dengan menjawab 2,
mungkin itu tidak benar-benar akan menjadi hal yang sama.
Jadi mengapung adalah jenis seperti itu.
Mereka seperti melakukan kesetaraan.