[Powered by Google Translate] Lexi ROSS: Baiklah, hi, semua orang.
Welcome to 1 supersection CS50.
Ini akan menjadi minggu hanya supersections.
Selepas ini, anda akan pergi ke bahagian biasa dengan anda
diberikan TF.
Tetapi minggu ini, kita lakukan dalam sedikit yang berbeza
format, walaupun format sebenar, bagaimana ia akan pergi
untuk jam berikutnya dan setengah atau lebih, akan menjadi cantik
serupa dengan apa yang anda akan untuk melihat
seluruh semester.
>> Jadi apa yang kita akan lakukan adalah mulakan dengan pergi ke atas
bahagian seksyen set masalah anda.
Jadi jika anda telah membaca lebih set p, yang diharapkan anda mempunyai,
anda akan melihat bahawa terdapat satu bahagian yang dipanggil "A Seksyen
Soalan ", dan ini adalah bertujuan untuk akan hilang
lebih dalam seksyen anda.
Jadi, anda mempunyai kelebihan dengan berada di sini dalam yang anda dapat
pergi ke atas soalan-soalan yang lebih berasaskan konsep.
Dan selepas kita berbuat demikian, kita akan pergi lebih dua lepas
soalan, seksyen yang lebih banyak menyelam
ke soalan jenis pengekodan.
Jadi, kita sebenarnya akan mempunyai anda semua mengambil beberapa
minit bagi setiap soalan, cuba untuk menyelesaikannya sendiri, dan
maka kita akan datang bersama-sama menggunakan CS50 baru
Ruangan alat dan pergi ke atas jawapan supaya anda semua mempunyai
kod yang betul untuk menyemak.
>> Jadi beberapa pengumuman.
Jangan lupa bahawa ada waktu pejabat setiap malam ini
seminggu di Annenberg 8-11, jadi jangan ambil
kesempatan daripada mereka.
Dan juga, jangan memulakan p menetapkan terlambat ke minggu.
Mula malam ini atau malam esok selewat-lewatnya.
Anda akan menyesal jika anda menunggu terlalu lama untuk memulakan
dan berlari ke dalam isu-isu.
Jadi mengambil nasihat kami dan pastinya bermula awal.
Ini akan menjadi satu cara yang baik untuk bermula dengan
ini soalan seksyen.
Jadi saya Lexi, dengan cara itu.
Saya TF.
Dan ini adalah Dan, yang juga TF.
DAN Bradley: Hey, guys.
Lexi ROSS: Dan dia akan mendapat
bermula dengan soalan.
>> DAN Bradley: Baiklah.
Jadi saya akan hanya memperkenalkan pengkompil sedikit Pasangan
isu-isu yang kita pergi untuk bercakap tentang dan hanya pergi melalui
beberapa jenis idea-idea konseptual yang perlu kita sebenarnya menjalankan
kod, sama ada di dalam perkakas atau dengan jenis kami palsu
peralatan, Main CS50 dan kawasan.
Jadi mari kita hanya melihat jika sesiapa di khalayak mempunyai apa-apa idea
tentang apa yang kita berbicara tentang.
>> Jadi apa yang adalah sebuah perpustakaan dalam konteks kod?
Sesiapa yang mempunyai apa-apa idea?
Okay.
Manis.
PENONTON: Seperti saham fungsi bahawa orang lain
telah diprogramkan bahawa kita boleh membina?
DAN Bradley: Tepat sekali.
Jadi perpustakaan adalah saham fungsi bahawa orang lain
telah diprogramkan bahawa kita tidak perlu
semula melaksanakan diri kita sendiri.
Jadi kita mempunyai perkara-perkara seperti standard pustaka I / O,
cs50.h perpustakaan, yang beberapa perkara bahawa dunia,
Internet, kakitangan telah dibuat yang menjadikan kita
hidup mudah kerana coders.
Jadi bagaimana anda mencetak perkara untuk skrin?
Saya tidak mempunyai idea, printf adakah ia bagi saya.
Ia adalah sesuatu yang orang lain telah dibuat bahawa adalah
hebat dan kerja-kerja yang agak baik.
>> Okay.
Jadi untuk menggunakan perpustakaan, di sisi lain, bagaimanapun, anda mempunyai
untuk benar-benar melakukan beberapa perkara tambahan dengan kod anda.
Jadi, anda perlu menggunakan perkara-perkara seperti ini # include.
Apakah yang melakukan?
Apakah peranan yang dimainkan bahawa apabila anda mempunyai dalam program?
PENONTON: Ia membolehkan anda membuat penggunaan mana-mana fungsi yang
[Didengar]
perpustakaan dengan hanya menggunakan definisi yang sudah mempunyai
[Didengar]
perpustakaan.
DAN Bradley: Okay.
Ia membolehkan anda tarik fungsi perpustakaan kepada kod anda, tetapi
ia tidak dalam cara yang tidak betul-betul sama seperti seperti
-Lcs50, yang kita akan mendapat dalam satu minit.
Ia hanya membolehkan pengkompil tahu bahawa hey, terdapat-
fungsi yang akan tampil dalam kod anda.
Berhati-hati bahawa jika mereka tidak sepenuhnya diterangkan dalam kod
yang di hadapan anda, ada beberapa fungsi perpustakaan
yang akan menjaga ia.
>> Jadi dalam kes printf, yang kita akan pergi ke beberapa
masa hari ini, adalah standard pustaka I / O.
Jadi, semasa saya tidak menentukan printf mana-mana sahaja dalam kod saya pernah,
standard I / O menjaga ia untuk saya, dan saya akan melakukan # include
stdio.h, dan ia akan menarik dalam fungsi-fungsi ini bahawa saya
tidak pernah ditakrifkan.
Jadi, apakah perbezaan, maka, antara ini # include
dan lcs50?
Apakah lcs50 lakukan apabila saya lulus ia ke
pengkompil, seperti dilafaz?
Sesiapa yang mempunyai apa-apa idea?
Okay.
Yeah?
PENONTON: Ia membolehkan anda mengakses perpustakaan CS50?
DAN Bradley: Ia membolehkan anda mengakses perpustakaan CS50 dalam
bahawa ia memberitahu pengkompil, dilafaz, bahawa hey, ini adalah di mana
anda sebenarnya pergi untuk mendapatkan fungsi-fungsi ini.
Jadi # include mengatakan terdapat
fungsi-fungsi tempat.
Lcs50-kata, pergi ke tempat ini dalam komputer anda -
itulah perpustakaan cs50 -
dan tarik sehingga kod sebenar untuk fungsi-fungsi ini.
Adakah yang masuk akal, semua orang?
>> Jadi semua ini adalah perkara-perkara yang untuk membantu pengkompil anda
bersama-sama dengan membuat kod sebenarnya dikendalikan.
Soalan cepat.
Adakah orang tahu apa pengkompil?
Good sense?
Ia pada asasnya mengambil kod bertulis bahawa anda mempunyai,
ditukarkan kepada perduaan, menukar kepada kod mesin,
jadi komputer anda sebenarnya boleh memahaminya.
Dan tanpa berlengah-lengah lagi, kita akan pergi ke lebih
sebenar pengekodan senaman yang anda semua akan mempunyai beberapa menyeronokkan
tenggelam gigi anda ke dalam, dan Lexi akan pergi ke bahawa.
>> Lexi ROSS: Okay.
Menggerunkan.
Jadi kita akan pergi lebih dua soalan di sini.
Jadi yang pertama sebenarnya, anda boleh lihat, ia adalah sedikit
kecil di sini, tetapi pada dasarnya ia meminta anda untuk
menulis program untuk mengambil beberapa input pengguna.
Saya tidak pasti mengapa ada persegi hitam di sana.
Ia adalah misteri.
Ia harus denda, walaupun.
Jadi ia mahu anda untuk mengambil input pengguna dalam Celsius, menukar bahawa
Fahrenheit, dan kemudian memberitahu pengguna apa suhu
akan pada Fahrenheit.
Jadi anda boleh melihat sampel urutan input / output di sini.
Input pengguna - selepas Celsius, berani merujuk kepada
input pengguna.
Jadi pengguna input 100, dan output program
Fahrenheit, 212,0.
Dan perbezaan yang penting dalam program ini adalah bahawa kita
akan hanya mempunyai satu tempat perpuluhan, jadi kita akan melihat bagaimana untuk melakukannya
itu juga.
Dan jadi satu lagi perkara yang perlu diambil perhatian adalah bahawa kita sedang menggunakan a.out
kerana dilafaz, pengkompil, secara automatik nama binari
fail a.out melainkan anda nyatakan dengan bendera tertentu untuk memberi
namanya sendiri, tetapi buat masa sekarang kami hanya akan menggunakan
lalai, a.out.
>> Jadi mari kita sebenarnya mengambil beberapa minit dan cuba untuk menulis
beberapa kod untuk dirimu ini.
Jadi ia adalah 4:15.
Jadi pada 4:20, kita akan kembali dan - oh, betul.
Ruang.
Sejuk.
Ini adalah jenis seperti apa yang kita panggil kod rangka dalam itu
ia adalah rangka, tetapi anda perlu mengisi dalam daging
program untuk benar-benar membuat ia berlari.
Jadi anda boleh melihat # termasuk arahan di sana untuk memasukkan
cs50 dan stdio.
Saya nyatakan dalam komen formula sebenar untuk menukarkan
Celsius Fahrenheit, dalam kes anda tidak ingat dari tinggi
sekolah sains atau barang kecil.
Dan maka ini adalah hanya rangka untuk
Fungsi utama sebenar.
Jadi, segala-galanya yang anda tulis akan pergi di sini.
Dan untuk benar-benar sampai ke ruang ini -
jadi CS50 kawasan boleh diakses menggunakan URL ini, yang Dan adalah
akan menulis di papan, dan saya akan menentukan serta.
DAN Bradley: cs50.net/spaces--
Lexi ROSS: / qWLc -
Saya minta maaf, y.
DAN Bradley: Y?
Lexi ROSS: Tidak, tidak, tidak, tidak.
Itu denda.
qYLcYWfg.
Jadi saya perlu melihat jenis nama semua orang muncul di sini.
>> Menggerunkan.
Ini kelihatan hebat.
Ini bermakna orang yang menyertai ruang.
Jadi jika anda telah tidak mendapat peluang untuk bermain-main dalam
Ruangan lagi, ini sebenarnya adalah apa yang anda akan menggunakan
dengan TFS anda dalam seksyen semester semua.
Bagaimana ia berfungsi jenis semua orang menulis mereka sendiri
kod, dan tiada siapa yang boleh melihat ia sehingga anda menekan Simpan
butang, yang saya menunjuk ke kanan sekarang.
Jadi saya akan tekan Simpan, dan jika anda semua pergi ke nama saya,
yang anda akan dapat untuk melihat ia dalam Orang dalam ini
Angkasa, yang Lexis Beryl Ross.
Jadi bagaimana ia akan melihat anda klik pada nama saya, dan
anda akan melihat Semakan 5, yang
adalah semakan terkini.
Salin hanya Semakan 5 ke ruang anda dengan mengklik padanya.
>> Semua hak.
Jadi mari kita pergi melalui masalah ini bersama-sama, dan saya
sebenarnya akan menulis kod di sini pada skrin.
Anda boleh mengezum masuk sedikit.
Dan kemudian sekali yang saya lakukan, anda boleh menyalin semakan terkini saya
ke dalam ruang anda, jika anda mahu melihat penyelesaian yang terakhir.
Kini, Ruang mempunyai keupayaan untuk saya untuk masuk dan melihat mana-mana
kod bahawa anda semua telah menulis, tetapi hanya kerana ia adalah
seksyen besar dan kita tidak benar-benar mempunyai sama
jenis keupayaan perbincangan sebagai kecil
seksyen ini, kami hanya akan pergi melalui dan saya hanya akan
untuk menulis kod.
Tetapi pasti berhenti saya dengan soalan pada bila-bila.
Kami akan pergi melalui jenis ia langkah demi langkah untuk membuat
pasti kita memahami setiap sebahagian daripada apa yang berlaku di sini.
Semua orang boleh melihat teks ini di sini?
Adakah sesiapa yang mahu ia lebih besar?
>> Jadi, apa perkara pertama yang kita akan lakukan di sini?
Nah asasnya, kerana kita mahu mendapatkan input daripada
pengguna dan kita mahu ia menjadi jenis pengalaman yang baik untuk
pengguna, kita sebenarnya mahu memberitahu mereka apa yang kita cari.
Jadi mari kita mencetak apa yang kita mahu membentuk pengguna.
Jadi hanya tidak mengganggu mengangkat tangan anda, hanya gemeretuk ia dimatikan.
Apakah arahan untuk mencetak sesuatu ke skrin?
PENONTON: printf.
Lexi ROSS: Awesome.
Okay, jadi printf.
>> PENONTON: Hei, Lexi?
[Didengar]?
Lexi ROSS: Pasti.
Jadi printf, seperti yang kita telah sering dilihat dalam kuliah,
perintah untuk mencetak sesuatu kepada aliran output standard.
Jadi, kami ingin meminta pengguna untuk input
suhu dalam Celsius.
Dan sekarang, kita sebenarnya mahu mengambil input yang mereka berikan
kami dan menyimpannya ke dalam pemboleh ubah.
Jadi kita telah belajar sedikit tentang jenis.
Seseorang boleh ingat apa jenis yang kita mahu untuk satu pemboleh ubah
dengan tempat perpuluhan di dalamnya?
PENONTON: Terapung.
Lexi ROSS: Terapung.
Ya, hebat.
Ia adalah apungan.
Demikian.
Dan bagaimana kita akan - petunjuk besar - mendapatkan
terapung dari pengguna?
PENONTON: GetFloat.
Lexi ROSS: Ya.
Sejuk.
Dan pengguna berpotensi bermakna dan cuba untuk memberi kita
nombor negatif, tetapi mari kita tidak perlu bimbang untuk ini
masalah sekarang.
Anda akan bimbang tentang itu sedikit lanjut mengenai anda
kerja rumah pada set masalah.
>> Jadi mari kita menganggap mereka memberikan kita beberapa yang baik, dan kini kita
sebenarnya mempunyai untuk menukar terapung itu dari Celcius untuk
Fahrenheit.
Jadi mari kita berunding dengan formula kami di sini, dan mari buat
pembolehubah baru dan memanggilnya Fahrenheit.
Saya belajar ejaan.
Ia jenis gila, saya tahu.
Dan mari kita bergantung kepada perintah operasi jenis lakukan
kerja di sini, tetapi kita akan menggunakan kurungan hanya menjadi
sepenuhnya lantung dan jelas.
Jadi Celsius kali 9 dibahagikan dengan 5.
Saya akan zum keluar hanya sedikit jadi ini boleh memuatkan atas
satu baris, tetapi saya akan mengezum masuk lagi bagi mereka yang tidak dapat melihat,
jauh di belakang.
Maaf tentang itu.
Isu kursor pelik.
Plus 32.
Okay, adakah sesiapa yang mempunyai apa-apa soalan tentang bagaimana saya dimasukkan ke dalam
formula, atau apa-apa isu dengan itu?
Yeah.
>> PENONTON: Adakah kita perlu untuk meletakkan printf sebelum apungan
Celsius, terapung fahrenheit baris skrip?
Adakah ia perkara perintah yang mereka berada di?
Lexi ROSS: Jadi persoalannya adalah, adakah kita perlu printf
sebelum kita sebenarnya meminta apungan?
Jawapannya adalah yang kita lakukan.
Cara itu, bahawa mereka kursor bahawa pengguna mendapat untuk input
apungan akan berlaku selepas c bercetak, kan?
Dan ia masuk akal jika anda berfikir tentang logiknya, seperti
anda meminta pengguna soalan, dan kemudian anda
menerima jawapan.
Jadi ia mencetak c, dan kemudian ada kursor, kemudian
pengguna boleh menaip dalam nilai, seperti yang kita akan lihat
kemudian apabila kita demo.
Ya?
>> PENONTON: Mengapa kita menggunakan apungan dan tidak double?
Lexi ROSS: Jadi dua, pada dasarnya, kerana nama itu
menunjukkan, memberikan kita menggandakan jumlah
ketepatan sebagai apungan.
Tetapi biasanya dalam C, dalam kursus ini, untuk beberapa
sebab, kita akan menggunakan terapung.
Dan ini adalah benar-benar semua ketepatan yang kita perlu hanya untuk
jenis penukaran suhu asas.
Biasanya, beregu adalah lebih digunakan dalam bahasa Jawa,
terapung adalah lebih biasa di C. Semua betul, hebat.
>> DAN Bradley: Satu lagi.
Lexi ROSS: Satu lagi.
Ya?
PENONTON: Di manakah anda meletakkan Space Bar?
Seperti, [didengar] Space Bar [didengar]?
Adakah ia perkara?
Lexi ROSS: Oh, tidak.
Jadi ia tidak mengapa.
Saya sebenarnya harus meletakkan ruang lain di sini.
Tetapi apakah perkara adalah bahawa anda konsisten
sepanjang kod anda.
Jadi, jika anda memutuskan untuk menggunakan salah satu gaya jarak, pastikan
memastikan ia sepanjang kod keseluruhan anda, atau anda boleh mendapatkan gaya
mata ditolak.
Jadi konsisten adalah kunci.
DAN Bradley: Saya fikir dia telah bercakap tentang ruang yang.
Lexi ROSS: Oh, anda bercakap tentang ruang yang?
Oleh C sebenar?
PENONTON: Ya.
Lexi ROSS: Oh, jadi itu hanya untuk kelihatan, kan?
Supaya cara apabila kita menjalankan kod, jika kita tidak mempunyai ini
ruang di sini, jika ia kelihatan seperti ini, pengguna akan mula
menaip dalam bilangan dan ia akan dihapuskan sehingga hak
terhadap kolon selepas C, dan ia akan kelihatan sedikit
lebih baik jika ada ruang.
Dan anda boleh melihat bahawa sedikit lebih baik apabila kita sebenarnya
menjalankan kod ini, apabila kita selesai.
Menggerunkan.
Ya, satu soalan lagi.
>> PENONTON: Adakah saya perlu meletakkan titik perpuluhan selepas salah satu
[Didengar]?
Lexi ROSS: Jadi anda tidak lakukan, kerana perintah
operasi.
Demikian kerana Fahrenheit sudah apungan,
Celsius, anda tidak perlu untuk jelas membuang mana-mana
nombor lain seperti terapung, walaupun dalam lain
keadaan, apabila anda berurusan dengan ints, anda boleh
perlu meletakkan titik untuk membuang jelas ia sebagai apungan.
Yeah?
PENONTON: Saya hanya tertanya-tanya jika perkara permodalan dalam
arahan ini seperti GetFloat?
Lexi ROSS: Ya, soalan yang baik.
Jadi persoalannya adalah, adakah perkara permodalan dalam
arahan seperti GetFloat?
Jawapannya adalah ya, ia tidak.
Jadi GetFloat adalah, sebagai Dan telah menerangkan lebih awal, perpustakaan
fungsi dalam perpustakaan CS50, dan ia telah ditulis sebagai modal
G, modal F. Jadi, jika anda tidak menulisnya dengan orang-orang ibu
sana, pengkompil tidak akan memahami apa yang
berfungsi anda merujuk kepada.
Okay.
Yeah?
>> PENONTON: Apakah hujah untuk terbatal utama sentiasa?
Lexi ROSS: Ya, itu satu lagi persoalan yang besar.
Jadi kod yang anda telah disalin daripada ruang saya tersilap mempunyai
beberapa lagi hujah.
Jadi persoalannya ialah, adalah hujah ke fungsi utama
sentiasa tidak sah, yang pada asasnya bermakna apa-apa?
Jawapannya tidak.
Anda boleh melihat bahawa kod anda disalin dari awal saya
semakan mempunyai apa yang mungkin kelihatan seperti apa-apa yang benar-benar membuat
rasa sekarang, * beberapa char, argv, argc.
Jangan bimbang tentang bahawa buat masa ini, tetapi anda akan mengetahui kemudian
pada mereka lakukan membuat perbezaan.
Tetapi jika anda tidak menggunakan yang jenis fungsi yang ditambah
yang anda akan belajar tentang kemudian, tidak sah
adalah benar halus.
>> Semua hak.
Dan kita mempunyai satu lagi langkah, yang merupakan yang kita mahu
sebenarnya menunjukkan pengguna apa suhu yang ditukar adalah.
Jadi sekali lagi, kita pergi untuk menggunakan printf, dan katakan f, hanya
untuk demi konsisten.
Dan sekarang kita pergi untuk melakukan sesuatu yang sukar sedikit.
Jadi, kita akan menggunakan bendera, atau sejenis khas notasi,
untuk memberitahu printf hanya mencetak satu tempat perpuluhan.
Dan adakah sesiapa yang berlaku untuk mengetahui apa yang akan kelihatan
suka, sebelum saya menaip ia keluar?
Yeah?
PENONTON: f 0.2%?
Lexi ROSS: Yeah, yeah.
Jadi sebenarnya, ia adalah benar-benar rapat.
0.01f untuk f 0,01%, dan kemudian kita perlu ingat untuk memasukkan
hujah lain printf, yang merupakan pembolehubah itu sendiri,
yang n.
>> Satu langkah terakhir.
Seseorang boleh ingat apa yang adalah dalam fungsi utama kita?
Ya, di sana.
PENONTON: Pulangan?
Lexi ROSS: Tepat sekali.
Jadi, kerana ini adalah pulangan yang utama dalam int, kita mahu
juga kembali dalam int.
DAN Bradley: Peratus perlu di sisi lain.
Lexi ROSS: Okay.
Maaf, guys.
Itu adalah satu kesilapan.
Jadi peratus datang sebelum 0,01.
Jadi% 0,01 f.
Mereka adalah jenis keras untuk ingat.
Ramai orang, seperti saya, hanya melihat mereka sehingga
apabila kita menggunakan mereka.
Ya, di sana.
PENONTON: Mengapa 0.01 dan tidak 0.2 atau 0.1?
Lexi ROSS: Saya tidak tahu, sebenarnya.
Adakah anda tahu?
DAN Bradley: Sebab ia adalah 0,01 berbanding kepada 0.02, atau
0.2, atau 0.1, agak sewenang-wenangnya kepada cara yang
programmer asalnya direka.
PENONTON: Itu bukan apa yang saya maksudkan.
Saya tidak meminta sebab.
[Didengar] sebab mengapa.
Saya mempunyai ia ditulis sebagai 0.2, dan ia menyampaikan 2 -
DAN Bradley: Ya.
Jadi kita hanya mahu satu.
PENONTON: Oh, Okay.
Jadi, anda boleh 0,01 kemudian.
DAN Bradley: 0.1 mungkin juga bekerja.
0,01 berfungsi juga.
Lexi ROSS: Oh, 0 mungkin untuk menunjukkan sifar, jika
ia adalah kurang daripada satu.
DAN Bradley: Ya, saya fikir yang betul.
Jadi 0,01 akan menunjukkan sifar jika ia tidak mempunyai apa-apa
yang akan pergi ke sana semula jadi.
Jadi, jika anda, katakan, meletakkan dalam 100 Celsius, ia akan
keluar 212 biasanya dalam Fahrenheit, seperti 212 tepat.
Jika anda mempunyai 0,01, ia akan menunjukkan 212,0, sebagai
berbanding dengan hanya 212.
Lexi ROSS: Itu betul.
Jadi membaca ia pada dasarnya memberitahu printf, mencetak titik perpuluhan,
dan mencetak 0 jika perlu.
Jika tidak, mencetak kedudukan perpuluhan pertama.
DAN Bradley: Dan kami akan meneroka beberapa ini apabila kita
sebenarnya menjalankan kod.
Lexi ROSS: Ya.
PENONTON: Jadi saya meletakkan 0.1.
Ia masih mencetak sifar.
DAN Bradley: Ia masih mencetak sifar?
PENONTON: Ya.
DAN Bradley: Hm, okay.
Lexi ROSS: Cool.
>> Semua hak.
Lebih banyak soalan mengenai kod ini sebelum saya menyusun dan menjalankan?
Adakah sesiapa yang melihat apa-apa bug di sini, pertama sekali?
Sesiapa melihat sesuatu yang perlu berada di sini?
Jika ini adalah set masalah anda, apa yang akan berada di sini yang tidak
sana sekarang?
Ya, hebat.
Jadi saya tidak termasuk komen kerana saya menyampaikan mereka
secara lisan, tetapi jika saya menulis ini dalam set masalah, saya akan
pasti mahu untuk meletakkan komen untuk menunjukkan apa yang saya
lakukan, pada asasnya, dalam program ini.
Dan anda jenis akan mendapat rasa untuk itu, seperti yang anda bergerak melalui
semester, jumlah yang betul mengulas.
Anda tidak mahu menjadi terlalu lantung dan meletakkan garisan dan
baris komen bagi setiap baris kod anda, tetapi anda
juga tidak mahu untuk tidak menjadi lantung cukup dan meninggalkan
pembaca untuk cuba memikirkan apa yang palang pintu
kod anda lakukan.
>> Okay, sejuk.
Mari kita cuba menjalankan kod ini.
Okay, saya akan untuk zum keluar sedikit.
Sejuk.
Jadi, anda akan notis terdapat butang Main di sini.
Mari kita klik Play.
Jadi anda akan melihat di sini, sama seperti dalam spesifikasi mengenai masalah
menetapkan, terdapat / a.out.
a.out adalah nama laku perduaan, yang merupakan
perkataan lama untuk hanya fail yang terdiri daripada kod binari yang
komputer anda sebenarnya berjalan.
Jadi seperti yang kita harapkan, kita mempunyai C sini.
Jadi memanggil nombor.
PENONTON: 23.
Lexi ROSS: 23.
DAN Bradley: Program anda mengambil masa terlalu lama untuk menjalankan.
Hanya berjalan lagi.
Lexi ROSS: Oh, buruk saya.
Okay.
Ruangan kadang-kadang cerewet.
Ia mahu anda untuk berfikir di atas kaki anda.
Okay, 23.
Menggerunkan.
Adakah semua orang percaya ini?
Sejuk, kerana ia berfungsi.
>> Okay.
Mari kita cuba beberapa lebih.
Mari kita cuba kes kelebihan di sini.
Dalam bidang sains komputer, apabila kita bercakap mengenai kes kelebihan, kita maksudkan
kes untuk program anda untuk menjalankan bahawa adalah jenis yang sangat
tepi input yang munasabah atau bahawa sudut ujian tertentu
logik dalam program anda, dan ini lebih masuk akal apabila kita
melakukan program-program yang lebih rumit.
Mari kita cuba 0.
Menggerunkan.
Kita semua tahu ini.
Sejuk.
Sebarang pertanyaan lanjut mengenai perkara ini sebelum saya bergerak
kepada program seterusnya?
Semua hak, hebat.
Jadi sekarang, kita akan -
adakah anda mahu hanya menggunakan komputer saya?
DAN Bradley: Ya, yang cukup mudah.
>> Baiklah, jadi akan pergi dan bercakap tentang membuat peratusan.
Jadi kami pada asasnya, dalam latihan ini sedikit akan datang, pergi ke
mengambil dua input integer dari pengguna, dengan harapan untuk
bukan negatif pengangka dan penyebut yang positif, dan
pada dasarnya membahagikan mereka dan keluarkan apa yang datang sebagai
peratusan.
Jadi kita mahu ia hanya menerima numerators bukan negatif dan
menerima hanya penyebut positif, dan terus bertanya
bagi orang-orang yang baru jika ia tidak mendapat apa yang ia mahu.
Semua hak?
Jadi memberi yang pergi.
Lexi ROSS: Oh ya, adakah anda mahu lakukan -
oh, mungkin rakyat perlu menyalin kod saya.
DAN Bradley: Ya.
Lexi ROSS: [didengar]
Ruang.
>> PENONTON: Saya mempunyai satu soalan.
Jika saya menggunakan kawasan dan saya mahu menyelamatkan [didengar]
Fahrenheit penukaran, adakah saya menyimpannya dan kemudian membuat yang baru -
Lexi ROSS: Kami hanya boleh melakukan Ruang baru, atau anda hanya boleh
mahu salin dan tampalkannya ke fail teks atau
sesuatu supaya anda mempunyai ia.
DAN Bradley: saya hanya akan menukar nama saya.
Lexi ROSS: Jadi saya hanya disimpan semakan terbaru
tofahrenheit.c, jadi jika anda pergi ke aaaa Lexis Beryl
Ross, anda boleh pergi dalam dan menyalin bahawa code terbaru, dan kemudian
bermula pada satu ini baru, yang saya fikir Dan akan menyediakan
beberapa kod rangka serta.
Okay.
DAN Bradley: Semakan terbaru Saya mempunyai lombong, jadi
ia pada masa yang sangat atas ini, adalah Semakan 4, dan
ia akan mempunyai apa yang anda perlukan untuk memulakan.
Lexi ROSS: Baiklah, dan saya akan menyalin itu ke dalam lombong serta.
>> DAN Bradley: Baiklah.
Saya fikir kita akan hanya mula akan lebih ini, jika
sesiapa yang berminat.
Lexi ROSS: Kita semua berminat.
DAN Bradley: Kami akan mula keluar hanya dengan mengisytiharkan
beberapa pembolehubah. Jadi kita mempunyai pengangka, dan demi
sekarang, saya akan hanya bermula dengan nilai -1,
dan kemudian saya akan menubuhkan sebuah gelung do sementara. Walaupun -
jadi apabila saya mahu ia gelung?
Apabila saya mahu ia terus bertanya -
ya?
PENONTON: Apabila ia adalah kurang daripada atau sama dengan sifar.
DAN Bradley: Mengapa ia tidak boleh menjadi sifar?
PENONTON: [didengar].
DAN Bradley: Ya.
Jadi untuk pengangka, ia hanya sementara pengangka
adalah kurang daripada sifar.
Adakah yang masuk akal kepada rakyat?
Kami terus menggelung manakala pengangka adalah kurang daripada sifar,
kita terus meminta input baru, dan menyimpan menuntut bahawa mereka
input perkara-perkara baru.
Jadi saya hanya akan mempunyai sedikit printf di sini, bukan negatif
num.
Dan kemudian kita melakukan perkara yang sama seperti sebelum ini, kecuali kita lakukan
GetInt, hanya kerana kita mahu untuk melakukannya sebagai
peratusan ints.
Jadi pengangka = GetInt.
>> Okay, sekarang beberapa perkara.
Adakah saya perlu -1 ini di sini?
PENONTON: [didengar].
DAN Bradley: No.
Mengapa tidak?
PENONTON: Kerana anda mendapat nilai rawak daripada pengguna.
DAN Bradley: Tepat sekali.
Tetapi adakah saya mahu mempunyai perisytiharan itu di sini?
Ya.
Mengapa?
PENONTON: Anda perlu mencari di luar gelung.
Jika tidak, anda tidak akan mempunyai pembolehubah untuk selebihnya
program.
DAN Bradley: Tepat sekali.
Skop.
Manis.
Adakah yang masuk akal untuk semua orang?
PENONTON: Bolehkah anda mengatakan bahawa masa satu lagi?
DAN Bradley: Okay.
Jadi jika saya mengisytiharkan pengangka ini di dalam gelung, jika
Saya terpaksa ini bukannya pengangka sebagai pengangka int,
dan saya mendapat menghapuskan ini sepenuhnya,
pengangka akan hilang.
Ia tidak akan wujud di luar gelung ini, kerana segala-galanya
adalah dalam skop ini pendakap kerinting.
Masuk akal?
Okay.
>> Jadi untuk penyebut, kita melakukan sesuatu yang agak serupa, int
penyebut = -
dan saya tidak perlu sama -
lakukan, dan untuk sementara dalam kes ini, apa yang saya mahu?
Apa keadaan yang saya mahu ia masih gelung di atas?
PENONTON: Kurang daripada atau sama dengan 0.
DAN Bradley: Kurang daripada atau sama dengan 0.
Penyebut <= 0.
Jangan lupa koma bertitik anda, anak-anak.
Jadi kita melakukan perkara yang sama seperti sebelum ini, printf positif
penyebut, dan kita mendapat int daripada sini.
Terdapat kita pergi.
GetInt.
Okay.
Dan kemudian pada akhirnya, kita ingin mencetak keluar beberapa peratusan.
Jadi untuk melakukan ini, apa yang rentetan kami perlu kelihatan seperti?
printf.
Mana-mana idea-idea yang lain daripada apa yang saya boleh lakukan di sini?
Yeah?
PENONTON: Mungkin 0.2% [didengar].
DAN Bradley: Ya.
Okay.
Saya akan bermula dengan sedikit pertama,% 0,02%,
petikan, koma.
Dan saya akan membuang baris baru di sini, hanya kerana saya
seperti garisan baru apabila saya melakukan perkara-perkara.
Apakah jenis ungkapan matematik yang perlu saya ada di sini?
PENONTON: kurung dan terapung.
DAN Bradley: Baik.
Mengapa saya mahu mempunyai ia dalam apungan?
PENONTON: [didengar].
DAN Bradley: Baik, baik.
Terapung.
PENONTON: Pengangka.
DAN Bradley: Pengangka?
Okay, jadi saya melakukan pengangka apungan.
Terbahagi oleh: PENONTON -
DAN Bradley: Dibahagikan dengan?
PENONTON: penyebut.
DAN Bradley: Adakah saya berbuat penyebut, atau yang perlu saya lakukan apungan
penyebut?
PENONTON: Hanya penyebut.
DAN Bradley: Okay.
PENONTON: Dan anda boleh membiak dengan 100.
DAN Bradley: Dan saya darab dengan 100.
PENONTON: Dan kemudian kurungan seluruh ungkapan.
DAN Bradley: Ya.
>> Okay.
Kelihatan baik?
Mari kita cuba.
-50.
Baik, 50.
0, 100, 50%.
Ia bekerja keluar seperti yang kita mahukan.
Adakah kod ini masuk akal kepada rakyat?
Saya akan menyimpan ia supaya anda boleh mendapatkan salinan.
Yeah?
PENONTON: Mengapa tidak anda perlu untuk meletakkan [didengar]?
DAN Bradley: Di mana?
PENONTON: Seperti, apabila anda mengatakan penyebut sama
[Didengar].
DAN Bradley: Apabila saya mempunyai sini?
Mengapa saya akan mempunyai int sebelum ia?
PENONTON: Kerana satu lagi mempunyai int sebelum ia.
DAN Bradley: Nah, jadi yang tidak berada dalam gelung, betul-betul?
Jadi saya mengaku ini penyebut int atas gelung,
dan saya tidak mempunyai ia dalam gelung kerana saya akan
mengisytiharkan ia sekumpulan kali, dan ia sebenarnya tidak membawa
ke mana-mana sahaja dalam program ini.
Lexi ROSS: Ya, perkara penting yang perlu diingat ialah bahawa
pembolehubah hanya perlu diisytiharkan sekali.
Jadi bayangkan ia seperti memperkenalkan pembolehubah baru
ke dalam dunia dengan memanggil ia int atau float atau barang kecil, dan
apabila ia diisytiharkan, semua yang anda perlu lakukan untuk mengubahnya adalah
hanya memanggilnya dengan namanya: penyebut, atau x, atau y.
Anda hanya perlu untuk benar-benar memanggil ia int an hanya sekali.
>> DAN Bradley: Ya.
PENONTON: Bolehkah anda terangkan perbezaan antara% d
% f dan jika anda pernah mengisytiharkan
ubah sebagai nombor perpuluhan?
DAN Bradley:% d Jadi dan f% di sini?
Lexi ROSS: Jadi d sebenarnya merujuk kepada hanya satu angka, tidak
perpuluhan, yang merupakan jenis mengelirukan.
Tiada jenis data sebenar yang dipanggil perpuluhan, dan apabila anda
ingin mencetak keluar int an, anda merujuk ia sebagai% d, atau
% Apa sahaja-d. F adalah untuk apungan, yang anda akan berfikir ia
akan i, tetapi ia sebenarnya d bagi int.
>> DAN Bradley: Ya?
PENONTON: Jadi dalam program lain, kenapa kita tidak hanya melakukan
perkara yang sama apabila anda mengatakan Fahrenheit?
Mengapa tidak kita meletakkan, seperti?
DAN Bradley: Di bawah sini?
Anda boleh mempunyai.
Ia akan menjadi benar sah.
Saya suka melakukannya dengan cara ini, orang lain suka memisahkan
ia keluar ke dalam barisan yang berlainan kod.
Sama ada cara berfungsi dengan baik.
Apa?
>> PENONTON: Bolehkah anda terangkan apa%
[Didengar]?
DAN Bradley: Okay, jadi peratus, peratus.
Betul, saya akan pergi lebih ini.
Peratus pertama dipanggil watak melarikan diri, dan ia hanya
berkata perkara yang di sebalik ini bukan sebenarnya kod.
Jadi ini peratus pertama, betul,% 0,02 f, semua mereka f% 0,02
maksud sesuatu untuk printf sebagai fungsi.
%%, Saya hanya mahu ia sebenarnya hanya mencetak
peratus tanda.
Jadi saya tidak mengatakan ada apa-apa yang penting di sebalik itu.
Saya hanya berkata terdapat tanda peratus di belakangnya.
Sila mencetak tanda peratus.
Jadi peratus, maka peratus lagi.
PENONTON: Bolehkah anda menunjukkan apa yang ia akan kelihatan seperti jika anda mempunyai
terapung berdasarkan baris lain?
DAN Bradley: Oh yeah, pasti.
Jadi, saya diminta untuk menunjukkan apa yang ia akan kelihatan seperti jika saya
mempunyai ini pengangka apungan, semua matematik ini, on-line lain.
Jadi peratus apungan = -
dan saya akan menghilangkan ini dan hanya meletakkan dalam peratus.
Dan ia melakukan perkara yang sama, saya hanya
mempunyai pemboleh ubah lain.
>> PENONTON: [didengar].
DAN Bradley: Tatal ke apa?
PENONTON: Jadi yang saya boleh melihat [didengar].
DAN Bradley: Apa yang tidak boleh anda lihat?
PENONTON: Maaf, saya [didengar].
DAN Bradley: Ya.
PENONTON: Jadi jika kita menggantikan watak melarikan diri,
andaikan kita mahu mempunyai tanda dolar sebaliknya, hanya untuk
contoh, tanda dolar belakang peratus?
DAN Bradley: Nope.
Ia hanya satu dolar, hanya satu dolar tanda, kerana dolar
tanda tidak bermakna apa-apa untuk printf.
Persoalannya ialah, adakah saya perlu untuk mempunyai watak melarikan diri untuk
simbol seperti tanda-tanda dolar?
PENONTON: Jadi apapun yang berkaitan, terdapat mana-mana kes-kes lain yang
kita perlu tahu apabila sesuatu seperti peratus
tanda mungkin bermakna sesuatu [didengar]?
Lexi ROSS: Ya.
Tidak semestinya tanda peratus, tetapi backslash, lihat
bagaimana kita mempunyai akhir tindak balas di sini?
Mari kita mengatakan bahawa kita benar-benar mahu untuk mencetak tindak balas, kita akan mempunyai
untuk melarikan diri bahawa -
dan ini akan bunyi mengelirukan -
dengan backslash lain.
Jadi, jika kita mahu untuk mencetak \ \, kita akan
hanya perlu menaip, atau untuk tambahan
backslash, melarikan diri lain.
Dan satu lagi, jika kita ingin mencetak keluar sebut harga - jadi
pada dasarnya, apa-apa yang jenis menandakan sesuatu yang istimewa
dalam rentetan, kita mahu untuk melarikan diri.
Jadi mari kita mengatakan bahawa kita benar-benar mahu mempunyai quote di sini, kita akan
mahu lakukan \ ".
PENONTON: Jadi ia biasanya backslash?
DAN Bradley: Ia biasanya backslash.
Lexi ROSS: Ya.
Untuk sebab-sebab tertentu di sini, ia adalah tanda peratus.
>> PENONTON: [didengar]?
DAN Bradley: lelaki ini?
Ini adalah hanya untuk mengatakan, perkara itu yang dibahagikan di sini
akan dilayan sebagai apungan demi bahagian.
Jadi dalam kes 50 dibahagikan dengan 100, jika saya tidak mempunyai
terapung di sana, ia hanya akan menjadi 0.
Itu semua yang akan keluar, kerana 50 dibahagikan dengan
100, jika anda tidak termasuk sebarang perpuluhan, adalah 0 -
dan segala-galanya selepas perpuluhan hanya dipenggal mati.
PENONTON: Um,
mengapa tidak kita meletakkan ia sebelum penyebut serta?
DAN Bradley: Jadi sebab kita tidak meletakkan ia di hadapan
penyebut adalah kerana apabila anda membahagikan sesuatu dengan
integer, ia berfungsi baik-baik saja.
Mempunyai bilangan yang lebih besar di bahagian bawah
tidak mengubah apa-apa.
Anda boleh membahagikan oleh integer baik-baik saja.
Ia hanya tidak benar-benar perkara.
Anda boleh, ia tidak akan mengubah apa-apa.
PENONTON: Jadi jika anda mahu tiga tempat perpuluhan, akan
anda meletakkan peratus 0,03?
DAN Bradley: Ya.
Anda akan meletakkan% 0,03 jika anda mahu
tiga tempat perpuluhan.
>> PENONTON: Dan melakukan arahan, apakah perbezaan antara
itu dan hanya melakukan manakala di atas?
DAN Bradley: Jadi do sementara berbanding gelung sementara dua
arahan agak serupa.
Satu-satunya perbezaan adalah anda menjalankan kod sekali, anda menghadapi
kod di dalam masa gelung satu sebelum
membuat apa-apa cek sebenar.
Jadi ia juga sebab yang boleh saya katakan penyebut tanpa memberi
ia beberapa.
Jadi jika saya berkata int penyebut, dan kemudian sementara (penyebut <=
0), ia tidak mungkin walaupun
jalankan dalam kod.
Ia akan membuat cek yang sebelum ini -
jadi di sini.
Jadi, jika saya terpaksa ini gelung sementara di sini, saya perlu mempunyai
penyebut sama, katakan, -2 atau beberapa nombor kurang
daripada atau sama dengan 0 supaya ia sebenarnya akan cuba menjalankan kod
di dalam pertama.
Jadi secara umumnya bercakap, anda mahu menggunakan gelung do sementara
bukannya gelung sementara apabila anda meminta untuk input pengguna
kerana menjalankan kod sekali, meminta sesuatu yang pengguna
akan memberi anda adalah umumnya penyelesaian terbaik, berbanding
hanya mempercayai apa sahaja yang anda dimasukkan ke dalam untuk memulakan dengan.
PENONTON: Dan lakukan sentiasa diikuti oleh seketika.
DAN Bradley: Adakah diikuti oleh sebahagian beberapa kod yang anda
mahu melaksanakan, dan kemudian manakala sesetengah keadaan adalah.
Lexi ROSS: Fikirkan ia seperti satu arahan jenis dipecahkan
kepada dua bahagian.
Ia adalah do-sementara, tidak seperti di sini adalah lakukan, dan kemudian saya
akan menambah beberapa ketika, ia hanya do-sementara.
>> PENONTON: Saya memahami sebab mengapa anda menggunakan
dua tanda peratus, tetapi anda boleh menjelaskan kepada saya mengapa kita perlu
mempunyai [] didengar?
DAN Bradley: Okay, jadi tanda satu peratusan hanya mengatakan
printf, di sini adalah satu arahan yang saya mahu anda
diisi dengan beberapa nombor.
Jadi saya mahu anda untuk mengisi dengan dua tempat perpuluhan dan
terapung, dan anda akan mendapati apungan pada akhir
arahan, ia peratus ini.
Adakah yang masuk akal?
PENONTON: Ya.
DAN Bradley: Okay.
>> PENONTON: Apakah ada sesuatu tentang gelung do-manakala
jika keadaan ini tidak dipenuhi, jika anda mendapat
nombor negatif untuk pengangka anda, ia hanya akan menyimpan
bertanya dan akan terus meminta pengguna?
DAN Bradley: Ya.
Jadi, jika keadaan semasa tidak dipenuhi pada akhir
buat-sementara, ia akan berjalan kembali ke permulaan.
Ia hanya gelung.
Jadi ia adalah seperti gelung sementara bahawa keadaan telah tidak
dipenuhi.
Ia hanya berjalan satu masa yang lebih.
Yeah.
PENONTON: Jadi, jika anda melakukan ini, boleh anda, untuk sementara anda,
meletakkan dua syarat dalam?
DAN Bradley: Anda boleh.
Ia bergantung apa yang anda meminta.
Jadi anda boleh meletakkan dua syarat dalam gelung sementara jika anda mempunyai
semua dalam sejenis operator Boolean, yang berbunyi
hodoh, tetapi ia adalah pada dasarnya penyebut ini adalah kurang daripada atau
bersamaan dengan sifar, sama ada pulangan benar atau palsu, betul?
Ia adalah sama ada kurang atau sama dengan sifar atau tidak.
Jadi anda boleh melakukan operator Boolean lain yang akan mengatakan semasa
ini juga benar atau semasa ini juga palsu.
Jadi ia adalah perkara-perkara seperti dan pengangka adalah lebih besar daripada
sifar, betul?
Itu bertanya, ini akan hanya gelung manakala penyebut adalah kurang
daripada sifar dan anda mempunyai pengangka positif.
PENONTON: Dan anda melakukan dua AND, kan?
DAN Bradley: Dua AND.
Lexi ROSS: Kami akan meliputi yang lebih kemudian.
>> PENONTON: Bagaimana jika seseorang tidak meletakkan dalam positif
penyebut?
Jika mereka dimasukkan ke dalam pengangka negatif, anda boleh meminta mereka
, berkata, dimasukkan ke dalam pengangka bukan negatif dan mempunyai
arahan untuk itu?
DAN Bradley: Anda boleh.
PENONTON: Sekarang ia hanya mengatakan pengangka bukan negatif.
Apa yang akan digunakan untuk itu?
DAN Bradley: Jadi, anda akan mempunyai jika keadaan, jadi seperti jika
pengangkanya adalah kurang daripada sifar.
Lexi ROSS: Anda akan mungkin hanya mahu untuk memecahkan ia ke dalam lebih
langkah-langkah, kan?
Jadi kali pertama mereka dimasukkan ke dalam input, kita hanya akan berkata memberi
kita pengangka atau barang kecil.
Dan kemudian jika mereka melakukan perkara yang salah, ini mungkin menjadi kes
untuk gelung sementara, bukannya do sementara, kerana kami mempunyai
kali pertama kita mempunyai GetInt, dan kemudian manakala input yang
buruk, kita terus meminta mereka untuk input lanjut dengan
jenis yang berbeza teks, seperti yang tidak berfungsi atau memberi kita
bukan negatif pengangka sebaliknya, bahawa jenis perkara.
>> DAN Bradley: Ya?
PENONTON: Bagaimana anda membersihkan barangan yang [didengar]
terminal?
Lexi ROSS: Clear.
DAN Bradley: Ya, anda tidak boleh menaip ke dalamnya.
Lexi ROSS: Sebenarnya, ini bukanlah terminal sebenar.
Persoalannya ialah bagaimana anda membersihkan barangan yang di bawah sana?
Jawapannya ialah ia bukan terminal sebenar, tetapi katakan anda
berada dalam terminal sebenar.
Jelas.
Oh, ia adalah kucing.
DAN Bradley: [didengar]?
Ia adalah satu, betul-betul?
Lexi ROSS: Tidak, itu semua barangan saya.
DAN Bradley: [didengar].
Lexi ROSS: Terdapat kita pergi.
DAN Bradley: Ya?
>> PENONTON: Adakah kerja yang jelas jika anda mempunyai -
suka, katakan anda menjalankan program [didengar] dan ia meminta
anda untuk sesuatu, dan anda tidak mahu.
Bagaimana anda -
DAN Bradley: Control + C?
Lexi ROSS: Ya.
Jadi, jika anda menjalankan program dan sesuatu yang tidak akan
cara yang anda mahu ia dan anda hanya mahu keluar keseluruhannya
program, Control + C. Malah jika anda pada Mac, bukan Apple + C,
Control + C.
PENONTON: Adakah anda mempunyai versi yang betul dalam
semakan dalam profil anda?
DAN Bradley: Saya fikir ia disimpan, bukan?
Yeah.
Lexi ROSS: Ini adalah ruang.
Yeah.
Saya fikir ia Semakan 11.
>> DAN Bradley: Ya?
PENONTON: Adakah C membuat sebarang andaian tentang apa yang
pembolehubah adalah jika anda menentukan pemboleh ubah tetapi tidak menetapkan
apa-apa untuk segera?
DAN Bradley: Jadi ia hanya akan menerima ints ke tempat itu.
Jadi jika anda mengisytiharkan ia -
PENONTON: Jika saya hanya melakukan int penyebut koma bertitik, adakah ia
menganggap bahawa ia adalah bersamaan dengan sifar atau mana-mana nombor -?
DAN Bradley: Nope.
Jadi jika anda tidak menyerahhakkan, katakan, int penyebut untuk sebarang nilai,
ia boleh menjadi apa-apa.
Ia adalah memori lama yang berada di lokasi tersebut.
Supaya ia boleh menjadi negatif 2000000000, ia boleh menjadi positif
2 bilion, dan ia boleh di mana-mana di antara.
Jadi, jika anda sebenarnya menjalankan perkara, pastikan anda
memberikan nilai kepada pembolehubah.
Ini, ia tidak menjadi masalah kerana kami segera
memberikan nilai, tetapi secara umumnya bercakap, yeah.
Mana-mana soalan-soalan lain?
>> Lexi ROSS: Kita juga boleh hanya mengambil soalan umum pada ini
titik pada bahan kuliah, bahan p set, apa sahaja yang anda telah
telah tertanya-tanya tentang, ini adalah masa yang baik untuk meminta mereka.
PENONTON: Jadi dalam walkthroughs, Zamyla
disebut fungsi bulat.
Adakah anda keberatan menghuraikan tentang bagaimana untuk melaksanakan?
Lexi ROSS: Pasti, bagaimana untuk melaksanakan?
PENONTON: Beliau berkata ia adalah bulat.
Lexi ROSS: Oh yeah.
Jadi hanya jadi kita semua mempunyai vocab dan barangan yang sama,
melaksanakannya secara amnya bermaksud sebenarnya bertulis dari awal.
Dan jadi saya tidak fikir dia bercakap tentang jenis bertulis
fungsi bulat.
Dia mungkin hanya bertujuan bagaimana untuk menggunakannya.
Melaksanakan bermakna jenis seperti mewujudkan.
Jadi secara amnya, masa yang apabila kita mahu menggunakan fungsi bulat saya
bermakna, jenis, misalnya,
jika anda mahu untuk pusingan.
Bolehkah anda memberi saya konteks yang lebih sedikit tentang apa yang
masalah?
PENONTON: Untuk mengelakkan imprecisions perpuluhan
dengan menjadikannya apungan.
Lexi ROSS: Ya.
Jadi isu dengan terapung bahawa kita telah jenis dirujuk kepada
bahawa kerana cara mereka disimpan di dalam mesin,
mereka tidak 100% tepat dalam cara yang anda mungkin berfikir
kalkulator anda akan menyimpan mereka.
Ia adalah sukar bagi saya untuk menunjukkan contoh tanpa mengetahui apa yang
konteks adalah dari.
Saya tidak tahu, anda boleh memikirkan sesuatu, Dan?
>> DAN Bradley: Jadi, jika anda meminta untuk, katakan, nombor
lebih daripada 10 dan anda sedang menggunakan pelampung, dan anda menambah satu
kepada apungan setiap masa, ia kadang-kadang akan tunggu sehingga anda telah
mendapat ke 12 sebelum ia akan mengatakan ini adalah sebenarnya nombor
lebih daripada 10.
Terapung mempunyai beberapa isu-isu serius hanya antara ke-32
dan 33 tempat perpuluhan yang akan pergi, jadi ia mungkin 9,9999999, atau
ia mungkin 10.0000001, kan?
Ia tidak benar-benar membezakan antara kedua-dua, jadi jika anda
menunggu untuk perkara-perkara yang lebih besar daripada atau sama dengan 10, anda mungkin
tidak sampai ke sana pada apa yang anda fikir adalah lelaran 10.
Anda mungkin sampai ke sana dalam 11.
Lexi ROSS: Pada asasnya, yeah.
Apabila anda menggelung lebih banyak terapung, itulah apabila
imprecisions berlaku.
PENONTON: Saya fikir, jadi pada dasarnya, ia adalah seperti di p
ditetapkan, ia mahu anda untuk pusingan nilai apung, dan jika anda dimasukkan ke dalam
4,24 untuk jumlah perubahan anda perlu kembali, jika anda hanya melakukan
kali 100, ia sebenarnya akan berubah ke 423 -
DAN Bradley: Kadang-kadang, yeah.
PENONTON: Jadi saya fikir ia adalah sama seperti, bagaimana anda menggunakan pusingan
fungsi dalam kod sebenar untuk membuat ia supaya ia tidak berbuat demikian?
DAN Bradley: Jadi jika anda pembundaran 424 dengan mendarabkan
sebanyak 100 dan membuat ia ke dalam integer, ia akan kadang-kadang
menjadikan ia 423 kerana ketakpersisan itu.
Dan supaya perkara-perkara yang boleh anda lakukan hanya menambah 0,0000003.
PENONTON: Tetapi saya fikir, sebenarnya, mereka mahu
kita menggunakan pusingan.
DAN Bradley: Fungsi bulat?
Terdapat mungkin fungsi matematik, sesuatu dalam
perpustakaan matematik.
PENONTON: # include matematik.
DAN Bradley: # termasuk , dan ada
mungkin fungsi bulat.
PENONTON: Sama seperti pusingan () -?
Lexi ROSS: Pada asasnya, kerana anda mahu untuk pusingan
peratus yang terdekat.
DAN Bradley: Mari kita tarik sehingga halaman manusia.
Jadi alat yang berguna, jika anda tidak tahu -
anda tarik sehingga terminal -
adalah jika anda pergi ke matematik lelaki.
Lexi ROSS: Cool.
>> Jadi anda boleh melihat, jadi manusia adalah singkatan bagi pengguna, bukan manusia, dan
ia membolehkan anda untuk mencari maklumat lebih lanjut mengenai apa-apa yang diberikan
fungsi atau perpustakaan yang anda mungkin berurusan dengan.
Jadi saya hanya ditaip dalam matematik lelaki.
Biar saya zum masuk
DAN Bradley: Kita boleh cuba bulat manusia, terlalu.
Lexi ROSS: Pasti.
DAN Bradley: Dan ini akan menyenaraikan keluar -
matematik manusia akan menyenaraikan segala-galanya yang di perpustakaan matematik,
yang kita akan termasuk.
Ya, kita juga mempunyai bulat.
Lexi ROSS: Jadi saya hanya melakukan pusingan lelaki.
Anda boleh lihat di sini di sinopsis, ia mengatakan # include
, supaya jenis seperti cs50.h, stdio.h.
Dan ia kelihatan seperti ia sebenarnya beban, bermakna
ia mengambil pelbagai jenis hujah, jadi anda boleh pusingan
beregu atau terapung.
DAN Bradley: Pusingan berbanding roundf.
Lexi ROSS: Roundf.
Adakah Zamyla menyebut roundf berbanding pusingan?
PENONTON: Dalam Walkthrough, ia hanya bulat ().
DAN Bradley: Okay, jadi dia mungkin telah menggunakan dua kali ganda,
kemudian, berbanding kepada apungan.
Okay, jadi anda akan membiak dengan 100 dan kemudian pusingan ia, dan
anda akan mendapat nombor yang paling dekat dengan ia, saya fikir.
>> Lexi ROSS: Jadi fungsi bulat mengembalikan kamiran
nilai terdekat untuk pembundaran x separuh kes jauh dari 0,
tanpa mengira arah pembundaran semasa.
Jadi, pada asasnya, anda mahu hanya pusingan sekali anda berada di
nilai integer, jadi anda membiak oleh
100 dan kemudian bulat.
Adakah yang lebih masuk akal?
PENONTON: Untuk menggunakan fungsi itu dalam fail C, anda perlu
meletakkan terapung bulat, seperti jika pembolehubah anda dipanggil q, adakah anda
meletakkan pusingan (mengapung) q, dan kemudian kurungan, atau boleh
anda hanya meletakkan bulat, dan kemudian q dalam kurungan?
DAN Bradley: Jadi jika anda telah cuba untuk menggunakan fungsi ini
sebenarnya, anda akan mengambil bahawa q, q apungan,
atau bagaimana ia mengisytiharkan?
PENONTON: Q ialah apungan.
DAN Bradley: Jadi jika q diisytiharkan sebagai apungan, anda akan
hanya mengambil bulat, dan kemudian memberikan q.
Anda mungkin perlu untuk mengisytiharkan ia sebagai dua kali ganda dalam kes ini.
Lexi ROSS: Ya, melainkan jika anda mahu menggunakan roundf.
PENONTON: saya hanya boleh menggunakan roundf, dan kemudian q dalam petikan?
DAN Bradley: Tidak, tidak dalam petikan, hanya q.
PENONTON: Maaf, tidak dalam petikan, dalam kurungan.
DAN Bradley: Dalam kurungan, yeah.
Lexi ROSS: Maaf yang sedikit mengelirukan.
Apa-apa lagi soalan?
>> DAN Bradley: Ya?
PENONTON: Jadi pusingan pusingan hanya untuk integer?
Lexi ROSS: Ya.
DAN Bradley: Ya, pusingan pusingan hanya kepada integer.
PENONTON: Jadi jika anda mahu mempunyai sesuatu yang tepat yang
diperlukan untuk menjadi [didengar] didarab dengan 100 dan kemudian
dibahagikan dengan 100 lagi jika anda mahu -?
Lexi ROSS: Jadi, jika anda mahu untuk mendapatkan ia ke dalam bentuk perpuluhan?
PENONTON: Yah contoh, misalnya, [didengar] anda
mempunyai 1.25 dan kemudian [didengar]
1,24, jika anda mahu untuk memastikan bahawa sebagai 1,25, anda akan
membiak bahawa dengan 100, pusingan, dan kemudian membahagi dengan 100
sekali lagi untuk mendapatkan 1,25?
Lexi ROSS: Ya.
Jadi persoalannya ialah, kerana pembundaran, sebagai halaman lelaki
berkata, pusingan kepada nilai kamiran terdekat, adakah itu bermakna
bahawa seseorang mahu untuk membiak dengan 100, melakukan
pembundaran, dan dibahagikan dengan 100 lagi, katakan, dapatkan yang betul
nilai dolar dan sen?
Dan jawapannya ialah?
DAN Bradley: No.
Maksud saya, jika anda hanya mendapat nilai apung, jika anda memulakan
dengan nilai apungan sebanyak 1.25, itulah bagaimana ia akan menjadi
ditafsirkan.
Jadi, jika anda kalikan dengan 100 dan kemudian dibahagikan dengan 100,
ia masih akan ditafsirkan sebagai 1,25, atau
mungkin 1,249 ...
.. 999.
Lexi ROSS: Saya fikir soalan adalah seperti, anda akan
darab, kemudian gunakan bulat, kemudian membahagi, jadi ia seperti -
DAN Bradley: Ya.
Saya masih tidak fikir ia mengubah apa-apa, walaupun.
Saya fikir ia masih.
Lexi ROSS: Kerana pusingan tidak - ia menggunakan integer.
Jadi, jika anda cuba untuk pusingan 1,25, anda hanya mendapat 1.
Jadi saya fikir untuk mendapatkan seperti ketepatan tambahan,
jika itulah apa yang anda bercakap tentang.
>> PENONTON: Jadi dalam apa keadaan tidak anda menggunakan bulat, kemudian?
DAN Bradley: Jadi dalam kes ini, jika anda mahu, katakan, nombor
sen dari $ 1,25, anda akan membiak dengan 100, bulat, dapatkan
125, dan meninggalkan kerana itu, sebagai sen, berbanding cuba
menukar kembali ke dalam dolar dan sen.
Lexi ROSS: Oh yeah, yeah, pasti.
PENONTON: Mengapa anda perlu ke pusingan bahawa [didengar]?
DAN Bradley: Jadi jika anda kalikan dengan 100 dan kemudian
segera menukarkan ia kepada integer, yang merupakan lebih
bentuk yang berguna, yang apabila anda berurusan dengan
ketakpersisan, kan?
Jadi ia mungkin 124.999999, dan supaya jika anda kemudian menukar bahawa untuk
integer, ia hanya turun segala-galanya off yang di bawah
perpuluhan.
PENONTON: Jadi, ia akan memberikan anda [didengar].
Bradley DAN: Tepat, bukannya daripada 125, yang merupakan
mengapa anda mahu untuk pusingan.
>> PENONTON: Maaf, anda boleh mengulangi apa yang anda kata anda
perlu lakukan berbanding dengan apa yang anda tidak patut lakukan?
DAN Bradley: Okay.
Jadi apa yang anda harus lakukan ialah jika anda bermula dengan 1.25, darab
dengan 100, dan kemudian pusingan bahawa nombor bulat, bahawa 125 atau
124.9999, dan mendapatkan bahawa kepada integer terhampir.
PENONTON: Jadi jika anda pusingan, yang meletakkan ia
kepada integer terhampir?
DAN Bradley: Ya.
PENONTON: Adakah terdapat cara untuk mengehadkan, jika anda meminta apungan
untuk dimasukkan, ada satu cara untuk menghadkan berapa banyak perpuluhan
tempat-tempat yang anda boleh input apungan untuk?
Lexi ROSS: Tidak menggunakan pelaksanaan CS50.
Maksud saya, anda boleh mengira berapa besar input yang diberikan oleh
pengguna, tetapi yang akan memerlukan pelaksanaan baru
GetFloat, jadi anda tidak perlu bimbang tentang itu.
DAN Bradley: Jadi jika mereka, berkata, input 1,256, anda boleh hanya
menggunakan 1.25 atau anda boleh melakukan 1,26.
Cara sama ada, saya fikir pelaksanaan mengatakan anda boleh -
PENONTON: Anda hanya boleh telah keliling -
DAN Bradley: Apa ia mahu, yeah, selagi anda melakukannya
beberapa jenis pembundaran.
Apa-apa lagi?
Tidak perlu berada kira-kira pembundaran.
Lexi ROSS: Ya?
>> PENONTON: Jika kita mahu untuk memeriksa untuk melihat jika gaya kami
kod adalah sesuai atau gaya terbaik
bahawa ia boleh menjadi, adalah bahawa jenis perkara kita akan membawa dalam
di bawah seksyen ini, atau pada waktu pejabat, atau yang jenis perkara
kita boleh menyiarkan secara tertutup pada benda itu, perbincangan, dan kemudian
meminta nasihat mengenai?
Lexi ROSS: Jadi kita tidak lakukan, pada waktu pejabat atau pada CS50
Bincangkan, kita tidak akan benar-benar gred set p anda terlebih dahulu
untuk gaya, tetapi saya fikir mungkin yang paling berguna
perkara yang anda boleh lakukan adalah untuk melihat contoh-contoh, dan anda
harus mampu untuk mendapati bahawa dalam kod seksyen, yang sepatutnya
talian diedarkan, serta slaid kuliah, terdapat
harus menjadi contoh kod.
Tetapi jika anda mempunyai soalan individu kira-kira satu tertentu
isu gaya, pasti berasa bebas untuk meminta bahawa pada CS50
Berbincang, dan waktu pejabat, atau pada masa anda sendiri.
Tetapi jika ia adalah lebih melihat umum pada kod saya, ia adalah yang terbaik untuk
jenis contoh penggunaan dan cuba untuk menyesuaikan kod anda itu.
Dan saya percaya terdapat panduan gaya pada -
DAN Bradley: Ada panduan gaya.
Panduan gaya yang hebat.
Ia mengajar anda semua yang anda perlukan, dan ia meliputi cukup
banyak contoh setiap dikenali kepada manusia, atau sekurang-kurangnya diketahui kepada saya.
>> Apa-apa lagi?
Semua hak.
Cool, guys.
Lexi ROSS: Mempunyai hari yang hebat.
DAN Bradley: Terima kasih kerana datang.