1 00:00:00,000 --> 00:00:01,500 >> [MUSIC PLAYING] 2 00:00:01,500 --> 00:00:11,000 3 00:00:11,000 --> 00:00:16,110 >> DAVID Malan: Baiklah ini CS50 dan ini adalah akhir minggu satu. 4 00:00:16,110 --> 00:00:20,760 Jadi saya ingin memperkenalkan mantan saya advisee, Andel Duff, yang tidak hanya membuat 5 00:00:20,760 --> 00:00:25,460 iPhone 5 berdiri, serta ini podium, dia juga membuat mobil. 6 00:00:25,460 --> 00:00:27,927 7 00:00:27,927 --> 00:00:29,510 Ansel Duff: Bagaimana kabarmu, semua orang? 8 00:00:29,510 --> 00:00:31,980 Aku hanya ingin bercerita sedikit sedikit tentang Formula SAE, yang saya 9 00:00:31,980 --> 00:00:32,604 am kapten. 10 00:00:32,604 --> 00:00:33,437 Ini adalah tim MIT. 11 00:00:33,437 --> 00:00:35,520 Saya hanya ingin memberitahu Anda Orang-orang sedikit tentang hal itu 12 00:00:35,520 --> 00:00:37,520 dan mudah-mudahan menghasilkan beberapa bunga. 13 00:00:37,520 --> 00:00:41,590 >> Jadi biarkan aku hanya berjalan melalui beberapa hal tentang tim kami. 14 00:00:41,590 --> 00:00:43,640 Jadi kita benar-benar mahasiswa run, dimana semua 15 00:00:43,640 --> 00:00:47,300 anggota desain, simulasi, tes, dan produsen subsistem 16 00:00:47,300 --> 00:00:48,090 mobil. 17 00:00:48,090 --> 00:00:51,240 Kami memiliki toko mesin kami sendiri dan garasi, dan N52-- atau maaf, 18 00:00:51,240 --> 00:00:54,140 N51-- yang merupakan gedung yang sama sebagai Science Museum MIT. 19 00:00:54,140 --> 00:00:55,990 Dan kita adalah orang-orang yang mendorong mobil. 20 00:00:55,990 --> 00:00:58,340 Ada kompetisi nasional pada awal musim panas, 21 00:00:58,340 --> 00:01:01,215 dan kemudian ada baku tembak yang lebih kecil kompetisi sepanjang tahun. 22 00:01:01,215 --> 00:01:04,400 Dan kemudian kita melakukan pelatihan pengemudi hari untuk mendapatkan anggota baru berkenalan. 23 00:01:04,400 --> 00:01:08,280 >> Kami membangun hari yang memberikan Sabtu 11:00-20:00. 24 00:01:08,280 --> 00:01:11,060 Makan siang dan makan malam merawat dari, dari Bertucci dan Beantown 25 00:01:11,060 --> 00:01:12,130 masing-masing. 26 00:01:12,130 --> 00:01:15,260 Kami memiliki pertemuan mingguan dan seminar, yang untuk kredit program. 27 00:01:15,260 --> 00:01:18,560 Yang baru dari semester ini, dan itu juga akan untuk semester berikutnya, 28 00:01:18,560 --> 00:01:19,940 sehingga Anda bisa menyeberang-reg untuk itu. 29 00:01:19,940 --> 00:01:22,960 Dan kemudian kita harus merancang, toko, dan hari CAD selama seminggu, 30 00:01:22,960 --> 00:01:26,870 sedangkan anggota akan independen Bagian CAD, agar saham dan sebagainya. 31 00:01:26,870 --> 00:01:29,200 >> Jadi untuk listrik teknik di tim 32 00:01:29,200 --> 00:01:31,110 kami memiliki traksi kami, sistem tegangan tinggi, 33 00:01:31,110 --> 00:01:33,390 yang berjalan pada nominal 300 volt, yang meliputi 34 00:01:33,390 --> 00:01:35,360 motor, pengendali motor, dan kemasan baterai. 35 00:01:35,360 --> 00:01:37,235 Kemudian kita memiliki rendah sistem tegangan, yang berjalan 36 00:01:37,235 --> 00:01:40,180 pada 12 volt, yang meliputi kontrol, BISA node, otak 37 00:01:40,180 --> 00:01:41,570 kotak, dan dashboard. 38 00:01:41,570 --> 00:01:43,890 Sejauh CS pergi, kita lakukan memiliki pemeliharaan website 39 00:01:43,890 --> 00:01:47,940 bahwa kita perlu dilakukan untuk acara, keanggotaan perubahan, gambar baru, dan bahan PR. 40 00:01:47,940 --> 00:01:51,540 Dan kemudian kita memiliki kode yang mengontrol mobil untuk kontrol traksi kami, peluncuran 41 00:01:51,540 --> 00:01:55,750 kontrol, kontrol dasbor, torque vectoring, dan sistem pengereman regeneratif, yang 42 00:01:55,750 --> 00:01:59,170 berjalan biasanya dalam MATLAB, Simulink, dan LabView. 43 00:01:59,170 --> 00:02:00,910 >> Bercerita sedikit tentang mobil. 44 00:02:00,910 --> 00:02:02,470 Jadi sekitar 500 kilogram. 45 00:02:02,470 --> 00:02:04,285 Ini aturan terbatas pada 85 kilowatt. 46 00:02:04,285 --> 00:02:08,310 Ini memiliki 2 EMRAX 207 motor di kembali, satu untuk setiap roda belakang. 47 00:02:08,310 --> 00:02:11,880 Memiliki kemasan baterai custom-built dari sel A123 kantong Prismatik, 48 00:02:11,880 --> 00:02:14,780 sebesar 300 volt dan 5.6 kilowatt jam. 49 00:02:14,780 --> 00:02:17,950 Dan itu penggerak langsung dengan rasio 2,64-1 drive. 50 00:02:17,950 --> 00:02:20,970 Berikut adalah beberapa gambar kami mengambil itu di kompetisi. 51 00:02:20,970 --> 00:02:25,820 Berikut bagian belakang, hidung kerucut, dan di sini adalah motor, 52 00:02:25,820 --> 00:02:29,682 disk tersebut hitam besar bawah et mens manus. 53 00:02:29,682 --> 00:02:32,140 Berikut adalah slide yang aku menarik dari skema kompetisi kami. 54 00:02:32,140 --> 00:02:35,389 Dan ini hanya membandingkan mobil kami ke beberapa mobil tersedia secara komersial, 55 00:02:35,389 --> 00:02:38,380 seperti KTM XBOW, Ariel Atom, dan Caterha M 7-280. 56 00:02:38,380 --> 00:02:42,110 Jika Anda akrab dengan harga, daya menarik berat, dolar per tenaga kuda, 57 00:02:42,110 --> 00:02:44,930 dolar per torsi, dan mobil kami pukulan mereka semua keluar dari air. 58 00:02:44,930 --> 00:02:47,520 Jika Anda memiliki pertanyaan, menuliskan alamat email ini. 59 00:02:47,520 --> 00:02:50,800 Tembak email pada kami di fsae@mit.edu. 60 00:02:50,800 --> 00:02:53,350 >> Kami senang untuk berbicara tentang apa pun yang Anda inginkan. 61 00:02:53,350 --> 00:02:55,600 Mahasiswa Harvard adalah jenis minoritas di tim. 62 00:02:55,600 --> 00:02:58,350 Jika Anda memiliki pertanyaan tentang bahwa jangan menembak kami email, 63 00:02:58,350 --> 00:03:00,810 senang berbicara, dan aku akan untuk kembali ke David. 64 00:03:00,810 --> 00:03:01,550 Terima kasih. 65 00:03:01,550 --> 00:03:02,466 Saya menghargai itu, guys. 66 00:03:02,466 --> 00:03:03,615 [Tepuk Tangan] 67 00:03:03,615 --> 00:03:07,080 68 00:03:07,080 --> 00:03:10,980 >> DAVID Malan: Ansel menghabiskan musim panas bekerja dengan kami di sini di kampus di CS50 69 00:03:10,980 --> 00:03:11,480 musim panas ini. 70 00:03:11,480 --> 00:03:13,505 Dan di samping bekerja pada hal-hal seperti lampu biner, 71 00:03:13,505 --> 00:03:16,090 dia benar-benar benar-benar membuka kami eyes-- dan tambang di particular-- 72 00:03:16,090 --> 00:03:20,535 apa yang sebenarnya persimpangan bukan dari hardware dan software dapat. 73 00:03:20,535 --> 00:03:23,410 Bahkan banyak hal-hal yang hanya tur Anda melalui pada akhirnya 74 00:03:23,410 --> 00:03:26,030 dibuat pertama dalam perangkat lunak, dan kemudian akhirnya dibuat 75 00:03:26,030 --> 00:03:27,299 di dunia nyata di hardware. 76 00:03:27,299 --> 00:03:29,590 Jadi, jika Anda tertarik menjelajahi persimpangan itu, 77 00:03:29,590 --> 00:03:31,430 mungkin mengambil kelompok itu. 78 00:03:31,430 --> 00:03:34,140 >> Sekarang sementara itu, bagi anda yang merupakan fans dari teknologi, 79 00:03:34,140 --> 00:03:36,140 dan produk Apple di Khususnya tahu bahwa ada 80 00:03:36,140 --> 00:03:37,860 adalah beberapa pengumuman kemarin. 81 00:03:37,860 --> 00:03:39,776 Tapi kami pikir kami akan menunjukkan Anda salah satu yang keluar 82 00:03:39,776 --> 00:03:43,590 beberapa hari sebelumnya yang Anda mungkin telah melihat. 83 00:03:43,590 --> 00:03:46,150 >> Jorgen EGHAMMER: Kau tahu, sekali dalam sesuatu sementara 84 00:03:46,150 --> 00:03:49,540 datang yang mengubah cara kita hidup. 85 00:03:49,540 --> 00:03:53,479 Sebuah perangkat sangat sederhana dan intuitif menggunakan rasanya hampir akrab. 86 00:03:53,479 --> 00:03:59,710 87 00:03:59,710 --> 00:04:04,138 Memperkenalkan 2015 Katalog IKEA. 88 00:04:04,138 --> 00:04:10,420 Ini bukan buku digital atau e-book, itu buku-buku. 89 00:04:10,420 --> 00:04:14,440 >> Hal pertama yang harus diperhatikan adalah tidak kabel, bahkan tidak kabel listrik. 90 00:04:14,440 --> 00:04:18,519 2015 Katalog IKEA datang terisi penuh, 91 00:04:18,519 --> 00:04:20,550 dan masa pakai baterai yang kekal. 92 00:04:20,550 --> 00:04:27,300 Antarmuka adalah 7.5 dengan 8 inci, tetapi dapat memperluas ke 15 oleh 8 inci. 93 00:04:27,300 --> 00:04:32,410 Navigasi ini didasarkan pada sentuhan taktil teknologi yang Anda benar-benar bisa merasakan. 94 00:04:32,410 --> 00:04:37,120 >> Konten datang pra-instal melalui 328 halaman high-definition 95 00:04:37,120 --> 00:04:40,180 inspirasi ide home furnishing. 96 00:04:40,180 --> 00:04:43,740 Untuk mulai browsing, cukup menyentuh dan drag. 97 00:04:43,740 --> 00:04:50,870 Kanan ke kiri untuk bergerak maju, kiri ke kanan untuk bergerak mundur. 98 00:04:50,870 --> 00:04:52,770 >> Perhatikan sesuatu yang lain? 99 00:04:52,770 --> 00:04:53,780 Itu benar. 100 00:04:53,780 --> 00:04:55,190 Tidak ada lag. 101 00:04:55,190 --> 00:04:58,400 Setiap halaman yang jernih beban instan, 102 00:04:58,400 --> 00:05:00,586 tidak peduli seberapa cepat Anda gulir. 103 00:05:00,586 --> 00:05:03,710 Jika Anda ingin mendapatkan gambaran singkat, hanya memegangnya di telapak tangan Anda, 104 00:05:03,710 --> 00:05:06,816 dan hanya menggunakan ibu jari Anda, kecepatan menelusuri konten. 105 00:05:06,816 --> 00:05:10,930 >> Jika Anda menemukan sesuatu yang Anda ingin menyimpan untuk nanti, Anda hanya dapat menandainya. 106 00:05:10,930 --> 00:05:17,620 Dan bahkan jika Anda menutup aplikasi, Anda dapat dengan mudah menemukan bookmark lagi. 107 00:05:17,620 --> 00:05:18,490 Menakjubkan. 108 00:05:18,490 --> 00:05:20,434 >> [Tertawa] 109 00:05:20,434 --> 00:05:21,406 [Tepuk Tangan] 110 00:05:21,406 --> 00:05:26,760 111 00:05:26,760 --> 00:05:29,870 Jadi yang membawa kita ke akhir minggu satu. 112 00:05:29,870 --> 00:05:31,760 Beberapa pengumuman sekarang. 113 00:05:31,760 --> 00:05:33,440 Jadi sectioning sekarang sedang berlangsung. 114 00:05:33,440 --> 00:05:36,860 Pergi ke URL ini kadang-kadang di sini antara sekarang dan Jumat pada siang hari 115 00:05:36,860 --> 00:05:39,960 untuk benar-benar menentukan apakah Anda di antara mereka kurang nyaman, lebih 116 00:05:39,960 --> 00:05:41,690 nyaman, atau di antara keduanya. 117 00:05:41,690 --> 00:05:44,511 >> Ini biasanya salah satu dari mereka hal-hal yang Anda hanya jenis tahu. 118 00:05:44,511 --> 00:05:47,510 Dan pada kenyataannya Anda yang kurang nyaman mungkin tahu lebih banyak, 119 00:05:47,510 --> 00:05:49,634 Anda yang lebih nyaman tahu sebanyak, 120 00:05:49,634 --> 00:05:54,960 dan lagi jika Anda tidak yakin yang dari ember Anda jatuh ke Anda 121 00:05:54,960 --> 00:05:56,210 mungkin di suatu tempat di antara. 122 00:05:56,210 --> 00:05:59,810 Tapi yakinlah Anda dapat swap setelah beberapa minggu jika perlu. 123 00:05:59,810 --> 00:06:02,620 >> Sementara itu, untuk minggu yang akan datang kita tidak mulai bagian per se, 124 00:06:02,620 --> 00:06:04,760 tapi super bagian, yang terbuka untuk semua siswa. 125 00:06:04,760 --> 00:06:08,220 Minggu ini datang di lokasi untuk diumumkan di website program 126 00:06:08,220 --> 00:06:10,190 kita akan memiliki satu untuk mereka yang kurang nyaman, 127 00:06:10,190 --> 00:06:12,470 serta satu untuk mereka lebih nyaman. 128 00:06:12,470 --> 00:06:15,460 Dan di suatu tempat yang ada di antara dapat memilih dari dua, 129 00:06:15,460 --> 00:06:17,360 atau keduanya jika Anda ingin, untuk duduk-in di. 130 00:06:17,360 --> 00:06:19,630 Dan fokus mereka akan akhirnya di C, 131 00:06:19,630 --> 00:06:22,440 yang kita akan terus kami percakapan hari ini. 132 00:06:22,440 --> 00:06:25,070 >> Masalah set 0 sementara adalah mudah-mudahan di tangan Anda. 133 00:06:25,070 --> 00:06:27,500 Secara resmi karena besok, Kamis, pada siang hari. 134 00:06:27,500 --> 00:06:29,490 Kecuali Anda uang tunai dalam satu dari 5 hari terlambat Anda, 135 00:06:29,490 --> 00:06:31,780 yang akan membawa sampai Jumat pada siang hari. 136 00:06:31,780 --> 00:06:34,420 Masalah menetapkan 1 sementara akan diposting di situs kursus ini. 137 00:06:34,420 --> 00:06:37,381 Dan ini akan menjadi pertama kami terjun sebagai kelas menjadi C. 138 00:06:37,381 --> 00:06:40,630 Dan bahwa masalah mengatur spesifikasi akan memandu Anda melalui banyak mekanisme apa 139 00:06:40,630 --> 00:06:43,960 kita mulai berbicara tentang hari Senin, dan kami akan terus berbicara tentang hari ini. 140 00:06:43,960 --> 00:06:46,770 C, Linux, CS50 alat, semua itu 141 00:06:46,770 --> 00:06:48,990 akan menunggu Anda dalam spesifikasi. 142 00:06:48,990 --> 00:06:52,840 >> Sementara jam kantor sedang berlangsung, di ruang makan sarjana. 143 00:06:52,840 --> 00:06:56,240 Kepala ke URL ini di sini untuk melihat jadwal untuk malam ini dan besok, 144 00:06:56,240 --> 00:06:57,930 jika Anda ingin mengambil bagian. 145 00:06:57,930 --> 00:07:01,920 Pertanyaan Sementara itu, sehingga Anda memiliki kesempatan untuk mengajukan pertanyaan 146 00:07:01,920 --> 00:07:05,860 asynchronous, 24/7, sadar bahwa Anda sedang tidak terbatas pada bagian dan kantor 147 00:07:05,860 --> 00:07:09,530 jam, melainkan alat ini di sini, CS50 Diskusikan di URL yang 148 00:07:09,530 --> 00:07:12,150 akan online kursus ini buletin software papan, melalui mana 149 00:07:12,150 --> 00:07:15,030 Anda dapat mengajukan pertanyaan dari teman sekelas dan juga staf. 150 00:07:15,030 --> 00:07:18,492 Jadi perlu diingat sumber daya itu juga. 151 00:07:18,492 --> 00:07:20,200 Sementara tradisi dimulai Jumat ini. 152 00:07:20,200 --> 00:07:23,200 Seperti Anda mungkin telah melihat sekilas dari video teaser Rabu lalu, 153 00:07:23,200 --> 00:07:25,510 kami memiliki tradisi yang paling setiap hari Jumat selama masa 154 00:07:25,510 --> 00:07:28,750 mengambil sekitar 50 mahasiswa dan staf untuk restoran lokal yang disebut 155 00:07:28,750 --> 00:07:31,510 Fire and Ice, di mana kita biasanya bergabung dengan beberapa alumni 156 00:07:31,510 --> 00:07:33,850 atau teman-teman dari industri untuk umum bercita-cita 157 00:07:33,850 --> 00:07:35,780 untuk membuat kelas besar merasa lebih kecil. 158 00:07:35,780 --> 00:07:37,560 Jadi makan siang benar-benar santai. 159 00:07:37,560 --> 00:07:40,160 Sekelompok dari kami, staf khususnya, akan bermain kursi musik 160 00:07:40,160 --> 00:07:43,360 dan chatting dengan siswa tentang 50, kehidupan di luar 50, 161 00:07:43,360 --> 00:07:46,510 kehidupan di masa depan, dunia nyata, Aku sedang berbicara tentang kesempatan kerja 162 00:07:46,510 --> 00:07:47,680 dengan teman-teman di industri. 163 00:07:47,680 --> 00:07:51,110 >> Jadi jika Anda ingin bergabung dengan kami Jumat ini, kepala ke URL ini di sini. 164 00:07:51,110 --> 00:07:54,180 Ruang terbatas, tapi kami akan melakukan ini recurringly seluruh istilah. 165 00:07:54,180 --> 00:07:57,380 Kepala sana untuk cs50.harvard.edu/rsvp. 166 00:07:57,380 --> 00:07:59,380 Dan jika Anda tidak mendapatkan di kali ini, tidak perlu khawatir. 167 00:07:59,380 --> 00:08:02,390 Kami akan melakukannya lagi dalam beberapa minggu mendatang juga. 168 00:08:02,390 --> 00:08:05,434 >> Jadi ini adalah gambar kami dicat pekan lalu, 169 00:08:05,434 --> 00:08:07,350 dan Anda mungkin pernah berkecimpung dalam sejauh ini. 170 00:08:07,350 --> 00:08:10,360 Tapi mari kita coba untuk menghubungkan ini sekarang apa yang akan kita lakukan hari ini 171 00:08:10,360 --> 00:08:11,440 dan seterusnya. 172 00:08:11,440 --> 00:08:14,760 Bisakah saya memiliki satu relawan? 173 00:08:14,760 --> 00:08:16,000 Baiklah, atau beberapa. 174 00:08:16,000 --> 00:08:18,460 Bagaimana di sini pada end, di kemeja biru. 175 00:08:18,460 --> 00:08:20,329 Ayo up, siapa namamu? 176 00:08:20,329 --> 00:08:20,870 ALANA: Alana. 177 00:08:20,870 --> 00:08:21,661 DAVID Malan: Alana. 178 00:08:21,661 --> 00:08:25,100 Jadi Alana, untuk hanya moment-- senang bertemu kau-- 179 00:08:25,100 --> 00:08:28,260 akan memainkan peran fungsi ini di sini. 180 00:08:28,260 --> 00:08:31,290 Ungu blok kita sudah disebut sejauh ini fungsi. 181 00:08:31,290 --> 00:08:34,830 Jadi apa yang saya akan pergi depan di sini dan menawarkan Alana 182 00:08:34,830 --> 00:08:38,380 sedikit tag nama, untuk membuat jelas apa peran Anda bermain. 183 00:08:38,380 --> 00:08:39,753 >> Jadi, Anda akan menjadi blok mengatakan. 184 00:08:39,753 --> 00:08:41,419 Jika Anda ingin untuk terus maju dan menempatkan bahwa pada. 185 00:08:41,419 --> 00:08:43,169 Dan kita akan menjaga ini super sederhana. 186 00:08:43,169 --> 00:08:46,180 Jika tujuan di tangan hanya sekarang untuk menerapkan dengan Alana, 187 00:08:46,180 --> 00:08:49,710 ini disebut mengatakan blok, berikut adalah cara itu akan berhasil. 188 00:08:49,710 --> 00:08:52,574 Aku harus-- sebut saja argumen atau parameter, 189 00:08:52,574 --> 00:08:54,240 itu benar-benar hanya selembar kertas kosong. 190 00:08:54,240 --> 00:08:57,239 Dan itu putih jenis akan mengingatkan kotak putih di mana Anda 191 00:08:57,239 --> 00:08:58,080 dapat menulis kata-kata. 192 00:08:58,080 --> 00:09:00,660 >> Sementara aku akan pergi di sini. 193 00:09:00,660 --> 00:09:06,560 Aku akan pergi ke depan dan menulis H-E-L-L-O koma dunia. 194 00:09:06,560 --> 00:09:09,972 Dan sekarang, aku, sebagai mengatakan programmer, jangan benar-benar tahu bagaimana untuk mengatakan sesuatu. 195 00:09:09,972 --> 00:09:12,180 Aku bisa datang dengan kata-kata, tapi aku belum tentu 196 00:09:12,180 --> 00:09:15,220 tahu bagaimana mengekspresikan diri secara lisan atau di layar. 197 00:09:15,220 --> 00:09:17,280 Jadi apa yang akan saya lakukan adalah mengambil bagian ini 198 00:09:17,280 --> 00:09:21,157 fungsi, yang input-- atau argumen, seperti yang kita akan menyebutnya, 199 00:09:21,157 --> 00:09:23,990 Aku sudah menulis pada sepotong paper-- dan aku akan melakukan outsourcing itu. 200 00:09:23,990 --> 00:09:26,831 >> Dan memang itulah peran yang fungsi dalam bahasa pemrograman 201 00:09:26,831 --> 00:09:27,330 bisa bermain. 202 00:09:27,330 --> 00:09:29,246 Sesuatu seperti mengatakan itu blok dapat outsourcing 203 00:09:29,246 --> 00:09:32,074 untuk seseorang yang benar-benar tahu apa yang dia atau dia bicarakan. 204 00:09:32,074 --> 00:09:33,990 Jadi, jika Anda akan melangkahi di sini untuk sesaat, 205 00:09:33,990 --> 00:09:40,092 Saya akan lulus masukan ini untuk Alana, dan meminta Anda katakan masukan ini. 206 00:09:40,092 --> 00:09:41,202 >> ALANA: Hello, world. 207 00:09:41,202 --> 00:09:42,160 DAVID Malan: Itu saja. 208 00:09:42,160 --> 00:09:43,326 Sehingga ada fungsi. 209 00:09:43,326 --> 00:09:46,556 Sekarang kita dapat mengambil sedikit lebih, kita dapat mengambil langkah maju di sini. 210 00:09:46,556 --> 00:09:48,180 Karena itu jelas underwhelming. 211 00:09:48,180 --> 00:09:51,670 Jadi mari kita sekarang mengubah ini untuk sesuatu yang sedikit lebih canggih. 212 00:09:51,670 --> 00:09:53,630 >> Jadi ini tentu saja adalah versi C kami. 213 00:09:53,630 --> 00:09:56,760 Jadi sekarang jika Anda ingin mengambil satu dari, bahwa tag nama off, 214 00:09:56,760 --> 00:09:58,530 dan mari kita Anda memakai nama baru. 215 00:09:58,530 --> 00:10:00,850 Tetapi secara fundamental Anda memainkan peran yang sama, 216 00:10:00,850 --> 00:10:03,400 kebetulan untuk disebut printf sekarang. 217 00:10:03,400 --> 00:10:06,930 >> Cerita ini, tentu saja, akan akan-- mungkin 218 00:10:06,930 --> 00:10:09,317 seperti underwhelming-- adalah akan menjadi berikut ini. 219 00:10:09,317 --> 00:10:10,650 Anda sekarang fungsi printf. 220 00:10:10,650 --> 00:10:13,300 Saya penelepon, atau programmer, yang ingin 221 00:10:13,300 --> 00:10:15,745 untuk berdiri di pundak orang di masa lalu seperti Anda, 222 00:10:15,745 --> 00:10:18,670 yang sudah tahu bagaimana untuk benar-benar menulis sesuatu. 223 00:10:18,670 --> 00:10:20,650 Jadi kali ini, daripada mengatakan itu mari kita 224 00:10:20,650 --> 00:10:22,255 benar-benar menggunakan layar kami di sini. 225 00:10:22,255 --> 00:10:24,130 Jadi jika Anda ingin melangkah di sini, aku akan 226 00:10:24,130 --> 00:10:27,196 untuk lulus lagi ini sebagai masukan ke teman printf saya. 227 00:10:27,196 --> 00:10:29,320 Jika Anda bisa pergi ke depan dan mencetak bahwa di layar, 228 00:10:29,320 --> 00:10:31,611 hanya dengan menggambar dengan Anda jari pada layar hitam. 229 00:10:31,611 --> 00:10:43,680 230 00:10:43,680 --> 00:10:44,180 Sangat baik. 231 00:10:44,180 --> 00:10:47,350 Baiklah, begitu banyak ketegangan untuk bagaimana yang akan bermain keluar. 232 00:10:47,350 --> 00:10:51,390 >> Jadi sekarang mari kita hal-hal yang notch akhir, jika kita bisa, sebagai berikut. 233 00:10:51,390 --> 00:10:53,980 Jadi ini adalah program C seperti yang kita katakan terakhir kali. 234 00:10:53,980 --> 00:10:57,460 Dan ini hanya melakukan apa yang Anda lakukan, itu mencetak ke layar, halo, dunia. 235 00:10:57,460 --> 00:11:00,290 Meskipun ada jelas banyak hal yang mengganggu di sana. 236 00:11:00,290 --> 00:11:03,630 Tapi mari kita mengambil hal-hal takik dan memperkenalkan versi ini, yang ingat 237 00:11:03,630 --> 00:11:06,160 adalah versi ketiga yang kita berakhir dengan terakhir kali. 238 00:11:06,160 --> 00:11:09,120 >> Dan sekarang ada jelas dua penggunaan printf. 239 00:11:09,120 --> 00:11:12,280 Ada 2 panggilan ke Alana dalam hal ini untuk printf, 240 00:11:12,280 --> 00:11:14,740 tetapi juga ada panggilan ke fungsi lain. 241 00:11:14,740 --> 00:11:17,150 Apa itu fungsi jelas? 242 00:11:17,150 --> 00:11:17,650 GetString. 243 00:11:17,650 --> 00:11:18,980 >> Bisakah kita mendapatkan satu relawan lainnya? 244 00:11:18,980 --> 00:11:20,980 OK, datang ke atas. 245 00:11:20,980 --> 00:11:21,805 Siapa nama Anda? 246 00:11:21,805 --> 00:11:22,990 >> JAVIER: Javier. 247 00:11:22,990 --> 00:11:24,750 >> DAVID Malan: Javier, ayolah up. 248 00:11:24,750 --> 00:11:27,270 Jadi peran Javier adalah pada kertas ini. 249 00:11:27,270 --> 00:11:28,860 Yang aku akan menelepon umum s. 250 00:11:28,860 --> 00:11:32,250 Sekarang ini adalah variabel, itu tipe string, seperti yang tersirat 251 00:11:32,250 --> 00:11:34,290 dengan itu baris kedua di tengah sana. 252 00:11:34,290 --> 00:11:36,540 Dan aku ingin kau pergi mendapatkan saya string. 253 00:11:36,540 --> 00:11:40,120 Secara khusus kepala ke orkestra bagian dan mendapatkan saya nama seseorang, 254 00:11:40,120 --> 00:11:43,142 dan kembali dengan variabel mengandung nilai tersebut. 255 00:11:43,142 --> 00:11:44,225 Hal ini dapat siapa pun yang Anda inginkan. 256 00:11:44,225 --> 00:11:47,590 257 00:11:47,590 --> 00:11:48,520 >> Di sini kita pergi. 258 00:11:48,520 --> 00:11:53,620 259 00:11:53,620 --> 00:11:55,960 Baiklah, Javier adalah menuliskan nama. 260 00:11:55,960 --> 00:12:02,210 261 00:12:02,210 --> 00:12:03,280 Baiklah. 262 00:12:03,280 --> 00:12:05,740 Kita semua mungkin bisa menebak bagaimana ini akan bermain keluar. 263 00:12:05,740 --> 00:12:07,489 Kami mungkin belaboring titik apa 264 00:12:07,489 --> 00:12:10,320 fungsi yang sedang, namun tetap terima kasih banyak. 265 00:12:10,320 --> 00:12:13,890 >> Jadi Javier telah kembali string ini di sini, yang, tidak bisa melihat, 266 00:12:13,890 --> 00:12:15,800 Jonathan adalah string bahwa kita sudah. 267 00:12:15,800 --> 00:12:18,330 Jadi sekarang apa yang saya benar-benar akan untuk memberikan kepada Alana meskipun 268 00:12:18,330 --> 00:12:20,150 adalah sesuatu yang sedikit berbeda. 269 00:12:20,150 --> 00:12:23,800 Karena dalam versi ini Program, pertama ada sebutkan nama. 270 00:12:23,800 --> 00:12:26,160 Jadi argumen pertama Saya perlu memberikan Alana 271 00:12:26,160 --> 00:12:33,030 dengan akan menjadi harfiah sebutkan nama Anda. 272 00:12:33,030 --> 00:12:35,280 Baiklah, jadi sesederhana itu Saya akan menyerahkan hal ini kepada Anda. 273 00:12:35,280 --> 00:12:36,730 Dan ketika saya menulis atas Argumen berikutnya, jika Anda 274 00:12:36,730 --> 00:12:39,230 ingin untuk terus maju dan menulis ini di papan, mari kita pergi ke depan 275 00:12:39,230 --> 00:12:42,659 dan melakukan contoh terakhir di sini untuk membuat jelas apa yang akhirnya harus terjadi. 276 00:12:42,659 --> 00:12:44,450 Jadi sebutkan nama Anda, menulis menuju puncak 277 00:12:44,450 --> 00:12:47,220 jika Anda tidak keberatan, hanya agar kami memiliki ruang untuk satu lini kedua. 278 00:12:47,220 --> 00:12:52,890 Karena hal terakhir aku akan sekarang menyediakan Anda dengan tidak satu, 279 00:12:52,890 --> 00:12:57,220 tapi dua lembar kertas. 280 00:12:57,220 --> 00:12:58,074 >> Baiklah. 281 00:12:58,074 --> 00:13:01,920 H-E-L--L O koma dan kemudian baris kosong. 282 00:13:01,920 --> 00:13:04,780 Jadi apa yang saya akan menyerahkan Alana sekarang adalah sesuatu yang sedikit berbeda. 283 00:13:04,780 --> 00:13:08,600 Tidak hanya dia mendapatkan ini, mana mengisi kosong merupakan 284 00:13:08,600 --> 00:13:12,050 yang percent-- apa yang placeholder kita telah menggunakan? 285 00:13:12,050 --> 00:13:13,890 Ya, jadi persen s. 286 00:13:13,890 --> 00:13:16,530 Sementara aku akan lulus di sebuah argumen kedua, yang 287 00:13:16,530 --> 00:13:19,290 adalah tepat apa Javier diambil dari Jonathan. 288 00:13:19,290 --> 00:13:20,534 >> Jadi biarkan saya memberikan dua ini. 289 00:13:20,534 --> 00:13:22,575 Jika Anda ingin, pergi ke depan dan cetak yang berlaku. 290 00:13:22,575 --> 00:13:25,660 291 00:13:25,660 --> 00:13:28,130 Apa yang akhirnya terjadi sekarang adalah, Alana lagi 292 00:13:28,130 --> 00:13:29,410 memainkan peran printf. 293 00:13:29,410 --> 00:13:32,160 Javier bermain peran GetString. 294 00:13:32,160 --> 00:13:34,700 Sehingga akan menjadi souvenir Anda. 295 00:13:34,700 --> 00:13:39,910 Dan akhirnya apa yang terjadi, meskipun ini hello-- yep pergi ke depan dan koma. 296 00:13:39,910 --> 00:13:41,410 ALANA: Apakah saya menerima ini belum atau tidak? 297 00:13:41,410 --> 00:13:43,451 DAVID Malan: Ya, Anda menerima keduanya sekaligus. 298 00:13:43,451 --> 00:13:45,740 Jadi idenya adalah bahwa Anda sekarang dapat membalik halaman 299 00:13:45,740 --> 00:13:50,000 untuk menangani kedua dari dua input. 300 00:13:50,000 --> 00:13:53,280 Jadi ini hanya untuk palu rumah menunjukkan bahwa sementara Alana dieksekusi 301 00:13:53,280 --> 00:13:55,830 jalur hijau ini di sini, dan kemudian Javier melakukan ini satu untuk kita 302 00:13:55,830 --> 00:13:57,820 dan kembali ke sesuatu kami akan menelepon s, tapi itu benar-benar 303 00:13:57,820 --> 00:13:59,520 Hanya saja selembar kertas sendiri. 304 00:13:59,520 --> 00:14:02,320 Dan sekarang Alana telah melakukan baris ketiga ini. 305 00:14:02,320 --> 00:14:06,010 >> Dan meskipun semua ini terlihat begitu sangat samar mungkin 306 00:14:06,010 --> 00:14:08,870 pada pandangan pertama, itu benar-benar adalah yang sederhana seperti itu. 307 00:14:08,870 --> 00:14:11,390 Melewati masukan sekitar, mendapatkan output, baik 308 00:14:11,390 --> 00:14:14,560 secara fisik diserahkan kembali sesuatu, atau melihat efek samping seperti ini. 309 00:14:14,560 --> 00:14:17,170 Sesuatu visual tertulis di layar. 310 00:14:17,170 --> 00:14:19,990 Jadi mari kita pergi ke depan dan terima Alana dan Javier, 311 00:14:19,990 --> 00:14:25,012 yang ada di sini, untuk bergabung dengan kami di sini. 312 00:14:25,012 --> 00:14:25,934 >> [Tepuk Tangan] 313 00:14:25,934 --> 00:14:29,360 314 00:14:29,360 --> 00:14:33,480 >> Jadi sekarang mari kita mengambil untuk diberikan hanya bagaimana langsung semua itu mungkin. 315 00:14:33,480 --> 00:14:36,775 Dan mari kita lanjutkan untuk benar-benar melakukan sesuatu dalam kode yang sebenarnya. 316 00:14:36,775 --> 00:14:40,620 Jadi di layar di sini adalah screenshot dari apa yang disebut CS50 alat. 317 00:14:40,620 --> 00:14:43,980 Dan jika Anda harus di, sebagai 02:00 pada Rabu sore, 318 00:14:43,980 --> 00:14:46,602 menjelaskan kepada beberapa teman apa alat CS50 adalah, 319 00:14:46,602 --> 00:14:48,185 bagaimana Anda mendefinisikan itu dalam sebuah kalimat? 320 00:14:48,185 --> 00:14:52,160 321 00:14:52,160 --> 00:14:53,240 Setiap satu kalimat? 322 00:14:53,240 --> 00:14:54,876 Ya? 323 00:14:54,876 --> 00:14:57,334 MAHASISWA: Ini seperti sebuah program yang membuat komputer semua orang 324 00:14:57,334 --> 00:14:58,460 dijalankan dengan sistem yang sama. 325 00:14:58,460 --> 00:14:59,210 DAVID Malan: Good! 326 00:14:59,210 --> 00:15:02,810 Ini adalah program yang memungkinkan semua orang komputer untuk menjalankan dengan sistem yang sama. 327 00:15:02,810 --> 00:15:04,920 Ini semacam sendiri salinan dari operasi 328 00:15:04,920 --> 00:15:07,540 sistem yang terjadi pada disebut Ubuntu Linux. 329 00:15:07,540 --> 00:15:11,070 Dan itu berjalan efektif dalam jendela pada Mac anda sendiri atau PC, 330 00:15:11,070 --> 00:15:15,080 sehingga cara ini langsung dari pintu gerbang di minggu 1, semua orang di sini di kelas 331 00:15:15,080 --> 00:15:17,590 memiliki akses ke alat yang sama, konfigurasi yang sama, 332 00:15:17,590 --> 00:15:21,250 dan tidak ada kurva belajar yang spesifik ke Mac atau PC pada khususnya. 333 00:15:21,250 --> 00:15:25,620 >> Sekarang kami membuka, bagian dalam CS50 alat pada hari Senin, program ini di sini. 334 00:15:25,620 --> 00:15:27,040 Hal ini terjadi untuk disebut gedit. 335 00:15:27,040 --> 00:15:29,050 Tapi itu benar-benar hanya editor grafis. 336 00:15:29,050 --> 00:15:33,170 Ini sesuatu seperti Notepad atau Teks Mengedit pada Windows atau Mac OS masing-masing. 337 00:15:33,170 --> 00:15:36,720 Dan saya mengusulkan bahwa ada yang benar-benar tiga bagian penting untuk layar ini. 338 00:15:36,720 --> 00:15:39,560 Sisi atas adalah di mana Anda akan menulis kode Anda. 339 00:15:39,560 --> 00:15:44,080 Dan di sanalah kami menghabiskan banyak kami tiga contoh dalam kuliah Senin. 340 00:15:44,080 --> 00:15:47,650 Bagian bawah kita disebut apa, jendela hitam ini, ya? 341 00:15:47,650 --> 00:15:48,640 >> MAHASISWA: Compiler? 342 00:15:48,640 --> 00:15:51,500 >> DAVID Malan: Compiler kami diakses dengan cara jendela itu. 343 00:15:51,500 --> 00:15:53,040 Tapi lebih umum. 344 00:15:53,040 --> 00:15:54,540 Ya, itu hanya sebuah jendela terminal. 345 00:15:54,540 --> 00:15:57,780 Ini adalah istilah kuno yang hanya menjelaskan pada dasarnya berkedip a 346 00:15:57,780 --> 00:16:01,910 prompt, bahwa tahun lalu digunakan untuk berada di salah satu dari mereka besar gaya CRT monitor. 347 00:16:01,910 --> 00:16:04,300 Tapi kini itu semacam virtual dalam perangkat lunak. 348 00:16:04,300 --> 00:16:06,710 Dan jendela terminal mari kita mengetik perintah. 349 00:16:06,710 --> 00:16:11,750 Ini semacam versi disederhanakan dari user interface atau UI. 350 00:16:11,750 --> 00:16:14,060 Ini bukan grafis yang user interface atau GUI, 351 00:16:14,060 --> 00:16:17,250 itu adalah antarmuka berbasis teks atau antarmuka baris perintah. 352 00:16:17,250 --> 00:16:20,770 >> Dan memang di situlah akhirnya Saya bisa menulis beberapa kode. 353 00:16:20,770 --> 00:16:24,200 Setelah saya telah menulis beberapa kode meskipun, ingat bahwa saya menggunakan perintah ini. 354 00:16:24,200 --> 00:16:26,210 Dan karena nama jenis menunjukkan, ini 355 00:16:26,210 --> 00:16:29,860 memungkinkan saya untuk membuat program yang disebut Hello. 356 00:16:29,860 --> 00:16:33,400 Tapi apa yang benar-benar lakukan? 357 00:16:33,400 --> 00:16:36,180 Nah make mengambil saya input, kode sumber, 358 00:16:36,180 --> 00:16:39,380 dan mengubahnya menjadi apa, akhirnya? 359 00:16:39,380 --> 00:16:40,060 >> Kode objek. 360 00:16:40,060 --> 00:16:42,790 Dan kode objek adalah hanya suka cara untuk mengatakan nol dan satu. 361 00:16:42,790 --> 00:16:46,420 Dan kemudian setelah aku ingin untuk menjalankan kode objek, 362 00:16:46,420 --> 00:16:50,940 setelah saya ingin lulus sebagai masukan yang nol dan satu ke komputer saya 363 00:16:50,940 --> 00:16:54,430 otak, yang disebut CPU atau central processing unit, 364 00:16:54,430 --> 00:16:55,730 Aku harus menjalankan program. 365 00:16:55,730 --> 00:16:59,042 Tapi itu tidak cukup sederhana, Senin hanya sebagai ganda mengklik beberapa ikon. 366 00:16:59,042 --> 00:17:01,375 Apa bukannya aku harus dilakukan dalam rangka untuk menjalankan sebuah program? 367 00:17:01,375 --> 00:17:04,130 368 00:17:04,130 --> 00:17:07,890 >> Apa itu perintah kedua? 369 00:17:07,890 --> 00:17:09,619 Aku mendengar garis miring kecil? 370 00:17:09,619 --> 00:17:10,544 Ya, ya? 371 00:17:10,544 --> 00:17:12,474 >> MAHASISWA: Dot tebang dan nama program. 372 00:17:12,474 --> 00:17:13,349 DAVID Malan: Tepat. 373 00:17:13,349 --> 00:17:15,030 Dot tebang dan nama program. 374 00:17:15,030 --> 00:17:16,210 Sekarang apa artinya ini? 375 00:17:16,210 --> 00:17:19,470 Nah dot hanya sebuah cara misterius mengatakan direktori saat ini. 376 00:17:19,470 --> 00:17:23,440 Apapun folder Anda berada dalam adalah direferensikan sebagai, yang direpresentasikan sebagai titik. 377 00:17:23,440 --> 00:17:26,680 Slash adalah hanya apa yang Anda telah melihat di Mac OS dan Windows selama bertahun-tahun, 378 00:17:26,680 --> 00:17:30,329 itu adalah pemisah antara direktori atau folder dan sisanya dari beberapa nama. 379 00:17:30,329 --> 00:17:32,620 Pada Windows itu terjadi untuk pergi mundur, di Linux dan Mac 380 00:17:32,620 --> 00:17:34,210 OS itu terjadi untuk pergi ke depan. 381 00:17:34,210 --> 00:17:37,560 Tapi itu hanya separator, sehingga hanya detail sintaksis menarik. 382 00:17:37,560 --> 00:17:40,440 >> Bagian juicy tentu saja nama program, Hello. 383 00:17:40,440 --> 00:17:42,650 Dan itulah yang membuat diciptakan untuk kita. 384 00:17:42,650 --> 00:17:44,910 Ini dikeluarkan file yang bagi kita. 385 00:17:44,910 --> 00:17:46,700 Tapi bagaimana kita sampai ke titik itu? 386 00:17:46,700 --> 00:17:48,870 Sekarang mari kita meminta pertanyaan, apa yang sebenarnya 387 00:17:48,870 --> 00:17:52,470 terjadi di sini, setidaknya dengan Sehubungan dengan beberapa sintaks ini? 388 00:17:52,470 --> 00:17:57,000 >> Jadi dalam kalimat atau lebih, bagaimana kita menjelaskan lebih jauh 389 00:17:57,000 --> 00:17:59,020 baris pertama ini yang disorot dalam warna hijau? 390 00:17:59,020 --> 00:18:02,998 Apa itu baris pertama melakukan, sehubungan dengan program saya? 391 00:18:02,998 --> 00:18:03,974 Ya? 392 00:18:03,974 --> 00:18:05,067 >> SISWA: [Tak terdengar]. 393 00:18:05,067 --> 00:18:06,150 DAVID Malan: Katakanlah lagi? 394 00:18:06,150 --> 00:18:08,734 MAHASISWA: Termasuk dan men-download fungsi masa lalu [Tak terdengar]. 395 00:18:08,734 --> 00:18:09,483 DAVID Malan: Good. 396 00:18:09,483 --> 00:18:11,900 Termasuk, saya tidak akan mengatakan men-download, tetapi katakanlah 397 00:18:11,900 --> 00:18:15,500 termasuk fungsi orang yang telah ditulis di masa lalu. 398 00:18:15,500 --> 00:18:18,260 Dan fungsi-fungsi diimplementasikan di suatu tempat di komputer saya. 399 00:18:18,260 --> 00:18:20,470 Seseorang menulis file tahun yang lalu, dan bahwa file 400 00:18:20,470 --> 00:18:23,490 adalah suatu tempat dalam dari CS50 alat, atau di harddisk 401 00:18:23,490 --> 00:18:24,480 lebih umum. 402 00:18:24,480 --> 00:18:27,810 Jadi baris ini pada dasarnya mengatakan, pergi mencari file, standar I / O dot 403 00:18:27,810 --> 00:18:31,740 h, dan copy dan paste isinya di sini di bagian atas file saya 404 00:18:31,740 --> 00:18:33,860 sehingga saya tidak perlu melakukannya secara manual sendiri. 405 00:18:33,860 --> 00:18:40,970 >> Dan di antara potongan-potongan juiciest dalam file kita diklaim adalah apa fungsi? 406 00:18:40,970 --> 00:18:45,740 Fungsi apa yang kita katakan dinyatakan atau disebutkan dalam standar I / O dot h 407 00:18:45,740 --> 00:18:47,120 kemungkinan besar? 408 00:18:47,120 --> 00:18:47,900 Printf, kan? 409 00:18:47,900 --> 00:18:50,797 Kami tidak menulis printf pada Senin, itu hanya ada. 410 00:18:50,797 --> 00:18:52,880 Sama seperti Alana hanya datang di atas panggung dan dia hanya 411 00:18:52,880 --> 00:18:55,540 ada dan tahu cara menggambar sesuatu di layar, 412 00:18:55,540 --> 00:18:58,660 sehingga tidak printf ada selama bertahun-tahun. 413 00:18:58,660 --> 00:19:00,240 Dan jadi ini adalah bagaimana kita mengaksesnya. 414 00:19:00,240 --> 00:19:03,280 Sekarang jika kita bergerak di sini, utama adalah kita analog 415 00:19:03,280 --> 00:19:06,620 dikatakan potongan puzzle disebut ketika bendera hijau diklik 416 00:19:06,620 --> 00:19:07,620 dalam dunia Scratch. 417 00:19:07,620 --> 00:19:10,130 Ini hanya semacam itu nama standar bahwa manusia 418 00:19:10,130 --> 00:19:13,340 memutuskan akan mewakili default titik masuk ke program. 419 00:19:13,340 --> 00:19:16,540 The serangkaian kode pemrograman yang dijalankan lebih dulu. 420 00:19:16,540 --> 00:19:19,700 >> Sementara ini kurung kurawal adalah jenis seperti bentuk melengkung 421 00:19:19,700 --> 00:19:21,410 dari banyak potongan-potongan awal kuning. 422 00:19:21,410 --> 00:19:24,860 Mereka agak merangkum seluruh sekelompok instruksi bersama-sama. 423 00:19:24,860 --> 00:19:28,350 Jadi hanya jenis mengikat bersama-sama beberapa fungsi yang terkait. 424 00:19:28,350 --> 00:19:33,750 printf tentu saja fungsi yang mencetak layar, seperti yang kita baru saja melakukannya. 425 00:19:33,750 --> 00:19:35,190 >> Bagaimana kurung ini? 426 00:19:35,190 --> 00:19:38,770 Bagaimana Anda akan define-- bahkan jika Anda sudah tidak pernah diprogram sebelumnya, tetapi hanya berdasarkan 427 00:19:38,770 --> 00:19:41,320 sekarang peningkatan semoga intuisi, apa 428 00:19:41,320 --> 00:19:43,290 yang tanda kurung lakukan bagi kita di sini? 429 00:19:43,290 --> 00:19:45,450 Atau apa yang mereka sekitarnya? 430 00:19:45,450 --> 00:19:46,360 Ya? 431 00:19:46,360 --> 00:19:49,360 >> MAHASISWA: Mereka bilang apa Anda akan mencetak dengan printf. 432 00:19:49,360 --> 00:19:52,401 >> DAVID Malan: Ya, mereka mengatakan apa Anda akan mencetak dengan printf. 433 00:19:52,401 --> 00:19:56,260 Atau lebih umum, mereka sekitar input ke fungsi. 434 00:19:56,260 --> 00:19:58,530 Jadi Anda hampir bisa memikirkan mereka kurung 435 00:19:58,530 --> 00:20:01,620 sebagai seperti logam klip pada clipboard ini. 436 00:20:01,620 --> 00:20:05,940 Itu yang memegang, itu apa akan digunakan untuk memberikan argumen 437 00:20:05,940 --> 00:20:08,500 ke dalam fungsi, yang pada hal ini disebut printf. 438 00:20:08,500 --> 00:20:12,390 >> Jadi secara umum hampir semua kali kita memanggil fungsi, 439 00:20:12,390 --> 00:20:14,280 kita akan melihat sepasang kurung. 440 00:20:14,280 --> 00:20:17,000 Mungkin dengan sesuatu di dalamnya, seperti sekarang, mungkin tidak ada di dalamnya. 441 00:20:17,000 --> 00:20:19,770 Tapi di situlah Anda akan menempatkan input atau disebut argumen 442 00:20:19,770 --> 00:20:20,680 ke fungsi. 443 00:20:20,680 --> 00:20:22,470 >> Berikut ini salah satu argumen tersebut. 444 00:20:22,470 --> 00:20:24,467 Aku sudah disorot segalanya antara tanda kutip, 445 00:20:24,467 --> 00:20:26,300 karena ternyata dalam bahasa ini disebut 446 00:20:26,300 --> 00:20:29,950 C, bila Anda ingin mewakili string-- itu adalah kata atau frase 447 00:20:29,950 --> 00:20:33,470 atau bahkan paragraph--, Anda harus mengelilingi dengan tanda kutip ganda. 448 00:20:33,470 --> 00:20:35,420 Kutipan tidak tunggal, tanda kutip ganda. 449 00:20:35,420 --> 00:20:37,460 Dan itulah yang saya lakukan di sini. 450 00:20:37,460 --> 00:20:39,900 >> Sementara itu ada yang funky simbol menjelang akhir sana. 451 00:20:39,900 --> 00:20:41,600 The backslash n. 452 00:20:41,600 --> 00:20:43,460 Apa yang kita katakan yang mewakili? 453 00:20:43,460 --> 00:20:44,093 Ya? 454 00:20:44,093 --> 00:20:44,980 >> SISWA: Sebuah baris baru. 455 00:20:44,980 --> 00:20:45,896 >> DAVID Malan: baris baru. 456 00:20:45,896 --> 00:20:47,910 Benar, Anda tidak umumnya tekan Enter saat 457 00:20:47,910 --> 00:20:50,430 Anda ingin program meludahkan baris baru. 458 00:20:50,430 --> 00:20:54,210 Sebaliknya Anda kirim secara eksplisit dengan sepotong diakui misterius ini 459 00:20:54,210 --> 00:20:58,770 sintaksis, backslash n, yang Anda ingin baris baru untuk pergi ke sana. 460 00:20:58,770 --> 00:20:59,810 Akhirnya titik koma. 461 00:20:59,810 --> 00:21:01,560 Kami tidak benar-benar berbicara terlalu banyak tentang hal ini, 462 00:21:01,560 --> 00:21:04,893 dan sejauh ini akan menjadi kutukan beberapa keberadaan Anda untuk masalah pertama 463 00:21:04,893 --> 00:21:07,990 mengatur, ketika Anda hanya gagal untuk menyadari Anda lupa sesuatu yang bodoh 464 00:21:07,990 --> 00:21:08,614 sebagai titik koma. 465 00:21:08,614 --> 00:21:11,600 Dan umumnya menempatkan akan memperbaiki masalah itu. 466 00:21:11,600 --> 00:21:13,511 Tapi apa yang dilakukannya bagi kita, yang akan Anda katakan? 467 00:21:13,511 --> 00:21:15,670 >> SISWA: [Tak terdengar]. 468 00:21:15,670 --> 00:21:17,484 >> DAVID Malan: Maaf? 469 00:21:17,484 --> 00:21:18,532 >> SISWA: [Tak terdengar]. 470 00:21:18,532 --> 00:21:19,990 DAVID Malan: Finishing pernyataan. 471 00:21:19,990 --> 00:21:22,770 Ini semacam seperti periode di akhir sebuah kalimat bahasa Inggris, 472 00:21:22,770 --> 00:21:25,790 sedangkan dalam bahasa ini C itu mengakhiri pernyataan. 473 00:21:25,790 --> 00:21:29,250 Instruksi pemrograman kode yang hanya Anda ingin mengatakan, 474 00:21:29,250 --> 00:21:30,500 Aku sudah selesai dengan ini. 475 00:21:30,500 --> 00:21:32,240 Sekarang melihat bahwa satu-satunya di sini. 476 00:21:32,240 --> 00:21:34,614 Jadi Anda tidak ingin masuk kebiasaan menempatkan titik koma 477 00:21:34,614 --> 00:21:36,190 setelah setiap kurung tertutup. 478 00:21:36,190 --> 00:21:38,610 Misalnya ada satu pun yang sebelah membatalkan, dan kita akan 479 00:21:38,610 --> 00:21:40,430 kembali di masa depan apa berarti batal. 480 00:21:40,430 --> 00:21:44,080 Tapi dalam kasus ini printf Anda adalah fungsi, atau pernyataan yang digunakan, 481 00:21:44,080 --> 00:21:47,420 dan jadi kami ingin memiliki terminal di bagian paling akhir itu. 482 00:21:47,420 --> 00:21:50,980 >> Dan aku sengaja memilih pada C. Dan terus terang banyak bahasa seperti C, C ++, 483 00:21:50,980 --> 00:21:55,000 Java, JavaScript, dan sejumlah bahasa lain memiliki banyak ini 484 00:21:55,000 --> 00:21:56,730 semacam rincian sintaksis. 485 00:21:56,730 --> 00:22:00,120 Yang pasti jika Anda baru untuk pemrograman benar-benar dapat perjalanan Anda sampai. 486 00:22:00,120 --> 00:22:02,307 Dan Anda akan, menandai saya kata-kata, beberapa dari Anda akan 487 00:22:02,307 --> 00:22:04,140 memiliki pengalaman ini di jam kantor atau akhir 488 00:22:04,140 --> 00:22:07,554 pada malam hari bekerja pada beberapa p-set, di mana Program sialan Anda hanya tidak mengkompilasi, 489 00:22:07,554 --> 00:22:09,470 itu tidak berjalan, Anda memiliki tidak tahu apa yang salah, 490 00:22:09,470 --> 00:22:11,513 tampaknya benar-benar logis benar untuk Anda. 491 00:22:11,513 --> 00:22:13,596 Dan itu karena Anda lupa sesuatu seperti memukul 492 00:22:13,596 --> 00:22:15,250 titik koma di akhir beberapa baris. 493 00:22:15,250 --> 00:22:17,590 >> Tetapi ini adalah hal-hal yang Anda akan segera belajar untuk melihat. 494 00:22:17,590 --> 00:22:20,048 Dan memang ini adalah hal-hal bahwa CA dan TF memiliki 495 00:22:20,048 --> 00:22:23,210 telah semacam dilatih untuk melihat jauh lebih cepat dari yang Anda. 496 00:22:23,210 --> 00:22:26,610 Dan jadi ini hanya untuk mengatakan, karena Anda menyelam ke dalam masalah set 1 khususnya, 497 00:22:26,610 --> 00:22:28,217 jangan frustrasi oleh hal-hal ini. 498 00:22:28,217 --> 00:22:30,050 Setelah Anda semacam menyesuaikan diri kepada dunia, Anda 499 00:22:30,050 --> 00:22:35,130 mulai melihat hal-hal yang Anda mungkin tidak lihat pada pandangan pertama minggu pertama ini. 500 00:22:35,130 --> 00:22:37,440 >> Jadi kode sumber adalah sesuatu seperti itu. 501 00:22:37,440 --> 00:22:40,370 Kami ingin lulus ke yang disebut compiler. 502 00:22:40,370 --> 00:22:42,850 Dan bahwa kompiler sebagai kami katakan menyediakan output 503 00:22:42,850 --> 00:22:45,660 disebut sebagai kode objek, disebut nol dan satu. 504 00:22:45,660 --> 00:22:47,747 Tapi dari sana, apa yang memberi kita? 505 00:22:47,747 --> 00:22:49,080 Yah itu memberi kita pola-pola ini. 506 00:22:49,080 --> 00:22:52,020 Dan lagi komputer Anda, Intel Anda di dalam, 507 00:22:52,020 --> 00:22:54,350 memahami pola-pola ini nol dan satu. 508 00:22:54,350 --> 00:22:57,300 Dan kadang-kadang pola merupakan angka desimal yang sebenarnya 509 00:22:57,300 --> 00:22:59,770 seperti yang kita lihat minggu lalu, kadang-kadang itu merupakan surat 510 00:22:59,770 --> 00:23:02,730 seperti yang kita lihat minggu lalu, kadang-kadang itu merupakan instruksi, 511 00:23:02,730 --> 00:23:05,460 seperti mencetak sesuatu ke layar. 512 00:23:05,460 --> 00:23:08,782 >> Jadi printf untuk instance-- melainkan, biarkan aku mundur. 513 00:23:08,782 --> 00:23:11,240 Kami telah mengambil untuk diberikan bahwa mereka nol dan satu yang 514 00:23:11,240 --> 00:23:14,200 dihasilkan oleh perintah ini make. 515 00:23:14,200 --> 00:23:16,050 Tapi make bukan kompilator. 516 00:23:16,050 --> 00:23:19,370 Membuat bukanlah hal yang di tengah yang memproduksi nol dan satu. 517 00:23:19,370 --> 00:23:23,780 Sebaliknya buat adalah hanya sangat nyaman program bernama yang tujuannya dalam hidup 518 00:23:23,780 --> 00:23:27,267 pada dasarnya untuk mengetahui bagaimana untuk mengkompilasi program Anda. 519 00:23:27,267 --> 00:23:29,350 Dan kita menggunakannya dalam ini minggu pertama karena hanya 520 00:23:29,350 --> 00:23:30,910 menyelamatkan kita banyak masalah. 521 00:23:30,910 --> 00:23:34,080 >> Tapi apa benar-benar membuat lakukan ketika Anda mengkompilasi halo, 522 00:23:34,080 --> 00:23:36,690 adalah, seperti yang kita katakan terakhir kali, itu mencari di hard drive Anda 523 00:23:36,690 --> 00:23:40,620 atau dalam folder saat ini, untuk file bernama apa, rupanya? 524 00:23:40,620 --> 00:23:41,815 Hello.c, kan? 525 00:23:41,815 --> 00:23:43,190 Itu hanya semacam konvensi. 526 00:23:43,190 --> 00:23:45,620 Ini sewenang-wenang, tapi itulah cara hal-hal yang. 527 00:23:45,620 --> 00:23:48,620 Membuat, jika Anda hanya menentukan nama dari sebuah program yang belum ada, 528 00:23:48,620 --> 00:23:52,200 itu akan mencari source code dalam file, secara default berarti hello.c. 529 00:23:52,200 --> 00:23:53,530 Dan jika menemukan itu, besar. 530 00:23:53,530 --> 00:23:56,650 Ini akan mengkonversi sumber yang kode ke kode objek untuk Anda. 531 00:23:56,650 --> 00:23:59,670 >> Tapi setiap kali aku tekan Enter setelah menjalankan membuat halo, 532 00:23:59,670 --> 00:24:03,560 apakah Anda ingat melihat terakhir kali cukup panjang dan urutan samar 533 00:24:03,560 --> 00:24:06,430 surat putih lainnya dan karakter di layar? 534 00:24:06,430 --> 00:24:11,220 Nah itu adalah perintah yang sebenarnya, compiler yang sebenarnya, yang berjalan. 535 00:24:11,220 --> 00:24:15,500 Jadi compiler yang sebenarnya kita akan menggunakan sebagian besar semester adalah sesuatu yang disebut dentang. 536 00:24:15,500 --> 00:24:19,280 Beberapa dari Anda mungkin telah menggunakan Visual Studio sebelumnya, atau GCC, 537 00:24:19,280 --> 00:24:21,340 atau sejumlah kompiler lain. 538 00:24:21,340 --> 00:24:22,620 Kami akan menggunakan dentang. 539 00:24:22,620 --> 00:24:26,950 >> Dan dentang memungkinkan kita untuk benar-benar mengubah kode sumber untuk objek kode. 540 00:24:26,950 --> 00:24:29,430 Apa sebenarnya ini berarti dalam praktek? 541 00:24:29,430 --> 00:24:33,390 Yah biarkan aku pergi ke salah satu folder saya dari terakhir kali. 542 00:24:33,390 --> 00:24:35,760 Di dalam alat CS50. 543 00:24:35,760 --> 00:24:42,080 Dan biarkan aku pergi ke depan dan membuat ini file yang sama, termasuk standar I / O dot h. 544 00:24:42,080 --> 00:24:42,875 Int void main. 545 00:24:42,875 --> 00:24:46,000 Dan kami akan kembali di masa depan sebagai apa int berarti dan apa batal berarti. 546 00:24:46,000 --> 00:24:49,130 Tapi untuk saat ini mari kita lakukan halo backslash dunia n, 547 00:24:49,130 --> 00:24:50,500 sama seperti yang kami lakukan di papan tulis. 548 00:24:50,500 --> 00:24:53,930 >> Mari saya simpan file ini disebut hello.c. 549 00:24:53,930 --> 00:24:58,280 Dan jika saya ingin mengkompilasi ini Aku bisa-- biar tampilannya in-- run 550 00:24:58,280 --> 00:25:00,450 membuat halo masukkan. 551 00:25:00,450 --> 00:25:02,645 Dan ini lagi adalah garis sangat samar. 552 00:25:02,645 --> 00:25:05,120 Tapi sekarang setidaknya satu kata mungkin melompat keluar pada Anda. 553 00:25:05,120 --> 00:25:07,087 Dentang adalah bahwa garis yang kita lihat sebelumnya. 554 00:25:07,087 --> 00:25:10,420 Sekarang ada banyak hal-hal lain terus terang bahwa kita akan gelombang tangan kami di untuk hari ini. 555 00:25:10,420 --> 00:25:14,020 Tapi ada beberapa subset, beberapa karakter di sini 556 00:25:14,020 --> 00:25:14,907 yang menarik. 557 00:25:14,907 --> 00:25:16,490 Tapi aku akan pergi ke depan dan melakukannya. 558 00:25:16,490 --> 00:25:18,281 Aku akan pertama kali dijalankan halo, hanya untuk membuktikan 559 00:25:18,281 --> 00:25:20,320 bahwa ini bekerja seperti itu Senin. 560 00:25:20,320 --> 00:25:22,330 Tapi sekarang aku akan menghapus program. 561 00:25:22,330 --> 00:25:25,870 Dan seperti yang kita punya ini nama pendek terakhir kali, 562 00:25:25,870 --> 00:25:29,787 perintah untuk menghapus sesuatu yang rm, menghapus, masukkan. 563 00:25:29,787 --> 00:25:31,870 Anda akan mendapatkan beberapa pertanyaan yang cukup samar. 564 00:25:31,870 --> 00:25:35,210 Sulit untuk percaya bahwa Anda dapat membuat bahkan pertanyaan ini sulit dimengerti. 565 00:25:35,210 --> 00:25:38,100 Tapi menghapus berkas halo biasa saja berarti apakah Anda ingin menghapus halo. 566 00:25:38,100 --> 00:25:42,650 >> Dan aku bisa pergi ke depan dan ketik y untuk ya, Enter, dan sekarang hilang. 567 00:25:42,650 --> 00:25:45,130 Apa ini berarti sekarang, jika saya membersihkan layar saya, 568 00:25:45,130 --> 00:25:47,301 adalah bahwa alih-alih melakukan make hello-- Anda 569 00:25:47,301 --> 00:25:48,800 tahu apa, saya mendapatkan pandai dalam hal ini. 570 00:25:48,800 --> 00:25:50,690 Aku akan menjalankan compiler sendiri. 571 00:25:50,690 --> 00:25:53,330 Aku tidak butuh program untuk mencari tahu apa file saya disebut. 572 00:25:53,330 --> 00:25:55,370 Aku menulis hello.c, saya tahu apa namanya, 573 00:25:55,370 --> 00:25:57,640 Aku jelas mampu mengetik itu. 574 00:25:57,640 --> 00:26:02,620 Jadi aku akan pergi ke depan dan jangan dentang hello.c Enter. 575 00:26:02,620 --> 00:26:03,264 >> Sepertinya untuk bekerja. 576 00:26:03,264 --> 00:26:05,930 Dan tidak ada output tambahan, karena dentang adalah compiler. 577 00:26:05,930 --> 00:26:08,590 Ini adalah apa yang mengubah source code untuk nol dan satu. 578 00:26:08,590 --> 00:26:12,870 Jadi jika sekarang saya lakukan dot slash halo Enter, hm. 579 00:26:12,870 --> 00:26:14,630 Pesan kesalahan baru hari ini. 580 00:26:14,630 --> 00:26:17,610 Jadi bash hanya nama berkedip cepat yang kita gunakan. 581 00:26:17,610 --> 00:26:20,360 Itu terlalu menyederhanakan, tapi untuk saat itu saja yaitu, 582 00:26:20,360 --> 00:26:21,401 itu prompt berkedip. 583 00:26:21,401 --> 00:26:22,880 Dan itulah mengapa itu berteriak pada kita. 584 00:26:22,880 --> 00:26:25,690 >> Tidak ada berkas atau direktori adalah sedikit lebih mudah. 585 00:26:25,690 --> 00:26:28,190 Tapi tentunya saya membuat kode objek. 586 00:26:28,190 --> 00:26:30,930 Tapi menangkap adalah, bahwa jika saya ketik perintah 587 00:26:30,930 --> 00:26:34,650 untuk menunjukkan isi dari ini direktori, yang adalah apa? 588 00:26:34,650 --> 00:26:36,210 ls untuk daftar. 589 00:26:36,210 --> 00:26:39,332 Ada banyak hal di sini, beberapa di antaranya datang dengan alat, 590 00:26:39,332 --> 00:26:42,040 seperti folder Desktop saya, Downloads folder, folder Dropbox, dan semua 591 00:26:42,040 --> 00:26:42,850 bahwa barang-barang. 592 00:26:42,850 --> 00:26:45,410 Tapi apa yang menarik adalah hello.c, yang 593 00:26:45,410 --> 00:26:47,286 Saya membuat beberapa saat yang lalu dengan gedit. 594 00:26:47,286 --> 00:26:49,160 Dan apa yang paling aneh Nama cari di sini, 595 00:26:49,160 --> 00:26:53,110 mungkin bahwa kita tidak lihat terakhir kali sama sekali? 596 00:26:53,110 --> 00:26:54,710 >> a.out, kan? 597 00:26:54,710 --> 00:26:56,920 Jadi kembali pada hari, itu hanya memutuskan bahwa ketika 598 00:26:56,920 --> 00:26:58,760 Anda mengkompilasi sebuah program untuk pertama kalinya, 599 00:26:58,760 --> 00:27:02,360 dan Anda tidak menentukan nama dari file, sebut saja a. 600 00:27:02,360 --> 00:27:05,800 Dan a.out hanya berarti ini output dari compiler. 601 00:27:05,800 --> 00:27:07,790 Jadi itu adalah nama yang mengerikan untuk suatu program. 602 00:27:07,790 --> 00:27:12,820 Tapi dengan logika itu, dot slash untuk direktori saat ini, slash a.out, 603 00:27:12,820 --> 00:27:16,102 seharusnya berarti ada sebenarnya saya hello Program dunia. 604 00:27:16,102 --> 00:27:17,560 Sekarang sedikit yang pemanasan latihan, juga. 605 00:27:17,560 --> 00:27:20,420 Jika saya ingin mengubah nama ini File, ternyata Anda 606 00:27:20,420 --> 00:27:23,000 memindahkan file dari satu nama yang lain. 607 00:27:23,000 --> 00:27:28,750 A.out Jadi mv, dan kemudian aku dapat menyebutnya halo Enter. 608 00:27:28,750 --> 00:27:30,940 Jadi ini adalah perintah Linux. 609 00:27:30,940 --> 00:27:34,370 DOS memiliki ini tahun yang lalu, Windows memiliki jendela terminal 610 00:27:34,370 --> 00:27:36,460 dari beberapa macam yang terlihat seperti ini, Linux dan Mac 611 00:27:36,460 --> 00:27:38,140 komputer memiliki cepat berkedip ini. 612 00:27:38,140 --> 00:27:41,490 Meskipun sebagian besar dari kita mungkin jarang, jika pernah, menggunakannya. 613 00:27:41,490 --> 00:27:44,590 >> Tapi apa yang saya lakukan adalah menjalankan Program, yang namanya mv, 614 00:27:44,590 --> 00:27:47,900 dan saya berikan dengan dua argumen, sehingga untuk berbicara. 615 00:27:47,900 --> 00:27:48,630 Dua input. 616 00:27:48,630 --> 00:27:50,260 a.out adalah nama asli. 617 00:27:50,260 --> 00:27:51,630 Halo adalah nama baru. 618 00:27:51,630 --> 00:27:55,670 Jadi jika sekarang saya lakukan dot slash halo, Enter, yang ada. 619 00:27:55,670 --> 00:28:00,770 Dan jika saya lakukan dot slash a.out, apa yang Anda harapkan saya harus lihat? 620 00:28:00,770 --> 00:28:02,250 >> Bash, tidak ada berkas atau direktori. 621 00:28:02,250 --> 00:28:03,350 Karena aku hanya menamainya. 622 00:28:03,350 --> 00:28:04,975 Jadi ini mengambil sedikit membiasakan diri. 623 00:28:04,975 --> 00:28:06,977 Tapi masalahnya set 1 spesifikasi akan benar-benar 624 00:28:06,977 --> 00:28:08,810 memegang tangan Anda melalui beberapa minutae ini. 625 00:28:08,810 --> 00:28:11,050 Karena ini adalah lengkap gangguan intelektual 626 00:28:11,050 --> 00:28:12,966 dari lebih menarik ide di tangan, yang 627 00:28:12,966 --> 00:28:15,310 sebenarnya menciptakan sesuatu dari kode. 628 00:28:15,310 --> 00:28:18,830 Tapi mari kita lakukan satu modifikasi sekarang untuk program ini. 629 00:28:18,830 --> 00:28:23,150 >> Ingat bahwa terakhir kali aku melakukan sesuatu seperti ini, printf sebutkan nama. 630 00:28:23,150 --> 00:28:25,790 Dan memang kita hanya melakukan ini di layar lebar di sana. 631 00:28:25,790 --> 00:28:30,640 Dan kemudian saya melakukan string s mendapat GetString paren terbuka, paren dekat. 632 00:28:30,640 --> 00:28:33,430 Dan paren hanya singkatan notasi untuk kurung. 633 00:28:33,430 --> 00:28:36,460 Jadi tidak GetString mengambil argumen? 634 00:28:36,460 --> 00:28:38,440 Tidak ada input tidak, tapi membutuhkan tanda kurung, 635 00:28:38,440 --> 00:28:41,830 karena itulah yang demarcates pemanggilan fungsi. 636 00:28:41,830 --> 00:28:46,440 >> Jadi aku akan pergi ke depan dan mencoba untuk menjalankan kompiler pada program ini sekarang. 637 00:28:46,440 --> 00:28:50,774 Dentang hello.c, karena saya tidak mengubah namanya untuk saat ini. 638 00:28:50,774 --> 00:28:51,940 Dan aku punya banyak kesalahan. 639 00:28:51,940 --> 00:28:53,570 Mari kita zoom out di sini. 640 00:28:53,570 --> 00:28:55,420 Jika saya gulir ke atas lagi, seperti saya katakan terakhir kali, 641 00:28:55,420 --> 00:28:58,420 dengan yang pertama, kesalahan yang sama bahwa aku terakhir kali. 642 00:28:58,420 --> 00:29:04,210 On line 6 dari hello.c saya memiliki dideklarasikan string identifier, 643 00:29:04,210 --> 00:29:05,590 aku maksud standar? 644 00:29:05,590 --> 00:29:06,750 Aku tidak. 645 00:29:06,750 --> 00:29:10,050 Karena apa kesalahan telah saya buat dalam hal ini Program, jika Anda ingat dari terakhir kali? 646 00:29:10,050 --> 00:29:13,219 647 00:29:13,219 --> 00:29:15,010 Ya, kita membutuhkan disebut roda pelatihan 648 00:29:15,010 --> 00:29:16,510 bahwa kita hanya akan digunakan untuk beberapa minggu. 649 00:29:16,510 --> 00:29:19,480 Tapi aku perlu menentukan bahwa juga, suatu tempat di dalam alat, 650 00:29:19,480 --> 00:29:22,720 adalah file yang kita tulis hanya beberapa tahun yang lalu. 651 00:29:22,720 --> 00:29:26,500 Di dalam yang merupakan fungsi seperti tampaknya GetString. 652 00:29:26,500 --> 00:29:35,160 Jadi sekarang jika aku kembali ke sini, memperbesar, dan kembali menjalankan dentang hello.c. 653 00:29:35,160 --> 00:29:36,500 Sial, kesalahan lain. 654 00:29:36,500 --> 00:29:38,590 Tapi kami belum melihat ini sebelumnya. 655 00:29:38,590 --> 00:29:41,900 >> Yang ini sedikit lebih esoteris untuk mencari tahu. 656 00:29:41,900 --> 00:29:46,910 Tapi ini sengaja di layar, karena kami ingin menceritakan kisah ini. 657 00:29:46,910 --> 00:29:51,280 Ketika anda mengkompilasi hello.c, seperti gambar dari sebelumnya disarankan, 658 00:29:51,280 --> 00:29:54,650 Anda hanya mengkonversi yang source code untuk nol dan satu. 659 00:29:54,650 --> 00:30:00,340 Sekarang staf CS50 beberapa tahun yang lalu menulis CS50.h, dan file yang sesuai, 660 00:30:00,340 --> 00:30:01,640 CS50.c. 661 00:30:01,640 --> 00:30:04,490 Dan kami, beberapa tahun yang lalu, dikompilasi file-file 662 00:30:04,490 --> 00:30:07,290 ke file yang terjadi disebut CS50.o. 663 00:30:07,290 --> 00:30:09,180 >> Atau dapat diganti dengan beberapa hal yang berbeda. 664 00:30:09,180 --> 00:30:11,054 Tapi itu cara yang mudah berpikir tentang hal itu. 665 00:30:11,054 --> 00:30:14,960 Jadi kita dikompilasi CS50 ini perpustakaan menjadi nol dan satu. 666 00:30:14,960 --> 00:30:20,340 Tapi tempat ini saya ditentukan bahwa saya ingin menggabungkan nol saya 667 00:30:20,340 --> 00:30:24,030 dan orang-orang untuk hello world saya Program dengan nol dan satu 668 00:30:24,030 --> 00:30:29,760 bahwa staf CS50 menciptakan beberapa tahun lalu menjadi satu program yang lengkap. 669 00:30:29,760 --> 00:30:34,100 Semua saya telah ditentukan dengan menulis hello.c dentang adalah kompilasi hello.c. 670 00:30:34,100 --> 00:30:38,380 >> Aku sudah tidak diberitahu dentang ke link dalam nol dan satu 671 00:30:38,380 --> 00:30:41,650 bahwa staf CS50 dibuat untuk Anda beberapa waktu lalu. 672 00:30:41,650 --> 00:30:48,280 Jadi memperbaiki yang mudah, lari l untuk link, CS50. 673 00:30:48,280 --> 00:30:52,600 Dan kita kembali akan melihat ini tak lama lagi dan lagi. 674 00:30:52,600 --> 00:30:54,420 Tapi perhatikan sekarang tidak ada keluhan. 675 00:30:54,420 --> 00:30:59,770 Jadi sekarang jika saya menjalankan dot slash halo, sekarang bekerja. 676 00:30:59,770 --> 00:31:03,840 Meskipun itu sedikit menyesatkan karena saya hanya diciptakan file apa? 677 00:31:03,840 --> 00:31:05,880 a.out. 678 00:31:05,880 --> 00:31:07,930 >> Jadi biarkan aku mundur untuk sesaat. 679 00:31:07,930 --> 00:31:10,900 Program kami hanya dikompilasi memiliki tiga baris kode. 680 00:31:10,900 --> 00:31:14,710 Ketika aku berlari hello world, halo sesaat lalu, saya tidak melihat sebutkan nama. 681 00:31:14,710 --> 00:31:17,080 Dan itu karena aku berlari versi lama program. 682 00:31:17,080 --> 00:31:22,700 Tapi kalau aku memang menjalankan dot slash a.out Masukkan, sebutkan nama, Rob, halo, 683 00:31:22,700 --> 00:31:23,370 dunia. 684 00:31:23,370 --> 00:31:23,870 Hm. 685 00:31:23,870 --> 00:31:26,110 Itu semacam bug. 686 00:31:26,110 --> 00:31:28,560 Mungkin bermaksud mengatakan Rob, kan? 687 00:31:28,560 --> 00:31:30,997 Jadi apa perbaikan di sini dalam kode. 688 00:31:30,997 --> 00:31:31,872 SISWA: [Tak terdengar]. 689 00:31:31,872 --> 00:31:38,415 690 00:31:38,415 --> 00:31:39,290 DAVID Malan: Tepat. 691 00:31:39,290 --> 00:31:43,160 Jadi saya hanya perlu membuat Tweak akhir sehingga aku lewat di placeholder, 692 00:31:43,160 --> 00:31:45,690 seperti mengisi kosong, seperti yang kita lakukan beberapa saat yang lalu. 693 00:31:45,690 --> 00:31:47,870 Tapi persen s sekarang yang mengisi kosong. 694 00:31:47,870 --> 00:31:52,100 Jadi akhirnya mari kita mengungkapkan terakhir detail sehingga tidak ada sihir. 695 00:31:52,100 --> 00:31:54,090 Aku akan pergi ke depan dan menyingkirkan hellow. 696 00:31:54,090 --> 00:31:56,070 Aku akan pergi ke depan dan menyingkirkan a.out. 697 00:31:56,070 --> 00:31:58,410 Jadi sekarang saya tidak memiliki program, hanya kode sumber. 698 00:31:58,410 --> 00:32:01,100 Dan aku akan menjalankan perintah sedikit lebih panjang, dentang 699 00:32:01,100 --> 00:32:05,650 lari o halo hello.c dasbor LCS50. 700 00:32:05,650 --> 00:32:08,700 >> Sekarang ini mulai semacam pergi di satu telinga dan keluar yang lain mungkin. 701 00:32:08,700 --> 00:32:10,366 Tapi menggoda selain apa ini lakukan. 702 00:32:10,366 --> 00:32:14,910 Dentang adalah compiler, dasbor LCS50 sengaja di akhir 703 00:32:14,910 --> 00:32:18,330 melakukan apa dalam sebuah kalimat? 704 00:32:18,330 --> 00:32:19,607 Link ke perpustakaan CS50. 705 00:32:19,607 --> 00:32:21,440 Meraih nol dan orang yang staf membuat 706 00:32:21,440 --> 00:32:23,310 dan crams ke dalam program saya sendiri. 707 00:32:23,310 --> 00:32:27,040 Jadi pertanyaan terakhir di tangan adalah, apa dasbor o halo mungkin 708 00:32:27,040 --> 00:32:30,530 lakukan, bahkan jika Anda belum pernah melihat sintaks ini sebelumnya? 709 00:32:30,530 --> 00:32:34,920 >> Keluaran program yang tidak bernama a.out default. 710 00:32:34,920 --> 00:32:37,330 Sebaliknya itu bernama hello. 711 00:32:37,330 --> 00:32:39,460 Jadi sekarang tidak ada a.out. 712 00:32:39,460 --> 00:32:42,660 Tidak ada berkas atau direktori, karena saya secara eksplisit mengatakan 713 00:32:42,660 --> 00:32:46,720 memanggil program ini hello, sehingga Saya sekarang bisa mengetikkan nama seperti itu 714 00:32:46,720 --> 00:32:47,790 dan memilikinya berperilaku. 715 00:32:47,790 --> 00:32:50,180 >> Sekarang terus terang, anak laki-laki adalah bahwa menarik untuk memiliki 716 00:32:50,180 --> 00:32:52,170 untuk mengingat semua itu sedikit minutia, kan? 717 00:32:52,170 --> 00:32:54,180 Jadi mari kita pergi ke depan dan menyingkirkan halo lagi. 718 00:32:54,180 --> 00:32:57,880 Dan mari kita kembali ke dunia di yang sudah cukup untuk mengatakan membuat halo. 719 00:32:57,880 --> 00:33:00,410 Tapi itu sihir yang membuat lakukan untuk Anda, 720 00:33:00,410 --> 00:33:02,320 itulah kebosanan yang itu lakukan untuk Anda. 721 00:33:02,320 --> 00:33:04,630 Dan sebagai program kami dan masalah mendapatkan lebih kompleks, 722 00:33:04,630 --> 00:33:06,142 buat akan benar-benar menjadi teman Anda. 723 00:33:06,142 --> 00:33:07,850 Karena tidak terlalu lama dari sekarang kita akan 724 00:33:07,850 --> 00:33:11,150 memiliki program yang ditulis tidak dengan satu file, tapi beberapa file, 725 00:33:11,150 --> 00:33:16,310 dan membuat akan mengotomatisasi proses kompilasi semua itu untuk kita bersama-sama. 726 00:33:16,310 --> 00:33:20,620 >> Jadi sekarang dicetak. 727 00:33:20,620 --> 00:33:24,960 printf adalah dalam file ini, standar I / O dot h, yang telah kita lihat sebelumnya, 728 00:33:24,960 --> 00:33:26,980 tapi ada lebih banyak untuk printf dari itu. 729 00:33:26,980 --> 00:33:30,482 Ada backslash n, tapi ada juga sekelompok escape sequence lainnya. 730 00:33:30,482 --> 00:33:32,940 Dan urutan escape hanya cara mewah untuk mengatakan sesuatu 731 00:33:32,940 --> 00:33:35,990 yang dimulai dengan garis miring terbalik, bukan garis miring, garis miring terbalik, 732 00:33:35,990 --> 00:33:37,920 dan melakukan beberapa hal khusus. 733 00:33:37,920 --> 00:33:43,770 Dan kita tidak akan memikirkan sebagian besar, tapi mengapa ada backslash kutip ganda, 734 00:33:43,770 --> 00:33:44,830 Menurut Anda? 735 00:33:44,830 --> 00:33:48,010 Mengapa ada urutan aneh ini karakter, backslash kutip ganda, 736 00:33:48,010 --> 00:33:50,505 mengapa mungkin itu akan berguna? 737 00:33:50,505 --> 00:33:51,380 SISWA: [Tak terdengar]. 738 00:33:51,380 --> 00:33:56,594 739 00:33:56,594 --> 00:33:57,760 DAVID Malan: Tepat, kan? 740 00:33:57,760 --> 00:34:01,830 Pikirkan kembali ke program hello world kami bahwa kita telah melihat beberapa kali sekarang, 741 00:34:01,830 --> 00:34:05,880 setiap kali kita telah melihat bahwa dunia halo Program kami sudah tanda kutip ganda dalam 742 00:34:05,880 --> 00:34:08,210 satunya adalah halo koma dunia n backslash. 743 00:34:08,210 --> 00:34:10,070 Tapi berpikir untuk diri sendiri, bagaimana jika Anda benar-benar 744 00:34:10,070 --> 00:34:12,520 ingin mencetak tanda kutip? 745 00:34:12,520 --> 00:34:16,100 Insting pertama Anda mungkin, saya tidak tahu mengapa saya mungkin ingin do-- sini, 746 00:34:16,100 --> 00:34:18,780 kita bisa menjadi pasif sedikit agresif, halo teman. 747 00:34:18,780 --> 00:34:21,350 Kita mungkin ingin melakukan sesuatu seperti itu. 748 00:34:21,350 --> 00:34:25,230 >> Tapi mengapa sekarang ini bermasalah? 749 00:34:25,230 --> 00:34:28,730 Mengabaikan tanda kutip keriting samping yang keynote dibuat untuk kita secara otomatis. 750 00:34:28,730 --> 00:34:29,730 Mengapa hal ini bermasalah? 751 00:34:29,730 --> 00:34:36,719 752 00:34:36,719 --> 00:34:37,270 >> Tepat. 753 00:34:37,270 --> 00:34:39,022 Karena kita punya seperti 4 tanda kutip. 754 00:34:39,022 --> 00:34:41,230 Nah yang pertama mungkin berjalan dengan yang kedua, 755 00:34:41,230 --> 00:34:43,271 dan mungkin yang keempat berjalan dengan yang ketiga, 756 00:34:43,271 --> 00:34:46,170 atau, maksudku aku bahkan tidak yakin, juga bukan komputer akan menjadi. 757 00:34:46,170 --> 00:34:48,352 Komputer lagi, kompiler lagi, cukup bodoh. 758 00:34:48,352 --> 00:34:50,060 Mereka hanya akan melakukan apa yang Anda memberitahu mereka untuk melakukannya. 759 00:34:50,060 --> 00:34:54,270 Dan jika Anda tidak ambigu mereka mungkin akan melempar kesalahan. 760 00:34:54,270 --> 00:34:57,700 >> Jika Anda tidak jelas bagaimana untuk membuat selai kacang dan jelly sandwich yang 761 00:34:57,700 --> 00:34:59,510 hal-hal aneh yang mungkin tiba. 762 00:34:59,510 --> 00:35:00,580 Ini ide yang sama. 763 00:35:00,580 --> 00:35:03,100 Sekarang cukup untuk mengatakan ada beberapa escape sequence lainnya, 764 00:35:03,100 --> 00:35:04,820 namun kami akan datang kepada mereka sebelum lama. 765 00:35:04,820 --> 00:35:07,410 Pada dasarnya melarikan diri ini urutan mewakili sesuatu 766 00:35:07,410 --> 00:35:10,480 bahwa Anda mungkin tidak dapat terlalu mudah di keyboard, 767 00:35:10,480 --> 00:35:12,010 tanpa membingungkan komputer. 768 00:35:12,010 --> 00:35:15,733 >> Sekarang sementara itu kami memiliki penampung di printf. 769 00:35:15,733 --> 00:35:19,630 Persen d, yang juga dapat ditulis di hampir semua kasus sebagai persen i, 770 00:35:19,630 --> 00:35:21,610 merupakan tempat bagi jenis data? 771 00:35:21,610 --> 00:35:23,920 Apa jenis nilai? 772 00:35:23,920 --> 00:35:24,920 Sejumlah desimal. 773 00:35:24,920 --> 00:35:27,234 Jadi sebenarnya kita akan mulai menggunakan persen i karena 774 00:35:27,234 --> 00:35:28,650 sedikit lebih sederhana, seperti integer. 775 00:35:28,650 --> 00:35:29,550 Persen i. 776 00:35:29,550 --> 00:35:31,320 Integer yang kebetulan desimal. 777 00:35:31,320 --> 00:35:35,690 >> Persen s kita sudah katakan sebuah tempat untuk string. 778 00:35:35,690 --> 00:35:38,630 Yang hanya sebuah kata, frase, sebuah paragraf, esai, apa pun. 779 00:35:38,630 --> 00:35:40,830 Ini adalah urutan karakter dari beberapa panjang. 780 00:35:40,830 --> 00:35:42,820 Dan kita akan melihat sebelum lama beberapa orang lain tersebut. 781 00:35:42,820 --> 00:35:45,950 Tapi persen c adalah untuk satu karakter. 782 00:35:45,950 --> 00:35:48,500 Persen f adalah untuk angka floating point, 783 00:35:48,500 --> 00:35:50,860 seperti bilangan real yang memiliki titik desimal di dalamnya, yang 784 00:35:50,860 --> 00:35:52,550 tentu saja tidak integer. 785 00:35:52,550 --> 00:35:54,670 Dan di sana ada banyak sekelompok orang lain juga. 786 00:35:54,670 --> 00:35:56,990 >> Sementara itu di C, dan dalam banyak bahasa, 787 00:35:56,990 --> 00:35:58,650 kami memiliki tipe data yang berbeda. 788 00:35:58,650 --> 00:36:00,650 Berbagai jenis kaca mangkuk jika Anda mau. 789 00:36:00,650 --> 00:36:03,830 Mangkuk saya gunakan terakhir kali adalah untuk bola ping pong, 790 00:36:03,830 --> 00:36:06,990 tetapi kita juga dapat menyimpan berbagai nilai-nilai seperti karakter dan string 791 00:36:06,990 --> 00:36:10,820 dan bilangan bulat dalam wadah, seperti sebuah variabel, dan C memiliki ini. 792 00:36:10,820 --> 00:36:14,020 Char adalah tipe data, jenis variabel, 793 00:36:14,020 --> 00:36:15,700 di mana Anda dapat menyimpan karakter. 794 00:36:15,700 --> 00:36:19,560 Lampung adalah jenis variabel dalam yang dapat Anda menyimpan bilangan real. 795 00:36:19,560 --> 00:36:21,220 >> Int tentu saja untuk int. 796 00:36:21,220 --> 00:36:23,760 Dan agak ridiculously bernama lama 797 00:36:23,760 --> 00:36:26,830 adalah di mana Anda dapat menyimpan dasarnya nomor yang sangat panjang, bahkan dengan 798 00:36:26,830 --> 00:36:29,930 lebih digit maka khas int toko mungkin. 799 00:36:29,930 --> 00:36:32,420 Tapi kita akan kembali ke sebelum lama. 800 00:36:32,420 --> 00:36:35,520 >> Dalam CS50 dot h sementara file header lain 801 00:36:35,520 --> 00:36:37,630 bahwa kita telah melihat pasangan kali digunakan, ada 802 00:36:37,630 --> 00:36:41,350 dua jenis data lain yang tidak ada di C biasanya. 803 00:36:41,350 --> 00:36:45,000 Salah satunya adalah tali, dan kita akan lihat di beberapa minggu apa string yang benar-benar 804 00:36:45,000 --> 00:36:46,610 adalah di bawah tenda. 805 00:36:46,610 --> 00:36:47,950 Dan satu bool. 806 00:36:47,950 --> 00:36:51,650 Dan bool adalah variabel yang hanya dapat mengambil nilai-nilai tertentu. 807 00:36:51,650 --> 00:36:54,370 Dan hanya berdasarkan minggu lalu penjelasan Scratch, 808 00:36:54,370 --> 00:36:56,680 dan baru-baru C, apa yang akan Anda menebak 809 00:36:56,680 --> 00:37:01,770 adalah dua nilai yang mungkin untuk beberapa wadah yang adalah tipe bool? 810 00:37:01,770 --> 00:37:02,860 >> Ya dan tidak. 811 00:37:02,860 --> 00:37:03,870 Satu dan nol. 812 00:37:03,870 --> 00:37:04,502 Benar atau salah. 813 00:37:04,502 --> 00:37:07,460 Dan memang itu yang terakhir yang cenderung menjadi konvensional dalam pemrograman sebuah 814 00:37:07,460 --> 00:37:10,030 bahasa, mengatakan sesuatu seperti benar atau salah. 815 00:37:10,030 --> 00:37:13,160 >> Sementara perpustakaan CS50 datang dengan sekelompok fungsi 816 00:37:13,160 --> 00:37:16,640 bahwa staf menulis untuk Anda, selain hanya mendapatkan string. 817 00:37:16,640 --> 00:37:20,910 Kami menulis dalam fungsi sebelumnya bahwa bisa mendapatkan bilangan bulat dari pengguna, 818 00:37:20,910 --> 00:37:22,990 mendapatkan karakter tunggal, mendapatkan pelampung, yang 819 00:37:22,990 --> 00:37:25,160 adalah hanya nomor dengan titik desimal. 820 00:37:25,160 --> 00:37:28,290 Dapatkan lama, benar-benar nilai besar dari pengguna. 821 00:37:28,290 --> 00:37:30,930 Jadi kita hanya melihat ini di tindakan dalam bentuk GetString. 822 00:37:30,930 --> 00:37:33,230 Tapi melalui fungsi-fungsi ini akan segera bisa menulis 823 00:37:33,230 --> 00:37:36,070 program yang mendapatkan masukan dari pengguna. 824 00:37:36,070 --> 00:37:39,230 >> Sementara mempertimbangkan ini Program, dan mempertimbangkan 825 00:37:39,230 --> 00:37:42,600 bagaimana kita bisa sekarang mulai menambahkan untuk itu dengan konstruksi baru. 826 00:37:42,600 --> 00:37:44,530 Sebuah angin puyuh tur cepat dan kemudian kita akan melihat 827 00:37:44,530 --> 00:37:47,340 di beberapa menulis beberapa program secara manual diri kita sendiri. 828 00:37:47,340 --> 00:37:49,700 Selanjutnya jika kita ingin menerapkan kondisi, 829 00:37:49,700 --> 00:37:52,790 itu tidak akan terlihat seperti bagus sedikit potongan puzzle cantik. 830 00:37:52,790 --> 00:37:54,460 Ini akan terlihat sedikit lebih misterius. 831 00:37:54,460 --> 00:37:57,620 Tapi ini adalah kanonik struktur suatu kondisi di C. 832 00:37:57,620 --> 00:38:00,380 >> Kata jika, dua kurung, yang di dalamnya 833 00:38:00,380 --> 00:38:02,590 akan menjadi semacam ekspresi Boolean. 834 00:38:02,590 --> 00:38:04,999 Sekarang slash slash di tengah, ini adalah 835 00:38:04,999 --> 00:38:07,290 pada saat semacam kode pseudo placeholder. 836 00:38:07,290 --> 00:38:11,576 Tapi lebih tepat, setiap baris kode di C yang dimulai dengan garis miring slash 837 00:38:11,576 --> 00:38:12,850 adalah komentar. 838 00:38:12,850 --> 00:38:15,920 >> Ini seperti catatan lengket bahwa Anda mungkin memakai esai, dicetak di atas kertas. 839 00:38:15,920 --> 00:38:17,290 Ini catatan untuk diri sendiri. 840 00:38:17,290 --> 00:38:20,100 Ia tidak memiliki fungsional berdampak pada program. 841 00:38:20,100 --> 00:38:23,580 Ini semacam pengingat, itu sendiri dokumentasi untuk apa yang terjadi. 842 00:38:23,580 --> 00:38:25,720 Jadi melakukan hal ini pada saat ini adalah semacam placeholder 843 00:38:25,720 --> 00:38:27,560 untuk apa pun di dalamnya mereka kurung kurawal 844 00:38:27,560 --> 00:38:29,810 akhirnya akan melakukan sesuatu. 845 00:38:29,810 --> 00:38:35,160 >> Sementara itu Anda memiliki dua garpu di jalan, if lain membangun seperti ini. 846 00:38:35,160 --> 00:38:37,024 Anda dapat jika, elseif, lain. 847 00:38:37,024 --> 00:38:39,690 Sekarang perlu dicatat, khususnya jika Anda telah Googling sekitar 848 00:38:39,690 --> 00:38:42,480 online untuk sumber daya dari rasa ingin tahu, atau jika Anda mengambil 849 00:38:42,480 --> 00:38:44,575 salah satu kursus ini buku yang direkomendasikan di C, 850 00:38:44,575 --> 00:38:48,430 Anda akan melihat bahwa manusia memiliki banyak preferensi yang berbeda untuk bagaimana 851 00:38:48,430 --> 00:38:50,510 untuk mengekspresikan diri mereka dalam kode. 852 00:38:50,510 --> 00:38:53,800 Beberapa orang ingin menempatkan kurung kurawal seperti yang saya lakukan di sini. 853 00:38:53,800 --> 00:38:57,760 Beberapa orang ingin menempatkan keriting yang kawat gigi misalnya di sini. 854 00:38:57,760 --> 00:39:01,700 >> Beberapa orang ingin menempatkan elses di sini dan kemudian ini di sini. 855 00:39:01,700 --> 00:39:05,120 Ada sejumlah cara untuk menulis kode, dan tidak satupun dari mereka 856 00:39:05,120 --> 00:39:06,566 benar per se. 857 00:39:06,566 --> 00:39:08,440 Meskipun ada beberapa yang cukup salah. 858 00:39:08,440 --> 00:39:11,315 Tapi ada no-- apakah ini akhirnya perdebatan yang sangat religius. 859 00:39:11,315 --> 00:39:13,940 Bahkan, salah satu yang paling menjengkelkan hal tentang ilmu komputer 860 00:39:13,940 --> 00:39:16,310 adalah bagaimana berpendirian ilmuwan komputer dapat. 861 00:39:16,310 --> 00:39:19,880 Dan Anda akan menemukan dari waktu ke waktu yang bahkan Anda mengembangkan preferensi pribadi 862 00:39:19,880 --> 00:39:22,130 bagaimana kode Anda akan terlihat. 863 00:39:22,130 --> 00:39:27,162 >> Bukan hanya berperilaku, tidak hanya membuat output, tapi bagaimana seharusnya terlihat estetis. 864 00:39:27,162 --> 00:39:30,120 Jadi apa yang akan kita lakukan adalah memandu Anda sepanjang jalan menuju, setidaknya untuk saat ini, 865 00:39:30,120 --> 00:39:34,825 gaya CS50 standar bahwa setidaknya membuat hal-hal yang seragam dan mudah dibaca. 866 00:39:34,825 --> 00:39:37,330 Tetapi lebih pada orang-orang perbedaan sebelum lama. 867 00:39:37,330 --> 00:39:41,830 >> Ekspresi Boolean di C, jika Anda ingin mengatakan jika kondisi ini benar 868 00:39:41,830 --> 00:39:44,650 dan kondisi lain ini adalah benar, Anda tidak menulis kata 869 00:39:44,650 --> 00:39:46,610 dan, seperti yang Anda lakukan dalam bahasa Inggris. 870 00:39:46,610 --> 00:39:50,580 Anda bukan menggunakan ampersand ampersand, untuk alasan kami akan kembali ke. 871 00:39:50,580 --> 00:39:54,520 Jika Anda ingin katakan atau Anda menggunakan dua Garis vertikal, yang pada keyboard US 872 00:39:54,520 --> 00:39:57,650 umumnya di atas Enter berikutnya kunci backslash. 873 00:39:57,650 --> 00:40:03,080 Dan ini hanya berarti jika kondisi ini atau kondisi lain ini benar melakukannya. 874 00:40:03,080 --> 00:40:05,210 >> Sementara itu ada ini hal gila, yang 875 00:40:05,210 --> 00:40:07,760 Anda akan memiliki kesempatan menggunakan sesekali. 876 00:40:07,760 --> 00:40:10,390 Tapi itu hanya alternatif cara untuk mengekspresikan diri. 877 00:40:10,390 --> 00:40:12,400 Ini, untuk saat ini, mari kita menetapkan, itu hanya 878 00:40:12,400 --> 00:40:16,880 cara yang funky lain mengungkapkan jika, elseif, elseif, elseif, elseif. 879 00:40:16,880 --> 00:40:19,720 Hanya saja diformat dalam hal kasus, di mana Anda benar-benar 880 00:40:19,720 --> 00:40:23,420 menghitung nilai-nilai yang Anda mungkin ingin memeriksa. 881 00:40:23,420 --> 00:40:24,410 >> Sementara loops. 882 00:40:24,410 --> 00:40:26,842 Kami melihat perbandingan Gores dengan lingkaran. 883 00:40:26,842 --> 00:40:29,550 Dan aku akan melambaikan tangan saya di apa setiap hal-hal ini berarti. 884 00:40:29,550 --> 00:40:33,520 Tetapi perhatikan bahwa lingkaran akan sangat seringkali diawali dengan kata kunci untuk. 885 00:40:33,520 --> 00:40:36,350 Atau akan mulai dengan kata kunci sementara. 886 00:40:36,350 --> 00:40:41,360 Atau itu akan mulai dengan kata kunci dilakukan, dan diakhiri dengan kata kunci sementara. 887 00:40:41,360 --> 00:40:43,920 >> Tapi apa yang kita akan melihat adalah hal-hal lebih seperti ini. 888 00:40:43,920 --> 00:40:47,950 Berikut ini adalah, pada umumnya di C, bagaimana Anda mungkin mendeklarasikan variabel dan memberikan nilai. 889 00:40:47,950 --> 00:40:50,610 Dalam C itu tidak cukup, seperti pada Scratch, Anda hanya 890 00:40:50,610 --> 00:40:52,810 mengatakan memberi saya sebuah variabel yang disebut sesuatu. 891 00:40:52,810 --> 00:40:55,960 Anda harus memberitahu C, dan memberitahu compiler Anda, lebih khusus, 892 00:40:55,960 --> 00:40:58,680 apa jenis nilai yang Anda ingin dimasukkan ke dalam mangkuk kaca. 893 00:40:58,680 --> 00:40:59,610 >> Apakah integer? 894 00:40:59,610 --> 00:41:02,210 Jika demikian, Anda harus harfiah mengatakan int dan kemudian 895 00:41:02,210 --> 00:41:04,220 nama variabel, maka titik koma. 896 00:41:04,220 --> 00:41:08,050 Jika Anda malah ingin tali dan disebut itu s seperti yang kulakukan kode saya di sini hari ini, 897 00:41:08,050 --> 00:41:10,920 Anda akan mengatakan string s koma. 898 00:41:10,920 --> 00:41:14,200 Jika anda ingin memberikan nilai Anda kemudian dapat menggunakan tanda sama, 899 00:41:14,200 --> 00:41:16,211 atau dikenal sebagai operator penugasan. 900 00:41:16,211 --> 00:41:17,960 Dan perhatikan bagaimana masing-masing dari garis-garis kode 901 00:41:17,960 --> 00:41:20,650 memiliki titik koma pada akhir itu. 902 00:41:20,650 --> 00:41:22,550 >> Tapi terus terang ini hanya terlihat sedikit jelek. 903 00:41:22,550 --> 00:41:26,580 Mengapa saya tidak bisa mengatakan ke komputer, memberikan saya variabel dan inisialisasi ke nol. 904 00:41:26,580 --> 00:41:28,380 Artinya, memberi saya mangkuk gelas kosong. 905 00:41:28,380 --> 00:41:28,980 Meskipun Anda bisa. 906 00:41:28,980 --> 00:41:32,250 Dan jadi salah satu dari penghakiman panggilan Anda akan harus membuat Gaya dari waktu ke waktu 907 00:41:32,250 --> 00:41:36,290 adalah, apakah Anda menulis kode seperti ini, atau Anda jenis membersihkannya dan terkesan 908 00:41:36,290 --> 00:41:39,040 orang dengan menulis dua baris sebagai salah satu. 909 00:41:39,040 --> 00:41:41,830 Dan ini akan dianggap umumnya cara yang lebih elegan 910 00:41:41,830 --> 00:41:43,870 menulis kode Anda Gaya. 911 00:41:43,870 --> 00:41:45,200 >> Fungsi kita tentu saja terlihat. 912 00:41:45,200 --> 00:41:46,340 Mereka akan mengambil format ini. 913 00:41:46,340 --> 00:41:48,881 Nama fungsi, beberapa kurung, dan kemudian mungkin beberapa 914 00:41:48,881 --> 00:41:49,910 barang di dalam. 915 00:41:49,910 --> 00:41:52,540 Atau Anda mungkin melihat penggunaan beberapa fungsi sisi 916 00:41:52,540 --> 00:41:55,980 berdampingan, seperti sesuatu seperti ini. 917 00:41:55,980 --> 00:41:59,390 Sekarang sebagai garis singgung, apakah lelucon ini sekarang masuk akal? 918 00:41:59,390 --> 00:42:03,566 919 00:42:03,566 --> 00:42:04,960 >> [Tertawa] 920 00:42:04,960 --> 00:42:09,360 Ini tidak berarti itu lucu, tapi itu tidak mungkin membuat rasa sedikit lebih. 921 00:42:09,360 --> 00:42:12,140 Jadi sekarang mari kita pergi ke CS50 alat sejenak. 922 00:42:12,140 --> 00:42:14,640 Dan biarkan aku membuka satu teaser di sini. 923 00:42:14,640 --> 00:42:17,470 >> Dan memang salah satu alasan untuk memperkenalkan Katalog IKEA 924 00:42:17,470 --> 00:42:20,080 dan berkedip gambar iPhone sedikit lalu 925 00:42:20,080 --> 00:42:24,700 adalah untuk benar-benar mengikat bersama-sama dengan Fakta bahwa hanya beberapa tahun yang lalu, pada tahun 2007, 926 00:42:24,700 --> 00:42:26,540 potongan kode adalah dirilis, yang 927 00:42:26,540 --> 00:42:29,820 salah satu implementasi pertama dari software 928 00:42:29,820 --> 00:42:31,494 yang melakukan apa yang disebut jailbreaking. 929 00:42:31,494 --> 00:42:34,410 Bagi mereka yang tidak terbiasa, jailbreaking sesuatu seperti telepon atau iPhone 930 00:42:34,410 --> 00:42:37,680 berarti pada dasarnya mencari cara untuk melakukan hal-hal 931 00:42:37,680 --> 00:42:39,864 dengan itu bahwa perusahaan yang membuatnya tidak berniat. 932 00:42:39,864 --> 00:42:42,780 Seperti Anda ingin menginstal tertentu perangkat lunak yang tidak di app store, 933 00:42:42,780 --> 00:42:45,405 jailbreaking telepon Anda yang Anda melakukan hal-hal seperti itu dan banyak lagi. 934 00:42:45,405 --> 00:42:47,447 Tapi apa yang menyenangkan di 2007-- dan sudah ada 935 00:42:47,447 --> 00:42:49,780 puluhan versi yang berbeda hal ini sejak saat itu, 936 00:42:49,780 --> 00:42:53,540 dalam segala macam languages-- adalah bahwa Program ini di sini, yang disebut iUnlock, 937 00:42:53,540 --> 00:42:57,036 sebenarnya ditulis dalam C. Dan jadi saya menarik kode sumber untuk ini, 938 00:42:57,036 --> 00:42:59,910 hanya untuk jenis menunjukkan beberapa kesamaan dengan konstruksi 939 00:42:59,910 --> 00:43:01,450 kita sudah membahas sejauh ini. 940 00:43:01,450 --> 00:43:05,150 Sekarang ada cara yang lebih kompleks di sini dari yang kita telah melihat sudah dalam kelas. 941 00:43:05,150 --> 00:43:07,160 Mari saya gulir ke atas hanya sedikit di sini. 942 00:43:07,160 --> 00:43:11,520 >> Tapi perhatikan ini-- baik kita melihat beberapa things-- tapi perhatikan baris-baris di sini, 943 00:43:11,520 --> 00:43:14,090 termasuk standar I / O dot h. 944 00:43:14,090 --> 00:43:17,660 Dan garis all-- 24, please-- melihat standar I / O 945 00:43:17,660 --> 00:43:21,380 dot h dan sejumlah besar lainnya file yang orang lain tampaknya 946 00:43:21,380 --> 00:43:22,160 telah menulis. 947 00:43:22,160 --> 00:43:24,850 Dan jika kita scroll down ini, sedikit sewenang-wenang, 948 00:43:24,850 --> 00:43:27,910 pemberitahuan Aku tidak tahu bagaimana menulis semua ini sendiri tentu belum, 949 00:43:27,910 --> 00:43:28,880 tapi ada jika. 950 00:43:28,880 --> 00:43:30,400 Jadi rupanya ini memiliki cabang. 951 00:43:30,400 --> 00:43:33,210 >> Dan jika saya gulir ke bawah sedikit lanjut ada lain jika. 952 00:43:33,210 --> 00:43:38,210 Jika saya gulir ke atas, saya pikir sekitar garis 100 saya melihat untuk. 953 00:43:38,210 --> 00:43:40,020 Jadi saya tidak yakin bagaimana ini bekerja belum, 954 00:43:40,020 --> 00:43:43,180 tapi ini adalah untuk loop yang akan biarkan aku iterate beberapa beberapa kali. 955 00:43:43,180 --> 00:43:45,230 Dan jika saya gulir ke cara ke bawah 956 00:43:45,230 --> 00:43:51,020 Saya melihat bahwa ada berfungsi di sini disebut 957 00:43:51,020 --> 00:43:54,570 utama, dan beberapa kredit tambahan untuk kesenangan membaca Anda. 958 00:43:54,570 --> 00:43:57,830 >> Jadi ini hanya untuk say-- dan kami akan menempatkan online antara sumber program ini 959 00:43:57,830 --> 00:44:01,480 kode sipil saat ini bahwa bahkan beberapa di antaranya perangkat yang kita terima, 960 00:44:01,480 --> 00:44:05,130 pada akhir hari Anda masih menggunakan ini konstruksi dasar yang kita sudah 961 00:44:05,130 --> 00:44:07,430 telah memperkenalkan sudah sejauh ini. 962 00:44:07,430 --> 00:44:08,620 Sudah cukup satu. 963 00:44:08,620 --> 00:44:11,480 Baiklah, jadi sekarang mari kita benar-benar membangun sesuatu. 964 00:44:11,480 --> 00:44:15,640 >> Mari kita melampaui sesuatu seperti hello.c, dan membuka ini, 965 00:44:15,640 --> 00:44:17,170 mari kita menulis program ini di sini. 966 00:44:17,170 --> 00:44:19,850 Aku akan pergi ke depan dan menulis sebuah program yang disebut adder.c, 967 00:44:19,850 --> 00:44:23,310 tujuan yang dalam hidup akan menjadi seperti pertama kalkulator super sederhana saya 968 00:44:23,310 --> 00:44:24,840 itu hanya menambah beberapa angka. 969 00:44:24,840 --> 00:44:27,050 Bukan karena itu sulit masalah, tetapi karena 970 00:44:27,050 --> 00:44:29,390 memungkinkan saya untuk sekarang mengikat bersama-sama beberapa hal. 971 00:44:29,390 --> 00:44:33,100 Jadi aku akan pergi ke depan dan mencakup standar I / O dot h dan CS50 dot h. 972 00:44:33,100 --> 00:44:34,670 Aku akan mengatakan int void main. 973 00:44:34,670 --> 00:44:36,545 Dan lagi di masa depan kami akan kembali ke sana 974 00:44:36,545 --> 00:44:38,560 ke dalam konteks ini dan tidak berlaku berarti. 975 00:44:38,560 --> 00:44:43,340 >> Dan sekarang aku akan mengatakan sesuatu seperti printf, memberikan saya sebuah integer. 976 00:44:43,340 --> 00:44:47,610 Dan sekarang on line kedua saya, bagaimana cara mengekspresikan diri seperti 977 00:44:47,610 --> 00:44:50,980 bahwa saya ingin mendeklarasikan variabel yang akan menyimpan int? 978 00:44:50,980 --> 00:44:55,470 Secara harfiah apa yang saya ketik jika saya ingin membuat variabel yang menyimpan sebuah int 979 00:44:55,470 --> 00:44:58,270 yang akan Anda katakan? 980 00:44:58,270 --> 00:44:59,650 int a sama getInt. 981 00:44:59,650 --> 00:45:00,485 Tentu, sehingga bekerja. 982 00:45:00,485 --> 00:45:02,360 Dan hanya untuk konsistensi dengan kode Anda akan 983 00:45:02,360 --> 00:45:04,485 lihat online, biarkan aku ubah ini x, hanya karena x 984 00:45:04,485 --> 00:45:06,830 adalah nama variabel umum digunakan, setidaknya dalam aljabar. 985 00:45:06,830 --> 00:45:08,720 Sekarang biarkan aku pergi ke depan dan jangan printf lagi. 986 00:45:08,720 --> 00:45:10,692 Beri aku bilangan bulat lain. 987 00:45:10,692 --> 00:45:12,900 Dan sekarang aku akan baik dari belajar dari pola itu, 988 00:45:12,900 --> 00:45:14,490 Aku akan mengatakan int y sampai ke getInt. 989 00:45:14,490 --> 00:45:16,340 >> Dan kita sudah tidak digunakan GetInt sebelumnya, tetapi hanya 990 00:45:16,340 --> 00:45:19,860 seperti GetString pergi dan mendapatkan string, seperti Javier lakukan dari penonton, 991 00:45:19,860 --> 00:45:22,780 sama tidak getInt mulai berkedip prompt. 992 00:45:22,780 --> 00:45:26,750 Dan efektif menunggu pengguna untuk memberikan integer, dengan mengetik di 993 00:45:26,750 --> 00:45:27,900 dan menekan Enter. 994 00:45:27,900 --> 00:45:30,850 Sekarang akhirnya aku akan lakukan ini, printf jumlahnya of-- 995 00:45:30,850 --> 00:45:36,080 dan biarkan aku sekarang-- mewah persen i dan i persen hadir 996 00:45:36,080 --> 00:45:39,270 i tanda seru backslash n. 997 00:45:39,270 --> 00:45:42,750 Dan apa yang Anda pikir aku akan dimasukkan ke dalam sekarang sebagai masukan tambahan 998 00:45:42,750 --> 00:45:44,620 untuk printf? 999 00:45:44,620 --> 00:45:47,380 >> Saya tidak ingin mengatakan harfiah mengutip tanda kutip x. 1000 00:45:47,380 --> 00:45:52,210 Saya ingin kelas x dan kemudian, dan sekarang mari kita mewah 1001 00:45:52,210 --> 00:45:54,420 dan mari kita asumsikan kita bisa melakukan apa yang kita inginkan. 1002 00:45:54,420 --> 00:45:56,330 Apa yang ingin Anda katakan selanjutnya? 1003 00:45:56,330 --> 00:45:57,070 x ditambah y. 1004 00:45:57,070 --> 00:45:58,520 Dan memang yang akan bekerja. 1005 00:45:58,520 --> 00:46:01,760 Ini minimal bahasa pemrograman mengerti aritmatika dasar, 1006 00:46:01,760 --> 00:46:03,500 dan jadi ini harus pada kenyataannya pekerjaan. 1007 00:46:03,500 --> 00:46:06,730 >> Jadi biarkan aku pergi ke depan dan jangan membuat adder di jendela hitam dan putih 1008 00:46:06,730 --> 00:46:08,090 di sini, Enter. 1009 00:46:08,090 --> 00:46:10,830 Garis samar tapi tidak ada kesalahan pesan, jadi itu bagus. 1010 00:46:10,830 --> 00:46:14,410 Dot slash adder, beri aku integer, 1. 1011 00:46:14,410 --> 00:46:16,230 Beri aku bilangan bulat lain, 2. 1012 00:46:16,230 --> 00:46:18,770 Jumlah 1 dan 2 adalah 3. 1013 00:46:18,770 --> 00:46:21,730 >> Baiklah, jadi cukup sepele program, tetapi apa yang dilakukan? 1014 00:46:21,730 --> 00:46:25,680 Ini memungkinkan saya untuk menggunakan fungsi panggilan sini, memanggil fungsi lain di sini, 1015 00:46:25,680 --> 00:46:29,260 dua panggilan ke getInt, a ketiga panggilan untuk printf, 1016 00:46:29,260 --> 00:46:30,720 dan kemudian menggunakan penampung ini. 1017 00:46:30,720 --> 00:46:33,160 Jadi sedikit lebih canggih daripada terakhir kali. 1018 00:46:33,160 --> 00:46:35,260 Tapi bagaimana jika saya ingin mendapatkan sedikit lebih menarik? 1019 00:46:35,260 --> 00:46:38,900 >> Biarkan aku pergi ke depan dan sekarang melakukan hal ini. 1020 00:46:38,900 --> 00:46:42,890 Biarkan aku pergi ke depan dan menciptakan file baru yang disebut kondisi nol. 1021 00:46:42,890 --> 00:46:44,890 Dan aku akan menyimpan beberapa waktu untuk kelas demi 1022 00:46:44,890 --> 00:46:48,260 dan hanya sisipkan dalam kode sebagai titik awal. 1023 00:46:48,260 --> 00:46:51,510 Dan sekarang aku hanya akan menempatkan sesuatu yang baru di sini di tengah. 1024 00:46:51,510 --> 00:46:55,889 Jadi printf saya ingin integer silakan. 1025 00:46:55,889 --> 00:46:58,180 Dan semua kode ini tersedia di website program ini, 1026 00:46:58,180 --> 00:47:00,556 Anda tidak perlu mengetik semuanya di kelas jika Anda lebih suka tidak. 1027 00:47:00,556 --> 00:47:02,638 int, dan sekarang aku akan gunakan, bukan x dan y, 1028 00:47:02,638 --> 00:47:05,270 Aku akan menggunakan n, yang mungkin nama yang paling umum 1029 00:47:05,270 --> 00:47:09,220 untuk integer dalam program komputer. 1030 00:47:09,220 --> 00:47:12,060 Dan sekarang saya ingin melakukan sedikit penghakiman di sini. 1031 00:47:12,060 --> 00:47:15,460 Aku akan melihat apakah n lebih besar dari 0, maka 1032 00:47:15,460 --> 00:47:23,670 Aku akan mengatakan whoops printf--, printf-- Anda memilih angka positif, 1033 00:47:23,670 --> 00:47:25,370 tanda seru backslash n. 1034 00:47:25,370 --> 00:47:26,460 Tutup itu. 1035 00:47:26,460 --> 00:47:33,150 Lain aku akan mencetak printf Anda memilih angka negatif. 1036 00:47:33,150 --> 00:47:35,377 >> Sekarang sebelum Anda berteriak padaku, mari kita menjalankan program ini. 1037 00:47:35,377 --> 00:47:36,210 Biarkan aku pergi ke sini. 1038 00:47:36,210 --> 00:47:40,730 Dan bagaimana cara mengkompilasi sebuah program disebut kondisi dasbor 0? 1039 00:47:40,730 --> 00:47:42,300 Membuat kondisi dasbor 0. 1040 00:47:42,300 --> 00:47:45,560 Jenis nama bodoh, tapi-- sialan. 1041 00:47:45,560 --> 00:47:47,560 OK, saat mengajar yang baik. 1042 00:47:47,560 --> 00:47:48,410 Mengapa yang melanggar? 1043 00:47:48,410 --> 00:47:51,360 1044 00:47:51,360 --> 00:47:54,710 >> Apa yang saya sengaja memanggil file ini? 1045 00:47:54,710 --> 00:47:56,876 Anda dapat menyimpulkan jenis dari tab di sini. 1046 00:47:56,876 --> 00:47:58,750 Jadi, tidak buruk bahwa saya melakukan ini, karena ini 1047 00:47:58,750 --> 00:48:00,208 akan terjadi mungkin untuk sebagian dari Anda. 1048 00:48:00,208 --> 00:48:03,880 Jadi aku sengaja bernama saya Kondisi source code 0. 1049 00:48:03,880 --> 00:48:09,950 Namun sumber kode saya oleh konvensi harus berada dalam sebuah file yang bernama kondisi 0 dasbor c, 1050 00:48:09,950 --> 00:48:11,720 atau apa pun dot c. 1051 00:48:11,720 --> 00:48:12,610 >> Jadi biarkan aku memperbaiki hal ini. 1052 00:48:12,610 --> 00:48:16,880 Sama seperti Microsoft Word saya bisa naik untuk Save As dan melakukan kondisi 0 dot c. 1053 00:48:16,880 --> 00:48:20,100 Sekarang hanya untuk menjadi rapi aku akan pergi ke depan dan menghapus 1054 00:48:20,100 --> 00:48:23,020 kondisi 0, yang versi lama saya. 1055 00:48:23,020 --> 00:48:26,550 Dan sekarang mari kita lakukan membuat Kondisi 0, Enter. 1056 00:48:26,550 --> 00:48:27,870 OK, tampaknya baik. 1057 00:48:27,870 --> 00:48:29,510 >> Kondisi 0, Enter. 1058 00:48:29,510 --> 00:48:33,530 Saya ingin integer silahkan, 50, Anda memilih angka positif. 1059 00:48:33,530 --> 00:48:35,390 Sekarang bagaimana negatif 50? 1060 00:48:35,390 --> 00:48:37,660 Anda memilih angka negatif. 1061 00:48:37,660 --> 00:48:39,605 Bagaimana sekarang, 0. 1062 00:48:39,605 --> 00:48:42,250 1063 00:48:42,250 --> 00:48:45,350 Cukup yakin 0 tidak negatif. 1064 00:48:45,350 --> 00:48:47,780 >> Jadi ini adalah jenis bug logis. 1065 00:48:47,780 --> 00:48:50,680 Bagaimana cara mengatasinya? 1066 00:48:50,680 --> 00:48:57,260 Lain jika n kurang dari 0, melakukan hal ini, lain kita dapat memiliki cabang tiga cara di sini, 1067 00:48:57,260 --> 00:49:01,740 printf Anda memilih 0. 1068 00:49:01,740 --> 00:49:06,150 Jadi sekarang jika saya jalankan ini Program, setelah mengkompilasinya 1069 00:49:06,150 --> 00:49:10,790 lagi dengan make, dan sekarang memutarkan Kondisi 0, apa yang saya akan lihat di sini 1070 00:49:10,790 --> 00:49:14,570 adalah 0 memberi saya hasil itu. 1071 00:49:14,570 --> 00:49:16,280 Jadi di mana kita akan pergi dengan ini? 1072 00:49:16,280 --> 00:49:18,930 >> Yah itu sangat mudah untuk melupakan hutan untuk pohon. 1073 00:49:18,930 --> 00:49:23,590 Sehingga memungkinkan kita untuk menyimpulkan dengan video 2 dan 1/2 menit ini 1074 00:49:23,590 --> 00:49:25,710 yang pada akhirnya sedikit dari iklan dari Google, 1075 00:49:25,710 --> 00:49:28,850 tapi itu benar-benar merupakan bukti apa bahkan menggunakan ini bangunan dasar 1076 00:49:28,850 --> 00:49:33,020 blok kami akhirnya bisa melakukannya sekali kami memiliki sedikit pemrograman 1077 00:49:33,020 --> 00:49:34,463 savvy bawah ikat pinggang kita. 1078 00:49:34,463 --> 00:49:35,150 >> [MUSIC PLAYING] 1079 00:49:35,150 --> 00:49:38,370 1080 00:49:38,370 --> 00:49:40,540 >> SAROO Brierley (sulih suara): Itu 26 tahun yang lalu, 1081 00:49:40,540 --> 00:49:42,470 dan aku baru saja akan mengubah 5. 1082 00:49:42,470 --> 00:49:45,465 Kita harus ke stasiun kereta api dan kami naik kereta api kita bersama-sama. 1083 00:49:45,465 --> 00:49:48,010 Adikku hanya berkata aku akan tinggal di sini, dan aku akan kembali. 1084 00:49:48,010 --> 00:49:51,140 Dan aku hanya berpikir, baik Anda tahu, Aku mungkin juga hanya pergi tidur 1085 00:49:51,140 --> 00:49:52,690 dan dia hanya akan membangunkan saya. 1086 00:49:52,690 --> 00:49:55,145 Dan ketika aku terbangun berikutnya hari, seluruh kereta 1087 00:49:55,145 --> 00:49:59,125 kosong pada kereta pelarian, hantu kereta mengambil saya, saya tidak tahu di mana. 1088 00:49:59,125 --> 00:50:01,980 1089 00:50:01,980 --> 00:50:06,280 >> Aku diadopsi ke Australia, untuk keluarga Australia. 1090 00:50:06,280 --> 00:50:09,710 Dan ibu telah dihiasi saya ruangan dengan peta India, 1091 00:50:09,710 --> 00:50:11,950 yang ia tempatkan di samping tempat tidur saya. 1092 00:50:11,950 --> 00:50:15,830 Aku bangun setiap pagi melihat peta itu, dan karenanya 1093 00:50:15,830 --> 00:50:18,530 itu semacam terus kenangan hidup. 1094 00:50:18,530 --> 00:50:20,530 Orang-orang akan berkata, Anda berusaha mencari jarum 1095 00:50:20,530 --> 00:50:23,560 dalam tumpukan jerami, Saroo Anda tidak akan pernah menemukannya. 1096 00:50:23,560 --> 00:50:28,540 >> Aku akan melintas dari tempat-tempat yang saya digunakan untuk pergi, berkedip keluarga saya 1097 00:50:28,540 --> 00:50:29,890 wajah. 1098 00:50:29,890 --> 00:50:34,060 Ada gambar ibuku, duduk dengan kaki disilangkan, 1099 00:50:34,060 --> 00:50:35,740 hanya menonton menangis. 1100 00:50:35,740 --> 00:50:38,160 Hidup hanya begitu sulit. 1101 00:50:38,160 --> 00:50:41,237 Itu harta saya. 1102 00:50:41,237 --> 00:50:44,320 Dan saya melihat Google Map dan menyadari ada Google Earth juga. 1103 00:50:44,320 --> 00:50:48,140 Dalam dunia di mana Anda bisa memperbesar, Saya mulai memiliki semua pikiran ini 1104 00:50:48,140 --> 00:50:51,500 dan kemungkinan apa bahwa ini bisa lakukan untuk saya. 1105 00:50:51,500 --> 00:50:54,890 Saya berkata pada diri sendiri, Anda tahu, Anda sudah mendapat semua kenangan fotografi 1106 00:50:54,890 --> 00:50:58,590 dan landmark di mana Anda dari, dan Anda tahu apa yang tampak seperti kota. 1107 00:50:58,590 --> 00:51:03,060 Ini bisa menjadi aplikasi yang dapat Anda gunakan untuk menemukan jalan kembali. 1108 00:51:03,060 --> 00:51:06,720 >> Saya pikir, baik saya akan meletakkan titik di stasiun kereta api Calcutta, 1109 00:51:06,720 --> 00:51:10,890 dan garis radius, Anda tahu, bahwa Anda harus mencari di daerah ini. 1110 00:51:10,890 --> 00:51:13,750 Aku semacam datang di ini rel kereta api. 1111 00:51:13,750 --> 00:51:18,160 Dan aku mulai mengikutinya, dan Aku datang ke stasiun kereta api yang 1112 00:51:18,160 --> 00:51:22,228 mencerminkan gambar yang sama itu dalam ingatan saya. 1113 00:51:22,228 --> 00:51:23,707 Semuanya cocok. 1114 00:51:23,707 --> 00:51:27,950 Aku hanya berpikir yep, saya tahu di mana aku akan. 1115 00:51:27,950 --> 00:51:30,116 Aku hanya akan membiarkan Peta yang saya miliki di kepala saya 1116 00:51:30,116 --> 00:51:33,080 membawa saya dan membawa saya kembali ke kampung halaman saya. 1117 00:51:33,080 --> 00:51:36,420 >> Aku datang ke ambang pintu rumah yang aku lahir. 1118 00:51:36,420 --> 00:51:39,140 Dan berjalan sekitar sekitar 15 meter sekitar sudut, 1119 00:51:39,140 --> 00:51:42,980 ada tiga wanita berdiri luar, berdekatan satu sama lain. 1120 00:51:42,980 --> 00:51:47,830 Dan yang tengah melangkah maju, dan Aku hanya berpikir, ini adalah ibumu. 1121 00:51:47,830 --> 00:51:53,450 Dia maju ke depan, dia memelukku, dan kami berada di sana selama sekitar lima menit. 1122 00:51:53,450 --> 00:51:56,530 1123 00:51:56,530 --> 00:51:59,000 >> Dia meraih tanganku dan dia membawaku ke rumah 1124 00:51:59,000 --> 00:52:02,450 dan mendapat di telepon, di mana dia berdering adikku dan adikku 1125 00:52:02,450 --> 00:52:05,600 mengatakan bahwa, Anda tahu, saudaramu baru saja 1126 00:52:05,600 --> 00:52:09,340 tiba-tiba muncul seperti hantu. 1127 00:52:09,340 --> 00:52:12,440 Dan kemudian keluarga bertemu kembali lagi. 1128 00:52:12,440 --> 00:52:15,110 Semuanya semua baik, Aku membantu ibuku, 1129 00:52:15,110 --> 00:52:17,110 dia tidak harus bekerja keras. 1130 00:52:17,110 --> 00:52:19,555 Dia dapat hidup sisanya hidupnya dalam damai. 1131 00:52:19,555 --> 00:52:23,460 >> Itu jarum di tumpukan jerami, tapi jarum ada di sana. 1132 00:52:23,460 --> 00:52:24,400 Semuanya ada. 1133 00:52:24,400 --> 00:52:28,260 Segala sesuatu yang kita miliki di dunia adalah di tekan tombol. 1134 00:52:28,260 --> 00:52:32,010 Tapi Anda harus memiliki kemauan dan tekad untuk menginginkannya. 1135 00:52:32,010 --> 00:52:32,950 >> [MUSIC PLAYING] 1136 00:52:32,950 --> 00:52:36,420 1137 00:52:36,420 --> 00:52:38,170 DAVID Malan: Luar biasa testimonial manis 1138 00:52:38,170 --> 00:52:40,540 hanya apa yang dapat Anda sekarang dengan teknologi. 1139 00:52:40,540 --> 00:52:43,390 Kita akan melihat Anda minggu depan. 1140 00:52:43,390 --> 00:52:44,374