>> LUCAS Freitas: OK, saya rasa sekarang kita hidup.
Selamat datang ke CS50 Supersection.
Kami Kurang selesa.
Nama saya Lucas Freitas.
Saya salah seorang CS50 Ketua TFS.
Ini adalah Lauren.
>> LAUREN Carvalho: Hi, Saya Lauren.
Saya juga TF Ketua untuk CS50.
>> LUCAS Freitas: Hari ini kita hanya akan untuk memberi gambaran keseluruhan tentang apa yang semua yang anda
lelaki telah belajar pada minggu satu, mudah-mudahan untuk memberikan anda orang baik yang
akal untuk apa yang anda perlu tahu untuk menetapkan satu masalah.
>> Hanya beberapa pengumuman.
Pertama sekali, waktu pejabat.
Waktu pejabat berlaku dari Isnin hingga Khamis di rumah yang berbeza dalam
Annenberg setiap hari.
Mereka sumber yang sangat baik untuk anda lelaki untuk datang dan bertanya soalan, dan
bercakap dengan TFS, dan juga pertukaran idea dengan pelajar-pelajar lain.
Jadi pastikan anda menggunakan sumber yang memihak kepada anda.
>> Perkara yang kedua ialah CS50 Appliance.
Untuk yang terakhir [didengar]
kamu tidak perlu sebenarnya mempunyai perkakas.
Anda hanya melakukan segala-galanya dalam komputer peribadi anda.
Tetapi bagi masalah ini, anda sebenarnya mempunyai mempunyai mesin maya, jadi
pasti untuk memuat turun CS50 Perkakas dan membinanya.
>> Dan perkara yang ketiga pastikan anda mula masalah yang ditetapkan ASAP hanya
kerana ia lebih mudah untuk mencari membantu apabila anda berada di kawasan
bermula dalam seminggu.
Kerana orang cenderung untuk menunggu sehingga kedua terakhir untuk memulakan masalah yang ditetapkan,
dan kemudian anda pergi ke waktu pejabat, dan ada ramai orang.
Di mana jika anda pergi pada hari Isnin, anda akan untuk melihat bahawa anda boleh bercakap dengan TFS
cukup banyak untuk sepanjang malam, dan mereka akan menjadi lebih daripada
gembira untuk membantu anda.
>> LAUREN Carvalho: Bolehkah saya hanya berhenti anda hanya satu kedua?
Telah semua orang mampu untuk memuat turun Appliance CS50?
Ada orang cuba?
>> LUCAS Freitas: Untuk muat turun, oleh cara, anda boleh mendapatkan arahan di
cs50.net/appliance.
>> LAUREN Carvalho: Betul.
Dan ia mengambil sedikit masa untuk kita admin Cuser untuk mendapatkan anda lesen
utama, jadi mendaftar untuk percubaan percuma pertama.
Dengan cara itu anda akan mempunyai ia selama 30 hari, dan kemudian tunggu kunci lesen anda
yang sepatutnya memberikan kepada anda selama setahun.
>> LUCAS Freitas: Pertama sekali, mari kita bercakap sedikit
tentang Appliance CS50.
Yang CS50 Appliance sebenarnya maya mesin yang anda akan
berjalan di komputer anda sendiri yang pada dasarnya berjalan komputer lain
di dalam komputer anda sendiri.
Yang agak sejuk.
Dan sebenarnya ia digunakan di mana-mana.
Orang yang ke berteknologi akan tahu bahawa ini digunakan setiap masa.
anda?
Boleh mempunyai beberapa komputer dalam satu peranti.
>> Mari kita sebenarnya melihat di Peralatan ini.
Apabila anda pergi ke Appliance selepas mendaftar, anda akan perlu untuk
meletakkan nama anda dan log masuk ke Harvard jadi kami boleh mendapatkan anda semua yang berdaftar.
Anda akan melihat dasarnya hanya kertas dinding, dan kemudian Rumah dan Sampah,
dan kemudian ikon ini sedikit.
Ini tiga ikon sebenarnya yang paling perkara penting yang anda boleh mempunyai dalam
Appliance anda.
>> Yang pertama adalah gedit, yang merupakan teks editor, seperti Notepad atau seperti
apa-apa jenis editor teks.
Ia hanya sesuatu yang kita gunakan untuk menulis kod dan kemudian melakukan barangan dengannya.
>> Perkara kedua yang kita ada di sini adalah Chrome.
Jadi, jika anda perlu menggunakan internet dalam Appliance, itu
apa yang boleh anda gunakan.
>> Dan perkara ketiga ialah terminal, yang sebenarnya sangat manis.
Orang biasanya adalah jenis takut terminal kerana ia ini sangat
permohonan kuno di mana anda hanya pada dasarnya segala-galanya dengan menaip
papan kekunci anda.
Tidak ada banyak interaksi dengan tetikus anda.
Tetapi sebenarnya terminal tidak perkara yang sangat baik.
>> Pertama sekali, mari kita hanya mengikut sahaja beberapa arahan yang anda
boleh gunakan dalam terminal.
>> LAUREN Carvalho: Dan berasa bebas untuk berhenti kami jika anda mempunyai sebarang pertanyaan.
>> LUCAS Freitas: Yeah.
Jadi perintah yang pertama yang kita ada terminal adalah ls.
ls pada asasnya bermakna senarai segala-galanya, semua fail-fail dan semua pengarah,
yang saya ada di tempat yang bahawa saya di.
Jadi, jika saya lakukan ls di sini, saya akan melihat bahawa saya mempunyai beberapa direktori.
Saya mempunyai desktop, muat turun, kayu balak itu, dan VHOSTs.
Yang di dalam biru kerana mereka semua direktori.
>> Kemudian anda mempunyai beberapa fail lain.
Anda mempunyai seperti khabar dan hello.c, yang hanya fail, dan mereka dalam
warna yang berbeza.
Jadi ini adalah satu arahan yang sangat penting hanya anda boleh melihat apakah fail
dan direktori yang anda mempunyai dalam direktori yang
anda berada di dalam terminal.
Apabila anda melihat jharvard @ perkakas dan maka simbol kecil di sana,
tilde, yang hanya bermakna bahawa itulah direktori yang anda pada masa ini.
>> LAUREN Carvalho: Jadi menaip ls hampir seperti klik pada folder yang
yang disenaraikan di sana, di dalamnya menunjukkan anda semua kandungan yang yang
dalam folder itu.
>> PENONTON: Adakah teks selepas hello.c ini?
>> LAUREN Carvalho: Oh, anda tidak boleh melihat bahawa, kerana ia biru.
>> LUCAS Freitas: Ia mengatakan log dan VHOSTs.
>> LAUREN Carvalho: Mereka adalah hanya folder lain.
Saya minta maaf, ia benar-benar sukar untuk melihat.
Mungkin jika kita menutup lampu?
Colton, adakah anda mahu mencuba dan mencari suis lampu?
Maaf tentang itu.
Saya tidak berfikir mengenainya.
>> LUCAS Freitas: Tetapi ia pada dasarnya -
yeah, jika anda boleh -
>> LAUREN Carvalho: Zoom di skrin anda.
>> LUCAS Freitas: Saya tidak mempunyai ciri itu.
>> LAUREN Carvalho: [didengar].
OK.
Nah, terdapat hanya banyak semula jadi cahaya di dalam bilik ini juga.
>> LUCAS Freitas: Mari kita menganggap bahawa terdapat dua direktori lain di sana.
>> LAUREN Carvalho: Hanya menanggung dengan kami.
Ini adalah satu-satunya bahagian yang anda akan mencari di terminal.
>> LUCAS Freitas: Arahan seterusnya adalah pada dasarnya mungkin anda mahu untuk menganjurkan
fail anda -
sebagai contoh, semua fail C anda dalam satu direktori-tetapi anda tidak mempunyai
direktori hanya untuk C fail yet.
Anda sebenarnya boleh membuat direktori menggunakan terminal itu juga, yang merupakan
perkara yang sama seperti klik-kanan dan berkata Folder Baru.
Arahan ini membuat direktori, yang adalah mkdir, jadi pada dasarnya "membuat" dan
"Direktori."
>> Dan kemudian anda boleh meletakkan menamakan direktori.
Katakan saya mahu dipanggil, Saya tidak tahu, katakan pset1 Melakukan
ini, saya hanya mencipta direktori.
Mari kita lihat bahawa ia adalah di sana.
Jadi, jika saya lakukan ls, sekarang saya melihat balak, dan maka pset1, dan kemudian VHOSTs.
Jadi saya mempunyai direktori baru di sana.
>> Dan kemudian selepas anda mempunyai direktori baru, mungkin anda mahu untuk mengemudi
ke dalamnya, jadi arahan seterusnya cd ini, yang hanya pada dasarnya bermakna pergi ke
direktori tertentu.
Jadi jika saya mahu pergi ke pset1, Saya hanya boleh lakukan cd pset1.
>> LAUREN Carvalho: cd bermaksud perubahan direktori, [didengar] dapat
ingat bahawa.
>> LUCAS Freitas: Dan kini anda melihat bahawa bukan hanya mempunyai jharvard
perkakas, saya telah jharvard perkakas, dan kemudian pset1, kerana ia menunjukkan
saya di mana saya di komputer ini.
>> Sekarang, jika saya mahu kembali kepada Direktori itu sebelum satu ini, saya
boleh melakukan dot dot cd, yang hanya bermakna pergi ke direktori yang saya sebelum ini,
seperti ibu bapa ini direktori, pada asasnya.
Dan sekarang saya melihat bahawa saya kembali ke jharvard.
>> Perkara seterusnya yang saya boleh melakukannya adalah rm, yang mengeluarkan fail.
Sebagai contoh, mari kita pertama melakukan ls untuk melihat apa yang saya ada di sini.
Saya khabar dan hello.c.
Mari kita mengatakan bahawa saya mahu untuk menghapuskan mereka.
Yang boleh saya lakukan rm khabar.
Ia akan mengatakan "mengeluarkan fail biasa hello? "Dan saya berkata" ya. "Dan kini jika saya
melakukan ls, saya melihat bahawa itu tidak ada lagi.
>> Jika saya cuba menggunakan rm untuk direktori, walaupun, ia tidak akan
untuk memberitahu anda berbuat apa-apa.
Ia akan berkata, hey, anda tidak boleh mengeluarkan direktori.
Oleh itu, kita mempunyai ini lain datang dipanggil rmdir, yang hanya pada dasarnya bermakna
pindahkan direktori.
Saya boleh, sebagai contoh, keluarkan pset1.
Dan jika saya lakukan ls, saya tidak mempunyai lagi.
>> Sebarang pertanyaan tentang perkara ini?
Tidak?
Yeah?
>> PENONTON: Adakah penting yang anda meninggalkan ruang selepas - setiap kali anda
mula menaip sesuatu dalam?
>> LUCAS Freitas: Yeah.
Jika saya suka cd dan direktori, Saya perlu meletakkan ruang.
Apa ruang yang anda bercakap tentang?
>> LAUREN Carvalho: Ruang di antara cd dan [didengar].
>> LUCAS Freitas: Ya, anda perlu meletakkan ruang kerana cd adalah
perintah, dan kemudian tali berikutnya yang Jenis yang anda pada dasarnya direktori.
Jadi ia seperti pertengkaran.
Yeah?
>> PENONTON: Apabila anda senarai, semua adalah direktori yang berbeza, bukan?
>> LUCAS Freitas: Ya, mereka adalah dalam direktori.
>> PENONTON: Apakah perbezaan antara direktori?
>> LUCAS Freitas: Mereka hanya folder yang berlainan.
Direktori adalah folder dalam komputer anda.
>> PENONTON: Buka folder.
>> LUCAS Freitas: Ya, ia hanya folder terbuka.
>> LAUREN Carvalho: Di sini, orang-orang yang yang berada dalam biru adalah sebenar
direktori yang anda boleh masuk ke dalam dan kemudian melihat sekumpulan perkara-perkara yang
dalam itu, yang malang kerana anda tidak boleh benar-benar membaca
yang warna biru.
Dan orang-orang yang putih hanya fail yang berada dalam direktori semasa.
>> LUCAS Freitas: Jadi direktori adalah folder.
Orang-orang yang lain adalah fail.
>> PENONTON: Apakah arahan untuk menetapkan semula atau untuk membersihkan ia?
LUCAS Freitas: Untuk mengosongkan?
LAUREN Carvalho: Untuk mengosongkan?
LUCAS Freitas: Saya rasa ia "jelas." Yeah.
Jadi anda hanya perlu menaip jelas jika skrin anda terlalu berantakan.
Apa-apa soalan lain?
Dan anda akan belajar sekumpulan lain arahan hanya secara semula jadi semasa
semester kerana mereka sangat berguna.
>> Jadi sekarang mari kita bercakap tentang menyusun.
Kita bercakap tentang kod pseudo dan kod sumber dan kod objek.
Dan ada banyak kod, dan mungkin anda semua keliru tentang itu.
Mari kita bercakap sedikit tentang apa yang yang berlaku apabila anda menulis program,
dan anda menyusun, dan ia menjadi fail boleh laku.
Mereka semua kata-kata yang anda semua mungkin mendengar, dan mungkin anda tidak
benar-benar pasti apa yang sedang berlaku.
>> Katakan, sebagai contoh, yang saya mahu menulis satu program yang berkata "hello." Yang
perkara pertama yang datang dalam fikiran anda anda jenis cuba untuk memikirkan bagaimana anda
akan berbuat demikian dalam fikiran anda, dan anda mungkin terfikir dalam Bahasa Inggeris atau
beberapa bahasa lain, seperti semula jadi bahasa, mungkin.
Dan kemudian anda berfikir, baik, jika saya mahu, sebagai contoh, menulis program yang
kata "hello", saya akan memulakan program, Saya akan mencetak hello, dan kemudian saya akan
berhenti program ini.
Ini adalah kod pseudo.
Ini hanya pada dasarnya anda cuba untuk datang dengan turutan yang
yang anda akan lakukan untuk menjadi dapat menulis program.
>> Kemudian anda mempunyai kod sumber, dan kod sumber tidak perlu
khusus dalam C. Kami bercakap mengenai kod sumber dalam C kerana itulah
bahasa yang kita sedang belajar, tetapi kursus kod boleh agak banyak mana-mana
bahasa pengaturcaraan yang anda ada.
Kemudian pada semester, anda akan untuk belajar bahasa lain.
Itulah juga kod sumber.
>> Sebagai contoh, di sini, ini adalah sumber saya kod, dan kemudian saya termasuk
perpustakaan, dan kemudian saya mula utama, dan kemudian saya mencetak.
Dan Laura akan bercakap sedikit sedikit tentang semua ini.
Jadi ini adalah kod sumber.
>> Dan apa yang kod objek?
Objek adalah sekumpulan sifar dan orang-orang yang, pada asasnya.
Apa yang berlaku ialah anda pada mulanya mempunyai kod pseudo, yang semua dalam bahasa Inggeris.
Dan saya maksudkan, anda memahaminya.
Mungkin rakan-rakan anda memahami ia, dan kebanyakan orang akan
memahami idea tersebut.
Tetapi komputer adalah benar-benar dalam keadaan sihat, dan mereka tidak memahami bahasa Inggeris, jadi anda
telah menterjemahkan ke dalam sesuatu, biasanya diterjemahkan ke dalam beberapa
bahasa pengaturcaraan.
>> Dan anda boleh memikirkan pengaturcaraan bahasa sebagai jenis seperti bahasa
anda memberitahu bagaimana komputer anda untuk bercakap dan memahami.
Anda pada dasarnya menulis sesuatu di bahasa yang kedua-dua anda dan anda
komputer memahami.
Itulah kod sumber.
Jadi akan bentuk pseudokod kepada sumber kod, ia terpulang kepada anda.
Ia pada dasarnya anda melakukan program anda.
>> Tetapi masalahnya ialah bahawa komputer tidak walaupun
memahami bahasa pengaturcaraan.
Ia tidak memahami kod sumber sama sekali.
Ia sebenarnya hanya memahami sifar dan satu.
Oleh itu, kita mempunyai perkara yang sangat ajaib ini dipanggil pengkompil, yang pada asasnya adalah
akan mendapatkan sumber yang dipanggil bahawa anda menulis dalam bahasa kedua-dua anda
dan komputer anda bercakap, dan kini anda akan mengubah bahawa dalam
sifar dan satu.
Jadi, pada asasnya apa yang pengkompil tidak adalah ia mendapat kod sumber, dalam kes ini C,
ia akan menjadikannya besar sifar dan orang-orang yang komputer
memahami dan boleh membuat fail boleh laku daripada itu.
>> Adakah ini masuk akal?
Anda hanya boleh berfikir pengkompil sebagai beberapa jenis penterjemah yang
membantu anda menjelaskan kepada komputer apa yang ia sepatutnya lakukan.
>> Tetapi bagaimana saya menyusun.
Mari kita kembali kepada Appliance, dan mari kita mengatakan bahawa saya melakukan program itu.
Pertama saya akan mewujudkan direktori di sini, dan saya akan memanggilnya
"Amalan." Sekarang saya akan untuk mengemudi ke direktori, jadi amalan cd.
Kini saya dalam amalan.
>> Sekarang saya ingin memulakan gedit, jadi bagaimana saya melakukannya?
Saya sama ada boleh klik di sini, atau saya boleh hanya literal menaip "gedit," dan ia akan
untuk membuka untuk saya.
>> Sekarang saya akan menaip program saya, jadi betul-betul apa yang saya tulis dalam slaid.
Saya mengisytiharkan perpustakaan.
Saya melakukan int utama, tidak sah.
Dan kini saya lakukan printf, hello.
Sekarang saya akan untuk menyelamatkan ini.
Izinkan saya meletakkan ke dalam amalan, dan Saya akan memanggil hello.c ini.
Jadi kini ia disimpan.
>> Jika saya ingin menyusun, saya sebenarnya boleh melakukannya dalam dua tempat yang berbeza.
Saya sama ada boleh melakukannya dalam tetingkap terminal, jadi satu ini besar, atau anda boleh
menggunakan gedit yang benar-benar mempunyai tetingkap terminal di sini.
Jadi, anda boleh sangat mudah hanya melakukan kod anda, dan kemudian anda boleh hanya menaip
apa sahaja di sini, dan cuba untuk menyusun ia.
>> Jadi bagaimana saya menyusun kod?
Cara yang paling mudah yang kita ada adalah dengan menggunakan membuat, iaitu fungsi yang
pada dasarnya akan menyusun kod anda.
Anda hanya perlu berkata membuat hello, jadi "Membuat" dan nama program ini.
>> Oops.
Ini adalah janggal.
>> LAUREN Carvalho: Bolehkah anda [didengar]?
>> LUCAS Freitas: Maaf.
Saya tidak menyimpannya dalam direktori betul.
Datang untuk amalan, dan kini simpan sebagai hello.c.
Saya minta maaf.
Kini ia disimpan.
>> Biar saya hanya melakukan ls dan memastikan bahawa ia di sini.
OK, sekarang ia di sini.
Jadi sekarang jika saya lakukan membuat hello, ia memuntahkannya yang banyak barangan, tetapi kemudian ia hanya memberi
saya satu lagi talian bagi terminal, yang bermakna bahawa ia telah berjaya.
Jadi sekarang jika saya melakukan sesuatu ls lagi, saya sebenarnya melihat fail ini dalam hijau, yang merupakan
fail boleh laku.
>> Dan kemudian jika saya ingin menjalankannya, apa yang Saya perlu lakukan adalah slash dot khabar.
Ia akan bertanya khabar di sini, jadi ia betul-betul apa yang saya bertanya kepada.
>> Ada satu lagi cara menyusun, yang menggunakan bunyi berdering.
Dentang hanya pengkompil yang kita ada, dan ia sedikit lebih lantung untuk
menyusun ia.
Tetapi ia hanya kerja-kerja juga.
Jadi, jika saya lakukan dilafaz, dan kemudian-o, dan kemudian nama yang saya mahu memberi
fail boleh laku, jadi katakan "Hello." Dan kemudian fail yang saya mahu
untuk menyusun, hello.c.
Ia juga akan menyusun.
Dan anda mempunyai fail di sini, dan Saya hanya boleh melaksanakannya juga.
Jadi kedua-dua daripada mereka bekerja.
>> Adakah ini masuk akal?
Apa-apa soalan?
>> PENONTON: Bolehkah anda zum dengan sedikit?
>> LUCAS Freitas: Maaf?
>> PENONTON: Zum masuk?
>> LAUREN Carvalho: Saya rasa anda hanya boleh perintah ditambah.
>> LUCAS Freitas: Suruhlah apa?
>> LAUREN Carvalho: Perintah ditambah.
>> LUCAS Freitas: No
>> LAUREN Carvalho: Oh, itu bukan akan bekerja kerana -
ia adalah kerana kita menetapkan resolusi yang untuk perkara ini.
>> LUCAS Freitas: Saya tidak rasa kita boleh zum masuk
Ya, kita tidak boleh zoom.
Adakah anda mempunyai soalan lain?
Maaf.
>> PENONTON: Bolehkah anda mengulangi bunyi berdering?
>> LUCAS Freitas: dentang ini?
Dentang adalah perkara yang sama seperti membuat, tetapi perbezaan adalah bahawa pertama yang saya akan
untuk menulis dentang, yang merupakan perintah, kemudian saya akan melakukan -0, semua, yang merupakan
hanya apa yang kita akan belajar kemudian sebagai bendera.
Jadi hanya berfikir bahawa anda sentiasa perlu meletakkan-o.
>> Dan kemudian pertama, anda akan meletakkan nama fail boleh laku,
pada dasarnya fail yang anda akan mewujudkan.
Jadi saya boleh berkata, sebagai contoh, hello2 dan maka fail yang saya mahu menyusun,
yang merupakan. c fail.
Jadi, itu hello.c.
Adakah ini masuk akal?
>> PENONTON: Hello apa?
Apa tu?
>> LUCAS Freitas: Hello.c.
Dan jika saya menyusun, dan jika Saya ls, saya juga mempunyai
hello2 bahawa saya hanya disusun.
Dan jika saya cuba untuk menjalankannya, ia akan melakukan perkara yang sama seperti hello,
hanya mencetak khabar.
>> PENONTON: Bagaimana datang untuk pilihan membuat anda boleh meletakkan hello.c selepas?
>> LUCAS Freitas: Dalam membuat, anda tidak perlu meletakkan. c.
Dalam membuat, anda hanya mengatakan menamakan program tersebut.
Anda tidak perlu untuk mengatakan. C.
Tetapi bagi dentang, anda harus.
>> PENONTON: Dengan dentang adakah anda juga perlu menambah [didengar]
>> LAUREN Carvalho: Yeah.
Jadi, anda juga perlu perpustakaan.
>> LUCAS Freitas: Ya, itu sesuatu kita akan gunakan kemudian.
Yang dinamakan menghubungkan, dan saya fikir kita akan bercakap mengenainya kemudian.
Satu lagi soalan?
>> PENONTON: Adakah anda meletakkan yang dilafaz dot slash?
>> LUCAS Freitas: No
The slash dot hanya untuk membuka fail boleh laku.
Jadi dentang, anda hanya menulis "dentang," dan maka jika anda mahu untuk membuka
fail boleh laku yang anda hanya disusun, maka anda dot
slash dan nama.
Adakah ini masuk akal?
>> PENONTON: Jika anda untuk perubahan hanya [Didengar] untuk dunia hello, adakah anda
perlu susun semula ia?
>> LUCAS Freitas: Yeah.
jika saya ingin berkata, sebagai contoh, "hello di sana, "Saya hanya boleh menyimpan sekarang, dan saya
hanya menyusun semula.
Jadi biarlah saya melakukan make a hello.
Dan jika saya lakukan hello, ia akan berkata "hello di sana." Masuk akal?
Apa-apa soalan lain?
>> PENONTON: Adakah anda perlu termasuk standard I / O untuk menyelaraskan kerja-kerja?
>> LUCAS Freitas: Yeah.
I standard / O pada dasarnya perpustakaan yang mempunyai
pelaksanaan bagi printf.
Supaya perkara yang betul pada atas termasuk stdio.
Yang termasuk perpustakaan yang pada dasarnya mempunyai sekumpulan yang berbeza
alat-alat yang boleh anda gunakan.
satu?
Daripada mereka adalah printf iaitu fungsi yang yang pada dasarnya cetakan
mesej kepada skrin.
>> Apa-apa soalan lain?
Tidak?
OK.
Jadi sekarang mari kita bercakap tentang -
>> LAUREN Carvalho: Mari kita pergi ke panduan gaya.
Adakah anda mahu hanya menemuinya di sini?
>> LUCAS Freitas: Jadi, kita akan bercakap tentang gaya.
>> LAUREN Carvalho: Oh, David tidak selesai.
OK.
Mengapa tidak kita kembali kepada gaya di akhir sangat?
Ini sebenarnya telah dikemaskini seperti yang kita bercakap.
>> LUCAS Freitas: Yeah.
Biarlah jalan untuk David untuk menyelesaikan itu.
>> LAUREN Carvalho: Bolehkah kita beralih sebenarnya?
>> Jadi saya berharap semua orang menjadi menikmati Scratch.
Malangnya, ia adalah masa untuk beralih daripada ini -
malangnya ia adalah masa untuk bergerak daripada blok-blok pengaturcaraan cantik
ke C. Tetapi bernasib baik, semua pengaturcaraan membina bahawa anda telah
telah bekerja dengan dalam Scratch adalah secara langsung diterjemahkan kepada C, dan kami
akan mula belajar tentang sebahagian daripada mereka sekarang.
Mari kita bercakap pertama mengenai keadaan dalam ungkapan Boolean.
>> Ini sedang berjalan di rizab kuasa bateri.
>> LUCAS Freitas: Bagaimana yang tidak berfungsi?
OK.
Anda pergi ke sana, saya akan mendapatkan -
>> LAUREN Carvalho: Jadi syarat-syarat yang penting kerana ia membolehkan kita
memperkenalkan logik ke dalam program kami.
Berikut adalah satu contoh keadaan yang dalam program C.
Mari kita perhatikan bagaimana ini -
Jadi keadaan ini blok di sini, ini Penyataan printf tidak akan melaksanakan
melainkan keadaan dalam kurungan, n lebih besar daripada 0,
dinilai sebagai benar.
>> Sekarang, semua syarat dalam f kenyataan adalah ungkapan Boolean,
yang bermaksud bahawa terdapat hanya dua pilihan.
Mereka sama ada boleh menilai untuk benar, atau mereka boleh menilai untuk palsu.
Jadi di sini, jadi ini masuk akal, bukan? n lebih besar daripada 0, bermakna ia adalah satu yang positif
nombor, yang bermakna bahawa ia akan mencetak keluar "anda pilih nombor positif."
>> Terdapat banyak ungkapan Boolean yang boleh membentuk keadaan dengan
Penyataan init.
Kami mempunyai kurang daripada.
Ini adalah kurang daripada atau sama dengan.
Ini hanyalah lucu [didengar].
Jika anda ingin printf yang berlaku jika ia lebih besar daripada atau sama dengan 0, maka
anda akan memilih ini.
Jadi sama hanya Melampirkan betul selepas lebih besar daripada tanda.
>> Sama sama, yang berbeza daripada hanya satu tanda yang sama, sama sama
sebenarnya bermaksud bahawa apa sahaja mengenai sebelah kiri ini adalah sama seperti
apa yang di sebelah kanan ini mana satu tanda yang sama adalah apa?
Apakah hanya satu tanda sama?
Tugasan.
>> LUCAS Freitas: Yang mengatakan bahawa?
Adakah itu gula-gula?
Oh, tidak.
Maaf.
Anda berdua mendapat gula-gula.
Oh, OK!
Tiga orang mendapatkan gula-gula!
>> LAUREN Carvalho: Jadi yang satu ini di sini adalah pengendali bang sebelumnya
tanda yang sama, supaya tidak sama dengan.
Jadi, jika ini adalah dalam keadaan saya, badan keadaan akan
melaksanakan hanya jika apa sahaja dalam kiri tidak sama seperti
apa yang di sebelah kanan.
>> Saya juga boleh mempunyai hanya tanda seru.
Sebenarnya kita akan melihat dalam ciri yang slaid bagaimana ini akan digunakan.
>> LUCAS Freitas: Mana-mana soalan?
Tidak?
>> LAUREN Carvalho: Kita boleh menggabungkan ini Ungkapan Boolean untuk membina lebih
kenyataan bersyarat yang rumit.
Jadi di sini, jika apa sahaja yang di sebelah kiri sebelah satu bar berganda atau
apa sahaja yang di sebelah kanan bar berganda menilai untuk benar,
maka kita akan mencetak tidak sah.
Dan kemudian turun di sini, jika apa sahaja ini di sebelah kiri kedua-dua
ampersands dan apa jua yang di sebelah kanan sebelah kedua-dua ampersands
dinilai sebagai benar, maka kami akan mencetak sah.
Bar berganda dipanggil logik ATAU pengendali ampersands berganda adalah
dipanggil pengendali logik DAN.
Ya?
>> PENONTON: Adakah mereka yang hanya kes yang lebih rendah l's?
>> LAUREN Carvalho: No
Mereka sebenarnya -
anda tahu tindak balas hebat, seperti atas utama Kembali anda?
Adakah anda melihat bahawa?
>> LUCAS Freitas: Ini sebenarnya bar.
>> LAUREN Carvalho: Ini sebenarnya hanya dua bar.
>> PENONTON: Bolehkah anda menggunakan sama sama bagi tali?
>> LUCAS Freitas: No
Kita akan belajar kemudian sesuatu tentang itu.
>> LAUREN Carvalho: Ada fungsi yang boleh anda gunakan.
Tetapi anda tidak perlu bimbang bahawa hanya lagi.
>> Bagaimana jika saya memberikan program ini nombor 5?
Apa yang akan mencetak?
>> PENONTON: [didengar]
sah.
>> LAUREN Carvalho: Sah?
Yeah.
Saya tidak tahu yang mendapat itu.
>> [Ketawa]
>> LAUREN Carvalho: Itulah jenis menakutkan [didengar].
>> PENONTON: Jadi dua kali dan, yang hanya bermakna dan?
>> LAUREN Carvalho: Yeah.
Jadi nombor 5 adalah kedua-dua yang lebih besar daripada 0 dan kurang daripada 100.
>> PENONTON: Mengapa ia akan menjadi salah satu?
>> LAUREN Carvalho: Satu Ampersand adalah sebenarnya sesuatu yang berbeza, dan ia
pengendali bitwise, yang anda akan pelajari nanti.
Tetapi ia adalah sesuatu yang benar-benar bekerja dengan bit nombor yang diberikan.
>> LUCAS Freitas: Cuba fikirkan mereka tidak perlu bimbang tentang ia sekarang.
>> LAUREN Carvalho: Saya rasa ia mungkin datang minggu depan.
>> LUCAS Freitas: Mana-mana soalan-soalan lain?
Tidak?
>> LAUREN Carvalho: Oleh itu, kita telah melihat bahawa ia menghalang boleh berdiri sendiri, tetapi ia boleh
juga dipasangkan dengan dan lain blok.
Jadi dalam kes ini, jika n adalah lebih besar daripada 0, kita akan mencetak "Anda
mengambil nombor positif. "lagi, bermakna jika ia adalah 0 atau jika ia kurang
daripada 0, kita akan mencetak, "Anda mengambil nombor negatif."
>> Perkara yang menarik di sini ialah ini adalah eksklusif antara satu sama lain.
Ada pernah akan menjadi kes di mana ini dan ini
kedua-duanya boleh mencetak.
>> Saya pasti anda bekerja dengan jika / lagi mengurung Awal, supaya ini harus
agak biasa.
Ya?
>> PENONTON: Adakah kita memerlukan ruang antara int n sama GetInt maka ruang dalam
jika kenyataan?
Like kita menggunakan garis [didengar]
>> LAUREN Carvalho: Oh, ruang di sini?
>> PENONTON: Seperti itu, tetapi anda dua kali ganda ruang.
Tidak, naik.
Naik.
>> LUCAS Freitas: Hanya baris?
>> PENONTON: Yeah.
>> LUCAS Freitas: Hanya baris kosong?
>> PENONTON: Yeah.
>> LAUREN Carvalho: Talian Kosong?
No
Itu hanya satu perkara yang gaya.
>> LUCAS Freitas: Ia hanya seperti kadang-kadang anda hanya melangkau beberapa garis supaya
bahawa kod tidak kelihatan seperti blok besar teks.
>> LAUREN Carvalho: Saya rasa apa yang berlaku adalah bahawa kita mempunyai komen di sini, tetapi saya
mengambil keluar supaya anda semua akan mempunyai untuk berfikir tentang kod dan bukan
daripada sekadar membaca komen saya.
Secara umum, jarak tidak akan benar-benar menjejaskan cara program anda berjalan.
Ia lebih daripada satu perkara yang gaya.
Dan apabila kita mempunyai panduan gaya terkini dan bersedia untuk pergi pada akhir
supersection, kita akan bercakap tentang itu lagi.
>> Ada sesuatu yang salah dengan program ini, bukan?
Kerana 0 tidak benar-benar nombor negatif.
Jadi mari kita lihat jika kita boleh menetapkan bahawa.
>> Anda mungkin boleh bayangkan dengan ini mengatakan, bukan?
Jika n lebih besar daripada 0, kita cetak, "Anda mengambil nombor positif. "Kemudian lagi
jika n kurang daripada 0, "Anda mengambil satu nombor negatif. "lagi," Anda dipilih
0. "
>> Sekarang perkara yang menarik ialah ini boleh pergi selama-lamanya.
Anda boleh mempunyai jika blok, lain jika blok, satu lagi lagi jika blok, lain jika,
lain jika, lain jika, lagi, pada dasarnya selagi anda mahu.
Dan apabila dibina seperti ini, semua ini akan menjadi
eksklusif antara satu sama lain.
Ya?
>> PENONTON: Jadi mengapa tidak boleh anda hanya menggunakan lain jika bukan [didengar]?
>> LAUREN Carvalho: Dalam kes ini, ya saya boleh menggunakan lain jika, dan ia akan menjadi
benar-benar halus kerana keadaan diri mereka adalah
eksklusif antara satu sama lain.
Tetapi jika keadaan tidak eksklusif antara satu sama lain, akan ini
memaksa mereka untuk tidak pernah kedua-dua menilai, jika yang masuk akal.
>> PENONTON: Dalam kes itu, boleh kita sarang kedua jika pada pertama jika?
>> LAUREN Carvalho: Jika - apa yang kamu maksudkan?
>> PENONTON: Jika dua syarat tidak saling eksklusif?
>> LAUREN Carvalho: Jika syarat-syarat tidak saling eksklusif?
Tetapi anda ingin hanya satu daripada mereka untuk berjalan?
>> PENONTON: Anda mahu hanya jika bukan yang lain.
>> LAUREN Carvalho: Yeah.
Terdapat sentiasa akan menjadi banyak satu cara yang boleh anda lakukan ini.
Anda boleh pasti sarang mereka.
Dan anda akan lihat dalam slaid masa depan yang anda boleh mempunyai beberapa IFS, hanya satu
demi satu.
Tetapi ini adalah satu cara logik menganjurkan aliran program anda.
>> LUCAS Freitas: Dan ada satu lagi benda, adalah bahawa anda bertanya tentang meletakkan
jika dan kemudian yang lain jika.
Yang akan bekerja dengan sempurna, tetapi ia tidak baik reka bentuk kerana pada dasarnya jika anda
tanda yang pertama jika, dan anda dapati dalam jumlah yang lebih besar daripada 0, anda
hanya boleh menyelesaikan program ini.
Anda tidak perlu untuk memeriksa jika ia kurang daripada 0, betul?
>> Tetapi jika anda jika sekiranya, ia akan memeriksa kedua-duanya, manakala jika saya lakukan sekiranya lain merupakan
ia akan memeriksa jika ia lebih besar daripada 0.
Jika ia, ia tidak akan kelihatan lebih di lain-lain talian kod.
Jadi anda pada dasarnya menyemak ia seperti dua kali jika tidak perlu, jadi itu sebabnya kami
dilakukan jika lagi jika.
Apa-apa soalan lain?
>> PENONTON: Jadi fungsi daripada lain jika adalah sama seperti
jika ia hanya jika?
>> LAUREN Carvalho: No
Anda sebenarnya akan melihat di depan saya slaid contoh di mana ia boleh
berbeza.
Dalam kes ini, ia hampir sama.
>> Jadi di sini, kita mempunyai contoh berganda jika kenyataan, dan
fungsi tidak sama seolah-olah saya baru sahaja berkata jika
lagi, jika yang lain, jika lain.
Mari kita berfikir tentang apa yang akan mencetak jika saya masukkan nombor 95
ke dalam program ini.
>> PENONTON: [didengar]
>> LAUREN Carvalho: Dan kemudian?
>> PENONTON: [didengar]
>> LAUREN Carvalho: Yeah.
Jadi dalam kes ini, syarat-syarat ini tidak saling eksklusif antara satu sama lain.
Dan kerana tiada apa-apa berhenti keadaan ini dari menilai jika ini
satu sudah mempunyai, mereka hanya semua akan mencetak.
Jadi bagaimana saya boleh menetapkan ini?
>> PENONTON: IFS yang berlainan?
>> LAUREN Carvalho: Anda boleh menggunakan IFS lain.
Saya boleh mengubah susunan ini, bukan?
Jika saya satu ini pertama?
Well, sebenarnya, tidak.
Yang tidak akan bekerja untuk 95.
>> LUCAS Freitas: Tidak, hanya IFS lain.
>> IFS lagi ini: LAUREN Carvalho akan tetap ini.
Adakah itu membersihkan kekeliruan antara IFS dan lain IFS?
>> PENONTON: Saya hanya mahu bertanya kepada anda, jika anda tidak menggunakan lagi jika, ia akan berhenti?
>> LAUREN Carvalho: Betul.
Jadi hanya yang pertama ini.
Jika saya memasukkan nombor 95, hanya ini akan dicetak, dan ia tidak pernah
akan berkembang ke lain itu.
>> LUCAS Freitas: Hanya jenis memikirkan ia seolah-olah ini berlaku, melakukan ini.
Lagi ialah seperti jika tidak, cek untuk ini, dan kemudian melakukannya.
Jadi seperti mereka semua saling eksklusif.
Anda tidak boleh masuk ke dalam dua ke atas.
>> PENONTON: Bolehkah anda menggunakan logik DAN untuk situasi itu?
>> LAUREN Carvalho: Yeah.
Itulah cara lain yang kita boleh telah tetap masalah ini.
Kami boleh ditakrifkan antara, bukan?
Jadi saya boleh berkata jika n adalah lebih besar dari 90 dan kurang daripada -
baik, saya rasa yang satu ini tidak benar-benar perkara itu, tetapi di sini saya boleh berkata jika
n lebih besar daripada 80 dan kurang daripada 90.
Lebih besar daripada 70, kurang daripada 80.
Itu juga telah bekerja.
>> [Ketawa]
>> LUCAS Freitas: Dia takut.
>> LAUREN Carvalho: Jangan takut.
>> LUCAS Freitas: Ia bukan bahawa ia akan menjadi salah.
Cuma ia tidak perlu lantung.
Seperti dalam bidang sains komputer, seseorang itu perlu menjadi semudah mungkin selagi
anda mempunyai fungsi.
Adakah anda mahu gula-gula?
>> PENONTON: Jangan memerlukannya.
>> LAUREN Carvalho: Anda menakut-nakutkan semua orang, Lucas.
>> LUCAS Freitas: Maaf.
>> LAUREN Carvalho: David juga menyebut ini menukar kenyataan di dalam kelas.
Pada asasnya apa yang berlaku adalah suis Penyataan mengambil pembolehubah.
Dalam kes ini, kami mengambil integer.
>> Jika integer ialah 1, kita akan mencetak, "Anda mengambil yang kecil
nombor. "Jika integer ialah 1," Anda mengambil beberapa sederhana. "Jika
integer ialah 3, "Anda mengambil yang tinggi nombor. "Dan saya juga mempunyai kes lalai
turun di sini, tetapi ia tidak menunjukkan up, yang terlalu buruk.
>> Pada asasnya, ini hanya sintaks lain.
Kita boleh melaksanakan ini tepat Perkara yang sama dengan jika dan lain jika
kenyataan.
Tetapi apabila terdapat banyak berbeza syarat dan banyak yang berbeza
variasi kepada apa yang anda mahu lakukan untuk setiap input, ini adalah pilihan.
Jadi ia hanya sintaks baik untuk mengetahui.
Ya?
>> PENONTON: Kenapa ada tidak garis sendeng terbalik yang n dalam yang pertama?
>> LAUREN Carvalho: Untuk di sana?
Tidak ada garis sendeng terbalik n di sana kerana GetInt -
jika anda cuba ini, ia akan memberi anda segera ini.
Berikan saya integer antara 1 dan 3.
Dan jika saya meletakkan tindak balas hebat n, ia akan membawa saya ke baris seterusnya, tetapi saya hanya
mahu mereka untuk menaip integer selepas kolon.
Anda boleh meletakkan tindak balas hebat n.
Ia bukan satu masalah besar.
Yeah?
>> PENONTON: Untuk kod ini, adakah ini kes satu, ialah kerana
ia kes pertama?
Kerana -
>> LAUREN Carvalho: Tidak, tidak, tidak.
Jadi ini memberi saya integer antara 1 dan 3.
Jika n ialah 1, saya mencetak ini.
Jika saya meminta surat, saya boleh berkata memberi saya surat antara A
dan C. Kemudian ini akan menjadi kes A.
>> PENONTON: [didengar].
Kes itu akan hanya [didengar]
>> LAUREN Carvalho: Ya, betul.
Yeah?
>> PENONTON: Bagaimana jika anda mahu mempunyai lebih daripada ekspresi perhubungan?
Jadi, daripada berkata n bersamaan dengan 1, [didengar]
n lebih besar daripada 1 dalam kes pertama?
>> LAUREN Carvalho: Sebenarnya, jika saya tidak mentakrifkan beberapa kes-kes ini, akan ini
akan membawa ke bawah.
Jadi sebenarnya, mungkin ini bukan apa yang anda meminta.
>> LUCAS Freitas: Saya rasa dia bertanya jika kes itu n lebih besar daripada 0, kes
kurang daripada 0.
>> LAUREN Carvalho: Mungkin suis Penyataan tidak benar-benar apa yang anda mahu
untuk digunakan dalam kes itu.
>> LUCAS Freitas: Kenyataan suis hanya untuk nilai, jadi anda memeriksa daripada
nilai adalah seperti ini atau itu.
Jadi anda tidak boleh sebenarnya meletakkan syarat.
>> PENONTON: Bagaimana jika orang yang jenis dengan [didengar]?
>> LAUREN Carvalho: Itu akan menjadi kes lalai saya, yang malangnya
anda tidak dapat melihat.
>> LUCAS Freitas: [didengar] membuat mereka melihat.
>> LAUREN Carvalho: Sebenarnya, anda tahu apa?
Mari kita pergi untuk mengkaji 50, dan saya akan hanya zoom ke slaid kajian
50, kerana ini adalah hanya menjengkelkan.
Jadi biarlah saya sebenarnya pergi kepada keadaan.
Ini hanya akan mengambil sedikit masa.
>> Baiklah.
Jadi, saya minta maaf.
Sekurang-kurangnya sekarang kita akan dapat melihat segala-galanya tanpa ia memotong.
Baiklah.
>> Jadi, jika mereka dimasukkan ke dalam 10, kita akan lalai di sini untuk kes lalai saya, dan saya
hanya akan mencetak tidak sah kerana saya meminta mereka untuk memasuki integer
antara 1 dan 3.
Apa-apa soalan lain?
Yeah?
>> PENONTON: Katakan untuk kes satu, kes tiga, katakan anda mahu ia menjadi semua
Perkara yang sama, jadi anda memilih sebilangan itu bukan beberapa sederhana.
Dalam kes itu, ia akan menjadi berlebihan?
Adakah anda hanya menukar teks dalam kedua-dua daripada mereka, atau akan ada beberapa
lebihan?
Adakah sebarang jalan untuk menggabungkan [Didengar]?
>> LAUREN Carvalho: Terdapat pelbagai cara untuk menggabungkan mereka, tetapi saya percaya anda boleh
hanya orang-orang yang menggabungkan bersebelahan.
Jadi jika saya tidak menentukan apa-apa untuk kes dua, akan ini
terpakai bagi kedua-dua kes.
Oh, jika saya tidak meletakkan apa-apa untuk kes satu, ini akan terpakai bagi kedua-dua
kes satu dan dua.
Jika yang masuk akal.
>> PENONTON: Bolehkah anda mengulangi itu?
>> LUCAS Freitas: OK.
Jika anda lakukan pada dasarnya, seperti, anda mempunyai perkara yang sama, tetapi anda tidak meletakkan
apa-apa di sini, anda akan sama ada untuk kes satu atau dua kes, melakukan ini.
Betul?
Dan rehat ini bermakna jika anda mendapat ke dalam kes ini, biarkan.
Jadi itulah yang brek bermakna.
Jadi, jika saya hanya melakukan ini, anda melihat, ia kes satu, dan anda hanya akan melakukan ini.
Jika ia adalah kes dua, ia juga akan hanya datang ke sini dan melakukannya.
>> PENONTON: Tetapi anda boleh melakukannya?
Jika ada sesuatu untuk kes dua [didengar]
>> LAUREN Carvalho: Saya tidak percaya anda boleh berbuat demikian.
Saya tidak fikir anda boleh melangkau sekitar.
Bolehkah anda berbuat demikian, Rob?
Saya tidak fikir begitu.
>> PENONTON: Jadi hanya satu nombor boleh pergi selepas kes, betul?
Tidak boleh ada kes satu, koma, dua?
>> LUCAS Freitas: Tidak, anda tidak boleh.
Anda pasti tidak boleh.
>> LAUREN Carvalho: Maksud saya, persoalannya adalah ini adalah pilihan, dan ini tidak mungkin
muat kes penggunaan anda, jadi maka anda akan menggunakan jika keadaan.
>> PENONTON: Jadi mengapa anda akan melakukan ini?
Suis?
>> LAUREN Carvalho: saya akan menggunakan ini jika anda telah sangat ditakrifkan -
sebenarnya, Lucas, adalah anda menghalang.
>> LUCAS Freitas: Oh, maaf.
>> LAUREN Carvalho: Jika anda mempunyai sangat tingkah laku ditakrifkan yang anda mahu untuk
setiap input, ini mungkin satu sedikit lebih padat daripada menulis
jika kenyataan untuk setiap satu.
>> PENONTON: Apakah yang Cuti bermakna lagi?
>> LAUREN Carvalho: rehat itu bermakna berhenti.
Ingat, jika saya tidak mempunyai rehat ini di sini, kita akan hanya jatuh ke bawah
kes itu akan datang.
>> LUCAS Freitas: Cuti bermakna untuk mendapatkan keluar daripada penyata suis.
Kerana jika ia 1, saya mahu untuk mencetak ini dan meninggalkan.
Saya tidak mahu untuk memeriksa apa-apa lagi.
>> PENONTON: Anda tidak mahu untuk mencetak apa-apa lagi.
>> LUCAS Freitas: Yeah.
Kerana ia adalah saling eksklusif.
>> PENONTON: Dan adakah ini hanya meneruskan dengan kes yang akan datang jika kes pertama
tidak benar?
Atau adakah ia menguji semua kes pada masa yang sama?
>> LUCAS Freitas: Tidak, ia cek berurutan.
Berturut-turut, yeah.
Satu lagi soalan, maka kita punya untuk bergerak jadi kami boleh meliputi segala-galanya.
Yeah?
>> PENONTON: Jadi untuk kes itu, boleh mempunyai melakukan sesuatu selain hanya satu?
Bolehkah anda memberikan pelbagai?
>> LUCAS Freitas: No
>> LAUREN Carvalho: Saya tidak fikir anda boleh memberikan pelbagai.
>> LUCAS Freitas: Anda tidak boleh anda tidak boleh memberikan pelbagai.
>> PENONTON: Kes ini spesifik [Didengar].
>> LUCAS Freitas: Tukar adalah jenis nilai-nilai.
Anda melakukan perkara-perkara yang berbeza bergantung nilai, nilai tertentu.
Anda tidak boleh melakukan pelbagai, anda tidak boleh melakukan apa-apa lagi.
Ia hanya satu lagi alat untuk melihat.
>> LAUREN Carvalho: Kebanyakan orang tidak menggunakan menukar kenyataan amat CS50,
tetapi ia di sana.
>> Baiklah.
Jadi perkara yang akan datang kita akan bercakap kira-kira adalah pengendali pertigaan.
Ini hanyalah satu lagi jenis bersyarat.
Pada asasnya apa yang berlaku di sini ialah saya meminta integer, dan jika n
lebih daripada 100, saya akan mencetak "Yang tinggi." Jika tidak, saya akan
mencetak "yang rendah."
>> Jadi apa yang ia lakukan adalah keadaan ini di sini di kurungan, dan anda
jenis boleh berfikir soalan kerana saya bertanya sama ada
ini adalah benar atau tidak.
Jika ia benar, saya akan melakukan ini pertama perkara, dan jika ia tidak benar, saya
akan melakukan perkara kedua ini.
>> Sebarang soalan mengenai pengendali pertigaan?
>> LUCAS Freitas: Hanya mahu ambil perhatian dari David ialah bila-bila masa anda mempunyai
keadaan -
>> LAUREN Carvalho: Saya rasa Daud menonton melalui aliran hidup.
>> LUCAS Freitas: Dia melakukan hidup aliran sekarang.
Jadi apabila anda mempunyai keadaan, anda sepatutnya meletakkan pendakap kerinting,
seperti yang kita ada dalam suis kenyataan di sini.
Kami mempunyai pendakap kerinting di sini.
Untuk apa-apa syarat, anda sepatutnya juga meletakkan bahawa.
>> LAUREN Carvalho: Anda akan melihat ini di dalam panduan gaya.
Kita sebenarnya tidak mempunyai panduan gaya sekarang.
Saya fikir Daud masih bekerja.
>> LUCAS Freitas: Beliau berkata ia hanya bekerja sekarang.
>> LAUREN Carvalho: Oh, adakah ia bekerja sekarang?
OK.
Jadi nampaknya tahun ini dalam gaya membimbing, walaupun anda hanya mempunyai satu baris,
anda perlu meletakkan semua itu pendakap kerinting masuk
Anda tidak semestinya perlu untuk fungsi program ini.
Dan mungkin kita hanya perlu berehat selepas syarat-syarat dan pergi terus
untuk panduan gaya untuk membersihkan beberapa perkara-perkara ini?
>> LUCAS Freitas: Yeah.
Adakah anda mempunyai soalan?
>> PENONTON: Tidak, saya akan hanya menunggu hingga panduan gaya.
>> PENONTON: Bolehkah anda kembali kepada pengendali pertigaan?
>> LAUREN Carvalho: pertigaan, ya.
>> LUCAS Freitas: operator pertigaan adalah pada dasarnya kenyataan jika lain, tetapi
daripada harus mempunyai dua baris menyemak jika dan maka
lain, anda hanya perlu satu baris.
Jadi, pada asasnya jika saya mahu memberi rentetan nilai tinggi atau rendah, dan saya
mahu melakukan yang tinggi jika n adalah lebih besar daripada 100 atau rendah jika ia kurang, apa yang boleh saya lakukan
adalah ini [didengar]
tali itu akan menjadi, dan kemudian saya meminta program itu n lebih besar daripada 100?
>> Jadi sebab itu saya mempunyai ungkapan ini dalam kurungan dan kemudian
tanda soalan.
Saya meminta ia lebih besar daripada 100?
Jika ia, ia akan menjadi tinggi.
Jika tidak, ia akan menjadi rendah.
>> Jadi, pada asasnya apa yang anda berfikir adalah anda bertanya soalan, jadi anda masukkan ke dalam kurungan
keadaan.
Kemudian anda meletakkan tanda tanya kerana anda bertanya itu.
Dan jika ini adalah benar, ia akan menjadi nilai yang pertama [didengar] di sini.
Jika tidak, saya akan meletakkan nilai iaitu selepas kolon.
Adakah ia masuk akal?
>> Ia juga sesuatu yang adalah seperti alat dalam C tetapi anda tidak perlu
khusus menggunakannya.
Tetapi CS orang biasanya suka itu kerana ia hanya menjimatkan baris.
>> LAUREN Carvalho: Ia amat elegan.
Ia banyak dalam satu kenyataan.
>> PENONTON: Jadi tanda peratus adalah hanya apa sahaja keputusan pada
baris sebelumnya?
>> LAUREN Carvalho: Oh, saya minta maaf.
Ini tanda peratus sebenarnya pemegang tempat untuk ini s.
Dalam satu kenyataan printf, anda mempunyai ini tali di sini, yang adalah apa yang akan
mencetak, tetapi anda tidak boleh hanya meletakkan ini s di sana.
Jika tidak, ia akan mencetak keluar s betul-betul.
Oleh itu, kita meletakkan peratus di sini untuk menjaga tempat ini dipegang untuk apa sahaja
datang selepas koma.
>> Jadi untuk tali, anda mempunyai peratus s.
Untuk integer, peratus i.
Untuk terapung, peratus f.
Anda akan melihat orang-orang seperti yang kita melihat lebih banyak contoh.
Tetapi mungkin anda perlu bercakap tentang panduan gaya untuk sementara waktu, kini
bahawa ia terpulang.
>> LUCAS Freitas: Jika anda pergi ke cs50.net/style, anda akan melihat
panduan gaya.
Untuk set masalah, skor anda untuk set masalah terdiri daripada skop,
yang pada asasnya bermakna jika anda melakukan semua bahagian-bahagian masalah yang ditetapkan atau jika anda
cuba sesuatu.
Perkara kedua ialah kebenaran, yang cara adalah program anda melakukan apa yang
sepatutnya lakukan, atau adakah ia mempunyai pepijat, atau adakah ia tidak melakukan apa
ia sepatutnya lakukan.
>> Perkara ketiga ialah reka bentuk, yang bermaksud yang anda melaksanakan dengan baik, atau sememangnya
anda menggunakan pernyataan yang tidak perlu?
Sebagai contoh, jika anda mahu mengulangi beberapa 10 kali, yang anda menulis
untuk gelung atau yang anda hanya melakukan 10 kali kenyataan yang sama, hanya melakukan
salinan dan tampal.
Jadi reka bentuk adalah untuk itu.
>> Dan akhirnya, anda mempunyai gaya.
Gaya adalah sama seperti penghakiman jika kod anda kelihatan
boleh dibaca dan jenis cantik.
Ia hanya pada dasarnya bermakna adalah kod anda boleh dibaca?
Adakah orang lain yang sedang berada kod anda dapat memahami apa yang
ia melakukan?
Adakah ia mempunyai komen dan sebagainya?
>> Mari kita bercakap tentang gaya yang anda sepatutnya digunakan.
Perkara pertama adalah komen.
Komen adalah sangat penting bagi anda kod kerana kadang-kadang yang anda lakukan
program anda, dan anda tahu apa yang yang anda mahu lakukan supaya anda hanya mula
pengekodan, hanya menaip sekumpulan C. Tetapi jika orang lain sedang mencari yang anda
kod, mereka tidak akan dapat memahaminya kerana mereka tidak tahu
perkara-perkara yang dalam kepala anda, seperti pesudocode, jadi mungkin mereka akan
mempunyai masa yang sukar untuk difahami apa kod di lakukan.
>> Jadi pendapat benar-benar berguna untuk menerangkan untuk seseorang yang melihat
kod anda apa yang ia lakukan, dan sebenarnya walaupun untuk anda,
mereka sangat berguna.
Seperti yang anda pergi ke Psets lebih kuat dan keras, anda akan melihat bahawa kod mendapat
lebih lama, dan kemudian komen benar-benar penting supaya anda ingat apa yang setiap
sebahagian daripada program anda tidak.
>> Untuk meletakkan komen, anda hanya boleh melakukan slash slash dan kemudian menulis komen.
Dan seluruh talian adalah sebahagian daripada komen, dan apa sahaja yang anda menulis,
ia tidak akan menjadi digunakan untuk kod anda.
Ia pada dasarnya seperti pengkompil akan mengabaikan itu.
Adakah ini masuk akal?
>> PENONTON: Apa yang anda lakukan sekali lagi untuk menulis komen?
>> LUCAS Freitas: Ini?
Slash slash?
Setiap kali anda menaip slash slash, apa sahaja adalah selaras yang tidak akan
akan dianggap sebagai C. Ya?
>> PENONTON: Jadi, selepas komen, anda Langkah pertama ialah memasukkan dan memulakan baris baru?
>> LUCAS Freitas: Ya, betul-betul.
>> LAUREN Carvalho: The slash slash adalah untuk komen baris.
>> LUCAS Freitas: Sebagai contoh, di sini kita mempunyai -
biarlah saya mengezum masuk -
sebagai contoh, di sini saya mengisytiharkan apungan, tetapi mungkin jika anda hanya meletakkan ini
dalam kod anda, seperti anda tidak tahu apa ini lakukan, seperti sebenarnya
seseorang yang melihat kod ini akan menjadi, seperti, apa yang
palang pintu yang sedang berlaku?
>> Jika anda meletakkan komen dengan berkata "menukar Fahrenheit untuk Celsius, ia membuat banyak
rasa lagi.
Anda, seperti, OK, anda membuat penukaran.
Adakah ini masuk akal?
Jadi ia hanya sesuatu yang membantu orang ramai bersedia kod anda dan juga membuat
anda dapat menganjurkan kod anda lebih baik.
>> Perkara yang kedua ialah anda boleh lakukan comments berbilang talian, jadi mempunyai satu
comment untuk sekumpulan baris.
Daripada perlu meletakkan slash slash, komen baris pertama, slash slash,
baris kedua, dan sebagainya, anda boleh menggunakan bintang palang.
Cara yang anda melakukannya ialah untuk Baris pertama komen, anda
akan melakukan bintang slash bintang, jadi begitu sahaja.
Sama seperti di sini kita mempunyai permulaan program, anda biasanya meletakkan yang anda
, apa yang program ini tidak, dan barangan seperti itu.
Ia adalah jenis seperti tandukan untuk program ini.
>> Sekali lagi, ia bukan sesuatu yang pengkompil akan mengambil berat tentang, tetapi
ia adalah penting untuk anda tahu apa ini program tidak atau untuk orang lain
untuk mengetahui apa program anda lakukan.
Jadi anda mengurangkan bintang bintang, dan maka baris terakhir yang anda akan lakukan bintang
slash dapat menutup komen itu.
Jadi, pada asasnya untuk semua garis yang lain, anda hanya boleh menulis apa sahaja, dan ini
semua akan diabaikan.
>> Dan juga, seperti gaya, anda melihat bahawa setiap daripada garis itu mempunyai bintang, dan semua
bintang-bintang adalah selaras.
Ini adalah perkara yang penting supaya bahawa kod anda kelihatan cantik.
Bunyi yang baik?
>> Sekarang, keadaan.
Apa Daud telah berkata bahawa kita harus sebenarnya dimasukkan ke dalam mereka slaid, ialah
apabila anda mempunyai apa-apa jenis kenyataan jika atau apa-apa keadaan,
anda perlu menggunakan pendakap kerinting untuk menunjukkan bahawa ini adalah apa yang akan berlaku
apabila anda mempunyai keadaan.
Secara teknikal, apabila anda mempunyai keadaan yang dan kemudian baris berikutnya hanya salah satu
line, anda tidak secara teknikal mempunyai untuk meletakkan pendakap kerinting.
>> Pada asasnya pengkompil akan memahami teruskan sebagai tersirat.
Tetapi bagi CS50, kami meminta anda semua untuk meletakkan pendakap kerinting hanya supaya anda
kod adalah lebih teratur dan lebih senang dibaca.
Oleh kerana kod yang mendapat lebih lama jika anda tidak mempunyai pendakap kerinting dan sebagainya.
Ia akan benar-benar tidak kemas.
>> LAUREN Carvalho: Ini betul-betul apa yang David hanya berkata
dalam slaid saya sebelum ini.
Ia pasti kerja-kerja tanpa kerinting yang pendakap, tetapi atas sebab-sebab gaya
kita akan meminta anda meletakkan mereka masuk
>> Dan apabila anda mula berjalan style50, yang jenis cek 50 untuk
gaya, ia akan mengingatkan anda untuk melakukan ini.
>> LUCAS Freitas: Dan perkara yang lain adalah ingat untuk meletakkan pendakap kerinting bersama-sama
dalam setiap baris.
Jadi anda lakukan, sebagai contoh, l's.
Pergi ke baris seterusnya, buka kerinting yang menyokong, maka anda pergi ke garis depan.
Lekukan, yang adalah empat ruang.
Kemudian anda menulis apa sahaja, maka satu lagi line, dan menutup pendakap kerinting.
Jadi pastikan bahawa kedua-dua orang-orang kerinting penyokong gigi adalah di laluan yang berbeza.
>> PENONTON: Jadi, jika kod ini mempunyai seperti 10 IFS lagi, sekiranya ini
menjadi 10 set kurungan?
>> LUCAS Freitas: Ya, bagi setiap daripada mereka.
Yeah.
Jadi, jika, kalau sekiranya, dan sebagainya.
>> PENONTON: Bolehkah anda tidak tekan Tab untuk mengensot?
>> LUCAS Freitas: Kami meminta anda lelaki menggunakan empat ruang.
Sesetengah editor teks menterjemahkan tekan sebagai empat ruang secara automatik.
gedit tidak, jadi anda perlu melakukan ruang angkasa ruang angkasa.
Ini juga sesuatu yang beberapa pengaturcara sahaja tab, beberapa
pengaturcara sahaja empat ruang, dan beberapa orang lain juga melakukan
dua atau tiga ruang.
Ia hanya bahawa di sini kita meminta anda semua untuk melakukan empat ruang.
>> PENONTON: Terdapat hampir pasti mendapat menjadi satu cara untuk gedit untuk
secara automatik [didengar].
Seperti tidak [didengar] melakukan hal tersebut.
>> LUCAS Freitas: Yeah.
Saya rasa anda boleh pergi ke Tetapan.
>> PENONTON: Ia sudah melakukan semua itu.
>> LUCAS Freitas: Ia sudah tidak?
OK.
Jadi pastikan bahawa anda mempunyai empat ruang.
>> PENONTON: Adakah kita perlu meletakkan kerinting yang kurungan dalam untuk gelung juga?
>> LUCAS Freitas: Ya.
>> LAUREN Carvalho: Apabila anda menghimpun satu blok kod, hanya
sila gunakan pendakap kerinting.
Dan sebelum anda berfikir bahawa kami hanya menjadi sticklers tentang perkara ini untuk tidak baik
sebab, jika anda semua masih meneruskan untuk mendapatkan latihan berteknologi di syarikat-syarikat besar,
mereka akan memberikan anda panduan gaya, dan mereka akan memberitahu anda ini adalah apa yang anda
kod perlu kelihatan seperti.
Dan walaupun anda belajar untuk kod seperti ini, mungkin dalam latihan anda
anda perlu melakukan sesuatu berbeza.
Mereka mengharapkan anda untuk menepati untuk gaya mereka.
>> LUCAS Freitas: Dan satu lagi perkara yang yang anda notis bagaimana saya mempunyai seperti x,
ruang, kurang, ruang, 0?
Setiap kali anda mempunyai pengendali -
ia boleh menjadi seperti campur, tolak, kali, kurang, lebih besar, apa sahaja pengendali -
anda perlu meletakkan ruang yang di sebelah kiri dan hak pengendali.
>> LAUREN Carvalho: Mereka adalah dipanggil operan binari.
Hanya pastikan anda sentiasa ruang keluar operan binari anda.
>> LUCAS Freitas: Ini adalah bukan kendalian binari.
>> LAUREN Carvalho: Itu kerana ia mengambil masa dua.
>> LUCAS Freitas: Oh, yeah.
>> OK, suis.
Pertama, anda perlu untuk melihat bahawa seperti dalam satu kenyataan jika atau yang lain, anda mempunyai
untuk meletakkan pendakap kerinting pada baris sendiri dan di bawah pendakap kerinting di sini.
Perhatikan bahawa terdapat ruang tunggal selepas suis, hanya suka dalam jika dan lagi
kami mempunyai ruang tunggal antara itu dan kurungan.
Jadi anda perlu meletakkan itu.
>> Dan tidak ada ruang selepas setiap daripada kurungan atau sebelum akhir
daripada kurungan.
Jadi anda lihat bahawa itu semua bersama-sama, dan juga suka di sini.
>> Yeah?
>> LAUREN Carvalho: Saya rasa kita perlu bergerak ke atas.
>> LUCAS Freitas: Jadi ini adalah sebahagian daripada panduan gaya yang anda ada untuk CS50.
Pastikan anda pergi ke cs50.net/style dan lihat ini.
Ini semua adalah sangat penting untuk skor gaya anda.
>> Biar saya kembali ke kenyataan itu.
>> LAUREN Carvalho: saya mahu hanya menggunakan style50.
Kami hanya akan pergi terus ke gelung.
Baiklah.
>> Oleh itu, marilah kita kembali kepada kandungan, kini bahawa kami telah pergi ke atas panduan gaya.
Gelung, anda telah melihat mereka di Awal, dan kita akan bercakap tentang mereka dalam
C.
>> Dalam untuk gelung, terdapat tiga bahagian kepada
pengisytiharan ini untuk gelung.
Anda mempunyai pengawalan anda di yang anda menetapkan pembolehubah anda.
Anda mempunyai keadaan anda, yang memeriksa untuk melihat sama ada sesuatu yang
benar atau salah dan sama ada gelung hendaklah diteruskan.
Dan anda telah mendapat kemas kini anda, yang mengemaskini pembolehubah anda.
>> Mari kita melihat cepat di beberapa Kod C ini untuk gelung dalam tindakan.
Apa yang berlaku di sini dalam pengawalan, kami menetapkan i kepada 0.
Dalam keadaan yang kita sedang menyemak sama ada i adalah kurang daripada 10.
Dan dalam kemas kini kami menokok i.
Jadi apa yang akan terhasil daripada ini untuk gelung?
>> LUCAS Freitas: Sebenarnya, pertama sekali, yang anda semua tahu apa yang saya + + adalah?
>> PENONTON: Peningkatan oleh 1.
>> LUCAS Freitas: Peningkatan sebanyak 1, ya.
Jadi ini adalah perkara yang sama seperti melakukan i sama i campur 1.
Dan melihat bahawa kita tidak mempunyai ruang yang antara i dan + +.
>> Jadi yang anda semua tahu apa ini akan lakukan?
Bolehkah seseorang beritahu saya?
Dan mungkin mendapat beberapa gula-gula kerana itu?
>> PENONTON: [didengar]
>> LUCAS Freitas: OK.
[Didengar]
menunjukkan semua orang kemudian [didengar].
Ya, ia akan menunjukkan "Ini adalah CS50 "10 kali.
>> LAUREN Carvalho: Saya rasa ia adalah dalam tajuk slaid.
>> LUCAS Freitas: Oh, yeah.
>> [Ketawa]
>> LUCAS Freitas: Itu membantu.
>> LAUREN Carvalho: Maka itulah adalah untuk gelung.
Kita akan melihat beberapa contoh-contoh Daripada gelung untuk kemudian hari.
Tetapi mari kita benar-benar mengambil lihat di Jenis kedua gelung anda akan menghadapi
dalam C, dan ia dipanggil gelung sementara.
>> Dalam gelung sementara, anda telah hanya mendapat syarat.
Keadaan ini diperiksa di permulaan, dan jika keadaan yang
dinilai sebagai benar, maka kod di dalam badan blok sementara
akan melaksanakan.
Dan kod akan terus melaksanakan selagi yang
keadaan masih benar.
>> Berikut adalah satu contoh gelung manakala di C. Kami akan menetapkan kiraan untuk 10 hingga
memulakan.
Selagi kiraan adalah lebih besar daripada 0, kita akan menyimpan mencetak ini
berubah-ubah di sini.
Kami akan SUSUTAN kiraan dan kemudian memeriksa keadaan lagi.
Cetak, susutan, cek keadaan lagi.
>> Di sini kita mempunyai contoh yang berkaitan soalan anda sebelum ini.
Kami mempunyai peratus s ketika kami mencetak rentetan, dan kini bahawa
kami mencetak int, kami mempunyai peratus i sebagai pemegang tempat kita dan bukannya.
Huruf-huruf yang semua harus cukup intuitif, s untuk tali, i untuk int.
>> Jadi, jika kod ini melaksanakan, anda harus mengira detik 10-0, mencetak
setiap integer.
>> LUCAS Freitas: Dan anda boleh memikirkan peratus rasanya kosong
ruang, dan kemudian anda meletakkan ini berubah-ubah di sini di ruang kosong.
Jadi, sebagai contoh, di sini saya akan mempunyai hanya kosong, dan kemudian saya meletakkan
mengira di sana, yang nilai kiraan.
Adakah ini masuk akal?
>> Bolehkah saya hanya melakukan seperti printf dan kemudian memetik, mengira?
Adakah yang bekerja?
>> PENONTON: No
>> LUCAS Freitas: Tidak, kerana ia akan sebenarnya mencetak perkataan "mengira"
bukannya mencetak nilai.
Ini adalah bagaimana anda membuat ia mencetak nilai-nilai ke atas pembolehubah bukan
hanya nama pembolehubah.
Apa-apa soalan?
>> PENONTON: Mengapa anda gunakan untuk sebagai menentang untuk sementara?
>> LAUREN Carvalho: saya akan menggunakan untuk gelung jika saya tahu berapa banyak
lelaran gelung Saya mahu saya untuk berjalan.
Dalam kes ini, ia tidak menjadi masalah kerana, Maksud saya, saya hanya mencuba untuk
memikirkan benar-benar mudah contoh untuk slaid ini.
Tetapi mari kita mengatakan bahawa anda mahu sesuatu untuk menjaga akan sementara -
>> LUCAS Freitas: Sebagai contoh, anda meminta input sehingga orang itu
memberikan anda input yang betul.
Jadi seperti manakala input tidak OK, terus bertanya untuk itu.
Atau seperti semasa anda ibu bapa tidak memberi wang anda, terus bertanya untuk itu.
>> [Ketawa]
>> LAUREN Carvalho: Anda tidak tahu bagaimana banyak kali anda akan mempunyai untuk melakukannya.
>> LUCAS Freitas: Kerana anda tidak tahu berapa kali itulah
akan terus.
>> LAUREN Carvalho: Tetapi dalam untuk gelung, anda perlu tahu berapa kali.
Yeah?
>> PENONTON: Hanya untuk menjelaskan, peratus kata ini adalah sesuatu yang kira-kira untuk
berlaku, i bagi integer, dan garis sendeng terbalik n -
>> LAUREN Carvalho: Bermakna?
Siapa tahu apa garis sendeng terbalik n bermakna?
Barisan baru, yeah.
Tepat sekali.
>> LUCAS Freitas: Anda boleh berfikir n sebagai barisan baru.
>> LAUREN Carvalho: Nice.
>> PENONTON: Apakah yang dikira dash dash [didengar]?
>> LUCAS Freitas: Count tolak tolak adalah perkara yang sama seperti plus plus, tetapi
bukannya semakin meningkat, ia menurun sebanyak 1.
>> LAUREN Carvalho: Mana-mana lebih manakala soalan gelung?
Tidak?
Oh, kita sepatutnya telah melangkau itu.
>> Ini adalah tugasan manakala gelung.
Hampir sama dengan gelung sementara kecuali dalam kes ini kita memeriksa keadaan selepas
kod di dalam badan daripada gelung melaksanakan sekali.
Oleh itu, kita melaksanakan kod yang pertama tidak kira apa.
Kemudian kami memeriksa keadaan, melaksanakan sekali lagi jika keadaan ini benar.
>> Anda akan mendapati diri anda menggunakan ini apabila anda meminta untuk input pengguna.
Kerana anda sentiasa akan perlu tanya sekali, dan kemudian bergantung kepada apa yang
input pengguna adalah, anda mungkin perlu reprompt dan tanya lagi dan sekali lagi jika
input bukan apa yang anda dijangka ia menjadi.
>> PENONTON: Jadi ia seperti bentuk yang bagi orang-orang untuk mengisi.
>> LAUREN Carvalho: Ya, betul-betul.
Anda akan dapati, saya fikir, dalam pertama anda Serangga, anda akan perlu untuk
menggunakan gelung do baik untuk mengumpul input daripada pengguna.
>> PENONTON: Bergantung kepada keadaan, gelung manakala anda akan cenderung untuk berjalan lebih
kerap daripada manakala gelung, seperti oleh satu atau sesuatu?
>> LAUREN Carvalho: Jika ia adalah tepat -
>> LUCAS Freitas: Mereka sentiasa perlu menjalankan jumlah sebenar masa yang anda
hendak membuatnya.
Seperti kita menggunakan lakukan semasa kerana kita benar-benar mahu mendapatkan input sekurang-kurangnya sekali.
Dalam gelung sementara, kadang-kadang anda tidak mahu untuk melaksanakannya di semua jika ia bukan
kes untuk melaksanakan.
Jadi ia bergantung kepada reka bentuk.
Maksud saya, anda boleh menggunakan lakukan semasa atau manakala selagi kod anda tidak yang
ia sepatutnya lakukan.
>> LAUREN Carvalho: Tetapi saya berfikir jawapan kepada anda
soalan mungkin ya.
Katakan keadaan adalah palsu.
Dalam satu kes ia akan berjalan sekali, dan kes lain ia akan menjalankan sifar kali.
Jadi, yeah.
>> Apa-apa soalan lagi?
Ya?
>> PENONTON: Bolehkah keadaan gelung menjadi untuk gelung dari segi lain berubah-ubah
daripada [didengar].
>> LAUREN Carvalho: Ya, ia boleh menjadi apa-apa.
Mungkin bagi Psets permulaan, anda tidak perlu menghadapi kes itu, tetapi
pasti ia boleh menjadi apa-apa.
>> LUCAS Freitas: Saya rasa kita sudah selesai disini.
>> LAUREN Carvalho: Adakah kita?
Tidak?
>> LUCAS Freitas: gelung?
Yeah.
>> LAUREN Carvalho: Kami tidak sepatutnya.
Oh, kami selesai dengan gelung.
OK.
>> Sebenarnya, kerana kita telah bercakap begitu banyak, mari kita sebenarnya semua mengemudi
kepada study.cs50.net/conditions.
Dan anda akan mengemudi ke bawah kepada masalah-masalah widget.
Well, sebenarnya, manakala orang yang mendapat ini ditubuhkan, Kajian CS50 adalah
akan menjadi alat yang TFS anda akan gunakan untuk bersedia untuk bahagian dan yang
anda semua boleh digunakan jika anda terlepas bahagian.
Ia akan mengandungi sekumpulan slaid, beberapa tips dan trik untuk setiap
topik, dan beberapa masalah amalan dengan penyelesaian.
>> Mengapa tidak semua orang hanya melihat masalah ini di sini.
>> Saya minta maaf, saya perlu mengingatkan orang untuk membawa komputer riba hari ini.
Tetapi jika anda tidak mempunyai komputer riba, itu OK.
Anda hanya boleh mencatat ini turun pada sekeping kertas atau melihat ke atas
bahu sesamamu itu.
>> Mari kita cuba dan menulis program yang meminta pengguna untuk mengambil tekaan itu,
Purata bilangan anak bagi setiap keluarga unit di Amerika Syarikat.
Nombor yang 2, dengan cara ini, kerana anda lihat dari contoh-contoh ini.
>> Kami mahu mencetak Purata bilangan kanak-kanak setiap keluarga di Amerika Syarikat, maka kita
mahu apa?
Kami mahu mengumpul input daripada pengguna.
Dan kemudian bergantung kepada apa yang pengguna itu input, anda akan mencetak
sama ada ini adalah betul atau ini adalah tidak betul.
>> Dan perkara pertama yang anda akan lihat, jika anda klik anak panah kecil di
bahagian bawah widget masalah adalah tempat untuk menulis beberapa kod pseudo.
Jadi anda tidak pengaturcaraan yet.
Anda hanya mendapat anda idea teratur.
>> Adakah sesiapa yang ingin membantu Lucas datang dengan hak
kod pseudo bagi masalah ini?
>> LUCAS Freitas: Apakah perkara pertama bahawa kita mungkin perlu lakukan di sini?
Apa yang anda semua berfikir?
>> PENONTON: [didengar]
>> LUCAS Freitas: Ya, OK.
Jadi, cetak.
Hanya mengatakan cetak purata ini beberapa orang?
OK.
Soalan cetak, katakan.
Selepas saya mencetak soalan ini, apa yang perlu saya lakukan?
>> PENONTON: Dapatkan input.
>> LUCAS Freitas: Dapatkan input.
Apa-apa lagi?
>> PENONTON: Keadaan.
>> LUCAS Freitas: Keadaan.
>> LAUREN Carvalho: Apakah yang keadaan akan menjadi?
>> PENONTON: Bilangan [didengar].
>> LAUREN Carvalho: Betul.
>> LUCAS Freitas: Jadi apa yang saya akan untuk memeriksa dalam keadaan ini?
>> PENONTON: Jika ia sama 2.
>> LAUREN Carvalho: Jika ia sama 2.
Tepat sekali.
>> LUCAS Freitas: Adakah apa-apa yang lain yang saya perlu lakukan?
>> PENONTON: Count.
>> LUCAS Freitas: Jadi, jika ia sama dengan 2, katakan -
biarlah saya hanya menulis jika input sama kepada 2, kemudian apa yang saya akan
lakukan adalah cetak betul.
Dan kemudian lagi, saya akan untuk mencetak tidak betul.
Apa-apa lagi?
Tidak?
>> LAUREN Carvalho: Jadi anda boleh klik pada -
tidak semua orang mempunyai ini ke bawah?
>> LUCAS Freitas: Adakah ia masuk akal?
Jadi sekarang mari kita cuba untuk kod ini.
>> LAUREN Carvalho: Jika anda klik sedikit arrow, ia sebenarnya menjimatkan anda
kod pseudo, yang benar-benar menarik.
Dan anda boleh membuat orang-orang ke dalam komen jika anda mahu hanya untuk mengingatkan diri anda
apa yang perlu dilakukan.
>> LUCAS Freitas: Jadi, sebagai contoh, pertama Saya akan mencetak soalan, jadi
bagaimana saya akan berbuat demikian, benar-benar?
printf.
Jadi printf, dan soalan adalah purata beberapa kanak-kanak setiap
keluarga di Amerika Syarikat.
>> Kemudian saya akan mendapatkan input daripada pengguna.
Jadi bagaimana saya boleh berbuat demikian?
>> PENONTON: Dapatkan Int.
>> LAUREN Carvalho: GetInt.
>> LUCAS Freitas: OK.
Oleh itu mengaku, bukan?
int, mari kita memanggilnya n sama GetInt.
>> Dan sekarang keadaan.
Jadi biarlah saya katakan bahawa saya akan ke sini cek jawapan.
Oleh itu, jika input, iaitu n, sama untuk - bagaimana saya akan menulis bahawa?
>> PENONTON: Sama sama.
>> LUCAS Freitas: Perfect.
Jadi n.
Dan notis yang saya lakukan ruang, sama, sama, ruang, benar.
Dan sekarang apa yang perlu saya lakukan?
Sesuatu yang sangat penting untuk gaya.
Pendakap kerinting.
>> Dan kemudian saya akan mencetak.
Bagaimana saya mencetak?
printf.
>> PENONTON: Bolehkah ia dipermodalkan?
>> LUCAS Freitas: No
Ia sepatutnya semua huruf kecil.
Jadi itu adalah betul.
>> Adakah ini memadai untuk printf yang pernyataan, atau saya hilang apa-apa?
>> PENONTON: Talian Baru.
>> LUCAS Freitas: Talian Baru, yeah.
Dan sekarang lain.
>> PENONTON: Adakah terdapat ruang selepas printf, atau tidak?
>> LAUREN Carvalho: Kami perlu semak panduan gaya.
>> PENONTON: Ia tidak sepatutnya.
>> LUCAS Freitas: tidak Hendaklah, OK.
Jadi lain, printf, "Itu tidak betul."
>> LAUREN Carvalho: Oops, sebut harga anda.
>> LUCAS Freitas: OK.
Apa-apa lagi?
Adakah ia melihat yang baik?
>> LAUREN Carvalho: Patutkah kita cuba?
>> LUCAS Freitas: Ya, mari kita menjalankannya.
Jadi ia menyusun, dan ia Nampaknya ia berfungsi.
Mari kita cuba dua kanak-kanak.
Itu betul.
Dan sekarang mari kita berjalan semula, tetapi kini sebaliknya meletakkan dua kanak-kanak, mari kita
mengatakan bahawa saya akan meletakkan seperti lima.
Itu tidak betul.
Jadi ia kelihatan bahawa ia berfungsi.
>> LAUREN Carvalho: Mengapa tidak anda menunjukkan kepada mereka apa yang berlaku jika anda meletakkan sesuatu
pelik, seperti beberapa huruf.
>> LUCAS Freitas: Oh, yeah.
Mari kita semak itu.
Bagaimana jika pengguna cuba untuk mes dengan program anda, dan mereka hanya
menulis, saya tidak tahu dua.
Ia akan mengatakan cuba semula.
>> LAUREN Carvalho: Jadi GetInt meminta mereka untuk mencuba semula.
Kami tidak perlu menjaga itu diri kita sendiri.
>> LUCAS Freitas: Yeah.
Jadi, melainkan saya benar-benar meletakkan nombor, ia akan terus bertanya saya untuk mencuba semula.
>> PENONTON: Bagaimana anda menjalankannya?
>> LUCAS Freitas: Hanya klik butang bintang ini.
>> LAUREN Carvalho: Anda harus naik.
Terdapat anda pergi.
>> LUCAS Freitas: Bintang itu butang di sana.
Yeah?
>> PENONTON: Adakah ia meminta [didengar] dengan nombor perpuluhan juga?
>> LAUREN Carvalho: Saya percaya ia akan.
>> LUCAS Freitas: Jika ia melakukan apa?
>> LAUREN Carvalho: Jika mereka menaip dalam nombor perpuluhan, saya fikir
ia akan meminta.
>> LUCAS Freitas: Mari kita lihat.
>> LAUREN Carvalho: Kerana ia bukan satu int.
>> LUCAS Freitas: Yeah.
>> LAUREN Carvalho: Jadi ia bukan satu int, Dapatkan Int akan meminta anda untuk mencuba semula.
>> PENONTON: Jadi di mana dalam kod yang akan tempat perpuluhan yang meminta yang
pengguna bahawa mereka perlu memasukkan integer khusus?
>> LAUREN Carvalho: GetInt sebenarnya melakukannya untuk kita.
>> PENONTON: Tidak, saya maksudkan jika kita mahu untuk memasuki [didengar]
>> LUCAS Freitas: Anda boleh mengatakan seperti purata Jumlah kanak-kanak di Amerika Syarikat.
Saya tidak tahu.
Kita boleh berkata, sebagai contoh, "Sila input integer. "
>> LAUREN Carvalho: Satu integer sama dengan bilangan purata.
Maksud saya, ia hanya bagaimana anda kata ia, bukan?
>> LUCAS Freitas: Yeah.
Ini bukan sebahagian daripada sebenarnya pengkodan.
Ia lebih daripada seperti apa sahaja anda akan mahu
menulis dalam program anda.
>> PENONTON: Bagaimanakah kami telah menjalankannya jika ia sebenarnya dalam gedit [didengar].
Bukannya menekan bermain?
>> LUCAS Freitas: Kami akan pertama menyusun ia.
Kita boleh melakukannya dengan melakukan make dan nama fail.
Dan kemudian untuk menjalankannya, kami akan melakukan yang dot slash dan nama program ini.
>> PENONTON: Saya rasa apa yang saya maksudkan ialah jika kami mahu program untuk bertindak balas terhadap
tidak betul, kemasukan tidak sah mereka, anda tidak perlu dimasukkan ke dalam -
>> LUCAS Freitas: Kami tidak akan dapat berbuat demikian kerana kod ini mengatakan
cuba semula datang dari Get Int yang merupakan fungsi yang sudah dilaksanakan
untuk kita melalui perpustakaan CS50, dan kerana ia sudah dilaksanakan di sana, kami
tidak boleh hanya [didengar].
>> LAUREN Carvalho: Jika anda tidak menggunakan GetInt, maka anda boleh melakukannya.
>> LUCAS Freitas: Yeah.
Tetapi jika anda menggunakan GetInt, anda tidak boleh.
Apa-apa soalan lain?
>> PENONTON: Bolehkah anda telah dengan seperti GetFloat dan kemudian dapat meletakkan
dalam perpuluhan?
>> LUCAS Freitas: Yeah.
>> PENONTON: OK.
Kemudian anda hanya boleh input terapung setaraf -
>> LAUREN Carvalho: Yeah.
Tepat yang sama kecuali terapung dan bukannya int satu.
>> LUCAS Freitas: Hanya letakkan di sini dan kemudian GetFloat sana.
>> PENONTON: Seperti yang anda akan melihat atau telah melihat -
>> LAUREN Carvalho: kita mempunyai tidak mendapat ada lagi.
>> PENONTON: - melakukan ketidaksamaan dengan pelampung tidak [didengar]
>> PENONTON: Apa yang koma bertitik bermakna?
>> LAUREN Carvalho: koma bertitik ini hanya bermakna bahawa kenyataan ini adalah lengkap,
dan kita akan pergi ke slaid seterusnya.
>> PENONTON: Jadi ia perlu setiap kali?
>> LAUREN Carvalho: Yeah.
Nah, OK, jadi tidak untuk keadaan ini, kerana mereka
menghimpun sesuatu.
Jadi, pada asasnya jika sesuatu yang menyebabkan anda kemudian buat pendakap kerinting
blok, tidak meletakkan koma bernoktah pada akhir.
>> LUCAS Freitas: Tetapi segala-galanya lagi, ya.
Apabila anda selesai satu kenyataan, meletakkan koma bernoktah.
Dan jika anda terlupa koma bertitik, yang pengkompil akan marah pada anda,
dan anda akan perlu cuba untuk menyelesaikannya.
>> LAUREN Carvalho: Jika saya meletakkan koma bernoktah di sini, yang akan menghentikan ini, dan saya
tidak akan dapat melaksanakan apa yang di dalam, dengan cara itu.
Jadi ia adalah salah satu orang-orang pepijat yang sama.
>> PENONTON: Sentiasa melaksanakan.
>> LAUREN Carvalho: Yeah.
Dalam kes ini, kita akan sentiasa melaksanakan apa yang di dalam.
>> PENONTON: Gaya anda [didengar] melampirkan untuk anda, fikir.
>> LAUREN Carvalho: Oh, itu benar.
>> PENONTON: [didengar] tunggal perkara line [didengar]
>> PENONTON: Ya?
>> PENONTON: Bolehkah anda mempunyai pelbagai input dalam satu baris?
Jadi seperti anda boleh meminta pengguna untuk mencetak dua perkara?
>> LAUREN Carvalho: Tidak menggunakan -
>> LUCAS Freitas: No
Mari kita mengatakan bahawa saya juga mahu untuk mendapatkan integer ini m.
Saya perlu melakukannya dalam satu barisan yang berbeza.
>> PENONTON: Jika anda untuk menjalankan itu, bagaimana [didengar]?
Ia akan mencetak segera yang ada [didengar]
dan kemudian anda akan masukkan satu dan -
>> LAUREN Carvalho: Nah, menjalankannya.
Maksud saya, tiada apa-apa berhenti kita daripada hanya berjalan dan melihat apa yang
akan berlaku.
>> LUCAS Freitas: Saya rasa ia akan mengadu pada kita
kerana kita tidak menggunakan -
>> LAUREN Carvalho: Oops.
>> LUCAS Freitas: Ia mengadu pada kita hak sekarang kerana kita tidak menggunakan ini
berubah-ubah, tetapi jika saya, sebagai contoh, n adalah sama sama dengan, dan m sama
bersamaan dengan, maka apa yang akan berlaku dalam kes ini?
Apa yang akan program ini lakukan?
>> PENONTON: Saya hanya tertanya-tanya bagaimana ia akan -
>> LAUREN Carvalho: Dia hanya mahu tahu bagaimana ia kelihatan
, saya rasa, bukan?
Jadi ia mengambil salah seorang daripada mereka, dan kemudian ia mengambil masa yang kedua.
>> Saya fikir kita perlu bergerak ke atas, kerana kami mempunyai satu lagi
slaid menunjukkan untuk pergi sebelum -
yang anda mahu untuk menarik sehingga matematik?
>> LUCAS Freitas: Ya, matematik.
>> LAUREN Carvalho: Beri saya hanya satu saat.
>> Terdapat berangka yang berbeza beberapa pembolehubah dalam data C. berangka dalam C
boleh dikelaskan kepada pelbagai jenis, dan merekalah orang-orang yang anda akan
lihat yang paling kerap.
>> Dan int adalah nombor bulat.
Anda tidak boleh mempunyai apa-apa perpuluhan.
Dalam Appliance, ia mengambil masa 32 bit untuk menyimpan int satu.
>> Apungan boleh mempunyai perpuluhan.
Ia juga mengambil 32 bit untuk menyimpan apungan dalam Peralatan ini.
>> Dua adalah nombor dengan nombor perpuluhan ketika itu mengambil 64 bit untuk menyimpannya,
yang bermakna anda hanya boleh mempunyai ketepatan yang lebih besar kerana
anda boleh mempunyai lebih -
apa yang anda memanggilnya?
>> LUCAS Freitas: Ya, itu lagi.
>> LAUREN Carvalho: Lebih tempat selepas titik perpuluhan.
Dan yang panjang panjang adalah nombor bulat yang mengambil 64 bit untuk
ia sakit dalam Peralatan ini.
>> LUCAS Freitas: Jadi ia boleh lebih besar daripada Ints boleh.
>> LAUREN Carvalho: Perkara mengenai data jenis dalam C adalah bahawa mereka memberitahu anda apa yang
jenis data yang anda boleh menyimpan dalam pembolehubah anda.
Mereka memberitahu anda bagaimana anda boleh menggunakan ini berubah-ubah dalam program anda.
Ia amat penting untuk hanya mengesan apa jenis data yang anda gunakan, dan jika
anda perlu dibuang dari jenis data yang lain, pastikan anda tahu
betul-betul apa yang berlaku apabila yang pemutus berlaku.
Dan anda akan melihat contoh kemudian di dalam slaid yang
kesilapan yang boleh berlaku.
>> Mari kita lihat beberapa matematik dalam C dan berfikir benar-benar berhati-hati, saya rasa,
mengenai apa yang berlaku ketika ini matematik sedang berlaku.
Selaras yang pertama, apa yang berlaku apabila saya mengaku x?
>> PENONTON: Anda membenarkan x menjadi sesuatu?
>> LAUREN Carvalho: Yeah.
Baiklah, saya benar-benar meminta operasi sistem 32 bit memori, bukan?
Di mana saya boleh menyimpan int, dan Saya akan memanggil bahawa int x.
>> LUCAS Freitas: Pada dasarnya akan dalam ingatan dan mencari tempat yang mempunyai 32
bit dan kata, hey, saya mahu ruang ini, dan ia akan dipanggil x.
Jadi anda mencari hanya cukup banyak kotak dalam memori anda untuk
kedai untuk nilai-nilai x.
>> LAUREN Carvalho: Dan kemudian saya memulakan x, yang bermaksud bahawa saya hanya menyimpan
nilai 2 di tempat itu, sebahagian yang ingatan, bahawa kami bertanya operasi
sistem untuk.
Dan ke bawah di sini apa yang kami lakukan adalah kita sebenarnya mengisytiharkan dan
Memulakan y dalam satu baris dan bukannya dalam dua baris seperti yang kami lakukan di sini,
yang juga denda dengan sempurna, Kami menambah 1 untuk x, dan kami menyimpan yang
nilai y.
>> LUCAS Freitas: Jadi, pada asasnya apa ini line tidak, ia mendapati kini kotak untuk y,
dan kemudian nilainya, perkara yang anda akan diletakkan di dalam kotak, adalah
akan menjadi nilai x campur 1.
Jadi ia mempunyai kotak ini untuk y.
Ia mendapat nilai x, kelihatan di sini, dan melihat bahawa itu 2.
Meletakkannya di sana, ditambah 1, jadi ia meletakkan 3 di sana.
Adakah ini masuk akal?
Jadi y akan 2 dalam kes ini.
>> LAUREN Carvalho: Baiklah, sejuk.
Kami melihat beberapa tambahan, jadi mari kita anggap kira-kira bahagian dalam C. Di sini saya
mengisytiharkan dan Memulakan apungan dipanggil jawapan dan membahagikan 1 dengan 10,
dan kemudian saya mencetak di atas jawapan itu kepada dua tempat perpuluhan.
Dan ambil perhatian di sini, dalam satu kenyataan printf saya, apabila saya ingin mencetak sesuatu untuk dua
tempat perpuluhan,% .2 f ialah apa yang saya mahu untuk digunakan.
Jadi titik 2 adalah hanya mengatakan Saya memerlukan dua tempat selepas
perpuluhan dicetak.
>> Kini, apa yang akan berlaku jika saya menjalankan kod ini?
Adakah sesiapa yang mempunyai idea?
Apa yang akan mencetak?
>> LUCAS Freitas: Apakah kita mengharapkan untuk mendapatkan.
>> LAUREN Carvalho: Apa yang yang kita mahu, pertama sekali?
>> LUCAS Freitas: [didengar]
>> LAUREN Carvalho: 0.1, yeah.
Tetapi apa yang akan mencetak?
>> PENONTON: [didengar]
>> LAUREN Carvalho: Nah, tidak, sebenarnya.
Ini adalah apa yang saya bercakap tentang mengapa anda perlu menjejaki sangat berhati-hati
jenis data anda.
Jadi, apa jenis data ini?
Adalah int an, bukan?
Tiada tempat perpuluhan.
10 adalah juga int satu.
Tiada tempat perpuluhan.
>> Jika saya membahagikan satu int oleh int, saya mendapat satu int yang tidak 0.1, kerana Ints
tidak boleh mempunyai tempat perpuluhan, tetapi hanya 0.
Kerana int satu hanya truncates kira tempat perpuluhan.
>> LUCAS Freitas: Jadi setiap kali anda melakukan operasi dengan Ints, anda akan
mendapatkan int sebagai jawapan.
Jadi, pada asasnya, apa yang komputer lakukan, ia membahagi 1 oleh
10, dan ia mendapat 0.1.
Tetapi rasanya, tunggu, ini adalah sepatutnya integer, jadi anda hanya
mengabaikan 0.1, jadi ia kini hanya 0.
>> LAUREN Carvalho: Oleh itu, apabila saya mencetak ini keluar, saya mendapat 0.00 daripada 0.10.
>> LUCAS Freitas: Adakah yang masuk akal?
>> LAUREN Carvalho: Itulah jenis daripada malang, bukan?
>> LUCAS Freitas: Jadi bagaimana kita boleh menetapkan ini?
>> LAUREN Carvalho: Mari kita mencuba dan menetapkan bahawa.
Berikut adalah satu contoh di mana saya sebenarnya pemutus 1
dan 10 untuk terapung.
Jadi sekarang, 1 tidak lagi int satu.
1 adalah apungan.
Dengan cara itu, ini hanya sintaks apabila anda mahu untuk membuang dari satu
Jenis data yang lain.
Anda hanya boleh meletakkan jenis data yang di kurungan dan mempunyai yang hanya mendahului
nilai yang anda pemutus.
>> Jadi di sini, saya membahagikan apungan oleh apungan untuk mendapatkan jawapan yang terapung.
Dan ya, ini akan di Malah mencetak 0.10.
Adakah ini masuk akal?
>> LUCAS Freitas: Jadi jenis pemutus hanya menukar dari satu jenis yang lain.
Jadi terapung 1 adalah benar-benar 1,000.
Tidak betul-betul ini, tetapi ia sesuatu yang dengan tempat perpuluhan
yang sebenarnya 1.
Adakah ini masuk akal?
Yeah?
>> PENONTON: Bagaimana jika anda lakukan jawapan apungan bersamaan 1.0 dibahagikan dengan 10?
>> LAUREN Carvalho: Anda sebenarnya akan untuk melihat bahawa dalam slaid seterusnya.
Itulah sebenarnya slaid harinya kami.
Ini sebenarnya lebih bagus daripada menaip pemutus, saya fikir.
Jadi kedua-dua adalah kereta berhias hanya dengan sifat hakikat bahawa mereka
mempunyai tempat perpuluhan.
Ya?
>> PENONTON: Bagaimana jika anda lakukan [didengar]
dibahagikan dengan 10?
>> LAUREN Carvalho: Sebenarnya apungan dibahagikan dengan int satu sebenarnya memberikan anda
terapung, jadi yang akan bekerja denda.
>> Tunggu, adakah semua orang faham ini?
Kerana ini akan menjadi benar-benar masalah besar dalam Pset1, sebenarnya.
Ya?
>> PENONTON: Bolehkah anda hanya dengan cepat pergi ke bahagian yang merah?
>> LAUREN Carvalho: Bahagian merah, yeah.
Lucas, adakah anda mahu?
>> LUCAS Freitas: OK.
Jadi ingat bahawa peratus adalah pemegang tempat yang.
Ia seperti ruang kosong.
Jadi mari kita cuba untuk memahami segala-galanya perkara yang berlaku di sini.
Peratus bermakna ia pemegang tempat yang.
Kemudian anda mempunyai f, yang bermakna pemegang tempat ini adalah untuk apungan.
Perkara terakhir yang kita ada di sini adalah .2, Yang bermakna saya mahu ada dua
tempat perpuluhan bagi apung.
>> Jika saya hanya mempunyai% f, mereka ia akan meletakkan sekumpulan tempat perpuluhan.
Jadi saya hanya boleh meletakkan 0,2 atau 0,1 atau 0,5, atau apa sahaja, dan ia akan meletakkan bahawa
beberapa tempat perpuluhan.
Satu-satunya perkara adalah bahawa jika anda meletakkan seperti 0,100 atau .1,000, ia bukan sebenarnya
akan meletakkan semua tempat-tempat perpuluhan kerana ia tidak mempunyai memori yang cukup
mempunyai ketepatan itu.
>> Apa-apa soalan lain?
Yeah?
>> PENONTON: Jadi terapung hanya membolehkan anda untuk melampaui integer?
>> LUCAS Freitas: Ya.
>> LAUREN Carvalho: Nah, apungan hanya membolehkan anda mempunyai tempat perpuluhan.
>> LUCAS Freitas: Ia hanya bermakna anda kini boleh mempunyai nombor perpuluhan.
>> PENONTON: Mengapa kita akan pernah menggunakan integer?
>> LUCAS Freitas: Mengapa akan anda menggunakan integer?
Mungkin jika anda mengira dari 0 hingga 10, anda mahu menggunakan sebenarnya integer.
Anda tidak perlu menggunakan apungan.
Dalam sesetengah situasi, anda tidak perlu mempunyai untuk benar-benar -
>> LAUREN Carvalho: Mungkin anda tidak mahu perpuluhan.
>> LUCAS Freitas: Mungkin anda tidak mahu menggunakan apungan.
>> LAUREN Carvalho: Satu perkara lagi ialah, ingat, kedua-dua meletakkan terapung dan int
mengambil 32 bit untuk menyimpan mereka, dan mungkin anda tidak mahu membazirkan bit pada
tempat perpuluhan.
>> LUCAS Freitas: Yeah.
Mahu, hanya berfikir tentang perkara ini.
Anda mempunyai 32 bit bagi kedua-dua satu int dan apungan.
Untuk int satu, semua 32 bit pergi ke bahagian integer.
Jika anda menggunakan apungan dengan 32 bit, anda mempunyai sebahagian daripada memori ini digunakan
untuk nombor tersebut, untuk semua nombor, dan bahagian yang lain yang digunakan untuk
tempat perpuluhan.
Ini bermakna bahawa anda tidak boleh sampai ke jumlah yang sangat besar dengan kereta berhias kerana
apungan sudah menggunakan banyak memori untuk tempat perpuluhan.
Yeah?
>> PENONTON: Itulah jawapan pertama, apa sebenarnya yang ia lakukan?
Adakah ia menetapkan nilai apungan sama kepada pemegang tempat yang untuk yang anda boleh
ingat ia di baris berikutnya?
Ia mengatakan terapung jawapan.
>> LUCAS Freitas: Yeah.
Jadi, jawapan terapung bermakna anda mendapat kini baldi kecil di dalam memori yang
memegang apungan, dan perkara yang berlaku yang akan dipanggil jawapan.
Jadi itulah yang terapung jawapan tidak.
>> Dan kemudian anda mengatakan bahawa di dalam ini, anda akan meletakkan
hasil daripada ini.
Jadi, anda akan buat 1.0 dibahagikan dengan 10.0, anda mendapat 0.1, dan kemudian anda meletakkan
bahawa di dalam jawapan.
>> LAUREN Carvalho: Jadi dalam satu baris, kami mengisytiharkan dan Memulakan apungan ini
dipanggil jawapan.
>> LUCAS Freitas: Menariknya, walaupun ini hanya satu baris, ia melakukan
pelbagai operasi.
Ia hanya satu cara C penyewaan anda menggunakan kod kurang.
Ia adalah perkara yang sama seperti yang pertigaan pengendali, bagaimana anda hanya boleh melakukan sesuatu
[Didengar] dalam satu baris.
Ia sebenarnya melakukan perkara yang sama seperti melakukan jawapan terapung, koma bertitik, dan
maka jawapan sama ini, tetapi sebaliknya membuat anda melakukan dua baris untuk itu,
rasanya jalan pintas.
Yeah?
>> PENONTON: Jadi, jika anda berlari ini, ia akan menjadi 0.10?
>> LUCAS Freitas: Ya.
Yeah?
>> PENONTON: Apakah menjawab sebenarnya kod, atau adakah ia hanya nama?
>> LAUREN Carvalho: Ini sebenarnya kod.
Ini adalah apa yang kita akan untuk menamakan pembolehubah kami.
>> PENONTON: Jadi ia hanya nama [didengar].
>> LAUREN Carvalho: Yeah.
Saya boleh berkata apungan x sama 1.0.
>> LUCAS Freitas: Masalahnya ialah nama pembolehubah adalah
sesuatu yang anda gunakan.
Adalah penting untuk anda.
Untuk program sebenar, satu-satunya bahawa perkara-perkara adalah nilai yang anda
mempunyai bahagian dalam baldi.
Sebab mengapa anda mempunyai pembolehubah dan nama-nama pembolehubah adalah supaya anda akan tahu
apa yang anda berurusan dengan, seperti jenis data anda
mengakses pada satu masa.
Tetapi bagi kod itu sendiri, jika anda memanggil ia menjawab atau soalan atau apa-apa,
cukup banyak, ia tidak mengapa.
Ia tidak mengapa.
Selagi anda konsisten dalam setiap kejadian itu dan supaya anda memanggilnya
sesuatu yang lain.
Yeah?
>> PENONTON: Adakah pembolehubah melampaui fungsi?
Seperti jika anda adalah untuk membuat kurungan [Didengar], anda hanya boleh
[Didengar] menjawab lagi?
>> LAUREN Carvalho: No
>> PENONTON: [didengar]
>> LAUREN Carvalho: No
Yang akan berada di luar skop variabel ini tertentu.
Dan sebenarnya, itu jenis menarik, kerana apabila kita mempunyai
perkara seperti gelung atau ini jika syarat, jika anda mengisytiharkan pembolehubah
dalam satu lagi set pendakap kerinting, ia benar-benar hanya wujud
dalam orang-orang pendakap kerinting.
>> PENONTON: Satu nota akhir mengenai yang [didengar] pelampung.
Mengapa anda pernah mahu menggunakan Ints?
Ini adalah lebih daripada nota sampingan daripada apa-apa, tetapi komputer anda
ketara lebih baik pada pengendalian Ints daripada itu adalah di pelampung pengendalian.
Ia seperti suatu perintah magnitud lebih cepat.
Jadi, jika kita hanya mengendalikan hanya terapung, perkara akan banyak yang lebih perlahan.
>> LAUREN Carvalho: Sebenarnya, terdapat seolah-olah menjadi masalah dengan kereta berhias.
>> LUCAS Freitas: Jenis sebab bagi itu, anda boleh berfikir, bagaimana dalam binari
anda boleh mewakili integer dengan meletakkan 0 dan 1 ini.
>> LAUREN Carvalho: Itu perkara seterusnya.
>> LUCAS Freitas: OK.
Awesome.
>> LAUREN Carvalho: Hanya memegang pemikiran itu.
>> LUCAS Freitas: OK, saya akan memberitahu anda kemudian.
>> LAUREN Carvalho: Sebelum kita masuk kepada apa yang Lucas hanya mengatakan, operator
keutamaan.
Ini adalah akal.
Anda semua telah melakukan ini mencukupi.
Jadi, hanya jika sesuatu dalam kurungan, ia akan berlaku pertama.
Ia pendaraban keutamaan lebih samping itu,
tolak, perkara seperti itu.
Jadi sebenarnya, hanya tidak sesiapa mahu beritahu saya apa yang nombor satu sebenarnya
menilai ke?
>> PENONTON: 27.
>> LAUREN Carvalho: 27?
Yeah.
>> LUCAS Freitas: Biar saya memberi gula-gula untuk rakyat.
>> LAUREN Carvalho: Baiklah.
Apa kira-kira nombor dua?
>> PENONTON: 22.
>> LAUREN Carvalho: 22, yeah.
Saya tidak tahu yang mendapat itu.
Nombor tiga?
>> PENONTON: 10.
>> LAUREN Carvalho: 10, ya.
Sejuk.
Jadi modulo.
Lucas, adakah anda mahu menerangkan modulo?
>> LUCAS Freitas: Modulo adalah pengendali ini yang sebenarnya sangat berguna untuk
sekumpulan masalah.
Jika saya 55 modulo 10, apa yang dilakukan ini mari kita mengatakan bahawa saya mahu
membahagi 55 dengan 10.
Apa yang saya dapat?
Rasanya seperti jika saya sebenarnya hanya melakukan bahagian ini, apakah
kali pertama saya mendapat integer?
>> PENONTON: 5.
>> LUCAS Freitas: 5.
Dan kemudian bakinya ialah 5, bukan?
Jadi ia seperti 5 kali 10 tambah 5.
Pada asasnya, apa modulo tidak, ia cuba untuk membahagikan nombor ini dengan satu ini, dan
ia melihat apa yang selebihnya bahagian ini.
>> LAUREN Carvalho: Jadi ia hanya mengembalikan bakinya.
Jadi nombor satu adalah apa?
5.
Nombor dua?
>> PENONTON: 3.
>> LAUREN Carvalho: 3.
Nombor tiga?
0.
Dan empat ialah 1.
Tepat sekali.
>> LUCAS Freitas: Mudah, bukan?
>> LAUREN Carvalho: Kenapa tidak kita skip ini hanya kerana kita tidak benar-benar mempunyai
masa, dan orang seolah-olah untuk difahami.
Jadi di sini adalah apa yang Lucas adalah hanya bercakap tentang.
>> LUCAS Freitas: Satu lagi sebab mengapa saya akan menggunakan Ints bukannya terapung adalah
yang terapung adalah sangat tidak tepat.
Dan kenapa mereka tidak tepat?
David berkata untuk mewakili integer, sebagai contoh, kita menggunakan 0 dan
1, bukan?
Dan kemudian anda pada dasarnya melakukan perkara yang darab, melakukan semua mereka
operasi untuk mengetahui apa nombor perpuluhan anda mempunyai bukannya binari itu.
>> Apa yang berlaku sekarang jika saya cuba untuk meletakkan titik perpuluhan?
Sebenarnya, sebagai contoh, jika saya mempunyai bilangan seperti 3,33333?
Rasanya seperti 10 ke atas 3.
Bagaimana saya akan menyimpan semua 3 bahawa saya mempunyai selepas itu?
Ia benar-benar sukar, bukan?
Anda tidak boleh hanya memberitahu komputer, hey, saya mempunyai 3, dan
maka anda melakukan itu selama-lamanya.
Sebenarnya komputer tidak bijak untuk ini.
>> Jadi, pada asasnya semua komputer anda tidak adalah yang ia cuba untuk meletakkan seberapa banyak digit sebagai
ia boleh sehingga memori yang anda ada.
Jadi mari kita mengatakan bahawa ia akan mengatakan 3,3333, dan itu sahaja.
Jadi ia bukan dapat benar-benar menyatakan tepat apa apungan iaitu.
>> LAUREN Carvalho: Kami mempunyai beberapa terhingga bit, yang bermaksud bahawa tidak
setiap nombor perpuluhan akan menjadi dapat diwakili dengan tepat.
Dan sebagainya dalam contoh ini, jika kita mencetak 0.1, kami kini percetakan
keluar 20 tempat.
>> LUCAS Freitas: Sama seperti saya memberitahu anda lelaki, anda boleh meletakkan sebarang nombor.
Tetapi jika anda hanya melakukan kedua-dua tempat, anda akan mendapat 0.10, tetapi jika anda meletakkan 20
tempat, ia akan menunjukkan kepada anda sekumpulan 's kerana ini adalah apa yang anda boleh meletakkan
dalam memori, bukan?
>> Tetapi di sini, sehingga 0, dan kemudian hanya meletakkan ia satu
sekumpulan nombor rawak.
Ini adalah jenis seperti beberapa -
>> LAUREN Carvalho: Ini adalah kerana kita tidak dapat mewakili perpuluhan ini
tepat dengan bilangan bit yang kita ada.
>> LUCAS Freitas: Dan kemudian komputer pada dasarnya
memberikan anda beberapa sampah.
Ini bukan sebenarnya nilai nombor.
>> PENONTON: Ia sehampir ia boleh mendapatkan [didengar]
menggunakan [didengar].
>> LAUREN Carvalho: Jadi implikasi ini ialah katakan bahawa bukan
menjadi 0.100014, apa sahaja, bagaimana jika ia adalah 0,0999 -
baik, OK.
Mari kita berpura-pura bahawa jawapan yang sebenar untuk ini adalah 0,9999999.
Yang sangat dekat dengan 1, tetapi ia tidak betul-betul 1.
Ia 0,99999.
>> Ini bermakna bahawa jika saya mengambil 0.999, dan saya membuangnya ke int, saya mendapat 0.
Saya tidak mendapat 1.
>> LUCAS Freitas: Kerana ingat, pemutus dari apungan untuk int, anda hanya
mengabaikan semua tempat perpuluhan.
Anda hanya mengabaikan mereka.
Tidak ada perkara seperti pembundaran atau berlari ke bawah apabila anda typecast.
Sebenarnya, terdapat fungsi ini tidak pembundaran, yang sangat
penting, tetapi anda hanya berfikir bahawa apabila anda typecasting, ia hanya
akan memadam segala-galanya.
Jadi, walaupun anda mempunyai 0,99999, ia akan hanya memberi 0 jika anda typecast
[Didengar] integer.
>> LAUREN Carvalho: Jadi hanya benar-benar sedar titik terapung di jitu,
terutamanya apabila anda mula menggunakan kereta berhias di Pset1.
Tetapi berjalan kaki melalui perlu memberi amaran kepada kamu daripada itu juga.
>> LUCAS Freitas: Dan sebenarnya ia benar-benar keras, sebagai contoh, jika saya
apungan jawapan 1 sama 1.0 ke atas 10, dan kemudian terapung jawapan 2
sama 10.0 lebih 100.0.
Mereka adalah nombor yang sama, bukan?
0.1, bukan?
1 lebih daripada 10 atau 10 lebih 100.
Tetapi sekarang jika saya cuba untuk melihat kesamaan, seperti jika jawapan 1 adalah bersamaan dengan menjawab 2,
mungkin ia tidak benar-benar akan menjadi perkara yang sama.
Jadi kereta berhias adalah jenis seperti itu.
Mereka seperti melakukan kesaksamaan.