>> [MUSIC PLAYING]
>> DAVID Malan: Baiklah ini CS50 dan ini adalah akhir minggu satu.
Jadi saya ingin memperkenalkan mantan saya advisee, Andel Duff, yang tidak hanya membuat
iPhone 5 berdiri, serta ini podium, dia juga membuat mobil.
Ansel Duff: Bagaimana kabarmu, semua orang?
Aku hanya ingin bercerita sedikit sedikit tentang Formula SAE, yang saya
am kapten.
Ini adalah tim MIT.
Saya hanya ingin memberitahu Anda Orang-orang sedikit tentang hal itu
dan mudah-mudahan menghasilkan beberapa bunga.
>> Jadi biarkan aku hanya berjalan melalui beberapa hal tentang tim kami.
Jadi kita benar-benar mahasiswa run, dimana semua
anggota desain, simulasi, tes, dan produsen subsistem
mobil.
Kami memiliki toko mesin kami sendiri dan garasi, dan N52-- atau maaf,
N51-- yang merupakan gedung yang sama sebagai Science Museum MIT.
Dan kita adalah orang-orang yang mendorong mobil.
Ada kompetisi nasional pada awal musim panas,
dan kemudian ada baku tembak yang lebih kecil kompetisi sepanjang tahun.
Dan kemudian kita melakukan pelatihan pengemudi hari untuk mendapatkan anggota baru berkenalan.
>> Kami membangun hari yang memberikan Sabtu 11:00-20:00.
Makan siang dan makan malam merawat dari, dari Bertucci dan Beantown
masing-masing.
Kami memiliki pertemuan mingguan dan seminar, yang untuk kredit program.
Yang baru dari semester ini, dan itu juga akan untuk semester berikutnya,
sehingga Anda bisa menyeberang-reg untuk itu.
Dan kemudian kita harus merancang, toko, dan hari CAD selama seminggu,
sedangkan anggota akan independen Bagian CAD, agar saham dan sebagainya.
>> Jadi untuk listrik teknik di tim
kami memiliki traksi kami, sistem tegangan tinggi,
yang berjalan pada nominal 300 volt, yang meliputi
motor, pengendali motor, dan kemasan baterai.
Kemudian kita memiliki rendah sistem tegangan, yang berjalan
pada 12 volt, yang meliputi kontrol, BISA node, otak
kotak, dan dashboard.
Sejauh CS pergi, kita lakukan memiliki pemeliharaan website
bahwa kita perlu dilakukan untuk acara, keanggotaan perubahan, gambar baru, dan bahan PR.
Dan kemudian kita memiliki kode yang mengontrol mobil untuk kontrol traksi kami, peluncuran
kontrol, kontrol dasbor, torque vectoring, dan sistem pengereman regeneratif, yang
berjalan biasanya dalam MATLAB, Simulink, dan LabView.
>> Bercerita sedikit tentang mobil.
Jadi sekitar 500 kilogram.
Ini aturan terbatas pada 85 kilowatt.
Ini memiliki 2 EMRAX 207 motor di kembali, satu untuk setiap roda belakang.
Memiliki kemasan baterai custom-built dari sel A123 kantong Prismatik,
sebesar 300 volt dan 5.6 kilowatt jam.
Dan itu penggerak langsung dengan rasio 2,64-1 drive.
Berikut adalah beberapa gambar kami mengambil itu di kompetisi.
Berikut bagian belakang, hidung kerucut, dan di sini adalah motor,
disk tersebut hitam besar bawah et mens manus.
Berikut adalah slide yang aku menarik dari skema kompetisi kami.
Dan ini hanya membandingkan mobil kami ke beberapa mobil tersedia secara komersial,
seperti KTM XBOW, Ariel Atom, dan Caterha M 7-280.
Jika Anda akrab dengan harga, daya menarik berat, dolar per tenaga kuda,
dolar per torsi, dan mobil kami pukulan mereka semua keluar dari air.
Jika Anda memiliki pertanyaan, menuliskan alamat email ini.
Tembak email pada kami di fsae@mit.edu.
>> Kami senang untuk berbicara tentang apa pun yang Anda inginkan.
Mahasiswa Harvard adalah jenis minoritas di tim.
Jika Anda memiliki pertanyaan tentang bahwa jangan menembak kami email,
senang berbicara, dan aku akan untuk kembali ke David.
Terima kasih.
Saya menghargai itu, guys.
[Tepuk Tangan]
>> DAVID Malan: Ansel menghabiskan musim panas bekerja dengan kami di sini di kampus di CS50
musim panas ini.
Dan di samping bekerja pada hal-hal seperti lampu biner,
dia benar-benar benar-benar membuka kami eyes-- dan tambang di particular--
apa yang sebenarnya persimpangan bukan dari hardware dan software dapat.
Bahkan banyak hal-hal yang hanya tur Anda melalui pada akhirnya
dibuat pertama dalam perangkat lunak, dan kemudian akhirnya dibuat
di dunia nyata di hardware.
Jadi, jika Anda tertarik menjelajahi persimpangan itu,
mungkin mengambil kelompok itu.
>> Sekarang sementara itu, bagi anda yang merupakan fans dari teknologi,
dan produk Apple di Khususnya tahu bahwa ada
adalah beberapa pengumuman kemarin.
Tapi kami pikir kami akan menunjukkan Anda salah satu yang keluar
beberapa hari sebelumnya yang Anda mungkin telah melihat.
>> Jorgen EGHAMMER: Kau tahu, sekali dalam sesuatu sementara
datang yang mengubah cara kita hidup.
Sebuah perangkat sangat sederhana dan intuitif menggunakan rasanya hampir akrab.
Memperkenalkan 2015 Katalog IKEA.
Ini bukan buku digital atau e-book, itu buku-buku.
>> Hal pertama yang harus diperhatikan adalah tidak kabel, bahkan tidak kabel listrik.
2015 Katalog IKEA datang terisi penuh,
dan masa pakai baterai yang kekal.
Antarmuka adalah 7.5 dengan 8 inci, tetapi dapat memperluas ke 15 oleh 8 inci.
Navigasi ini didasarkan pada sentuhan taktil teknologi yang Anda benar-benar bisa merasakan.
>> Konten datang pra-instal melalui 328 halaman high-definition
inspirasi ide home furnishing.
Untuk mulai browsing, cukup menyentuh dan drag.
Kanan ke kiri untuk bergerak maju, kiri ke kanan untuk bergerak mundur.
>> Perhatikan sesuatu yang lain?
Itu benar.
Tidak ada lag.
Setiap halaman yang jernih beban instan,
tidak peduli seberapa cepat Anda gulir.
Jika Anda ingin mendapatkan gambaran singkat, hanya memegangnya di telapak tangan Anda,
dan hanya menggunakan ibu jari Anda, kecepatan menelusuri konten.
>> Jika Anda menemukan sesuatu yang Anda ingin menyimpan untuk nanti, Anda hanya dapat menandainya.
Dan bahkan jika Anda menutup aplikasi, Anda dapat dengan mudah menemukan bookmark lagi.
Menakjubkan.
>> [Tertawa]
[Tepuk Tangan]
Jadi yang membawa kita ke akhir minggu satu.
Beberapa pengumuman sekarang.
Jadi sectioning sekarang sedang berlangsung.
Pergi ke URL ini kadang-kadang di sini antara sekarang dan Jumat pada siang hari
untuk benar-benar menentukan apakah Anda di antara mereka kurang nyaman, lebih
nyaman, atau di antara keduanya.
>> Ini biasanya salah satu dari mereka hal-hal yang Anda hanya jenis tahu.
Dan pada kenyataannya Anda yang kurang nyaman mungkin tahu lebih banyak,
Anda yang lebih nyaman tahu sebanyak,
dan lagi jika Anda tidak yakin yang dari ember Anda jatuh ke Anda
mungkin di suatu tempat di antara.
Tapi yakinlah Anda dapat swap setelah beberapa minggu jika perlu.
>> Sementara itu, untuk minggu yang akan datang kita tidak mulai bagian per se,
tapi super bagian, yang terbuka untuk semua siswa.
Minggu ini datang di lokasi untuk diumumkan di website program
kita akan memiliki satu untuk mereka yang kurang nyaman,
serta satu untuk mereka lebih nyaman.
Dan di suatu tempat yang ada di antara dapat memilih dari dua,
atau keduanya jika Anda ingin, untuk duduk-in di.
Dan fokus mereka akan akhirnya di C,
yang kita akan terus kami percakapan hari ini.
>> Masalah set 0 sementara adalah mudah-mudahan di tangan Anda.
Secara resmi karena besok, Kamis, pada siang hari.
Kecuali Anda uang tunai dalam satu dari 5 hari terlambat Anda,
yang akan membawa sampai Jumat pada siang hari.
Masalah menetapkan 1 sementara akan diposting di situs kursus ini.
Dan ini akan menjadi pertama kami terjun sebagai kelas menjadi C.
Dan bahwa masalah mengatur spesifikasi akan memandu Anda melalui banyak mekanisme apa
kita mulai berbicara tentang hari Senin, dan kami akan terus berbicara tentang hari ini.
C, Linux, CS50 alat, semua itu
akan menunggu Anda dalam spesifikasi.
>> Sementara jam kantor sedang berlangsung, di ruang makan sarjana.
Kepala ke URL ini di sini untuk melihat jadwal untuk malam ini dan besok,
jika Anda ingin mengambil bagian.
Pertanyaan Sementara itu, sehingga Anda memiliki kesempatan untuk mengajukan pertanyaan
asynchronous, 24/7, sadar bahwa Anda sedang tidak terbatas pada bagian dan kantor
jam, melainkan alat ini di sini, CS50 Diskusikan di URL yang
akan online kursus ini buletin software papan, melalui mana
Anda dapat mengajukan pertanyaan dari teman sekelas dan juga staf.
Jadi perlu diingat sumber daya itu juga.
Sementara tradisi dimulai Jumat ini.
Seperti Anda mungkin telah melihat sekilas dari video teaser Rabu lalu,
kami memiliki tradisi yang paling setiap hari Jumat selama masa
mengambil sekitar 50 mahasiswa dan staf untuk restoran lokal yang disebut
Fire and Ice, di mana kita biasanya bergabung dengan beberapa alumni
atau teman-teman dari industri untuk umum bercita-cita
untuk membuat kelas besar merasa lebih kecil.
Jadi makan siang benar-benar santai.
Sekelompok dari kami, staf khususnya, akan bermain kursi musik
dan chatting dengan siswa tentang 50, kehidupan di luar 50,
kehidupan di masa depan, dunia nyata, Aku sedang berbicara tentang kesempatan kerja
dengan teman-teman di industri.
>> Jadi jika Anda ingin bergabung dengan kami Jumat ini, kepala ke URL ini di sini.
Ruang terbatas, tapi kami akan melakukan ini recurringly seluruh istilah.
Kepala sana untuk cs50.harvard.edu/rsvp.
Dan jika Anda tidak mendapatkan di kali ini, tidak perlu khawatir.
Kami akan melakukannya lagi dalam beberapa minggu mendatang juga.
>> Jadi ini adalah gambar kami dicat pekan lalu,
dan Anda mungkin pernah berkecimpung dalam sejauh ini.
Tapi mari kita coba untuk menghubungkan ini sekarang apa yang akan kita lakukan hari ini
dan seterusnya.
Bisakah saya memiliki satu relawan?
Baiklah, atau beberapa.
Bagaimana di sini pada end, di kemeja biru.
Ayo up, siapa namamu?
ALANA: Alana.
DAVID Malan: Alana.
Jadi Alana, untuk hanya moment-- senang bertemu kau--
akan memainkan peran fungsi ini di sini.
Ungu blok kita sudah disebut sejauh ini fungsi.
Jadi apa yang saya akan pergi depan di sini dan menawarkan Alana
sedikit tag nama, untuk membuat jelas apa peran Anda bermain.
>> Jadi, Anda akan menjadi blok mengatakan.
Jika Anda ingin untuk terus maju dan menempatkan bahwa pada.
Dan kita akan menjaga ini super sederhana.
Jika tujuan di tangan hanya sekarang untuk menerapkan dengan Alana,
ini disebut mengatakan blok, berikut adalah cara itu akan berhasil.
Aku harus-- sebut saja argumen atau parameter,
itu benar-benar hanya selembar kertas kosong.
Dan itu putih jenis akan mengingatkan kotak putih di mana Anda
dapat menulis kata-kata.
>> Sementara aku akan pergi di sini.
Aku akan pergi ke depan dan menulis H-E-L-L-O koma dunia.
Dan sekarang, aku, sebagai mengatakan programmer, jangan benar-benar tahu bagaimana untuk mengatakan sesuatu.
Aku bisa datang dengan kata-kata, tapi aku belum tentu
tahu bagaimana mengekspresikan diri secara lisan atau di layar.
Jadi apa yang akan saya lakukan adalah mengambil bagian ini
fungsi, yang input-- atau argumen, seperti yang kita akan menyebutnya,
Aku sudah menulis pada sepotong paper-- dan aku akan melakukan outsourcing itu.
>> Dan memang itulah peran yang fungsi dalam bahasa pemrograman
bisa bermain.
Sesuatu seperti mengatakan itu blok dapat outsourcing
untuk seseorang yang benar-benar tahu apa yang dia atau dia bicarakan.
Jadi, jika Anda akan melangkahi di sini untuk sesaat,
Saya akan lulus masukan ini untuk Alana, dan meminta Anda katakan masukan ini.
>> ALANA: Hello, world.
DAVID Malan: Itu saja.
Sehingga ada fungsi.
Sekarang kita dapat mengambil sedikit lebih, kita dapat mengambil langkah maju di sini.
Karena itu jelas underwhelming.
Jadi mari kita sekarang mengubah ini untuk sesuatu yang sedikit lebih canggih.
>> Jadi ini tentu saja adalah versi C kami.
Jadi sekarang jika Anda ingin mengambil satu dari, bahwa tag nama off,
dan mari kita Anda memakai nama baru.
Tetapi secara fundamental Anda memainkan peran yang sama,
kebetulan untuk disebut printf sekarang.
>> Cerita ini, tentu saja, akan akan-- mungkin
seperti underwhelming-- adalah akan menjadi berikut ini.
Anda sekarang fungsi printf.
Saya penelepon, atau programmer, yang ingin
untuk berdiri di pundak orang di masa lalu seperti Anda,
yang sudah tahu bagaimana untuk benar-benar menulis sesuatu.
Jadi kali ini, daripada mengatakan itu mari kita
benar-benar menggunakan layar kami di sini.
Jadi jika Anda ingin melangkah di sini, aku akan
untuk lulus lagi ini sebagai masukan ke teman printf saya.
Jika Anda bisa pergi ke depan dan mencetak bahwa di layar,
hanya dengan menggambar dengan Anda jari pada layar hitam.
Sangat baik.
Baiklah, begitu banyak ketegangan untuk bagaimana yang akan bermain keluar.
>> Jadi sekarang mari kita hal-hal yang notch akhir, jika kita bisa, sebagai berikut.
Jadi ini adalah program C seperti yang kita katakan terakhir kali.
Dan ini hanya melakukan apa yang Anda lakukan, itu mencetak ke layar, halo, dunia.
Meskipun ada jelas banyak hal yang mengganggu di sana.
Tapi mari kita mengambil hal-hal takik dan memperkenalkan versi ini, yang ingat
adalah versi ketiga yang kita berakhir dengan terakhir kali.
>> Dan sekarang ada jelas dua penggunaan printf.
Ada 2 panggilan ke Alana dalam hal ini untuk printf,
tetapi juga ada panggilan ke fungsi lain.
Apa itu fungsi jelas?
GetString.
>> Bisakah kita mendapatkan satu relawan lainnya?
OK, datang ke atas.
Siapa nama Anda?
>> JAVIER: Javier.
>> DAVID Malan: Javier, ayolah up.
Jadi peran Javier adalah pada kertas ini.
Yang aku akan menelepon umum s.
Sekarang ini adalah variabel, itu tipe string, seperti yang tersirat
dengan itu baris kedua di tengah sana.
Dan aku ingin kau pergi mendapatkan saya string.
Secara khusus kepala ke orkestra bagian dan mendapatkan saya nama seseorang,
dan kembali dengan variabel mengandung nilai tersebut.
Hal ini dapat siapa pun yang Anda inginkan.
>> Di sini kita pergi.
Baiklah, Javier adalah menuliskan nama.
Baiklah.
Kita semua mungkin bisa menebak bagaimana ini akan bermain keluar.
Kami mungkin belaboring titik apa
fungsi yang sedang, namun tetap terima kasih banyak.
>> Jadi Javier telah kembali string ini di sini, yang, tidak bisa melihat,
Jonathan adalah string bahwa kita sudah.
Jadi sekarang apa yang saya benar-benar akan untuk memberikan kepada Alana meskipun
adalah sesuatu yang sedikit berbeda.
Karena dalam versi ini Program, pertama ada sebutkan nama.
Jadi argumen pertama Saya perlu memberikan Alana
dengan akan menjadi harfiah sebutkan nama Anda.
Baiklah, jadi sesederhana itu Saya akan menyerahkan hal ini kepada Anda.
Dan ketika saya menulis atas Argumen berikutnya, jika Anda
ingin untuk terus maju dan menulis ini di papan, mari kita pergi ke depan
dan melakukan contoh terakhir di sini untuk membuat jelas apa yang akhirnya harus terjadi.
Jadi sebutkan nama Anda, menulis menuju puncak
jika Anda tidak keberatan, hanya agar kami memiliki ruang untuk satu lini kedua.
Karena hal terakhir aku akan sekarang menyediakan Anda dengan tidak satu,
tapi dua lembar kertas.
>> Baiklah.
H-E-L--L O koma dan kemudian baris kosong.
Jadi apa yang saya akan menyerahkan Alana sekarang adalah sesuatu yang sedikit berbeda.
Tidak hanya dia mendapatkan ini, mana mengisi kosong merupakan
yang percent-- apa yang placeholder kita telah menggunakan?
Ya, jadi persen s.
Sementara aku akan lulus di sebuah argumen kedua, yang
adalah tepat apa Javier diambil dari Jonathan.
>> Jadi biarkan saya memberikan dua ini.
Jika Anda ingin, pergi ke depan dan cetak yang berlaku.
Apa yang akhirnya terjadi sekarang adalah, Alana lagi
memainkan peran printf.
Javier bermain peran GetString.
Sehingga akan menjadi souvenir Anda.
Dan akhirnya apa yang terjadi, meskipun ini hello-- yep pergi ke depan dan koma.
ALANA: Apakah saya menerima ini belum atau tidak?
DAVID Malan: Ya, Anda menerima keduanya sekaligus.
Jadi idenya adalah bahwa Anda sekarang dapat membalik halaman
untuk menangani kedua dari dua input.
Jadi ini hanya untuk palu rumah menunjukkan bahwa sementara Alana dieksekusi
jalur hijau ini di sini, dan kemudian Javier melakukan ini satu untuk kita
dan kembali ke sesuatu kami akan menelepon s, tapi itu benar-benar
Hanya saja selembar kertas sendiri.
Dan sekarang Alana telah melakukan baris ketiga ini.
>> Dan meskipun semua ini terlihat begitu sangat samar mungkin
pada pandangan pertama, itu benar-benar adalah yang sederhana seperti itu.
Melewati masukan sekitar, mendapatkan output, baik
secara fisik diserahkan kembali sesuatu, atau melihat efek samping seperti ini.
Sesuatu visual tertulis di layar.
Jadi mari kita pergi ke depan dan terima Alana dan Javier,
yang ada di sini, untuk bergabung dengan kami di sini.
>> [Tepuk Tangan]
>> Jadi sekarang mari kita mengambil untuk diberikan hanya bagaimana langsung semua itu mungkin.
Dan mari kita lanjutkan untuk benar-benar melakukan sesuatu dalam kode yang sebenarnya.
Jadi di layar di sini adalah screenshot dari apa yang disebut CS50 alat.
Dan jika Anda harus di, sebagai 02:00 pada Rabu sore,
menjelaskan kepada beberapa teman apa alat CS50 adalah,
bagaimana Anda mendefinisikan itu dalam sebuah kalimat?
Setiap satu kalimat?
Ya?
MAHASISWA: Ini seperti sebuah program yang membuat komputer semua orang
dijalankan dengan sistem yang sama.
DAVID Malan: Good!
Ini adalah program yang memungkinkan semua orang komputer untuk menjalankan dengan sistem yang sama.
Ini semacam sendiri salinan dari operasi
sistem yang terjadi pada disebut Ubuntu Linux.
Dan itu berjalan efektif dalam jendela pada Mac anda sendiri atau PC,
sehingga cara ini langsung dari pintu gerbang di minggu 1, semua orang di sini di kelas
memiliki akses ke alat yang sama, konfigurasi yang sama,
dan tidak ada kurva belajar yang spesifik ke Mac atau PC pada khususnya.
>> Sekarang kami membuka, bagian dalam CS50 alat pada hari Senin, program ini di sini.
Hal ini terjadi untuk disebut gedit.
Tapi itu benar-benar hanya editor grafis.
Ini sesuatu seperti Notepad atau Teks Mengedit pada Windows atau Mac OS masing-masing.
Dan saya mengusulkan bahwa ada yang benar-benar tiga bagian penting untuk layar ini.
Sisi atas adalah di mana Anda akan menulis kode Anda.
Dan di sanalah kami menghabiskan banyak kami tiga contoh dalam kuliah Senin.
Bagian bawah kita disebut apa, jendela hitam ini, ya?
>> MAHASISWA: Compiler?
>> DAVID Malan: Compiler kami diakses dengan cara jendela itu.
Tapi lebih umum.
Ya, itu hanya sebuah jendela terminal.
Ini adalah istilah kuno yang hanya menjelaskan pada dasarnya berkedip a
prompt, bahwa tahun lalu digunakan untuk berada di salah satu dari mereka besar gaya CRT monitor.
Tapi kini itu semacam virtual dalam perangkat lunak.
Dan jendela terminal mari kita mengetik perintah.
Ini semacam versi disederhanakan dari user interface atau UI.
Ini bukan grafis yang user interface atau GUI,
itu adalah antarmuka berbasis teks atau antarmuka baris perintah.
>> Dan memang di situlah akhirnya Saya bisa menulis beberapa kode.
Setelah saya telah menulis beberapa kode meskipun, ingat bahwa saya menggunakan perintah ini.
Dan karena nama jenis menunjukkan, ini
memungkinkan saya untuk membuat program yang disebut Hello.
Tapi apa yang benar-benar lakukan?
Nah make mengambil saya input, kode sumber,
dan mengubahnya menjadi apa, akhirnya?
>> Kode objek.
Dan kode objek adalah hanya suka cara untuk mengatakan nol dan satu.
Dan kemudian setelah aku ingin untuk menjalankan kode objek,
setelah saya ingin lulus sebagai masukan yang nol dan satu ke komputer saya
otak, yang disebut CPU atau central processing unit,
Aku harus menjalankan program.
Tapi itu tidak cukup sederhana, Senin hanya sebagai ganda mengklik beberapa ikon.
Apa bukannya aku harus dilakukan dalam rangka untuk menjalankan sebuah program?
>> Apa itu perintah kedua?
Aku mendengar garis miring kecil?
Ya, ya?
>> MAHASISWA: Dot tebang dan nama program.
DAVID Malan: Tepat.
Dot tebang dan nama program.
Sekarang apa artinya ini?
Nah dot hanya sebuah cara misterius mengatakan direktori saat ini.
Apapun folder Anda berada dalam adalah direferensikan sebagai, yang direpresentasikan sebagai titik.
Slash adalah hanya apa yang Anda telah melihat di Mac OS dan Windows selama bertahun-tahun,
itu adalah pemisah antara direktori atau folder dan sisanya dari beberapa nama.
Pada Windows itu terjadi untuk pergi mundur, di Linux dan Mac
OS itu terjadi untuk pergi ke depan.
Tapi itu hanya separator, sehingga hanya detail sintaksis menarik.
>> Bagian juicy tentu saja nama program, Hello.
Dan itulah yang membuat diciptakan untuk kita.
Ini dikeluarkan file yang bagi kita.
Tapi bagaimana kita sampai ke titik itu?
Sekarang mari kita meminta pertanyaan, apa yang sebenarnya
terjadi di sini, setidaknya dengan Sehubungan dengan beberapa sintaks ini?
>> Jadi dalam kalimat atau lebih, bagaimana kita menjelaskan lebih jauh
baris pertama ini yang disorot dalam warna hijau?
Apa itu baris pertama melakukan, sehubungan dengan program saya?
Ya?
>> SISWA: [Tak terdengar].
DAVID Malan: Katakanlah lagi?
MAHASISWA: Termasuk dan men-download fungsi masa lalu [Tak terdengar].
DAVID Malan: Good.
Termasuk, saya tidak akan mengatakan men-download, tetapi katakanlah
termasuk fungsi orang yang telah ditulis di masa lalu.
Dan fungsi-fungsi diimplementasikan di suatu tempat di komputer saya.
Seseorang menulis file tahun yang lalu, dan bahwa file
adalah suatu tempat dalam dari CS50 alat, atau di harddisk
lebih umum.
Jadi baris ini pada dasarnya mengatakan, pergi mencari file, standar I / O dot
h, dan copy dan paste isinya di sini di bagian atas file saya
sehingga saya tidak perlu melakukannya secara manual sendiri.
>> Dan di antara potongan-potongan juiciest dalam file kita diklaim adalah apa fungsi?
Fungsi apa yang kita katakan dinyatakan atau disebutkan dalam standar I / O dot h
kemungkinan besar?
Printf, kan?
Kami tidak menulis printf pada Senin, itu hanya ada.
Sama seperti Alana hanya datang di atas panggung dan dia hanya
ada dan tahu cara menggambar sesuatu di layar,
sehingga tidak printf ada selama bertahun-tahun.
Dan jadi ini adalah bagaimana kita mengaksesnya.
Sekarang jika kita bergerak di sini, utama adalah kita analog
dikatakan potongan puzzle disebut ketika bendera hijau diklik
dalam dunia Scratch.
Ini hanya semacam itu nama standar bahwa manusia
memutuskan akan mewakili default titik masuk ke program.
The serangkaian kode pemrograman yang dijalankan lebih dulu.
>> Sementara ini kurung kurawal adalah jenis seperti bentuk melengkung
dari banyak potongan-potongan awal kuning.
Mereka agak merangkum seluruh sekelompok instruksi bersama-sama.
Jadi hanya jenis mengikat bersama-sama beberapa fungsi yang terkait.
printf tentu saja fungsi yang mencetak layar, seperti yang kita baru saja melakukannya.
>> Bagaimana kurung ini?
Bagaimana Anda akan define-- bahkan jika Anda sudah tidak pernah diprogram sebelumnya, tetapi hanya berdasarkan
sekarang peningkatan semoga intuisi, apa
yang tanda kurung lakukan bagi kita di sini?
Atau apa yang mereka sekitarnya?
Ya?
>> MAHASISWA: Mereka bilang apa Anda akan mencetak dengan printf.
>> DAVID Malan: Ya, mereka mengatakan apa Anda akan mencetak dengan printf.
Atau lebih umum, mereka sekitar input ke fungsi.
Jadi Anda hampir bisa memikirkan mereka kurung
sebagai seperti logam klip pada clipboard ini.
Itu yang memegang, itu apa akan digunakan untuk memberikan argumen
ke dalam fungsi, yang pada hal ini disebut printf.
>> Jadi secara umum hampir semua kali kita memanggil fungsi,
kita akan melihat sepasang kurung.
Mungkin dengan sesuatu di dalamnya, seperti sekarang, mungkin tidak ada di dalamnya.
Tapi di situlah Anda akan menempatkan input atau disebut argumen
ke fungsi.
>> Berikut ini salah satu argumen tersebut.
Aku sudah disorot segalanya antara tanda kutip,
karena ternyata dalam bahasa ini disebut
C, bila Anda ingin mewakili string-- itu adalah kata atau frase
atau bahkan paragraph--, Anda harus mengelilingi dengan tanda kutip ganda.
Kutipan tidak tunggal, tanda kutip ganda.
Dan itulah yang saya lakukan di sini.
>> Sementara itu ada yang funky simbol menjelang akhir sana.
The backslash n.
Apa yang kita katakan yang mewakili?
Ya?
>> SISWA: Sebuah baris baru.
>> DAVID Malan: baris baru.
Benar, Anda tidak umumnya tekan Enter saat
Anda ingin program meludahkan baris baru.
Sebaliknya Anda kirim secara eksplisit dengan sepotong diakui misterius ini
sintaksis, backslash n, yang Anda ingin baris baru untuk pergi ke sana.
Akhirnya titik koma.
Kami tidak benar-benar berbicara terlalu banyak tentang hal ini,
dan sejauh ini akan menjadi kutukan beberapa keberadaan Anda untuk masalah pertama
mengatur, ketika Anda hanya gagal untuk menyadari Anda lupa sesuatu yang bodoh
sebagai titik koma.
Dan umumnya menempatkan akan memperbaiki masalah itu.
Tapi apa yang dilakukannya bagi kita, yang akan Anda katakan?
>> SISWA: [Tak terdengar].
>> DAVID Malan: Maaf?
>> SISWA: [Tak terdengar].
DAVID Malan: Finishing pernyataan.
Ini semacam seperti periode di akhir sebuah kalimat bahasa Inggris,
sedangkan dalam bahasa ini C itu mengakhiri pernyataan.
Instruksi pemrograman kode yang hanya Anda ingin mengatakan,
Aku sudah selesai dengan ini.
Sekarang melihat bahwa satu-satunya di sini.
Jadi Anda tidak ingin masuk kebiasaan menempatkan titik koma
setelah setiap kurung tertutup.
Misalnya ada satu pun yang sebelah membatalkan, dan kita akan
kembali di masa depan apa berarti batal.
Tapi dalam kasus ini printf Anda adalah fungsi, atau pernyataan yang digunakan,
dan jadi kami ingin memiliki terminal di bagian paling akhir itu.
>> Dan aku sengaja memilih pada C. Dan terus terang banyak bahasa seperti C, C ++,
Java, JavaScript, dan sejumlah bahasa lain memiliki banyak ini
semacam rincian sintaksis.
Yang pasti jika Anda baru untuk pemrograman benar-benar dapat perjalanan Anda sampai.
Dan Anda akan, menandai saya kata-kata, beberapa dari Anda akan
memiliki pengalaman ini di jam kantor atau akhir
pada malam hari bekerja pada beberapa p-set, di mana Program sialan Anda hanya tidak mengkompilasi,
itu tidak berjalan, Anda memiliki tidak tahu apa yang salah,
tampaknya benar-benar logis benar untuk Anda.
Dan itu karena Anda lupa sesuatu seperti memukul
titik koma di akhir beberapa baris.
>> Tetapi ini adalah hal-hal yang Anda akan segera belajar untuk melihat.
Dan memang ini adalah hal-hal bahwa CA dan TF memiliki
telah semacam dilatih untuk melihat jauh lebih cepat dari yang Anda.
Dan jadi ini hanya untuk mengatakan, karena Anda menyelam ke dalam masalah set 1 khususnya,
jangan frustrasi oleh hal-hal ini.
Setelah Anda semacam menyesuaikan diri kepada dunia, Anda
mulai melihat hal-hal yang Anda mungkin tidak lihat pada pandangan pertama minggu pertama ini.
>> Jadi kode sumber adalah sesuatu seperti itu.
Kami ingin lulus ke yang disebut compiler.
Dan bahwa kompiler sebagai kami katakan menyediakan output
disebut sebagai kode objek, disebut nol dan satu.
Tapi dari sana, apa yang memberi kita?
Yah itu memberi kita pola-pola ini.
Dan lagi komputer Anda, Intel Anda di dalam,
memahami pola-pola ini nol dan satu.
Dan kadang-kadang pola merupakan angka desimal yang sebenarnya
seperti yang kita lihat minggu lalu, kadang-kadang itu merupakan surat
seperti yang kita lihat minggu lalu, kadang-kadang itu merupakan instruksi,
seperti mencetak sesuatu ke layar.
>> Jadi printf untuk instance-- melainkan, biarkan aku mundur.
Kami telah mengambil untuk diberikan bahwa mereka nol dan satu yang
dihasilkan oleh perintah ini make.
Tapi make bukan kompilator.
Membuat bukanlah hal yang di tengah yang memproduksi nol dan satu.
Sebaliknya buat adalah hanya sangat nyaman program bernama yang tujuannya dalam hidup
pada dasarnya untuk mengetahui bagaimana untuk mengkompilasi program Anda.
Dan kita menggunakannya dalam ini minggu pertama karena hanya
menyelamatkan kita banyak masalah.
>> Tapi apa benar-benar membuat lakukan ketika Anda mengkompilasi halo,
adalah, seperti yang kita katakan terakhir kali, itu mencari di hard drive Anda
atau dalam folder saat ini, untuk file bernama apa, rupanya?
Hello.c, kan?
Itu hanya semacam konvensi.
Ini sewenang-wenang, tapi itulah cara hal-hal yang.
Membuat, jika Anda hanya menentukan nama dari sebuah program yang belum ada,
itu akan mencari source code dalam file, secara default berarti hello.c.
Dan jika menemukan itu, besar.
Ini akan mengkonversi sumber yang kode ke kode objek untuk Anda.
>> Tapi setiap kali aku tekan Enter setelah menjalankan membuat halo,
apakah Anda ingat melihat terakhir kali cukup panjang dan urutan samar
surat putih lainnya dan karakter di layar?
Nah itu adalah perintah yang sebenarnya, compiler yang sebenarnya, yang berjalan.
Jadi compiler yang sebenarnya kita akan menggunakan sebagian besar semester adalah sesuatu yang disebut dentang.
Beberapa dari Anda mungkin telah menggunakan Visual Studio sebelumnya, atau GCC,
atau sejumlah kompiler lain.
Kami akan menggunakan dentang.
>> Dan dentang memungkinkan kita untuk benar-benar mengubah kode sumber untuk objek kode.
Apa sebenarnya ini berarti dalam praktek?
Yah biarkan aku pergi ke salah satu folder saya dari terakhir kali.
Di dalam alat CS50.
Dan biarkan aku pergi ke depan dan membuat ini file yang sama, termasuk standar I / O dot h.
Int void main.
Dan kami akan kembali di masa depan sebagai apa int berarti dan apa batal berarti.
Tapi untuk saat ini mari kita lakukan halo backslash dunia n,
sama seperti yang kami lakukan di papan tulis.
>> Mari saya simpan file ini disebut hello.c.
Dan jika saya ingin mengkompilasi ini Aku bisa-- biar tampilannya in-- run
membuat halo masukkan.
Dan ini lagi adalah garis sangat samar.
Tapi sekarang setidaknya satu kata mungkin melompat keluar pada Anda.
Dentang adalah bahwa garis yang kita lihat sebelumnya.
Sekarang ada banyak hal-hal lain terus terang bahwa kita akan gelombang tangan kami di untuk hari ini.
Tapi ada beberapa subset, beberapa karakter di sini
yang menarik.
Tapi aku akan pergi ke depan dan melakukannya.
Aku akan pertama kali dijalankan halo, hanya untuk membuktikan
bahwa ini bekerja seperti itu Senin.
Tapi sekarang aku akan menghapus program.
Dan seperti yang kita punya ini nama pendek terakhir kali,
perintah untuk menghapus sesuatu yang rm, menghapus, masukkan.
Anda akan mendapatkan beberapa pertanyaan yang cukup samar.
Sulit untuk percaya bahwa Anda dapat membuat bahkan pertanyaan ini sulit dimengerti.
Tapi menghapus berkas halo biasa saja berarti apakah Anda ingin menghapus halo.
>> Dan aku bisa pergi ke depan dan ketik y untuk ya, Enter, dan sekarang hilang.
Apa ini berarti sekarang, jika saya membersihkan layar saya,
adalah bahwa alih-alih melakukan make hello-- Anda
tahu apa, saya mendapatkan pandai dalam hal ini.
Aku akan menjalankan compiler sendiri.
Aku tidak butuh program untuk mencari tahu apa file saya disebut.
Aku menulis hello.c, saya tahu apa namanya,
Aku jelas mampu mengetik itu.
Jadi aku akan pergi ke depan dan jangan dentang hello.c Enter.
>> Sepertinya untuk bekerja.
Dan tidak ada output tambahan, karena dentang adalah compiler.
Ini adalah apa yang mengubah source code untuk nol dan satu.
Jadi jika sekarang saya lakukan dot slash halo Enter, hm.
Pesan kesalahan baru hari ini.
Jadi bash hanya nama berkedip cepat yang kita gunakan.
Itu terlalu menyederhanakan, tapi untuk saat itu saja yaitu,
itu prompt berkedip.
Dan itulah mengapa itu berteriak pada kita.
>> Tidak ada berkas atau direktori adalah sedikit lebih mudah.
Tapi tentunya saya membuat kode objek.
Tapi menangkap adalah, bahwa jika saya ketik perintah
untuk menunjukkan isi dari ini direktori, yang adalah apa?
ls untuk daftar.
Ada banyak hal di sini, beberapa di antaranya datang dengan alat,
seperti folder Desktop saya, Downloads folder, folder Dropbox, dan semua
bahwa barang-barang.
Tapi apa yang menarik adalah hello.c, yang
Saya membuat beberapa saat yang lalu dengan gedit.
Dan apa yang paling aneh Nama cari di sini,
mungkin bahwa kita tidak lihat terakhir kali sama sekali?
>> a.out, kan?
Jadi kembali pada hari, itu hanya memutuskan bahwa ketika
Anda mengkompilasi sebuah program untuk pertama kalinya,
dan Anda tidak menentukan nama dari file, sebut saja a.
Dan a.out hanya berarti ini output dari compiler.
Jadi itu adalah nama yang mengerikan untuk suatu program.
Tapi dengan logika itu, dot slash untuk direktori saat ini, slash a.out,
seharusnya berarti ada sebenarnya saya hello Program dunia.
Sekarang sedikit yang pemanasan latihan, juga.
Jika saya ingin mengubah nama ini File, ternyata Anda
memindahkan file dari satu nama yang lain.
A.out Jadi mv, dan kemudian aku dapat menyebutnya halo Enter.
Jadi ini adalah perintah Linux.
DOS memiliki ini tahun yang lalu, Windows memiliki jendela terminal
dari beberapa macam yang terlihat seperti ini, Linux dan Mac
komputer memiliki cepat berkedip ini.
Meskipun sebagian besar dari kita mungkin jarang, jika pernah, menggunakannya.
>> Tapi apa yang saya lakukan adalah menjalankan Program, yang namanya mv,
dan saya berikan dengan dua argumen, sehingga untuk berbicara.
Dua input.
a.out adalah nama asli.
Halo adalah nama baru.
Jadi jika sekarang saya lakukan dot slash halo, Enter, yang ada.
Dan jika saya lakukan dot slash a.out, apa yang Anda harapkan saya harus lihat?
>> Bash, tidak ada berkas atau direktori.
Karena aku hanya menamainya.
Jadi ini mengambil sedikit membiasakan diri.
Tapi masalahnya set 1 spesifikasi akan benar-benar
memegang tangan Anda melalui beberapa minutae ini.
Karena ini adalah lengkap gangguan intelektual
dari lebih menarik ide di tangan, yang
sebenarnya menciptakan sesuatu dari kode.
Tapi mari kita lakukan satu modifikasi sekarang untuk program ini.
>> Ingat bahwa terakhir kali aku melakukan sesuatu seperti ini, printf sebutkan nama.
Dan memang kita hanya melakukan ini di layar lebar di sana.
Dan kemudian saya melakukan string s mendapat GetString paren terbuka, paren dekat.
Dan paren hanya singkatan notasi untuk kurung.
Jadi tidak GetString mengambil argumen?
Tidak ada input tidak, tapi membutuhkan tanda kurung,
karena itulah yang demarcates pemanggilan fungsi.
>> Jadi aku akan pergi ke depan dan mencoba untuk menjalankan kompiler pada program ini sekarang.
Dentang hello.c, karena saya tidak mengubah namanya untuk saat ini.
Dan aku punya banyak kesalahan.
Mari kita zoom out di sini.
Jika saya gulir ke atas lagi, seperti saya katakan terakhir kali,
dengan yang pertama, kesalahan yang sama bahwa aku terakhir kali.
On line 6 dari hello.c saya memiliki dideklarasikan string identifier,
aku maksud standar?
Aku tidak.
Karena apa kesalahan telah saya buat dalam hal ini Program, jika Anda ingat dari terakhir kali?
Ya, kita membutuhkan disebut roda pelatihan
bahwa kita hanya akan digunakan untuk beberapa minggu.
Tapi aku perlu menentukan bahwa juga, suatu tempat di dalam alat,
adalah file yang kita tulis hanya beberapa tahun yang lalu.
Di dalam yang merupakan fungsi seperti tampaknya GetString.
Jadi sekarang jika aku kembali ke sini, memperbesar, dan kembali menjalankan dentang hello.c.
Sial, kesalahan lain.
Tapi kami belum melihat ini sebelumnya.
>> Yang ini sedikit lebih esoteris untuk mencari tahu.
Tapi ini sengaja di layar, karena kami ingin menceritakan kisah ini.
Ketika anda mengkompilasi hello.c, seperti gambar dari sebelumnya disarankan,
Anda hanya mengkonversi yang source code untuk nol dan satu.
Sekarang staf CS50 beberapa tahun yang lalu menulis CS50.h, dan file yang sesuai,
CS50.c.
Dan kami, beberapa tahun yang lalu, dikompilasi file-file
ke file yang terjadi disebut CS50.o.
>> Atau dapat diganti dengan beberapa hal yang berbeda.
Tapi itu cara yang mudah berpikir tentang hal itu.
Jadi kita dikompilasi CS50 ini perpustakaan menjadi nol dan satu.
Tapi tempat ini saya ditentukan bahwa saya ingin menggabungkan nol saya
dan orang-orang untuk hello world saya Program dengan nol dan satu
bahwa staf CS50 menciptakan beberapa tahun lalu menjadi satu program yang lengkap.
Semua saya telah ditentukan dengan menulis hello.c dentang adalah kompilasi hello.c.
>> Aku sudah tidak diberitahu dentang ke link dalam nol dan satu
bahwa staf CS50 dibuat untuk Anda beberapa waktu lalu.
Jadi memperbaiki yang mudah, lari l untuk link, CS50.
Dan kita kembali akan melihat ini tak lama lagi dan lagi.
Tapi perhatikan sekarang tidak ada keluhan.
Jadi sekarang jika saya menjalankan dot slash halo, sekarang bekerja.
Meskipun itu sedikit menyesatkan karena saya hanya diciptakan file apa?
a.out.
>> Jadi biarkan aku mundur untuk sesaat.
Program kami hanya dikompilasi memiliki tiga baris kode.
Ketika aku berlari hello world, halo sesaat lalu, saya tidak melihat sebutkan nama.
Dan itu karena aku berlari versi lama program.
Tapi kalau aku memang menjalankan dot slash a.out Masukkan, sebutkan nama, Rob, halo,
dunia.
Hm.
Itu semacam bug.
Mungkin bermaksud mengatakan Rob, kan?
Jadi apa perbaikan di sini dalam kode.
SISWA: [Tak terdengar].
DAVID Malan: Tepat.
Jadi saya hanya perlu membuat Tweak akhir sehingga aku lewat di placeholder,
seperti mengisi kosong, seperti yang kita lakukan beberapa saat yang lalu.
Tapi persen s sekarang yang mengisi kosong.
Jadi akhirnya mari kita mengungkapkan terakhir detail sehingga tidak ada sihir.
Aku akan pergi ke depan dan menyingkirkan hellow.
Aku akan pergi ke depan dan menyingkirkan a.out.
Jadi sekarang saya tidak memiliki program, hanya kode sumber.
Dan aku akan menjalankan perintah sedikit lebih panjang, dentang
lari o halo hello.c dasbor LCS50.
>> Sekarang ini mulai semacam pergi di satu telinga dan keluar yang lain mungkin.
Tapi menggoda selain apa ini lakukan.
Dentang adalah compiler, dasbor LCS50 sengaja di akhir
melakukan apa dalam sebuah kalimat?
Link ke perpustakaan CS50.
Meraih nol dan orang yang staf membuat
dan crams ke dalam program saya sendiri.
Jadi pertanyaan terakhir di tangan adalah, apa dasbor o halo mungkin
lakukan, bahkan jika Anda belum pernah melihat sintaks ini sebelumnya?
>> Keluaran program yang tidak bernama a.out default.
Sebaliknya itu bernama hello.
Jadi sekarang tidak ada a.out.
Tidak ada berkas atau direktori, karena saya secara eksplisit mengatakan
memanggil program ini hello, sehingga Saya sekarang bisa mengetikkan nama seperti itu
dan memilikinya berperilaku.
>> Sekarang terus terang, anak laki-laki adalah bahwa menarik untuk memiliki
untuk mengingat semua itu sedikit minutia, kan?
Jadi mari kita pergi ke depan dan menyingkirkan halo lagi.
Dan mari kita kembali ke dunia di yang sudah cukup untuk mengatakan membuat halo.
Tapi itu sihir yang membuat lakukan untuk Anda,
itulah kebosanan yang itu lakukan untuk Anda.
Dan sebagai program kami dan masalah mendapatkan lebih kompleks,
buat akan benar-benar menjadi teman Anda.
Karena tidak terlalu lama dari sekarang kita akan
memiliki program yang ditulis tidak dengan satu file, tapi beberapa file,
dan membuat akan mengotomatisasi proses kompilasi semua itu untuk kita bersama-sama.
>> Jadi sekarang dicetak.
printf adalah dalam file ini, standar I / O dot h, yang telah kita lihat sebelumnya,
tapi ada lebih banyak untuk printf dari itu.
Ada backslash n, tapi ada juga sekelompok escape sequence lainnya.
Dan urutan escape hanya cara mewah untuk mengatakan sesuatu
yang dimulai dengan garis miring terbalik, bukan garis miring, garis miring terbalik,
dan melakukan beberapa hal khusus.
Dan kita tidak akan memikirkan sebagian besar, tapi mengapa ada backslash kutip ganda,
Menurut Anda?
Mengapa ada urutan aneh ini karakter, backslash kutip ganda,
mengapa mungkin itu akan berguna?
SISWA: [Tak terdengar].
DAVID Malan: Tepat, kan?
Pikirkan kembali ke program hello world kami bahwa kita telah melihat beberapa kali sekarang,
setiap kali kita telah melihat bahwa dunia halo Program kami sudah tanda kutip ganda dalam
satunya adalah halo koma dunia n backslash.
Tapi berpikir untuk diri sendiri, bagaimana jika Anda benar-benar
ingin mencetak tanda kutip?
Insting pertama Anda mungkin, saya tidak tahu mengapa saya mungkin ingin do-- sini,
kita bisa menjadi pasif sedikit agresif, halo teman.
Kita mungkin ingin melakukan sesuatu seperti itu.
>> Tapi mengapa sekarang ini bermasalah?
Mengabaikan tanda kutip keriting samping yang keynote dibuat untuk kita secara otomatis.
Mengapa hal ini bermasalah?
>> Tepat.
Karena kita punya seperti 4 tanda kutip.
Nah yang pertama mungkin berjalan dengan yang kedua,
dan mungkin yang keempat berjalan dengan yang ketiga,
atau, maksudku aku bahkan tidak yakin, juga bukan komputer akan menjadi.
Komputer lagi, kompiler lagi, cukup bodoh.
Mereka hanya akan melakukan apa yang Anda memberitahu mereka untuk melakukannya.
Dan jika Anda tidak ambigu mereka mungkin akan melempar kesalahan.
>> Jika Anda tidak jelas bagaimana untuk membuat selai kacang dan jelly sandwich yang
hal-hal aneh yang mungkin tiba.
Ini ide yang sama.
Sekarang cukup untuk mengatakan ada beberapa escape sequence lainnya,
namun kami akan datang kepada mereka sebelum lama.
Pada dasarnya melarikan diri ini urutan mewakili sesuatu
bahwa Anda mungkin tidak dapat terlalu mudah di keyboard,
tanpa membingungkan komputer.
>> Sekarang sementara itu kami memiliki penampung di printf.
Persen d, yang juga dapat ditulis di hampir semua kasus sebagai persen i,
merupakan tempat bagi jenis data?
Apa jenis nilai?
Sejumlah desimal.
Jadi sebenarnya kita akan mulai menggunakan persen i karena
sedikit lebih sederhana, seperti integer.
Persen i.
Integer yang kebetulan desimal.
>> Persen s kita sudah katakan sebuah tempat untuk string.
Yang hanya sebuah kata, frase, sebuah paragraf, esai, apa pun.
Ini adalah urutan karakter dari beberapa panjang.
Dan kita akan melihat sebelum lama beberapa orang lain tersebut.
Tapi persen c adalah untuk satu karakter.
Persen f adalah untuk angka floating point,
seperti bilangan real yang memiliki titik desimal di dalamnya, yang
tentu saja tidak integer.
Dan di sana ada banyak sekelompok orang lain juga.
>> Sementara itu di C, dan dalam banyak bahasa,
kami memiliki tipe data yang berbeda.
Berbagai jenis kaca mangkuk jika Anda mau.
Mangkuk saya gunakan terakhir kali adalah untuk bola ping pong,
tetapi kita juga dapat menyimpan berbagai nilai-nilai seperti karakter dan string
dan bilangan bulat dalam wadah, seperti sebuah variabel, dan C memiliki ini.
Char adalah tipe data, jenis variabel,
di mana Anda dapat menyimpan karakter.
Lampung adalah jenis variabel dalam yang dapat Anda menyimpan bilangan real.
>> Int tentu saja untuk int.
Dan agak ridiculously bernama lama
adalah di mana Anda dapat menyimpan dasarnya nomor yang sangat panjang, bahkan dengan
lebih digit maka khas int toko mungkin.
Tapi kita akan kembali ke sebelum lama.
>> Dalam CS50 dot h sementara file header lain
bahwa kita telah melihat pasangan kali digunakan, ada
dua jenis data lain yang tidak ada di C biasanya.
Salah satunya adalah tali, dan kita akan lihat di beberapa minggu apa string yang benar-benar
adalah di bawah tenda.
Dan satu bool.
Dan bool adalah variabel yang hanya dapat mengambil nilai-nilai tertentu.
Dan hanya berdasarkan minggu lalu penjelasan Scratch,
dan baru-baru C, apa yang akan Anda menebak
adalah dua nilai yang mungkin untuk beberapa wadah yang adalah tipe bool?
>> Ya dan tidak.
Satu dan nol.
Benar atau salah.
Dan memang itu yang terakhir yang cenderung menjadi konvensional dalam pemrograman sebuah
bahasa, mengatakan sesuatu seperti benar atau salah.
>> Sementara perpustakaan CS50 datang dengan sekelompok fungsi
bahwa staf menulis untuk Anda, selain hanya mendapatkan string.
Kami menulis dalam fungsi sebelumnya bahwa bisa mendapatkan bilangan bulat dari pengguna,
mendapatkan karakter tunggal, mendapatkan pelampung, yang
adalah hanya nomor dengan titik desimal.
Dapatkan lama, benar-benar nilai besar dari pengguna.
Jadi kita hanya melihat ini di tindakan dalam bentuk GetString.
Tapi melalui fungsi-fungsi ini akan segera bisa menulis
program yang mendapatkan masukan dari pengguna.
>> Sementara mempertimbangkan ini Program, dan mempertimbangkan
bagaimana kita bisa sekarang mulai menambahkan untuk itu dengan konstruksi baru.
Sebuah angin puyuh tur cepat dan kemudian kita akan melihat
di beberapa menulis beberapa program secara manual diri kita sendiri.
Selanjutnya jika kita ingin menerapkan kondisi,
itu tidak akan terlihat seperti bagus sedikit potongan puzzle cantik.
Ini akan terlihat sedikit lebih misterius.
Tapi ini adalah kanonik struktur suatu kondisi di C.
>> Kata jika, dua kurung, yang di dalamnya
akan menjadi semacam ekspresi Boolean.
Sekarang slash slash di tengah, ini adalah
pada saat semacam kode pseudo placeholder.
Tapi lebih tepat, setiap baris kode di C yang dimulai dengan garis miring slash
adalah komentar.
>> Ini seperti catatan lengket bahwa Anda mungkin memakai esai, dicetak di atas kertas.
Ini catatan untuk diri sendiri.
Ia tidak memiliki fungsional berdampak pada program.
Ini semacam pengingat, itu sendiri dokumentasi untuk apa yang terjadi.
Jadi melakukan hal ini pada saat ini adalah semacam placeholder
untuk apa pun di dalamnya mereka kurung kurawal
akhirnya akan melakukan sesuatu.
>> Sementara itu Anda memiliki dua garpu di jalan, if lain membangun seperti ini.
Anda dapat jika, elseif, lain.
Sekarang perlu dicatat, khususnya jika Anda telah Googling sekitar
online untuk sumber daya dari rasa ingin tahu, atau jika Anda mengambil
salah satu kursus ini buku yang direkomendasikan di C,
Anda akan melihat bahwa manusia memiliki banyak preferensi yang berbeda untuk bagaimana
untuk mengekspresikan diri mereka dalam kode.
Beberapa orang ingin menempatkan kurung kurawal seperti yang saya lakukan di sini.
Beberapa orang ingin menempatkan keriting yang kawat gigi misalnya di sini.
>> Beberapa orang ingin menempatkan elses di sini dan kemudian ini di sini.
Ada sejumlah cara untuk menulis kode, dan tidak satupun dari mereka
benar per se.
Meskipun ada beberapa yang cukup salah.
Tapi ada no-- apakah ini akhirnya perdebatan yang sangat religius.
Bahkan, salah satu yang paling menjengkelkan hal tentang ilmu komputer
adalah bagaimana berpendirian ilmuwan komputer dapat.
Dan Anda akan menemukan dari waktu ke waktu yang bahkan Anda mengembangkan preferensi pribadi
bagaimana kode Anda akan terlihat.
>> Bukan hanya berperilaku, tidak hanya membuat output, tapi bagaimana seharusnya terlihat estetis.
Jadi apa yang akan kita lakukan adalah memandu Anda sepanjang jalan menuju, setidaknya untuk saat ini,
gaya CS50 standar bahwa setidaknya membuat hal-hal yang seragam dan mudah dibaca.
Tetapi lebih pada orang-orang perbedaan sebelum lama.
>> Ekspresi Boolean di C, jika Anda ingin mengatakan jika kondisi ini benar
dan kondisi lain ini adalah benar, Anda tidak menulis kata
dan, seperti yang Anda lakukan dalam bahasa Inggris.
Anda bukan menggunakan ampersand ampersand, untuk alasan kami akan kembali ke.
Jika Anda ingin katakan atau Anda menggunakan dua Garis vertikal, yang pada keyboard US
umumnya di atas Enter berikutnya kunci backslash.
Dan ini hanya berarti jika kondisi ini atau kondisi lain ini benar melakukannya.
>> Sementara itu ada ini hal gila, yang
Anda akan memiliki kesempatan menggunakan sesekali.
Tapi itu hanya alternatif cara untuk mengekspresikan diri.
Ini, untuk saat ini, mari kita menetapkan, itu hanya
cara yang funky lain mengungkapkan jika, elseif, elseif, elseif, elseif.
Hanya saja diformat dalam hal kasus, di mana Anda benar-benar
menghitung nilai-nilai yang Anda mungkin ingin memeriksa.
>> Sementara loops.
Kami melihat perbandingan Gores dengan lingkaran.
Dan aku akan melambaikan tangan saya di apa setiap hal-hal ini berarti.
Tetapi perhatikan bahwa lingkaran akan sangat seringkali diawali dengan kata kunci untuk.
Atau akan mulai dengan kata kunci sementara.
Atau itu akan mulai dengan kata kunci dilakukan, dan diakhiri dengan kata kunci sementara.
>> Tapi apa yang kita akan melihat adalah hal-hal lebih seperti ini.
Berikut ini adalah, pada umumnya di C, bagaimana Anda mungkin mendeklarasikan variabel dan memberikan nilai.
Dalam C itu tidak cukup, seperti pada Scratch, Anda hanya
mengatakan memberi saya sebuah variabel yang disebut sesuatu.
Anda harus memberitahu C, dan memberitahu compiler Anda, lebih khusus,
apa jenis nilai yang Anda ingin dimasukkan ke dalam mangkuk kaca.
>> Apakah integer?
Jika demikian, Anda harus harfiah mengatakan int dan kemudian
nama variabel, maka titik koma.
Jika Anda malah ingin tali dan disebut itu s seperti yang kulakukan kode saya di sini hari ini,
Anda akan mengatakan string s koma.
Jika anda ingin memberikan nilai Anda kemudian dapat menggunakan tanda sama,
atau dikenal sebagai operator penugasan.
Dan perhatikan bagaimana masing-masing dari garis-garis kode
memiliki titik koma pada akhir itu.
>> Tapi terus terang ini hanya terlihat sedikit jelek.
Mengapa saya tidak bisa mengatakan ke komputer, memberikan saya variabel dan inisialisasi ke nol.
Artinya, memberi saya mangkuk gelas kosong.
Meskipun Anda bisa.
Dan jadi salah satu dari penghakiman panggilan Anda akan harus membuat Gaya dari waktu ke waktu
adalah, apakah Anda menulis kode seperti ini, atau Anda jenis membersihkannya dan terkesan
orang dengan menulis dua baris sebagai salah satu.
Dan ini akan dianggap umumnya cara yang lebih elegan
menulis kode Anda Gaya.
>> Fungsi kita tentu saja terlihat.
Mereka akan mengambil format ini.
Nama fungsi, beberapa kurung, dan kemudian mungkin beberapa
barang di dalam.
Atau Anda mungkin melihat penggunaan beberapa fungsi sisi
berdampingan, seperti sesuatu seperti ini.
Sekarang sebagai garis singgung, apakah lelucon ini sekarang masuk akal?
>> [Tertawa]
Ini tidak berarti itu lucu, tapi itu tidak mungkin membuat rasa sedikit lebih.
Jadi sekarang mari kita pergi ke CS50 alat sejenak.
Dan biarkan aku membuka satu teaser di sini.
>> Dan memang salah satu alasan untuk memperkenalkan Katalog IKEA
dan berkedip gambar iPhone sedikit lalu
adalah untuk benar-benar mengikat bersama-sama dengan Fakta bahwa hanya beberapa tahun yang lalu, pada tahun 2007,
potongan kode adalah dirilis, yang
salah satu implementasi pertama dari software
yang melakukan apa yang disebut jailbreaking.
Bagi mereka yang tidak terbiasa, jailbreaking sesuatu seperti telepon atau iPhone
berarti pada dasarnya mencari cara untuk melakukan hal-hal
dengan itu bahwa perusahaan yang membuatnya tidak berniat.
Seperti Anda ingin menginstal tertentu perangkat lunak yang tidak di app store,
jailbreaking telepon Anda yang Anda melakukan hal-hal seperti itu dan banyak lagi.
Tapi apa yang menyenangkan di 2007-- dan sudah ada
puluhan versi yang berbeda hal ini sejak saat itu,
dalam segala macam languages-- adalah bahwa Program ini di sini, yang disebut iUnlock,
sebenarnya ditulis dalam C. Dan jadi saya menarik kode sumber untuk ini,
hanya untuk jenis menunjukkan beberapa kesamaan dengan konstruksi
kita sudah membahas sejauh ini.
Sekarang ada cara yang lebih kompleks di sini dari yang kita telah melihat sudah dalam kelas.
Mari saya gulir ke atas hanya sedikit di sini.
>> Tapi perhatikan ini-- baik kita melihat beberapa things-- tapi perhatikan baris-baris di sini,
termasuk standar I / O dot h.
Dan garis all-- 24, please-- melihat standar I / O
dot h dan sejumlah besar lainnya file yang orang lain tampaknya
telah menulis.
Dan jika kita scroll down ini, sedikit sewenang-wenang,
pemberitahuan Aku tidak tahu bagaimana menulis semua ini sendiri tentu belum,
tapi ada jika.
Jadi rupanya ini memiliki cabang.
>> Dan jika saya gulir ke bawah sedikit lanjut ada lain jika.
Jika saya gulir ke atas, saya pikir sekitar garis 100 saya melihat untuk.
Jadi saya tidak yakin bagaimana ini bekerja belum,
tapi ini adalah untuk loop yang akan biarkan aku iterate beberapa beberapa kali.
Dan jika saya gulir ke cara ke bawah
Saya melihat bahwa ada berfungsi di sini disebut
utama, dan beberapa kredit tambahan untuk kesenangan membaca Anda.
>> Jadi ini hanya untuk say-- dan kami akan menempatkan online antara sumber program ini
kode sipil saat ini bahwa bahkan beberapa di antaranya perangkat yang kita terima,
pada akhir hari Anda masih menggunakan ini konstruksi dasar yang kita sudah
telah memperkenalkan sudah sejauh ini.
Sudah cukup satu.
Baiklah, jadi sekarang mari kita benar-benar membangun sesuatu.
>> Mari kita melampaui sesuatu seperti hello.c, dan membuka ini,
mari kita menulis program ini di sini.
Aku akan pergi ke depan dan menulis sebuah program yang disebut adder.c,
tujuan yang dalam hidup akan menjadi seperti pertama kalkulator super sederhana saya
itu hanya menambah beberapa angka.
Bukan karena itu sulit masalah, tetapi karena
memungkinkan saya untuk sekarang mengikat bersama-sama beberapa hal.
Jadi aku akan pergi ke depan dan mencakup standar I / O dot h dan CS50 dot h.
Aku akan mengatakan int void main.
Dan lagi di masa depan kami akan kembali ke sana
ke dalam konteks ini dan tidak berlaku berarti.
>> Dan sekarang aku akan mengatakan sesuatu seperti printf, memberikan saya sebuah integer.
Dan sekarang on line kedua saya, bagaimana cara mengekspresikan diri seperti
bahwa saya ingin mendeklarasikan variabel yang akan menyimpan int?
Secara harfiah apa yang saya ketik jika saya ingin membuat variabel yang menyimpan sebuah int
yang akan Anda katakan?
int a sama getInt.
Tentu, sehingga bekerja.
Dan hanya untuk konsistensi dengan kode Anda akan
lihat online, biarkan aku ubah ini x, hanya karena x
adalah nama variabel umum digunakan, setidaknya dalam aljabar.
Sekarang biarkan aku pergi ke depan dan jangan printf lagi.
Beri aku bilangan bulat lain.
Dan sekarang aku akan baik dari belajar dari pola itu,
Aku akan mengatakan int y sampai ke getInt.
>> Dan kita sudah tidak digunakan GetInt sebelumnya, tetapi hanya
seperti GetString pergi dan mendapatkan string, seperti Javier lakukan dari penonton,
sama tidak getInt mulai berkedip prompt.
Dan efektif menunggu pengguna untuk memberikan integer, dengan mengetik di
dan menekan Enter.
Sekarang akhirnya aku akan lakukan ini, printf jumlahnya of--
dan biarkan aku sekarang-- mewah persen i dan i persen hadir
i tanda seru backslash n.
Dan apa yang Anda pikir aku akan dimasukkan ke dalam sekarang sebagai masukan tambahan
untuk printf?
>> Saya tidak ingin mengatakan harfiah mengutip tanda kutip x.
Saya ingin kelas x dan kemudian, dan sekarang mari kita mewah
dan mari kita asumsikan kita bisa melakukan apa yang kita inginkan.
Apa yang ingin Anda katakan selanjutnya?
x ditambah y.
Dan memang yang akan bekerja.
Ini minimal bahasa pemrograman mengerti aritmatika dasar,
dan jadi ini harus pada kenyataannya pekerjaan.
>> Jadi biarkan aku pergi ke depan dan jangan membuat adder di jendela hitam dan putih
di sini, Enter.
Garis samar tapi tidak ada kesalahan pesan, jadi itu bagus.
Dot slash adder, beri aku integer, 1.
Beri aku bilangan bulat lain, 2.
Jumlah 1 dan 2 adalah 3.
>> Baiklah, jadi cukup sepele program, tetapi apa yang dilakukan?
Ini memungkinkan saya untuk menggunakan fungsi panggilan sini, memanggil fungsi lain di sini,
dua panggilan ke getInt, a ketiga panggilan untuk printf,
dan kemudian menggunakan penampung ini.
Jadi sedikit lebih canggih daripada terakhir kali.
Tapi bagaimana jika saya ingin mendapatkan sedikit lebih menarik?
>> Biarkan aku pergi ke depan dan sekarang melakukan hal ini.
Biarkan aku pergi ke depan dan menciptakan file baru yang disebut kondisi nol.
Dan aku akan menyimpan beberapa waktu untuk kelas demi
dan hanya sisipkan dalam kode sebagai titik awal.
Dan sekarang aku hanya akan menempatkan sesuatu yang baru di sini di tengah.
Jadi printf saya ingin integer silakan.
Dan semua kode ini tersedia di website program ini,
Anda tidak perlu mengetik semuanya di kelas jika Anda lebih suka tidak.
int, dan sekarang aku akan gunakan, bukan x dan y,
Aku akan menggunakan n, yang mungkin nama yang paling umum
untuk integer dalam program komputer.
Dan sekarang saya ingin melakukan sedikit penghakiman di sini.
Aku akan melihat apakah n lebih besar dari 0, maka
Aku akan mengatakan whoops printf--, printf-- Anda memilih angka positif,
tanda seru backslash n.
Tutup itu.
Lain aku akan mencetak printf Anda memilih angka negatif.
>> Sekarang sebelum Anda berteriak padaku, mari kita menjalankan program ini.
Biarkan aku pergi ke sini.
Dan bagaimana cara mengkompilasi sebuah program disebut kondisi dasbor 0?
Membuat kondisi dasbor 0.
Jenis nama bodoh, tapi-- sialan.
OK, saat mengajar yang baik.
Mengapa yang melanggar?
>> Apa yang saya sengaja memanggil file ini?
Anda dapat menyimpulkan jenis dari tab di sini.
Jadi, tidak buruk bahwa saya melakukan ini, karena ini
akan terjadi mungkin untuk sebagian dari Anda.
Jadi aku sengaja bernama saya Kondisi source code 0.
Namun sumber kode saya oleh konvensi harus berada dalam sebuah file yang bernama kondisi 0 dasbor c,
atau apa pun dot c.
>> Jadi biarkan aku memperbaiki hal ini.
Sama seperti Microsoft Word saya bisa naik untuk Save As dan melakukan kondisi 0 dot c.
Sekarang hanya untuk menjadi rapi aku akan pergi ke depan dan menghapus
kondisi 0, yang versi lama saya.
Dan sekarang mari kita lakukan membuat Kondisi 0, Enter.
OK, tampaknya baik.
>> Kondisi 0, Enter.
Saya ingin integer silahkan, 50, Anda memilih angka positif.
Sekarang bagaimana negatif 50?
Anda memilih angka negatif.
Bagaimana sekarang, 0.
Cukup yakin 0 tidak negatif.
>> Jadi ini adalah jenis bug logis.
Bagaimana cara mengatasinya?
Lain jika n kurang dari 0, melakukan hal ini, lain kita dapat memiliki cabang tiga cara di sini,
printf Anda memilih 0.
Jadi sekarang jika saya jalankan ini Program, setelah mengkompilasinya
lagi dengan make, dan sekarang memutarkan Kondisi 0, apa yang saya akan lihat di sini
adalah 0 memberi saya hasil itu.
Jadi di mana kita akan pergi dengan ini?
>> Yah itu sangat mudah untuk melupakan hutan untuk pohon.
Sehingga memungkinkan kita untuk menyimpulkan dengan video 2 dan 1/2 menit ini
yang pada akhirnya sedikit dari iklan dari Google,
tapi itu benar-benar merupakan bukti apa bahkan menggunakan ini bangunan dasar
blok kami akhirnya bisa melakukannya sekali kami memiliki sedikit pemrograman
savvy bawah ikat pinggang kita.
>> [MUSIC PLAYING]
>> SAROO Brierley (sulih suara): Itu 26 tahun yang lalu,
dan aku baru saja akan mengubah 5.
Kita harus ke stasiun kereta api dan kami naik kereta api kita bersama-sama.
Adikku hanya berkata aku akan tinggal di sini, dan aku akan kembali.
Dan aku hanya berpikir, baik Anda tahu, Aku mungkin juga hanya pergi tidur
dan dia hanya akan membangunkan saya.
Dan ketika aku terbangun berikutnya hari, seluruh kereta
kosong pada kereta pelarian, hantu kereta mengambil saya, saya tidak tahu di mana.
>> Aku diadopsi ke Australia, untuk keluarga Australia.
Dan ibu telah dihiasi saya ruangan dengan peta India,
yang ia tempatkan di samping tempat tidur saya.
Aku bangun setiap pagi melihat peta itu, dan karenanya
itu semacam terus kenangan hidup.
Orang-orang akan berkata, Anda berusaha mencari jarum
dalam tumpukan jerami, Saroo Anda tidak akan pernah menemukannya.
>> Aku akan melintas dari tempat-tempat yang saya digunakan untuk pergi, berkedip keluarga saya
wajah.
Ada gambar ibuku, duduk dengan kaki disilangkan,
hanya menonton menangis.
Hidup hanya begitu sulit.
Itu harta saya.
Dan saya melihat Google Map dan menyadari ada Google Earth juga.
Dalam dunia di mana Anda bisa memperbesar, Saya mulai memiliki semua pikiran ini
dan kemungkinan apa bahwa ini bisa lakukan untuk saya.
Saya berkata pada diri sendiri, Anda tahu, Anda sudah mendapat semua kenangan fotografi
dan landmark di mana Anda dari, dan Anda tahu apa yang tampak seperti kota.
Ini bisa menjadi aplikasi yang dapat Anda gunakan untuk menemukan jalan kembali.
>> Saya pikir, baik saya akan meletakkan titik di stasiun kereta api Calcutta,
dan garis radius, Anda tahu, bahwa Anda harus mencari di daerah ini.
Aku semacam datang di ini rel kereta api.
Dan aku mulai mengikutinya, dan Aku datang ke stasiun kereta api yang
mencerminkan gambar yang sama itu dalam ingatan saya.
Semuanya cocok.
Aku hanya berpikir yep, saya tahu di mana aku akan.
Aku hanya akan membiarkan Peta yang saya miliki di kepala saya
membawa saya dan membawa saya kembali ke kampung halaman saya.
>> Aku datang ke ambang pintu rumah yang aku lahir.
Dan berjalan sekitar sekitar 15 meter sekitar sudut,
ada tiga wanita berdiri luar, berdekatan satu sama lain.
Dan yang tengah melangkah maju, dan Aku hanya berpikir, ini adalah ibumu.
Dia maju ke depan, dia memelukku, dan kami berada di sana selama sekitar lima menit.
>> Dia meraih tanganku dan dia membawaku ke rumah
dan mendapat di telepon, di mana dia berdering adikku dan adikku
mengatakan bahwa, Anda tahu, saudaramu baru saja
tiba-tiba muncul seperti hantu.
Dan kemudian keluarga bertemu kembali lagi.
Semuanya semua baik, Aku membantu ibuku,
dia tidak harus bekerja keras.
Dia dapat hidup sisanya hidupnya dalam damai.
>> Itu jarum di tumpukan jerami, tapi jarum ada di sana.
Semuanya ada.
Segala sesuatu yang kita miliki di dunia adalah di tekan tombol.
Tapi Anda harus memiliki kemauan dan tekad untuk menginginkannya.
>> [MUSIC PLAYING]
DAVID Malan: Luar biasa testimonial manis
hanya apa yang dapat Anda sekarang dengan teknologi.
Kita akan melihat Anda minggu depan.