[MUZIK bermain] DAVID MALAN: Baiklah ini adalah CS50 dan ini adalah akhir minggu satu. Jadi saya ingin memperkenalkan bekas saya dinasihati, Andel Duff, yang bukan sahaja menjadikan iPhone 5 berdiri, dan juga ini mimbar, beliau juga membuat kereta. Ansel Duff: Bagaimana PUASANYA, semua orang? Saya hanya ingin memberitahu anda sedikit sedikit tentang Formula SAE, di mana saya seorang kapten. Ia merupakan satu pasukan MIT. Saya hanya ingin memberitahu anda lelaki sedikit mengenainya dan diharapkan menjana beberapa faedah. Jadi biarlah saya berjalan melalui beberapa perkara tentang pasukan kami. Jadi kita sepenuhnya pelajar jangka, di mana semua reka bentuk ahli, simulasi, ujian, dan pengeluar subsistem kereta. Kami mempunyai kedai mesin kita sendiri dan garaj, dan N52-- atau maaf, N51-- yang merupakan bangunan yang sama sebagai Muzium Sains MIT. Dan kami adalah orang-orang yang memandu kereta. Ada satu pertandingan kebangsaan pada awal musim panas, dan kemudian ada penentuan yang lebih kecil pertandingan sepanjang tahun. Dan kemudian kita melakukan latihan pemandu hari untuk ahli-ahli baru berkenalan. Hari bina kami adalah pada Sabtu 11:00-8:00. Makan tengah hari dan makan malam menjaga daripada, dari itu Bertucci dan Beantown masing-masing. Kami mempunyai mesyuarat mingguan dan seminar, yang bagi kredit kursus. Yang baru semester ini, dan ia juga adalah untuk semester akan datang, supaya anda boleh menyeberangi-reg untuk itu. Dan kemudian kita mempunyai bentuk, kedai, dan hari-hari CAD pada minggu, manakala ahli-ahli akan bebas Bahagian CAD, perintah saham dan sebagainya. Jadi untuk elektrik kejuruteraan di pasukan kita mempunyai tarikan yang kami, sistem voltan tinggi, yang berlangsung pada nominal 300 volt, yang merangkumi motor, pengawal motor, dan pek bateri. Kemudian kita mempunyai rendah sistem voltan, yang berlangsung pada 12 volt, yang merangkumi kawalan, BOLEH nod, otak kotak dan papan pemuka. Sejauh CS pergi, yang kita lakukan mempunyai penyelenggaraan laman web yang kita perlu lakukan untuk acara-acara, keahlian perubahan, gambar baru, dan bahan PR. Dan kemudian kita mempunyai kod yang mengawal kereta kawalan cengkaman kami, pelancaran kawalan, kawalan dash, tork vektor, dan sistem brek regeneratif, yang menjalankan biasanya dalam MATLAB, Simulink dan LabVIEW. Memberitahu anda sedikit tentang kereta. Jadi ia kira-kira 500 pound. Ia peraturan terhad kepada 85 kilowatt. Ia mempunyai 2 EMRAX 207 motor dalam belakang, satu untuk setiap roda belakang. Ia mempunyai pek bateri yang dibina dari Prisma sel A123 kantung, berjumlah 300 volt dan 5.6 kilowatt. Dan ia memandu langsung dengan nisbah 2,64-1 drive. Berikut adalah beberapa gambar kami mengambil daripadanya pada pertandingan. Berikut adalah kon kembali, hidung, dan di sini adalah motor, cakera yang hitam besar bawahnya yang et mens Manus. Berikut adalah slaid yang saya menarik daripada skim persaingan kita. Dan ini hanya membandingkan kereta kita dengan beberapa kereta boleh didapati secara komersial, seperti KTM XBOW, Ariel Atom, dan Caterha M 7-280. Jika anda biasa dengan harga, kuasa tarik berat badan, dolar per kuasa kuda, dolar per tork, dan kereta kami bertiup mereka semua keluar dari air. Jika anda mempunyai sebarang soalan, mencatat alamat e-mel ini. Menembak kita e-mel di fsae@mit.edu. Kami gembira untuk bercakap tentang apa sahaja yang anda suka. Pelajar Harvard adalah jenis minoriti dalam pasukan. Jika anda mempunyai sebarang soalan mengenai bahawa sila menembak e-mel kepada kami, gembira untuk cakap, dan saya akan untuk mengetuai kembali kepada Daud. Terima kasih. Saya menghargainya, guys. [Tepuk tangan] DAVID MALAN: Ansel menghabiskan musim panas bekerja dengan kami di sini di kampus di CS50 musim panas ini. Dan di samping mengusahakan hal-hal seperti mentol binari, dia benar-benar benar-benar dibuka kami eyes-- dan lombong di particular-- dengan apa yang benar-benar persimpangan tidak perkakasan dan perisian boleh. Malah banyak perkara-perkara yang hanya melawat anda melalui akhirnya dicipta terlebih dahulu di dalam perisian, dan kemudian akhirnya fabrikasi dalam dunia sebenar dalam perkakasan. Jadi, jika anda berminat untuk meneroka persimpangan itu, mungkin mengambil masa sehingga kumpulan itu. Sekarang sementara itu, orang- yang peminat teknologi, dan produk Apple dalam tertentu tahu bahawa ada adalah beberapa pengumuman semalam. Tetapi kita fikir kita akan menunjukkan anda salah seorang yang keluar beberapa hari sebelum itu anda mungkin telah melihat. Jorgen EGHAMMER: Anda tahu, sekali dalam sesuatu yang sementara datang yang mengubah cara kita hidup. Peranti A begitu mudah dan intuitif menggunakannya berasa hampir biasa. Memperkenalkan 2015 Katalog IKEA. Ia bukan sebuah buku digital atau e-buku, ia adalah buku-buku. Perkara pertama yang perlu diperhatikan adalah tidak kabel, tidak ada satu kabel kuasa. 2015 Katalog IKEA datang dicas sepenuhnya, dan hayat bateri adalah kekal. Antara muka yang 7.5 sebanyak 8 inci, tetapi boleh berkembang ke 15 oleh 8 inci. Navigasi berasaskan sentuhan sentuhan teknologi yang anda sebenarnya boleh merasa. Kandungan datang pra-pasang melalui 328 muka surat definisi tinggi inspirasi idea-idea hiasan rumah. Untuk mula menyemak imbas, hanya sentuh dan seret. Kanan ke kiri untuk bergerak ke hadapan, kiri ke kanan untuk bergerak ke belakang. Perhatikan sesuatu yang berlainan? Betul. No lag. Setiap halaman yang jernih beban serta-merta, tidak kira berapa cepat anda tatal. Jika anda ingin mendapatkan gambaran yang cepat, hanya memegang di telapak tangan anda, dan dengan hanya menggunakan ibu jari anda, kelajuan melayari kandungan. Jika anda mencari sesuatu yang anda mahu untuk menyelamatkan untuk masa lain, anda hanya boleh menanda buku itu. Dan walaupun anda tutup aplikasi, anda boleh dengan mudah mencari penanda buku lagi. Menakjubkan. [Ketawa] [Tepuk tangan] Justeru, berbalik kepada hujung minggu satu. Beberapa pengumuman sekarang. Jadi sectioning kini dijalankan. Pergi ke URL ini di sini kadang-kadang antara sekarang dan Jumaat di tengah hari untuk benar-benar menentukan sama ada anda di kalangan mereka yang kurang selesa, lebih selesa, atau di suatu tempat di antara. Ini biasanya salah seorang daripada mereka perkara yang anda hanya jenis tahu. Dan sebenarnya orang-orang yang kurang selesa mungkin tahu banyak, orang-orang yang lebih selesa dikenali sebagai banyak, dan sekali lagi jika anda tidak cukup yakin yang dari orang-orang baldi anda jatuh ke dalam anda mungkin di suatu tempat di antara. Tetapi yakinlah anda boleh menukar selepas beberapa minggu jika perlu. Sementara itu, bagi minggu yang akan datang kita tidak mula bahagian per se, tetapi bahagian super, yang adalah terbuka kepada semua pelajar. Hari Ahad ini datang pada lokasi pada diumumkan di laman web kursus kita akan mempunyai satu untuk mereka yang kurang selesa, dan juga satu untuk mereka lebih selesa. Dan di suatu tempat yang di antara boleh memilih daripada kedua-dua, atau kedua-duanya jika anda suka, untuk duduk di atas. Dan tumpuan yang akan akhirnya pada C, yang kami akan terus kami perbualan hari ini. Masalah set 0 Sementara adalah mudah-mudahan di tangan anda. Secara rasmi esok kerana, Khamis, pada tengah hari. Melainkan anda tunai dalam satu 5 hari lewat anda, yang akan membawa sehingga Jumaat di tengah hari. Masalah set 1 Sementara itu akan dipaparkan di laman web kursus ini. Dan ini akan menjadi yang pertama kami Karier sebagai kelas ke C. Dan bahawa masalah yang dinyatakan spec akan berjalan anda melalui banyak mekanik yang kita mula bercakap tentang pada hari Isnin, dan kami akan terus bercakap tentang hari ini. C, Linux, yang CS50 perkakas, semua itu akan menanti anda dalam penentuan itu. Sementara waktu pejabat sedang dijalankan, di dewan makan sarjana muda. Menuju ke URL ini di sini untuk melihat jadual untuk malam ini dan esok, jika anda ingin mengambil bahagian. Soalan Sementara itu, supaya anda mempunyai peluang untuk bertanya soalan tak segerak, 24/7, menyedari anda tidak terhad kepada bahagian dan pejabat jam, tetapi alat ini di sini, CS50 Bincangkan di URL yang akan berada dalam talian perjalanan ini buletin perisian lembaga, melalui yang anda boleh bertanya soalan dari rakan-rakan dan juga kakitangan. Jadi ingat sumber itu juga. Sementara itu tradisi bermula Jumaat ini. Seperti yang anda mungkin telah celah dari video teaser Rabu lepas, kita mempunyai tradisi yang paling setiap hari Jumaat sepanjang tempoh mengambil kira-kira 50 pelajar dan kakitangan untuk restoran tempatan dipanggil Bomba dan Ais, di mana kami biasanya disertai oleh beberapa alumni atau rakan-rakan daripada industri bercita-cita untuk secara amnya untuk membuat kelas yang besar rasa kecil. Jadi ia adalah satu makan tengah hari benar-benar santai. Sekumpulan kami, kakitangan yang terutamanya, akan bermain kerusi muzik dan berbual dengan pelajar tentang 50, kehidupan di luar 50, hidup pada masa akan datang, dunia sebenar, Saya bercakap tentang peluang-peluang pekerjaan dengan rakan-rakan dalam industri. Jadi jika anda ingin menyertai kami Jumaat ini, menuju ke URL ini di sini. Ruang adalah terhad, tetapi kami akan melakukan ini recurringly sepanjang tempoh tersebut. Mengetuai sana untuk cs50.harvard.edu/rsvp. Dan jika anda tidak mendapat dalam masa ini, tidak perlu bimbang. Kami akan melakukannya sekali lagi dalam beberapa minggu akan datang juga. Jadi ini adalah gambar kami dicat minggu lalu, dan anda mungkin telah berkecimpung dalam setakat ini. Tetapi mari kita cuba untuk menyambung ini sekarang dengan apa yang kita akan lakukan hari ini dan seterusnya. Bolehkah saya mempunyai satu sukarelawan? Baiklah, atau lebih. Bagaimana kira-kira di sini pada akhir, dalam baju biru. Datang pada sehingga, apa nama anda? Alana: Alana. DAVID MALAN: Alana. Jadi Alana, hanya untuk moment-- bagus untuk memenuhi you-- akan memainkan peranan yang fungsi ini di sini. Blok ungu kita kena dipanggil setakat ini fungsi. Jadi apa yang saya akan pergi hadapan di sini dan menawarkan Alana adalah tag nama kecil, untuk membuat jelas apakah peranan yang anda bermain. Oleh itu, anda hendaklah menjadi blok katakan itu. Jika anda ingin pergi ke depan dan meletakkan bahawa pada. Dan kita akan menyimpan ini super mudah. Jika matlamat di tangan adalah semata-mata sekarang untuk melaksanakan dengan Alana, apa yang dipanggil mengatakan blok, di sini bagaimana ia akan bekerja. Saya have-- mari kita memanggilnya hujah atau parameter, ia benar-benar hanya kertas kosong. Dan ia putih untuk jenis menjadi mengingatkan kotak putih ke mana anda boleh menulis perkataan. Sementara itu saya akan pergi di sini. Saya akan pergi ke depan dan menulis H-E-L-L-O koma dunia. Dan sekarang saya, yang berkata pengaturcara, tidak benar-benar tahu bagaimana untuk mengatakan sesuatu. Saya boleh datang dengan kata-kata, tetapi saya tidak semestinya tahu bagaimana untuk menyatakan diri saya secara lisan atau pada skrin. Dan apa yang saya akan lakukan adalah mengambil sekeping ini fungsi, yang input-- atau hujah, seperti yang kita akan memanggilnya, Saya telah menulis di atas sekeping ini paper-- dan saya akan menggunakan khidmat itu. Dan sesungguhnya itulah peranan yang fungsi dalam bahasa pengaturcaraan boleh bermain. Katakan sesuatu seperti yang blok boleh disalurkan kepada seseorang yang benar-benar tahu apa yang dia atau dia sedang bercakap tentang. Jadi, jika anda akan melangkah di sini untuk seketika, Saya akan lulus input ini untuk Alana, dan meminta anda mengatakan input ini. Alana: Hello, dunia. DAVID MALAN: Itu sahaja. Sehingga ada fungsi. Sekarang kita boleh mengambil ia sedikit lebih, kita boleh mengambil langkah ke hadapan di sini. Kerana yang jelas underwhelming. Jadi mari kita kini menukar ini kepada sesuatu yang lebih canggih. Jadi ini sudah tentu adalah versi C kami. Jadi sekarang jika anda mahu mengambil yang satu-satunya, bahawa nama tag off, dan mari kita anda memakai nama baru. Tetapi pada asasnya anda memainkan peranan yang sama, ia hanya kebetulan printf dipanggil sekarang. Cerita ini adalah, sudah tentu, akan adalah-- mungkin seperti underwhelming-- adalah akan menjadi berikut. Anda kini fungsi printf itu. Saya pemanggil, atau programmer, yang mahu untuk berdiri di atas bahu orang pada masa lalu seperti anda, yang sudah digambarkan bagaimana untuk benar-benar menulis sesuatu ke bawah. Dan kali ini, dan bukannya mengatakan ia mari sebenarnya menggunakan skrin kami di sini. Jadi jika anda ingin melangkah di sini, saya akan untuk lulus lagi ini sebagai input kepada rakan printf saya. Jika anda boleh pergi ke depan dan mencetak yang pada skrin, hanya dengan melukis dengan anda jari pada skrin hitam. Cemerlang. Baiklah, jadi banyak tergantung untuk bagaimana yang akan bermain keluar. Jadi sekarang mari kita perkara sehingga satu takuk akhir, jika kita boleh, seperti berikut. Jadi ini adalah satu program C seperti yang kita katakan masa lalu. Dan ini hanya melakukan apa yang anda lakukan, ia mencetak keluar ke skrin, hello, dunia. Walaupun terdapat jelas banyak barangan mengganggu di sana. Tetapi mari kita mengambil perkara sehingga takuk dan memperkenalkan versi ini, yang ingat adalah versi ketiga yang kita berakhir dengan masa lalu. Dan kini terdapat dengan jelas dua kegunaan printf. Ada 2 panggilan ke Alana dalam kes ini untuk printf, tetapi terdapat juga panggilan ke fungsi lain. Apakah fungsi yang jelas? Getstring. Bolehkah kita mendapatkan satu sukarelawan lebih? OK, mari naik. Apa nama anda? JAVIER: Javier. DAVID MALAN: Javier, sehingga datang. Jadi peranan Javier adalah pada ini sekeping kertas. Yang saya akan memanggil secara umum s. Sekarang ini adalah berubah-ubah, itu jenis tali, sebagai tersirat oleh garis kedua di tengah-tengah di sana. Dan saya ingin anda untuk pergi mendapatkan saya rentetan. Khususnya kepala ke orkestra seksyen dan mendapatkan saya nama seseorang, dan kembali dengan pembolehubah yang mengandungi nilai itu. Ia boleh menjadi sesiapa sahaja yang anda mahu. Di sini kita pergi. Baiklah, Javier adalah menulis nama. Baiklah. Kita boleh semua mungkin meneka bagaimana ini akan memainkan keluar. Kami mungkin sedang belaboring titik apa fungsi adalah lakukan, tetapi namun terima kasih banyak. Jadi Javier telah kembali rentetan ini di sini, yang, tidak boleh nampak, Jonathan adalah tali bahawa kami telah mendapat. Jadi sekarang apa yang saya benar-benar akan untuk menyediakan kepada Alana walaupun adalah sesuatu yang sedikit berbeza. Kerana dalam versi ini yang program, pertama ada menyatakan nama anda. Jadi hujah yang pertama Saya perlu menyediakan Alana dengan akan menjadi harfiah menyatakan nama anda. Baiklah, jadi semudah itu Saya akan menyerahkan ini kepada anda. Dan seperti yang saya menulis yang hujah yang akan datang, jika anda mahu pergi ke depan dan menulis ini di papan, mari kita pergi ke depan dan melakukan contoh terakhir di sini untuk membuat membersihkan apa yang akhirnya mendapat berlaku. Ya, nyatakan nama, menulisnya ke atas jika anda tidak keberatan, hanya supaya kita mempunyai ruang untuk satu baris kedua. Oleh kerana perkara terakhir yang saya akan kini menyediakan anda dengan tidak satu, tetapi dua keping kertas. Baiklah. H-E-L-L-O koma dan kemudian garis kosong. Jadi apa yang saya kira-kira untuk menyerahkan Alana kini adalah sesuatu yang sedikit berbeza. Bukan sahaja dia mendapat ini, di mana mengisi kosong mewakili yang percent-- bagaimana pemegang tempat kita telah menggunakan? Yeah, jadi peratus s. Sementara itu saya akan lulus beliau dalam hujah yang kedua, yang adalah tepat apa Javier diambil dari Jonathan. Jadi biarlah saya memberikan anda kedua-dua. Jika anda ingin, pergi ke depan dan cetak yang berkuat kuasa. Apa yang akhirnya berlaku sekarang ialah Alana lagi memainkan peranan printf. Javier bermain peranan GetString. Jadi yang akan menjadi cenderahati anda. Dan akhirnya apa yang berlaku, walaupun ini yep hello-- pergi ke depan dan koma. Alana: Adakah saya menerima ini atau tidak? DAVID MALAN: Ya, anda menerima kedua-duanya sekaligus. Jadi idea adalah bahawa anda kini boleh flip halaman untuk mengendalikan kedua daripada kedua-dua input. Jadi ini adalah hanya untuk tukul rumah menunjukkan bahawa manakala Alana dilaksanakan Garis hijau ini di sini, dan kemudian Javier melakukan ini satu untuk kita dan kembali kepada saya sesuatu kami akan memanggil s, tetapi ia adalah benar-benar hanya itu sehelai kertas sendiri. Dan kini Alana telah dilakukan selaras ketiga ini. Dan walaupun semua ini kelihatan jadi sangat samar mungkin pada pandangan pertama, ia benar-benar adalah semudah itu. Pemergian input di sekeliling, mendapat output, sama ada secara fizikal diserahkan kembali sesuatu, atau mengalami kesan sampingan seperti ini. Sesuatu visual ditulis pada skrin. Jadi mari kita pergi ke depan dan terima kasih Alana dan Javier, yang turun di sini, untuk menyertai kami di sini. [Tepuk tangan] Jadi sekarang mari kita mengambil mudah betapa terus-terang semua yang mungkin. Dan mari kita meneruskan untuk benar-benar melakukan sesuatu dalam kod sebenar. Jadi di skrin di sini adalah tangkapan skrin daripada perkakas CS50 kononnya. Dan jika anda terpaksa di, sebagai 02:00 pada petang Rabu, menjelaskan kepada beberapa rakan apa perkakas CS50 adalah, bagaimana anda menentukan dalam ayat? Mana-mana satu hukuman? Yeah? PELAJAR: Ia seperti program yang membuat komputer semua orang berjalan dengan sistem yang sama. DAVID MALAN: Baik! Ia adalah satu program yang membolehkan semua orang komputer berjalan dengan sistem yang sama. Ia semacam anda sendiri salinan operasi yang sistem yang berlaku kepada dipanggil Ubuntu Linux. Dan ia berjalan dengan berkesan di dalam tetingkap pada Mac anda sendiri atau PC, supaya dengan cara ini keluar dari pintu pagar pada minggu 1, di sini semua orang dalam kelas mempunyai akses kepada peralatan yang sama, konfigurasi yang sama, dan tidak ada keluk pembelajaran khusus untuk Mac atau PC khususnya. Sekarang kita dibuka, bahagian dalam CS50 perkakas pada hari Isnin, program ini di sini. Ia berlaku dipanggil gedit. Tetapi itu benar-benar hanya editor grafik. Ia sesuatu seperti Notepad atau Teks Edit pada Windows atau Mac OS masing-masing. Dan saya mencadangkan bahawa terdapat benar-benar tiga bahagian penting untuk skrin ini. Bahagian atas adalah di mana anda akan menulis kod anda. Dan itulah di mana kita menghabiskan banyak kami tiga contoh dalam kuliah semalam. Bahagian bawah kita dipanggil apa, tetingkap hitam ini, ya? PELAJAR: Pengkompil? DAVID MALAN: Pengkompil kami diakses melalui tingkap itu. Tetapi yang lebih umum. Ya, ia hanya tetingkap terminal. Ini adalah istilah tua yang hanya menerangkan dasarnya yang berkelip segera, yang tahun lalu digunakan untuk berada di salah satu monitor CRT gaya besar. Tetapi pada masa kini ia semacam maya dalam perisian. Dan tingkap terminal mari kita menaip arahan. Ia semacam versi dipermudahkan antara muka pengguna atau UI. Ia bukan grafik antara muka pengguna atau GUI, ia adalah satu antara muka berasaskan teks atau antara muka baris arahan. Dan sesungguhnya itu di mana akhirnya Saya dapat menulis beberapa kod. Apabila saya telah menulis beberapa kod walaupun, ingat bahawa saya menggunakan arahan ini. Dan kerana nama jenis mencadangkan, ini membenarkan saya untuk membuat program dipanggil Hello. Tetapi apa yang ia benar-benar buat? Baik make mengambil saya input, kod sumber saya, dan menukarkannya kepada apa yang akhirnya? Kod objek. Dan kod objek hanya mewah yang cara untuk mengatakan sifar dan orang-orang. Dan kemudian sekali saya mahu untuk menjalankan kod objek, sekali saya mahu lulus sebagai input yang sifar dan orang-orang ke dalam komputer saya otak, CPU yang dipanggil atau unit pemprosesan pusat, Saya terpaksa menjalankan program. Tetapi ia tidak cukup mudah pada hari Isnin sebagai hanya klik dua kali ganda beberapa ikon. Apa bukannya adakah saya perlu lakukan untuk menjalankan program yang? Apakah yang perintah kedua? Saya mendengar garis condong sedikit? Ya, ya? PELAJAR: Dot mengurangkan dan nama program. DAVID MALAN: Tepat sekali. Dot mengurangkan dan nama program. Sekarang apa yang ini? Nah dot hanya cara yang sukar difahami mengatakan dalam direktori semasa. Apa folder anda berada di dalam adalah dirujuk sebagai, diwakili sebagai titik. Slash adalah hanya apa yang anda lihat dalam Mac OS dan Windows selama bertahun-tahun, ia adalah pemisah antara direktori atau folder dan seluruh beberapa nama. Dalam Windows ia berlaku pergi ke belakang, dalam Linux dan Mac OS ia berlaku untuk berjalan lurus. Tetapi ia hanya pemisah, jadi ia hanya terperinci sintaksis tidak menarik. Bahagian berair sememangnya nama program ini, Hello. Dan itulah yang membuat dicipta untuk kita. Ia outputted fail yang bagi kami. Tapi bagaimana kita sampai ke tahap itu? Sekarang mari kita meminta soalan, apa yang benar-benar berlaku di sini, sekurang-kurangnya dengan mengambil kira beberapa sintaks ini? Jadi dalam ayat satu atau lebih, bagaimana kita menerangkan baris ini pertama itu diserlahkan dalam hijau? Apa yang baris pertama melakukan, berkenaan dengan program saya? Yeah? PELAJAR: [didengar]. DAVID MALAN: Katakanlah lagi? PELAJAR: Termasuk dan memuat turun fungsi yang lalu [didengar]. DAVID MALAN: Baik. Termasuk, saya tidak akan berkata memuat turun, tetapi katakanlah termasuk fungsi bahawa orang-orang telah menulis pada masa lalu. Dan fungsi-fungsi itu dilaksanakan di suatu tempat di komputer saya. Seseorang menulis fail tahun yang lalu, dan fail adalah suatu tempat bahagian dalam CS50 perkakas, atau pada cakera keras saya amnya. Dan garis ini pada dasarnya berkata, pergi mencari fail, saya standard / O dot h, dan salinan dan tampal kandungannya di sini di bahagian atas fail saya supaya saya tidak perlu melakukannya secara manual sendiri. Dan di antara kepingan juiciest bahagian dalam fail kita mendakwa adalah apa fungsi? Apa fungsi yang kita katakan telah diisytiharkan atau dinyatakan dalam standard saya / O dot h kemungkinan besar? Printf, bukan? Kami tidak menulis printf pada Monday, ia hanya wujud. Sama seperti Alana hanya datang di atas pentas dan dia hanya wujud dan tahu bagaimana untuk menarik sesuatu pada skrin, jadi tidak printf wujud selama bertahun-tahun. Dan hal ini ialah bagaimana kita mengaksesnya. Sekarang jika kita bergerak di sini, utama ialah kita serupa dikatakan sekeping teka-teki dipanggil apabila bendera hijau diklik dalam dunia Scratch. Ia semacam adil dari nama lalai bahawa manusia memutuskan akan mewakili lalai pintu masuk ke program. Yang sebahagian kod pengaturcaraan yang mendapat dilaksanakan pertama. Sementara ini pendakap kerinting adalah jenis seperti bentuk yang melengkung daripada banyak potongan-potongan daging calar kuning. Mereka jenis mengurung keseluruhan sekumpulan arahan bersama-sama. Jadi ia hanya jenis mengikat bersama-sama beberapa fungsi yang berkaitan. printf sudah tentu adalah fungsi yang mencetak skrin, seperti yang kita hanya melakukan. Bagaimana pula kurungan ini? Bagaimana anda define-- walaupun anda telah tidak pernah diprogramkan sebelum ini, tetapi hanya berdasarkan sekarang yang semakin meningkat mudah-mudahan gerak hati, apa yang adalah seperti kurungan lakukan untuk kita di sini? Atau apa yang mereka sekitar? Yeah? PELAJAR: Mereka mengatakan apa anda akan mencetak dengan printf. DAVID MALAN: Ya, mereka mengatakan apa anda akan mencetak dengan printf. Atau lebih umum, mereka adalah sekitar input kepada majlis itu. Jadi, anda hampir boleh berfikir dari orang-orang kurungan sebagai seperti logam klip pada papan klip ini. Ia adalah apa yang memegang, ia adalah apa yang akan digunakan untuk menyediakan hujah-hujah ke dalam majlis itu, yang pada kes ini dipanggil printf. Jadi secara umum hampir kali kita memanggil fungsi, kita akan melihat sepasang kurungan. Mungkin dengan sesuatu yang di dalamnya, seperti sekarang, mungkin tiada apa di dalamnya. Tetapi itu di mana anda akan meletakkan input atau yang dikenali sebagai hujah ke fungsi. Berikut adalah satu hujah tersebut. Saya menekankan semua antara petikan-petikan, kerana ternyata dalam bahasa ini dipanggil C, apabila anda mahu untuk mewakili string-- iaitu perkataan atau frasa yang atau paragraph-- yang anda perlu mengelilinginya dengan sebut harga berganda. Sebut harga tidak tunggal, sebut harga berganda. Dan itulah apa yang saya lakukan di sini. Sementara itu ada funky simbol ke arah akhir di sana. Backslash n. Apa yang kita katakan yang diwakili? Yeah? PELAJAR: Satu barisan baru. DAVID MALAN: Talian Baru. Betul, anda tidak umumnya tekan Enter apabila anda mahu rancangan itu meludah keluar barisan baru. Sebaliknya anda beritahu secara jelas dengan sekeping diakui batin ini sintaksis, backslash n, yang anda mahu barisan baru untuk pergi ke sana. Akhirnya koma bernoktah. Kami tidak benar-benar bercakap terlalu banyak tentang perkara ini, dan setakat ini akan menjadi penyebab kesengsaraan beberapa kewujudan anda untuk masalah pertama ditetapkan, apabila anda hanya gagal untuk menyedari anda terlupa sesuatu yang bodoh sebagai koma bernoktah. Dan umumnya meletakkannya akan menyelesaikan masalah itu. Tetapi apa yang ia lakukan bagi kami, kau kata? PELAJAR: [didengar]. DAVID MALAN: Maaf? PELAJAR: [didengar]. DAVID MALAN: Kemasan kenyataan. Ia jenis seperti tempoh yang di akhir satu ayat Bahasa Inggeris, sedangkan dalam bahasa ini C ia berakhir satu kenyataan. Arahan pengaturcaraan kod yang anda hanya mahu untuk mengatakan, Saya lakukan dengan ini. Sekarang perhatikan itulah satu-satunya di sini. Oleh itu, anda tidak mahu untuk mendapatkan dalam tabiat meletakkan koma bertitik selepas setiap kurungan tertutup. Sebagai contoh ada tiada sebelah tidak sah, dan kita akan kembali pada masa akan datang dengan apa cara tidak sah. Tetapi dalam kes ini printf anda adalah fungsi, atau kenyataan yang digunakan, dan dengan itu kita ingin mempunyai yang perhentian pada akhir sangat itu. Dan saya sengaja memilih pada C. Dan terus terang banyak bahasa seperti C, C ++, Java, JavaScript, dan apa-apa bilangan bahasa lain mempunyai banyak ini jenis maklumat sintaksis. Yang pasti jika anda baru kepada pengaturcaraan benar boleh perjalanan kamu. Dan anda akan, menandakan saya kata-kata, sebahagian dari kamu akan mempunyai pengalaman ini dalam waktu pejabat atau lewat malam bekerja di beberapa p-set, di mana program sialan anda hanya tidak menyusun, ia tidak berjalan, anda perlu tidak tahu apa yang salah, ia seolah-olah benar-benar secara logik yang betul untuk anda. Dan ia adalah kerana anda terlupa sesuatu seperti memukul dengan koma bertitik pada akhir beberapa baris. Tetapi ini adalah jenis perkara anda akan segera belajar untuk melihat. Dan sesungguhnya ini adalah perkara-perkara bahawa CA dan TF mempunyai telah semacam dilatih untuk melihat lebih cepat daripada anda. Dan jadi ini adalah hanya untuk mengatakan, kerana anda menyelam ke dalam masalah set 1 terutamanya, tidak berasa kecewa dengan barangan ini. Sebaik sahaja anda jenis acclimate kepada dunia, anda mula melihat perkara-perkara yang anda mungkin tidak lihat pada pandangan pertama minggu pertama ini. Jadi kod sumber adalah sesuatu seperti itu. Kami mahu lulus ia ke dalam pengumpul kononnya. Dan pengkompil bahawa kami berkata menyediakan output dikenali sebagai kod objek, yang yang dipanggil sifar dan orang-orang. Tetapi dari sana, apa yang memberikan kami? Baik ia memberikan kita pola-pola ini. Dan sekali lagi komputer anda, Intel anda di dalam, memahami pola-pola ini sifar dan orang-orang. Dan kadang-kadang corak merupakan nombor perpuluhan sebenar seperti yang kita lihat minggu lepas, kadang-kadang ia mewakili surat seperti yang kita lihat minggu lepas, kadang-kadang ia merupakan arahan, seperti mencetak sesuatu untuk skrin. Jadi printf untuk instance-- tetapi sebaliknya, biarlah saya putar balik. Kami telah mengambil untuk diberikan bahawa orang-orang sifar dan orang-orang yang yang dihasilkan oleh arahan ini make. Tetapi make tidak pengkompil. Buat bukan perkara yang di tengah-tengah yang yang menghasilkan sifar dan orang-orang. Sebaliknya hanya membuat yang sangat mudah dinamakan program yang tujuan dalam hidup pada dasarnya untuk memikirkan bagaimana untuk menyusun program anda. Dan kita menggunakannya dalam minggu pertama kerana ia hanya menyelamatkan kita banyak masalah. Tetapi apa yang membuat adalah benar-benar lakukan apabila anda menyusun hello, , seperti yang kita kata masa lalu, ia mencari pada cakera keras anda atau dalam folder semasa, untuk Fail dipanggil apa, nampaknya? Hello.c, bukan? Itulah jenis adil konvensyen. Ia sewenang-wenangnya, tetapi itulah cara perkara-perkara yang. Membuat, jika anda hanya nyatakan nama daripada program yang tidak lagi wujud, ia akan mencari kod sumber dalam fail, secara lalai bermakna hello.c. Dan jika ia mendapati ia, hebat. Ia akan menukar sumber yang kod ke dalam kod objek untuk anda. Tetapi setiap kali saya tekan Enter selepas berjalan membuat hello, adakah anda ingat melihat masa lalu yang agak panjang dan urutan samar surat putih dan lain-lain watak-watak pada skrin? Baik itu adalah perintah sebenar, pengkompil sebenar, yang berjalan. Jadi pengkompil sebenar kita akan menggunakan kebanyakan semester adalah sesuatu yang dipanggil dilafaz. Sebahagian daripada anda mungkin telah menggunakan Visual Studio sebelum, atau GCC, atau apa-apa bilangan pengumpul lain. Kami akan menggunakan dilafaz. Dan dilafaz membolehkan kita untuk benar-benar menukar bahawa kod sumber kepada kod objek. Apakah ini sebenarnya bermakna dalam amalan? Nah biar saya pergi ke salah satu daripada folder saya dari masa lalu. Bahagian dalam perkakas CS50 ini. Dan biarlah saya pergi ke hadapan dan mencipta ini Fail sama, termasuk standard I / O dot h. Tidak sah utama Int. Dan kita akan kembali pada masa akan datang sebagai apa int cara dan apa cara yang tidak sah. Tetapi untuk sekarang mari kita buat hello garis sendeng terbalik dunia n, hanya suka kita lakukan di atas kapal. Biar saya simpan fail ini dipanggil hello.c. Dan kini jika saya ingin menyusun ini Saya could-- biarlah saya zum jangka dalam- membuat hello masuk. Dan ini sekali lagi bahawa garis sangat samar. Tetapi sekarang sekurang-kurangnya satu perkataan mungkin melompat keluar pada anda. Dilafaz ialah garis yang kita lihat sebelum ini. Sekarang ada banyak barangan lain terus-terang bahawa kita akan melambai tangan kita pada hari ini. Tetapi ada beberapa subset, aksara yang beberapa di sini yang mempunyai kepentingan. Tetapi saya akan pergi ke depan dan melakukan ini. Saya akan run pertama hello, hanya untuk membuktikan ini bekerja kerana ia adalah hari ini. Tetapi sekarang saya akan memadam program ini. Dan sama seperti kami ini nama pendek masa lalu, perintah bagi menghapuskan sesuatu yang rm, keluarkan, masuk. Anda akan mendapatkan beberapa soalan yang agak samar. Sukar untuk mempercayai bahawa anda boleh membuat walaupun soalan ini sukar untuk difahami. Tetapi mengeluarkan hello fail biasa hanya cara yang anda mahu memadam hello. Dan saya boleh pergi ke depan dan menaip y bagi ya, Masukkan, dan kini ia pergi. Apakah ini bermakna sekarang, jika saya mengosongkan skrin saya, adalah bahawa bukan melakukan membuat hello-- anda tahu apa, saya mendapat yang baik pada ini. Saya akan menjalankan pengkompil diri saya. Saya tidak memerlukan program untuk memikirkan apa fail saya dipanggil. Saya menulis hello.c, saya tahu apa yang ia dipanggil, Saya dengan jelas mampu menaip itu. Jadi saya akan pergi ke depan dan jangan dilafaz hello.c Enter. Seolah-olah bekerja. Dan tidak ada pengeluaran tambahan, kerana dilafaz adalah pengkompil. Ia apa yang menukar kod sumber untuk sifar dan orang-orang. Jadi jika saya kini melakukan dot mengurangkan hello Enter, hm. Mesej ralat Baru hari ini. Jadi bash hanya nama berkelip segera yang kita menggunakan. Itulah batas kasar, tetapi buat masa itu sahaja iaitu, ia segera berkelip. Dan sebab itulah ia menjerit pada kami. Tiada fail atau direktori tersebut adalah sedikit lebih mudah. Tetapi sesungguhnya aku dibuat bahawa kod objek. Tetapi tangkapan adalah, bahawa saya menaip arahan untuk menyenaraikan kandungan ini direktori, iaitu apa? ls untuk senarai. Ada sekumpulan barangan di sini, ada yang datang dengan perkakas, seperti folder Desktop saya, Muat turun folder, folder Dropbox, dan semua barangan itu. Tetapi apa yang menarik adalah hello.c, yang Saya telah mencipta masa lalu dengan gedit. Dan apa yang paling pelik mencari nama di sini, mungkin kita tidak melihat masa lalu di semua? a.out, bukan? Jadi kembali pada hari itu, ia hanya memutuskan bahawa apabila anda menyusun program buat kali pertama, dan anda tidak menentukan nama fail yang ada, mari kita memanggilnya. Dan a.out hanya bermakna ini adalah pengeluaran pengkompil. Jadi ia adalah nama yang dahsyat untuk program. Tetapi dengan logik itu, untuk mengurangkan dot direktori semasa, mengurangkan a.out, bermakna perlu ada sebenarnya saya hello program dunia. Sekarang sedikit yang memanaskan badan senaman juga. Jika saya ingin menukar nama ini fail, ternyata bahawa anda memindahkan fail dari satu nama yang lain. A.out Jadi mv, dan kemudian saya boleh memanggil ia hello Enter. Jadi ini adalah arahan Linux. DOS mempunyai ini tahun yang lalu, Windows mempunyai tetingkap terminal sejenis yang kelihatan seperti ini, Linux dan Mac komputer mempunyai segera ini berkelip. Walaupun kebanyakan kita mungkin jarang, jika pernah, menggunakannya. Tetapi apa yang saya lakukan adalah menjalankan program, yang namanya adalah mv, dan saya telah disediakan dengan dua hujah, jadi untuk bercakap. Dua input. a.out adalah nama yang asal. Hello adalah nama yang baru. Jadi jika saya kini melakukan slash dot hello, Masukkan, yang wujud. Dan jika saya lakukan dot slash a.out, apa yang anda mengharapkan saya perlu melihat? Bash, tiada fail atau direktori tersebut. Kerana saya hanya menamakannya. Jadi ini mengambil sedikit untuk membiasakan diri. Tetapi masalah yang ditetapkan 1 spesifikasi akan benar-benar memegang tangan anda melalui beberapa minutae ini. Kerana ini adalah lengkap gangguan intelektual dari lebih menarik idea di tangan, yang sebenarnya mewujudkan sesuatu daripada kod. Tetapi mari kita buat satu pengubahsuaian sekarang untuk program ini. Ingat bahawa kali terakhir saya melakukan sesuatu seperti ini, printf menyatakan nama anda. Dan sesungguhnya kami hanya melakukan ini pada skrin besar di sana. Dan kemudian saya mendapat rentetan s Tanda kurung GetString terbuka, Tanda kurung rapat. Dan Tanda kurung hanya trengkas notasi untuk kurungan. Jadi tidak GetString mengambil apa-apa hujah? Tiada input tidak, tetapi ia memerlukan kurungan, kerana itulah yang demarcates panggilan fungsi. Jadi saya akan pergi ke depan dan cuba untuk menjalankan pengkompil pada program ini sekarang. Dilafaz hello.c, kerana saya tidak berubah namanya sekarang. Dan saya mendapat sekumpulan kesilapan. Mari kita zum di sini. Jika saya tatal ke atas lagi, seperti saya katakan masa lalu, untuk, kesilapan yang pertama sama yang saya ada masa lepas. Popular 6 hello.c saya mempunyai rentetan pengecam tidak diisytiharkan, adakah saya maksudkan standard dalam? Saya tidak. Kerana apa kesilapan aku dibuat dalam hal ini program, jika anda ingat dari masa lalu? Ya, kita memerlukan yang dipanggil roda latihan bahawa kita hanya akan digunakan untuk beberapa minggu. Tetapi saya perlu menentukan bahawa juga, di suatu tempat di dalam perkakas, ialah satu fail yang kita menulis hanya beberapa tahun yang lalu. Bahagian dalam fungsi-fungsi yang seperti nampaknya GetString. Jadi sekarang jika saya kembali ke bawah di sini, zum masuk, dan semula menjalankan dilafaz hello.c. Damn, kesilapan lain. Tetapi kita tidak pernah melihat satu sebelum ini. Yang ini lebih sedikit esoterik untuk memikirkan. Tetapi ini adalah sengaja pada skrin, kerana kita mahu memberitahu cerita ini. Apabila anda menyusun hello.c, sebagaimana gambar dari sebelum dicadangkan, anda hanya menukar yang kod sumber untuk sifar dan orang-orang. Sekarang kakitangan CS50 beberapa tahun yang lalu telah menulis CS50.h, dan fail yang sama, CS50.c. Dan kita, beberapa tahun yang lalu, disusun fail-fail ke dalam fail yang berlaku dipanggil CS50.o. Atau ia boleh dinamakan semula yang beberapa perkara yang berbeza. Tetapi itu cara yang mudah berfikir mengenainya. Oleh itu, kita disusun CS50 ini perpustakaan ke sifar dan orang-orang. Tetapi tidak ada tempat telah saya sebutkan yang saya mahu menggabungkan sifar saya dan orang-orang untuk dunia hello saya program dengan sifar dan orang-orang bahawa kakitangan CS50 dicipta beberapa tahun lalu ke dalam satu program yang lengkap. Apa yang saya telah dinyatakan oleh Allah hello.c dilafaz adalah menyusun hello.c. Saya tidak diberitahu dilafaz untuk pautan dalam sifar dan orang-orang bahawa kakitangan CS50 dicipta untuk anda sedikit masa lalu. Jadi ia satu fix mudah, melontarkan l untuk link, CS50. Dan kami sekali lagi akan melihat ini tidak lama lagi dan lagi. Tetapi notis kini tidak ada aduan. Jadi sekarang sekiranya saya slash dot hello, sekarang ia bekerja. Walaupun itu sedikit mengelirukan kerana saya hanya dicipta semula apa yang fail? a.out. Jadi biarlah saya putar balik hanya seketika. Program kita hanya disusun mempunyai tiga baris kod. Apabila saya berlari hello dunia, hello seketika lalu, saya tidak melihat menyatakan nama anda. Dan itu kerana saya berlari versi lama program ini. Tetapi jika saya memang berjalan dot slash a.out Masukkan, nyatakan nama, Rob, hello, dunia. Hm. Itulah jenis pepijat. Mungkin bermaksud mengatakan Rob, bukan? Jadi apa yang tetap di sini dalam kod. PELAJAR: [didengar]. DAVID MALAN: Tepat sekali. Jadi saya hanya perlu membuat yang tweak akhir supaya saya lulus dalam satu pemegang tempat, seperti mengisi tempat kosong, seperti yang kami lakukan sebentar tadi. Tetapi peratus s kini yang mengisi kosong. Jadi akhir sekali mari kita mendedahkan terkini terperinci supaya tidak ada sihir. Saya akan pergi ke depan dan menghilangkan hellow. Saya akan pergi ke depan dan menghilangkan a.out. Jadi sekarang saya tidak mempunyai program, hanya kod sumber saya. Dan saya akan menjalankan perintah lebih lama sedikit, dilafaz melontarkan o hello hello.c dash LCS50. Sekarang ini sudah mula semacam pergi dalam satu telinga dan keluar yang lain mungkin. Tetapi mengusik selain apa ini lakukan. Dentang adalah pengkompil, dash LCS50 sengaja pada akhir sangat melakukan apa yang dalam ayat? Pautan ke perpustakaan CS50 ini. Menangkap sifar dan orang-orang yang kakitangan yang dibuat dan crams mereka ke dalam program saya sendiri. Jadi soalan yang terakhir pada tangan adalah, apa yang dash o hello mungkin lakukan, walaupun anda tidak pernah dilihat sintaks ini? Keluarkan program itu tidak dinamakan a.out lalai. Sebaliknya ia dinamakan hello. Jadi sekarang tidak ada a.out. Tiada fail atau direktori tersebut, kerana saya jelas mengatakan panggilan program ini hello, supaya Saya kini boleh menaip nama seperti yang dan ia berkelakuan. Kini terus terang, kanak-kanak ialah tidak menarik untuk mempunyai ingat semua itu minutia sedikit, bukan? Jadi mari kita pergi ke depan dan menghilangkan hello lagi. Dan mari kita kini kembali ke dunia di yang mencukupi untuk mengatakan membuat hello. Tetapi itu sihir yang membuat lakukan untuk anda, itulah kebosanan yang ia melakukan untuk anda. Dan program dan masalah mendapatkan lebih kompleks, membuat benar-benar akan menjadi rakan anda. Oleh kerana tidak terlalu lama dari sekarang kita akan mempunyai program yang ditulis bukan dengan satu fail, tetapi beberapa fail, dan membuat akan mengautomasikan proses menyusun semua itu untuk kita bersama-sama. Jadi sekarang mencetak. printf adalah di dalam fail ini, standard I / O dot h, yang kita lihat sebelum ini, tetapi terdapat lebih kepada printf daripada itu. Ada garis sendeng terbalik n, tetapi ada juga sekumpulan urutan melarikan diri lain. Dan urutan melarikan diri hanya cara mewah untuk mengatakan sesuatu yang bermula dengan garis sendeng terbalik yang, tidak tanda palang ke hadapan, garis sendeng terbalik yang, dan membuat sedikit perkara yang khas. Dan kita tidak akan menyentuh mengenai kebanyakan, tetapi mengapa ada garis sendeng terbalik petikan berganda, yang anda fikir? Kenapa ada urutan ini pelik aksara, garis sendeng terbalik petikan berganda, mengapa yang mungkin berguna? PELAJAR: [didengar]. DAVID MALAN: Tepat sekali, bukan? Fikirkan kembali ke program dunia hello kami yang kita lihat agak beberapa kali sekarang, setiap kali kita lihat bahawa dunia hello program kami mempunyai sebut harga dua kali ganda dalam daripadanya ialah hello koma garis sendeng terbalik dunia n. Tetapi berfikir kepada diri sendiri, bagaimana jika anda benar-benar mahu mencetak tanda petikan? Naluri pertama anda mungkin, saya tidak tahu mengapa saya mungkin mahu do-- sini, kita boleh menjadi pasif sedikit agresif, hello rakan. Kita mungkin mahu melakukan sesuatu seperti itu. Tetapi mengapa ini kini bermasalah? Mengabaikan sebut harga kerinting mengetepikan bahawa tama dibuat untuk kita secara automatik. Mengapa ini bermasalah? Tepat sekali. Kerana kita mempunyai seperti 4 tanda petikan. Juga yang pertama mungkin pergi dengan yang kedua, dan mungkin yang keempat pergi dengan yang ketiga, atau, saya maksudkan saya tidak pasti, mahupun komputer akan menjadi. Komputer lagi, penyusun sekali lagi, agak bodoh. Mereka hanya akan melakukan apa yang anda memberitahu mereka lakukan. Dan jika anda tidak jelas mereka mungkin akan membuang ralat. Jika anda tidak jelas tentang bagaimana untuk membuat mentega kacang dan jeli sandwic perkara-perkara pelik mungkin tiba. Ia adalah idea yang sama. Sekarang cukuplah untuk mengatakan ada beberapa urutan melarikan diri lain, tetapi kami akan datang kepada mereka tidak lama lagi. Pada dasarnya melarikan diri ini urutan mewakili sesuatu bahawa anda mungkin tidak dapat terlalu mudah di papan kekunci, tanpa mengelirukan komputer. Sekarang sementara itu kita perlu ruang letak dalam printf. Peratus d, yang juga boleh ditulis dalam hampir semua kes sebagai peratus i, adalah pemegang tempat untuk jenis data apa? Apakah jenis nilai? Beberapa perpuluhan. Jadi sebenarnya kita akan mula menggunakan peratus i kerana ia sedikit lebih mudah, seperti integer. Peratus i. Integer yang berlaku kepada perpuluhan. Peratus s kita sudah berkata adalah pemegang tempat bagi rentetan. Yang hanya satu perkataan, frasa, perenggan, esei, apa sahaja. Ia adalah satu urutan watak-watak beberapa panjang. Dan kita akan melihat tidak lama beberapa orang lain ini. Tetapi peratus c adalah untuk watak tunggal. Peratus f adalah untuk terapung beberapa ketika, seperti nombor nyata yang mempunyai titik perpuluhan di dalamnya, yang sudah tentu tidak integer. Dan ada keseluruhannya sekumpulan orang lain juga. Sementara itu di C, dan dalam banyak bahasa, kita mempunyai jenis data yang berbeza. Jenis kaca mangkuk jika anda akan. Mangkuk Saya menggunakan masa lalu adalah untuk bola ping pong, tetapi kita juga boleh menyimpan berlainan nilai seperti aksara dan rentetan dan bilangan bulat di dalam bekas, seperti pembolehubah, dan C mempunyai ini. Char adalah jenis data, jenis pembolehubah, di mana anda boleh menyimpan watak. Float adalah sejenis pembolehubah dalam mana anda boleh menyimpan nombor nyata. Int adalah kursus untuk int satu. Dan bukan mustahil dinamakan yang panjang panjang adalah di mana anda boleh menyimpan pada dasarnya bilangan yang benar-benar panjang, walaupun dengan lebih digit maka biasa kedai int kekuatan. Tetapi kita akan kembali kepada yang lama lagi. Dalam CS50 dot h Sementara Fail pengepala lain yang kita lihat pasangan kali digunakan, ada dua jenis data lain yang tidak wujud dalam C biasanya. Satu tali, dan kita akan melihat dalam beberapa minggu apa yang tali benar-benar adalah di bawah hood. Dan seseorang itu bool. Dan bool adalah pembolehubah yang hanya boleh mengambil nilai-nilai tertentu. Dan hanya berdasarkan minggu lepas Penjelasan Awal, dan baru-baru C, apa yang anda akan rasa adalah dua nilai yang mungkin untuk beberapa bekas yang jenis bool? Ya dan tidak. Satu dan sifar. Benar atau palsu. Dan sesungguhnya ia terakhir yang cenderung menjadi konvensional dalam pengaturcaraan yang bahasa, berkata sesuatu seperti benar atau palsu. Sementara itu perpustakaan CS50 datang dengan sekumpulan fungsi bahawa kakitangan yang menulis untuk anda, selain hanya mendapat tali. Kami menulis dalam fungsi terlebih dahulu bahawa boleh mendapatkan integer dari pengguna, mendapatkan watak tunggal, mendapatkan apungan, yang hanya nombor dengan titik perpuluhan. Dapatkan yang panjang panjang, yang benar-benar nilai besar daripada pengguna. Oleh itu, kita hanya melihat ini dalam tindakan dalam bentuk GetString. Tetapi melalui fungsi-fungsi ini tidak lama lagi akan dapat untuk menulis program-program yang mendapatkan input daripada pengguna. Sementara itu menganggap ini program, dan mempertimbangkan bagaimana kita mungkin mula menambah kepadanya dengan membina baru. Satu lawatan badai cepat dan kemudian kita akan melihat di beberapa menulis beberapa program secara manual diri kita sendiri. Seterusnya jika kita mahu melaksanakan keadaan, ia tidak akan kelihatan seperti bagus sedikit teka-teki sekeping cantik. Ia akan kelihatan sedikit lebih sukar difahami. Tetapi ini adalah kanun struktur suatu keadaan di C. Perkataan ini jika, dua kurungan, bahagian dalam yang akan menjadi beberapa jenis ungkapan Boolean. Kini slash slash di tengah-tengah, ini adalah pada masa ini jenis seperti placeholder kod kod pseudo. Tetapi yang lebih baik, mana-mana baris kod dalam C yang bermula dengan slash slash adalah komen. Ia seperti nota melekit yang anda mungkin memakai satu esei, dicetak di atas kertas. Ia nota kepada diri sendiri. Ia tidak berfungsi kesan ke atas program tersebut. Ia semacam peringatan, ia sendiri dokumentasi tentang apa yang sedang berlaku. Jadi melakukan ini pada masa ini adalah jenis pemegang tempat yang untuk apa sahaja yang di dalam dari orang-orang pendakap kerinting akhirnya akan melakukan sesuatu. Sementara itu anda mempunyai dua garpu dalam jalan, jika lain membina seperti ini. Anda boleh jika, elseif, lain. Kini ia diperhatikan, terutamanya jika anda telah Googling sekitar talian untuk sumber daripada rasa ingin tahu, atau jika anda mengambil salah satu kursus yang buku-buku yang disyorkan di C, anda akan melihat bahawa manusia mempunyai banyak citarasa yang berbeza untuk bagaimana untuk menyatakan diri mereka dalam kod. Sesetengah orang suka untuk meletakkan pendakap kerinting seperti yang saya lakukan di sini. Sesetengah orang suka untuk meletakkan kerinting yang pendakap misalnya di sini. Sesetengah orang suka untuk meletakkan elses di sini dan kemudian ini di sini. Ada apa-apa bilangan cara untuk kod menulis, dan tiada seorang pun daripada mereka betul per se. Walaupun ada beberapa yang cukup salah. Tetapi ada no-- jika ini adalah akhirnya perdebatan sangat agama. Malah, salah satu yang paling menjengkelkan perkara tentang sains komputer ialah bagaimana keras ahli-ahli sains komputer boleh. Dan anda akan mendapati bahawa dari masa ke masa walaupun anda membangunkan pilihan peribadi bagaimana kod anda sepatutnya kelihatan. Bukan sahaja bertindak, bukan sahaja mencipta output, tetapi bagaimana ia harus melihat estetika. Jadi apa yang kita akan lakukan adalah membimbing anda bersama-sama jalan ke arah, buat masa ini sekurang-kurangnya, gaya CS50 standard yang sekurang-kurangnya menyimpan perkara-perkara yang seragam dan mudah dibaca. Tetapi yang lebih kepada orang-orang perbezaan tidak lama lagi. A ungkapan Boolean dalam C, jika anda mahu berkata jika keadaan ini adalah benar dan keadaan ini yang lain adalah benar, anda tidak menulis perkataan yang dan, seperti yang anda dalam bahasa Inggeris. Anda sebaliknya menggunakan Ampersand Ampersand, atas sebab-sebab kita akan kembali kepada. Jika anda ingin mengatakan atau anda menggunakan dua bar menegak, yang pada keyboard AS secara amnya di atas Enter seterusnya utama untuk garis sendeng terbalik itu. Dan ini hanya bermakna jika keadaan ini atau keadaan ini lain benar melakukan ini. Sementara itu ada ini perkara gila yang anda akan mempunyai kesempatan menggunakan sekali dalam seketika. Tetapi ia hanya alternatif cara untuk menyatakan diri anda. Ini, sekarang, mari kita menetapkan, ia hanya satu lagi cara 'funky' untuk menyatakan jika, elseif, elseif, elseif, elseif. Ia hanya diformat dari segi kes-kes, di mana anda benar-benar menghitung nilai-nilai yang anda mungkin mahu untuk memeriksa. Sementara itu gelung. Kami melihat perbandingan Goreskan dengan gelung. Dan saya akan melambai tangan saya di apa yang setiap perkara-perkara ini bermakna. Tetapi melihat bahawa gelung akan sangat sering bermula dengan kata kunci untuk. Atau ia akan bermula dengan manakala kata kunci. Atau ia akan bermula dengan kata kunci lakukan, dan berakhir dengan manakala kata kunci. Tetapi apa yang kita kira-kira untuk melihat adalah perkara yang lebih seperti ini. Di sini, secara amnya dalam C, bagaimana anda mungkin mengisytiharkan pembolehubah dan memberikan nilai. Dalam C ia tidak mencukupi, seperti dalam Scratch, anda hanya mengatakan memberi saya ubah dikenali sebagai sesuatu. Anda perlu memberitahu C, dan memberitahu pengkompil anda, lebih khusus, jenis nilai yang anda ingin dimasukkan ke dalam mangkuk kaca. Adakah integer? Jika ya, anda perlu harfiah mengatakan int dan kemudian nama pembolehubah, maka dengan koma bernoktah. Jika anda mahu dan bukannya tali dan dipanggil itu sahaja seperti yang saya lakukan kod saya di sini hari ini, anda akan berkata koma bertitik rentetan s. Jika anda hendak memberikan nilai yang anda boleh menggunakan tanda yang sama, atau dikenali sebagai Pengendali tugasan. Dan perhatikan bagaimana setiap ini baris kod mempunyai koma bernoktah di hujung itu. Tetapi terus terang ini hanya kelihatan sedikit hodoh. Mengapa saya tidak boleh berkata kepada komputer, memberi saya berubah dan memulakan ia kepada sifar. Iaitu, memberi saya satu mangkuk kaca kosong. Walaupun anda boleh. Dan supaya satu penghakiman yang akan memanggil anda perlu membuat stylistically dari masa ke masa adalah, adakah anda menulis kod anda seperti ini, atau adakah anda jenis bersihkannya dan menarik orang dengan menulis dua baris sebagai hanya satu. Dan ini akan dianggap umumnya cara yang lebih elegan menulis kod anda stylistically. Fungsi kami sudah tentu dilihat. Mereka akan mengambil format ini. Nama fungsi, beberapa kurungan, dan kemudian mungkin beberapa barangan dalam. Atau anda mungkin melihat penggunaan sebelah fungsi yang pelbagai menyebelah, seperti sesuatu seperti ini. Sekarang sebagai menyimpang, tidak jenaka ini sekarang masuk akal? [Ketawa] Ia tidak bermakna ia melucukan, tetapi ia tidak mungkin masuk akal yang lebih sedikit. Jadi sekarang mari kita pergi ke dalam Perkakas CS50 seketika. Dan biarlah saya membuka satu teaser di sini. Dan sesungguhnya salah satu sebab kerana memperkenalkan Katalog IKEA dan berkelip gambar iPhone sedikit yang lalu adalah untuk benar-benar mengikat dalam bersama-sama fakta yang hanya beberapa tahun yang lalu, pada tahun 2007, ini sekeping kod adalah dikeluarkan, yang salah satu pelaksanaan yang pertama sekeping perisian yang melakukan apa yang dipanggil jailbreaking. Bagi mereka yang tidak dikenali, jailbreaking sesuatu seperti telefon atau iPhone ertinya dasarnya memikirkan bagaimana untuk melakukan perkara-perkara dengan itu bahawa syarikat itu yang membuat ia tidak berniat. Seperti anda ingin memasang tertentu perisian yang tidak di kedai app, jailbreaking telefon anda yang anda melakukan perkara-perkara seperti itu dan banyak lagi. Tetapi apa yang menyeronokkan dalam 2007-- dan ada menjadi berpuluh-puluh versi yang berbeza perkara-perkara ini sejak itu, dalam segala macam languages-- ialah program ini di sini, yang dipanggil iUnlock, sebenarnya ditulis dalam C. Oleh itu, saya ditarik ke atas kod sumber untuk ini, hanya untuk jenis menunjukkan beberapa persamaan dengan membina kita telah membincangkan setakat ini. Kini ada cara yang lebih rumit di sini daripada yang kita lihat sudah di dalam kelas. Biar saya tatal ke atas hanya sedikit di sini. Tetapi notis these-- juga kita melihat beberapa things-- tetapi perhatikan ayat-ayat ini di sini, termasuk standard I / O dot h. Dan garis all-- 24, please-- notis saya standard / O dot h dan sejumlah besar lain fail yang nampaknya orang lain telah menulis. Dan jika kita skrol ke bawah ini, sedikit sewenang-wenangnya, notis Saya tidak tahu bagaimana untuk menulis semua ini diri saya semestinya lagi, tetapi jika ada. Jadi nampaknya ini mempunyai cawangan. Dan jika saya tatal ke bawah sedikit lagi terdapat satu lagi jika. Jika saya tatal ke atas, saya fikir di talian 100 untuk saya melihat. Jadi saya tidak cukup yakin bagaimana ini berfungsi lagi, tetapi ini adalah satu untuk gelung yang berlaku kepada biarlah saya iterate beberapa beberapa kali. Dan jika saya tatal semua perjalanan ke bahagian bawah Saya melihat bahawa ada berfungsi turun di sini dipanggil utama, dan beberapa kredit tambahan untuk keseronokan pembacaan anda. Jadi ini adalah hanya untuk say-- dan kami akan meletakkan talian ini merupakan sumber perjalanan ini kod today-- bahawa walaupun sesetengah alat-alat yang kita ambil untuk diberikan, pada akhir hari anda masih menggunakan konstruk asas yang kita kena telah memperkenalkan sudah setakat ini. Yang cukup satu itu. Baiklah, jadi sekarang mari kita sebenarnya membina sesuatu. Mari kita pergi di luar sesuatu seperti hello.c, dan membuka ini, mari kita menulis program ini di sini. Saya akan pergi ke depan dan menulis program yang dikenali sebagai adder.c, tujuan dalam kehidupan yang akan menjadi seperti kalkulator super mudah pertama saya yang hanya menambah beberapa nombor. Bukan kerana itu adalah satu keras masalah, tetapi kerana ia membolehkan saya kini mengikat bersama-sama beberapa perkara. Jadi saya akan pergi ke depan dan termasuk Saya standard / O h dan dot dot CS50 h. Saya akan mengatakan tidak sah utama int. Dan sekali lagi pada masa akan datang kita akan kembali kepadanya ke dalam konteks ini dan cara-cara tidak sah. Dan sekarang saya akan mengatakan sesuatu seperti printf, memberi saya integer. Dan sekarang pada baris kedua, bagaimana saya meluahkan diri saya seperti yang saya mahu untuk mengisytiharkan pembolehubah perkara yang berlaku untuk menyimpan int satu? Secara literal apa yang saya menaip jika saya ingin mencipta pembolehubah yang menyimpan sebuah int kau kata? int yang sama getint. Pasti, supaya kerja-kerja. Dan hanya konsisten dengan kod yang anda akan lihat dalam talian, saya perubahan ini x, hanya kerana x adalah nama pembolehubah biasa untuk digunakan, sekurang-kurangnya dalam algebra. Sekarang, saya akan pergi ke depan dan jangan printf lagi. Berikan saya integer lain. Dan sekarang saya akan jenis daripada belajar daripada corak itu, Saya akan mengatakan int y sampai ke GetInt. Dan kita masih tidak digunakan GetInt sebelum ini, tetapi hanya seperti GetString pergi dan mendapat tali, seperti Javier lakukan dari penonton, juga tidak GetInt mula berkelip segera itu. Dan berkesan menunggu pengguna untuk memberikan integer, dengan menaip dalam dan memukul Enter. Sekarang akhir sekali saya akan lakukan ini, printf jumlah daripada-- dan biarlah saya mendapatkan now-- mewah i peratus dan peratus i hadir i seru titik backslash n. Dan apa yang anda fikir saya akan dimasukkan ke dalam sekarang sebagai input tambahan untuk printf? Saya tidak mahu untuk mengatakan harfiah quote unquote x. Saya mahu kelas x dan itu, dan kini mari kita mewah dan mari kita hanya menganggap yang boleh kita lakukan apa yang kita mahu. Apa yang anda mahu katakan akan datang? x campur y. Dan sesungguhnya yang akan bekerja. Ia minimum bahasa pengaturcaraan melakukan memahami aritmetik asas, dan sebagainya ini harus sebenarnya kerja. Jadi biarlah saya pergi ke hadapan dan jangan membuat penambah dalam tetingkap hitam dan putih saya turun di sini, Enter. Garis samar tetapi tiada ralat mesej, supaya baik. Dot mengurangkan penambah, memberi saya integer, 1. Berikan saya integer yang lain, 2. Jumlah bagi 1 dan 2 ialah 3. Baiklah, jadi yang cukup remeh program, tetapi apa yang ia dilakukan? Ia membolehkan saya untuk menggunakan fungsi yang memanggil sini, memanggil fungsi lain di sini, dua panggilan ke GetInt, yang panggilan ketiga untuk printf, dan kemudian menggunakan ruang letak ini. Jadi ia lebih sedikit canggih daripada masa lalu. Tetapi bagaimana jika saya mahu mendapatkan sedikit pelamun? Biar saya pergi ke hadapan dan melakukan ini. Biar saya pergi ke hadapan dan membuat Fail baru yang dikenali sebagai keadaan sifar. Dan saya akan menyelamatkan masa demi kelas dan hanya tampal dalam bahawa kod sebagai titik permulaan. Dan sekarang saya hanya akan meletakkan sesuatu yang baru di sini di tengah-tengah. Jadi printf saya ingin integer sila. Dan semua kod ini boleh didapati di laman web kursus ini, anda tidak perlu menaip ia semua keluar di dalam kelas jika anda lebih suka tidak. int, dan kini saya akan digunakan, dan bukannya x dan y, Saya akan menggunakan n, yang merupakan mungkin nama yang paling biasa untuk integer dalam program komputer. Dan sekarang saya ingin melakukan penghakiman sedikit di sini. Saya akan melihat jika n adalah lebih besar daripada 0, maka Saya akan mengatakan Whoops printf--, printf-- anda pilih nombor positif, tanda seru backslash n. Tutup itu. Yang lain saya akan mencetak printf anda pilih nombor negatif. Sekarang sebelum anda menjerit pada saya, mari kita menjalankan program ini. Biar saya turun di sini. Dan bagaimana saya menyusun program dipanggil keadaan dash 0? Membuat syarat dash 0. Jenis nama bodoh, but-- celaka. OK, masa pengajaran yang baik. Mengapa yang memecahkan? Apa yang saya secara tidak sengaja panggil fail ini? Anda boleh membuat kesimpulan jenis dari tab di sini. Jadi ia bukan buruk yang saya melakukan ini, kerana ini mungkin akan berlaku kepada sebahagian dari kamu. Jadi saya tidak sengaja dinamakan saya sumber kod keadaan 0. Tetapi kod sumber saya dengan konvensyen perlu berada dalam fail yang dipanggil keadaan 0 dash c, atau apa sahaja dot c. Jadi biarlah saya menetapkan ini. Sama seperti Microsoft Word saya boleh naik Simpan Sebagai dan melakukan keadaan 0 dot c. Sekarang hanya untuk kemas saya akan pergi ke depan dan mengeluarkan keadaan 0, yang merupakan versi lama saya. Dan sekarang mari kita jangan membuat keadaan 0, Enter. OK, seolah-olah baik. Keadaan 0, Enter. Saya ingin integer, sila, 50, anda pilih nombor positif. Sekarang bagaimana pula negatif 50? Anda memilih nombor negatif. Bagaimana kira-kira sekarang, 0. Cukup yakin 0 bukan negatif. Jadi ini adalah jenis pepijat logik. Bagaimana saya menetapkan ini? Yang lain jika n adalah kurang daripada 0, melakukan ini, lain kita boleh mempunyai cawangan tiga cara di sini, printf anda pilih 0. Jadi sekarang jika saya jalankan lagi ini program, selepas menyusun ia lagi dengan membuat, dan kini jalankan lagi keadaan 0, apa yang saya akan lihat di sini adalah 0 memberikan saya output itu. Jadi di mana kita pergi dengan ini? Baik ia sangat mudah untuk lupa hutan untuk pokok-pokok. Dan demikian memberikan kita menyimpulkan dengan video ini 2 dan 1/2 minit yang akhirnya agak daripada iklan dari Google, tetapi yang benar-benar membuktikan apa walaupun menggunakan binaan asas blok kita akhirnya boleh melakukannya sekali kita mempunyai sedikit pengaturcaraan bernyawa TI sarana di bawah tali pinggang kami. [MUZIK bermain] SAROO Brierley (suaranya): Ia adalah 26 tahun yang lalu, dan saya hanya kira-kira untuk menjadikan 5. Kami sampai ke stesen kereta api dan kami menaiki kereta api kita bersama. Abang saya hanya berkata saya akan tinggal di sini, dan saya akan kembali. Dan saya berfikir, baik anda tahu, Saya mungkin juga hanya pergi untuk tidur dan dia hanya akan membangunkan saya. Dan apabila saya bangun seterusnya hari, seluruh pengangkutan kosong pada kereta api yang melarikan diri, hantu kereta api membawa saya Saya tidak tahu di mana. Saya pakai ke Australia, kepada keluarga Australia. Dan ibu telah dihiasi saya bilik dengan peta India, yang dia diletakkan di sebelah kesukaan saya. Saya bangun setiap pagi melihat peta itu, dan dengan itu ia semacam memelihara kenangan hidup. Ramai yang akan berkata, anda cuba mencari jarum dalam sisa rumput kering, Saroo anda tidak akan menemuinya. Saya telah pemimpin-pemimpin itu satu tempat yang saya digunakan untuk pergi, berkelip keluarga saya muka. Terdapat imej ibu saya, duduk dengan kaki bersilang, hanya menonton menangis dia. Hidup ini hanya begitu keras. Itulah harta saya. Dan saya cari di Google Map dan menyedari ada Google Earth juga. Dalam dunia di mana anda boleh zum ke dalam, Saya mula mempunyai pemikiran ini dan apa kemungkinan ini boleh lakukan untuk saya. Saya berkata kepada diri saya sendiri, yang anda tahu, anda mempunyai mendapat semua orang-orang kenangan fotografi dan mercu tanda di mana anda daripada, dan anda tahu apa yang bandar kelihatan seperti. Ini boleh menjadi suatu permohonan yang anda boleh gunakan untuk mencari jalan anda kembali. Saya fikir, baik saya akan meletakkan dot di stesen kereta api Calcutta, dan garis jejari, anda tahu, bahawa anda perlu mencari di sekitar kawasan ini. Saya semacam terserempak ini trek kereta api. Dan saya mula mengikuti, dan Saya datang ke stesen kereta api yang mencerminkan imej yang sama yang di dalam kenangan saya. Semua dipadankan. Saya hanya fikir yep, saya tahu di mana saya akan. Saya hanya akan membiarkan peta yang saya ada dalam kepala saya membawa saya dan membawa saya pulang ke kampung halaman saya. Saya datang ke depan pintu rumah yang saya dilahirkan. Dan berjalan di sekitar kira-kira 15 meter sekitar sudut, terdapat tiga wanita berdiri di luar, bersebelahan dengan satu sama lain. Dan yang tengah melangkah ke hadapan, dan Saya fikir, ini adalah ibu anda. Dia datang ke hadapan, dia memeluk saya, dan kami berada di sana selama kira-kira lima minit. Dia meraih tangan saya dan dia membawa saya ke rumah dan mendapat di telefon, di mana beliau berdering kakak saya dan abang saya untuk mengatakan bahawa, anda tahu, saudara anda mempunyai hanya semua tiba-tiba muncul seperti hantu. Kemudian keluarga bersatu semula lagi. Semua semua yang baik, Saya membantu ibu saya keluar, dia tidak perlu slaving dari sini. Beliau boleh hidup yang lain hidupnya dengan aman. Ia adalah jarum dalam sisa rumput kering, tetapi jarum berada di sana. Semuanya ada di sana. Semua yang kita ada di dunia adalah di paip butang. Tetapi anda perlu mempunyai kemahuan dan keazaman untuk mahu ia. [MUZIK bermain] DAVID MALAN: hebat testimoni manis hanya apa yang anda boleh kini melakukan dengan teknologi. Kami akan melihat anda minggu depan.