[MUSIC PLAYING] DAVID Malan: Baiklah. Selamat datang kembali. Ini adalah CS50, dan ini adalah Minggu Pertama, Lanjutan. Jadi salah satu alasan kami telah melewati sekitar teknologi seperti Google Kaca adalah bahwa mereka datang dengan sesuatu yang dikenal sebagai API, sebuah Application Programming Interface. Dan apa artinya ini adalah bahwa dengan file yang tepat dan dengan hak dokumentasi, Anda benar-benar dapat menulis perangkat lunak untuk perangkat bahkan seperti ini. Dan apa yang kita miliki dalam pikiran terhadap semester akhir, jika proyek melibatkan, misalnya, Google mungkin Kaca banding, kita akan melihat apa yang bisa kita lakukan dalam hal mengaitkan Anda dengan beberapa hardware loaner serta diakses publik API sehingga Anda dapat benar-benar mulai membuat perangkat lunak yang berjalan pada bahwa Google Glass yang sama. Perangkat lain yang kami sudah bermain dengan akhir-akhir ini kita berpikir bahwa mungkin menyenangkan di akhir semester adalah hal kecil di sini. Ini disebut Leap Motion dan apa yang Anda akan melihat secara teknis iklan untuk perangkat, tetapi tidak berbicara dengan apa khusus ini perangkat mampu. Dan juga, dilengkapi dengan API melalui yang dapat Anda menulis perangkat lunak untuk mengontrol komputer Anda sendiri dengan cara cukup seperti film ini satu menit di sini. [VIDEO PEMUTARAN] [END VIDEO PEMUTARAN] Jadi sekarang, perangkat ini terjadi pada dilaksanakan sebagai USB kecil konektor yang dapat Anda plug ke Anda komputer, tapi aku tidak akan terkejut jika sebelum lama kita memiliki jenis-jenis teknologi dalam batch berikutnya PC dan Mac sehingga Anda dapat, memang, berinteraksi dengannya dalam cara seperti itu. Bahkan, apa yang saya pikir saya akan melakukan juga, adalah Aku menarik sebuah demonstrasi kecil program yang dilengkapi dengan perangkat lunak ini. Jadi saya sudah menempatkan sensor kecil di depan laptop saya. Dan seperti yang Anda lihat, sudah menyadari bahwa tangan saya ada mengendalikannya. Dan semua aplikasi ini dilakukan secara dgn hal-hal kecil seperti ini. Tapi Anda bisa melihat bahwa, memang, Saya memiliki lima jari di sana. Jika kita bisa mendapatkannya untuk melakukan semua 10, Anda bisa membayangkan sebuah piano rapi aplikasi atau sejenisnya. Jadi jika Anda ingin datang setelah kelas hari ini dan bermain dengan itu sebagai baik, Anda dipersilakan untuk. Jadi lebih pada menjelang akhir semester. Jadi beberapa administrasi pengumuman. Satu, lakukan bagian demi hari Jumat ini pada siang hari di cs60.net/section. URL yang di lapangan itu homepage juga. Sementara itu, meskipun, supersections akan debut hari Minggu ini. Supersections adalah hal yang satu kali, karena membawa kita beberapa waktu untuk bekerja siapa yang ada di bagian mana dan di mana. Jadi hari Minggu ini datang, akan ada satu bagian untuk mereka yang kurang nyaman, satu bagian untuk mereka lebih nyaman. Dan bagi Anda di suatu tempat di antara dipersilakan untuk pergi ke salah satu atau keduanya atau tidak. Kedua hal ini akan difilmkan. Mereka akan berada di auditorium yang lebih besar dari Bagian yang biasanya akan masuk Tetapi tujuan di sini adalah untuk membekali Anda dengan beberapa kenyamanan dengan permasalahan yang satu, dengan C, dengan CS50 alat, ini akhir pekan, bahkan sebelum Anda mengetahui Anda tugas bagian formal. Jadi Anda akan bertemu TF dan kecil Anda kelompok sectionmates di sekitar waktu seminggu. Jam kantor, sementara itu, telah terjadi. Apakah mengambil keuntungan dari mereka malam ini atau besok malam jika Anda ingin. Soal set 0 jatuh tempo pada hari Jumat. Ini adalah hari paling lambat terjadwal secara berkala Kamis. Tetapi dengan masalah set 1, Anda akan melihat yang mencakup beberapa pemanasan latihan yang Anda sendiri Anda dapat memperpanjang Kamis batas waktu sampai Jumat. Soal set 1, sementara itu, akan debut di website kursus akan datang ini Jumat, jika Anda ingin meringkuk dengan itu seperti yang saya lakukan sekali waktu akhir Jumat malam di kamar Anda. Jadi cs50.net/appliance adalah tempat di mana Anda bisa mendapatkan alat CS50 bahwa kita mulai menggunakan pada hari Senin. Kami akan menggunakan sedikit lebih hari ini. Tapi yakinlah bahwa masalah set 1 spesifikasi akan memandu Anda melalui tepatnya langkah-langkah yang Anda butuhkan untuk mendapatkan dan berjalan. Jadi jangan khawatir tentang melakukan itu sebelum Pset 1 jika Anda lebih suka tidak. Baik. Jadi kita melihat pada hari Senin di kode sumber, tetapi dalam konteks yang baru bahasa pemrograman, yaitu C dan C, seperti Scratch, tidak grafis. Ini bukan teka-teki potongan. Ini lebih Inggris-seperti sintaks. Dan ada beberapa langkah yang terlibat dalam benar-benar menulis dan menjalankan program di C, karena selain sumber kode seperti ini, Anda perlu sesuatu yang disebut kompilator. Dan dalam istilah awam, apa tidak kompilator lakukan untuk kita? Ya. SISWA: Ini mengubah kode bahwa Anda menulis ke 0s dan 1s. DAVID Malan: Baik. Jadi mengubah kode yang kita menulis untuk 0s dan 1s. Mengkonversi disebut kode sumber untuk kode objek, yang terakhir yang terlihat sedikit sesuatu seperti ini. Dan itu CPU Anda, otak dalam komputer Anda, bahwa karena orang yang menciptakan komputer-komputer, tahu apa mereka urutan 0s dan 1s berarti. Mungkin itu berarti cetak. Mungkin itu berarti tambahan. Mungkin itu berarti pengurangan. Mungkin itu berarti menampilkan grafik. Ada pola yang telah ditetapkan bit bahwa dunia telah memutuskan berarti hal-hal tertentu. Tapi untuk sebagian besar dalam kursus ini, kita akan bekerja di tingkat yang lebih tinggi, dan kami akan menganggap bahwa terdapat hal-hal seperti compiler yang dapat membuat fungsi kode sumber kami dalam cara kita inginkan. Jadi program ini kami menulis pertama pekan lalu dan kemudian mulai pelabuhan, sehingga untuk berbicara, ke C melewati ini Senin, ini. Ketika bendera hijau diklik, menyapa. Ini, tentu saja, ditulis dalam Scratch. Dan saya menyatakan bahwa setara program di C tampak sedikit sesuatu seperti ini. Jadi apa yang saya pikir kami akan lakukan pada awalnya adalah, mari kita menggoda selain apa yang tampak, pada awalnya sekilas, diakui, sebagai cukup misterius sintaks, tetapi Anda akan mulai melihat pola cukup cepat. Apa kita juga akan lakukan hari ini adalah memberikan Anda dengan mental model untuk beberapa kanonik, beberapa konstruksi standar dalam pemrograman. Dan kemudian kita benar-benar akan mendapatkan tangan kami kotor dengan beberapa contoh juga. Jadi bagi anda lebih nyaman, menyadari bahwa minggu ini dan kemudian berikutnya minggu mungkin sangat baik menjadi sedikit ulasan. Tapi terutama ketika edisi hacker masalah set 1 keluar pada website tentu pada hari Jumat, saya pikir Anda akan menemukan bahwa bahkan ketika Anda mengisi beberapa kekosongan selama minggu depan atau dua, Anda akan mulai mendapatkan semakin menantang dan menemukan hal-hal baru dan yang lebih baru. Jadi mari kita menggoda program ini terpisah beberapa baris pada satu waktu. Di bagian paling atas, kita memiliki apa yang teknis disebut direktif preprocessor. Ini hanya baris kode yang mengatakan untuk memasukkan isi dari file, disebut standar I / N, input standar - atau, maaf, standar I / O, standar input / output,. h, dalam program saya sendiri. Jadi dengan kata lain, jika saya menulis ini program dengan editor teks sederhana seperti gedit, setara sederhana sesuatu seperti Microsoft Word, yang instruksi, # include stdio.h, hanya akan memberitahu compiler, ambil isi dari file lain, stdio.h, dan paste di sini. Sekarang, mengapa saya peduli? Apa yang kita tuntut dalam file ini disebut stdio.h, yang disimpan di suatu tempat di harddisk, atau dalam hal ini kasus, di suatu tempat di CS50 alat? Orang lain menaruhnya di sana untukku. Tapi apa untungnya? Ya, jadi itu adalah deklarasi fungsi disebut printf. Jadi ingat printf fungsi yang menampilkan kata-kata dan karakter dan nomor pada layar atas perintah saya. Tapi aku tidak menulis itu. CS50 tidak menulisnya. Seseorang tahun yang lalu menulis itu, dan mereka pada dasarnya memberi kami resep untuk itu dalam sebuah file bernama stdio.h. Sehingga baris pertama hanya memberi saya akses untuk fungsi yang orang lain menulis tahun yang lalu, antara yang printf. Sekarang, baris berikutnya aku akan gelombang saya tangan pada, setidaknya sampai minggu depan. Tetapi untuk sekarang, tahu bahwa int main (void) adalah dasarnya setara ini potongan puzzle kuning saat bendera hijau diklik. Dunia, tahun lalu, memutuskan bahwa jika Anda sedang menulis sebuah program dalam bahasa yang disebut C, Anda mulai program anda dengan garis yang terlihat seperti itu. Dalam hanya tentang waktu seminggu, itu akan membuat merasakan apa int, apa void. Tapi untuk saat ini, anggap saja ini karena hal ini potongan puzzle kuning. Sekarang berikutnya, kita memiliki penjepit keriting diikuti oleh lain dekat keriting brace, sehingga untuk berbicara. Dan kita akan melihat ini di seluruh program di C, serta JavaScript dan PHP. Dan ini hanya merangkum baris terkait kode. Terbuka keriting brace dasarnya mengatakan, inilah beberapa kode. Dan keriting penjepit tertutup, yang miring ke arah lain, hanya berarti, itu saja untuk kode yang relevan. Jadi garis juicy pertama ini Program adalah yang terakhir, printf, kutipan-tanda kutip, hello world. Dan aku menelepon hal antara kutipan apa terakhir kali? Jadi string. Dan string hanya Techie istilah untuk urutan karakter, kata, frase. Bahkan satu huruf bisa menjadi ganda dikutip. Tapi itu urutan nol atau lebih karakter. Backslash-n, meskipun, terlihat agak aneh. Tapi itu hanya berarti sesuatu sederhana untuk komputer. Apa backslash-n? Baris baru. Jadi itu hanya urutan khusus karakter bahwa dunia telah memutuskan berarti menempatkan satu baris di sana, karena compiler akan benar-benar mendapatkan bingung, biasanya, jika Anda, sangat dimengerti, tapi tidak benar, hanya mulai menekan Enter untuk menempatkan baris baru dalam kode Anda. Anda harus menjadi sedikit lebih eksplisit dengan tanda-n. Dan kita akan melihat ada beberapa lainnya seperti pola untuk karakter khusus. Misalnya, jika Anda ingin membiarkan Anda pikiran mengembara ke kasus sudut, mengira bahwa aku ingin mencetak kutip ganda pada layar untuk alasan apa pun, yang tampaknya untuk menjadi sedikit bermasalah, kan? Karena jika saya menempatkan kutipan ganda dalam tengah "halo, dunia," untuk apa pun Alasannya, mengapa yang tampaknya berpotensi bermasalah? Rusak string. Compiler hanya sebuah program. Sebuah program seperti compiler hanya akan untuk membaca atas kode Anda ke bawah, kiri ke kanan. Dan jika melihat tiga tanda kutip ganda sebagai gantinya dua, itu tidak akan tahu jika Anda berarti bahwa hal ke kiri harus string, atau hal untuk hak, atau semuanya. Ini ambigu, dan jadi apa khas compiler akan lakukan hanya panik, dan memberikan beberapa pesan kesalahan, dan membuat Anda mengatasi masalah ini. Jadi, mengingat bahwa backslash-n berarti baru line, apa yang akan naluri Anda sekarang mulai jika Anda ingin menyertakan sesuatu yang anomali seperti ganda mengutip dalam ini jika tidak dikutip String? Backslash-kutipan ganda. Dan jadi kita akan melihat ini jenis pola juga. Jika Anda ingin melakukan sesuatu yang sedikit aneh, Anda akan menemukan bahwa solusi sering mengikuti pola, dan backslash menunjukkan sebuah urutan escape. Dan itu hanya berarti sesuatu yang istimewa bahwa kita perlu untuk mewakili dalam cara yang berbeda. Adapun bagaimana Anda mewakili backslash, baik, kita akan kembali ke itu. Tapi jawabannya juga, sebenarnya agak jelas. Sekarang, mari kita memperkenalkan beberapa lainnya konstruksi pemrograman Anda lihat di Scratch. Anda mungkin pernah diambil untuk diberikan sudah jika Anda sudah terjun ke masalah set 0. Tapi mari kita sekarang memperkenalkan sintaks di C untuk ini jika tidak cukup intuitif ide, setidaknya beberapa dari mereka. Jadi gagasan ini kondisi atau cabang, padahal sebelumnya kita diwakili dengan kode yang tampak seperti ini di sebelah kiri pada Scratch - jika x kurang dari y, kemudian berkata begitu - bukannya sekarang di C - biarkan aku mengasah dalam pada kasus yang paling sederhana - kita hanya akan mengatakan, jika, buka kurung, sesuatu itu benar - a Ekspresi Boolean akan pergi di mana saya telah mengatakan, kondisi - kurung tutup, maka jangan apa dalam kurung kurawal tersebut. Jadi di sini, juga, kurung kurawal adalah jenis seperti Scratch ini U-berbentuk potongan puzzle. Lakukan apa yang ada di dalam kurung kurawal tersebut. Dalam kasus ini, slash slash. Dan melihat ini adalah maju slash, bukan backslash. Garis miring, garis miring, bagi mereka yang sudah diprogram sebelumnya, hanya berarti - itu hanya komentar. Sebuah komentar bukan garis kode, per se. Ini adalah garis Inggris yang Anda, yang manusia, telah menulis kepada diri sendiri untuk mungkin mengingatkan Anda untuk melakukan sesuatu, untuk menjelaskan kepada diri sendiri, untuk menjelaskan kepada orang lain, apa kode Anda lakukan. Ini hanya komentar deskriptif. Sekarang, tentu saja, kita dapat memiliki dua arah garpu di jalan hanya dengan melakukan ini, garpu tiga cara jalan dengan melakukan ini, dan jika Anda terus ini pola, Anda dapat memiliki empat arah, lima-arah, enam arah garpu di jalan jika Anda perlu menangani, memang, bahwa banyak kondisi. Dan kemudian melihat paralelisme di sini - if (kondisi), else if (kondisi), dan satu-satunya yang sedikit aneh adalah yang terakhir, yang hanya yang lain. Tapi sekali lagi, ini identik, konseptual, apa yang kami lakukan sudah, meskipun sintaks akan mengambil sedikit membiasakan diri. Sekarang, dalam contoh ini, ada beberapa sintaks aneh lainnya. Kita melihat printf lagi, kurung buka, dan kurung tutup. Dan dalam ada string yang dikutip. Tanda kurung, dalam konteks printf, pergi di sebelah kiri dan hak apa? Apa yang kita jelaskan bahwa dikutip string sebagai lebih umum? Jadi argumen. Setiap kali Anda memiliki fungsi, seperti printf, dan kemudian paren terbuka dan paren dekat dan sesuatu di dalam itu, apakah itu string, atau integer, atau apa pun, hal dalam antara kurung disebut argumen. Dan argumen hanya mempengaruhi perilaku fungsi ini. Dalam kasus ini, itu cukup jelas bagaimana. x