1 00:00:00,000 --> 00:00:11,736 2 00:00:11,736 --> 00:00:16,626 >> [VIDEO PLAYBACK] 3 00:00:16,626 --> 00:00:19,410 >> Kemenangan -A dari matematika dan keterampilan mekanik 4 00:00:19,410 --> 00:00:23,270 adalah ini otomatis baru yang besar kalkulator di Harvard University. 5 00:00:23,270 --> 00:00:27,140 Masalah yang rumit dalam matematika dimasukkan melalui mesin dalam bentuk kode 6 00:00:27,140 --> 00:00:31,710 pada pita secara akurat diselesaikan dalam fraksi menit dari waktu yang dibutuhkan 7 00:00:31,710 --> 00:00:32,819 untuk perhitungan manusia. 8 00:00:32,819 --> 00:00:44,280 9 00:00:44,280 --> 00:00:48,220 Dirancang untuk mempercepat segala bentuk penelitian matematika dan ilmiah, 10 00:00:48,220 --> 00:00:53,840 otak mekanik raksasa akan bekerja untuk Angkatan Laut Amerika Serikat sampai akhir perang. 11 00:00:53,840 --> 00:01:03,620 12 00:01:03,620 --> 00:01:06,570 >> [END PLAYBACK] 13 00:01:06,570 --> 00:01:08,590 >> DAVID J. Malan: ini, adalah CS50. 14 00:01:08,590 --> 00:01:10,590 Masa lalu adalah ajaib tempat, tapi jika Anda sudah pernah 15 00:01:10,590 --> 00:01:13,366 bertanya-tanya apa perangkat yang di Harvard Science Center, 16 00:01:13,366 --> 00:01:16,150 memang bagian dari Harvard Mark I, dan itu 17 00:01:16,150 --> 00:01:18,710 dipajang di sana sekarang selama bertahun-tahun terakhir. 18 00:01:18,710 --> 00:01:20,590 Dan apa yang Anda akan melihat tertanam dalam masalah set 19 00:01:20,590 --> 00:01:24,416 satu adalah melihat di balik layar apa perangkat yang melakukan, dan melakukan, 20 00:01:24,416 --> 00:01:27,540 dari Profesor Harry Lewis, yang di komputer departemen ilmu di sini. 21 00:01:27,540 --> 00:01:29,440 Jadi lebih pada bahwa dalam hanya sedikit. 22 00:01:29,440 --> 00:01:33,990 >> Tapi hari ini kita mulai transisi dari minggu lalu ini, 23 00:01:33,990 --> 00:01:37,290 dan kami akan membawa menyebutkan dari satu foto di sini 24 00:01:37,290 --> 00:01:38,630 itu sebenarnya cukup terkenal. 25 00:01:38,630 --> 00:01:42,270 Apakah ada yang tahu apa ini di sini adalah pada layar? 26 00:01:42,270 --> 00:01:43,880 Setidaknya menurut mitos. 27 00:01:43,880 --> 00:01:44,837 Ya. 28 00:01:44,837 --> 00:01:45,920 AUDIENCE: Virus pertama. 29 00:01:45,920 --> 00:01:49,570 DAVID J. Malan: Jadi itu seharusnya bug yang sebenarnya pertama di komputer. 30 00:01:49,570 --> 00:01:52,490 Sekarang dalam kenyataannya bug kata, untuk kesalahan dalam program, 31 00:01:52,490 --> 00:01:55,250 telah bersama kami untuk beberapa waktu di dunia fisik, 32 00:01:55,250 --> 00:01:58,190 dan ini adalah salah satu yang pertama kali didokumentasikan di mana seseorang benar-benar 33 00:01:58,190 --> 00:02:02,280 dipetik ngengat besar dari Tandai Komputer II, memasukkannya ke dalam pengikat, 34 00:02:02,280 --> 00:02:05,006 dan kemudian merekamnya sebagai bug diketahui pertama 35 00:02:05,006 --> 00:02:06,630 untuk benar-benar telah ditemukan secara fisik. 36 00:02:06,630 --> 00:02:10,104 Jadi dengan demikian masuk yang menjadi pengetahuan saat ini. 37 00:02:10,104 --> 00:02:12,020 Semuanya dari lalu Minggu tersedia secara online. 38 00:02:12,020 --> 00:02:14,840 Dalam sumber tertentu yang Anda mungkin belum tentu melihat, terutama 39 00:02:14,840 --> 00:02:15,881 jika datang ke sini secara pribadi. 40 00:02:15,881 --> 00:02:20,230 Jadi salah satu rekan mengajar setiap tahun membuat satu set kanonik catatan, 41 00:02:20,230 --> 00:02:22,010 sehingga Anda tidak perlu terus kepala Anda, mencoba 42 00:02:22,010 --> 00:02:24,410 untuk menuliskan apa yang paling yang mungkin terjadi di sini di kelas. 43 00:02:24,410 --> 00:02:25,940 Jadi menyadari bahwa mereka disebut [? Scribd?] Catatan 44 00:02:25,940 --> 00:02:29,350 sedang online, tentu slide dan source code yang kita gunakan di kelas. 45 00:02:29,350 --> 00:02:31,436 Kami membuat transkrip teks lengkap tersedia juga. 46 00:02:31,436 --> 00:02:34,310 Jadi jika Anda samar-samar ingat beberapa Istilah, dan ingin melihat itu sedikit 47 00:02:34,310 --> 00:02:37,280 lebih mudah, menyadari bahwa semua dari yang dicari secara online. 48 00:02:37,280 --> 00:02:38,930 Serta penelusuran juga. 49 00:02:38,930 --> 00:02:42,710 Memang, hari ini kita mulai melihat bahasa pemrograman tingkat rendah, 50 00:02:42,710 --> 00:02:45,290 segera kita ketahui C, dan itu sangat mudah 51 00:02:45,290 --> 00:02:48,820 untuk semacam tersesat setelah hanya beberapa waktu saat, dan kemudian semacam heran 52 00:02:48,820 --> 00:02:52,370 bagaimana kita benar-benar harus lagi Misalnya kompleks dari yang paling sederhana. 53 00:02:52,370 --> 00:02:54,975 Dan begitu menyadari kita akan cherry memilih selama kelas beberapa 54 00:02:54,975 --> 00:02:57,850 contoh perwakilan, tapi menyadari bahwa begitu banyak juga 55 00:02:57,850 --> 00:03:01,140 tersedia secara online sehingga Anda dapat bekerja melalui itu pada kecepatan Anda sendiri, 56 00:03:01,140 --> 00:03:02,950 Namun Anda paling nyaman. 57 00:03:02,950 --> 00:03:05,200 >> Tapi kami tinggalkan dengan program yang hanya ini. 58 00:03:05,200 --> 00:03:09,690 Jadi saya klik bendera hijau, dan apa program ini lakukan? 59 00:03:09,690 --> 00:03:10,710 Mengatakan, halo, dunia. 60 00:03:10,710 --> 00:03:13,180 Itu membuat kucing mengatakan halo di dunia kecilnya 61 00:03:13,180 --> 00:03:15,990 di sisi kiri atas dari antarmuka pengguna Scratch ini. 62 00:03:15,990 --> 00:03:18,810 Tapi kami mulai memperkenalkan beberapa terminologi pekan lalu. 63 00:03:18,810 --> 00:03:23,614 Dan, hal seperti ini kita disebut apa? 64 00:03:23,614 --> 00:03:25,280 Apa yang mungkin menjadi istilah umum untuk ini? 65 00:03:25,280 --> 00:03:26,266 Ya. 66 00:03:26,266 --> 00:03:28,210 Sebuah metode atau pernyataan. 67 00:03:28,210 --> 00:03:29,280 Tentu, ini merupakan tindakan. 68 00:03:29,280 --> 00:03:30,140 Melakukan hal ini. 69 00:03:30,140 --> 00:03:32,400 Dan belum ada bentuk lainnya dengan awal, 70 00:03:32,400 --> 00:03:35,360 selain yang disebut ini Pernyataan, mereka juga 71 00:03:35,360 --> 00:03:38,221 hal-hal seperti ini, yang kami sebut apa? 72 00:03:38,221 --> 00:03:38,720 Ya. 73 00:03:38,720 --> 00:03:39,634 Jadi lingkaran. 74 00:03:39,634 --> 00:03:42,050 Dan dalam hal ini, hal ini mengulangi, jelas, 10 kali. 75 00:03:42,050 --> 00:03:43,040 Ada selamanya blok. 76 00:03:43,040 --> 00:03:44,164 Ada beberapa orang lain. 77 00:03:44,164 --> 00:03:48,309 Dan hari ini kita akan melihat bagaimana menerjemahkan ini untuk dunia yang lebih modern, 78 00:03:48,309 --> 00:03:50,850 jika Anda mau, meskipun itu akan muncul pada pandangan pertama 79 00:03:50,850 --> 00:03:52,024 jauh lebih misterius. 80 00:03:52,024 --> 00:03:53,190 Tapi mereka memang loop. 81 00:03:53,190 --> 00:03:56,182 Dan kemudian kita memiliki hal-hal seperti ini, yang memiliki bentuk ini, 82 00:03:56,182 --> 00:03:57,515 dan pada dasarnya mengajukan pertanyaan. 83 00:03:57,515 --> 00:03:58,890 Dan kita disebut ini sebagai apa? 84 00:03:58,890 --> 00:03:59,762 >> AUDIENCE: ekspresi Boolean. 85 00:03:59,762 --> 00:04:00,320 >> DAVID J. Malan: Ya. 86 00:04:00,320 --> 00:04:01,340 Ekspresi Boolean. 87 00:04:01,340 --> 00:04:04,502 Sesuatu yang bisa benar atau palsu, ya atau tidak, satu atau nol, 88 00:04:04,502 --> 00:04:05,960 Namun Anda ingin melihat dunia. 89 00:04:05,960 --> 00:04:08,335 Tapi kami disebut Boolean mereka ekspresi, dan kami plug mereka 90 00:04:08,335 --> 00:04:09,900 dalam kondisi, atau cabang. 91 00:04:09,900 --> 00:04:12,170 Dan di dunia Scratch, semuanya baik 92 00:04:12,170 --> 00:04:15,460 interlock segi bentuknya, apakah masuk akal logis untuk melakukannya, 93 00:04:15,460 --> 00:04:18,490 tetapi Anda tidak harus berhenti di hanya melakukan satu hal kondisional, 94 00:04:18,490 --> 00:04:20,450 Anda dapat memiliki sebuah pepatah garpu di jalan 95 00:04:20,450 --> 00:04:24,040 dan melakukan baik ini atau itu jika kondisi ini benar atau tidak. 96 00:04:24,040 --> 00:04:26,040 Dan kemudian, seperti yang Anda lihat, jika Anda belum melakukannya, 97 00:04:26,040 --> 00:04:27,480 Anda dapat meratakan sarang blok ini. 98 00:04:27,480 --> 00:04:32,110 Jadi Scratch tumbuh untuk mengisi bentuk bahwa Anda mungkin ingin memasukkan ke dalamnya, 99 00:04:32,110 --> 00:04:35,330 sehingga Anda dapat benar-benar mengungkapkan paling logika yang mungkin ingin Anda lakukan. 100 00:04:35,330 --> 00:04:38,220 >> Sekarang beberapa kata dari pengumuman untuk kedua di sini dan New Haven. 101 00:04:38,220 --> 00:04:39,370 Jadi sectioning dimulai hari ini. 102 00:04:39,370 --> 00:04:42,120 URL untuk ini adalah di lapangan ini website, untuk mereka yang tidak terbiasa. 103 00:04:42,120 --> 00:04:43,970 Bagian akan menjadi kesempatan untuk bersama-sama 104 00:04:43,970 --> 00:04:46,553 di lingkungan yang jauh lebih intim dari [? Sanders?] Memungkinkan, 105 00:04:46,553 --> 00:04:50,347 dengan 10 sampai 20 teman sekelas dengan mengajar sesama di trek yang berbeda, 106 00:04:50,347 --> 00:04:51,930 dan langkah yang berbeda, jika Anda memilih demikian. 107 00:04:51,930 --> 00:04:54,080 Memang menawarkan kursus bagian yang berbeda 108 00:04:54,080 --> 00:04:57,340 bagi mereka yang kurang nyaman, lebih nyaman, dan di suatu tempat di antara, 109 00:04:57,340 --> 00:04:59,860 dan peran praktis di sini, adalah tidak ada definisi formal, 110 00:04:59,860 --> 00:05:04,600 tetapi jika Anda kurang nyaman, Anda jenis tahu itu. 111 00:05:04,600 --> 00:05:07,470 Anda sedikit pemberani tentang Ide melangkah kaki, mungkin, kembali 112 00:05:07,470 --> 00:05:10,130 di dalam kelas, atau menampilkan hingga di antara bagian. 113 00:05:10,130 --> 00:05:12,770 Jika Anda sudah pemrograman sejak Anda berumur enam tahun, lebih nyaman, 114 00:05:12,770 --> 00:05:13,400 mungkin untuk Anda. 115 00:05:13,400 --> 00:05:16,150 Dan jika itu jenis melemparkan-up, itulah yang di antara 116 00:05:16,150 --> 00:05:17,190 dimaksudkan untuk menjadi. 117 00:05:17,190 --> 00:05:18,410 >> Sekarang, sementara itu, untuk kelas ukuran ini, 118 00:05:18,410 --> 00:05:21,326 itu membawa kita beberapa waktu untuk bagian semua orang, jadi kami telah disebut, 119 00:05:21,326 --> 00:05:24,030 bagian super, datang ini akhir pekan dan awal minggu depan, 120 00:05:24,030 --> 00:05:26,570 jadi kita lihat di website kursus ini bagi mereka yang tentu saja lebar, 121 00:05:26,570 --> 00:05:28,610 dan juga difilmkan bagi mereka yang tidak bisa membuat mereka. 122 00:05:28,610 --> 00:05:33,470 Dan bagian sendiri akan mulai di minggu ketiga indeks CS50 nol. 123 00:05:33,470 --> 00:05:35,880 Masalah mengatur 0 sudah di website kursus ini. 124 00:05:35,880 --> 00:05:40,010 Dan menyadari bahwa Anda memiliki sembilan hari akhir semester ini. 125 00:05:40,010 --> 00:05:43,240 Jadi ini merupakan upgrade dari terakhir tahun, ketika kami memiliki lima hari terlambat. 126 00:05:43,240 --> 00:05:46,210 >> Jadi jika Anda bertanya-tanya, kami memiliki sembilan masalah set. 127 00:05:46,210 --> 00:05:53,200 Anda memiliki sembilan hari terlambat, yang masing-masing Anda hanya bisa menghabiskan satu per minggu pada. 128 00:05:53,200 --> 00:05:56,089 Yang secara efektif membuat semua masalah set Jumat karena, 129 00:05:56,089 --> 00:05:58,630 tetapi tujuannya adalah untuk menempatkan sedikit sedikit tekanan psikologis 130 00:05:58,630 --> 00:06:01,100 pada Anda untuk mencoba untuk mendapatkan hal di Kamis 131 00:06:01,100 --> 00:06:03,960 karena ketika Anda akan segera menemukan, untuk lebih baik atau buruk, sebagian besar 132 00:06:03,960 --> 00:06:07,820 segala sesuatu di dunia perangkat lunak berakhir mengambil lebih lama dari yang Anda mengantisipasi. 133 00:06:07,820 --> 00:06:10,620 Jadi pertimbangkan itu semacam sebuah kesempatan untuk membantu 134 00:06:10,620 --> 00:06:13,880 diri untuk menargetkan Kamis, tetapi mengambil kenyamanan dalam hal itu, ya, 135 00:06:13,880 --> 00:06:14,950 semuanya karena hari Jumat. 136 00:06:14,950 --> 00:06:17,590 Dan jika Anda mengirimkan mereka pada Kamis, itu indah. 137 00:06:17,590 --> 00:06:21,020 Tidak ada poin bonus atau tambahan kredit untuk memenuhi tenggat waktu itu. 138 00:06:21,020 --> 00:06:23,250 Ini dimaksudkan untuk menjadi penopang saja. 139 00:06:23,250 --> 00:06:25,810 >> Dan jam kantor, baik di sini dan di New Haven, 140 00:06:25,810 --> 00:06:28,840 secara pribadi, jika Anda ingin bertemu dengan salah satu program kami 141 00:06:28,840 --> 00:06:31,060 mengajar rekan dan CA untuk bantuan. 142 00:06:31,060 --> 00:06:31,640 >> Baiklah. 143 00:06:31,640 --> 00:06:33,110 Jadi sekarang, mari kita membuat ini lebih nyata. 144 00:06:33,110 --> 00:06:35,470 Dan untuk sesaat itu akan mulai untuk mendapatkan sedikit lebih misterius, tapi sangat 145 00:06:35,470 --> 00:06:37,310 cepat pada hari Jumat dan minggu depan kita akan 146 00:06:37,310 --> 00:06:41,230 dapat melakukan jauh lebih banyak dari kita bisa sejauh ini di Scratch. 147 00:06:41,230 --> 00:06:44,350 Jadi kami memperkenalkan kode terakhir Minggu, meskipun pictoral. 148 00:06:44,350 --> 00:06:45,620 Itu potongan puzzle. 149 00:06:45,620 --> 00:06:48,800 Dan kami formal bahwa itu adalah sesuatu yang disebut kode sumber, 150 00:06:48,800 --> 00:06:50,330 tapi akan itu terlihat seperti? 151 00:06:50,330 --> 00:06:52,550 Nah, itu tampak sedikit sesuatu seperti ini. 152 00:06:52,550 --> 00:06:55,410 Dan, pada kenyataannya, hanya untuk jenis menggoda di mana kita bisa pergi dengan ini. 153 00:06:55,410 --> 00:06:57,800 Aku akan pergi ke depan dan membuka jendela di sini, 154 00:06:57,800 --> 00:06:59,810 dan aku hanya akan memilih New File. 155 00:06:59,810 --> 00:07:03,200 Dan aku akan menyimpan file ini sebagai sesuatu seperti halo dot c. 156 00:07:03,200 --> 00:07:05,700 Lebih pada pilihan kata hanya dalam beberapa saat. 157 00:07:05,700 --> 00:07:08,630 Dan ini adalah bagaimana seseorang mungkin pergi tentang menulis sebuah program. 158 00:07:08,630 --> 00:07:13,990 Termasuk standar I / O dot h, int main batal, dan kemudian buka penjepit keriting, dekat 159 00:07:13,990 --> 00:07:19,430 penjepit keriting, printf halo dunia koma, backslash n, titik koma, Simpan, dilakukan. 160 00:07:19,430 --> 00:07:19,930 OKE. 161 00:07:19,930 --> 00:07:21,670 Aku sudah menulis pertama saya Program, tapi itu akan 162 00:07:21,670 --> 00:07:23,878 menjadi sangat underwhelmed karena ketika saya benar-benar 163 00:07:23,878 --> 00:07:27,352 menjalankan program ini, tentu saja, dengan menulis pertama membuat halo, 164 00:07:27,352 --> 00:07:30,310 dan kemudian dot slash halo, dan kami akan melalui ini lebih detail 165 00:07:30,310 --> 00:07:31,730 suatu saat, itu semua hal ini. 166 00:07:31,730 --> 00:07:33,270 Tidak pop terbuka jendela apapun. 167 00:07:33,270 --> 00:07:35,070 Ia tidak melakukan apa-apa sangat mewah. 168 00:07:35,070 --> 00:07:38,830 Semua hal ini adalah apa yang saya diberitahu itu untuk lakukan, tapi bagaimana kita bisa itu? 169 00:07:38,830 --> 00:07:40,560 Dan bagaimana kita membangun itu? 170 00:07:40,560 --> 00:07:43,430 Nah, mari kita memperkenalkan beberapa konsep yang berbeda di sini. 171 00:07:43,430 --> 00:07:47,170 >> Jadi satu, kita akan memulai menggunakan program yang disebut kompilator. 172 00:07:47,170 --> 00:07:51,470 Sebuah compiler ada untuk Mac OS, Windows, Linux, sejumlah sistem operasi, 173 00:07:51,470 --> 00:07:54,540 dan kami akan segera memperkenalkan Anda ke lingkungan yang kita akan gunakan, 174 00:07:54,540 --> 00:07:57,410 tapi kompilator hanya umum istilah untuk software 175 00:07:57,410 --> 00:08:01,940 yang mengambil kode sumber dan menghasilkan kode objek dari itu. 176 00:08:01,940 --> 00:08:03,940 Dengan kata lain, jika Anda memiliki sebagai masukan sumber Anda 177 00:08:03,940 --> 00:08:08,250 kode, seperti apa yang baru saja saya mengetik, akhirnya menghasilkan kode obyek. 178 00:08:08,250 --> 00:08:11,780 Dan kode objek benar-benar hanya cara mewah untuk mengatakan itu output 179 00:08:11,780 --> 00:08:12,926 nol dan satu. 180 00:08:12,926 --> 00:08:14,800 Dengan kata lain, sumber kode, meskipun itu 181 00:08:14,800 --> 00:08:17,240 akan terlihat misterius sedikit, dan sedikit kurang ramah 182 00:08:17,240 --> 00:08:19,590 dari Scratch pada pandangan pertama, itu setidaknya sesuatu 183 00:08:19,590 --> 00:08:21,120 bahwa kita manusia dapat memahami. 184 00:08:21,120 --> 00:08:24,360 Jenis terlihat dan terdengar seperti Inggris meskipun itu sangat ringkas. 185 00:08:24,360 --> 00:08:28,040 Sedangkan pemrograman nol dan seseorang, seperti para pendahulu kita harus lakukan, 186 00:08:28,040 --> 00:08:30,920 beberapa tahun yang lalu, bukan terutama menyenangkan tantangan. 187 00:08:30,920 --> 00:08:33,710 Namun, ini adalah apa yang komputer masih mengerti. 188 00:08:33,710 --> 00:08:37,010 Jadi compiler mendapat kita dari kode sumber untuk objek kode. 189 00:08:37,010 --> 00:08:39,860 Ini seperti membuka file dengan compiler, dan ketika Anda menyimpannya, 190 00:08:39,860 --> 00:08:41,419 Anda mendapatkan orang-nol dan satu. 191 00:08:41,419 --> 00:08:43,419 Jadi kita akan melihat bagaimana melakukan yang hanya dalam beberapa saat. 192 00:08:43,419 --> 00:08:47,400 >> Tapi mari kita sekarang mencoba untuk memberikan menjembatani antara minggu lalu dan ini, 193 00:08:47,400 --> 00:08:50,660 sehingga bahkan ketika kita terpaku pada hal-hal seperti kawat gigi keriting, 194 00:08:50,660 --> 00:08:54,100 dan titik koma, dan tanda kurung, dan semua ini secara intelektual menarik 195 00:08:54,100 --> 00:08:57,620 aspek pemrograman, yang sangat dimengerti perjalanan orang sampai awal, 196 00:08:57,620 --> 00:09:00,930 menyadari bahwa semua ide hari ini, adalah sama seperti terakhir. 197 00:09:00,930 --> 00:09:03,975 Jadi terakhir, kita melihat contoh ini di sini, Program Hello World. 198 00:09:03,975 --> 00:09:07,500 Nah, mulai hari ini, jika kita ingin untuk melaksanakan program yang sama, 199 00:09:07,500 --> 00:09:10,800 itu akan terlihat sedikit sesuatu seperti ini. 200 00:09:10,800 --> 00:09:14,040 Dan kami akan menjelaskan sebelum lama int apa, dan utama, dan kosong, dan semua itu 201 00:09:14,040 --> 00:09:18,770 adalah, tapi setidaknya saya lihat di sini sudah akrab Hello World. 202 00:09:18,770 --> 00:09:20,860 >> Sementara itu, hal-hal seperti fungsi, menyapa, 203 00:09:20,860 --> 00:09:23,570 yang sangat sederhana akan menjadi pernyataan yang sangat sederhana seperti ini. 204 00:09:23,570 --> 00:09:26,930 Printf halo dunia, dengan beberapa mengutip, dengan garis miring terbalik, 205 00:09:26,930 --> 00:09:29,780 dengan titik koma, tapi lebih pada untuk datang. 206 00:09:29,780 --> 00:09:34,066 Loops, sementara itu, ini lingkaran itu, tentu saja, menyapa dunia selamanya, 207 00:09:34,066 --> 00:09:36,690 dan yang satu ini akan terlihat sedikit aneh daripada di yang terakhir, 208 00:09:36,690 --> 00:09:39,530 tetapi jika aku mengatakan sesuatu seperti, sementara benar, saya 209 00:09:39,530 --> 00:09:44,050 kemudian dapat mencetak Hello dunia lagi dan lagi dan lagi dan lagi. 210 00:09:44,050 --> 00:09:46,660 Dan kemudian Anda bisa jenis dari mulai menyimpulkan di sini, 211 00:09:46,660 --> 00:09:49,070 konvensi ini menggunakan kurung kurawal adalah jenis 212 00:09:49,070 --> 00:09:52,050 seperti merangkul baris indentasi kode di sana. 213 00:09:52,050 --> 00:09:55,840 Baris printf kode seperti kuning potongan puzzle di atas. 214 00:09:55,840 --> 00:09:58,740 Jadi kita tidak akan mengatakan selamanya, kita akan mengatakan sementara benar, 215 00:09:58,740 --> 00:10:01,020 tapi kami akan melihat mengapa itu hanya sedikit. 216 00:10:01,020 --> 00:10:04,210 >> Sementara itu, jika kita memiliki satu lingkaran seperti ini, di mana Anda mengulangi sesuatu yang terbatas 217 00:10:04,210 --> 00:10:07,730 nomor kali, yang satu ini juga sangat akan mengambil sedikit membiasakan 218 00:10:07,730 --> 00:10:12,820 , tapi itu akan mengatakan untuk int i mendapat nol, saya kurang dari 10, i ++, 219 00:10:12,820 --> 00:10:14,056 dan kemudian printf lagi. 220 00:10:14,056 --> 00:10:15,430 Tapi ada akan menjadi pola. 221 00:10:15,430 --> 00:10:18,434 Dan bagi Anda yang akrab dengan AP Ilmu Komputer, atau Java, 222 00:10:18,434 --> 00:10:21,100 atau sejumlah bahasa lain, hampir semua konstruksi ini 223 00:10:21,100 --> 00:10:23,820 sejauh harus melihat sebagian besar akrab. 224 00:10:23,820 --> 00:10:24,680 >> Jadi variabel. 225 00:10:24,680 --> 00:10:29,270 Jadi, inilah Scratch kutipan sederhana yang menetapkan variabel yang disebut counter ke nol, 226 00:10:29,270 --> 00:10:33,150 dan kemudian selamanya mengatakan meja, dan maka perubahan counter per satu. 227 00:10:33,150 --> 00:10:37,030 Jadi dimulai dengan nol, dan kemudian satu, dua, tiga. 228 00:10:37,030 --> 00:10:42,560 Nah, bagaimana kita bisa memperkenalkan bahwa di bahasa ini baru sedikit sama? 229 00:10:42,560 --> 00:10:45,460 Int kontra sama nol, sementara benar, yang 230 00:10:45,460 --> 00:10:48,100 adalah bahwa ide yang sama dari sebelumnya melakukan sesuatu selamanya, 231 00:10:48,100 --> 00:10:49,530 dan aku hanya akan printf. 232 00:10:49,530 --> 00:10:53,310 Dan sekarang itu semakin sedikit aneh, persen saya, tetapi lebih pada untuk datang, 233 00:10:53,310 --> 00:10:55,140 tetapi gagasan-gagasan ini persis sama. 234 00:10:55,140 --> 00:10:58,820 Kami hanya sekarang harus mematuhi sintaks bahwa komputer adalah 235 00:10:58,820 --> 00:11:00,010 akan menuntut kita. 236 00:11:00,010 --> 00:11:04,620 >> Ekspresi Boolean, sesuatu seperti sx kurang dari y, atau x kurang dari y, 237 00:11:04,620 --> 00:11:06,354 dan y kurang dari z. 238 00:11:06,354 --> 00:11:09,270 Ini akan terlihat sedikit sesuatu seperti ini, dengan kurung hanya 239 00:11:09,270 --> 00:11:13,020 seperti dalam matematika untuk mengukur baik untuk hanya memastikan bahwa urutan operasi 240 00:11:13,020 --> 00:11:14,750 adalah sebagai kami berniat. 241 00:11:14,750 --> 00:11:15,600 Dan sekarang, kondisi. 242 00:11:15,600 --> 00:11:21,220 Jadi jika x kurang dari y, mengatakan x kurang dari y, lain jika x lebih besar dari y, 243 00:11:21,220 --> 00:11:26,020 mengatakan x lebih besar dari y, jika tidak logis, x harus sama dengan y. 244 00:11:26,020 --> 00:11:28,710 Jadi, Anda mungkin menerapkan sesuatu seperti ini di Scratch, 245 00:11:28,710 --> 00:11:31,230 atau Anda mungkin menerapkan dalam sintaks ini. 246 00:11:31,230 --> 00:11:35,090 Dan lagi, kurung kurawal adalah jenis memberikan kita bentuk yang sama seperti teka-teki 247 00:11:35,090 --> 00:11:40,750 potongan, namun sintaks, sekarang, mungkin mulai mengikuti beberapa pola. 248 00:11:40,750 --> 00:11:42,910 >> Jadi, apa ini memberi kita di sini? 249 00:11:42,910 --> 00:11:45,260 Jadi kita kembali kemudian di program utama kami. 250 00:11:45,260 --> 00:11:47,930 Mari kita sebenarnya, sekarang, melakukan sesuatu dengan itu. 251 00:11:47,930 --> 00:11:50,660 Jadi dalam hal ini pertama baris kami lihat termasuk tajam, 252 00:11:50,660 --> 00:11:53,160 standar I / O, titik jam, dan kemudian beberapa sudut yang aneh 253 00:11:53,160 --> 00:11:57,330 kurung di bawah itu. int main batal, dan kemudian printf halo dunia. 254 00:11:57,330 --> 00:11:58,200 Jadi hanya mengambil langkah. 255 00:11:58,200 --> 00:12:02,440 Seseorang yang tidak pernah diprogram sebelumnya, setidaknya menjelaskan salah satu dari garis-garis ini. 256 00:12:02,440 --> 00:12:04,490 Menggunakan mungkin beberapa jargon pekan lalu. 257 00:12:04,490 --> 00:12:06,942 Apa printf, misalnya? 258 00:12:06,942 --> 00:12:07,442 Ya. 259 00:12:07,442 --> 00:12:08,410 >> AUDIENCE: [tidak terdengar] 260 00:12:08,410 --> 00:12:08,610 >> DAVID J. Malan: Ya. 261 00:12:08,610 --> 00:12:11,380 Ini fungsi, atau pernyataan, dari terminologi pekan lalu. 262 00:12:11,380 --> 00:12:13,470 Dan itu tindakan yang melakukan sesuatu. 263 00:12:13,470 --> 00:12:15,855 Sekarang fungsi ini, atau pernyataan ini, tidak 264 00:12:15,855 --> 00:12:17,550 tampak untuk mengambil beberapa jenis input? 265 00:12:17,550 --> 00:12:20,080 266 00:12:20,080 --> 00:12:24,380 Dan dalam arti apa melakukannya tampaknya mengambil masukan, jika demikian? 267 00:12:24,380 --> 00:12:26,180 Masukan, apa yang saya maksud dengan itu? 268 00:12:26,180 --> 00:12:26,720 Ya. 269 00:12:26,720 --> 00:12:27,595 >> AUDIENCE: [tidak terdengar] 270 00:12:27,595 --> 00:12:30,565 271 00:12:30,565 --> 00:12:31,440 DAVID J. Malan: Ya. 272 00:12:31,440 --> 00:12:34,890 Jadi Gores sebuah potongan puzzle beberapa di mana Anda dapat parametrize itu. 273 00:12:34,890 --> 00:12:37,980 Anda bisa mengatakan ulangi memblokir berapa kali untuk mengulang, 274 00:12:37,980 --> 00:12:40,320 jadi itu masukan dari macam, dan seperti Scratch 275 00:12:40,320 --> 00:12:43,060 memiliki placeholder putih kecil untuk nomor yang akan ketik, 276 00:12:43,060 --> 00:12:45,810 jadi kita gunakan dalam hal ini kurung dunia teks 277 00:12:45,810 --> 00:12:49,910 untuk memberikan yang berbentuk lingkaran di mana kita bisa pasang masukan kami. 278 00:12:49,910 --> 00:12:53,180 Setelah semua, puluhan tahun yang lalu ketika bahasa ini, disebut C, 279 00:12:53,180 --> 00:12:55,950 diciptakan tidak ada diantisipasi itu salah satu dari kita, 280 00:12:55,950 --> 00:12:59,420 ini beberapa tahun kemudian, kami akan ingin fungsi yang menyapa. 281 00:12:59,420 --> 00:12:59,920 Benar? 282 00:12:59,920 --> 00:13:02,880 Ini akan sangat baik jika ada potongan puzzle, atau kata-kata kunci, 283 00:13:02,880 --> 00:13:05,502 yang disebut halo, yang benar-benar hanya menyapa. 284 00:13:05,502 --> 00:13:06,460 Tapi kita tidak perlu itu. 285 00:13:06,460 --> 00:13:09,320 Kita dapat memiliki sesuatu yang jauh lebih rendah tingkat, seperti cetak generik 286 00:13:09,320 --> 00:13:12,760 perintah, yang mengambil input, dan cetak apapun yang kita inginkan. 287 00:13:12,760 --> 00:13:14,960 Jadi perhatikan pola sekarang yang akan mulai muncul. 288 00:13:14,960 --> 00:13:19,310 Terbuka paren, paren dekat adalah tampaknya merangkul input, 289 00:13:19,310 --> 00:13:21,770 dan kemudian saya melihat ganda mengutip pada kedua ujungnya. 290 00:13:21,770 --> 00:13:25,110 Masih ada backslash aneh n, tapi mudah-mudahan sekarang Anda 291 00:13:25,110 --> 00:13:29,900 dapat mulai untuk memvisualisasikan setidaknya itu printf adalah mengambil dalam beberapa bentuk masukan. 292 00:13:29,900 --> 00:13:31,850 Tidak sebagai user friendly Scratch, tapi itu hanya 293 00:13:31,850 --> 00:13:34,920 seperti memiliki terpasang di beberapa nilai sana. 294 00:13:34,920 --> 00:13:38,306 >> Baiklah, sekarang mari kita sebenarnya melakukan sesuatu dengan ini. 295 00:13:38,306 --> 00:13:40,930 Jadi beberapa dari Anda mungkin tahu dari memiliki berbelanja kelas sebelumnya, 296 00:13:40,930 --> 00:13:42,638 mengobrol dengan teman-teman, yang selama bertahun-tahun 297 00:13:42,638 --> 00:13:44,590 kami menggunakan sesuatu yang disebut alat CS50. 298 00:13:44,590 --> 00:13:49,160 Ini adalah istilah yang menggambarkan teknologi disebut mesin virtual, yang 299 00:13:49,160 --> 00:13:51,870 adalah software yang Anda pendahulu akan men-download off 300 00:13:51,870 --> 00:13:53,360 website saja secara gratis. 301 00:13:53,360 --> 00:13:56,550 Mereka juga akan men-download sepotong gratis dari perangkat lunak yang disebut hypervisor, 302 00:13:56,550 --> 00:14:00,590 sesuatu yang disebut seperti VMware, atau VirtualBox, atau sejumlah 303 00:14:00,590 --> 00:14:04,450 alat-alat lain, dan mereka Mac atau PC atau komputer apa pun yang mereka punya tahun lalu 304 00:14:04,450 --> 00:14:06,620 dan di tahun terakhir, mereka akan menggandakan klik ikon 305 00:14:06,620 --> 00:14:08,860 untuk menjalankan software ini disebut hypervisor. 306 00:14:08,860 --> 00:14:12,220 Dan kemudian di dalam program yang mereka akan membuka alat CS50. 307 00:14:12,220 --> 00:14:14,710 Dan efeknya adalah bahwa apakah pendahulu Anda 308 00:14:14,710 --> 00:14:17,780 berlari Mac OS atau Windows, ia kemudian 309 00:14:17,780 --> 00:14:22,910 kemudian memiliki jendela baru pada mereka Layar menjalankan lingkungan CS50 ini. 310 00:14:22,910 --> 00:14:27,370 Jadi mesin virtual memungkinkan Anda menjalankan satu sistem operasi dalam lain, 311 00:14:27,370 --> 00:14:28,785 dan itulah yang kami lakukan. 312 00:14:28,785 --> 00:14:31,410 Sepanjang sebagian besar kita saja menggunakan sistem operasi yang disebut 313 00:14:31,410 --> 00:14:34,070 Linux, khususnya Ubuntu Linux, dan ini 314 00:14:34,070 --> 00:14:37,590 adalah cara yang sangat bagus di tahun terakhir memastikan bahwa setiap orang dalam kursus 315 00:14:37,590 --> 00:14:38,840 hanya memiliki lingkungan yang sama. 316 00:14:38,840 --> 00:14:41,339 Dan Anda dapat menggunakan segala jenis komputer yang Anda benar-benar ingin. 317 00:14:41,339 --> 00:14:43,930 Di antara kerugian, meskipun, yang itu seperti dua gigabyte 318 00:14:43,930 --> 00:14:45,480 untuk men-download hal ini. 319 00:14:45,480 --> 00:14:50,310 Ini tidak selalu bekerja dengan baik pada Super orang-orang yang komputer yang mungkin hanya 320 00:14:50,310 --> 00:14:54,570 memiliki manggung atau lebih RAM, atau tidak terlalu banyak gigahertz kecepatan CPU, 321 00:14:54,570 --> 00:14:56,750 dan tahun ini, untuk ini dan alasan lainnya, 322 00:14:56,750 --> 00:14:59,140 harus kita telah transisi untuk lingkungan ini. 323 00:14:59,140 --> 00:15:03,730 Yang disebut CS50 IDE, yang merupakan didasarkan pada perangkat lunak open source, 324 00:15:03,730 --> 00:15:07,380 dan platform yang didukung bahwa sebuah perusahaan bernama Cloud9 325 00:15:07,380 --> 00:15:11,110 mendukung di Eropa, yang memungkinkan kita untuk memiliki dasarnya 326 00:15:11,110 --> 00:15:15,770 bahwa lingkungan yang sama persis seperti di tahun terakhir, tetapi dalam apa yang disebut awan. 327 00:15:15,770 --> 00:15:17,532 >> Jadi apa yang awan? 328 00:15:17,532 --> 00:15:20,480 Anda mungkin pernah diklik icon pada Mac atau PC. 329 00:15:20,480 --> 00:15:22,210 Apa awan? 330 00:15:22,210 --> 00:15:22,709 Ya? 331 00:15:22,709 --> 00:15:25,880 332 00:15:25,880 --> 00:15:26,780 Sebuah sedikit lebih keras. 333 00:15:26,780 --> 00:15:30,510 334 00:15:30,510 --> 00:15:31,010 Ya. 335 00:15:31,010 --> 00:15:33,770 Ini hanya sekelompok komputer tempat lain yang menyimpan data dan menjalankan 336 00:15:33,770 --> 00:15:34,880 software dan sejenisnya. 337 00:15:34,880 --> 00:15:39,390 Sehingga benar-benar hanya untuk kata de jure menggambarkan [? disewakan?] 338 00:15:39,390 --> 00:15:40,930 komputer yang tinggal di tempat lain. 339 00:15:40,930 --> 00:15:42,810 Anda, diri sendiri, tidak selalu memiliki. 340 00:15:42,810 --> 00:15:45,256 Jadi ketika data Anda, atau Anda program, berada di awan, 341 00:15:45,256 --> 00:15:47,630 itu hanya berarti itu pada seseorang komputer lain di tempat lain, 342 00:15:47,630 --> 00:15:50,510 dan tidak, kemungkinan besar, pada Anda laptop fisik atau desktop. 343 00:15:50,510 --> 00:15:52,990 Dan itulah yang CS50 IDE sekarang adalah. 344 00:15:52,990 --> 00:15:55,670 >> Selanjutnya Anda akan pergi ke tertentu URL yang akan memperkenalkan Anda 345 00:15:55,670 --> 00:16:00,090 untuk, dalam masalah set 1, kemudian ini Minggu, yang akan kemudian, setelah login, 346 00:16:00,090 --> 00:16:01,480 memberikan lingkungan ini. 347 00:16:01,480 --> 00:16:03,896 Dan banyak Scratch seperti memiliki beberapa panel yang berbeda yang terlibat, 348 00:16:03,896 --> 00:16:06,030 begitu pula IDE CS50 memiliki hal itu. 349 00:16:06,030 --> 00:16:09,480 Di atas sisi kiri di sini, kau akan melihat file browser yang akrab. 350 00:16:09,480 --> 00:16:11,930 Jadi salah satu file yang Anda dimasukkan ke dalam lingkungan ini 351 00:16:11,930 --> 00:16:13,346 hanya akan terdaftar di sana. 352 00:16:13,346 --> 00:16:14,350 File dan folder. 353 00:16:14,350 --> 00:16:16,790 Di atas sini, Anda akan melihat tempat 354 00:16:16,790 --> 00:16:18,420 di mana Anda benar-benar dapat menulis kode Anda. 355 00:16:18,420 --> 00:16:21,860 Awalnya di C, kemudian di istilah dalam PHP dan JavaScript, 356 00:16:21,860 --> 00:16:24,739 dan, mungkin untuk akhir proyek, Ruby atau Java atau Python 357 00:16:24,739 --> 00:16:27,280 atau sejumlah bahasa yang didukung dalam lingkungan ini. 358 00:16:27,280 --> 00:16:30,130 Ini sama sekali tidak terikat untuk CS50 khusus. 359 00:16:30,130 --> 00:16:33,390 >> Dan kemudian di pojok bawah sini, terutama bagi mereka yang lebih nyaman, 360 00:16:33,390 --> 00:16:35,590 Anda memiliki sesuatu disebut jendela terminal. 361 00:16:35,590 --> 00:16:38,770 Dan jendela terminal ini memungkinkan Anda untuk menjalankan perintah apapun yang Anda 362 00:16:38,770 --> 00:16:40,860 inginkan dalam lingkungan awan ini. 363 00:16:40,860 --> 00:16:42,860 Hal ini memungkinkan Anda untuk menginstal software tambahan 364 00:16:42,860 --> 00:16:46,810 yang Anda inginkan karena Anda telah disebut akar, atau administrator hak. 365 00:16:46,810 --> 00:16:49,930 Jadi dengan kata lain, meskipun ini akhirnya host di awan, 366 00:16:49,930 --> 00:16:52,400 dan meskipun kita memiliki disederhanakan itu sampai batas tertentu 367 00:16:52,400 --> 00:16:57,110 secara default, secara harfiah memperkenalkan, Dan berkat Armendariz, dan Dino, 368 00:16:57,110 --> 00:17:01,070 dan Dan Bradley tim CS50 selama bertahun- melewati banyak bulan, kurang nyaman 369 00:17:01,070 --> 00:17:05,140 Modus yang menyembunyikan banyak gangguan awalnya membingungkan. 370 00:17:05,140 --> 00:17:10,119 Semuanya ada ada untuk merupakan sebuah sistem komputer yang khas 371 00:17:10,119 --> 00:17:12,319 Anda mungkin menggunakan di dunia nyata. 372 00:17:12,319 --> 00:17:15,640 >> Jadi, apa ini semua berarti, dan apa yang bisa kita benar-benar melakukannya dengan itu? 373 00:17:15,640 --> 00:17:19,124 Mari benar-benar mengambil mengintip di program. 374 00:17:19,124 --> 00:17:21,290 Jadi aku akan membuka lingkungan yang sebenarnya di sini, 375 00:17:21,290 --> 00:17:23,894 yang hanya Chrome kami browser, yang bisa menjadi Firefox, 376 00:17:23,894 --> 00:17:26,640 bisa Internet Explorer, atau browser lain juga. 377 00:17:26,640 --> 00:17:28,400 Ini penuh disaring sini untuk saat ini. 378 00:17:28,400 --> 00:17:31,580 Dan saya ingin benar-benar menggoda selain apa program ini adalah. 379 00:17:31,580 --> 00:17:36,170 Jadi mari kita lihat, dengan zoom in up Atas, apa yang saya lakukan, dan bagaimana saya sampai di sini. 380 00:17:36,170 --> 00:17:38,315 Jadi, inilah yang sebenarnya baris kode yang sama. 381 00:17:38,315 --> 00:17:40,440 Jadi ini adalah pernyataan, seperti yang Anda sebutkan sebelumnya. 382 00:17:40,440 --> 00:17:42,580 Fungsi yang mengatakan halo. 383 00:17:42,580 --> 00:17:45,870 Kurung kurawal, pada line empat dan garis enam, 384 00:17:45,870 --> 00:17:49,290 mungkin jenis amplop garis yang menghubungkannya 385 00:17:49,290 --> 00:17:50,890 dengan esensi program saya. 386 00:17:50,890 --> 00:17:54,890 Jadi memang, kata kunci utama ini, itu terserah ada di saluran tiga, 387 00:17:54,890 --> 00:17:59,450 Anda bisa memikirkan bahwa sebagai setara bahwa ketika bendera hijau diklik, 388 00:17:59,450 --> 00:18:01,080 memblokir di Scratch. 389 00:18:01,080 --> 00:18:05,280 Jadi itu yang kita miliki di sini, adalah ketika bendera hijau diklik, cetak, atau mengatakan, 390 00:18:05,280 --> 00:18:06,700 Halo Dunia. 391 00:18:06,700 --> 00:18:11,210 >> Tapi mari kita menebak, sekarang, apa pertama, garis yang lebih misterius ini, adalah. 392 00:18:11,210 --> 00:18:15,100 Tajam termasuk, terbuka miring braket, standar I / O dot jam, 393 00:18:15,100 --> 00:18:17,320 menutup bracket siku. 394 00:18:17,320 --> 00:18:19,850 Apa yang bahwa mungkin melakukan, terutama jika Anda telah diprogram 395 00:18:19,850 --> 00:18:21,390 sebelum dalam beberapa bahasa lain. 396 00:18:21,390 --> 00:18:21,890 Ya? 397 00:18:21,890 --> 00:18:22,765 >> AUDIENCE: [tidak terdengar] 398 00:18:22,765 --> 00:18:25,095 399 00:18:25,095 --> 00:18:25,970 DAVID J. Malan: Ya. 400 00:18:25,970 --> 00:18:26,470 Tepat. 401 00:18:26,470 --> 00:18:29,455 Jadi ini adalah memberikan Anda akses ke perpustakaan, sehingga untuk berbicara, fungsi. 402 00:18:29,455 --> 00:18:31,830 Dan perpustakaan fungsi adalah fungsi yang orang lain 403 00:18:31,830 --> 00:18:34,406 menulis, baik baru-baru ini atau lama, sehingga Anda 404 00:18:34,406 --> 00:18:35,780 tidak perlu menciptakan roda. 405 00:18:35,780 --> 00:18:39,020 Misalnya, kita tidak harus tahu, pada tahun 2015, 406 00:18:39,020 --> 00:18:42,280 bagaimana menulis kode yang menempatkan karakter di layar saya. 407 00:18:42,280 --> 00:18:44,820 Orang lain telah menemukan bahwa dengan fungsi printf 408 00:18:44,820 --> 00:18:47,280 sehingga saya dapat menyusun abstrak jauh dari itu, atau lapisan 409 00:18:47,280 --> 00:18:49,350 di atas nya kode, dan sekarang hanya mengambil 410 00:18:49,350 --> 00:18:52,760 saja bahwa program apapun saya menulis dapat mencetak sesuatu ke layar. 411 00:18:52,760 --> 00:18:58,150 Jadi baris pertama ini ada pada langkah satu termasuk yang disebut file header 412 00:18:58,150 --> 00:18:59,980 untuk perpustakaan standar. 413 00:18:59,980 --> 00:19:02,630 Jadi lihat, bahasa yang kita sekarang bekerja 414 00:19:02,630 --> 00:19:05,010 memiliki perpustakaan standar dengan banyak fungsi. 415 00:19:05,010 --> 00:19:07,240 Printf adalah salah satu dari mereka, dan bahwa baris pertama kode 416 00:19:07,240 --> 00:19:10,040 berarti memberikan akses ke fungsi-fungsi, sehingga saya 417 00:19:10,040 --> 00:19:12,300 tidak perlu menciptakan roda itu. 418 00:19:12,300 --> 00:19:15,940 >> Sekarang mari kita pergi ke jendela bawah dan melakukan apa yang saya lakukan sebelumnya. 419 00:19:15,940 --> 00:19:18,520 Sesaat lalu, ketika saya masih mendesing melalui kode, 420 00:19:18,520 --> 00:19:24,540 mengetik itu untuk pertama kalinya, Saya sangat cepat mengetik, membuat halo. 421 00:19:24,540 --> 00:19:28,250 Apa itu semua tentang akan Anda menebak? 422 00:19:28,250 --> 00:19:29,150 Apa yang saya lakukan? 423 00:19:29,150 --> 00:19:29,649 Ya? 424 00:19:29,649 --> 00:19:31,810 425 00:19:31,810 --> 00:19:32,310 Lupakan. 426 00:19:32,310 --> 00:19:32,970 Tidak apa-apa. 427 00:19:32,970 --> 00:19:33,492 Ya. 428 00:19:33,492 --> 00:19:34,450 AUDIENCE: Kompilasi itu. 429 00:19:34,450 --> 00:19:34,700 DAVID J. Malan: Ya. 430 00:19:34,700 --> 00:19:35,770 Itu hanya mengkompilasinya. 431 00:19:35,770 --> 00:19:36,270 Benar? 432 00:19:36,270 --> 00:19:39,280 Bahkan jika ini benar-benar asing kepada Anda, itu cukup bahasa Inggris seperti. 433 00:19:39,280 --> 00:19:41,155 Hal ini jelas tidak nol dan orang-orang, jadi aku masih 434 00:19:41,155 --> 00:19:44,220 perlu menjalankannya melalui yang disebut Program, compiler, yang akan 435 00:19:44,220 --> 00:19:46,060 menganggapnya sebagai masukan dan menghasilkan output. 436 00:19:46,060 --> 00:19:48,270 Dan setidaknya, untuk saat ini, di lingkungan Linux ini, 437 00:19:48,270 --> 00:19:51,030 tapi ini tidak prasyarat, ini hanya di mana kita akan mulai, 438 00:19:51,030 --> 00:19:53,960 Anda biasanya berinteraksi dengan sistem komputer seperti ini 439 00:19:53,960 --> 00:19:55,770 oleh baris perintah disebut. 440 00:19:55,770 --> 00:19:57,790 Jadi dengan berkedip sebuah cepat dan keyboard, 441 00:19:57,790 --> 00:20:01,630 dan tidak begitu banyak mouse Anda, dan tidak begitu banyak jendela dan ikon dan menu, 442 00:20:01,630 --> 00:20:02,980 bukan semuanya tekstual. 443 00:20:02,980 --> 00:20:06,180 Dan meskipun ini terasa, pada awalnya Sekilas, mungkin, seperti langkah mundur, 444 00:20:06,180 --> 00:20:08,437 itu sebenarnya jauh lebih cara yang ampuh dan ekspresif 445 00:20:08,437 --> 00:20:10,270 mengendalikan komputer terutama karena Anda, 446 00:20:10,270 --> 00:20:12,950 diri sendiri, menjadi lebih nyaman dari kurang. 447 00:20:12,950 --> 00:20:16,790 Ini akan memungkinkan Anda untuk melakukan banyak lebih banyak hal daripada hanya apa Microsoft 448 00:20:16,790 --> 00:20:20,390 atau Apple memungkinkan Anda untuk melakukan dengan sistem operasi grafis mereka. 449 00:20:20,390 --> 00:20:23,270 >> Jadi ketika saya tekan Enter, sekarang, tidak ada yang terjadi saat ini 450 00:20:23,270 --> 00:20:25,960 karena rupanya Program halo up to date. 451 00:20:25,960 --> 00:20:28,250 Dan apa perintah Aku berlari setelah itu? 452 00:20:28,250 --> 00:20:32,370 Dot slash halo, halo dan dunia. 453 00:20:32,370 --> 00:20:34,350 Sekarang mari kita mengambil langkah kembali untuk sesaat. 454 00:20:34,350 --> 00:20:39,510 Ternyata yang membuat halo hanya Cara sederhana dari kompilasi program. 455 00:20:39,510 --> 00:20:41,670 Mari kita memperkenalkan salah satu bagian dari jargon, 456 00:20:41,670 --> 00:20:43,470 tapi kemudian pindah dari itu, karena itu tidak 457 00:20:43,470 --> 00:20:46,640 semua yang menarik untuk tujuan hari ini. 458 00:20:46,640 --> 00:20:51,000 Compiler kita akan mulai menggunakan disebut dentang, untuk bahasa C. 459 00:20:51,000 --> 00:20:54,280 Dan ini adalah sebuah program yang dijalankan hanya seperti yang kita lakukan pada baris perintah di sana. 460 00:20:54,280 --> 00:20:56,580 Dan jadi jika saya ingin mengkompilasi sebuah program yang saya 461 00:20:56,580 --> 00:21:00,790 telah ditulis dalam sebuah file yang bernama halo dot c, saya benar-benar cukup ketik dentang halo c 462 00:21:00,790 --> 00:21:02,100 masukkan. 463 00:21:02,100 --> 00:21:04,880 >> Lucunya, untuk alasan historis, 464 00:21:04,880 --> 00:21:07,750 jika saya tidak menentukan nama program 465 00:21:07,750 --> 00:21:11,690 yang ingin saya output, jika saya tidak melakukan menentukan nama file bagi mereka nol 466 00:21:11,690 --> 00:21:14,990 dan orang-orang, yang sangat aneh tahun konvensi diadopsi lalu 467 00:21:14,990 --> 00:21:17,390 mana rasanya semacam jawaban yang baik pada saat itu, 468 00:21:17,390 --> 00:21:21,650 baik mari kita sewenang-wenang memanggil Program pertama yang kita mengkompilasi sebuah titik keluar. 469 00:21:21,650 --> 00:21:22,900 Sebuah datang pertama dalam alfabet. 470 00:21:22,900 --> 00:21:23,920 Keluar, itu output. 471 00:21:23,920 --> 00:21:26,210 Jadi kita akan memanggil program secara default titik keluar. 472 00:21:26,210 --> 00:21:29,550 Dan itu bagus karena jika saya ingin menjalankan program dalam teks ini berdasarkan 473 00:21:29,550 --> 00:21:33,590 lingkungan, saya hanya ketik dot slash titik keluar masuk. 474 00:21:33,590 --> 00:21:35,250 Dan itu akan berjalan persis seperti sebelumnya. 475 00:21:35,250 --> 00:21:36,880 Jadi mari kita lihat yang sangat cepat. 476 00:21:36,880 --> 00:21:40,370 >> Jadi jika saya kembali ke saya kode sumber di CS50 IDE, 477 00:21:40,370 --> 00:21:47,860 dan saya bukan melakukan ini, dentang halo cot c masuk, pemberitahuan tidak ada tampaknya terjadi, 478 00:21:47,860 --> 00:21:49,790 tapi hampir selalu di lingkungan Linux ini, 479 00:21:49,790 --> 00:21:53,310 ketika ada yang buruk tampaknya terjadi, bahwa berarti sesuatu yang baik benar-benar terjadi. 480 00:21:53,310 --> 00:21:56,270 Jika Anda tidak melihat kesalahan pesan, semua mungkin baik. 481 00:21:56,270 --> 00:22:01,930 Dan memang, jika sekarang saya lakukan dot slash dot keluar masuk, saya sudah menjalankan program yang sama saya. 482 00:22:01,930 --> 00:22:04,610 Saya masih memiliki program halo dari sebelumnya karena memang, itu 483 00:22:04,610 --> 00:22:07,430 akan menjadi jauh lebih bagus hanya ketik membuat bukannya mengingat 484 00:22:07,430 --> 00:22:10,240 mantra ini dari perintah, tetapi mari kita lihat bagaimana kita 485 00:22:10,240 --> 00:22:12,890 mungkin memperbaiki ini, tetap. 486 00:22:12,890 --> 00:22:15,340 >> Jadi, ini adalah perintah untuk mengkompilasi kode. 487 00:22:15,340 --> 00:22:19,100 Ini adalah perintah untuk menjalankan kode dikompilasi sesudahnya. 488 00:22:19,100 --> 00:22:20,546 Bagaimana saya bisa menentukan nama file? 489 00:22:20,546 --> 00:22:22,670 Nah mari kita memperkenalkan satu lagi bagian dari jargon. 490 00:22:22,670 --> 00:22:24,461 Ketika Anda berada di ini lingkungan berbasis teks, 491 00:22:24,461 --> 00:22:27,400 Anda akan ingin menentukan hal yang disebut argumen baris perintah. 492 00:22:27,400 --> 00:22:31,380 Yang hanya cara mewah mengatakan, Dengan kata lain pada prompt yang 493 00:22:31,380 --> 00:22:33,860 tweak perilaku apa pun Program yang Anda jalankan. 494 00:22:33,860 --> 00:22:37,320 Jadi khusus program saya berjalan, dengan mengetikkan nama dentang, 495 00:22:37,320 --> 00:22:38,504 adalah program yang disebut dentang. 496 00:22:38,504 --> 00:22:40,920 Jadi ini atau sekolah tua setara dengan mengklik ganda 497 00:22:40,920 --> 00:22:42,860 Microsoft Word atau icon beberapa program. 498 00:22:42,860 --> 00:22:46,360 Aku bukan hanya mengetik nama, tapi dalam versi ini perintah, 499 00:22:46,360 --> 00:22:51,334 Saya kemudian memiliki dasbor ruang o halo halo ruang dot c. 500 00:22:51,334 --> 00:22:53,500 Jadi bahkan jika Anda belum pernah bermain di dunia ini sebelumnya, 501 00:22:53,500 --> 00:22:58,160 hanya mengambil menebak apa tidak dasbor o halo lakukan? 502 00:22:58,160 --> 00:23:00,620 Atau apa itu memberitahu dentang lakukan? 503 00:23:00,620 --> 00:23:01,386 Ya. 504 00:23:01,386 --> 00:23:02,455 >> AUDIENCE: [tidak terdengar] 505 00:23:02,455 --> 00:23:03,330 DAVID J. Malan: Ya. 506 00:23:03,330 --> 00:23:08,614 Ini hanya menetapkan output file menjadi halo bukannya konyol titik keluar. 507 00:23:08,614 --> 00:23:09,780 Dan, memang, mari kita coba ini. 508 00:23:09,780 --> 00:23:14,250 Jadi jika sekarang saya lakukan, pertama mari kita lakukan ini, r m halo. 509 00:23:14,250 --> 00:23:15,590 Itu hapus. 510 00:23:15,590 --> 00:23:18,450 Dan itu akan mengatakan hapus file biasa halo, yang 511 00:23:18,450 --> 00:23:22,210 adalah tidak perlu misterius, tapi itu hanya berarti apakah Anda ingin menghapus file, 512 00:23:22,210 --> 00:23:23,230 dan saya ketik y untuk yes. 513 00:23:23,230 --> 00:23:27,340 Dan perhatikan, jika Anda melirik atas kiri, itu menghilang dari atas sana. 514 00:23:27,340 --> 00:23:32,180 Mari saya lakukan dentang dasbor o, dan Aku akan pergi ke depan dan melakukan halo, 515 00:23:32,180 --> 00:23:34,890 di semua topi, halo dot c. 516 00:23:34,890 --> 00:23:37,775 Sekarang, jika saya melakukan dot slash halo, apa yang Anda harapkan? 517 00:23:37,775 --> 00:23:41,240 518 00:23:41,240 --> 00:23:42,430 >> Mungkin kasus sensitif. 519 00:23:42,430 --> 00:23:43,070 Mungkin tidak. 520 00:23:43,070 --> 00:23:44,030 Mari kita lihat. 521 00:23:44,030 --> 00:23:45,230 Tidak ada berkas atau kamus tersebut. 522 00:23:45,230 --> 00:23:47,438 Dan kita dapat jenis menipu dengan hanya melihat kiri atas. 523 00:23:47,438 --> 00:23:49,630 Apa yang saya jelas menyimpan program sebagai? 524 00:23:49,630 --> 00:23:51,070 Semua caps halo. 525 00:23:51,070 --> 00:23:53,020 Jadi memang, itu akan untuk membuat perbedaan. 526 00:23:53,020 --> 00:23:54,540 Jadi sekarang halo dunia kembali. 527 00:23:54,540 --> 00:23:56,969 Sekarang ini semua baik dan bagus, dan semua sangat pikiran-mati rasa, 528 00:23:56,969 --> 00:23:59,760 untuk semacam get macet dalam ini rincian, tetapi pemahaman mereka 529 00:23:59,760 --> 00:24:00,500 baik. 530 00:24:00,500 --> 00:24:02,675 >> Mengetik ini semakin mantra panjang 531 00:24:02,675 --> 00:24:05,980 tidak akan menjadi sangat menyenangkan, sehingga orang-orang di dunia 532 00:24:05,980 --> 00:24:08,260 menciptakan program lain, beberapa tahun yang lalu, yang disebut 533 00:24:08,260 --> 00:24:12,190 membuat, yang cukup sederhana memungkinkan Anda untuk mengetik make, 534 00:24:12,190 --> 00:24:14,530 nama program Anda ingin membuat, dan membuat 535 00:24:14,530 --> 00:24:18,580 cerdas dalam hal itu akan terlihat di folder saat ini, alias direktori, 536 00:24:18,580 --> 00:24:21,440 dan jika Anda memiliki file disebut halo dot c, 537 00:24:21,440 --> 00:24:25,800 yang merupakan file akan mengkompilasi untuk Anda dalam sebuah program yang disebut halo. 538 00:24:25,800 --> 00:24:29,950 Jadi itu adalah cara yang lebih sederhana dari melakukan perintah lebih samar 539 00:24:29,950 --> 00:24:30,800 yang kita lakukan sebelumnya. 540 00:24:30,800 --> 00:24:34,080 Dan kami telah pra-dikonfigurasi CS50 IDE tahu 541 00:24:34,080 --> 00:24:38,560 bahwa itu harus melakukan dasbor o dan sejumlah bendera lainnya, atau argumen baris perintah, 542 00:24:38,560 --> 00:24:40,670 bahwa kita akan melihat sebelum lama. 543 00:24:40,670 --> 00:24:43,700 >> Tapi mari kita sekarang benar-benar melakukan sesuatu yang lebih menarik. 544 00:24:43,700 --> 00:24:46,950 Hanya mengetik dunia halo semua waktu adalah tidak semua yang menarik. 545 00:24:46,950 --> 00:24:52,280 Jadi biarkan aku pergi ke depan dan perubahan program ini dan mengatakan, halo David. 546 00:24:52,280 --> 00:24:54,120 Sekarang aku akan pergi ke sini. 547 00:24:54,120 --> 00:24:57,360 Aku akan pergi ke depan dan melakukan membuat halo. 548 00:24:57,360 --> 00:25:00,652 Dan lagi sekarang Anda lihat membuat menunjukkan Anda semakin lama 549 00:25:00,652 --> 00:25:03,360 urutan perintah bahwa itu lakukan karena kami sudah pra-dikonfigurasi 550 00:25:03,360 --> 00:25:05,200 seperti itu, tapi kami tidak perlu khawatir untuk saat 551 00:25:05,200 --> 00:25:10,735 apa yang dilakukannya selain itu kompilasi dot slash halo, halo dunia. 552 00:25:10,735 --> 00:25:14,969 553 00:25:14,969 --> 00:25:15,510 Ada apa? 554 00:25:15,510 --> 00:25:16,177 Ya. 555 00:25:16,177 --> 00:25:17,370 >> AUDIENCE: [tidak terdengar] 556 00:25:17,370 --> 00:25:18,203 >> DAVID J. Malan: Ya. 557 00:25:18,203 --> 00:25:19,600 Jadi, kesalahan noobie. 558 00:25:19,600 --> 00:25:22,394 Saya melihat ini super halus, tapi tanda bintang di sini, di tab, 559 00:25:22,394 --> 00:25:25,060 hanya berarti Anda belum menyimpannya, dan browser dan program lain 560 00:25:25,060 --> 00:25:25,930 melakukan hal ini kadang-kadang. 561 00:25:25,930 --> 00:25:27,939 Sehingga kontrol s atau perintah s harus menyimpannya. 562 00:25:27,939 --> 00:25:29,730 Sekarang biarkan aku pergi ke depan dan menjalankan kembali program. 563 00:25:29,730 --> 00:25:33,360 564 00:25:33,360 --> 00:25:34,260 Ulang. 565 00:25:34,260 --> 00:25:36,050 Tepat, sehingga proses multi-langkah. 566 00:25:36,050 --> 00:25:39,400 Tidak ada yang sangat kompleks, tetapi setiap kali kita mengubah file, 567 00:25:39,400 --> 00:25:43,450 kita perlu mengubah dihasilkan dengan nol dan satu, dan dot slash halo. 568 00:25:43,450 --> 00:25:43,950 Wow. 569 00:25:43,950 --> 00:25:46,450 Jadi ini sangat underwhelming bahwa kita hanya dicetak ini. 570 00:25:46,450 --> 00:25:48,360 Mari kita membuat sesuatu yang sedikit lebih dinamis, sekarang. 571 00:25:48,360 --> 00:25:52,280 >> Nah ternyata, yang seperti Scratch, C mendukung variabel. 572 00:25:52,280 --> 00:25:54,790 Dan ternyata jika Anda ingin memiliki variabel yang menyimpan, 573 00:25:54,790 --> 00:25:57,300 bukan angka seperti kita biasanya lakukan dengan Scratch, 574 00:25:57,300 --> 00:26:01,300 tapi seperti kata, atau frase, atau nama, Anda 575 00:26:01,300 --> 00:26:04,837 dapat menentukan variabel menjadi tipe string. 576 00:26:04,837 --> 00:26:06,670 Jadi kita akan melihat lebih banyak ini hanya dalam beberapa saat, 577 00:26:06,670 --> 00:26:09,090 tapi ternyata C itu, dan banyak bahasa seperti itu, 578 00:26:09,090 --> 00:26:11,240 memiliki jenis yang sangat spesifik dari variabel. 579 00:26:11,240 --> 00:26:13,810 Ini tidak sama seperti aljabar, di mana Anda mendapatkan x, y, dan z 580 00:26:13,810 --> 00:26:16,940 dan mereka hanya selalu angka, dalam bahasa pemrograman 581 00:26:16,940 --> 00:26:20,030 Anda dapat menyimpan nomor, Anda dapat menyimpan karakter individu, 582 00:26:20,030 --> 00:26:24,619 Anda bisa menyimpan seluruh kata, Anda bisa menyimpan seluruh gambar, file suara keseluruhan, 583 00:26:24,619 --> 00:26:25,160 dan sejenisnya. 584 00:26:25,160 --> 00:26:28,362 Jadi kita perlu menentukan apa jenis variabel kita. 585 00:26:28,362 --> 00:26:31,570 Dan dengan konvensi aku akan menelepon saya variabel s hanya karena itu ringkas, 586 00:26:31,570 --> 00:26:33,510 dan s singkatan tali. 587 00:26:33,510 --> 00:26:36,400 >> Dan kemudian aku akan menyimpan dalam variabel ini, 588 00:26:36,400 --> 00:26:39,570 hanya suka dengan Scratch ketika saya menggunakan set blok, 589 00:26:39,570 --> 00:26:41,950 Aku akan menggunakan operator penugasan di C, 590 00:26:41,950 --> 00:26:45,290 yang cukup baik adalah sama menandatangani, tapi tanda sama melakukan hal ini. 591 00:26:45,290 --> 00:26:53,220 Bergerak sesuatu dari kanan ke sisi kiri dari ekspresi. 592 00:26:53,220 --> 00:26:57,170 Jadi apa yang saya lakukan, harus jelas dalam garis lima, yang saya sudah dinyatakan variabel. 593 00:26:57,170 --> 00:27:01,284 Saya sudah bilang komputer, memberi saya memori untuk variabel, menyebutnya s, 594 00:27:01,284 --> 00:27:03,950 dan tahu sebelumnya bahwa aku akan untuk menempatkan string di dalamnya. 595 00:27:03,950 --> 00:27:05,950 Dan string hanya urutan karakter. 596 00:27:05,950 --> 00:27:09,190 Ini sebuah kata, atau frase, atau paragraf, tapi itu urutan karakter. 597 00:27:09,190 --> 00:27:10,610 Ini bukan angka. 598 00:27:10,610 --> 00:27:13,800 Apa string yang aku akan menempatkan ke variabel itu? 599 00:27:13,800 --> 00:27:16,185 Nah, tampaknya mengutip tanda kutip, "Hannah". 600 00:27:16,185 --> 00:27:17,810 Sekarang perhatikan pola yang muncul. 601 00:27:17,810 --> 00:27:19,260 Ada ekspresi tangan kiri. 602 00:27:19,260 --> 00:27:21,810 Ada ekspresi tangan kanan, dipisahkan oleh tanda sama. 603 00:27:21,810 --> 00:27:24,390 Dan hanya mengambil menebak, jika asing tetap, 604 00:27:24,390 --> 00:27:27,430 dengan apa titik koma lakukan. 605 00:27:27,430 --> 00:27:28,865 Apa itu mungkin melakukan bagi kita? 606 00:27:28,865 --> 00:27:29,365 Ya? 607 00:27:29,365 --> 00:27:29,840 >> AUDIENCE: [tidak terdengar] 608 00:27:29,840 --> 00:27:29,980 >> DAVID J. Malan: Ya. 609 00:27:29,980 --> 00:27:31,170 Itu hanya mengakhiri garis. 610 00:27:31,170 --> 00:27:31,669 Benar? 611 00:27:31,669 --> 00:27:34,260 Komputer ingin menjadi blak-blakan mengatakan, secara harfiah, apa yang harus dilakukan. 612 00:27:34,260 --> 00:27:36,343 Seperti selai kacang dan jelly misalnya roti, 613 00:27:36,343 --> 00:27:39,360 jika Anda tidak menentukan apa yang Anda berniat, 614 00:27:39,360 --> 00:27:42,190 mungkin dibiarkan penilaian atau error. 615 00:27:42,190 --> 00:27:44,890 Titik koma berarti, itu saja untuk perintah ini. 616 00:27:44,890 --> 00:27:48,310 Ini menjadi super tepat, dan itu hal yang sangat mudah untuk meninggalkan off. 617 00:27:48,310 --> 00:27:52,240 Tampaknya jadi sekarang program ini tidak untuk akan berperilaku secara berbeda sampai aku 618 00:27:52,240 --> 00:27:53,500 membuatnya lebih dinamis. 619 00:27:53,500 --> 00:27:57,107 Jadi, daripada sulit bisa saya sendiri nama, biarkan aku menempatkan nilai pengganti. 620 00:27:57,107 --> 00:28:00,190 Dan ternyata, dan saya tahu ini dari setelah membaca dokumentasi, 621 00:28:00,190 --> 00:28:04,080 dan menggunakan fungsi untuk tahun, yang printf dirancang untuk menjadi dinamis. 622 00:28:04,080 --> 00:28:07,510 Anda tidak harus tahu terlebih dahulu apa kata-kata Anda ingin menempatkan di dalamnya. 623 00:28:07,510 --> 00:28:11,290 Anda malah dapat memiliki placeholder, seperti persen s, yang 624 00:28:11,290 --> 00:28:15,500 akan memberitahu komputer, menempatkan string di sini. 625 00:28:15,500 --> 00:28:17,740 >> Yang string yang kita ingin menempatkan di sana? 626 00:28:17,740 --> 00:28:22,430 Will ternyata antara kurung, yang ingat, demarkasi 627 00:28:22,430 --> 00:28:28,020 input ke fungsi, jika Anda memiliki koma daftar hal-hal yang terpisah di sini, 628 00:28:28,020 --> 00:28:31,790 kita benar-benar lulus dalam beberapa input ke fungsi. 629 00:28:31,790 --> 00:28:33,901 Jadi hanya seperti beberapa Scratch blok, Anda mungkin tidak 630 00:28:33,901 --> 00:28:36,150 telah bermain dengan mereka untuk proyek Anda belum atau sama sekali, 631 00:28:36,150 --> 00:28:38,250 beberapa blok Scratch memiliki dua input. 632 00:28:38,250 --> 00:28:41,220 Dua kotak putih Anda bisa ketik nomor atau kata-kata ke dalam. 633 00:28:41,220 --> 00:28:45,210 Jadi untuk tidak C memiliki fungsi seperti printf yang dapat mengambil dua input. 634 00:28:45,210 --> 00:28:48,050 Dan lagi, koma ini adalah memisahkan mereka. 635 00:28:48,050 --> 00:28:51,070 Jadi dalam bahasa Inggris, lagi bahkan jika Anda belum pernah diprogram sebelumnya, 636 00:28:51,070 --> 00:28:55,320 oleh logika printf adalah fungsi, mengambil dua input, salah satunya 637 00:28:55,320 --> 00:28:58,810 merupakan tempat, apa yang akan Anda berharap printf akan melakukan dengan masukan ini? 638 00:28:58,810 --> 00:29:01,470 639 00:29:01,470 --> 00:29:03,220 Ini akan menyapa Hannah, mudah-mudahan. 640 00:29:03,220 --> 00:29:05,274 Jadi untuk melakukan ini kita harus menyimpannya. 641 00:29:05,274 --> 00:29:06,190 Aku akan zoom out. 642 00:29:06,190 --> 00:29:10,701 Aku akan kembali ke sini dan berkata, membuat halo masuk. 643 00:29:10,701 --> 00:29:11,200 Oh. 644 00:29:11,200 --> 00:29:14,830 Sesuatu yang salah, dan benar-benar ini cukup luar biasa. 645 00:29:14,830 --> 00:29:18,400 Saya memiliki enam baris kode dan seperti 12 baris kesalahan. 646 00:29:18,400 --> 00:29:22,120 Jadi, melihat ke depan untuk ini. 647 00:29:22,120 --> 00:29:24,260 Jadi apa yang terjadi di sini? 648 00:29:24,260 --> 00:29:27,370 Jadi aturan terbaik praktis di sini, terutama ketika Anda memulai, 649 00:29:27,370 --> 00:29:29,370 tidak mendapatkan terganggu oleh hal-hal yang di bagian bawah. 650 00:29:29,370 --> 00:29:31,220 Bahkan, saya sangat sengaja hanya menggulir up 651 00:29:31,220 --> 00:29:33,930 karena sangat sering, komputer adalah tidak semua yang cerah perangkat. 652 00:29:33,930 --> 00:29:35,054 Ini akan bingung. 653 00:29:35,054 --> 00:29:37,220 Jika melihat satu hal yang itu tidak mengerti, 654 00:29:37,220 --> 00:29:40,030 mungkin kesalahan lainnya baris kode sebagai salah, 655 00:29:40,030 --> 00:29:41,649 meskipun mereka baik-baik saja. 656 00:29:41,649 --> 00:29:43,940 Sehingga Anda selalu ingin bekerja top down melalui kesalahan. 657 00:29:43,940 --> 00:29:47,850 Dan diakui ini Super misterius pada saat ini. 658 00:29:47,850 --> 00:29:50,830 >> Kesalahan, penggunaan dideklarasikan string identifier. 659 00:29:50,830 --> 00:29:52,130 Apakah saya maksud standar dalam? 660 00:29:52,130 --> 00:29:53,720 Tidak, saya berarti tali. 661 00:29:53,720 --> 00:29:55,830 Dan itu menunjuk, mungkin itu salah ketik. 662 00:29:55,830 --> 00:30:00,570 Semacam seperti, spell-checking di cara yang sangat culun, tetapi alasan di sini, 663 00:30:00,570 --> 00:30:02,840 dan Anda akan tahu ini hanya dengan praktek, adalah 664 00:30:02,840 --> 00:30:06,390 yang ternyata string yang tidak ada dalam C. Bahkan, C 665 00:30:06,390 --> 00:30:08,820 adalah bahasa yang sangat tua, dan itu tingkat yang sangat rendah, 666 00:30:08,820 --> 00:30:11,361 dan itu tidak banyak fitur bahwa Anda mungkin telah tumbuh 667 00:30:11,361 --> 00:30:14,620 dengan jika Anda memiliki, pada kenyataannya, diprogram di Jawa, karena beberapa dari Anda memiliki, 668 00:30:14,620 --> 00:30:16,980 tetapi Anda dapat mengajarkannya hal-hal baru. 669 00:30:16,980 --> 00:30:20,900 Dan memang, kita telah melakukan CS50 ini, meskipun pada akhir semester, 670 00:30:20,900 --> 00:30:23,512 semua roda pelatihan ini akan telah diambil off, 671 00:30:23,512 --> 00:30:25,220 apa yang kita lakukan di ini dua minggu pertama 672 00:30:25,220 --> 00:30:29,830 awalnya adalah kita juga memiliki Anda termasuk CS50 dot h. 673 00:30:29,830 --> 00:30:31,230 Yang merupakan file header. 674 00:30:31,230 --> 00:30:32,440 Lebih lanjut tentang bahwa di masa depan. 675 00:30:32,440 --> 00:30:36,430 >> Ini adalah file yang berisi fungsi bahwa kita telah ditulis untuk Anda. 676 00:30:36,430 --> 00:30:39,180 Dan di antara mereka adalah fungsi fungsi untuk mendapatkan masukan 677 00:30:39,180 --> 00:30:43,520 dari pengguna, seperti string, dan angka, dan bilangan real, dan banyak lagi. 678 00:30:43,520 --> 00:30:45,550 Tetapi juga memiliki beberapa cara pintas. 679 00:30:45,550 --> 00:30:48,200 Ini mendefinisikan Boolean sebagai tipe data. 680 00:30:48,200 --> 00:30:50,340 C tidak memiliki benar atau salah. 681 00:30:50,340 --> 00:30:53,880 Tapi kita bisa memberikan gagasan benar atau salah dengan cara perpustakaan ini. 682 00:30:53,880 --> 00:30:57,670 Dan itu juga tidak memiliki string dibangun pada sampai kita termasuk baris ini. 683 00:30:57,670 --> 00:31:01,090 Jadi baris kode ini memberitahu compiler, hey, dentang, melihat 684 00:31:01,090 --> 00:31:03,570 dalam file ini untuk keseluruhan sekelompok kode yang CS50 685 00:31:03,570 --> 00:31:06,330 telah menulis sehingga siapa saja yang menggunakan file ini 686 00:31:06,330 --> 00:31:09,330 dapat mengambil untuk diberikan fitur mereka telah menambahkan. 687 00:31:09,330 --> 00:31:11,220 >> Jadi sekarang biarkan aku pergi ke depan dan menghapus layar, 688 00:31:11,220 --> 00:31:14,178 dan jika penasaran Aku hanya mengatakan control l setiap kali untuk membersihkan layar, 689 00:31:14,178 --> 00:31:15,500 atau Anda dapat mengetik jelas. 690 00:31:15,500 --> 00:31:19,220 Aku hanya akan pergi ke depan sekarang dan Jenis membuat halo, dan semuanya baik-baik. 691 00:31:19,220 --> 00:31:22,550 Masih output misterius, tapi itu bukan pesan yang salah. 692 00:31:22,550 --> 00:31:28,300 Sekarang jika saya lakukan dot slash halo, dan sebagai samping, dot slash asing bagi sebagian besar. 693 00:31:28,300 --> 00:31:30,430 Ini hanya berarti, dot berarti direktori saat ini. 694 00:31:30,430 --> 00:31:33,120 Jadi jika Anda pernah menggunakan DOS, atau Linux, atau Unix 695 00:31:33,120 --> 00:31:35,410 Anda mungkin telah melakukan sesuatu seperti cd dot dot, di mana 696 00:31:35,410 --> 00:31:39,220 dot dot berarti pergi ke belakang di waktu, atau pergi ke belakang, atau lebih tinggi 697 00:31:39,220 --> 00:31:40,370 dalam direktori Anda. 698 00:31:40,370 --> 00:31:43,090 Dot hanya berarti melihat di direktori saat ini. 699 00:31:43,090 --> 00:31:45,670 Saya ingin halo, yang ada di sini. 700 00:31:45,670 --> 00:31:47,750 Dan memang, sekarang menyapa Hannah. 701 00:31:47,750 --> 00:31:51,120 Dan jika saya mengubahnya lagi Maria, ulang 702 00:31:51,120 --> 00:31:55,650 itu akan membuat halo, dot slash halo, program terus berubah. 703 00:31:55,650 --> 00:31:58,060 >> Tapi ini masih merupakan Program cukup bodoh. 704 00:31:58,060 --> 00:32:00,972 Jika saya ingin kapal program ini, atau memberikannya kepada seorang teman, 705 00:32:00,972 --> 00:32:03,430 atau memberikannya kepada Maria atau Hannah dalam hal ini, itu baik-baik saja. 706 00:32:03,430 --> 00:32:07,300 Saya dapat menyesuaikannya untuk mereka berdua, tapi itu tidak akan menjadi dinamis. 707 00:32:07,300 --> 00:32:10,870 Mereka tidak bisa mengubahnya setelah itu dikompilasi ke dalam mereka nol dan satu. 708 00:32:10,870 --> 00:32:12,350 Jadi apa yang kita lakukan sesuatu yang lebih cerdas? 709 00:32:12,350 --> 00:32:17,100 Bagaimana jika, bukannya hard-coding ke dalam program nama orang ini, 710 00:32:17,100 --> 00:32:20,890 apa jika kita hanya mendapatkan string pada permintaan? 711 00:32:20,890 --> 00:32:22,430 >> Jadi dengan kata lain, biarkan aku melakukan ini. 712 00:32:22,430 --> 00:32:24,030 Aku akan mengkompilasi ulang program ini. 713 00:32:24,030 --> 00:32:25,710 Dan biarkan aku memperbesar di bagian bawah sekarang. 714 00:32:25,710 --> 00:32:29,920 Membuat halo dot slash halo. 715 00:32:29,920 --> 00:32:31,710 Sekarang tidak ada yang terjadi. 716 00:32:31,710 --> 00:32:35,860 Bisakah kita mendapatkan relawan cepat untuk membuat sesuatu terjadi? 717 00:32:35,860 --> 00:32:36,360 Ayo up. 718 00:32:36,360 --> 00:32:37,020 Siapa namamu? 719 00:32:37,020 --> 00:32:37,445 >> PANCHO: Pancho. 720 00:32:37,445 --> 00:32:38,361 >> DAVID J. Malan: Pacho? 721 00:32:38,361 --> 00:32:39,609 Ayo up. 722 00:32:39,609 --> 00:32:42,150 Setelah Anda mendapatkan di sini, ini adalah akan menjadi sangat underwhelming, 723 00:32:42,150 --> 00:32:44,060 tapi lebih menarik dari saya mengetik itu. 724 00:32:44,060 --> 00:32:49,007 Jika Anda ingin pergi ke depan dan ketik Anda Nama, saya membuat program ini hanya untuk Anda. 725 00:32:49,007 --> 00:32:49,840 Cukup ketik nama Anda. 726 00:32:49,840 --> 00:32:52,380 727 00:32:52,380 --> 00:32:53,900 Masukkan. 728 00:32:53,900 --> 00:32:54,489 Indah. 729 00:32:54,489 --> 00:32:55,780 Baiklah, terima kasih banyak. 730 00:32:55,780 --> 00:32:56,708 >> PANCHO: Terima kasih banyak. 731 00:32:56,708 --> 00:32:57,636 >> DAVID J. Malan: OK. 732 00:32:57,636 --> 00:32:59,028 >> [Tepuk Tangan] 733 00:32:59,028 --> 00:33:00,884 734 00:33:00,884 --> 00:33:01,840 >> Itu sangat baik. 735 00:33:01,840 --> 00:33:03,145 Di sini Anda Go. 736 00:33:03,145 --> 00:33:03,770 Apa yang kita lakukan? 737 00:33:03,770 --> 00:33:05,930 Jadi kita akhirnya, setidaknya, membuat program ini yang dinamis. 738 00:33:05,930 --> 00:33:08,400 Sekarang itu masih jelas dengan desain underwhelming, 739 00:33:08,400 --> 00:33:11,480 tapi kami akhirnya memiliki kemampuan sekarang untuk menulis kode di muka, banyak 740 00:33:11,480 --> 00:33:13,770 seperti penulis printf, dan kemudian secara dinamis 741 00:33:13,770 --> 00:33:17,550 beradaptasi berdasarkan masukan kami diserahkan, baik oleh programmer, 742 00:33:17,550 --> 00:33:20,610 atau dengan manusia yang sebenarnya berinteraksi dengan program. 743 00:33:20,610 --> 00:33:22,990 Jadi mari kita sebenarnya sekarang coba untuk melakukan beberapa konstruksi lainnya 744 00:33:22,990 --> 00:33:26,625 dan melihat apakah kita tidak bisa membuat program sendiri lebih canggih. 745 00:33:26,625 --> 00:33:29,250 Jadi mari kita pergi ke depan dan bukannya menulis satu ini dari awal, 746 00:33:29,250 --> 00:33:31,540 Aku akan pergi ke hari ini source code, dan semua ini 747 00:33:31,540 --> 00:33:34,290 tersedia di lapangan ini website, dan Anda dapat drag dan drop 748 00:33:34,290 --> 00:33:36,590 ke lingkungan Anda sendiri datang Jumat sekali masalah 749 00:33:36,590 --> 00:33:38,506 set 1 memberi Anda instruksi, atau Anda bisa 750 00:33:38,506 --> 00:33:41,200 melakukannya pada baris perintah sebagai baik, tetapi lebih untuk datang di p set 1. 751 00:33:41,200 --> 00:33:44,940 >> Mari kita lihat apa yang ada di program ini di sini disebut, penambah dot c. 752 00:33:44,940 --> 00:33:47,970 Sekarang saya sudah berkomentar itu, tapi apa yang baru? 753 00:33:47,970 --> 00:33:51,230 Pada pandangan pertama, lini apa kode benar-benar baru? 754 00:33:51,230 --> 00:33:53,930 755 00:33:53,930 --> 00:33:56,780 Mungkin tidak fundamental asing sekarang. 756 00:33:56,780 --> 00:33:58,417 >> AUDIENCE: [tidak terdengar] 757 00:33:58,417 --> 00:34:00,250 DAVID J. Malan: Ya, sehingga int x sama mendapatkan n. 758 00:34:00,250 --> 00:34:03,760 Kami belum pernah melihat semua ini sebelumnya, tapi int mungkin 759 00:34:03,760 --> 00:34:08,179 simbol untuk apa jenis variabel, [? dari?] integer. 760 00:34:08,179 --> 00:34:09,040 Jadi int untuk integer. 761 00:34:09,040 --> 00:34:11,420 Itu hanya menjadi lebih ringkas. x hanya sewenang-wenang. 762 00:34:11,420 --> 00:34:13,920 x dan y dan z masih cukup masuk akal untuk nomor, 763 00:34:13,920 --> 00:34:16,790 tapi umumnya kita akan menggunakan kata-kata sekali program kami mendapatkan lebih kompleks. 764 00:34:16,790 --> 00:34:18,940 Dapatkan int, tentu saja, seperti get tali, 765 00:34:18,940 --> 00:34:21,629 mungkin akan mendapatkan int dari pengguna, 766 00:34:21,629 --> 00:34:23,670 dan kemudian kita akan melakukan hal yang sama dengan y. 767 00:34:23,670 --> 00:34:27,610 Dan ternyata, meskipun ini baris terakhir, 24, terlihat lebih kompleks, 768 00:34:27,610 --> 00:34:32,679 itu akan mengatakan jumlah ini dan itu adalah hal lain ini. 769 00:34:32,679 --> 00:34:35,840 >> Dan pemberitahuan persen i mungkin menunjukkan apa? 770 00:34:35,840 --> 00:34:38,190 Peran apa persen i rupanya melayani? 771 00:34:38,190 --> 00:34:40,739 772 00:34:40,739 --> 00:34:41,719 Ini hanya penampung. 773 00:34:41,719 --> 00:34:42,219 Benar? 774 00:34:42,219 --> 00:34:45,149 Persen s adalah string, persen saya adalah untuk integer. 775 00:34:45,149 --> 00:34:47,690 Ada akan menjadi persen f untuk nilai floating point, yang 776 00:34:47,690 --> 00:34:49,273 adalah hanya nomor dengan titik desimal. 777 00:34:49,273 --> 00:34:50,590 Dengan kata lain, bilangan real. 778 00:34:50,590 --> 00:34:55,270 Jadi mari kita benar-benar kompilasi ini memprogram sangat cepat dan jangan membuat penambah. 779 00:34:55,270 --> 00:34:57,962 Whoops. 780 00:34:57,962 --> 00:34:58,670 Kesempatan yang baik. 781 00:34:58,670 --> 00:35:02,970 Jadi perhatikan di sini, selama ini pengguna saya nama untuk akun ini jharvard. 782 00:35:02,970 --> 00:35:06,620 Saya di CS50 IDE, alias IDE50. 783 00:35:06,620 --> 00:35:11,030 Dan sekarang di sini biru, adalah menyebutkan, tapi dari lingkungan, dari mana saya. 784 00:35:11,030 --> 00:35:16,050 Dan pada kenyataannya, jika saya tampilannya ke atas di sini, melihat bahwa saya memiliki IDE50 785 00:35:16,050 --> 00:35:19,490 dan saya melihat kata ini, jika Anda jenis putar kepala ke samping, ruang kerja. 786 00:35:19,490 --> 00:35:23,890 Singkatnya, fakta bahwa Saya melihat tilde slash kerja 787 00:35:23,890 --> 00:35:26,910 berarti bahwa dalam teks ini lingkungan perintah berbasis, 788 00:35:26,910 --> 00:35:32,300 Saya dalam setara teks ini grafis folder di sini. 789 00:35:32,300 --> 00:35:35,730 Jadi ketika saya melakukan dot slash penambah, itu mengatakan tidak ada aturan 790 00:35:35,730 --> 00:35:37,372 untuk membuat target penambah berhenti. 791 00:35:37,372 --> 00:35:39,830 Aku tidak tahu apa artinya, tapi itu buruk untuk beberapa alasan. 792 00:35:39,830 --> 00:35:43,310 Tidak ada berkas atau kamus tersebut bahkan lebih jelas. 793 00:35:43,310 --> 00:35:45,670 Dimana kemudian? 794 00:35:45,670 --> 00:35:47,820 Berdasarkan mana saya diklik untuk membuka file sebelumnya. 795 00:35:47,820 --> 00:35:49,442 Mana mungkin? 796 00:35:49,442 --> 00:35:52,050 >> Ini mungkin dalam sumber satu w, Rabu, 797 00:35:52,050 --> 00:35:53,960 dan saya bisa melihatnya, memang, jika saya membuka bahwa sampai. 798 00:35:53,960 --> 00:35:57,220 Ada penambah dot c, tapi di lingkungan berbasis teks ini, 799 00:35:57,220 --> 00:35:59,380 lagi, aku harus super eksplisit. 800 00:35:59,380 --> 00:36:03,950 Jika saya ingin mengubah direktori ke sumber satu hari Rabu, saya perlu mengetik, 801 00:36:03,950 --> 00:36:07,210 cd ruang sumber satu Rabu masuk dan sekarang 802 00:36:07,210 --> 00:36:09,810 prompt berubah saya untuk memberikan isyarat visual yang 803 00:36:09,810 --> 00:36:12,330 Aku, memang, di tempat lain di lingkungan saya, 804 00:36:12,330 --> 00:36:15,710 tapi sekarang saya bisa lakukan membuat Adder, tampaknya bekerja, 805 00:36:15,710 --> 00:36:18,190 dot slash penambah, memberikan saya integer. 806 00:36:18,190 --> 00:36:19,080 Satu. 807 00:36:19,080 --> 00:36:20,070 Dua. 808 00:36:20,070 --> 00:36:21,630 Jumlah satu dan dua adalah tiga. 809 00:36:21,630 --> 00:36:24,140 Tapi jika saya tidak bekerja sama, mari kita lihat apa yang bisa dilakukannya int. 810 00:36:24,140 --> 00:36:25,200 Beri aku integer. 811 00:36:25,200 --> 00:36:26,590 Tidak. 812 00:36:26,590 --> 00:36:27,350 Coba lagi. 813 00:36:27,350 --> 00:36:29,060 OKE. 814 00:36:29,060 --> 00:36:30,520 Baik. 815 00:36:30,520 --> 00:36:32,130 50. 816 00:36:32,130 --> 00:36:32,680 50. 817 00:36:32,680 --> 00:36:33,010 Baiklah. 818 00:36:33,010 --> 00:36:34,055 Jadi akhirnya bekerja sama. 819 00:36:34,055 --> 00:36:36,430 Dan itulah beberapa fungsionalitas yang fungsi-fungsi ini 820 00:36:36,430 --> 00:36:37,760 dapat telah dibangun di untuk Anda. 821 00:36:37,760 --> 00:36:43,330 >> Jadi dalam pelaksanaannya dari mendapatkan int, pemrograman apa 822 00:36:43,330 --> 00:36:47,990 membangun dari minggu lalu mungkin di ada untuk memaksa perilaku ini coba lagi, 823 00:36:47,990 --> 00:36:49,962 coba lagi, coba lagi? 824 00:36:49,962 --> 00:36:51,670 Ya, mungkin ada semacam lingkaran. 825 00:36:51,670 --> 00:36:54,160 Ini akan terlihat sintaksis berbeda dari blok Scratch itu, 826 00:36:54,160 --> 00:36:55,880 tapi itu memang apa yang di dalam file. 827 00:36:55,880 --> 00:36:58,505 Dan dalam waktu beberapa minggu kita akan benar-benar melihat perpustakaan CS50 828 00:36:58,505 --> 00:37:02,000 seperti apa yang ada di dalamnya, tapi ada loop memaksakan hal itu. 829 00:37:02,000 --> 00:37:04,840 >> Mari kita bermain sedikit konyol permainan di sini dengan file ini. 830 00:37:04,840 --> 00:37:06,550 Kondisi nol dot c. 831 00:37:06,550 --> 00:37:08,960 Kami hanya akan umumnya mulai menghitung dari nol. 832 00:37:08,960 --> 00:37:11,220 Dan saya terus bergulir melewati beberapa hal di atas. 833 00:37:11,220 --> 00:37:15,390 Warna biru sini, berbatas tegas dengan semua dari bintang-bintang ini dan garis miring, 834 00:37:15,390 --> 00:37:17,310 Bagi Anda yang memprogram sebelumnya, apa itu? 835 00:37:17,310 --> 00:37:18,690 Mengapa kita terus melompat-lompat di atasnya? 836 00:37:18,690 --> 00:37:19,110 Apa? 837 00:37:19,110 --> 00:37:19,490 >> AUDIENCE: Ini komentar. 838 00:37:19,490 --> 00:37:19,800 >> DAVID J. Malan: Ya. 839 00:37:19,800 --> 00:37:20,633 Ini hanya komentar. 840 00:37:20,633 --> 00:37:24,160 Ini adalah komentar untuk manusia untuk membaca, bahwa dalam kasus kami, 841 00:37:24,160 --> 00:37:27,120 memberitahu kita apa nama file adalah, siapa yang menulisnya, dan apa yang dilakukannya, 842 00:37:27,120 --> 00:37:28,610 sehingga Anda tidak memiliki untuk membaca kode 843 00:37:28,610 --> 00:37:30,110 untuk mengetahui apa file ini adalah semua tentang. 844 00:37:30,110 --> 00:37:33,110 Ini hanya deskripsi, tapi fungsional itu tidak relevan. 845 00:37:33,110 --> 00:37:35,930 Dan aku bahkan bisa menghapusnya dari file saya dan itu tidak memiliki dampak. 846 00:37:35,930 --> 00:37:38,740 Garis juicy ini Dua yang pertama di sini, sekarang. 847 00:37:38,740 --> 00:37:41,405 int void main setara dengan ketika kami bendera hijau diklik, 848 00:37:41,405 --> 00:37:44,030 jadi kita akan meninggalkan menjadi untuk hari ini, dan kami akan kembali, 849 00:37:44,030 --> 00:37:46,940 akhirnya, seperti apa int dan kekosongan yang, tapi sekarang, 850 00:37:46,940 --> 00:37:49,500 melihat apa yang telah kulakukan di sini juga, Anda juga bisa, 851 00:37:49,500 --> 00:37:51,736 jika Anda memiliki sejalan komentar, jika Anda memiliki 852 00:37:51,736 --> 00:37:54,670 a berpikir Anda ingin berbagi tentang garis tertentu dari kode, 853 00:37:54,670 --> 00:37:58,910 konvensi di C adalah untuk melakukan slash slash, dan kemudian beberapa kata ringkas, 854 00:37:58,910 --> 00:38:01,500 bukan kalimat penuh, umumnya tidak paragraf, 855 00:38:01,500 --> 00:38:05,310 yang hanya menjelaskan kepada Anda, atau Anda TF, atau pembaca lain atau rekan kerja, 856 00:38:05,310 --> 00:38:06,990 apa kode Anda lakukan. 857 00:38:06,990 --> 00:38:10,150 Jadi, daripada harus melihat ini dan menyimpulkan dari garis 858 00:38:10,150 --> 00:38:12,550 sembilan dan 10, apa yang ini lakukan, sejalan delapan 859 00:38:12,550 --> 00:38:14,945 Saya hanya memberikan komentar untuk meminta pengguna untuk integer, 860 00:38:14,945 --> 00:38:17,820 maka saya tidak perlu berpikir terlalu keras tentang apa garis sembilan dan 10 adalah. 861 00:38:17,820 --> 00:38:19,720 Aku hanya tahu bahwa itulah yang kolektif yang mereka lakukan. 862 00:38:19,720 --> 00:38:20,460 >> Bagaimana? 863 00:38:20,460 --> 00:38:22,060 Nah, inilah prompt. 864 00:38:22,060 --> 00:38:23,610 Berikut mendapatkan dari int. 865 00:38:23,610 --> 00:38:25,984 Dan berdasarkan sebelumnya perilaku, sepertinya mendapatkan int 866 00:38:25,984 --> 00:38:29,080 cukup pintar untuk memastikan bahwa manusia bekerja sama dan memberikan 867 00:38:29,080 --> 00:38:30,090 integer. 868 00:38:30,090 --> 00:38:32,270 Tapi sekarang kita melihat ini. 869 00:38:32,270 --> 00:38:33,740 Dan ini mengingatkan Scratch. 870 00:38:33,740 --> 00:38:36,140 Saya mengklaim bahwa aku menganalisis input pengguna, 871 00:38:36,140 --> 00:38:39,050 tapi agak tidak akurat. 872 00:38:39,050 --> 00:38:43,200 Dan ini ternyata di C adalah bagaimana kami mengungkapkan jika lain, cabang, 873 00:38:43,200 --> 00:38:46,320 garpu di jalan, tapi aku mengatakan agak tidak akurat. 874 00:38:46,320 --> 00:38:50,470 Apa bug dalam program ini? 875 00:38:50,470 --> 00:38:51,610 Tentang lanjut kembali? 876 00:38:51,610 --> 00:38:52,223 Ya. 877 00:38:52,223 --> 00:38:53,150 >> AUDIENCE: [tidak terdengar] nol. 878 00:38:53,150 --> 00:38:54,025 >> DAVID J. Malan: Ya. 879 00:38:54,025 --> 00:38:57,630 Jadi jika saya ketik nol, mari kita pertimbangkan persis bahwa kasus kasus, atau sudut, 880 00:38:57,630 --> 00:38:58,450 jika Anda mau. 881 00:38:58,450 --> 00:39:02,790 Jadi jika saya ketik nol, yang dari blok akan rupanya ambil itu? 882 00:39:02,790 --> 00:39:04,660 Jika atau yang lain? 883 00:39:04,660 --> 00:39:07,340 The lain, dan itu akan mengatakan, Anda memilih angka negatif. 884 00:39:07,340 --> 00:39:10,476 Dan memang, nol tidak seharusnya menjadi positif atau negatif, 885 00:39:10,476 --> 00:39:11,850 dan sehingga akan keliru. 886 00:39:11,850 --> 00:39:12,930 Itu akan menjadi bug. 887 00:39:12,930 --> 00:39:14,580 Jadi bagaimana kita bisa memperbaiki ini? 888 00:39:14,580 --> 00:39:16,360 Seseorang yang tidak pernah diprogram sebelumnya? 889 00:39:16,360 --> 00:39:16,570 Apa kau mau-- 890 00:39:16,570 --> 00:39:17,480 >> AUDIENCE: [tidak terdengar] 891 00:39:17,480 --> 00:39:17,990 >> DAVID J. Malan: mencabut? 892 00:39:17,990 --> 00:39:18,570 >> AUDIENCE: [tidak terdengar] 893 00:39:18,570 --> 00:39:18,930 >> DAVID J. Malan: Oh, Anda memiliki? 894 00:39:18,930 --> 00:39:20,350 Seseorang yang tidak pernah diprogram sebelumnya. 895 00:39:20,350 --> 00:39:21,750 Ingin mencoba tangan Anda di ini, dalam baju merah? 896 00:39:21,750 --> 00:39:22,600 Ayo up. 897 00:39:22,600 --> 00:39:25,320 Oh ya, ayolah, jika Anda tidak keberatan. 898 00:39:25,320 --> 00:39:27,586 Jadi tidak pernah memiliki diprogram sebelumnya, siapa namamu? 899 00:39:27,586 --> 00:39:28,210 LAUREN: Lauren. 900 00:39:28,210 --> 00:39:29,626 DAVID J. Malan: Lauren, baik-baik. 901 00:39:29,626 --> 00:39:31,150 Jadi memperbaiki bug ini bagi kita. 902 00:39:31,150 --> 00:39:35,070 Anda tidak pernah melihat C, mungkin, dan mungkin tidak ada bahasa lain. 903 00:39:35,070 --> 00:39:38,380 Jadi memperbaiki program ini bagi kita. 904 00:39:38,380 --> 00:39:39,100 Senang bertemu ya. 905 00:39:39,100 --> 00:39:39,615 Tidak ada tekanan. 906 00:39:39,615 --> 00:39:40,156 LAUREN: Ya. 907 00:39:40,156 --> 00:39:43,350 908 00:39:43,350 --> 00:39:46,270 >> DAVID J. Malan: Tetapi sekali lagi, jika ini berjudi berjalan sesuai rencana, 909 00:39:46,270 --> 00:39:48,350 takeaway di sini akan menjadi, hanya sekali lagi, untuk memulai 910 00:39:48,350 --> 00:39:51,080 untuk melihat pola dan menyimpulkan dari sintaks yang ada 911 00:39:51,080 --> 00:39:55,420 bagaimana lagi Anda mungkin mengungkapkan sendiri, tidak ada pun intended, dalam rangka 912 00:39:55,420 --> 00:39:58,410 untuk menangkap beberapa skenario tambahan. 913 00:39:58,410 --> 00:39:59,603 Jadi kita katakan lain jika. 914 00:39:59,603 --> 00:40:04,040 915 00:40:04,040 --> 00:40:05,230 printf, baik. 916 00:40:05,230 --> 00:40:09,120 Dan perhatikan dengan CS50 IDE, dan IDE frankly-- 917 00:40:09,120 --> 00:40:11,110 singkatan Terpadu Lingkungan pengembangan. 918 00:40:11,110 --> 00:40:14,110 Ini hanya cara mewah untuk mengatakan program yang membantu program yang Anda. 919 00:40:14,110 --> 00:40:16,779 Ini melakukan hal-hal seperti user friendly ketika Anda mengetik satu kurung, 920 00:40:16,779 --> 00:40:18,320 secara otomatis memberikan Anda yang lain. 921 00:40:18,320 --> 00:40:20,760 Anggapan adalah bahwa Anda akhirnya akan ingin mengetik itu, 922 00:40:20,760 --> 00:40:22,400 dan juga melakukannya dengan tanda kutip. 923 00:40:22,400 --> 00:40:24,190 >> Jadi saya suka baris 23. 924 00:40:24,190 --> 00:40:26,400 99% dari perjalanan ke sana. 925 00:40:26,400 --> 00:40:29,920 Seseorang ingin berpadu dengan tip? 926 00:40:29,920 --> 00:40:31,420 Aku mendengar koma dari penonton. 927 00:40:31,420 --> 00:40:32,080 Baik. 928 00:40:32,080 --> 00:40:33,260 Jadi yang melengkapi itu. 929 00:40:33,260 --> 00:40:37,930 Dan sekarang, saya hanya memiliki sedikit kekhawatiran dengan garis 21. 930 00:40:37,930 --> 00:40:41,370 Bagaimana kita ingin mengungkapkan ini? 931 00:40:41,370 --> 00:40:43,370 Pertanyaan apa yang kita inginkan bertanya, menurut Anda? 932 00:40:43,370 --> 00:40:46,870 933 00:40:46,870 --> 00:40:50,330 Jadi sebelumnya kita bertanya, jika n lebih besar dari nol, melakukan ini. 934 00:40:50,330 --> 00:40:51,870 Lain, melakukan itu. 935 00:40:51,870 --> 00:40:54,317 Jadi kita perlu memilih Pertanyaan untuk bertanya di sini. 936 00:40:54,317 --> 00:40:55,192 AUDIENCE: [tidak terdengar] 937 00:40:55,192 --> 00:40:56,530 DAVID J. Malan: Baik. 938 00:40:56,530 --> 00:40:58,290 Jadi jika n sama dengan nol. 939 00:40:58,290 --> 00:41:01,140 940 00:41:01,140 --> 00:41:02,100 Sangat baik. 941 00:41:02,100 --> 00:41:03,080 Jadi mari kita berhenti sebentar di sini. 942 00:41:03,080 --> 00:41:04,850 Terima kasih banyak untuk menantang ini. 943 00:41:04,850 --> 00:41:10,890 Biarkan saya memberi Anda sedikit memang layak bola stres, mungkin ada. 944 00:41:10,890 --> 00:41:11,900 Jadi kita sudah hampir sampai. 945 00:41:11,900 --> 00:41:14,790 Bahkan, Lauren, jika Anda tidak pikiran, biarkan aku membuat satu men-tweak di sini, 946 00:41:14,790 --> 00:41:17,850 hanya untuk konsisten bahkan dengan apa yang kita lihat di Scratch, apa 947 00:41:17,850 --> 00:41:21,080 yang ingin saya lakukan dengan garis-garis 21 dan 24, hanya berdasarkan lagi 948 00:41:21,080 --> 00:41:23,290 tentang bagaimana kita melakukan ini di Scratch, mungkin? 949 00:41:23,290 --> 00:41:24,230 >> AUDIENCE: Pindah ke atas. 950 00:41:24,230 --> 00:41:25,605 >> DAVID J. Malan: Ya, bergerak ke atas. 951 00:41:25,605 --> 00:41:30,260 Jadi kondisi lain, ketiga, atau keempat, atau kelima, atau cabang akhir, 952 00:41:30,260 --> 00:41:34,100 sebaiknya memang datang sesudahnya, dan itu hanya oleh konvensi, 953 00:41:34,100 --> 00:41:36,047 hanya karena jika Anda mau. 954 00:41:36,047 --> 00:41:37,380 Jadi saya perlu membuat tweak ini. 955 00:41:37,380 --> 00:41:39,660 Dan saya harus menempatkan saya penjepit keriting kembali ke sini. 956 00:41:39,660 --> 00:41:42,700 Dan sekarang, program ini akan mengkompilasi. 957 00:41:42,700 --> 00:41:46,140 Kami sangat dekat, tapi ada bug sangat, sangat halus. 958 00:41:46,140 --> 00:41:47,200 Mari kita lihat apa yang terjadi. 959 00:41:47,200 --> 00:41:49,660 >> Pertama, biarkan saya pergi ke depan dan zoom out. 960 00:41:49,660 --> 00:41:53,405 Aku akan pergi ke depan dan ketik membuat kondisi nol. 961 00:41:53,405 --> 00:41:55,070 Oh, aku berbohong. 962 00:41:55,070 --> 00:41:58,760 Sekarang compiler sebenarnya cukup pintar. 963 00:41:58,760 --> 00:42:00,950 Dan aku tidak benar-benar memahami itu pesan kesalahan. 964 00:42:00,950 --> 00:42:04,310 Menggunakan hasil dari tugas sebagai kondisi tanpa tanda kurung, 965 00:42:04,310 --> 00:42:05,740 tampaknya buruk. 966 00:42:05,740 --> 00:42:07,100 Tapi apa artinya? 967 00:42:07,100 --> 00:42:10,860 >> Nah lagi, mencari pola dalam kode yang telah kita lihat sebelumnya, 968 00:42:10,860 --> 00:42:16,640 apa yang garis 17 benar-benar melakukan, meskipun Lauren dimaksudkan sedikit 969 00:42:16,640 --> 00:42:18,790 sebaliknya? 970 00:42:18,790 --> 00:42:19,290 Ya. 971 00:42:19,290 --> 00:42:21,565 >> AUDIENCE: [tidak terdengar] 972 00:42:21,565 --> 00:42:22,440 DAVID J. Malan: Ya. 973 00:42:22,440 --> 00:42:26,610 Jadi ingat tanda sama, rupanya seperti yang kita telah digunakan sebelumnya, tidak sama. 974 00:42:26,610 --> 00:42:29,240 Tugas, dari kanan ke kiri. 975 00:42:29,240 --> 00:42:33,810 Jadi garis 17 pada saat ini adalah suatu kondisi, dan itu 976 00:42:33,810 --> 00:42:37,890 mengeksekusi kode di dalam kurung, tetapi ketika kode yang mengeksekusi, 977 00:42:37,890 --> 00:42:42,140 apa yang terjadi dengan nilai nol? 978 00:42:42,140 --> 00:42:45,250 Apa yang terjadi dengan nilai n? 979 00:42:45,250 --> 00:42:46,810 Menjadi nol. 980 00:42:46,810 --> 00:42:50,520 Jadi jika n menjadi nol, dan lagi, seperti per pekan lalu, 981 00:42:50,520 --> 00:42:54,690 kita umumnya mengatakan bahwa nol adalah palsu dan satu benar, 982 00:42:54,690 --> 00:42:57,410 atau ya adalah salah satu dan tidak ada adalah nol. 983 00:42:57,410 --> 00:42:59,590 Jadi benar dan salah, satu dan 0. 984 00:42:59,590 --> 00:43:06,090 Jika n sebagai garis 17 telah diberikan nilai 0, adalah nol benar? 985 00:43:06,090 --> 00:43:06,590 Tidak. 986 00:43:06,590 --> 00:43:08,280 Menurut definisi, nol adalah palsu. 987 00:43:08,280 --> 00:43:10,860 Itu konvensi kami akan melekat pada bergerak maju. 988 00:43:10,860 --> 00:43:17,320 Sehingga akan garis 18, 19, dan 20 pernah berlaku sekarang, secara logis? 989 00:43:17,320 --> 00:43:18,320 Mereka tidak bisa. 990 00:43:18,320 --> 00:43:21,640 Jadi kami bertanya pertanyaan tapi tidak cukup tepat, 991 00:43:21,640 --> 00:43:25,620 dan Anda tidak akan tahu ini kecuali Anda sudah melihatnya, solusi di C 992 00:43:25,620 --> 00:43:29,610 adalah ketika Anda ingin mengungkapkan kesetaraan, Anda mengatakan equals sama. 993 00:43:29,610 --> 00:43:33,140 Jadi tanda sama sudah habis oleh tugas, dari kanan ke kiri. 994 00:43:33,140 --> 00:43:35,110 Sama sama berarti sama. 995 00:43:35,110 --> 00:43:37,950 Dan jika Anda benar-benar ingin pikiran Anda untuk membungkuk, dalam JavaScript dan PHP, 996 00:43:37,950 --> 00:43:40,490 ada sama sama sederajat, yang berarti sesuatu yang lain sama sekali, 997 00:43:40,490 --> 00:43:41,990 tapi kita akan mendapatkan bahwa sebelum lama. 998 00:43:41,990 --> 00:43:45,760 >> Jadi ini adalah memperbaiki sederhana, tetapi menyadari super mudah untuk membuat kesalahan ini, 999 00:43:45,760 --> 00:43:48,700 dan kemudian bertanya-tanya dan perjuangan untuk menit, jika tidak satu jam, 1000 00:43:48,700 --> 00:43:51,490 mengapa saya tidak kode mengeksekusi karena saya berniat? 1001 00:43:51,490 --> 00:43:54,140 Itu karena Anda tidak memberitahu itu tepat apa yang Anda maksud. 1002 00:43:54,140 --> 00:43:56,450 Sehingga hampir sempurna, dan itu bagus 1003 00:43:56,450 --> 00:44:00,760 bahwa kita sengaja menemukan dua kecil hal karena jika kita memperbaikinya, 1004 00:44:00,760 --> 00:44:06,240 dan saya membuat kondisi nol dot slash kondisi nol, 1005 00:44:06,240 --> 00:44:07,490 Saya ingin integer silakan. 1006 00:44:07,490 --> 00:44:08,090 Mari kita lihat. 1007 00:44:08,090 --> 00:44:09,160 Tidak. 1008 00:44:09,160 --> 00:44:10,740 Ini akan memaksa saya untuk melakukannya. 1009 00:44:10,740 --> 00:44:11,990 Jadi 42. 1010 00:44:11,990 --> 00:44:13,590 Aku mengambil angka positif. 1011 00:44:13,590 --> 00:44:16,470 Jadi sekarang bagaimana cara membuktikan program ini benar? 1012 00:44:16,470 --> 00:44:19,990 Jika Anda seorang matematikawan, Anda tidak bisa benar-benar membuktikan ini dengan trial and error, 1013 00:44:19,990 --> 00:44:20,490 benar? 1014 00:44:20,490 --> 00:44:23,180 Anda tidak bisa hanya bukti oleh Misalnya, tapi setidaknya 1015 00:44:23,180 --> 00:44:25,494 sebagai seorang programmer kita tidak akan mencoba untuk membuktikan untuk saat 1016 00:44:25,494 --> 00:44:27,660 bahwa ini sebenarnya benar, tapi aku mungkin harus 1017 00:44:27,660 --> 00:44:29,470 menguji beberapa kasus representatif. 1018 00:44:29,470 --> 00:44:31,070 >> Saya telah diuji 42. 1019 00:44:31,070 --> 00:44:33,030 Saya bisa menguji 43. 1020 00:44:33,030 --> 00:44:34,910 Saya bisa menguji 44. 1021 00:44:34,910 --> 00:44:35,640 Uji 45. 1022 00:44:35,640 --> 00:44:36,140 Benar? 1023 00:44:36,140 --> 00:44:37,860 Tapi aku bisa melakukan ini waktu yang sangat lama. 1024 00:44:37,860 --> 00:44:39,925 Apa yang akan menjadi lagi kasus yang menarik untuk mencoba? 1025 00:44:39,925 --> 00:44:41,050 AUDIENCE: [tidak terdengar] nol. 1026 00:44:41,050 --> 00:44:41,740 DAVID J. Malan: Jadi nol. 1027 00:44:41,740 --> 00:44:42,297 Tentu saja. 1028 00:44:42,297 --> 00:44:44,880 Dan baik, kami punya kali ini, berkat kode baru Lauren. 1029 00:44:44,880 --> 00:44:46,213 Apa kasus lain yang baik untuk mencoba? 1030 00:44:46,213 --> 00:44:47,320 AUDIENCE: satu negatif. 1031 00:44:47,320 --> 00:44:50,070 >> DAVID J. Malan: satu negatif, dan mungkin sesuatu yang sedikit lebih besar, 1032 00:44:50,070 --> 00:44:52,617 jadi mungkin negatif 42, tetapi secara umum, ketika 1033 00:44:52,617 --> 00:44:54,450 pengujian program Anda bergerak maju, Anda 1034 00:44:54,450 --> 00:44:56,325 akan ingin untuk berpikir untuk diri sendiri, seperti apa 1035 00:44:56,325 --> 00:44:58,050 adalah kasus yang berbeda mendasar. 1036 00:44:58,050 --> 00:45:01,720 Dan saya berani mengatakan kasus negatif, kasus positif, dan kasus nol 1037 00:45:01,720 --> 00:45:03,365 cukup banyak putaran ini keluar. 1038 00:45:03,365 --> 00:45:04,990 Mari kita lihat varian meskipun ini. 1039 00:45:04,990 --> 00:45:06,930 Kondisi satu. 1040 00:45:06,930 --> 00:45:11,224 Ini adalah solusi yang tepat di sini, sehingga Anda akan melihat dua dan online, 1041 00:45:11,224 --> 00:45:13,390 jika Anda berjalan melalui penelusuran, akan umumnya 1042 00:45:13,390 --> 00:45:18,090 kenaikan bertahap ini sampai kita mendapatkan persis pendekatan yang tepat. 1043 00:45:18,090 --> 00:45:20,070 Bagaimana jika kita ingin bertanya dua pertanyaan sekaligus? 1044 00:45:20,070 --> 00:45:22,200 >> Mari saya membuka ini sebagai gantinya. 1045 00:45:22,200 --> 00:45:26,740 Non-switch, untuk alasan kita akan melihat lain waktu. 1046 00:45:26,740 --> 00:45:29,610 Apa yang baru sintaksis di sini? 1047 00:45:29,610 --> 00:45:32,760 Saat ini saya bermain game di mana komputer memberitahu 1048 00:45:32,760 --> 00:45:35,550 saya, memberikan saya integer antara satu dan 10, 1049 00:45:35,550 --> 00:45:37,180 dan kemudian saya menilai masukan pengguna. 1050 00:45:37,180 --> 00:45:39,180 Dalam bahasa Inggris, berdasarkan kode yang Anda lihat di sini 1051 00:45:39,180 --> 00:45:41,530 warna biru, apa yang program ini lakukan? 1052 00:45:41,530 --> 00:45:44,256 1053 00:45:44,256 --> 00:45:46,380 AUDIENCE: [tidak terdengar] dijemput sejumlah besar atau kecil. 1054 00:45:46,380 --> 00:45:46,484 DAVID J. Malan: Ya. 1055 00:45:46,484 --> 00:45:49,450 Itu hanya mengadili apakah Aku mengambil besar, atau sedang, 1056 00:45:49,450 --> 00:45:53,900 atau sejumlah kecil berdasarkan sangat definisi sewenang-wenang kecil, menengah, 1057 00:45:53,900 --> 00:45:58,510 dan besar di sini, tapi pemberitahuan sintaks yang baru ini. 1058 00:45:58,510 --> 00:46:02,340 Tidak ada kurang dari atau sama dengan int menandatangani, atau lebih besar dari atau sama dengan, 1059 00:46:02,340 --> 00:46:05,430 di mana satu di atas yang lain, bahwa Anda dapat mengungkapkan dalam seperti Microsoft Word. 1060 00:46:05,430 --> 00:46:08,180 Jadi dalam bahasa pemrograman Anda biasanya hanya melakukan dua karakter, 1061 00:46:08,180 --> 00:46:09,450 satu demi satu. 1062 00:46:09,450 --> 00:46:12,695 Dan apa ini mungkin mewakili, ampersand ampersand. 1063 00:46:12,695 --> 00:46:13,570 AUDIENCE: [tidak terdengar] 1064 00:46:13,570 --> 00:46:13,680 DAVID J. Malan: Ya. 1065 00:46:13,680 --> 00:46:16,910 Ini hanya berarti dan karena Ternyata penulis C 1066 00:46:16,910 --> 00:46:19,120 menggunakan ampersand tunggal, yang Anda mungkin berpikir 1067 00:46:19,120 --> 00:46:22,430 akan menjadi sempurna untuk gagasan dari dan, sudah habis, 1068 00:46:22,430 --> 00:46:27,300 ampersand sehingga ampersand sebenarnya menangkap kasus kita benar-benar inginkan. 1069 00:46:27,300 --> 00:46:30,610 >> Jadi mari kita tersandung di dua hal. 1070 00:46:30,610 --> 00:46:32,640 Biarkan aku pergi ke depan dan membuka satu. 1071 00:46:32,640 --> 00:46:36,590 Sesuatu yang agak mengkhawatirkan. 1072 00:46:36,590 --> 00:46:37,970 Ketidaktepatan dot c. 1073 00:46:37,970 --> 00:46:40,260 Mari saya memperkenalkan dua hal di sini. 1074 00:46:40,260 --> 00:46:44,720 Satu, pemberitahuan yang bisa kita lakukan matematika, seperti seperti sebelumnya ketika 1075 00:46:44,720 --> 00:46:47,797 kita lakukan ditambah dari dua angka, x dan y. 1076 00:46:47,797 --> 00:46:49,380 Apa yang program ini ternyata lakukan? 1077 00:46:49,380 --> 00:46:52,140 Aku sudah tidak berkomentar itu belum, dan saya telah memperkenalkan persen f, 1078 00:46:52,140 --> 00:46:55,720 tapi aku cepat katakan sebelumnya persen f berarti floating point 1079 00:46:55,720 --> 00:46:56,970 nilai, yang merupakan bilangan real. 1080 00:46:56,970 --> 00:46:59,520 Sesuatu dengan desimal titik, yang bukan merupakan bilangan bulat. 1081 00:46:59,520 --> 00:47:02,270 Apa yang Anda pikirkan program ini adalah mencoba untuk menunjukkan di layar? 1082 00:47:02,270 --> 00:47:05,060 1083 00:47:05,060 --> 00:47:06,050 Ya? 1084 00:47:06,050 --> 00:47:07,550 AUDIENCE: Hasil salah satu dari 10. 1085 00:47:07,550 --> 00:47:07,780 DAVID J. Malan: Ya. 1086 00:47:07,780 --> 00:47:09,680 Apa hasil dari satu dibagi dengan 10. 1087 00:47:09,680 --> 00:47:12,721 Benar, karena semua yang Anda miliki mungkin tumbuh mengetahui bahwa salah satu dari 10 1088 00:47:12,721 --> 00:47:14,502 adalah apa? 1089 00:47:14,502 --> 00:47:16,220 Ya, itu hanya 1/10 atau 0,1. 1090 00:47:16,220 --> 00:47:16,720 Benar? 1091 00:47:16,720 --> 00:47:19,010 Jadi mari kita lihat apa ini sebenarnya. 1092 00:47:19,010 --> 00:47:21,010 Jadi biarkan aku pergi ke depan dan menyimpan ini. 1093 00:47:21,010 --> 00:47:21,970 Biarkan aku pergi ke sini. 1094 00:47:21,970 --> 00:47:26,360 Membuat ketidaktepatan dot slash ketidaktepatan, dan pemberitahuan, juga, 1095 00:47:26,360 --> 00:47:29,380 dalam lingkungan Linux, Anda tidak harus mengetikkan ketidaktepatan dan mengambil 1096 00:47:29,380 --> 00:47:30,010 sepanjang hari. 1097 00:47:30,010 --> 00:47:32,910 Umumnya, jika anda menekan Tab, itu akan menyelesaikan pikiran Anda untuk Anda, 1098 00:47:32,910 --> 00:47:36,660 didasarkan pada kata-kata yang tersedia di direktori saat ini. 1099 00:47:36,660 --> 00:47:37,160 OKE. 1100 00:47:37,160 --> 00:47:37,970 Jadi Anda benar. 1101 00:47:37,970 --> 00:47:41,239 Satu dibagi dengan 10 adalah, pada kenyataannya, 0,1. 1102 00:47:41,239 --> 00:47:42,280 Tapi aku sedikit penasaran. 1103 00:47:42,280 --> 00:47:44,196 Dan ternyata printf mendukung beberapa fitur 1104 00:47:44,196 --> 00:47:48,700 dimana Anda dapat menentukan lebih dari nomor default poin desimal. 1105 00:47:48,700 --> 00:47:52,140 Jadi jika saya ingin melihat 10 desimal poin yang bisa saya lakukan persen, 1106 00:47:52,140 --> 00:47:55,510 untuk simbol placeholder, dot 10 untuk, memberikan 10 poin desimal, 1107 00:47:55,510 --> 00:47:58,140 dan kemudian masih floating point nilai, dan, sebagai samping, 1108 00:47:58,140 --> 00:48:01,550 apa backslash ini n rupanya kita terus menggunakan? 1109 00:48:01,550 --> 00:48:03,450 Ternyata itu adalah simbol untuk baris baru. 1110 00:48:03,450 --> 00:48:05,970 Ini adalah cara yang sangat eksplisit mengatakan ke komputer, 1111 00:48:05,970 --> 00:48:08,759 memindahkan kursor ke depan baris setelah Anda selesai. 1112 00:48:08,759 --> 00:48:10,800 Dan kita akan melihat apa yang terjadi ketika kita tidak melakukan itu. 1113 00:48:10,800 --> 00:48:12,430 >> Mari saya ulang membuat ketidaktepatan. 1114 00:48:12,430 --> 00:48:15,320 1115 00:48:15,320 --> 00:48:18,356 Sekarang dot slash ketidaktepatan. 1116 00:48:18,356 --> 00:48:18,930 OKE. 1117 00:48:18,930 --> 00:48:19,780 Masih tepat. 1118 00:48:19,780 --> 00:48:21,512 Satu dibagi dengan 10. 1119 00:48:21,512 --> 00:48:23,220 Sekarang aku mendapatkan sedikit penasaran, meskipun. 1120 00:48:23,220 --> 00:48:27,599 Bagaimana jika saya melihat 20 desimal menunjukkan, ulang, jalankan kembali, 1121 00:48:27,599 --> 00:48:29,390 dan sebagai samping untuk kecepatan, Anda juga dapat menggunakan 1122 00:48:29,390 --> 00:48:31,800 up dan turun panah untuk gulir melalui sejarah Anda, 1123 00:48:31,800 --> 00:48:35,476 sehingga Anda tidak harus terus mengetik ulang perintah ini, masukkan. 1124 00:48:35,476 --> 00:48:36,910 Huh. 1125 00:48:36,910 --> 00:48:39,220 Aku tidak tahu bahwa di sekolah dasar. 1126 00:48:39,220 --> 00:48:43,260 Baiklah, jadi biar lihat seperti 29 tempat keluar. 1127 00:48:43,260 --> 00:48:44,300 Mungkin itu hanya kebetulan. 1128 00:48:44,300 --> 00:48:46,907 Mungkin komputer saya bertindak aneh. 1129 00:48:46,907 --> 00:48:47,990 Itu tidak apa-apa, kan? 1130 00:48:47,990 --> 00:48:50,300 Ini melakukan sesuatu deterministik. 1131 00:48:50,300 --> 00:48:53,410 Sehingga membuat ketidaktepatan. 1132 00:48:53,410 --> 00:48:54,890 OK, yang kacau. 1133 00:48:54,890 --> 00:48:57,620 Jadi apa yang terjadi? 1134 00:48:57,620 --> 00:49:00,160 >> Jadi tampaknya Anda guru telah berbohong 1135 00:49:00,160 --> 00:49:03,900 untuk Anda semua waktu ini untuk alasan yang akan kita lihat sebelum lama. 1136 00:49:03,900 --> 00:49:05,569 Tapi mari kita berakhir dengan satu program lain. 1137 00:49:05,569 --> 00:49:07,860 Ini adalah program kecil seseorang menulis beberapa tahun yang lalu, 1138 00:49:07,860 --> 00:49:08,990 dan itu sebenarnya bagian dari kontes. 1139 00:49:08,990 --> 00:49:11,198 Tidak ada yang benar-benar menulis kode seperti ini, dan jika Anda melakukannya, 1140 00:49:11,198 --> 00:49:12,880 Gaya ini masalah. 1141 00:49:12,880 --> 00:49:14,660 Tetapi orang-orang melakukan hal ini untuk hak membual. 1142 00:49:14,660 --> 00:49:17,260 Untuk menulis paling membingungkan mencari program yang 1143 00:49:17,260 --> 00:49:19,110 tetap melakukan sesuatu yang menarik. 1144 00:49:19,110 --> 00:49:23,930 Dan catatan saya pikir kami akan meninggalkan pada hari ini, sebelum Colton memainkan kami di sini, 1145 00:49:23,930 --> 00:49:27,840 adalah untuk menjalankan program ini, yang, bahkan hanya menggunakan 1146 00:49:27,840 --> 00:49:31,450 C dalam hal ini berdasarkan teks- lingkungan, memberi kita ini. 1147 00:49:31,450 --> 00:49:32,264 Sialan. 1148 00:49:32,264 --> 00:49:34,930 >> [Tertawa] 1149 00:49:34,930 --> 00:49:36,800 >> Bersiaga. 1150 00:49:36,800 --> 00:49:39,340 [Tidak terdengar] c dasbor l m. 1151 00:49:39,340 --> 00:49:42,885 Anda akan melihat magis mantra yang akan kita lihat sebelum lama. 1152 00:49:42,885 --> 00:49:45,780 [Tidak terdengar] Baiklah. 1153 00:49:45,780 --> 00:49:51,592 Dan sekarang Anda bahkan dapat melakukan hal-hal seperti ini. 1154 00:49:51,592 --> 00:49:52,340 Itu dia. 1155 00:49:52,340 --> 00:49:56,410 Untuk CS50 kita, akan melihat Anda pada hari Jumat. 1156 00:49:56,410 --> 00:49:58,910 >> [MUSIC PLAYING] 1157 00:49:58,910 --> 00:52:38,390 1158 00:52:38,390 --> 00:52:41,440 >> [Tepuk Tangan] 1159 00:52:41,440 --> 00:52:42,812