>> [MUSIK BERMAIN]
Allison Buchholtz-AU: Hey semua orang.
Selamat datang ke pertama Anda seksyen CS50 rasmi.
Seperti yang anda boleh, lihat ini seksyen CS50-suka, hanya
untuk menarik agenda kita untuk hari ini.
Jadi, siapa saya, kerana saya pasti anda semua tertanya-tanya.
Saya TF anda.
Saya bukan hanya seorang pelajar secara rawak siapa yang menyamar TF anda.
>> Dan saya akan pergi melalui jenis mempunyai bagian akan mengalir,
harapan yang kita ada, sumber, seterusnya dan sebagainya.
Kami akan bercakap tentang array, ASCII fungsi, argumen baris perintah,
dan ia bukan di sini, tetapi Saya juga akan membantu
Anda jenis berfikir melalui Serangga anda yang seterusnya untuk minggu ini.
Yang saya pasti anda semua akan menghargai.
>> Jadi, pertama question-- siapa saya, selain TF gembira anda di sini.
Saya Alison Buchholtz-Au.
Ini adalah tahun kedua saya TFing CS50.
Saya juga TF CS51 di musim semi.
Anda mungkin akan melihat lagi ada jika anda membuat keputusan untuk mengambilnya.
Saya juga seorang PAF, sehingga setiap Freshmen-- dan jika anda tidak mahasiswa baru,
ini adalah tahun ketiga saya sebagai rakan menasihati.
Saya sangat mahir dalam memberi nasihat kepada anda tentang kehidupan dan kursus
dalam CS dan tidak dalam CS.
Saya seorang Sains Komputer Penumpu.
Saya seorang senior di Adams House, Rumah yang terbaik.
Dan sebelum saya beralih ke CS Sophomore Spring,
Saya juga adalah jurutera bioperubatan.
Saya akan pergi ke sekolah Med.
Saya akan menjadi seorang pakar bedah trauma.
Dan itu telah benar-benar berubah sejak saya mengambil CS50.
Saya mengambil kursus Sophomore Kejatuhan saya.
Ia adalah pengenalan pertama saya ke CS-lamanya.
Saya adalah salah satu dari 78% daripada orang-orang yang telah pengalaman sifar datang,
dan ia benar-benar mengubah hidup saya.
Dan sekarang saya sedang bekerja di Microsoft, dan TF indah anda.
Dan CS50 mungkin salah pengalaman yang terbaik
yang saya sudah di sini di Harvard-- kedua-dua mengambil kelas
dan dapat membantu mengajar pelajar seperti anda.
>> Jadi saya benar-benar teruja bahawa anda semua berada di sini.
Jika anda datang dalam an, ada gula-gula,
yang perlu merasa bebas untuk datang ambil, atau menghantar
orang lain untuk merebut untuk anda.
tidak apa-apa.
Saya tidak mahu makan itu.
Kamar memiliki coklat yang cukup, sehingga kalian harus cuba dan menyelesaikan itu.
Aku tahu ada 100 buah, tetapi seperti, 04:00 pada hari Isnin,
Saya rasa semua orang boleh menggunakan sedikit gula.
>> Jadi anda semua yang berada secara rasmi dalam seksyen saya
harus mendapatkan e-mel dari saya dengan nombor telefon saya,
e-mel address-- berasa bebas untuk menambah saya di Gchat, jangan ragu untuk menambah saya di Facebook,
dan juga untuk kalian semua, anda boleh email saya di sini.
Ada dua H.
Semua orang selalu tidak seperti dua L's atau dua C.
Dua H dalam nama akhir.
Jika tidak ia akan bangkit, dan Saya tidak akan untuk mendapatkan e-mel anda.
>> Jadi berasa bebas untuk e-mel saya, untuk menghubungi saya bila-bila masa.
Saya tidak dapat kembali ke anda dalam masa 24 minit,
tetapi saya berjanji untuk kembali kepada anda dalam masa 24 jam.
Jika kamu menyeru aku setengah jam sebelum Serangga anda hampir tamat, anda menjadi seperti,
Saya tidak tahu apa yang saya lakukan Allison.
Membantu saya.
Saya akan menenangkan anda ke bawah, tetapi pada akhir hari,
jika anda memanggil saya setengah jam sebelum Serangga anda disebabkan dengan apa-apa yang ditulis,
Saya akan menjadi seperti, baik, mungkin sudah tiba masanya untuk menggunakan bahawa hari akhir.
Jadi saya akan memberi maklum balas kepada semua anda permintaan dengan cara yang tepat pada masanya.
Telefon saya biasanya melekat pada tangan saya.
Saya biasanya bertindak balas banyak lebih cepat dari 24 jam,
tetapi saya hanya boleh jaminan tindak balas 24 jam.
>> Baik.
Jadi mengapa kita di sini?
Juga, jika anda mempunyai pertanyaan di bila-bila masa, sila beritahu saya.
Saya bercakap banyak.
Saya bercakap cepat, tetapi sila merasa bebas untuk mengganggu saya.
Ini memberi saya bernafas bilik juga.
Jadi bahagian yang satu masa bagi kita untuk benar-benar hanya menyelam
dalam, mendapatkan beberapa hands-on pengalaman, untuk melalui topik-topik yang telah dinyatakan
dalam kelas atau dalam bahan-bahan kajian yang kami sarankan untuk kalian dalam talian.
Dan kita benar-benar akan pergi melalui beberapa sumber-sumber dalam sedikit.
>> Jadi beberapa catatan pada bahagian sokongan.
CS50-- salah satu perkara yang membuat itu salah satu kelas kegemaran saya
adalah perasaan bahawa anda tidak pernah sendirian.
Kami mempunyai kakitangan lebih daripada 100 orang-orang yang berada di sini untuk membantu anda.
Kami mempunyai waktu pejabat Isnin hingga Khamis.
Jadi ada begitu banyak orang-orang yang suka kelas yang sama seperti yang saya lakukan
dan yang benar-benar di sini kerana mereka mahu berada di sini.
Sebagian besar dari kita adalah pelajar, dan ini adalah seperti kelas kelima selain
ke seluruh kerja kita.
>> Dan itu banyak kerja, tetapi kita melakukannya kerana kita suka,
dan kita benar-benar suka untuk mengajar anda dan membantu berkongsi kegembiraan kami
mata pelajaran ini dan kelas ini.
Oleh itu, sila mengambil kesempatan.
Datang berbicara dengan kami.
Aku kesepian apabila pelajar saya tidak bercakap dengan saya, jadi jika anda mahu,
datang berkumpul dengan saya.
Ia akan menjadi besar.
>> Jadi seksyen jelas salah satu perkara besar yang anda hadapi.
Kita akan pergi melalui perkara yang Anda pelajari di kuliah,
melakukan beberapa contoh pendek apabila kita mempunyai masa,
dan secara umum jenis mendapatkan gambaran tentang hal-hal
Anda harus berfikir kira-kira untuk masalah anda ditetapkan.
Bagaimana Shorts-- orang benar-benar banyak menonton video dari awal anda
pendek?
Sesiapa pun mengenali saya?
Jadi mereka adalah sangat hebat.
Anda pasti harus menonton mereka.
Banyak pekerjaan yang telah dimasukkan ke dalamnya.
Dan mereka hanya dimaksudkan untuk menjadi menggigit-saiz keping untuk anda hanya menonton
selama tiga atau empat minit dan mendapatkan pemahaman yang lebih baik mengenai sesuatu konsep.
Berjalan throughs-- bagaimana ramai orang telah menyaksikan
berjalan-lewat untuk yang sebelumnya?
Zamyla menakjubkan, kan?
Seperti, saya berharap saya Zamyla kadang-kadang.
Jadi pasti menggunakan walk-through anda.
Dia akan memecahnya menjadi kecil-kecil, gigitan-saiz.
Dan apabila anda mempunyai ini besar spesifikasi dari set masalah anda,
ia akan menjadi benar-benar penting untuk dapat langsung mencari tempat
untuk memulakan dan bekerja perlahan melaluinya.
>> Baiklah, kamu juga mempunyai Study50, yang adalah study50.harvard.edu, saya percaya.
Anda boleh hanya Google belajar, dan ia akan datang.
Ini adalah salah satu daripada sumber terbaik yang kita ada.
Ia adalah Power Point dengan nota dan mengamalkan masalah untuk anda
dengan penyelesaian yang anda benar-benar berjalan melalui.
Jadi, jika anda ingin lebih banyak latihan, lebih dari yang kita lakukan dalam bahagian atau lebih
daripada set masalah anda, ini adalah benar-benar tempat yang saya menggalakkan anda untuk pergi.
Ia dibina pada musim panas lalu oleh beberapa teman baik saya.
Dan luar biasa.
Malah, banyak slaid bahawa saya akan menggunakan untuk Seksyen
akan datang dari Study50.
>> Jadi banyak TF menggunakannya.
Dan akhirnya, seperti yang saya mula disebut itu, waktu pejabat.
Jika anda mengalami masalah dengan kerja rumah, anda
menghadapi masalah dengan konsep, datang kepada waktu pejabat.
Pergi lebih awal pada minggu jika anda boleh.
Keluar ke quad, kerana ia adalah jenis ini.
Tiada siapa yang suka untuk berjalan di luar sana.
Tetapi ia adalah untuk keuntungan anda, kerana selepas itu anda
akan memiliki semua TF ini, [Terdengar] mengelilingi anda.
Lebih-lebih lagi, hanya tip, Khamis
sangat sejuk sekarang di Mather kerana pşet anda
adalah disebabkan pada hari Kamis.
Dan mengetahui akan mahu menggunakan hari akhir anda lagi.
>> Jadi, jika anda mempunyai masalah dengan konsep,
ada banyak TF yang berada di sana untuk membantu anda.
Jadi keluar ke Mather pada Khamis.
Jika anda mahu melihat saya, Saya akan berada di sana.
Saya biasanya melakukan kerja rumah saya sendiri, kerana tiada siapa yang mahu membantu saya.
Jadi datang melihat kami.
>> Temui kami di tengah jalan.
Jadi berapa ramai orang yang telah menghadiri kuliah atau menonton secara online?
Berapa banyak orang yang pergi ke seksyen super minggu lalu?
Sejuk.
Itu sebenarnya jumlah yang adil.
Berapa ramai daripada anda telah membaca anda spec untuk minggu ini, untuk Serangga anda?
Ooh, saya bangga dengan anda semua!
Gula-gula lebih untuk kalian.
>> Baik, jadi apa yang kami maksudkan "Menemui kami di tengah jalan," adalah
seksyen itu adalah benar-benar hanya akan menjadi super berguna kepada anda
jika anda datang dalam membaca anda spesifikasi Serangga anda.
Kerana apabila saya pergi melalui gambaran keseluruhan perkara yang anda perlu melihat keluar untuk,
ia tidak akan membuat rasa sebanyak jika anda
tidak tahu apa masalah anda ditetapkan akan meminta anda untuk melakukan.
>> Jika anda tidak datang ke seksyen, jelas Saya tidak boleh menjadi yang berguna kepada anda.
Saya tidak akan tersinggung jika Anda tidak datang ke bahagian saya sekarang,
tetapi pasti anda harus.
Jika anda tidak boleh, menonton secara online.
Mereka berada di sana untuk suatu alasan.
Saya akan berada di sana.
Seperti yang anda perhatikan, kami sedang dirakam, jadi ia akan berada di sana untuk anda semua.
Selain itu, akan lectures-- itu jelas
di mana Anda mendapatkan mulai dari bahan anda di sini.
Jadi saya pasti akan cuba membantu anda seberapa banyak yang saya boleh,
tapi aku hanya dapat bertemu dengan kamu selama ini.
Anda perlu jenis menemui kami separuh perjalanan.
>> Grading-- begitu, kalian semua yang mendapat e-mel daripada saya,
Anda seksyen rasmi saya.
Saya akan dengan kadar pşet anda.
Dan saya hanya ingin mengatakan, satu perkara yang Anda benar-benar perlu memberi perhatian kepada
ini adalah komentar.
Komen-komen adalah kaedah yang paling berguna dari skor sebenar kami memberi anda.
Dan komen-komen sebenarnya di mana saya menghabiskan banyak masa saya
apabila saya grading.
Jadi saya akan menghargai jika anda membacanya.
Dan mereka benar-benar bagaimana anda akan untuk mengetahui lebih lanjut mengenai reka bentuk dan gaya
dan perkara-perkara yang merupakan memotong sedikit kurang dan kering.
>> Jadi benar-benar memberi perhatian kepada mereka komen.
Jika anda mempunyai soalan tentang mereka, atau pertanyaan tentang skor anda,
sila datang bercakap dengan saya sama ada sebelum seksyen,
Saya mungkin akan melepak di lobi, atau selepas itu.
Jika anda ingin jadwal satu-satu mesyuarat tentang bagaimana
Anda dapat membantu meningkatkan kemudian set masalah, hanya beritahu saya.
>> Dan kemudian hanya beberapa tips untuk kalian.
Jadi salah satu perkara yang paling besar Saya selalu menekankan kepada seksyen saya
apabila anda belajar bagaimana kode adalah menulis hal-hal di atas kertas pertama.
Jika anda mempunyai pelan permainan untuk di mana kod anda perlu pergi
dan apa yang perlu dilakukan dan ia dipecahkan
menjadi potongan-potongan kecil dari pseudokod Kod yang anda telah ditulis,
anda akan menjadi kurang mungkin untuk melakukan kesalahan sintaks
atau membuat jika gelung yang tidak mempunyai lagi satu.
Jika anda tahu di mana anda berada akan secara keseluruhan, anda
kurang cenderung untuk membuat ini kecil kesilapan yang kadang-kadang akan membawa anda
jam untuk memperbaikinya, kerana anda seperti, di mana saya hilang kurungan ini?
>> Pada masa yang sama, gunakan Style50.
Terutama apabila anda berada akan waktu pejabat,
jika kod anda adalah semua beralih kepada satu pihak,
menjadi dasar kursus yang kita boleh katakan, memperbaikinya
supaya ia kelihatan seperti Style50 kata ia harus, dan kemudian kami akan membantu anda.
Jadi ia akan menjadikan kehidupan anda lebih mudah.
Ini akan membuat kehidupan kita lebih mudah.
Semua orang bahagia.
Semua orang mendapat gred yang lebih baik.
Bukankah itu yang kita semua mahu?
>> Jadi menulis hal-hal di atas kertas sebelum anda pernah menyentuh komputer anda.
Bercakap perkara-perkara di peringkat yang tinggi, dan pastikan anda tahu di mana anda akan pergi.
Dan jika anda tidak yakin, duduk dengan seseorang
dan berjalan mereka melalui langkah demi langkah apa kod anda yang seharusnya dilakukan.
Dan sembilan kali daripada 10, anda boleh seperti, oh, aku lupa jika keadaan
atau saya lupa titik koma sini atau Saya mengemas kini salah variabel ini.
Jadi mereka adalah tips saya untuk berjaya.
>> Jadi sejak kira-kira separuh daripada anda melihat penggunaan seperti anda menghadiri seksyen super,
Saya hanya akan sangat secara ringkas melalui gelung,
yang tidak dalam agenda asal kita.
Tetapi mereka benar-benar penting.
Oleh itu, saya akan pergi ke jenis kelajuan melalui orang-
sebelum kita masuk ke dalam seksyen sebenar kami.
Sebelum saya melakukan itu, apakah ada apa-apa questions-- logistik,
secara peribadi, apakah ada hal lain yang ingin
tahu tentang saya atau kira-kira seksyen atau kelas secara umum?
Semua yang baik?
OK, sejuk.
Lovely.
>> Jadi loops-- kalian semua harus mengenali potongan-potongan ini dari awal.
Jadi gelung pada dasarnya hanya cara bagi kita untuk melakukan sesuatu
beberapa beberapa kali, beberapa berulang tindakan berdasarkan beberapa bersyarat.
Jadi, kita mempunyai tiga jenis yang berbeza.
Kami ada untuk gelung, manakala, dan do-while.
>> Jadi untuk loops-- kita hanya mempunyai sangat susun atur umum di sini untuk loop.
Dan ini adalah hebat untuk apabila anda tahu bagaimana berkali-kali sesuatu yang perlu untuk melaksanakan.
Apabila kita bercakap tentang gelung yang lain, anda akan
melihat mengapa itu satu perbezaan yang penting.
Tetapi bagi gelung adalah untuk sesuatu set.
Anda tahu anda boleh sama ada mengira bilangan
atau anda tahu berapa kali anda mahu perkara ini berulang-ulang di awal.
>> Jadi, jika anda lihat di sini, kita mempunyai hanya semacam umum
rangka kerja rangka untuk untuk loop sini.
Jadi untuk pemula, ini adalah di mana pembolehubah anda akan telah siap.
Dengan Mario, saya yakin kalian melakukan sesuatu seperti int i sama dengan 0.
Itulah di mana yang akan berlaku dengan warna biru.
Anda mengalami keadaan anda, yang adalah apa yang diperiksa setiap masa.
Jika keadaan ini benar, maka sisa kod dijalankan.
Maka ia akan lari again-- dan bertanya.
Dan selepas itu perlu kemas kini, di mana Anda meng-update variabel.
Jadi, sekali lagi, dengan seperti Mario, saya yakin kalian melakukan sesuatu seperti i plus plus.
Jadi setiap kali gelung berlari, saya tidak perlu lagi dikemaskini sehingga
bahawa apabila kita telah menyemaknya dengan beberapa keadaan, ia telah berubah.
>> Kerana jika anda hanya mempunyai pembolehubah statik,
jika dijalankan kali pertama, ia hanya akan melaksanakan tanpa had.
Oleh itu, anda perlu memastikan anda mengemaskini pembolehubah anda dengan betul.
Dan kami juga mempunyai hanya visual di sana.
Semua orang yang baik?
Untuk gelung.
Seharusnya melihat ini dalam Serangga anda.
Sejuk.
>> Jadi di sini hanya contoh mudah.
Cetak Ini adalah CS50!
10 kali.
Dan dengan itu kita mempunyai pengawalan kita, seperti yang kita lihat di sana, dengan int i
sama dengan 0, i kurang dari 10, dan saya plus plus.
Dan ia akan mencetak yang 10 kali.
>> Oleh itu, sambil loops-- sementara loop apabila besar anda tidak semestinya
perlu tahu bagaimana berkali-kali itu akan mengemas kini pada awalnya.
Anda hanya mempunyai beberapa keadaan yang diperiksa.
Dan ini boleh menjadi sesuatu seperti while-- mari kita mengambil contoh dari Serangga anda.
Jika Mario, anda cuba untuk input nombor negatif.
Betul?
Anda sepatutnya meminta semula pengguna anda.
Jadi, anda boleh berkata, dengan baik, jika input pengguna sesuatu yang kurang daripada sifar, semula segera
mereka.
Dan aku yakin yang mungkin mempunyai sesuatu yang ada di antara kamu
digunakan dalam kod anda.
>> Oleh itu, ia adalah satu perkara yang mudah.
Anda mempunyai sementara, beberapa bersyarat yang diperiksa
setiap kali kod pergi untuk melaksanakan.
Jika ia bernilai benar, kita menjalankannya.
Jika tidak, kita tidak.
Dan apa yang benar-benar sesuatu important-- saya
berfikir bahawa Daud bercakap tentang di lecture-- adalah kawat gigi.
Apa pun dalam masa yang pendakap adalah apa yang dilaksanakan.
Jika anda terlupa mereka kawat gigi, itu hanya akan
menjadi garis langsung selepas beberapa ketika itu disempurnakan.
>> Jadi jika anda mempunyai tiga perkara-perkara yang sepatutnya
berlaku ketika ini keadaan bernilai true,
dan anda tidak mempunyai orang-orang pendakap, hanya perkara pertama yang akan berlaku.
Jadi sangat menyedari di mana anda meletakkan kawat gigi anda.
Jika anda tetap dengan Style50, ini pasti akan membantu anda.
Sejuk.
>> Jadi, ini adalah kiraan dari 10 hingga sifar.
Dan seperti yang anda lihat di sini, kami memulakan beberapa kaunter di luar itu.
Satu perkara yang berbeza adalah kita tidak Memulakan variabel kita
dalam gelung saat kami.
Ia dimulakan di luar itu.
Kami hanya hanya meletakkan kondisi untuk sementara kami.
Jadi dalam hal ini, ia adalah sementara hitung lebih besar daripada sifar.
Dan kita mencetak apa kiraan kita, dan kemudian kita boleh ubah pengurangan kami.
Dan itu juga satu lagi perkara untuk pemberitahuan.
Kemas kini kami tidak berlaku dalam bahagian pertama gelung sementara.
Ia sebenarnya akan berlaku dalam tempoh kawat gigi, tubuh teks anda.
>> Jadi jangan manakala loops-- do-while loop yang besar untuk pengesahan pengguna.
Jadi sebahagian daripada anda mungkin mempunyai juga menggunakan ini dalam Serangga anda.
Anda boleh berkata, berbuat, seperti, meminta pengguna untuk input.
Kemudian sementara, seperti itu, input kurang dari beberapa nombor.
>> Jadi untuk kes yang jelas dengan Mario, ia akan melakukan printf, masukkan integer,
dan kemudian beberapa integer sama getInt.
Dan kemudian ia akan benar-benar melaksanakan kod yang pertama.
Anda akan benar-benar mempunyai semacam integer.
Dan kemudian anda boleh berkata, sementara bilangan bulat yang kurang daripada sifar.
Jadi apa yang akan anda lakukan adalah itu akan melaksanakan sekurang-kurangnya sekali.
Ia akan memeriksa keadaan.
Jika keadaan ini benar, ia akan lari lagi.
>> Jadi do-while loop besar untuk pengesahan pengguna,
kerana anda tahu kod akan melaksanakan sekurang-kurangnya
sekali, sedangkan dengan manakala gelung, anda tidak
dijamin bahawa itu akan melaksanakan satu kali.
Ia akan memeriksa kondisi pertama dan kemudian membuat keputusan untuk melaksanakannya,
sementara do-while akan melaksanakan kod yang pertama
dan kemudian memeriksa untuk melihat sama ada anda perlu mengulanginya.
Apakah perbezaan yang masuk akal untuk semua orang?
OK.
Sejuk.
>> Jadi dalam hal ini, ini adalah jenis dari apa yang saya bercakap tentang,
ini semula petunjuk sampai Anda mendapatkan nombor yang positif.
Oleh itu, kita tahu bahawa printf "Masukkan nombor positif"
dan benar-benar meminta bahawa input yang akan berlaku sekurang-kurangnya sekali.
Jika pengguna adalah jahat dan terus memasukkan nombor negatif, yang
tahu berapa kali ia akan melaksanakan.
Tetapi kod ini dijamin untuk melaksanakan sekurang-kurangnya sekali.
Dan sebab itu ia hebat untuk mengesahkan input.
Dan anda akan menggunakan agak sedikit.
>> Baiklah, apa-apa soalan setakat ini?
Kita semua yang baik?
Adakah saya bercakap terlalu cepat?
Kami baik?
OK.
Awesome
>> Jadi, kita akan pergi ke depan dan berbicara tentang array.
Sejuk.
Jadi array pada dasarnya hanya struktur data
yang membolehkan kita untuk menyimpan perkara dari jenis yang sama.
Jadi jika anda pernah mempunyai array, itu sama ada hanya akan mempunyai ints
atau ia hanya akan mempunyai mengapung atau ia hanya akan mempunyai karakter.
Anda tidak akan mempunyai int dengan char dengan pelampung dengan ganda.
Satu perkara.
Array hanya satu ukuran, atau mereka hanya satu jenis.
>> Jadi di sini kita mempunyai pelbagai saiz tiga dengan tiga bilangan bulat di dalamnya.
Mereka boleh terapung, tetapi kami akan mengatakan ints mereka.
Jadi, satu perkara yang perlu sedar ialah array adalah ukuran set apabila anda memulakan
mereka, dan mereka tidak easily-- kerana anda semua adalah kurang selesa,
Anda hanya perlu menganggap mereka sebagai tidak dapat melanjutkan dalam ukuran.
Namun besar anda berangkat array pada mulanya,
itu saiz itu akan untuk tinggal, karena array
blok berterusan dari ingatan.
Dan apabila kalian mendapatkan menjadi sedikit lebih
bagaimana memori sebenarnya diletakkan di cakera dan di tumpukan dan tumpukan,
ia akan masuk akal lebih sedikit.
>> Tetapi anda hanya boleh berfikir seperti, itu hanya deretan ruang pada cakera anda.
Dan anda tidak boleh menjamin bahawa ada akan menjadi ruang bebas selepas itu.
Anda boleh memulakan array tiga dan kemudian mungkin anda
memulakan satu lagi pelbagai lima kemudian, dan itu tepat selepas itu.
Jadi, jika anda adalah untuk pergi tempat lalu tiga dalam pelbagai pertama,
Anda akan menulis atas sesuatu yang lain.
Jadi array are-- untuk kalian, hanya menganggap mereka sebagai ukuran yang tetap.
>> Jadi mewujudkan array-- anda akan perlu melakukan ini agak sedikit.
Jadi dengan cara yang sama bahawa kita mempunyai struktur am bagi kami untuk gelung,
kita mempunyai umum baik struktur bagi array kita.
Kerana mereka adalah dari satu jenis, semua elemen dalam array adalah dari satu jenis,
Anda perlu memulakan jenis iaitu.
>> Jadi, seperti yang anda lihat di sini, kami mempunyai baik sedikit jenis data kurungan.
Jadi jika kita mewujudkan int array, yang akan menjadi int.
Jika kita membuat char array, ia akan menjadi arang.
Jika kita mewujudkan rentetan array, ia akan menjadi tali.
Dan kemudian nama array, apa sahaja yang anda ingin untuk menjadi.
Jadi mungkin itu skor ujian atau mungkin itu pelajar atau mungkin ia adalah gula-gula.
Apa sahaja yang anda memutuskan untuk nama anda array, itulah yang akan menjadi.
>> Dan kemudian dalam kurungan, anda akan mempunyai saiz yang anda mahu.
Jadi, apakah kita menyimpan 10 orang pelajar atau kita menyimpan 15 jenis gula-gula?
Apa yang tidak.
Jadi, dalam contoh kita di sini, kami menciptakan array
saiz tiga, yang kalian lihat di sini di sebelah kanan.
Dan apabila kita mula-mula memulakan itu, semuanya sudah ditetapkan kepada sifar.
Jadi ia hanya berpikir seperti sebuah batu tulis kosong.
Kami mempunyai semua ruang-ruang ini, kita semua kotak-kotak yang kita boleh meletakkan data kami ke dalam,
tetapi ia hanya kosong pada masa itu.
>> Jadi jika kita ingin benar-benar menetapkan mereka nilai-nilai ini,
kita berbuat demikian kerana hak di bawah sini menunjukkan.
Jadi anda mempunyai apa jua nama anda array dan kemudian apa indeks yang anda mahu.
Sehingga indeks hanya merujuk kepada, seperti, apa slot kita sedang melihat.
Dan satu perkara yang penting untuk diperhatikan ialah array sifar diindeks.
Jadi, jika kita mahu ruang yang pertama dalam ingatan array kita, ia akan menjadi sifar.
Jika kita mahu yang kedua, ia akan menjadi satu.
Jika kita mahu yang ketiga, ia akan menjadi dua.
Sebagainya dan sebagainya.
>> Yang juga mengapa, konvensional, apabila kita lakukan untuk loops-- saya pasti
kalian ingin tahu, mengapa kita mulai pada 0 vs 1?
Dan itu karena apabila kita beralih dalam menggunakan array, itu peta dengan betul.
Jadi jika anda mahu beralih ke dalam array, ia
masuk akal lebih banyak untuk apakah saya sama dengan 0, kerana kita
tahu bahawa akan sesuai ke tempat yang pertama dalam ingatan.
Semua orang yang baik itu?
Sejuk.
>> Dan kemudian di bahagian bawah di sini adalah hanya cara lain untuk memulakan array.
Anda masih mempunyai anda jenis data dan nama,
tetapi bukan benar-benar meletakkan saiz yang di sana,
Anda hanya boleh melakukan kurung kosong.
Dan kemudian dengan ini kerinting kawat gigi di bahagian bawah,
Anda hanya dapat input data yang Anda mahu dipisahkan dengan koma.
Dan yang akan secara automatik berkata, OK, saya melihat
bahawa anda mempunyai tiga perkara kurung ini.
Jadi saya tahu bahawa saya perlu memperuntukkan tiga blok memori dan kemudian menyimpan mereka.
>> Jadi versi pertama yang anda mungkin menggunakan jika anda meminta pengguna anda kepada input
nilai-nilai supaya anda boleh beralih melalui array
dan ask-- mendapatkan beberapa int kepada input mereka.
Jika anda tahu nilai terlebih dahulu, ia masuk akal lebih banyak
menggunakan cara yang kedua.
Tetapi dalam kebanyakan kes, anda mungkin tidak tahu apa nilai-nilai yang akan menjadi.
Sejuk.
Apa-apa soalan lain?
Mengapa.
>> Jadi mengakses elements-- jadi satu satu perkara yang menarik tentang array
adalah bahawa mereka adalah rawak akses, bermakna anda
tidak perlu melihat melalui setiap blok.
Jika anda tahu bahawa anda mahu apa yang ada di blok dua,
Anda hanya boleh berkata, memberikan blok dua.
Dan sebab itu ini indeks adalah sangat penting,
dan itulah bagaimana kita benar-benar mengaksesnya.
Jadi dalam hal ini, seperti yang kita lihat sebelum ini apabila kami memberikan nilai-nilai, di salah satu
sebelum ini, kami mempunyai nama dan indeks kami ingin akses, kan?
Jadi dengan cara yang sama, hanya itu yang kita lakukan untuk benar-benar menarik bahawa data keluar.
Kami mempunyai nama dan kita mempunyai indeks yang kita inginkan.
>> Jadi dalam hal ini, untuk loop di sini di bahagian bawah, ada yang
tahu apa yang dilakukannya, apa yang ia akan mencetak?
Mmhmm?
Tepat.
Jadi ya, ia hanya iterasi melalui.
i adalah sama dengan zero-- kita boleh berjalan melalui kod yang baru dengan cepat.
i adalah sama dengan sifar, saya kurang daripada tiga pada ketika ini, kan?
Jadi yang memeriksa keluar.
Dan kita berkata, OK, mencetak f apa yang ada di suhu i.
i adalah sifar di sini apabila kami mula-mula beralih, jadi kami pergi ke tempat yang pertama ini,
dan kita berkata, OK, 65 adalah jumlah kita ingin mencetak.
Sehingga akan mencetak 65 dan kemudian melakukan baris baru.
saya akan update, jadi ia mencetak 87.
Ini update lagi, dan ia akan mencetak 30.
Semua orang keren?
Awesome.
>> Baik.
Jadi, inilah jenis satu perkara yang saya katakan bagaimana
Anda boleh menjejaki skor seseorang dan mengapa
Anda akan menggunakan yang pertama cara memulainya
bukan dengan cara kedua.
Dan ini hanya akan melalui.
Dan perhatikan kita mempunyai saiz kelas 30.
Dan kami Memulakan ini array int yang saiz 30.
Dan kemudian kita iterasi melalui dan kami
meminta pengguna untuk input markah untuk masing-masing
dan kemudian memberikan kepada tempat yang tertentu di memori
di suatu tempat di pelbagai itu.
Cool?
Adakah ini masuk akal untuk semua orang?
Mmhmm?
>> Jadi hashtag menentukan saiz kelas 30 adalah prosesor pengarah,
yang hanya berarti ia gets-- ia mempunyai untuk melakukan seperti proses kompilasi.
Anda boleh memikirkan ia sebagai pembolehubah global.
Cara kita melakukannya adalah typically-- ia membolehkan kod anda
agar lebih mudah berubah.
Jadi, mari kita mengatakan bahawa saiz kelas kami tiba-tiba pergi 30-15,
jika saya telah tidak ditakrifkan dengan cara ini, saya akan perlu melalui keseluruhan program saya
dan mengubah setiap contoh 30 hingga 15.
Tetapi dengan ini, saya dapat mengubah satu tempat, dan segala sesuatu perubahan yang lain.
>> Jika anda ingin melakukan hash menentukan dalam hal
di mana anda mencatat beberapa menetapkan bilangan skor untuk kelas
atau anda menggunakan sejumlah yang akan digunakan, seperti,
sepanjang program yang sangat lama, ia adalah yang lebih baik untuk menentukan bahawa di awal
sehingga jika pernah berubah, anda akan mendapat untuk menukar satu tempat dan bukannya 100.
Ya?
>> PELAJAR: Antara melakukan hal itu dan hanya mengisytiharkan [terdengar] lebih di bahagian atas.
>> Allison Buchholtz-AU: Jadi mempunyai kaitan dengan efficient--
itu agak luar skop apa yang kita boleh buat di dalam seksyen ini.
Hal ini untuk berbuat lebih banyak dengan kecekapan dan bagaimana perkara sebenarnya
bekerja dalam proses kompilasi.
Jika anda ingin benar-benar tahu tentang hal itu, saya gembira untuk menghantar
email dengan sumber tentang hal itu.
Hash menentukan cenderung pilihan untuk sesuatu.
Dan seperti yang anda kod lanjut, anda jenis mempelajari nuansa
apabila anda perlu menggunakan global berbanding hash tentukan.
Tetapi pada masa itu, Anda tidak benar-benar mempunyai
perlu bimbang tentang hal itu adalah bahawa jawapan pendek.
Semua orang yang baik itu?
Dan juga, jika anda mahu menggunakan hash menentukan,
ia benar-benar penting untuk memperhatikan bahawa nama itu harus dalam semua topi.
Kami tidak hanya melakukan KELAS SAIZ menjadi dramatik.
Ia benar-benar harus di semua topi.
Sejuk.
Ada apa-apa lagi?
Kami baik?
Lovely.
Selamat datang.
>> OK, jadi saya mahu anda semua untuk melihat dengan ini dan lihat jika anda boleh mencari bug.
Saya akan memberikan petunjuk.
Ini adalah suatu tempat di mana untuk gelung.
Mmhmm?
>> PELAJAR: Sekiranya kurang dari sama dengan 2.
>> Allison: Jadi ia boleh menjadi kurang daripada atau sama dengan 2, atau ia boleh menjadi kurang daripada 3.
Dan apa alasan untuk itu?
>> PELAJAR: The [terdengar], 0, 1, 2.
>> Allison: Tepat sekali.
Jadi dalam pelbagai saiz n, kami hanya mempunyai indeks n tolak 1.
Sejuk.
Dan kemudian kita boleh mendapatkan benar-benar gila dan mendapatkan array pelbagai dimensi.
Salah satu masalah apabila saya menerimanya dengan saya tahun diperlukan array multi dimensi,
dan saya fikir salah seorang daripada mereka mungkin memerlukan tahun ini, jadi selesa.
Balut kepala anda di sekitar sekarang.
Ia akan kembali menghantui anda, tetapi dengan cara yang sejuk.
Jadi, anda boleh benar-benar hanya berfikir array pelbagai dimensi
sebagai tatasusunan array.
Jadi anda jenis boleh berfikir atas ini baris sebagai potongan yang pertama dari ingatan.
Dan yang satu ini adalah sebahagian kedua dari ingatan,
dan berturut-turut yang terakhir adalah sebahagian ketiga dari ingatan.
Dan dalam masa itu, ada array.
Tetapi sudah tentu, lebih mudah untuk menggambarkan seperti ini.
>> Jadi, anda memulakan dengan cara yang sama.
Ini adalah jenis yang lembaga tiga dengan tiga.
Jadi, anda mempunyai tiga baris dan tiga tiang.
Kami mewakili dengan cara ini.
Dan anda dapat mengaksesnya yang cara yang sama, ruang baris.
Dan sehingga 1,1 seperti yang kita lihat di sini.
Kami menetapkan sifar, sifar di atas sana.
2,0 dan 0,2.
Jadi anda hanya akan mengakses them-- jika yang pernah dilakukan algebra linear,
cara yang sama anda mengakses satu unsur dalam matrik, ia adalah idea yang sama di sini.
Jadi, anda boleh menghubungkannya kembali dengan matematik.
Anda tidak perlu risau banyak tentang ini sekarang.
Ia adalah baik untuk mempunyai pendedahan, untuk mengetahui bahawa anda boleh melakukannya.
Anda boleh membuat beberapa gila number-- anda boleh
membuat array gila adalah semua saya akan katakan.
[Terdengar]
Ia mendapat sedikit gila, tetapi ia benar-benar sejuk.
Awesome.
>> Dan kemudian, jadi kami mempunyai contoh di sini.
Ia mengira panjang tali.
Jadi berapa ramai orang yang tahu bahawa string yang anda gunakan
hanya tatasusunan aksara?
OK, ya.
Jadi anda semua boleh berfikir bahawa anda tidak mempunyai array yang digunakan sebelum ini, tetapi bila-bila masa
Anda menggunakan GetString dalam Perpustakaan CSView, anda
sebenarnya hanya meminta pelbagai karakter.
Dan kami mengurus semua bahwa dalam back-end untuk anda.
Tetapi anda telah menggunakan array sejak anda bermula.
Anda hanya tidak tahu keadaan ini.
>> Dan apabila anda mempunyai pelbagai watak atau array yang menyimpan rentetan,
perkara terakhir yang selalu apa yang disebut terminator batal, yang
adalah ini di sini.
Dan itu adalah pada akhir setiap perkataan yang anda biasa menggunakan.
Jadi, jika kita ingin mengetahui Panjang tali, kita boleh berkata,
baik, yang anda tahu, kandungan blok yang
tidak sama dengan terminator batal kami.
Ini bermakna bahawa terdapat beberapa watak sana yang kita benar-benar
mengambil berat tentang itu sebahagian daripada kata.
Anda meningkatkan panjang anda.
Dan kemudian apabila kita benar-benar dapat akhir kata, itu akan menamatkan
dan ia akan kembali panjang kita untuk kita.
Mmhmm?
>> PELAJAR: Adakah ruang dikira sebagai terminator nol?
Allison: Jadi ruang adalah tidak terminator null.
Jadi jika anda mempunyai multiple-- ruang sebenarnya nilai ASCII tertentu.
PELAJAR: Apa seru sama lagi?
Allison: Jadi, ini adalah apa yang anda rujuk.
Jika anda pernah mendengar saya di waktu pejabat, Saya selalu menyebutnya, seperti, sama bang.
Jadi bang tidak.
Jadi, ini adalah tidak sama.
Jadi, jika anda cuba untuk melihat apakah ada sesuatu yang palsu,
Anda tahu selalu lakukan, bang apa sahaja pembolehubah adalah, dan jika itu salah,
ia bernilai benar dan anda boleh melakukan hal-hal yang sejuk dengan itu.
Lebih banyak yang akan dibincang kemudian.
Sejuk.
Segala sesuatu yang baik di sana?
Awesome.
>> Jadi sekarang tiba masanya orang-orang anda ke bekerja, kerana saya telah bercakap.
Jadi saya mahu anda hanya membuat array dengan bilangan bulat satu, dua, dan tiga,
dan kemudian mereka telah dicetak.
Anda tidak perlu lakukan, seperti, utama, bla, bla, bla, apa sahaja.
Saya hanya mahu anda untuk memulakan array dan kemudian membuat
untuk loop untuk mencetaknya out-- atau while loop, terpulang kepada anda.
>> Saya hanya akan memberikan pasangan minit untuk berusaha ke arah itu.
Saya akan berehat suaraku.
Jika anda mempunyai sebarang soalan, saya gembira untuk datang dan berbicara dengan kalian.
Jangan ragu untuk bercakap dengan satu sama lain.
Mendapatkan lebih banyak gula-gula.
Malah, saya hanya akan berjalan-jalan dengan gula-gula.
Bagaimana?
>> Adakah anda mahu apa-apa?
Orang lain di dalam bilik ini mahu gula-gula?
Anda juga boleh mengambil lebih daripada satu, guys.
Ambil segenggam jika anda mahu.
Boleh juga.
Semua orang yang baik?
OK.
>> Selain itu, saya akan membuat Borang Google tanpa nama,
dan kalian hanya boleh mengemukakan maklum balas selepas setiap seksyen
jika ada sesuatu yang anda mahu memperbaiki atau sesuatu yang ingin dilakukan.
Jika saya terlalu penuh semangat untuk anda, saya boleh nada turun.
Saya akan membuat itu dan menghantar yang kepada anda semua selepas itu.
>> Baik.
Jadi mari kita mulai dari kecil.
Bagaimana kita akan memulakan array kita?
Apa jenis array kita?
Int, kan?
OK, jadi apa yang anda mahu untuk memanggil array Anda?
Int array, sejuk.
Baiklah, jadi kita harus int array int sama, dan apa yang kita ada selepas itu?
PELAJAR: [didengar] kurungan.
Allison: Braces.
Dan kemudian di dalam penyokong gigi?
Satu koma dua koma tiga.
Sejuk.
Supaya apa-apa.
Jadi sekarang kita mempunyai untuk gelung.
Jadi, dalam bahagian pertama kami untuk loop, apa yang kita ada?
>> PELAJAR: i sama dengan 0?
>> Allison: Jadi int i sama dengan 0, dan lalu apa keadaan kita?
Apa yang saya akan menjadi kurang daripada?
Kurang dari tiga, dan bagaimana kita hubungannya update i?
i plus plus, memperbarui itu demi satu.
Dan kemudian kita akan mempunyai beberapa printf dari integer,
dan apa yang yang lalu bahagian itu sebenarnya
akan mengatakan apa yang kita perlu mencetak?
Ini akan menjadi nama array, yang adalah int array, kan?
Dan apa yang di dalam kurungan int pelbagai?
i.
[? Jadi saya?] Yang disebut saya Sebagai contoh, tetapi ada anda pergi.
Tidak seburuk itu.
Semua orang yang baik?
Sejuk.
>> Oleh itu, kita sudah selesai dengan array.
Tahniah.
Anda berjaya untuk beralih melalui semua the-- ya?
>> PELAJAR: [didengar]
>> Allison: Ya.
>> PELAJAR: Saya mempunyai satu soalan.
Adakah anda seharusnya indent penyokong gigi?
>> Allison: Jadi kawat gigi harus berbaris dengan untuk gelung, dan kemudian segala-galanya
di dalam kurung harus menjorok.
>> PELAJAR: OK, sekiranya untuk loop menjorok?
>> Allison: Untuk loop tidak perlu menjorok pada saat ini.
Jika anda berada di utama, jika kita sebenarnya mempunyai fungsi utama di sini,
ia akan menjorok dari utama.
Tetapi dalam hal ini, tidak apa-apa.
Ya, soalan.
>> PELAJAR: Adakah anda perlu mempunyai tanda kurung selepas contoh?
>> Allison: Ya, jika anda Memulakan dengan cara itu.
Jadi ingat, ini adalah yang kedua cara Memulakan sebuah array di mana
kita mempunyai kawat gigi, dan kemudian sebenarnya kami data dipisahkan dengan tanda koma dalam.
>> PELAJAR: Saya fikir ada kurungan sebagai contoh itu.
>> Allison: Tidak, mereka kawat gigi.
Mereka kawat gigi.
Jika anda memulainya bahawa cara kedua, itu penyokong gigi.
Jika kita mengatakan, int example-- jika kami hanya ingin array kosong untuk int,
ia akan menjadi contoh int kurung tiga.
Tanda kurung mewakili saiz.
Apabila anda mempunyai kawat gigi, itu data sebenar
Anda meletakkan ke dalamnya dengan cara ini.
Kita boleh skrol kembali benar-benar cepat.
>> Jadi dalam satu ini, ini hanya kami pelbagai awal, pengawalan.
Dan di sini, kami secara individu memberikan tempat kepada mereka,
jadi ini merupakan indeks kami array, yang adalah mengapa kita mempunyai tanda kurung.
Tetapi di sini, jika anda perasan, kami telah meninggalkan kami tanpa kurung saiz,
dan kami memulakan ia dengan data sebenar semua-dalam-satu dengan penyokong gigi.
PELAJAR: Jadi, mengapa tidak, kita perlu kurung dalam contoh ini?
Allison: Jadi, di bahagian mana?
PELAJAR: Bukankah kami katakanlah, kurungan contoh int
sama dengan kawat gigi [terdengar] kurungan sebagai contoh.
>> Allison: Oh, maaf.
Anda benar.
Kami mempunyai kurungan di sana.
Maaf guys, saya buruk.
Ya, anda perlu mempunyai kurungan selepas contoh.
Anda memang benar.
>> PELAJAR: [didengar] tidak melakukannya.
>> Allison: Tidak, anda perlu mempunyai kurung, karena kalau tidak,
tidak akan mengisytiharkan array.
PELAJAR: [didengar].
Maafkan kami.
>> Allison: Maaf, anda perlu kurungan selepas contoh.
Typo.
Soalan yang bagus, bintang emas untuk anda.
Juga, jika anda bertanya soalan, jika kalian hanya akan beritahu saya nama anda,
Saya suka itu.
Saya suka dapat tahu semua nama anda.
Saya tidak akan sejuk memanggil anda, saya benar-benar
jangan hanya mahu tahu nama anda.
Oleh itu, sila sebenarnya beritahu saya nama anda.
>> Leah: Lea.
>> Allison: Lea.
OK, jadi functions-- saya kenal ringkas mereka berbicara tentang perkara ini semasa kuliah.
Jadi fungsi yang jenis hanya seperti ini sedikit perkara gigitan-saiz
di mana anda lulus dalam input, sesuatu ajaib berlaku, dan anda mendapat output.
Sejuk.
Oleh itu, anda benar-benar menggunakan banyak ini sudah.
Dapatkan int, dapatkan tali, cetak f.
Semua ini adalah fungsi di mana anda hanya memanggil mereka,
ada banyak perkara ajaib berlaku di latar belakang
bahawa anda tidak perlu melihat, dan anda mendapat apa yang anda inginkan.
Atau sekurang-kurangnya anda mendapat apa yang anda berharap anda inginkan.
>> Dan pada dasarnya titik fungsi, dan salah satu tema utama dari CS,
adalah untuk memecahkan kod anda ke dalam bagian.
Apabila anda mula menulis program-program ini benar-benar panjang,
atau dalam Scratch apabila anda mempunyai idea ini besar untuk permainan,
Anda perlu berupaya untuk memecahkannya ke, seperti, OK, bagaimana saya bermula?
Apakah potongan-potongan kecil yang saya perlukan?
Oh, saya perlu meminta pengguna untuk sesuatu.
Sekarang saya perlu untuk mencetak sesuatu.
Oh, saya perlu mengira nilai ini.
>> Dan belajar bagaimana untuk memecah anda kod dan masalah-masalah besar yang anda
mempunyai ke dalam potongan-potongan kecil dan mewujudkan fungsi
sebenarnya adalah salah satu daripada asas besar CS.
Jadi, anda boleh memikirkan fungsi seperti seperti kotak hitam, kotak hitam ajaib,
bahawa anda meletakkan sesuatu ke dalam dan anda mendapatkan beberapa output.
Dan sisa program tidak perlu perlu tahu
apa yang sedang berlaku di dalam kotak hitam.
Apa yang mengambil berat tentang apa yang masuk dan apa yang keluar.
Sejuk.
>> Jadi mengapa fungsi?
Organization-- seperti yang saya katakan, apabila anda berurusan dengan pangkalan kod yang sangat besar,
bagaimana anda menyusun kod anda akan lebih mudah jika anda menggunakan fungsi-fungsi.
Oleh kerana anda akan dapat jadi, seperti, OK, ini
apa fungsi ini dilakukan dan inilah yang satu sama lain tidak.
Dan anda boleh dengan mudah melihat bagaimana mereka semua sesuai bersama-sama.
Jadi memecahkannya kepada semua ini subparts terkawal.
>> Jadi simplification-- Saya pasti anda semua semua melihat hal itu, seperti yang saya katakan, dengan Scratch.
Anda mempunyai idea besar ini, dan Anda seperti, bagaimana semua kerja-kerja ini?
Tetapi jika anda mendekatinya sedikit demi sedikit, Anda berkata, OK,
bagaimana saya boleh membuat satu sprite mengapung di skrin?
Itu sedikit lebih mudah.
Digunakan sehingga baik fungsi jenama kod anda lebih mudah untuk dibaca.
Itu membuat lebih mudah untuk debug yang seperti anda masuk ke dalam masalah set kemudian anda,
anda akan benar-benar ingin dapat lakukan.
Dan mereka juga lebih mudah untuk merancang dan melaksanakan.
Anda boleh kode sebuah kecil berfungsi agak cepat
dan pastikan ia berfungsi berbanding cuba untuk membuat program ini panjang keseluruhan
dan kemudian jenis melalui dan melihat apa yang bekerja dan apa yang tidak.
>> Dan kemudian digunakan semula.
Jadi fungsi hanya perlu yang akan ditulis satu kali,
dan kemudian anda boleh menggunakannya sebanyak yang mungkin.
Jadi itu, seperti, mesra alam dalam arti.
Jika anda memiliki hal-hal seperti f cetak, di mana anda
harus menulis sihir yang masuk di balik mencetak f setiap kali
Anda ingin mencetak sesuatu, anda akan sangat sakit dan bosan
pada akhir.
>> Salah satu perkara yang anda akan belajar dalam kelas kemudian CS,
atau salah satu yang terbaik nasihat saya mendapat
adalah, jika anda menyalin dan menampal kod, ia mungkin harus fungsi.
Jika anda mempunyai yang sama tepat baris di seluruh kod anda,
jika anda faktor mereka keluar, kod anda mungkin akan
menjadi, seperti, lima kali lebih pendek dan menjadi lebih mudah dibaca.
Dan bukannya cuba untuk menyelesaikan masalah semua tempat-tempat yang berbeza di mana perkara-perkara
mungkin salah, anda mempunyai satu fungsi yang anda dapat menyelesaikan masalah.
Dan aku berjanji, banyak ini mungkin kelihatan jenis abstrak sekarang,
tetapi seperti yang anda masuk ke kemudian dan masalah kemudian menetapkan,
ia akan masuk akal lebih banyak dan benar-benar pulang ke rumah.
Adakah terdapat apa-apa soalan tentang fungsi setakat ini?
Mengapa kita menggunakan mereka?
Saya tahu bahawa kita tidak mendapat ke cekal seluk belum.
Jadi mendefinisikan function-- seperti tatasusunan, kita memerlukan beberapa jenis daripada- ini
hanya pengeluaran umum.
Jadi ini adalah satu fungsi itu hanya akan kubus input beberapa.
Dan pada halaman seterusnya, sebenarnya, kita ada semua perkara-perkara kecil ini yang mengagumkan di sini.
Jadi, semua orang boleh membaca itu, daripada rasa ingin tahu?
Saya tahu ungu dan hitam mungkin agak keras.
>> Tetapi perkara-perkara besar untuk tahu-- jadi yang pertama satu di sini adalah jenis kembali kami.
Jadi ini berbicara tentang output fungsi ini apabila, dalam hal ini,
kita masukkan ke dalam beberapa nombor, apa yang kita mendapatkan adalah bahawa jumlah potong dadu.
Jadi harus int dalam kes ini.
Mungkin ia akan menjadi dua kali ganda atau sesuatu yang lain selepas itu, tetapi dalam kes ini,
itu int.
>> Dengan c, anda memerlukan jenis kembali.
Ia akan menjadi int.
Ia akan menjadi pelampung.
Ini akan menjadi dua kali ganda.
Tetapi anda perlu untuk menentukan apa fungsi ini akan kembali.
Jika tidak, ia akan berteriak pada anda, dan ia tidak akan mengumpulkannya.
Anda akan sedih, dan saya akan menjadi sedih.
Dan ia tidak baik.
OK.
>> Dan kemudian kita mempunyai nama fungsi kita.
Dan seperti yang anda boleh lihat di sini, dengan c ada paradigma sangat konsisten ini.
Apa jenis anda, apa nama, dan kemudian beberapa perkara lain di akhir.
Jadi kita mempunyai jenis kembali kami, nama tugas kita, dan kemudian
kami mempunyai kepala kami dengan senarai parameter kami.
>> Jadi senarai parameter adalah, apakah fungsi ini akan mengambil dalam?
Senarai parameter adalah semata-mata satu sinonim, apakah input kami?
Dan dengan cara yang sama yang kita harus mendefinisikan fungsi kita
dan memberikan pulangan yang menaip, setiap input kami
perlu mempunyai jenis yang terkait dengannya.
Jadi kita tahu apa fungsi kita sebenarnya boleh bekerja dengan.
>> Jadi dalam hal ini, kita mempunyai beberapa input int.
Jadi sekali lagi, ia akan menjadi jenis yang dan apa yang anda menyebutnya.
Dan kemudian, seperti yang anda lihat di sini, kami mempunyai badan kita.
Oleh itu, kita mempunyai beberapa output int, yang hanya kali masukan kami sendiri
masa itu sendiri, yang hanya batu itu.
Dan kemudian kita kembali output itu.
>> Jadi seperti yang anda lihat di sini, kita mempunyai int kali satu kali int int an,
jadi, ia akan int, yang telah dinyatakan di sana.
Jadi semuanya bersatu padu.
Semuanya gembira.
Fungsi anda akan berjalan.
Dan ini adalah hal yang umum.
Jadi sentiasa mempunyai jenis kembali, nama, dan senarai parameter anda.
Setiap perkara dalam anda senarai parameter, atau input,
perlu mempunyai jenis yang terkait dengannya.
Dan kemudian anda mempunyai anda badan di sini dengan apa sahaja
yang anda mahu lakukan dengan input anda.
>> Dan maka jelas Anda mahu kembali sesuatu.
Kadang-kadang fungsi hanya akan kembali.
Mereka tidak benar-benar kembali sesuatu untuk anda untuk digunakan.
Tetapi anda perlu untuk kembali dalam beberapa cara.
Dan apabila anda membuat fungsi anda sendiri,
kita boleh masuk ke dalam yang sedikit lebih dalam.
Secara peribadi, jika anda mahu, ada banyak perkara yang berbeza yang anda boleh lakukan di sana.
Semua orang yang baik?
Apa-apa sahaja di dalam senarai ini yang anda mahu saya untuk pergi ke, yang anda tidak faham?
Semua orang yang baik di sana?
Sejuk.
Awesome.
>> OK, jadi kita meletakkan bersama-sama ini sekarang.
Oleh itu, kita mempunyai beberapa masukan kiub int, jadi ini adalah program yang lengkap di sini.
Sehingga kini, saya telah jenis telah memberikan anda
coretan orang-orang yang mungkin pergi dalam sebuah program.
Kita baru sahaja melihat fungsi.
Tetapi di sini adalah satu program keseluruhan.
Jadi bagaimana ramai daripada anda ingat prototaip kata dari kuliah?
Sejuk.
Kami ada satu.
Siapa nama anda?
>> STEPH: Steph.
>> Allison: Steph?
OK, mengagumkan.
Jadi, adakah anda ingat apa yang prototaip adalah?
>> PELAJAR: Kamu katakan [terdengar] sebelum anda benar-benar menghadapinya.
>> Allison: Adakah anda masih ingat kenapa?
>> PELAJAR: No.
>> Allison: OK.
Bintang emas.
Jadi ya, prototaip yang kita ada terlebih dahulu, kerana jika tidak,
pengkompil kita akan menjerit pada kami.
Ia akan berkata, OK, apa fungsinya kubus ini?
Seperti, anda benar-benar mempunyai memberitahu saya apa-apa tentang hal ini.
Ia seperti apabila anda berjalan ke kelas,
dan seseorang seperti, ada kuiz hari ini.
Dan anda seperti, anda tidak pernah bercerita tentang ini.
Saya tidak senang dengan kita.
Prototaip pada dasarnya seperti silabus anda mengatakan, lihat.
Kepala.
Ada akan menjadi kuiz hari ini.
Jangan panik apabila anda sampai ke sana.
Anda akan baik-baik saja.
>> Jadi semua prototaip ini adalah memberitahu utama, saya akan menggunakan fungsi ini.
Saya berjanji saya mendefinisikan kemudian.
Jangan dimarahi oleh saya.
Hanya menyusun dan melakukan apa yang saya suruh.
Jadi kita mempunyai prototaip yang ada hanya untuk pengkompil kami bahagia.
Dan pada dasarnya janji yang Anda telah menetapkan fungsi ini kemudian
dan bahawa anda tidak hanya memanggil perkara ini secara rawak yang tidak ia
tidak tahu apa yang anda akan melakukan.
>> Jadi dalam hal ini, kita mempunyai utama di sini.
Kami memulakan beberapa integer x.
Itu dua.
Kita akan mencetak apa x ialah.
Kami akan kubus x.
Seperti yang anda lihat, kami telah kami deklarasi fungsi
di sini bahawa kita bercakap tentang sebelum ini.
Ini akan kubus x, dan kemudian, jika kita ingat, fungsi kiub sebenarnya
mengembalikan integer untuk kami, yang disimpan
dalam x lagi supaya kita boleh mencetak delapan, atau kiub x sekarang.
Adakah ini masuk akal untuk semua orang?
Kami baik?
Baik.
Awesome.
>> Baik.
Berapa ramai daripada anda semua ingat ini jadi ini
pada dasarnya hanya anda timbunan dan timbunan anda,
hanya visualisasi bagaimana memori disimpan di sini.
Oleh itu, kita hanya ingin memastikan bahawa anda memahami
bagaimana ia diwakili dalam ingatan.
Jika anda mengambil kelas seperti CS61 dan hal-hal kemudian,
Anda bisa belajar ini jauh lebih secara mendalam, dan ia benar-benar sejuk.
Saya sangat mengesyorkan ia.
Tetapi buat masa ini, saya akan memberikan anda gambaran yang luas
jadi anda tidak perlu tahu seluk beluk itu.
>> Jadi atas hanya satu segmen teks yang mengandungi sifar sebenar dan orang-orang,
binari untuk itu.
Dan ini digunakan untuk menyimpan pembolehubah global jika anda mempunyai apa-apa.
Seperti yang anda bergerak ke bawah, kami mempunyai, seperti yang anda lihat di sini,
data dimulakan, uninitialized data, dan kemudian tumpukan.
>> Oleh itu, kita tidak benar-benar bercakap tentang timbunan itu sekarang.
Kita akan sampai ke nanti.
Buat masa ini, saya hanya akan melambai tangan saya dan menjadi seperti,
Anda tidak perlu tahu tentang ini sekarang.
Tetapi kita akan bercakap sedikit sedikit tentang tindanan.
Jadi tumpukan jika- kita mempunyai zoom in.
Ini sebenarnya bagaimana program ini kita hanya melihat berlaku dalam ingatan.
>> Jadi apa yang berlaku adalah, setiap kali kita memanggil fungsi,
kita akan mendapat apa yang disebut timbunan rangka, yang merupakan salah satu ini.
Jadi parameter utama ini.
Jadi mereka adalah perkara-perkara yang bahawa kita akan pergi ke utama.
Jadi mereka di sini di bahagian bawah, kerana itulah perkara pertama yang kita sebut.
Dan kemudian kita dapat yang utama penduduk tempatan, dan apabila kita mengatakan bahawa,
kami maksud pembolehubah tempatan yang disimpan di dalam utama.
Jadi penduduk tempatan di sini akan, seperti, x sama dengan dua dalam hal ini.
Karena itulah setempat to main.
Adakah semua orang ingat skop, akan lebih dari itu dalam kuliah?
OK.
Jadi, hanya pembolehubah yang inisialisasikan dalam utama.
Jadi itulah sebabnya kita mempunyai utama [? vokal. ?]
>> Dan kemudian main, kita panggil kiub.
Betul?
Oleh itu, kita dapatkan rangka lain dengan parameter kiub ini.
Jadi dalam hal ini, kiub ini parameter kini
x yang kita berlalu dalam, kedua-dua yang kami melewati di.
Kemudian penduduk tempatan kiub, yang merupakan mana cubing sebenar yang berlaku.
Dan kemudian ia kembali.
>> Jadi apa yang berlaku adalah dengan kuasa tiga sebenarnya apa yang seharusnya dilakukan, ia mengembalikan.
Ketika ia kembali, frame ini pergi, dan yang kembali ke utama.
Dan kemudian main, kita sebenarnya boleh mencetaknya.
Oleh itu, apabila anda kembali sesuatu, apabila fungsi anda kembali,
ia seperti menyampaikan nilai-nilai ke kerangka di bawah dan kemudian pergi.
Dan perkara-perkara harus melaksanakan dalam rangka.
>> Dan apabila anda mendapat ke program-program yang lebih besar, kita boleh membuat lebih sejuk dan lebih rumit
diagram.
Tetapi buat masa ini, ini adalah hanya gambaran umum
supaya anda mempunyai jenis yang pemahaman tentang apa yang
yang berlaku apabila anda memanggil fungsi dan bagaimana yang sebenarnya kelihatan dalam ingatan.
Cool?
Semua orang yang baik?
Awesome.
>> Jadi, ini adalah salah satu yang hanya cuba untuk menukar sesuatu.
Seperti yang kita lihat di sini, kami mempunyai prototaip fungsi kita
sehingga penyusun kami tidak menjerit pada kami.
Kami mempunyai beberapa utama, dan kami ingin beralih x dan y.
Mereka tidak melakukan demo ini dalam kuliah lagi, adakah mereka?
Mereka tidak mempunyai?
OK.
Jadi, kita akan pergi lebih ini untuk seketika sahaja.
Anda akan masuk ke dalam contoh ini lebih secara mendalam, saya kira, minggu ini.
Dan kemudian minggu depan kita boleh benar-benar menyelam ke mengapa ini tidak berfungsi.
>> Jadi kita mempunyai kekosongan ini swap fungsi sini-.
Jadi tidak sah hanya bererti bahawa tidak ada yang dikembalikan.
Dan kami mempunyai swap int a dan b int.
Dan kami mempunyai beberapa sementara pembolehubah itu adalah satu.
yang akan ditugaskan untuk b, dan kemudian b akan ditugaskan untuk menggoda
sehingga dan b nilai kini beralih.
>> Tetapi, plot twist, ini tidak berfungsi.
Dan sebahagian daripada ia benar-benar mempunyai kaitan dengan hakikat bahawa
dan b di sini, orang-orang yang dapat disahkan pada di sini, adalah sebenarnya salinan x dan y.
Oleh itu, apabila majlis itu benar-benar kembali, ia beralih salinan tetapi tidak
x sebenar dan y ini.
Jadi salah satu cara untuk berfikir tentang hal itu adalah bahawa- berpura-pura ini swap.
OK?
Jadi dalam utama, kita mempunyai x dan y dimulakan.
Tetapi apabila kita benar-benar naik untuk frame ini dengan swap,
kita melewati nilai lebih untuk itu, dan mereka dimulakan.
>> Dan mereka hanya pernah tinggal di sini.
Jadi a dan b tinggal di sini.
Dan mereka akan bertukar.
Tetapi apabila kita kembali, kita tidak melakukan apa saja dengan a dan b. seorang
dan b cuti dengan fungsi kita.
Dan sebagainya x dan y tetap sama.
Anda akan mendapatkan lebih banyak ke dalam bagaimana untuk memperbaikinya dan bagaimana kita benar-benar menghadapi itu kemudian.
>> Tetapi ia hanya satu perkara untuk jenis diingat.
Gunakan ia untuk masa depan.
Jangan bimbang jika itu tidak membuat semua rasa di dunia.
Mereka adalah salinan adalah hal terbesar.
Jika anda akan mengambil apa-apa dari itu, anda diluluskan pada salinan.
Jadi asal tetap sama.
Semua orang yang baik?
Sejuk.
>> Jadi hujah baris arahan.
Saya pasti pada awalnya kalian semua mempunyai orang-orang besar, seperti, lompang utama int.
Dan anda seperti, sejuk OK.
Saya tidak benar-benar peduli.
Ini hanya apa yang saya ada untuk menulis.
Tetapi dalam program-program baru anda, terutama di Serangga ini,
dan mengapa ada kapur di tanah?
>> Dengan Serangga depan anda, anda akan melihat ini.
Int main, int arg c, tali busur v, kurungan.
Jadi, dari apa yang kita hanya pelajari hari ini, apa yang
kita berfikir bahawa parameter kedua atau bahawa elemen kedua adalah di sini?
Ini array.
Apakah jenis pelbagai?
Array string, ya.
Sejuk.
Jadi itulah bagaimana anda akan untuk menyatakan ini sekarang.
>> Apakah ada yang ingat apa ini untuk berdiri?
Tidak?
Hmm?
>> PELAJAR: arg c.
>> Allison: Jadi arg c terus counter.
Ini int.
Ini nombor, kan?
Jadi, apa yang anda berfikir jumlah yang dari?
Yeah.
Jadi arg c adalah bilangan tali yang membentuk baris arahan.
Jadi jika kita do-- sebenarnya, terdapat contoh-contoh selepas ini,
jadi saya tidak akan mendapatkan lebih awal daripada diri saya sendiri.
Ini beberapa string yang hanya membuat baris arahan anda.
>> Oleh itu, apabila anda lakukan, seperti, dot mengurangkan Mario, itu salah satu rentetan yang membuat itu.
Dalam bagian ini, anda akan benar-benar menjadi memberi makan benda-benda ke dalam baris arahan,
kerana saya pasti anda orang yang telah membaca saw spec.
Jadi dalam kes-kes, mungkin anda akan mempunyai dua atau tiga hujah.
Ia akan menjadi satu perkara yang berguna untuk digunakan.
>> Dan kemudian arg v, seperti yang kita katakan, hanya pelbagai tali.
Jadi yang benar-benar menyimpan apa anda masukkan ke dalam baris arahan.
Jadi kita mempunyai ini.
Anda mempunyai beberapa titik slash menyalin outfile infile.
Jadi, jika arg c adalah bilangan tali bahawa kita lewat ke perintah
line, apa yang c arg kami dalam hal ini?
Tiga.
Tepat.
>> Jadi apa arg v sifar?
Jadi apa perkara pertama yang kami telah simpan?
Dot mengurangkan menyalin, betul-betul.
Dan kemudian yang kedua akan infile.
Yang ketiga akan menjadi outfile.
Jadi bagaimana pula dengan arg v tiga?
Ia akan menjadi tidak sah, kerana itulah akhir array kita, kan?
Sejuk.
>> Dan kemudian apa yang kira-kira satu keenam?
Ini semacam satu soalan trick.
Ish.
Adakah kita tahu apa itu?
Ini ditentukan.
Kami tidak tahu apa yang boleh menjadi.
Ia adalah apa yang pantas selepas array dalam ingatan,
dan kami tidak tahu apa itu.
Dan ia berbahaya untuk menyentuh orang-orang perkara, karena untuk semua yang anda tahu,
itu beberapa bagian dari memori yang anda tidak boleh mengakses atau batal.
Dan ia boleh melakukan hal-hal gila.
Ia dipanggil over-pengindeksan Anda terikat untuk array.
Jangan pergi di luar batas-batas anda array, atau perkara-perkara buruk boleh berlaku.
Anda datang kembali dan, seperti, undang-undang fizik telah hancur
atau sesuatu.
Sejuk.
Adakah ini masuk akal untuk semua orang?
Tidak terlalu buruk.
>> Jadi sekarang, semua orang sebahagian kegemaran, kajian Serangga.
Yay!
OK.
Jadi bagi orang-orang yang tidak membaca spec Serangga ini,
Anda melakukan beberapa benar-benar barangan sejuk dengan kriptografi.
Anda akan membuat Ceasar Cipher dan Vigenere Cipher.
Anda pasti perlu membaca spec untuk melihat bagaimana mereka yang bekerja.
Dan jika anda mempunyai apa-apa masalah mengenai apa yang ia benar-benar harus lakukan,
sila datang bercakap dengan saya, email saya atau teks saya.
Saya sekitar.
>> Jadi ada tiga utama perkara di sini bahawa kita
mahu bercakap about-- hanya jenis perpanjangan kuliah.
Perkara-perkara yang anda mungkin tidak tahu tentang, tips dan alat.
Jadi, kita akan melakukan semakan pantas ASCII,
kerana yang akan menjadi super penting untuk Cipher Vigenere ini.
Kami akan penukaran input baris arahan, yang
akan sangat membantu untuk Caesar Cipher.
Dan kemudian modulo.
Sejuk.
>> Jadi, ASCII peta aksara untuk nombor.
Ini adalah carta yang besar.
Anda perlu mempunyai ini bookmarked di suatu tempat.
Anda akan ingin untuk jangka pertengahan pertama anda.
Aku cukup yakin setiap orang mempunyai ini Carta di lembaran jangka menengah mereka.
Jadi mempelajarinya.
Sukakannya.
Pastikan ia berguna.
Ia akan menjadi berguna.
>> Dan semua itu adalah satu pengekodan yang memetakan abjad, angka,
dan watak-watak lain untuk nombor untuk komputer kita.
Karena tentu saja, dalam akhir tahun, semua yang kita simpan
akan mendapatkan ditukar turun ke sifar dan orang-orang,
jadi kita perlu beberapa cara untuk mewakili teks dan aksara yang kita semua
digunakan untuk melihat sebagai sejenis nombor.
>> Jadi seperti yang kita lihat di sini, kami mempunyai huruf besar A, yang ada di sana.
Ini 65.
Dan huruf kecil adalah 97.
Jadi, anda boleh mencari out-- seperti yang saya katakan sebelum ini,
jika anda mempunyai pelbagai pelbagai string, apa yang masing-masing
mempunyai terminator null.
Ia akan menjadi ruang.
Ruang mempunyai special-- sendiri Saya lupa di mana ia adalah di sini.
Ah.
32 adalah ruang.
Jadi semuanya peta untuk itu.
>> Jadi kita mempunyai ASCII matematik.
Pro tip-- di Vigenere ini, Anda mungkin akan terdorong
untuk menukar nombor anda untuk bilangan bulat, tetapi ia sebenarnya lebih baik amalan
dapat menggunakan karakter seperti ini
apabila anda sebenarnya sedang memanipulasi mereka.
Jadi, jika anda ingin menggunakan nombor, anda boleh.
Tetapi cara yang lebih baik, atau dengan cara yang kita cenderung seperti kalian untuk melakukannya,
adalah cara ini di mana anda sebenarnya mengurangkan aksara.
>> Jadi saya ingin kalian jenis angka ini keluar.
Mengapa tidak anda cuba setiap orang lain?
Begitu juga salah satu yang pertama, satu pertiga, dan yang kelima.
Kerana saya mahu memastikan bahawa kita bercakap tentang segala sesuatu yang kita perlu bercakap tentang.
Saya hanya akan berkata, salah satu daripada perkara penting supaya- oh tunggu,
kalian tidak pernah melihat yang satu ini.
OK jadi melakukan tiga pertama.
Mari kita buat itu.
Kerana kita perlu bercakap tentang modulo.
Saya tahu.
Matematik adalah sukar.
Anda boleh menggunakan kalkulator.
Tidak apa-apa.
Atau tarik jadual ASCII, kerana Anda mungkin akan mahu itu.
>> Sejuk.
Jadi saya akan cepat berjalan kalian melalui tempat ini.
Jadi orang-orang telah jadual ASCII ditarik ke atas?
Apa yang bernombor kami nombor untuk huruf kecil A?
PELAJAR: Tujuh.
>> Allison: Jadi huruf kecil adalah 97 dan huruf besar A ialah 65.
Jadi 97 tolak 65?
>> PENONTON: 32?
>> Allison: 62, yeah.
Jadi dalam hal ini, apa yang ia akan mencetak?
Yang pertama?
Jika kita mempunyai peratus d, apa yang akan menunjukkan?
PELAJAR: Sejumlah.
Allison: Kami mencetak daripada jumlah sebenar.
Oleh itu, kita benar-benar akan mencetak 32 di sini.
Dan jika ini adalah peratus c, 32 akan memberi kita ruang.
Jadi pemahaman yang aksara boleh dicetak
kedua-dua angka dan sebagai watak-watak sebenar
adalah benar-benar penting, dan membayar perhatian kepada jenis sebenar
yang kita lakukan di sini.
Sejuk.
Jadi bagi setiap satu yang lain daripada ini, apa yang kita akan mencetak?
>> PELAJAR: Aksara yang.
>> Allison: Aksara yang.
Sejuk.
Jadi, jika anda semua ingin tahu, anda boleh bekerja ini keluar sendiri.
Jika anda mengalami masalah, e-mel saya.
Tetapi yang kedua akan mencetak huruf kecil b.
Yang ketiga akan mencetak satu huruf besar B. Yang keempat akan mencetak
keluar C huruf besar, dan yang terakhir akan menjadi huruf kecil A.
Dan satu-- lalu kami benar-benar akan untuk masuk ke dalam apa yang peratus gila
tanda lebih bermakna dalam beberapa slaid.
Oleh itu, cuba mereka sendiri.
Jika anda mempunyai masalah, sila datang bercakap dengan saya.
Jika anda biasanya di Adams D dewan, Anda mungkin akan menemukan aku.
>> Jadi, atoi.
Berapa ramai daripada anda telah melihat ini fungsi atau mendengar hal itu sama sekali?
Sesiapa sahaja?
Sejuk.
Jadi apa itu sebenarnya adalah singkatan adalah ASCII ke integer.
Jadi apa yang boleh anda lakukan adalah, dengan Caesar, bagi mereka yang membaca spec,
Anda akan melakukan dot slash Caesar selepas anda menulis program anda,
dan kemudian anda akan memasukkan beberapa nombor yang anda
ingin mengekod mesej rahsia anda dengan.
>> Tetapi, jika kita ingat, semua kami input disimpan sebagai tali.
Betul?
Kami mempunyai pelbagai arg v itu semua jenis tali.
Jadi jika anda hanya cuba untuk menarik satu itu, akan
berfikir bahawa satu atau apa sahaja jumlah yang anda digunakan sebenarnya karakter.
Jadi, anda akan mendapatkan beberapa keputusan gila.
Jadi, jika anda benar-benar ingin mengubahnya menjadi integer
yang boleh anda gunakan untuk memanipulasi perkataanmu atau mesej anda,
Anda akan ingin menggunakan atoi.
atoi hanya menukarkan string Anda sebagai int.
>> Jadi, jika kita mempunyai rentetan 12, jika kita memanggil atoi pada 12, atau apa-apa input iaitu,
ia benar-benar akan kembali kepada anda integer.
Tidak sifat atau tali 12.
Yang, apabila anda mula menambah bahawa untuk nombor,
akan sangat berbeda, kerana tali 12 adalah
beberapa nombor gila di ASCII, tetapi integer 12
sebenarnya 12, yang adalah apa yang anda inginkan.
Jadi, anda ingin pastikan anda menggunakan atoi.
>> Anda akan mahu ini di Caesar, kerana anda
perlu int yang disediakan oleh pengguna dalam baris arahan.
Tetapi apabila mereka memasukkannya ke dalam perintah line, ia disimpan sebagai string
untuk memulakan.
Adakah ini masuk akal?
Anda tidak semestinya memerlukan ini untuk Vigenere.
Dengan Vigenere, seperti yang saya katakan sebelum ini, anda perlu cuba dan menggunakan
Matematik ASCII yang lebih mirip ini, jika anda benar-benar
menggunakan aksara yang kami diberikan kepada anda.
Sejuk.
Semua orang yang baik di sana?
Awesome.
>> Jadi modulo.
Jadi apa jika anda diberi jumlah ini besar bagi Caesar?
Anda mempunyai idea ini bahawa jika anda berada di Z dan anda
diberi nombor dua, yang bermakna anda need--
Z menjadi yang kedua surat setelah itu sendiri, bukan?
Jadi, anda perlu entah bagaimana membungkus, dan modulo adalah cara untuk melakukan itu.
Jadi semua hal ini adalah ia memberikan anda selebihnya
dari pembagian Nombor pertama dengan yang kedua.
Dan kami mempunyai beberapa contoh untuk membuat konkrit yang lebih sedikit.
Tapi pada dasarnya, anda menggunakan modulus apabila anda ingin membuat sesuatu membungkus.
>> Jadi jika anda hanya ingin nombor satu sampai lapan,
Anda boleh menggunakan modulo atas apa-apa nombor, dan ia akan sentiasa
kembali nombor dari sifar hingga lapan.
Jadi beberapa examples-- jika kita mempunyai 55 modulo 10,
itu hanya memberi anda baki 55 dibahagikan dengan 10, yang akan menjadi 5.
Dan kemudian tiga modulo lima, orang menduga apa yang akan?
Tiga.
>> Jadi jika anda mempunyai jumlah yang lebih kecil sebelum Modulo, ia tidak boleh masuk sama rata.
Ia adalah sifar.
Oleh itu, ia hanya mengembalikan bilangan itu sendiri.
Jadi lapan modulo lapan akan?
>> PELAJAR: Zero.
>> Allison: Zero.
Kerana ia pergi di merata.
16 modulo 15?
>> PENONTON: Satu.
>> Allison: Cool.
Dan kemudian yang terakhir ini hanya untuk menunjukkan you-- anda mungkin tertanya-tanya, OK,
apa yang urutan operasi di sini?
Adakah kita membahagikan pertama?
Adakah kita modulo pertama?
Jadi modulo memegang keutamaan yang sama sebagai bahagian atau perkalian,
dan asosiatif kirinya.
Jadi ia adalah dengan cara yang sama.
Anda sentiasa akan melakukan kurung, kemudian perkalian, pembagian,
dan modulo dalam urutan dari kiri ke kanan.
Jadi peraturan standard.
Hanya meletakkan ia dalam kategori yang sama sebagai pembahagian dan pendaraban.
>> Jadi dalam hal ini, kita akan mempunyai 1 ditambah 2 memberikan kita 3.
Kita kalikan dengan 2, jadi kami mendapatkan 6.
Kami modulo bahawa sebanyak 2, yang memberikan kami?
>> PELAJAR: 0.
>> Allison: 0.
Dan kemudian kita tambahkan 2, jadi kami mendapatkan 2 dalam hal terakhir ini.
Jadi modulo-- anda pasti akan berfikir tentang cara-cara untuk memasukkan
bahawa apabila anda membungkus sekitar abjad.
Jika anda berada di Z dan anda perlu bergerak mengemukakan tiga ruang untuk sampai ke C,
ada bahawa konsep keseluruhan membungkus sekitar.
Jadi saya akan serahkan kepada kalian untuk memikirkan
bagaimana sebenarnya anda akan menggunakannya.
Tapi yang pasti alat yang berguna untuk Serangga anda minggu ini.
Saya benar-benar suka ini.
Ini adalah salah satu pşet kegemaran saya.
Kemudian selepas anda melakukannya, jika anda mempunyai rakan-rakan,
Anda boleh, seperti, menghantar setiap rahsia lain mesej dan memastikan ia berfungsi.
Kerana ia akan menyahsulit atau apa sahaja.
Banyak bersenang-senang.
>> Dan yang akhir bagian.
Saya selesai awal.
Saya masih ada 15 minit dengan kalian, jadi jika ada apa-apa
yang anda ingin untuk pergi ke lebih lanjut, saya akan senang untuk melakukan itu.
Sebarang pertanyaan lain di Serangga anda bagi anda
yang telah bermula atau membaca spec.
Apa-apa yang kita telah berbincang kira-kira pada jam yang lalu
dan 15 minit yang anda ingin saya untuk jenis pengulangan, saya dengan senang hati.
Atau kita boleh menyebutnya berhenti, dan anda boleh semua cuti dan mengambil lebih banyak gula-gula dengan anda
seperti yang anda pergi.
Tetapi jika ada apa-apa yang terlintas pertanyaan, sila beritahu saya.
Anda juga boleh datang dan bercakap dengan saya selepas itu.
Saya berjanji saya tidak menggigit.
Apa-apa lagi?
Semua orang yang baik?
Perasaan Semua orang seperti mereka dapat menangani Serangga ini?
Anda akan menjadi orang-orang yang baik.
Waktu pejabat adalah di sana untuk suatu alasan.
Sejuk.
Mengapa.
>> Nah, dalam hal ini, terima kasih anda semua banyak untuk datang.
Saya berharap untuk melihat anda minggu depan.
Akan ada lebih banyak gula-gula.
Mungkin ada lain-lain perkara yang sejuk.
Dan saya berharap untuk mendapatkan tahu anda semua pada tahun ini.