[Powered by Google Translate] [♪ dengung ♪]
Jadi untuk memperkenalkan anda kepada apa yang saya telah bangun pada skrin;
ia adalah salah satu daripada alat-alat yang kita dibangunkan sepanjang musim panas;
ia dipanggil CS50 kawasan,
dan ia adalah permohonan kerjasama kami pengekodan
bahawa kita akan menggunakan dalam seksyen.
Ia adalah agak sejuk.
Adakah mana-mana anda melihat CS50 run lagi?
Biar saya tarik sehingga yang dalam tab lain.
Run.cs50.net
Jadi
jika anda pergi ke run.cs50.net,
anda boleh melihat ini adalah dengan cara pelayar anda untuk
sebenarnya kod menulis kod C,
dan kemudian berjalan ia,
jadi ia berdua menyusun, berjalan ia, kemudian kembali output kepada anda,
jadi ini adalah jenis cara yang sejuk untuk bereksperimen
dengan beberapa kod bahawa Daud pergi lebih dalam kuliah
dan kita berikan kepada anda pada set masalah
tanpa sebenarnya perlu api sehingga perkakas.
>> Jadi apa Ruang tidak yang berbeza daripada yang
jika saya menghidupkan kembali ke tab ini,
Ruangan CS50 jangka, seperti yang anda lihat di sini,
tetapi jika kita tatal ke atas dan melihat sisi lain tingkap,
anda lihat kanan saya satu-satunya orang di dalam ruang ini,
tetapi apa yang saya akan lakukan adalah meminta anda semua untuk menyertai Angkasa ini dengan saya
dan kita semua akan mendapat kod dalam tetingkap kecil yang sama,
berkongsi kod dengan satu sama lain,
dan bercakap tentang perbezaan di antara kod kami.
Jadi ia adalah jenis perkara yang sejuk -
jadi untuk menyertai, jika anda akan lawati pautan ini di sini di atas
bahawa saya telah diserlahkan,
anda hanya boleh menaip di apps.cs50.net/spaces/vqcspSnO.
>> Baiklah, jadi untuk memulakan,
Saya akan memberikan anda sedikit lawatan ini.
Kami gonna melakukan beberapa kod bodoh sedikit dengan ia pada mulanya,
hanya supaya semua orang agak mendapat rasa untuk apa ia adalah seperti,
tetapi apa yang saya lakukan -
atau apa yang saya kira-kira untuk melakukan yang betul di sini adalah -
Saya akan mengambil kod yang saya telah menulis di sini,
yang seperti yang anda lihat sekarang adalah kosong;
ia tidak berbuat apa-apa.
Ia hanya plat dandang kod, kita akan memanggilnya.
Dengan sedikit tugasan komen.
Saya akan menyimpannya dengan menekan butang Simpan.
Dan apa yang tidak ia
menekankan di sini secara ringkas bahawa kotak semakan save hijau,
dan kini, jika anda mencari saya di Angkasa,
anda klik nama saya,
anda boleh lihat bahawa saya telah mendapat semakan ini di sini,
dan jika anda klik pada revisi itu,
ia akan memuatkan kod yang ke Angkasa anda, terlalu.
>> Begitu juga semua orang dimuatkan bahawa kod ke Angkasa mereka?
Baiklah, jika anda tidak mempunyai lagi, pergi ke hadapan dan berbuat demikian,
dan kemudian apa yang saya mahu anda semua untuk melakukan ini sedikit tugasan seksyen
menulis sedikit menggunakan printf tentang diri anda,
demikian bagi contoh, saya akan menulis
printf ("Nama saya Nate");
dan kemudian saya menulis
"Saya menamatkan pengajian pada 2009
dari Stanford "
dan saya akan suka mendengar tentang
apa tahun anda berada di sekolah,
sama ada anda berada di kolej atau sekolah perniagaan
atau lain sekolah Harvard,
apa yang anda belajar jika ia diketahui lagi;
jika ia tidak dikenali, yang benar-benar sejuk.
Saya tidak membuat keputusan sehingga saya lewat tahun kedua saya.
dan kemudian saya juga akan suka tahu
apa-apa gila anda ingin memberitahu saya atau
sesuatu tentang kelas atau hanya apa-apa lagi.
Apabila anda selesai menulis bahawa dengan printf sedikit anda,
jika anda akan menjimatkan semakan atau sebaliknya
pertama pastikan bahawa anda boleh menjalankan
dan bahawa ia mencetak keluar apa yang anda mahu ia untuk mencetak keluar,
dan kemudian jika anda pergi ke hadapan dan menyelamatkan semakan yang
menggunakan butang Penyemakan Simpan, lelaki ini pertama sedikit di sini,
dan kita agak akan pergi melalui dan melakukan sedikit pengenalan yang cara.
Jadi anda hanya perlu mempunyai untuk memukul butang Main,
yang di sini di sebelah kiri atas,
jadi ini butang Main di sebelah kiri atas akan
menghantar kod anda kepada pelayan kami di mana ia mendapat disusun dan kemudian berjalan.
Jadi apa yang agak gila tentang ini
kod ini sebenarnya tidak berjalan pada komputer anda;
ia sebenarnya sedang dihantar merentasi Internet.
>> Bagaimana PUASANYA, Charlotte?
>> I - okay. : Saya - Saya fikir saya
setelah kesukaran menyimpannya
pada pelayan seperti yang ia boleh - saya boleh menjalankan program.
Dan kemudian apabila saya cuba untuk menjalankannya, ia mengatakan bahawa terdapat kesilapan.
Diisytiharkan sebagai virus, yang tidak di sana lagi.
Oh, mari kita lihat, anda boleh memukul Simpan lagi?
Saya melihat ia pada skrin.
Hak >>, okay, supaya apa yang saya ada.
Dan saya tidak tahu mengapa ia tidak membiarkan saya menjalankan.
Oh, okay, maaf.
Bolehkah anda menjelaskan mengapa - apa yang salah - apa yang tidak bekerja dengan ia?
>> Yeah, kerana saya tidak melihat bahawa terdapat satu barisan terakhir di mana terdapat masih berubah-ubah
bahawa saya telah tidak diisytiharkan, yang saya tidak berniat untuk ia berada di sana.
Ya, perfect!
>> Sekarang jika saya menyimpan ia, saya fikir ia harus bekerja.
Sekarang bahawa anda telah disimpan, ia berfungsi; menggerunkan.
>> Jadi yeah, seperti yang kita pergi melalui -
jadi apa yang sedang berlaku,
Saya hanya akan mengulangi ini untuk kamera.
Apa yang berlaku ialah bahawa variabel ini s
ditinggalkan selepas - Saya menganggap anda dipadam beberapa barangan lain
di mana anda diisytiharkan sebagai,
dan sebagainya ini telah membuang sesuatu di luar dan tidak membiarkan anda menjalankan ia.
Jadi ini adalah apa yang kita mahu lakukan dalam seksyen
ada orang cuba menulis kepingan yang berbeza kod,
menyusun, lihat apa kerja, lihat apa yang tidak,
dan kemudian agak bercakap tentang perkara-perkara ini, kerana ini adalah mata tersandung bahawa
Saya masih menghadapi,
Saya masih - saya lakukan banyak barangan bodoh sepanjang masa,
dan saya tidak tahu mengapa ia tidak berfungsi,
jadi mari kita tarik sehingga semakan Charlotte 3,
dan kami akan menjalankan ia.
>> Jadi, apabila saya berjalan, sekarang bahawa saya telah mendapat kod beliau di sini,
Saya boleh mengezum masuk, tekan butang Run,
Gambar, membina, berjalan ia,
mengatakan ia berlari berjaya, dan jika saya tatal ke bawah,
lihat Charlotte adalah seorang junior di Adams House,
psikologi, menengah dalam bidang ekonomi; menggerunkan.
Great untuk bertemu dengan kamu!
Menggerunkan.
Okay, bergerak ke atas, mari kita pergi kepada Daniel,
pergi ke 3 revisi,
menyusun, jalankan;
mengapa tidak anda memberitahu kami sedikit tentang diri sendiri, Daniel?
>> Panggil saya Dan.
Saya pergi ke sekolah perniagaan di seberang dari anda semua,
dan saya adalah di Marin sebelum sini,
dan ini semua baru kepada saya, jadi yeah.
Jangan merasa buruk, saya 30 dan saya tidak tahu apa-apa barangan ini.
Awesome; terima kasih, Dan!
Baiklah, kita mendapat satu lagi Daniel.
Anda pergi oleh Daniel - anda akan memperkenalkan diri anda, Daniel?
>> >> Pasti, saya Daniel.
Saya seorang mahasiswa tingkat kedua di Mather sekarang.
Saya menumpukan perhatian kepada kerajaan,
tetapi saya mahu mengambil CS50 kerana saya pernah mendengar ulasan yang menarik mengenai kelas
dan saya tidak pernah cuba CS sebelum.
Tatal ke bawah sini dan menunjukkan ini - sejuk.
Beralih, Jared.
Bagaimana ia akan?
Baik >>, bagaimana anda?
Seperti yang anda boleh lihat, saya Penumpu falsafah junior dalam Eliot,
berasal dari selatan California,
dan saya berminat dalam mengambil CS50 kerana saya suka logik,
dan ia seolah-olah benar-benar sejuk untuk melakukan perkara-perkara di dalam komputer, jadi.
Awesome; mana di selatan California are you from?
>> Kira-kira sejam dari [didengar], sebuah bandar kecil [didengar].
Oh, yeah, ayah saya dari Redlands.
Barangan sejuk.
>> Baiklah, Jimmy, bagaimana ia akan, Jimmy?
Baik >>, bagaimana anda?
Melakukan cukup baik!
Beritahu kami tentang diri anda.
>> Saya bayat, dan saya tidak sepenuhnya pasti apa yang saya dengan pengkhususan dalam
tetapi saya agak condong ke arah ekonomi.
Seperti Daniel sebelum saya, saya tidak pernah dilakukan mana-mana CS, tetapi ia kedengaran agak sejuk.
Saya berasal dari Chicago.
Menggerunkan. Jadi menyemak cetakan di sini.
Aku ingin bertanya, adakah ini cetak yang anda harapkan?
>> Tiada, saya terlupa untuk mencetak baris baru.
Saya sebenarnya terlupa bahawa apabila saya menulis perkara yang saya
buat kali pertama, terlalu.
Ia adalah jenis sakit ingat untuk meletakkan mereka secara manual.
Ia akan menjadi baik jika ia hanya tahu bahawa apa yang anda mahu.
>> Okay, Kelly.
Wow, kita mempunyai 2 Kelly; 2 Daniels, 2 Kelly.
Jadi Kelly - adakah anda pergi oleh Kelly Ren?
Okay, menggerunkan.
Atau Kelly, yang saya maksudkan.
>> Jadi yeah, jadi saya Kelly.
Saya seorang mahasiswa tingkat kedua di Pfoho.
Saya mendapat e-mel hari ini bahawa saya masih ada 7 minggu untuk mengisytiharkan kepekatan saya,
jadi saya cuba untuk tidak berfikir tentang hal itu,
dan saya suka baking, berlari, dan Craisins.
Saya tidak mempunyai pengalaman dengan kebanyakan CS;
Saya mengajar diri saya untuk membina laman web apabila saya benar-benar muda,
tetapi saya fikir saya mungkin mengajar diri saya salah banyak kali.
Semoga saya akan belajar sedikit lebih
dan - yeah.
>> Awesome; baik, terima kasih.
Mari kita pergi ke Kelly yang lain;
Saya tidak mempunyai apa-apa - adakah anda mengatakan sesuatu di sini?
>> [Didengar]
Sana ia!
Manis!
>> Baiklah, jadi saya Kelly.
Saya seorang pelajar tahun pertama ijazah.
Saya dengan pengkhususan dalam Minda, Otak, Pendidikan dan.
Saya lulus dalam Franklin & Marshall College pada tahun 2008
dengan major dalam bidang psikologi dan sosiologi
dan kecil di Perancis.
Saya mengambil CS50
kerana saya berminat untuk mendapatkan PhD dalam Neurosains
dan saya berasa seperti ini akan membantu saya memahami teknologi yang digunakan.
Menggerunkan.
Beralih, Mikaela.
Adakah sebutannya yang betul?
Okay, menggerunkan.
>> >> Saya Mikhaila.
Saya seorang mahasiswa tingkat kedua di Kirkland House,
dan saya menumpukan perhatian dalam bidang Kejuruteraan Mekanikal.
Saya benar-benar suka berbasikal, membina basikal musim panas ini.
Saya mengambil CS, sebenarnya,
sebagai keperluan kepekatan,
tetapi anda tahu, saya fikir ia masih jenis sejuk kelas kejuruteraan.
Awesome - anda membina basikal musim panas ini?
>> Yeah.
Wow, seperti bingkai dan semua itu?
>> Uh-hunh (afirmatif).
Wow, itu benar-benar sejuk.
>> [Didengar off kamera sembang]
[Ketawa]
Ya, ia telah begitu lama.
Anda tidak pernah tahu, kan?
Nah, sejuk, terima kasih juga, Mikhaila.
>> Baiklah, Missy.
>> Missy nama saya, saya bayat,
supaya bermakna saya tidak tahu apa-apa!
Saya mahu menumpukan perhatian dalam bidang astrofizik.
Dalam CS50,
Saya berasa seperti pasti akan membantu dengan itu.
Satu fakta pelik tentang saya adalah saya seorang ahli bomba nasional disahkan.
Wow!
Bagaimana yang berlaku?
>> Saya menghadiri akademi
dan pergi melalui neraka untuk banyak minggu
dan mendapat pensijilan saya.
Wow, tahniah!
Itu tidak feat kecil, pasti.
Okay, jadi sekarang kita akan melakukan saya.
Saya satu seterusnya dalam barisan.
: Saya jalankan.
>> Jadi nama saya adalah Nate.
Saya kelas 2009 di Stanford.
Saya adalah Sistem utama Simbolik,
yang serupa dengan Minda, Otak, Kelakuan, kepekatan sini,
tetapi ia adalah jenis campuran
sains komputer, linguistik, psikologi, dan falsafah.
Jenis - yeah, banyak barangan pelik, tetapi ia adalah besar,
dan kemudian saya melakukan sarjana saya dalam Sains Komputer di sana, serta.
Jadi saya baru Harvard tahun ini.
Saya benar-benar mahu masuk ke dalam pengajaran.
Saya menghabiskan 4 tahun lepas di Stanford TA-ing kelas Sains Komputer
dan sebagainya Daud izinkan saya datang pada,
dan saya gonna membantu keluar dengan CS50,
jadi saya melakukan ini sepenuh masa, saya tidak di sekolah grad.
Ia pernah menyeronokkan.
Semoga ia akan terus menjadi seronok, saya pasti ia akan.
>> Baiklah, Sam.
>> Nama saya Sam, Saya seorang mahasiswa tingkat kedua di kolej itu, dalam undang-undang khusus.
Utama saya akan sejarah sains, mungkin, dan Ves menengah,
dan warna kegemaran saya adalah kuning.
Tidak perlu untuk lulus penghakiman atau apa-apa, tetapi ia adalah satu warna yang baik!
Dan Stella.
>> Hi, Saya Stella, saya bayat di Grays.
Saya tidak mempunyai petunjuk apa yang saya telah tertumpu di lagi,
jadi CS50 adalah hanya jenis rawak,
yang menarik.
Malah Fun, Jimmy adalah rakan pertama Harvard lombong,
kerana kami kedua-duanya dari Chicago.
Sejuk, dan Grace - yang sepatutnya menjadi salah satu yang benar-benar bagus, kan?
>> Saya fikir [didengar].
Oh, ya.
[Didengar / off kamera sembang]
Okay; Saya masih belajar, masih belajar.
>> Jadi kita telah mendapat sesuatu yang lain yang jenis yang menarik di sini.
Ya, saya hanya tertanya-tanya, adakah anda mempunyai idea yang sedang berlaku di sini?
Anda tahu bagaimana untuk mentafsirkan ini?
>> Saya sepatutnya meletakkan koma selepas setiap baris tunggal.
Itulah jenis sakit.
Kadang-kadang orang-orang koma bertitik boleh menjadi sakit sebenar untuk mengesan.
Jadi ternyata bahawa
program khas kita menggunakan tahun ini untuk
menyusun kod C kami dipanggil dilafaz,
dan sebab kita telah mula menggunakan dilafaz tahun ini -
kerana kita telah tidak digunakan program itu pada masa lalu;
kita telah menggunakan satu lagi dipanggil GCC yang benar-benar popular -
Dilafaz sebenarnya memberikan anda mesej ralat yang masuk akal.
Yang ini mengatakan "dijangka ';' selepas ungkapan",
dan ia juga memberitahu anda ungkapan selepas itu anda perlu koma bernoktah.
Jadi anda membetulkannya?
>> Yeah, sekarang.
Awesome, biarlah saya tahu dan kita akan tarik sehingga ia, dan kita akan menjalankan.
Tetapi yeah, meletakkan koma bertitik ini dalam adalah jenis sakit.
>> Saya tetap, jadi saya fikir ia harus bekerja.
Awesome - semakan 3.
Yang kelihatan seperti ia.
Baiklah, jadi sekarang jika kita menjalankan,
sana ia pergi.
Barangan sejuk.
>> Semua hak.
Jadi terima kasih kerana berbuat demikian.
Ia adalah besar untuk bertemu anda semua.
Apa yang kita akan lakukan sekarang menghabiskan sedikit seterusnya
kinda menyelam ke dalam seksyen masalah
yang datang dari masalah yang ditetapkan dari minggu ini
dan kami akan melakukan bahawa bagi kebanyakan bahagian
untuk sepanjang penggal,
dan kemudian kita akan menjimatkan 15 tahun lepas, 20 minit atau lebih
untuk bercakap tentang masalah ini menetapkan sendiri
dan kemudian hanya apa-apa soalan lain yang anda mempunyai secara umum tentang kelas.
Itu berkata, apa yang kita benar-benar mahu melakukan
yang telah menyertai semua orang
menggunakan barangan Ruang,
melontar dalam kod, membuang dalam cadangan,
dan bercakap tentang apabila perkara-perkara seperti rehat ini
atau tidak berfungsi, hanya kerana ini adalah perkara-perkara yang
Saya tahu saya terserempak
apabila saya mula pengekodan,
dan benar-benar agak mengecewakan pada masa-masa
kerana jika ia adalah seperti 2 pagi sebelum set masalah anda adalah disebabkan,
jadi hanya untuk pendedahan,
Saya tidak memulakan pengaturcaraan sehingga saya adalah seorang mahasiswa tingkat kedua di kolej.
Ia adalah jenis perkara ini pelik, tidak diketahui
yang saya dengar adalah agak sejuk
dan saya juga mendengar ia boleh menjadi sakit sebenar di punggung
jika anda terlepas dengan koma bernoktah dan itulah kesilapan hanya menjaga program anda daripada bekerja
dan menjaga anda dari tidur,
sudah pasti,
jika anda mempunyai soalan-soalan seperti itu,
jika anda mempunyai kebimbangan seperti itu, biarlah saya tahu,
kerana saya mahu membuat ini satu pengalaman yang baik untuk anda semua.
>> Jadi anda telah lelaki semua turun masalah ditetapkan lagi?
Kinda tahu di mana ia? Okay.
Jadi kita akan pergi ke cs50.net, kerana saya tidak mempunyai akaun ini,
tarik sehingga set masalah,
tarik sehingga masalah set 2, dan kita akan melihat edisi standard hari ini.
Kami akan tarik sehingga spesifikasi di sini.
Tatal ke bawah.
Jadi kita gonna mula mencari di seksyen ini soalan.
Pernahkah anda semua melihat ini seluar pendek lagi?
Okay.
Jadi terdapat seluar pendek pada gelung,
yang dilakukan oleh Tommy, salah satu felo pengajaran kepala.
Ada satu mengenai skop,
Saya percaya yang dilakukan oleh rakan-rakan pengajaran lain yang bernama David
dan kemudian satu di Caesar Cipher juga dilakukan oleh Daud.
Mereka agak sejuk.
Adakah anda semua telah menonton seluar mereka setakat ini?
How've mereka?
Membantu anda? Okay, baik untuk mengetahui.
Jika mereka tidak, anda boleh berkata demikian.
Tetapi sebelum anda berbuat demikian,
telah anda semua melihat soalan-soalan
pada semua?
>> Mari kita bercakap tentang ini sedikit.
Jadi kita telah diperkenalkan sejak beberapa minggu lepas
dalam kuliah
beberapa gelung yang berbeza.
Terdapat gelung,
gelung sementara, dan kemudian gelung do sementara,
dan dalam kuliah, kita telah bercakap banyak tentang
bagaimana mereka gelung semua
agak sama dalam banyak cara,
dan anda boleh melakukan banyak perkara yang sama dengan gelung sementara
bahawa anda boleh dengan gelung untuk.
Anda hanya mempunyai jenis penggunaan kombinasi yang betul pembolehubah dan sebagainya.
dan sebagainya benar-benar
perbezaan sebenar antara semua gelung adalah bahawa
kadang-kadang mereka lebih berguna
untuk menggunakan mereka pada satu-satu masa berbanding pada masa yang lain.
>> Jadi, sebagai contoh,
gelung sementara berbeza daripada gelung do sementara.
Adakah semua orang berasa seperti mereka mempunyai mengendalikan yang baik apabila
do-gelung while lebih
berguna atau apa perbezaan?
>> Saya rasa perbezaan adalah gelung do sementara
berjalan - Saya tidak tahu agak apa istilah,
tetapi siri fungsi dalam gelung.
Mereka secara automatik - ia tidak berjalan sekurang-kurangnya
sebelum ia memeriksa keadaan, atau gelung sementara hanya akan dijalankan apabila
ia terus berjalan - sama ada atau tidak keadaan berpuas hati.
Ya, yang masuk akal?
>> Mari kita melihat sedikit kod.
Jadi hanya mengulangi soalan,
atau jawapan, sebaliknya;
jawapannya ialah
gelung sementara akan memeriksa untuk melihat jika keadaan
yang anda nyatakan dipenuhi
sebelum ia berjalan badan gelung untuk kali pertama,
manakala do-gelung while secara automatik akan berjalan badan gelung,
adalah apa yang kita panggil ia - ia adalah pelik istilah,
tetapi jika saya pernah berkata apa-apa yang tidak masuk akal, biarlah saya tahu -
badan gelung adalah bahawa barangan yang anda meletakkan di antara pendakap kerinting.
Dan dalam gelung do sementara,
bahawa badan dapat dijalankan sekurang-kurangnya sekali,
dan kemudian keadaan mendapat diperiksa sebelum ia berjalan setiap kali berturut-turut.
>> Jadi sebenarnya, Sam,
adakah anda keberatan menulis mudah gelung while
di Ruang?
>> Bagaimana anda jenis seperti
membuat baru ...?
Saya hanya memadam apa sahaja yang anda ada di sana.
Ya, hanya membersihkan ia keluar.
>> Well, saya percaya saya mempunyai ini -
yang mana satu yang anda mahu, sementara, atau adakah anda mahu ...?
Ya, hanya melakukan manakala benar, mencetak sesuatu yang keluar.
Dan mari kita lihat.
Alexander, saya sedar kita tidak memperkenalkan anda.
>> Oh, itulah denda.
Adakah anda - anda boleh kod gelung do-manakala bagi kita?
>> Ya, saya akan cuba.
Baiklah, kita hanya akan tarik ini pada skrin,
supaya anda jenis mempunyai mengendalikan apa perbezaan.
>> Jadi di sini adalah apa yang dilakukan Sam.
Beliau mendapat integer dipanggil i
bahawa dia dimulakan hingga 17.
Kemudian dia berkata sementara (int i = 17)
printf ("Nama saya Sam.");
Jadi apa yang berlaku apabila kita menjalankan kod ini?
Terdapat ralat; apakah kesilapan itu mengatakan?
Mari kita tarik dan bercakap mengenainya.
Ralat berlaku, ia berkata.
Mari kita tatal ke bawah.
Jadi ia memberikan kita kesilapan ini, dan ia berkata,
"Hei, saya dijangka ungkapan."
Itu agak samar.
Ya, jadi tepat - dan sekali lagi,
akan ada satu lagi pepijat kecil yang kita akan menangkap dalam hanya sesaat.
Tetapi ini adalah satu lagi jenis mereka perkara pelik istilah,
jadi ini int i = 17
bukan adalah ungkapan.
Apa yang kelihatan seperti ia melakukan adalah ia
mengisytiharkan integer dipanggil i
dan menetapkan ia sama kepada 17
atau, sebaliknya, meletakkan 17 ke int itu dipanggil i.
Dan yang tidak masuk akal
dalam konteks gelung sementara ini.
Ia tidak masuk akal, seperti yang kita akan lihat,
dalam konteks untuk gelung, kerana bagi pengisytiharan gelung bermula
dengan itu untuk int i sama sesuatu
dan seterusnya.
>> Jadi anda pula -
menetapkan sesuatu, hak semua.
Di sini ia pergi; menggerunkan.
Jadi sekarang benda kelihatan sedikit berbeza.
Beberapa perkara telah berubah.
Bolehkah anda memberitahu kami apa perkara yang telah berubah?
>> Saya mengambil int, jadi terdapat pengisytiharan tidak [didengar] bukannya tugasan.
Tanda satu sama, saya meletakkan 2 tanda-tanda yang sama, yang bermaksud sama.
Menggerunkan.
Yeah, jadi apa yang Sam tidak dia mengambil keluar int
yang betul di sini sebelum ini,
jadi jika saya hanya melihat ini - ini adalah apa yang ia lebih awal, ia berkata int,
yang telah mengisytiharkan ia - jadi kami mengambil jenis.
Ada int, char, tali, pendek,
mereka dipanggil jenis.
Jadi anda mengambil jenis
dan kemudian sebelum ini,
dia mempunyai hanya satu tanda sama
dan apa yang dia kata adalah masalah tentang perkara ini telah
apabila anda mempunyai 1 tanda sama,
bahawa pengendali tugasan.
Itu tidak menguji sama ada atau tidak 2 perkara yang sama.
Itu sebenarnya menetapkan sesuatu yang bersamaan dengan sesuatu.
Kami meletakkan nombor 17 ke i pembolehubah.
Jadi untuk melakukan yang jenis perbandingan,
anda perlu menggunakan dua sama,
yang jenis perkara pelik
tetapi adalah satu kesilapan yang agak biasa.
Jadi satu perkara yang lain saya akan menunjukkan, jika anda tidak keberatan,
adalah bahawa dalam
kami berfungsi dengan di sini di int utama,
anda melihat bahawa badan fungsi kami
mengimbangi dari sebelah kiri
oleh 4 ruangan atau tab.
Sebab yang kita lakukan ini
adalah hanya untuk pembacaan.
Seperti yang anda boleh lihat dalam gelung sementara Sam di sini,
dia tidak inden pada semua,
dan yang tidak menjejaskan fungsi kod.
Ia akan berjalan sama.
>> Jadi, sebagai contoh, jika kita datang ke atas di sini
dan tekan butang Main kami, ia akan membina,
ia akan lari,
dan apa yang akan berlaku?
Mengapa ia masih katakan berjalan?
>> Kerana ia akan terus mengulangi hi.
Tepat sekali, dan mengapa ia terus mengulangi hi?
>> Kerana integer tidak pernah berubah, jadi ia sentiasa 17.
Ya, sebenarnya, jadi
mari kita lihat, selepas mengingatkan saya nama anda sekali lagi?
Jimmy. Jadi Jimmy berkata bahawa
sebab ini terus mengulangi hi berulang-ulang kali
adalah kerana keadaan ini sentiasa benar.
Kami tidak pernah mengubah nilai i.
Kami tidak pernah menukar kandungan apa yang disimpan dalam pembolehubah itu.
Jadi pada ketika ini kita mendapat ralat ini bahawa
program anda menjana output terlalu banyak,
dan jika kita tatal ke bawah dan jenis melihat apa yang berlaku di sini,
anda boleh melihat bahawa ia adalah hi, hi, hi, hi, hi, hi, hi semua jalan melalui.
Menggerunkan.
>> Jadi jenis kembali ke titik asal
yang mempunyai lekukan di sini
dalam badan gelung sementara tidak menjejaskan apa-apa.
Program ini masih berlari hanya denda.
Biasanya untuk gaya yang baik -
dan ini adalah sesuatu yang kita lihat dalam set masalah anda -
kami meminta anda untuk inden ini dengan 4 ruang, yang boleh anda lakukan
dengan hanya menekan kekunci tab
atau secara manual meletakkan dalam 4 ruang sendiri.
Sejuk, okay jadi mari kita pergi ke belakang dan melihat
Alexander do-sementara.
>> Hanya kinda mempunyai sedikit masalah.
Okay, mari kita bekerja melalui.
Apakah yang sejuk?
>> Yeah.
>> Okay, jadi di sini kita pergi.
Ini adalah kod bahawa Alexander menulis.
Adakah anda pergi oleh Alex - okay.
Jadi di sini adalah kod bahawa Alex telah menulis.
Jadi, kami telah mendapat pengisytiharan kami utama di sini,
dan kemudian kami telah mendapat variabel ini integer dipanggil i
diisytiharkan di sini.
Kami telah mendapat satu kenyataan do
dan kemudian badan lagi dengan pendakap,
jadi ini adalah badan do sementara -
izinkan saya zoom di atas ini supaya ia lebih senang dibaca -
dan di dalam badan, kita sedang cuba untuk mencetak "ini adalah badan",
i + +,
jadi menokokkan kandungan i dan melakukan ini
sehingga i mendapat menjadi 3,
dan kemudian program kami berakhir.
>> Jadi apa yang berlaku apabila kita menjalankan program ini?
>> Saya harapkan pengecam.
Okay, jadi membina, berlari, kesilapan berlaku.
Apa yang berlaku?
Kami tatal ke bawah di sini,
kita akan mendapat perkara ini agak samar mencari,
koma bernoktah dijangka selepas pengisytiharan tahap tertinggi.
Itu agak pelik.
Adakah sesiapa mempunyai idea apa yang mungkin berlaku?
Agak pelik, yeah.
>> [Didengar] diisytiharkan luar kurungan?
Begitu juga yang tidak memohon maka apabila anda menggunakan kurungan?
Jadi beliau mengisytiharkan lelaki ini luar yang kurungan?
Oh, lelaki ini - pendakap kerinting?
>> Yeah.
Ya, sebenarnya.
Jadi ternyata bahawa
anda boleh sebenarnya tidak mengisytiharkan pembolehubah di sini seperti ini.
Apa yang anda mungkin telah cuba untuk lakukan ialah -
dipotong keluar dari sana -
sama ada anda boleh meletakkan ia dalam pendakap kerinting di sini
atau alternatif lain
adalah untuk meletakkan ia benar-benar di luar.
Dan sebagainya ini - bergantung kepada di mana anda sebenarnya meletakkan perisytiharan itu
pembolehubah bahawa integer,
anda boleh mendapatkan 2 sangat berbeza jenis pembolehubah;
apabila ia di luar utama,
ia adalah apa yang kita panggil pembolehubah global.
Ia adalah di luar skop mana-mana fungsi -
ia bukan dalam fungsi -
sedangkan jika kita meletakkan ia di dalam utama,
suka di sini, maka ia dipanggil pembolehubah tempatan,
kerana ia tempatan untuk skop utama.
Dan kita akan bercakap sedikit lebih lanjut mengenai apa perbezaan
antara 2 jenis dan mengapa anda menggunakan pelbagai jenis pembolehubah,
tetapi buat masa sekarang,
anda hanya boleh menyimpan semua pembolehubah tempatan,
kerana kita tidak mempunyai apa-apa keperluan untuk pembolehubah global.
>> Okay, jadi itulah satu perkara di sana.
Mari kita cuba berjalan ini lagi, lihat apa yang berlaku.
Main, dapatkan satu lagi kesilapan.
Zum dalam sedikit, apa yang kita dapat?
Kita mendapat ini kurungan dijangka selepas melakukan / manakala.
Apa-apa idea apa yang berlaku? Dan?
>> Apakah seketika kemudian kurungan dan kemudian -
Saya tidak tahu jika anda perlu redeclare int,
tetapi lakukan semasa (i <3).
Tepat sekali, yeah.
Jadi ia ternyata bahawa Dan betul-betul betul.
Kita tidak perlu untuk meletakkan jenis ini di sini lagi.
Kita sebaliknya boleh membunuh jenis
dan hanya berbuat demikian.
Semua hak.
Saya akan zum keluar, cuba satu lagi masa.
Melihat bahawa; ia berjalan berjaya.
Jika kita tatal ke bawah, "ini adalah badan" dicetak keluar 3 kali.
Itu cukup manis.
Syabas, syabas, guys.
Dilakukan dengan baik.
Bagaimana ini akan setakat ini?
Kadar yang baik?
Okay, sejuk.
>> Jadi, seperti yang kita jenis kembali kepada soalan asal,
kita - dan kini jika kita lihat perbezaan,
anda melihat bahawa di gelung do-manakala,
keadaan datang lepas.
Jadi sebagai komputer membaca program
sejak program C disempurnakan jenis dalam perintah ini berurutan,
di mana mereka benar-benar bermula dengan baris pertama utama,
dan kemudian melaksanakan garis 6, baris 7, baris 8, baris 9,
line 10, line 11,
semua barangan ini di bahagian atas kanan di sini
akan melaksanakan sekali
sebelum kita pernah menguji keadaan ini untuk melihat
sama ada atau tidak i - atau kandungan i, agak -
adalah kurang daripada bilangan 3.
Dan hanya jika sekali kita sampai ke 12 barisan,
kandungan i adalah kurang daripada 3
adakah kita sebenarnya melompat kembali sehingga Line 7
dan kemudian mengulangi proses,
dan kemudian kami menguji keadaan lagi dan lagi dan lagi.
>> Jadi kita boleh bezakan ini
dengan - zoom kembali keluar,
tatal ke bawah untuk versi Sam,
kita gonna melihat ini, sedikit berubah supaya ia tidak lagi gelung tak terhingga -
di mana jika kita mengezum masuk,
kita lihat bahawa sebagai program ini melaksanakan,
ia akan terlebih dahulu mengisytiharkan int i,
menetapkan kandungan i ke 0,
dan kemudian ia mencecah keadaan gelung while 1,
jadi dalam kes ini, badan ini, ini printf ("hi") dan i + +
bahkan tidak akan melaksanakan
melainkan jika i sebenarnya kurang daripada atau sama dengan 2.
Jadi, jika i 3, sebagai contoh,
jika kita menetapkan hak ini di sini
bersamaan dengan 4 - atau saya akan melakukan 3, kerana saya berkata 3 -
dan kemudian berjalan ia,
ia akan membina, ia akan menjalankan benar-benar halus,
tetapi ia akan sebenarnya tidak mencetak apa-apa,
kerana ia gagal bahawa ujian untuk kes pertama.
Jadi, di dalam kelas, kita jenis yang bercakap tentang mengapa ini gelung do sementara
berguna kadang-kadang
dan mengapa kita akan menggunakan ia sebagai bertentangan dengan gelung sementara.
>> Berada di sana - adakah anda lelaki itu mempunyai apa-apa cadangan
mengapa do-gelung while mungkin lebih berguna?
>> Nah, saya fikir gelung do-manakala jika anda mahu input pengguna,
kerana cara yang anda boleh biarkan mereka
meletakkan sesuatu dalam sekali; jika ia adalah betul,
kita boleh bergerak ke seluruh program,
tetapi jika ia tidak betul, maka anda terus mendorong pengguna
sehingga anda meletakkan input yang betul.
Ya, tepat - tepat,
jadi gelung while berguna
kerana apabila menggesa untuk input pengguna
kerana anda perlu mendapatkan input pengguna sebelum anda sebenarnya boleh menyemak ia.
Jadi dalam pset 1, di pset 2,
di mana anda menggesa untuk input pengguna banyak,
itulah satu perkara yang berguna untuk digunakan
berbanding dengan hanya gelung sementara yang mudah.
Jika anda menggunakan gelung sementara, anda boleh melakukan perkara yang sama -
anda boleh melakukan perkara yang sama dengan gelung sementara
seperti yang anda lakukan dengan gelung do sementara.
Anda hanya perlu untuk jenis mempunyai proses ini pendua
di mana anda mendapatkan input pertama dan kemudian memulakan gelung sementara anda.
Manakala do-gelung while, anda hanya perlu untuk menulis sekali
dan ia adalah pembersih banyak.
>> Semua hak.
Apa-apa soalan?
Masuk akal?
>> Pulangan 0 - yang hanya jenis gerai atau adakah ia?
Ya, jadi kita boleh -
baik, kami akan meliputi ini sedikit lebih kemudian
tetapi ternyata bahawa
ini 0 pulangan yang kita meletakkan
pada akhir utama sepanjang masa -
anda boleh agak hanya mengambil ia sebagai sesuatu yang kita lakukan
untuk masa ini.
Apa yang kita telah mula untuk bercakap mengenai dengan fungsi
jenis pada akhir minggu lepas dan kemudian sekali lagi minggu ini
adalah bahawa fungsi
mengambil input yang perkara-perkara ini dalam kurungan;
ini adalah 2 input, hujah atau parameter kami,
apa yang mereka juga dipanggil fungsi utama kami,
dan kemudian fungsi menghasilkan output
yang kita panggil nilai kembali.
Dan nilai pulangan dalam kes utama adalah int ini,
integer ini,
dan cara anda memberitahu fungsi, "Hei, ini adalah apa pengeluaran anda
akan menjadi, "dengan perkataan ini" pulangan ",
kata kunci tersebut, sebaliknya,
dan sebagainya utama kembali 0
utama atau keluarkan 0
adalah standard dalam program C
kerana kembali 0 daripada cara utama yang
"Hei, semuanya dilaksanakan dengan program baik-baik saja saya."
Jika kita meletakkan sesuatu yang lain daripada 0,
seperti 1, sebagai contoh,
yang digunakan untuk memberitahu sesiapa yang berlari program ini
sesuatu yang silapnya.
Jadi, seperti yang kita mendapatkan lebih terlibat dengan barangan sepanjang semester,
jika anda pernah perlu untuk mengatakan,
"Alamak, anda tahu, sesuatu silapnya dengan program ini,"
bukannya mempunyai kemalangan program saya, saya ingin memberitahu
pelari program saya bahawa sesuatu yang silapnya,
anda boleh menggunakan nilai pulangan,
seperti yang kita panggil ia, itu bukan 0.
>> Jadi kita akan meliputi bahawa sedikit lebih
sekali kita masuk ke dalam fungsi.
Yang jenis masuk akal?
Okay.
Fungsi jenis pelik -
Saya rasa bagi orang-orang yang mempunyai banyak latar belakang matematik,
ia datang sedikit lebih mudah,
terutamanya jika anda mempunyai sedikit matematik latar belakang yang lebih abstrak
dan anda digunakan untuk bercakap tentang fungsi
dan semua yang jenis barangan.
Tetapi kita akan cuba dan meliputi mereka
dan pergi bagus dan perlahan kerana mereka datang.
Begitu juga, ini int argc keseluruhan,
char * argv [],
sekarang, anda juga boleh mengambil bahawa sebagai plat dandang.
Kami telah mula untuk menutup mereka sedikit dalam syarahan
apabila kita bercakap mengenai hujah-hujah yang mendapat diluluskan ke dalam program baris arahan,
tetapi dalam set masalah anda dan program anda,
ia adalah benar-benar halus hanya menulis tidak sah dan memastikan ia mudah.
Dan apa yang tidak sah ini bermakna adalah bahawa
"Hei, utama tidak akan menerima apa-apa input;
ini adalah hanya satu program kami gonna hanya menjalankan.
Kami tidak akan memberikan apa-apa maklumat tambahan
setiap kali kita mula berjalan. "
Jadi untuk sekarang, anda boleh melakukan ini;
anda juga boleh tinggalkan 0 kembali
pada akhir program anda dan mereka akan berjalan baik-baik saja,
tetapi saya cadangkan hanya menjaga bahawa masuk
Dalam beberapa minggu, kita akan mula jenis
tarik penutup belakang sedikit dan memahami lebih lanjut mengenai
semua orang berbeza sedikit bahagian yang bergerak.
>> Baiklah, sekarang mari kita bercakap tentang soalan kedua kami di sini.
Jadi apakah "pengecam diisytiharkan" biasanya menunjukkan
jika outputted oleh dilafaz?
Saya fikir kita mungkin telah melihat bahawa sudah hari ini.
Seseorang boleh memberi recap apa yang bermakna?
Mari kita lihat, Kelly - salah satu daripada Kelly.
>> Jadi -
Ya, apakah -
>> Saya fikir apabila anda, seperti, tidak mengisytiharkan pembolehubah dan anda cuba untuk menggunakannya.
Ya, betul-betul, sebenarnya.
Jadi jika anda pernah melihat output ini
apabila anda cuba dan menyusun program anda,
seperti Kelly berkata,
ia bermakna bahawa anda menggunakan pembolehubah yang anda tidak mengisytiharkan,
jadi jika saya pergi kembali ke Angkasa kami,
dan saya melakukan sesuatu seperti
printf (
"Hello% s")
dan cuba mengisi dalam% s
dengan s pembolehubah yang saya telah tidak diisytiharkan di mana-mana
dan saya cuba untuk menjalankannya,
anda akan melihat apa yang saya dapatkan di bawah ini di sini:
"Menggunakan pengecam tidak diisytiharkan 's'";
yang hanya bermakna anda tidak mengisytiharkan pembolehubah anda.
Perkara yang sama berlaku jika
anda mempunyai x dan anda cuba dan menyimpan 7 di dalamnya
dan saya tidak mengisytiharkan X.
Saya mendapat bahawa kesilapan yang sama:
"Menggunakan 'x' pengecam tidak diisytiharkan".
>> Baiklah,
jadi Cipher Caesar, bukan menjadi sangat selamat,
Saya akan biarkan anda semua menonton singkat ini, jenis memahami mengapa,
dan diharapkan selepas melakukan masalah minggu ini menetapkan
di mana anda sebenarnya menulis Cipher Caesar, anda akan memahami lebih sedikit
tentang apa ertinya menjadi selamat dan tidak selamat -
atau tidak selamat, saya rasa - tidak selamat adalah sedikit berbeza.
Perkara lain adalah kita mempunyai soalan-soalan yang lain di sini
tentang fungsi
dan apa fungsi,
dan kita jenis bercakap tentang secara ringkas bahawa apabila kita bercakap tentang nilai-nilai pulangan;
bagi seseorang yang sudah ke kuliah,
anda boleh menggulung yang sudah untuk bersyarah pada hari ini?
Semua hak.
Mari kita lihat, mari kita - seseorang boleh memberitahu kita apa fungsi?
Kelly?
>> >> Pada asasnya sesuatu anda menarik apabila sesuatu yang ditulis dalam perpustakaan itu
lebih rumit di sana, dan kemudian anda hanya menulis satu bentuk pendek,
jadi seperti anda merujuk kembali kepada perpustakaan itu, menggunakan
semua yang kod yang panjang dan [didengar].
Ya, betul-betul, dan kemudian anda mahu menambah sesuatu itu?
>> Ya, saya berfikir tentang ia sebagai serupa dengan konsep formula dalam matematik
di mana anda hanya menulis formula dan kemudian anda boleh palam pembolehubah dalam
dan bahawa apa fungsi [didengar].
>> Ya, jadi kami telah mendapat beberapa jawapan di sini
yang kedua-duanya adalah benar-benar baik dan tepat pada.
Ada merujuk kepada kod yang telah ditulis di perpustakaan tempat
yang adalah lebih rumit
dan kemudian anda boleh menarik apabila kod itu
dan sebenarnya menggunakannya dengan hanya menulis bentuk pendek -
atau, sebaliknya, namanya -
dan kemudian ada juga perbandingan ini kepada formula dalam matematik
atau fizik, semua yang jenis barangan
di mana anda mempunyai formula
dan anda kemudiannya boleh pasangkan
pembolehubah untuk formula yang
kemudian mendapatkan hasil formula,
jadi anda berfikir tentang hal seperti persamaan kuadratik.
Bayangkan jika bukannya perlu belajar tentang
apa formula kuadratik adalah dalam kelas matematik,
anda hanya mempunyai program kalkulator sedikit yang melakukannya untuk anda.
Adakah sesiapa menggunakan program kalkulator dalam kelas matematik di sekolah tinggi?
Ya, kelas fizik?
Mana anda hanya boleh berkata, "Hei, formula kuadratik.
Ini adalah pembolehubah yang saya mahu untuk input.
Sekarang berikan saya jawapannya. "
Itulah jenis apa fungsi.
Ia adalah satu cara untuk kita
jenis hapus seperti program kecil sub sedikit
dalam program yang lebih besar kita
dan menggunakannya berulang-ulang kali
supaya kita tidak perlu copy dan paste kod,
kita boleh memberikan input yang berbeza dan mendapatkan output yang berbeza,
super berguna
apabila anda cuba untuk menulis program-program yang berbeza pada masa yang berlainan.
>> Jadi, sebagai contoh, fungsi bahawa kita telah menggunakan lebih dan lebih dan lebih lagi
sepanjang kursus adalah printf.
Printf sendiri fungsi
dan ia ternyata bahawa ia sebenarnya cukup panjang dan rumit,
jahat cari, berfungsi untuk menulis.
Jadi sebagai mudah kerana ia seolah-olah kita
untuk mencetak barangan keluar ke skrin,
kerana kita semua hanya melakukan itu pada awal hari ini seksyen,
ternyata bahawa ia sebenarnya, anda tahu,
beberapa baik ratus baris kod.
Ia bukan sesuatu yang pernah saya mahu menulis, pasti,
tetapi kita dapat menggunakan ia setiap hari, itulah jenis sejuk,
jadi kita dapat berkongsi dengan satu sama lain,
dengan program-program yang berbeza,
jadi kami akan menyelam lebih kepada fungsi;
buat masa ini, kami tidak -
fungsi sahaja kita akan menulis adalah utama.
Utama itu sendiri adalah juga fungsi,
dan anda boleh lihat ia mendapat output,
input seperti kita bercakap tentang,
dan kemudian namanya, yang utama.
Utama adalah jenis satu - adalah satu fungsi khas di sana.
Dalam program C anda, perlu ada fungsi utama,
dan sebagainya buat masa sekarang, kami telah jenis penulisan yang ditinggalkan
prototaip, atau akuan utama.
Kami telah diberikan kepada anda,
dan kita baru sahaja telah anda mengisi jenis kosong.
>> >> Jadi untuk menetapkan masalah kedua, kita tidak perlu
menulis dalam fungsi kedua?
Saya tidak percaya begitu.
Saya percaya ia adalah semua di sini.
Ya, jadi Caesar Cipher,
anda tidak mempunyai, ia tidak kelihatan seperti,
dan Vigenere, anda tidak berbuat demikian sama ada,
begitu - dan ternyata anda tidak pernah benar-benar perlu untuk menulis
fungsi, betul-betul?
Anda memanggil sentiasa meletakkan semua kod anda dalam utama,
dan pengaturcara ramai yang berbuat demikian.
Seperti yang kita bergerak ke atas,
kita mula memperkenalkan fungsi sebagai satu cara
untuk membersihkan sehingga kod anda,
untuk membuat ia lebih anggun,
sekiranya anda mempunyai tugas - jenis seperti apabila kita bercakap tentang gelung,
bagaimana kadang-kadang terdapat perkara-perkara yang anda mahu lakukan lagi dan lagi dan lagi,
dan anda mempunyai jenis cara naif -
atau apa yang kita sering panggil "jerami manusia" penyelesaian,
adalah untuk hanya salin dan tampal berulang kali -
anda boleh melakukan perkara yang sama dengan fungsi di mana anda hanya salin dan tampal
kod yang sama berulang-ulang kali,
tetapi itu bloats kod anda -
ia berakhir sehingga membuat kod anda benar-benar panjang -
dan ia juga mendapat sedikit mengelirukan,
dan kemudian ia bermakna bahawa anda tidak mampu untuk suka -
jika anda pernah mahu untuk menggunakan kod yang sekali lagi dalam program lain,
anda juga terjebak menyalin dan menampal sekali lagi,
jadi salah satu perkara yang kita akan bercakap tentang adalah
jenis reka bentuk dan gaya program anda,
dan sebagainya apabila ia masuk akal untuk jenis
pakej sesuatu dan meletakkan ia sebagai fungsi yang berasingan,
kami menggalakkan anda untuk berbuat demikian,
dan itu adalah sesuatu bahawa, sekali lagi,
tidak ada peraturan keras dan cepat.
Kita jarang mengatakan bahawa anda mesti menulis fungsi yang dipanggil ini,
tetapi ia adalah lebih daripada satu daripada perkara-perkara anda hanya berkembang dari masa ke masa
kerana anda menulis lebih dan lebih banyak program.
>> Apa-apa lagi soalan?
Okay, jadi mari kita kini
pergi sandaran kepada lelaki ini di sini,
jadi saya masih dalam seksyen ini soalan.
Kami telah bercakap tentang semua ini orang-orang yang berbeza,
apa fungsi, mengapa untuk menulis fungsi,
apabila anda hanya boleh menyalin dan menampal?
Semoga kita telah yakin anda bahawa menulis fungsi adalah satu perkara yang baik.
Jadi sekarang mari kita beralih kepada program ini MySpace,
dan kita akan menghabiskan sedikit masa melakukan ini.
>> Jadi, mari kita lihat,
saya boleh seseorang membaca ini untuk saya?
Mari kita mempunyai Mikhaila - anda akan membaca ini untuk kita?
>> Anda amat bermakna kembali apabila MySpace -
Kembali apabila MySpace sejuk.
>> "Kembali apabila MySpace adalah sejuk,
ia adalah semua kemarahan kepada jenis seperti ini.
Mungkin ia masih? Saya tidak benar-benar pasti.
Dalam mana-mana kes, menggunakan Appliance CS50,
CS50 Run, atau CS50 kawasan,
menulis program yang meminta pengguna untuk mesej
dan kemudian output mesej dengan huruf pertama dipermodalkan,
dengan semua huruf lain dalam kes seli,
sebagai setiap output sampel bawah,
teks mana boldfaced mewakili input sesetengah pengguna.
Untuk memudahkan, anda boleh mengandaikan bahawa pengguna
akan huruf input hanya huruf kecil dan ruang.
Pertimbangkan masalah ini peluang untuk mengamalkan;
anda tidak akan diminta untuk mengemukakan program ini. "
>> Awesome, terima kasih.
Jadi sebagai Mikhaila berkata,
kita akan untuk menulis program yang MySpaces kod anda.
Jadi adakah mana-mana anda semua menggunakan MySpace?
Mana-mana anda mempunyai akaun MySpace?
Oh, yeah, yeah!
Ia adalah agak sejuk.
[Ketawa]
Saya tahu.
Dating sendiri.
Jadi apa yang kita cuba lakukan adalah menulis program
yang pergi melalui
dan capitalizes huruf pertama
dan kemudian setiap huruf selepasnya -
atau setiap huruf lain selepas itu, saya minta maaf.
>> Jadi - dan anda boleh lihat dalam contoh ini,
ini adalah bagaimana kita menjalankan program,
dan sebagainya ini hanya berkata, "Kami sedang menjalankan satu program yang dipanggil a.out.
Input yang kita pergi untuk memberi
akan akan diminta.
Kami tidak gonna membekalkan input pada baris arahan. "
Jika anda telah mengikuti semua kuliah
dan mendengar tentang hujah baris arahan,
yang jenis mana mereka - bahawa sintaks funky
di utama datang dalam dengan int argc, semua barangan itu,
jadi di sini kita tidak menggunakan itu; kita tidak berurusan dengan mana-mana itu.
Kami hanya gonna mendapatkan ini ditaip oleh pengguna,
dan kemudian ini barisan kedua dengan permodalan funky
adalah apa yang kita mahu program kami kepada output.
>> Jadi, bukannya menggunakan Appliance atau Run, kita akan menggunakan Ruang,
kerana kita telah mendapat Ruang,
dan jadi jika anda semua akan
mendapatkan kod anda untuk melihat sesuatu seperti ini,
jadi saya akan menjimatkan semakan ini
hanya jadi anda telah mendapat plat dandang di sini
yang kelihatan seperti ini, int utama (tidak sah), tiada apa-apa di dalamnya.
Sebenarnya, apa yang kita akan lakukan ialah kita hanya akan memadam segala-galanya semua bersama-sama.
Kami mahu sabak kosong,
kerana kita tidak gonna mula menulis kod;
sebaliknya, kita gonna cuba menulis pseudokod beberapa
yang benar-benar hanya bermakna kita akan menulis sesuatu yang bukan kod
yang jenis menerangkan apa yang kita mahu lakukan,
agak seperti Daud lakukan pada hari pertama kuliah,
atau saya rasa itu adalah hari kedua kuliah apabila dia melakukan demo stoking keseluruhan.
Kalian ingat bahawa - melihat stoking?
Yusuf adalah terdapat jenis menaip dalam bahasa Inggeris?
Jadi kita akan melakukan perkara yang sama.
>> Jadi, apabila saya mula menulis pseudokod,
Saya suka mulakan dengan melihat apa input akan menjadi.
Dan saya memberikan diri saya kes sampel,
jadi seperti "terima kasih untuk tambah!"
Dan kemudian saya juga menulis apa yang saya mahu output,
yang dalam kes ini adalah sesuatu seperti ini.
Dan yang jenis memberikan saya tempat yang baik, seperti, mula berfikir tentang,
"Baiklah, saya ingin mengambil line 1
dan saya mahu untuk mengubah ke dalam baris 2, "
dan yang jenis membantu membimbing pemikiran saya.
Ini adalah tempat yang baik untuk memulakan.
Cara lain untuk berfikir tentang hal itu, juga, seperti yang kita agak bergerak
dan seperti yang anda lakukan ini dalam program anda sendiri, adalah untuk
berfikir tentang jenis seperti apakah kes kelebihan ini?
Apakah jenis senario pelik?
Apakah input yang pelik yang kita mungkin mendapatkan?
Dan apa yang perlu mereka output kelihatan seperti?
Sebagai contoh, satu input pelik
akan menjadi salah satu ini,
mewujudkan benar-benar tiada,
seperti apa yang kita harus keluar dalam kes itu?
Sesuatu yang kita mahu untuk berfikir tentang, terlalu.
>> Jadi hanya sebagai soalan,
apa yang kita mungkin mahu kepada output?
Jika kita tidak mendapatkan input apa-apa pada semua, apa program kami perlu keluarkan?
Tiada apa-apa. >>
Apa-apa? Bunyi yang hebat.
Jadi, kita mahu pastikan bahawa kita tidak menulis apa-apa daripada
jika kita tidak mendapat apa-apa.
Sejuk. Okay.
Jadi
Saya akan memanggil beberapa orang seperti yang kita pergi melalui
dan hanya memikirkan jenis seperti apa algoritma umum adalah
dan kita jenis akan mula bekerja melalui bersama-sama ini.
>> Jadi, mari kita lihat. Missy.
Bagaimana anda berfikir kita akan bermula?
Apa yang akan menjadi tempat yang baik untuk bermula di sini
jika kita mahu mengubah, berkata, line 1
ke talian 2?
Bolehkah anda jenis hanya menjelaskan kepada saya, dalam bahasa Inggeris, apa yang anda fikirkan?
Jangan bimbang tentang kod.
Perkara >> Pertama saya akan lakukan akan
jenis pengguna langsung untuk memberitahu mereka apa yang anda mahu.
Okay, jadi, katakan,
"Hei, pengguna saya mahu
rentetan "- hebat.
Jadi, mari kita menulis ini.
Mendorong pengguna untuk rentetan.
Yang berbunyi seperti permulaan yang baik.
Semua hak.
Mari kita bertanya Kelly Ren masa ini.
Apa yang akan kita kemudian mahu lakukan seterusnya?
Apakah jenis kami seterusnya?
>> Kumpul input mereka dan menyimpan ia sebagai pemboleh ubah.
Besar.
Jadi mengumpul tali,
menyimpannya dalam pembolehubah.
Jadi ada apa-apa yang istimewa yang kita mahu lakukan di sini?
Adakah kita mahu untuk memeriksa input mereka
sebelum -?
>> Yeah.
Apa yang kita mungkin mahu untuk memeriksa?
>> Nah, anda berkata kita tidak perlu untuk memeriksa jika ia adalah nombor, bukan?
Kerana ia akan menganggap bahawa ia adalah huruf kecil?
Yeah.
>> Jadi ternyata bahawa - yeah.
Jadi getString dijamin untuk kembali kami rentetan.
Ia tidak akan mengembalikan nombor kepada kami atau apa-apa seperti itu.
Mungkin terdapat watak digit dalam rentetan itu, walaupun.
Dan orang-orang, kita boleh mengabaikan seperti yang kita lakukan permodalan.
Tetapi rentetan kosong adalah betul-betul halus,
jadi kes yang betul di sini pada baris 4 dan 5,
betul, di mana terdapat tiada input,
dan kita telah meletakkan apa-apa sebagai keluaran kami.
Kita tidak perlu bimbang tentang membuat pasti bahawa ada sesuatu dalam string
atau bahawa rentetan adalah sekurang-kurangnya 4 aksara;
apa-apa denda.
Jadi ini adalah berbeza, misalnya, dengan seperti program sen yang anda menulis
di mana anda terpaksa pastikan anda telah mendapat nombor bukan negatif;
anda terpaksa untuk memastikan bahawa anda telah mendapat bilangan yang betul hari dalam sebulan.
Dan bagaimana kalian lakukan itu?
Bagaimana anda akan melakukan ujian itu?
Apa yang memerlukan anda menggunakan?
>> Adakah sementara gelung.
Adakah manakala gelung; jenis lain gelung, terlalu, ya.
Jadi ternyata kita tidak perlu menggunakan gelung dalam kes ini,
apabila kami menggesa untuk rentetan, yang merupakan jenis bagus.
>> Baiklah, bergerak ke atas.
Jadi, Stella.
Bolehkah anda memberitahu kami sedikit tentang apa yang kita harus lakukan seterusnya?
Jadi sekarang kita telah mendapat tali, kami telah mendapat ia disimpan dalam pembolehubah;
apa yang perlu kita lakukan dengan tali?
>> Kita perlu -
mengenal pasti 2 -
Ya, hanya mengatakan ia dalam Bahasa Inggeris, yang menggerunkan.
>> Kenal pasti [didengar] ibu - atau huruf besar.
Ya, jadi anda akan mengenal pasti yang mana adalah huruf besar dan huruf kecil.
Kita tidak boleh huruf besar atau huruf kecil mereka sehingga kita telah mengenal pasti yang mana.
Jadi kita akan meletakkan bahawa di sini.
>> Jadi, hanya memikirkan tentang proses ini,
bagaimana kita melakukan pengenalan ini?
Adakah anda tahu, Dan?
Jenis apa yang kita - apa alat kita akan perlu untuk menggunakan daripada toolbox kami?
>> Saya meletakkan ia masuk entah bagaimana seperti pelbagai atau setiap baris
adalah kotak sendiri sedikit,
dan kemudian huruf besar dari sana atau tidak.
Okay, jadi salah satu alat yang boleh kita gunakan adalah array.
Apa yang kita perlu untuk melihat dalam string,
walaupun, untuk memikirkan - kita terpaksa melihat watak-watak.
>> Jadi, anda telah mendapat untuk melihat pada panjang tali?
Ya, jadi sebahagian yang semakin panjang rentetan.
Hanya daripada rasa ingin tahu, apa yang kita gunakan untuk mendapatkan panjang rentetan?
>> Strlen?
Ya, strlen, kita panggil ini "strlen"
Semua fungsi-fungsi rentetan, jadi strlen adalah fungsi,
dan ia sangat berguna, kerana kita boleh menggunakannya untuk hanya mengatakan,
Hei, strlen: Berikut adalah rentetan, beritahu saya berapa lama ia adalah.
Dalam kuliah hari ini, David bercakap banyak tentang bagaimana strlen dilaksanakan,
apa yang sebenarnya berlaku di sebalik tabir.
Tetapi ini adalah salah satu daripada orang-orang yang sangat super berguna.
Terdapat orang lain yang juga di perpustakaan rentetan,
seperti strcmp, yang dieja "strcmp",
yang digunakan untuk membandingkan tali antara satu sama lain.
Yang lain anda akan menggunakan seperti strstr,
yang baik untuk mencari rentetan sub dan sebagainya.
Bagi sebahagian besar, mereka semua bermula dengan str dan kemudian pergi untuk menjadi sesuatu yang lain.
Sebab mereka tidak sebenarnya mengeja mereka seperti tali dan sebagainya
kerana kembali seperti hari-hari awal C,
apabila orang bertulis pertama dan semua itu,
mereka mempunyai batasan pada bilangan aksara yang anda boleh gunakan
untuk nama fungsi dan nama-nama pembolehubah,
jadi segala-galanya adalah seperti super pekat.
Tetapi bila-bila masa anda melihat sesuatu yang bermula dengan str,
yang biasanya bermakna ini mempunyai sesuatu untuk dilakukan dengan rentetan.
>> Okay, jadi anda telah mendapat untuk mendapatkan panjang tali,
dan kemudian, apa yang kita lakukan dengan watak-watak?
Adakah anda tahu, Sam?
>> Saya tidak tahu, saya telah cuba untuk memikirkan ia keluar.
Saya benar-benar tidak tahu - saya ingin terdapat beberapa cara untuk -
Maksud saya, saya akan fikir mungkin kita boleh melakukan sesuatu dengan kemungkinan dan evens,
tetapi saya tidak tahu apa-apa fungsi seperti itu.
Yeah.
>> Tetapi itu - ia akan tidak semestinya bekerja,
kerana maka anda akan mendapat ruang untuk menjadi -
anda akan perlu mempunyai ruang untuk mendapatkan tip bagaimana -
Okay.
>> Saya tidak tahu - jenis: saya hilang pada ketika ini.
Yeah - tidak, tidak, tidak, ini adalah perkara yang baik.
Jadi apa yang perlu kita lakukan adalah, seperti Sam berkata,
kita perlu untuk mengesan yang huruf huruf ganjil,
dan yang mana adalah huruf walaupun.
Tetapi kita mahu pastikan kita bukan hanya mencari
pada yang ganjil dan juga
indeks dalam string,
tetapi melihat huruf ganjil dan juga dalam rentetan,
jadi kita perlu kinda mempunyai perbezaan di antara
surat - seperti apa yang sebenarnya A, B, C, D, atau sebagainya,
dan apa perkara yang tidak surat tetapi masih dalam rentetan kami.
Sebagai contoh di sini, seperti tanda seru ini bukan sepucuk surat,
tetapi ia masih sebahagian daripada rentetan kami; ia masih char.
Begitu juga, semua ruang ini -
ia tidak masuk akal untuk memanfaatkan ruang, betul?
Jadi, kita mahu memastikan bahawa kita entah bagaimana melangkau mereka
sementara masih mengesan kemungkinan dan evens.
>> Jadi jenis dalam toolbox pengaturcaraan kami
setakat ini, jika anda akan,
kita mempunyai bilangan alat yang berbeza yang kita telah bercakap tentang.
Jadi seseorang, sebagai contoh, adalah pembolehubah,
seperti yang kita telah bercakap tentang di sini.
Satu lagi alat yang kita telah bercakap tentang fungsi.
Jadi kita telah berbincang tentang pembolehubah pseudokod kami di sini
sebagai apa yang kita akan gunakan untuk menyimpan rentetan kami.
Kami telah berbincang tentang fungsi untuk mendapatkan panjang rentetan, seperti strlen.
Kami telah bercakap tentang sesuatu yang lain, dan kita telah bercakap tentang
banyak awal dalam seksyen hari ini: gelung.
>> Apa yang anda semua berfikir tentang menggunakan gelung dalam program ini?
Jared, apa yang anda fikir?
Kita akan menggunakan gelung dalam program ini?
>> Mungkin tidak, tidak, kerana anda tidak perlu untuk pergi melalui ia lebih daripada sekali.
Baiklah, anda tidak perlu pergi melalui apa lebih daripada sekali?
>> Keseluruhan Rentetan.
Betul, jadi anda tidak perlu untuk pergi melalui rentetan keseluruhan sekali.
Maaf yang dibuat benar-benar tidak masuk akal!
Anda tidak perlu untuk pergi melalui rentetan keseluruhan lebih daripada sekali.
Okay.
Apa yang anda fikir?
>> Saya berfikir bahawa ia adalah lebih baik untuk menggunakannya
supaya kita boleh melakukan seperti mengambil kesempatan manakala
lokasi ia adalah [didengar] nombor.
Besar, dan begitu memanfaatkan apa?
Okay, jadi kita mengatakan bahawa
kita perlu menggunakan gelung kerana kita mahu
kesempatan surat manakala ia bukan nombor.
Jadi - maaf, adakah anda mahu menambah?
>> Saya akan mengatakan bahawa cara yang anda merawat tali
dan ia [didengar] berasingan [] didengar pada watak-watak?
Yeah.
>> Dan kemudian kita boleh memberikan nombor untuk -
atau berdasarkan lokasi huruf dalam rentetan?
Yeah.
>> Dan mengenal pasti sama ada ia adalah ganjil atau bahkan dan untuk meraih surat itu sendiri
manakala lokasi surat [didengar] - maaf.
Besar.
>> Jadi hanya recap.
Bolehkah anda mengingatkan saya nama anda lagi -: saya minta maaf.
>> Charlotte.
Charlotte, okay.
Jadi apa Charlotte berkata,
yang benar-benar betul - Astaga, orang-orang ini untuk auto indent pada saya -
adalah bahawa jika kita melihat rentetan
seperti yang satu ini di atas -
"Terima kasih kerana menambah" -
sebagai urutan aksara
mana adalah pada kedudukan 0,
h adalah pada 1 kedudukan.
A adalah pada 2, maka kita mendapat 3, 4, 5;
ruang adalah pada 6 kedudukan.
Manakala - apa kedudukan f?
7!
O? 8.
R? 9.
Dan kemudian kita telah mendapat 10, dan maka saya tidak boleh benar-benar menulis tanpa
agak mendapat berantakan pada skrin.
Tetapi ini sebenarnya adalah bagaimana kita boleh bercakap tentang rentetan dalam ingatan.
Adakah ia rentetan
adalah jujukan aksara,
dan apabila kita merujuk kepada watak individu dalam rentetan,
kita sering berbuat demikian dengan merujuk kepada kedudukan yang watak itu
dalam tali,
mungkin dengan cara yang sama bahawa kita bercakap tentang September
menjadi bulan kesembilan tahun
atau Isnin sebagai hari pertama dalam seminggu.
Jadi ini memberikan kita satu cara untuk
memikirkan yang mana ganjil berbanding walaupun
kerana anda boleh lihat di sini,
jika kita sepadan dengan T ini,
anda boleh lihat bahawa semua orang-orang yang berhuruf
adalah walaupun pada jawatan,
sekurang-kurangnya bagi perkataan pertama,
dan kemudian perkara mendapatkan dibuang sekali kita mencapai ruang yang,
kerana kita tidak mengira ruang ini sebagai surat,
jadi ia seolah-olah kita bermula
dan pergi 0, 1, 2, 3, 4, 5,
ruang, 6, 7, 8, ruang,
9, dan kemudian 10, 11, 12, dan sebagainya.
>> Sejuk, jadi kita pasti akan mahu menggunakan beberapa jenis gelung
untuk pergi ke setiap watak-watak seterusnya.
Jadi pada ketika ini,
kita akan kembali kepada pseudokod lama kita di sini.
Sebagai sebahagian pengenalan ini yang mana
huruf besar dan yang mana adalah huruf kecil,
kita akan mahu melakukan ini dalam beberapa jenis gelung.
Loop, kolon.
Apakah jenis gelung, daripada jenis gelung yang kita ada,
seolah-olah menjadi satu yang baik untuk digunakan dalam kes ini?
>> Saya memikirkan untuk gelung.
Dan mengapa anda berfikir untuk gelung?
>> Kerana ia bermula pada sifar, dan kemudian
apabila kita mencapai panjang tali,
dan kemudian setiap lelaran anda boleh [didengar], juga?
Ya, sebenarnya.
Jadi, daripada pilihan yang berbeza gelung,
kita mempunyai gelung, manakala gelung, dan lakukan sementara gelung.
Jika bagi gelung adalah amat berguna
adalah apabila anda ingin tahu
jenis di mana anda berada di dalam gelung,
berapa kali gelung telah dilaksanakan setakat ini.
Yang adalah apa yang kita mahu tahu dalam situasi ini,
seperti kata Kelly,
berdasarkan kira komen awal Charlotte bahawa kita mahu tahu kedudukan
watak dalam tali,
dan untuk gelung akan memberikan kita hanya itu,
kerana jika kita mula jenis melihat kembali rentetan kami,
jika kita mula gelung untuk kami pada 0,
dan kita pergi melalui panjang keseluruhan rentetan,
maka kita boleh mengaitkan huruf T
dengan 0 dalam kami untuk gelung,
H surat dengan 1 dalam kami untuk gelung, dan sebagainya,
pergi sepanjang jalan melalui hujung tali.
>> Jadi mari kita mulakan pengekodan ini hanya sedikit
hanya supaya anda semua mendapatkan rasa untuk apa ini kelihatan seperti.
Saya akan menyimpan ini,
jadi kami telah mendapat kod pseudo kami di sini,
dan saya akan memadam segala-galanya.
Jadi saya mempunyai sabak kosong.
Saya gonna bermula dengan menulis int utama (tidak sah)
{
Saya gonna meletakkan 0 pulangan dalam
dan kemudian.}
Jadi biasanya apabila saya mula program, ini adalah apa yang saya mulakan dengan.
Saya akan menyimpan ia supaya anda semua mempunyai ia.
Jadi, salah satu perkara pertama yang kita bercakap tentang adalah
mendapatkan input daripada pengguna
dan menyimpannya dalam rentetan.
Bagaimana kita mendapatkan input dari pengguna?
GetString. >>
GetString, hak semua.
Jadi jika saya menaip GetString ()
dan koma bertitik.
Mari kita cuba berjalan ini; akan berjalan ini, pertama sekali?
Dan mengapa tidak ini berjalan?
>> Anda perlu mengisytiharkan pembolehubah.
Saya perlu untuk mengisytiharkan pembolehubah. Okay.
>> Jadi bagaimana saya boleh berbuat demikian?
Adakah anda keberatan menulis sesuatu, berkongsi?
Dan kemudian kita boleh tarik.
Mari kita lihat, Dan, betul, okay.
Atau Daniel. Salin bahawa, input rentetan = GetString ().
Menggerunkan.
Ini akan berjalan?
Mari kita cuba.
Hit run, memuat naik kod sumber, bangunan, ralat berlaku.
Okay.
Jadi Whats berlaku di sini?
Penggunaan 'string' pengecam yang tidak diisytiharkan.
>> Kita perlu termasuk perpustakaan?
Ya, jadi Dan mengatakan kita perlu termasuk perpustakaan.
Adakah bahawa apa yang anda akan katakan, Stella? Menggerunkan.
Itulah hebat, jadi Stella, anda boleh
menyalin kod ini keluar Angkasa Daniel?
Jika anda klik pada Daniel Roland Ki, menyalin,
dan kemudian anda akan meletakkan garis termasuk dalam, dan kemudian simpan ia keluar?
Biar saya tahu apabila anda sudah bersedia.
Jadi ini sintaks termasuk juga jenis funky;
ada seperti tag yang hash,
dan ada termasuk, dan kemudian terdapat kurungan sudut.
Adakah anda masih ingat bagaimana ini berfungsi, atau saya perlu meletakkan kod ini di sini?
>> Saya baik.
Okay.
>> Saya dicetak - Saya tidak pasti yang perpustakaan, walaupun.
Oh, okay - yeah, jadi ia adalah perpustakaan CS50.
>> Oh, saya meletakkan perpustakaan stdio.
>> Oh, mendapat ia - yeah, tidak, that's -
jadi ia ternyata bahawa rentetan adalah sebenarnya sesuatu yang khas untuk CS50.
Terdapat sebenarnya tidak adalah sejenis tali yang benar
kerana di sini, tali adalah dalam kedudukan jenis, -
kita mengisytiharkan input berubah yang dipanggil tali jenis -
dan kami meletakkan di dalam input
nilai yang akan dikembalikan kepada kami: output panggilan fungsi ini GetString.
Anda boleh memberitahu ini adalah panggilan fungsi kerana ia mendapat kurungan, hanya seperti printf tidak,
seperti strlen tidak.
Tetapi rentetan sebenarnya bukan sejenis sebenar
dalam bahasa C.
Kami telah membuat ia ke dalam jenis, dan kami akan mengambil lebih apa yang sebenarnya
dalam C, kerana ada cara untuk bekerja dengan rentetan;
kita baru sahaja melakukan sesuatu untuk membuat ia kelihatan sedikit lebih bagus.
>> Jadi di sini kita pergi.
Berikut adalah kod Stella.
Ia mendapat # termasuk .
Orang lain akan memanggil ini seperti hash termasuk kadang-kadang atau tajam termasuk.
Sekarang kita boleh mula, jalankan ia,
dan kita masih mendapat ralat.
Mari kita lihat apa yang berlaku.
"'Input' pembolehubah yang tidak digunakan."
Okay, jadi yang sejuk, yang sejuk.
Maksud saya, ia tidak benar-benar sejuk,
kerana kita mendapat satu kesilapan dan ia tidak berjalan,
tetapi apa ini mengatakan bahawa
kita telah tidak digunakan pembolehubah kami, yang masuk akal.
Kita tidak cuba untuk berbuat apa-apa dengannya.
Ini adalah cara yang
Dilafaz cuba untuk membantu kita memastikan bahawa kita tidak hanya menggunakan pembolehubah
dan kemudian secara tidak sengaja memanggil mereka sesuatu yang lain kemudian dalam kod kami,
membantu kita mengelakkan kesilapan bahawa cara.
>> Baiklah, jadi kami telah mendapat input daripada pengguna,
kami disimpan dalam pembolehubah.
Langkah seterusnya adalah untuk kemudian
mula mencari di semua watak-watak dalam string
dan mengenal pasti yang mana adalah menjadi huruf besar
dan yang mana adalah menjadi huruf kecil.
Dan seperti Kelly dan Charlotte dibesarkan,
kita ini menggunakan gelung.
Jadi tidak sesiapa ingat sintaks untuk gelung
dan ingin mengambil menikam pada hanya menulis
baris pertama dari gelung, hanya untuk sedikit?
Kelly, anda mahu mencuba?
>> Yeah, jadi anda perlu untuk memulakan pertama,
jadi saya meletakkan i = 0,
dan kemudian saya lakukan i <strlen ().
Adakah ia di Angkasa anda - saya boleh tarik sehingga ia?
>> Ya, saya diskrukan sehingga sedikit, tetapi yeah.
>> Baiklah, mari kita tarik.
Menggerunkan.
>> Tetapi kemudian saya tidak tahu jika anda mempunyai bahawa -
Ya, okay.
Jadi di sini adalah apa yang Kelly mendapat: mari kita melihat ia cepat.
Jadi dia dimasukkan cs50 perpustakaan di atas.
Dia termasuk perpustakaan IO standard di atas,
dan IO standard mempunyai fungsi seperti printf,
jadi jika anda pernah mahu menggunakan printf, anda perlu baris itu.
Dan kemudian dia termasuk perpustakaan rentetan,
yang kita akan perlukan,
kerana perpustakaan rentetan mempunyai strlen fungsi,
yang kita akan sampai ke dalam hanya sedikit.
Jadi, jika kita melihat apa yang dilakukan Kelly di sini,
anda boleh berjalan kita melalui apa yang anda lakukan?
>> Yeah, jadi - yang saya maksudkan, saya mendapat kesilapan, jadi -
Ya, tidak, it's -
>> Jadi saya mahu untuk memanggil rentetan yang saya mendapat hanya "rentetan".
Saya mahu mencetak rentetan
dan kemudian saya -
Saya mahu suka menetapkan tali seperti pelbagai watak setiap
yang berbeza [didengar], kan?
Dan kemudian saya mahu bermula pada kedudukan 0
dan kemudian setiap 2 ruang,
Saya akan mengambil kesempatan,
jadi saya hanya menyifatkan ia sebagai 23, kerana saya telah melihat jadual ASCII.
Jadi itulah apa yang saya berfikir - saya tahu ia tidak betul.
>> Mendapat ia, jadi ini adalah permulaan yang hebat.
Saya fikir banyak rangka kerja ini adalah di tempat di sini.
Mari kita pergi melalui jenis baris demi baris dan lihat apa yang berlaku.
Jadi cara yang saya suka untuk melakukan ini hanya bermula dengan menyusun kod
dan membiarkan pengkompil beritahu saya seperti apa yang salah dengan kod saya,
kerana pengkompil adalah benar-benar baik untuk memberitahu anda apa yang salah dengan kod anda.
Jadi, jika kita bermain, membina, dan ia tidak membina.
Ia berkata terdapat ralat,
jadi jika kita tatal ke bawah dan melihat kesilapan pertama,
ia berkata -
kita skrol kembali ke atas,
kita boleh melihat terdapat 5 kesilapan yang dihasilkan ke sini di bawah.
Oops, yang benar-benar terputus.
Saya rasa itu hanya tidak akan mendapat apa-apa yang lebih baik.
>> Di sini kita pergi.
Jadi terdapat 5 kesilapan jumlah yang dijana.
Di sini saya hanya boleh melihat 2 pertama,
jadi saya boleh bergerak ini sehingga sedikit dan kemudian jenis sehingga tatal.
Ini adalah arahan yang telah dijalankan untuk menyusun kod,
dan kemudian kesilapan pertama adalah dalam file.c di sini:
"Mengenal pasti dijangka atau '('", dan ia adalah on-line ini
di mana kita berkata rentetan = GetString ().
Anda boleh lihat di sini bahawa ia adalah pada 8 garis file.c,
dan kemudian saya percaya ini adalah watak 12 - itulah kesilapan.
Jadi apa yang berlaku salah pada 8 baris - Kelly?
>> Anda hanya perlu untuk memanggilnya, seperti, surat atau sesuatu,
seperti rentetan s atau sesuatu?
Ya, jadi ia ternyata bahawa ini jenis nama khas,
jadi string, int, char, pendek,
mereka semua kata kunci khas,
dan anda tidak boleh sebenarnya menggunakan mereka sebagai nama pembolehubah anda,
kerana pengkompil kelihatan pada itu dan berkata,
"Oh, saya tahu bahawa jenis,"
supaya anda boleh sebenarnya tidak mempunyai rentetan pembolehubah rentetan yang dipanggil,
seperti yang saya cuba lakukan di sini, ini tidak akan berfungsi.
Tetapi sebaliknya, kita boleh memanggil ia sesuatu seperti s atau st atau str.
Kita juga tidak boleh memanggil ia int.
Kita tidak boleh mempunyai rentetan dipanggil int.
Kita tidak boleh mempunyai rentetan yang dipanggil char; tidak seorang pun daripada mereka akan bekerja.
>> Jadi kita hanya akan memanggilnya s buat masa ini.
Menggerunkan.
Jadi apa yang seterusnya akan di baris ini?
String - baris ini kelihatan cukup baik?
Mari kita memberikan satu lagi cuba, mari kita jalankan ia.
Okay, jadi kita masih mendapat kesilapan.
Masa ini, kami turun ke 4 kesilapan.
Jadi kita mendapat salah seorang daripada mereka.
Mari kita bergerak ke atas.
"'String' nama jenis Unexpected: ungkapan yang dijangkakan," ya?
>> Yeah, itu kerana saya cuba untuk menamakan tali.
Ya, jadi ia kelihatan seperti kita kini juga perlu pergi menetapkan
semua rujukan kepada rentetan.
Anda boleh lihat terdapat adalah merujuk kepada rentetan di sini, satu di sini, satu di sini,
supaya kita boleh bergerak semua ini s.
Besar. Okay, jalankan lagi.
Bangunan - satu lagi kesilapan yang berlaku.
>> Okay, sekarang kita ke satu kesilapan,
jadi int i = s dan kemudian kurungan persegi.
Jadi, anda boleh memberitahu kami sedikit tentang apa yang anda lakukan di sini, Kelly?
>> Ya.
Ia adalah pada 10 baris.
>> Saya tidak tahu jika kita memerlukan ia semua,
tetapi saya fikir saya telah cuba untuk -
Saya akan menyimpan ia supaya anda boleh mengikuti bersama-sama.
>> Saya rasa saya
cuba untuk memberitahu ia bermula pada kedudukan 0
pada permulaan saya untuk gelung,
jadi saya fikir mungkin itu berkata adalah tidak perlu.
Jadi hanya untuk menggulung,
anda telah mengatakan bahawa ini - anda telah cuba untuk memulakan ini pada kedudukan 0
dan mendapatkan ini - yeah,
jadi saya fikir sebelum ini, juga, apabila anda berjalan melalui kod,
anda bercakap tentang bagaimana anda mahu merawat tali sebagai array
jadi kita boleh mengakses watak setiap individu.
Saya fikir Dan disebutkan tatasusunan, juga, cuba untuk menukar rentetan ke dalam tatasusunan.
>> Ia ternyata bahawa jenis di bawah hood,
rentetan sebenarnya disimpan sebagai array sudah,
dan anda boleh mengakses ia seperti array;
tiada penukaran yang anda perlu lakukan.
Satu rentetan isn't - jadi -
rentetan tidak benar-benar sebuah array,
tetapi anda boleh mengakses seperti itu, kerana semua watak-watak disimpan
satu betul-betul bersebelahan antara satu sama lain dalam ingatan,
jadi jika anda mahu untuk mendapatkan watak pertama tali,
ia adalah sama seperti mendapat integer pertama dalam pelbagai integer.
Jadi kita sering - we'll
rujuk kepada 2 seperti
oh, sebagai rentetan, sebagai array,
walaupun ia benar-benar - they're benda yang sangat berbeza,
tetapi anda boleh merawat mereka amat sama.
Jadi ternyata bahawa garis ini sebenarnya -
kita tidak perlu untuk melakukan apa-apa penukaran,
dan pada hakikatnya,
ini sebenarnya tidak adalah satu ungkapan yang sah,
yang adalah apa yang pengkompil kami memberitahu kita.
Ia berkata, "Hei, ia dijangka ungkapan,
dan apa yang saya dapat di sini adalah sesuatu yang tidak satu ungkapan. "
Untuk mengisytiharkan array,
semua yang anda perlu lakukan adalah sesuatu yang seperti ini dengan semicolon,
dan kemudian anda memberitahu array berapa lama anda mahu ia menjadi,
seperti 5, jadi ini baris 10
akan mengisytiharkan pelbagai yang dipanggil i dengan 5 integer di dalamnya.
>> Ini adalah selain; ini tidak perlu bagi kod,
tetapi ini adalah - ini adalah jenis apa perisytiharan itu kelihatan seperti.
>> Bagaimana anda tidak menggunakan char i [strlen (s)]?
Char i [strlen (s)]?
Char >> i, dan kemudian di dalam kurungan, strlen (s).
Ya, jadi kita boleh -
kita boleh melakukan ini,
dan ini akan mengisytiharkan - apa ini akan lakukan?
>> Saya fikir ia akan mengisytiharkan array
, seperti -
oh, anda tidak perlu i - oh,
yeah, anda pasti tidak perlu i.
Anda mengaku pelbagai aksara
panjang s.
Dan sebagainya apa yang Sam mengatakan bahawa
ini selaras 10 - izinkan saya meletakkan beberapa ruang di antara dan lain supaya kita boleh mengasingkan -
10 baris ini akan mengisytiharkan array
aksara, strlen (s) bernilai mereka,
tetapi kita sebenarnya tidak memerlukan i,
dan sebab kita perlu i adalah kerana kita perlu memberi pelbagai nama;
sebaliknya, kita tidak akan mempunyai cara untuk merujuk kepada array kemudian dalam kod.
>> Jadi hak ini di sini adalah pelbagai nama
dan dalam adalah panjang.
Ini akan memberikan kita array,
tetapi ini adalah - sekali lagi, ini adalah perisytiharan.
Ia bukan suatu penguntukan; ia tidak pengawalan.
Jika kita mengisytiharkan array ini seperti ini,
ada sebenarnya tiada apa-apa jua dalam kandungan array.
Ia hanya sampah - apa yang ada di sana.
Dan seperti kita berkata,
kita sebenarnya tidak perlu untuk melakukan penukaran ini,
kerana kita sudah boleh merawat rentetan s sebagai array.
Saya tahu bahawa kita sedang berjalan agak lama pada masa,
tetapi saya mahu hanya benar-benar cepat sampai ke ini untuk gelung
dan menunjukkan kepada anda bagaimana untuk mengakses watak-watak individu dalam array,
kerana itulah kunci untuk tugasan kami.
Dan kemudian kita akan membiarkan anda pergi dari sana.
>> Jadi di sini, kami telah mendapat untuk gelung
yang kelihatan hampir baik.
Apa yang tidak agak hampir ada?
What's - apa yang tidak agak tepat tentang perkara ini untuk gelung?
>> Tiada pendakap kerinting?
Tiada pendakap kerinting, untuk satu.
Ingin pastikan bahawa kita mempunyai badan gelung dengan pendakap kerinting.
Oops, tidak bersedia persegi!
Dan apakah perkara seterusnya yang perlu kita lakukan dengan gelung ini?
Jika saya mencuba dan jalankan ia,
Whats kesilapan ini yang saya dapat?
Saya mendapat semua kesilapan-kesilapan - saya perlu untuk memulakan i.
Besar.
Jadi ini akan menjadi gelung - ini tidak cukup di sana,
tetapi ia semakin benar-benar rapat.
Kod ini kita kini boleh menjalankan,
membina, kesilapan masih berlaku.
Mengapa ia masih mengadu,
mengatakan ungkapan tidak digunakan,
dan itulah kerana baris ini tidak berbuat apa-apa.
Kami tidak menyimpan di mana-mana, kita tidak menyimpan hasilnya.
Mana kita harus menyimpan keputusan ini?
>> S atau i?
Tepat sekali, dan ini sintaks funky,
ini s dengan kurungan persegi
bermakna mengakses watak i-ke s.
Itu akan menjadi sesuatu yang benar-benar penting untuk tugasan.
Malangnya, kita akan perlu berhenti di sini,
supaya seksyen Sebastian boleh datang dalam,
tetapi saya gembira untuk tinggal selepas luar dan akan mengambil apa-apa soalan.
Jadi terima kasih lelaki untuk datang.
Ini kini perlu memuat naik, membina, menjalankan.
Kita boleh masukkan rentetan seperti "hello"
dan ia mencetak "QOX".
[Ketawa]
>> Jadi tidak cukup di sana, tetapi bergerak, mendapat ke arah gelung mereka!
Terima kasih kerana datang, dan saya akan berada di luar.