1 00:00:00,000 --> 00:00:11,050 2 00:00:11,050 --> 00:00:13,351 >> ROB Bowden: ini adalah bagian lebih nyaman, 3 00:00:13,351 --> 00:00:16,309 tetapi itu tidak berarti bahwa jika Anda merasa seperti Anda tidak lebih nyaman 4 00:00:16,309 --> 00:00:18,420 Anda tidak akan belajar hal-hal di sini. 5 00:00:18,420 --> 00:00:20,600 Jadi mari kita mulai. 6 00:00:20,600 --> 00:00:22,819 Apakah Anda memiliki slide akan langsung ke hal. 7 00:00:22,819 --> 00:00:24,360 Apakah saya akan hanya mengambil sekarang? 8 00:00:24,360 --> 00:00:25,680 9 00:00:25,680 --> 00:00:26,450 Switching laptop. 10 00:00:26,450 --> 00:00:30,470 11 00:00:30,470 --> 00:00:32,950 >> ALLISON: Anda tidak ingin memperkenalkan diri, Rob? 12 00:00:32,950 --> 00:00:34,090 >> ROB Bowden: Oh, aku Rob. 13 00:00:34,090 --> 00:00:35,182 14 00:00:35,182 --> 00:00:37,470 Ini adalah tahun kelima saya TF-ing CS50. 15 00:00:37,470 --> 00:00:38,760 16 00:00:38,760 --> 00:00:39,650 >> GABRIEL: Aku Gabriel. 17 00:00:39,650 --> 00:00:41,610 Aku kepala TF dari CS50. 18 00:00:41,610 --> 00:00:44,009 Aku TF tahun lalu dan tahun ini. 19 00:00:44,009 --> 00:00:46,675 ALLISON: Dan aku Alison, dan ini adalah tahun kedua saya TF-ing CS50. 20 00:00:46,675 --> 00:00:48,510 21 00:00:48,510 --> 00:00:50,825 >> ROB Bowden: Baiklah, jadi hal ini di sebelah kiri, 22 00:00:50,825 --> 00:00:52,250 mudah-mudahan Anda pernah melihat itu sebelumnya. 23 00:00:52,250 --> 00:00:54,112 Jika tidak karena Anda download untuk diri sendiri, 24 00:00:54,112 --> 00:00:55,570 Anda harus melihatnya dalam kuliah. 25 00:00:55,570 --> 00:00:56,590 26 00:00:56,590 --> 00:01:01,320 Jadi ini adalah alat CS50, dan dia melakukan sedikit dari deskripsi itu 27 00:01:01,320 --> 00:01:01,880 dalam kuliah. 28 00:01:01,880 --> 00:01:06,890 Tapi pada dasarnya itu hanya Anda sedang menjalankan operasi 29 00:01:06,890 --> 00:01:10,550 sistem dalam operasi Anda sistem sehingga kami dapat memberikan 30 00:01:10,550 --> 00:01:12,540 program tanpa perlu khawatir, oh apakah ini 31 00:01:12,540 --> 00:01:15,989 akan bekerja pada kedua Windows dan Mac, atau jika beberapa dari Anda 32 00:01:15,989 --> 00:01:17,280 sudah menggunakan Linux, Linux. 33 00:01:17,280 --> 00:01:18,532 34 00:01:18,532 --> 00:01:20,240 Hanya saja seharusnya menjadi bermain umum 35 00:01:20,240 --> 00:01:23,010 bidang sehingga setiap orang memiliki lingkungan yang sama persis. 36 00:01:23,010 --> 00:01:25,344 >> Jadi jika Anda belum download ini sudah, 37 00:01:25,344 --> 00:01:28,510 Anda harus men-download, karena kau akan membutuhkannya untuk set masalah. 38 00:01:28,510 --> 00:01:32,335 Dan itu adalah dua gigabyte men-download, jadi mungkin butuh waktu. 39 00:01:32,335 --> 00:01:33,780 Di Harvard itu akan pergi cepat. 40 00:01:33,780 --> 00:01:35,870 41 00:01:35,870 --> 00:01:37,440 Alat Jadi CS50. 42 00:01:37,440 --> 00:01:41,980 >> Sekarang di awal, kita akan berbicara tentang hanya sekelompok baris perintah 43 00:01:41,980 --> 00:01:46,880 barang, dan sebagainya dengan itu, maksud saya bekerja dalam lingkungan kecil ini di sini. 44 00:01:46,880 --> 00:01:53,230 Dan perhatikan semua hal Saya katakan di sini sekarang 45 00:01:53,230 --> 00:01:56,900 akan bekerja jika Anda dalam terminal dalam alat, 46 00:01:56,900 --> 00:02:00,790 atau jika Anda berada di dalam jendela terminal gedit 47 00:02:00,790 --> 00:02:02,090 dalam alat. 48 00:02:02,090 --> 00:02:03,770 Jadi lingkungan-lingkungan yang identik. 49 00:02:03,770 --> 00:02:04,940 50 00:02:04,940 --> 00:02:07,270 >> Tapi aku akan pergi rute ketiga. 51 00:02:07,270 --> 00:02:12,200 Dan perhatikan di sini ini alamat IP kecil di sini. 52 00:02:12,200 --> 00:02:15,940 Jadi Anda tidak perlu melakukan hal ini, tapi IP ini 53 00:02:15,940 --> 00:02:19,700 address-- jika Aku-- kecuali itu diblokir oleh hal ini. 54 00:02:19,700 --> 00:02:22,790 55 00:02:22,790 --> 00:02:27,000 OK, sehingga alamat IP lebih dalam terminal 56 00:02:27,000 --> 00:02:31,090 sini-jadi terminal ini lebih di sini adalah terminal di Mac saya. 57 00:02:31,090 --> 00:02:34,540 Jadi ini sama sekali tidak saat ini terkait dengan alat sama sekali. 58 00:02:34,540 --> 00:02:39,360 Dan jika Anda berada di Windows, maka Anda akan perlu men-download sesuatu 59 00:02:39,360 --> 00:02:44,430 khusus untuk ini, khususnya orang cenderung menggunakan Putty, P-U-T-T-Y. 60 00:02:44,430 --> 00:02:50,700 >> Jadi apa yang akan saya lakukan adalah mengetikkan SSH dan kemudian alamat IP. 61 00:02:50,700 --> 00:02:54,030 Nah, jharvard pada alamat IP. 62 00:02:54,030 --> 00:03:00,150 Jadi 192.168.24.220. 63 00:03:00,150 --> 00:03:02,127 Pesan menakutkan ini, mengabaikannya. 64 00:03:02,127 --> 00:03:02,710 Ketik saja ya. 65 00:03:02,710 --> 00:03:04,550 66 00:03:04,550 --> 00:03:06,030 Ini adalah CS50 dalam sebuah kotak. 67 00:03:06,030 --> 00:03:07,460 Meminta password Anda. 68 00:03:07,460 --> 00:03:11,910 >> Dan dalam banyak konteks ini di mana itu meminta password, [tak terdengar]. 69 00:03:11,910 --> 00:03:15,670 Kami punya banyak pertanyaan di mana ia mengatakan itu tidak benar-benar mengetik. 70 00:03:15,670 --> 00:03:20,011 Ini tidak menampilkan karakter password saat Anda mengetik, jika ada, 71 00:03:20,011 --> 00:03:23,010 untuk fitur keamanan, karena jika seseorang melihat melewati bahu Anda 72 00:03:23,010 --> 00:03:25,870 dan mereka melihat bintang bintang bintang bintang, maka mereka 73 00:03:25,870 --> 00:03:28,640 tahu bahwa password Anda adalah empat karakter. 74 00:03:28,640 --> 00:03:32,660 Jadi idenya adalah ia akan meminta kata sandi anda, jenis. 75 00:03:32,660 --> 00:03:34,490 Ini tidak akan menunjukkan Anda karakter, 76 00:03:34,490 --> 00:03:36,090 tapi itu benar-benar menerima mereka. 77 00:03:36,090 --> 00:03:39,210 Dalam hal ini, setiap kali Anda pernah melihat password prompt 78 00:03:39,210 --> 00:03:42,280 berurusan dengan alat, sandi akan menjadi merah. 79 00:03:42,280 --> 00:03:43,270 Jadi crimson. 80 00:03:43,270 --> 00:03:44,730 81 00:03:44,730 --> 00:03:50,550 >> Dan sekarang di sini dalam hal ini window yang ada di Mac saya, 82 00:03:50,550 --> 00:03:54,120 Saya pada dasarnya memiliki pandangan yang sama persis 83 00:03:54,120 --> 00:03:57,040 sebagai dalam terminal di alat. 84 00:03:57,040 --> 00:03:58,470 Jadi Anda tidak perlu melakukan ini. 85 00:03:58,470 --> 00:04:01,300 Anda dapat melakukan segala sesuatu yang Anda inginkan di dalam alat. 86 00:04:01,300 --> 00:04:05,140 Aku hampir tidak pernah benar-benar melakukan apa pun di alat. 87 00:04:05,140 --> 00:04:09,440 Saya hampir selalu meminimalkan itu dan sekarang Aku SSH bekerja ke dalam alat. 88 00:04:09,440 --> 00:04:11,480 89 00:04:11,480 --> 00:04:14,180 >> Jika ada, jika Anda memiliki komputer lebih lambat, 90 00:04:14,180 --> 00:04:15,820 Anda mungkin melihat perbedaan. 91 00:04:15,820 --> 00:04:18,839 Saya melakukan ini karena saya lebih memilih jendela terminal ini. 92 00:04:18,839 --> 00:04:20,881 Ini memiliki beberapa fitur seperti Saya dapat membagi jendela, 93 00:04:20,881 --> 00:04:22,672 dan sekarang saya bisa SSH di melalui alat. 94 00:04:22,672 --> 00:04:24,105 Aku punya dua SSH yang terjadi sekaligus. 95 00:04:24,105 --> 00:04:28,030 96 00:04:28,030 --> 00:04:32,250 Jika komputer Anda sangat lambat dan Anda bekerja di alat, 97 00:04:32,250 --> 00:04:35,200 dan Anda menyadari hal ini adalah benar-benar laggy, apa pun. 98 00:04:35,200 --> 00:04:38,220 Cenderung lebih cepat jika Anda SSH-ed di. 99 00:04:38,220 --> 00:04:40,960 Tapi jika tidak, anda dapat bekerja dengan cara baik. 100 00:04:40,960 --> 00:04:42,388 >> AUDIENCE: Apa SSH artinya? 101 00:04:42,388 --> 00:04:43,820 102 00:04:43,820 --> 00:04:47,479 >> ROB Bowden: kerang Aman, sesuatu seperti itu? 103 00:04:47,479 --> 00:04:48,270 Apa artinya SSH? 104 00:04:48,270 --> 00:04:54,214 105 00:04:54,214 --> 00:04:55,130 GABRIEL: shell aman. 106 00:04:55,130 --> 00:04:56,463 ALLISON: Ini shell hanya aman. 107 00:04:56,463 --> 00:04:57,720 ROB Bowden: shell aman. 108 00:04:57,720 --> 00:05:03,700 Ini adalah protokol yang you-- itu protokol aman, jadi dienkripsi. 109 00:05:03,700 --> 00:05:06,850 Orang tidak bisa mengintip jaringan dan melihat apa yang Anda katakan untuk apa pun 110 00:05:06,850 --> 00:05:08,120 Anda SSH-ed untuk. 111 00:05:08,120 --> 00:05:12,900 Dan pada kenyataannya, di dahulu hari CS50, sehingga pada tahun 2009 112 00:05:12,900 --> 00:05:19,300 ketika saya masih seorang mahasiswa, cara yang Anda bekerja pada CS50 masalah set, 113 00:05:19,300 --> 00:05:22,490 adalah Anda SSH-ed beberapa server bahwa kami memberi Anda akses ke, 114 00:05:22,490 --> 00:05:23,497 dan Anda bekerja di sana. 115 00:05:23,497 --> 00:05:25,330 Jadi Anda tidak memiliki ini alat grafis. 116 00:05:25,330 --> 00:05:26,160 Anda tidak memiliki gedit. 117 00:05:26,160 --> 00:05:28,930 Anda tidak memiliki semua hal-hal yang Anda bisa secara visual titik dan klik. 118 00:05:28,930 --> 00:05:30,346 Anda harus bekerja di interface ini. 119 00:05:30,346 --> 00:05:31,580 120 00:05:31,580 --> 00:05:33,716 Saya lebih suka bekerja di interface ini. 121 00:05:33,716 --> 00:05:36,090 Jadi bagian dari apa yang akan kita untuk pergi ke lebih dari sekarang 122 00:05:36,090 --> 00:05:39,560 adalah sekelompok orang perintah bahwa Anda harus 123 00:05:39,560 --> 00:05:42,095 mulai mendapatkan akrab dengan sebagai Anda pergi bersama dalam kursus. 124 00:05:42,095 --> 00:05:43,190 125 00:05:43,190 --> 00:05:45,790 Dan jujur, setelah Anda terbiasa dengan mereka, itu 126 00:05:45,790 --> 00:05:48,220 jauh lebih cepat untuk bekerja di lingkungan ini 127 00:05:48,220 --> 00:05:53,690 daripada untuk bekerja dengan finder, menyeret dan mengklik sesuatu. 128 00:05:53,690 --> 00:05:55,340 129 00:05:55,340 --> 00:05:57,210 >> Jadi di sini kita. 130 00:05:57,210 --> 00:06:01,779 Sekarang aku hanya SSH-ed in, dan sebagainya default yang lokasi Anda 131 00:06:01,779 --> 00:06:04,820 melihat beberapa perintah dalam kelas, namun kami akan pergi ke semua dari mereka lagi. 132 00:06:04,820 --> 00:06:08,060 Lokasi default kami di adalah direktori home. 133 00:06:08,060 --> 00:06:11,520 Dan direktori, hanya kata lain untuk folder. 134 00:06:11,520 --> 00:06:13,310 Jadi kita berada di direktori home. 135 00:06:13,310 --> 00:06:15,889 Ketik ls, daftar file dalam direktori ini. 136 00:06:15,889 --> 00:06:17,430 Jelas saya membuat blah.c sebelumnya. 137 00:06:17,430 --> 00:06:19,120 138 00:06:19,120 --> 00:06:20,472 Jadi kita memiliki direktori desktop yang. 139 00:06:20,472 --> 00:06:21,930 Anda melihat penyorotan sintaks? 140 00:06:21,930 --> 00:06:27,400 141 00:06:27,400 --> 00:06:32,900 Warna biru muda menunjukkan direktori dan putih lurus 142 00:06:32,900 --> 00:06:34,380 menunjukkan hanya file biasa. 143 00:06:34,380 --> 00:06:35,410 144 00:06:35,410 --> 00:06:37,690 Jadi ada akan menjadi beberapa warna lain yang Anda lihat. 145 00:06:37,690 --> 00:06:41,240 File eksekusi mungkin akan untuk menjadi hijau atau sesuatu seperti itu. 146 00:06:41,240 --> 00:06:44,820 OK, jadi kami berada di direktori home. 147 00:06:44,820 --> 00:06:48,970 >> Sekarang jika saya ingin pergi ke yang berbeda direktori, cd adalah perintah yang saya inginkan. 148 00:06:48,970 --> 00:06:52,720 Jadi mengubah direktori, dan kemudian Anda lulus nama direktori 149 00:06:52,720 --> 00:06:54,020 bahwa Anda ingin pergi ke. 150 00:06:54,020 --> 00:06:55,780 Jadi di sini kita memiliki empat pilihan. 151 00:06:55,780 --> 00:07:03,397 Aku bisa masuk ke download, dan sekarang kita melihat di sini telah diperbarui ini disisipkan 152 00:07:03,397 --> 00:07:04,480 mengatakan saya di ~ / downloads. 153 00:07:04,480 --> 00:07:05,620 154 00:07:05,620 --> 00:07:06,800 >> Jadi apa yang tilde? 155 00:07:06,800 --> 00:07:10,640 Ini adalah singkatan untuk direktori home Anda. 156 00:07:10,640 --> 00:07:15,260 Jadi hampir semua yang Anda lakukan akan menjadi sehubungan dengan direktori home Anda, 157 00:07:15,260 --> 00:07:20,620 dan pwd hanya perintah Saya menggunakan sekali dalam setahun yang 158 00:07:20,620 --> 00:07:22,420 hanya mencetak direktori saat ini. 159 00:07:22,420 --> 00:07:25,730 Dan Anda lihat di sini bahwa ~ / Download benar-benar menyelesaikan 160 00:07:25,730 --> 00:07:26,896 ke / home / jharvard / download. 161 00:07:26,896 --> 00:07:29,320 162 00:07:29,320 --> 00:07:32,230 Jadi / home / jharvard adalah direktori rumah saya. 163 00:07:32,230 --> 00:07:33,700 164 00:07:33,700 --> 00:07:39,400 >> Jadi kita bisa cd dot dot. 165 00:07:39,400 --> 00:07:47,800 Sekarang dot dot adalah direktori khusus yang selalu mengacu pada satu direktori up. 166 00:07:47,800 --> 00:07:51,730 Jadi jika saya di ~ / download, maka cd dot dot akan membawa saya untuk tilde. 167 00:07:51,730 --> 00:07:52,950 168 00:07:52,950 --> 00:07:55,490 Apa yang kita pikirkan cd dot dot akan membawa saya ke saat ini? 169 00:07:55,490 --> 00:07:58,740 170 00:07:58,740 --> 00:08:00,570 Ini akan membawa saya ke / home. 171 00:08:00,570 --> 00:08:04,450 Jadi tilde oleh cetak direktori kerja, Aku sudah di / home / jharvard. 172 00:08:04,450 --> 00:08:06,060 173 00:08:06,060 --> 00:08:08,820 satu direktori up itu, sekarang mengatakan di sini / home. 174 00:08:08,820 --> 00:08:12,330 175 00:08:12,330 --> 00:08:17,180 >> Sekarang cd dot dot. 176 00:08:17,180 --> 00:08:20,910 Sekarang aku di direktori root, dan Anda tidak dapat melakukannya lagi. 177 00:08:20,910 --> 00:08:23,340 Anda akan hanya tinggal di direktori root selamanya. 178 00:08:23,340 --> 00:08:26,700 Direktori root memiliki sejumlah besar hal-hal yang, jika Anda ingin melihat ke dalam, 179 00:08:26,700 --> 00:08:27,410 Anda bisa. 180 00:08:27,410 --> 00:08:29,700 Sebagai contoh, jika saya pergi ke tempat sampah, yang berisi 181 00:08:29,700 --> 00:08:35,789 semua binari tersebut, seperti ls, dan cd, dan semua hal-hal. 182 00:08:35,789 --> 00:08:38,630 Jadi perintah ini harus ada di suatu tempat dalam sistem, 183 00:08:38,630 --> 00:08:40,820 dan itu adalah di direktori / bin. 184 00:08:40,820 --> 00:08:44,530 Tapi hampir semua yang Anda lakukan adalah akan dari direktori home Anda. 185 00:08:44,530 --> 00:08:49,490 Dan cd tanpa argumen apapun, Anda bisa mengatakan cd ~, tidak perlu. 186 00:08:49,490 --> 00:08:51,810 cd akan membawa Anda kembali ke direktori home Anda. 187 00:08:51,810 --> 00:08:53,170 188 00:08:53,170 --> 00:08:54,230 >> Satu yang terakhir. 189 00:08:54,230 --> 00:09:00,200 cd - akan membawa Anda kembali ke direktori terakhir yang Anda berada di. 190 00:09:00,200 --> 00:09:04,080 Jadi aku hanya cd'd dua kali berturut-turut, jadi saya Direktori yang terakhir adalah direktori home. 191 00:09:04,080 --> 00:09:11,520 Jika saya pergi untuk memangkas bin, dan sekarang mari kita naik dan menjadi user. 192 00:09:11,520 --> 00:09:12,550 193 00:09:12,550 --> 00:09:13,280 Share pengguna. 194 00:09:13,280 --> 00:09:14,840 195 00:09:14,840 --> 00:09:15,940 Mari kita pergi ke pangsa pengguna. 196 00:09:15,940 --> 00:09:17,140 Sekarang aku sekarang dalam pangsa pengguna. 197 00:09:17,140 --> 00:09:19,320 cd -, kembali bin. 198 00:09:19,320 --> 00:09:22,980 Jadi ini akan sangat berguna ketika Anda have-- dan itu akan beralih. 199 00:09:22,980 --> 00:09:25,660 Jadi pengguna berbagi, kembali bin, pangsa bin. 200 00:09:25,660 --> 00:09:27,250 >> Jadi ini akan berguna. 201 00:09:27,250 --> 00:09:33,150 Anda mungkin menemukan diri Anda memiliki banyak, banyak, banyak direktori bersarang. 202 00:09:33,150 --> 00:09:37,370 Dan Anda ingin melakukan sesuatu cepat nyata dalam direktori atas. 203 00:09:37,370 --> 00:09:40,330 Anda pergi ke direktori tersebut, membuat perubahan dan hal-hal seperti itu, 204 00:09:40,330 --> 00:09:42,400 dan sekarang Anda ingin pergi kembali ke tempat Anda. 205 00:09:42,400 --> 00:09:43,660 cd -. 206 00:09:43,660 --> 00:09:47,320 Aku selalu frustrasi ketika saya kebetulan pergi 207 00:09:47,320 --> 00:09:49,630 ke direktori saya ingin melakukan pekerjaan di. 208 00:09:49,630 --> 00:09:52,670 Saya selalu merasa frustrasi ketika aku dalam dua langkah, bukan satu langkah, 209 00:09:52,670 --> 00:09:55,715 karena itu berarti cd itu - akan untuk membawa ke lokasi tersebut antara 210 00:09:55,715 --> 00:09:57,010 bukannya di mana saya ingin pergi. 211 00:09:57,010 --> 00:09:59,350 212 00:09:59,350 --> 00:10:01,450 >> Jadi kita melihat semua file daftar. 213 00:10:01,450 --> 00:10:03,300 Kita tahu bagaimana untuk mendapatkan sekitar sejauh ini. 214 00:10:03,300 --> 00:10:09,900 Jadi sekarang mari kita bicara tentang mengedit file. 215 00:10:09,900 --> 00:10:18,790 Jadi dalam kursus ini, Anda hampir selalu diharapkan untuk menggunakan gedit. 216 00:10:18,790 --> 00:10:24,410 Jika Anda ingin, Anda dapat mengambil langkah berikutnya dan mulai belajar teks baris perintah 217 00:10:24,410 --> 00:10:25,240 Editor. 218 00:10:25,240 --> 00:10:27,560 Jadi berbagai pilihan yang ada. 219 00:10:27,560 --> 00:10:31,760 >> Dan orang-orang yang mungkin akan relevan bagi Anda, 220 00:10:31,760 --> 00:10:35,340 kita memiliki Nano, Vim, dan Emacs. 221 00:10:35,340 --> 00:10:40,196 Jadi Nano adalah pemula baris perintah editor teks. 222 00:10:40,196 --> 00:10:42,985 Jadi Nano mari kita pergi blah.c saya buat sebelumnya. 223 00:10:42,985 --> 00:10:44,030 224 00:10:44,030 --> 00:10:46,480 Hanya saja ini file C standar. 225 00:10:46,480 --> 00:10:51,540 Dan Anda melihat sejumlah besar barang terjadi di bagian bawah layar, 226 00:10:51,540 --> 00:10:54,100 dan tampaknya blah.c berisi kode C ini. 227 00:10:54,100 --> 00:10:55,420 228 00:10:55,420 --> 00:11:00,330 >> Jadi dalam editor tertentu, apa itu mengatakan di bottom-- 229 00:11:00,330 --> 00:11:06,290 sekarang simbol tanda sisipan ini, kita melihat ini ^ G, ^ X, ^ O. 230 00:11:06,290 --> 00:11:10,310 Sehingga di hampir semua konteks yang Anda lihat, 231 00:11:10,310 --> 00:11:13,530 Anda mungkin melihat bahwa simbol tanda sisipan di tempat-tempat lain secara online, pada Stack Overflow, 232 00:11:13,530 --> 00:11:14,450 sesuatu seperti itu. 233 00:11:14,450 --> 00:11:16,970 Ini hampir selalu mengacu untuk mengontrol. 234 00:11:16,970 --> 00:11:21,590 Jadi untuk keluar yang ingin saya lakukan Kontrol X. Kontrol X, keluar. 235 00:11:21,590 --> 00:11:22,750 236 00:11:22,750 --> 00:11:26,855 Dan saya dapat menggunakan panah saya kunci untuk bergerak di sekitar. 237 00:11:26,855 --> 00:11:28,010 238 00:11:28,010 --> 00:11:31,015 Perhatikan saya tidak bisa menunjuk dan klik mudah. 239 00:11:31,015 --> 00:11:33,000 240 00:11:33,000 --> 00:11:35,010 Anda perlu menggunakan panah Anda kunci untuk bergerak di sekitar. 241 00:11:35,010 --> 00:11:36,950 Mungkin ada pengaturan untuk titik dan klik. 242 00:11:36,950 --> 00:11:40,000 >> Tapi mari kita membuat beberapa perubahan. 243 00:11:40,000 --> 00:11:42,100 Sekarang Kontrol X untuk pergi keluar. 244 00:11:42,100 --> 00:11:44,120 Ini akan mengatakan Hemat penyangga dimodifikasi. 245 00:11:44,120 --> 00:11:47,900 Sekarang prompt, y untuk yes, n untuk no. 246 00:11:47,900 --> 00:11:49,900 Kontrol C untuk membatalkan. 247 00:11:49,900 --> 00:11:50,780 Aku hanya akan mengatakan ya. 248 00:11:50,780 --> 00:11:51,709 Nama untuk menulis file. 249 00:11:51,709 --> 00:11:53,500 Standarnya adalah file bahwa sudah ada. 250 00:11:53,500 --> 00:11:54,230 Tekan Enter. 251 00:11:54,230 --> 00:11:54,740 OK. 252 00:11:54,740 --> 00:11:58,580 Sekarang aku baru saja diedit file itu, menyimpannya, dan itu berubah. 253 00:11:58,580 --> 00:11:59,770 254 00:11:59,770 --> 00:12:03,000 >> Jadi Nano adalah yang paling mudah editor teks terbiasa. 255 00:12:03,000 --> 00:12:05,520 Alternatif adalah Vim dan Emacs. 256 00:12:05,520 --> 00:12:11,250 Mereka adalah tingkat yang lebih tinggi editor teks yang memiliki kurva belajar yang sangat curam. 257 00:12:11,250 --> 00:12:13,740 Jadi preferensi pribadi saya adalah Vim. 258 00:12:13,740 --> 00:12:17,175 Dan memiliki berbagai macam pilihan. 259 00:12:17,175 --> 00:12:18,210 260 00:12:18,210 --> 00:12:24,070 Dan sekali Anda terbiasa untuk itu, Anda tidak akan pernah 261 00:12:24,070 --> 00:12:26,900 ingin pergi ke lain editor teks karena Anda hanya 262 00:12:26,900 --> 00:12:29,590 memiliki begitu banyak hal tersedia bagi Anda di ini, 263 00:12:29,590 --> 00:12:31,690 namun butuh benar-benar waktu lama untuk belajar. 264 00:12:31,690 --> 00:12:36,000 Jadi mungkin Anda hanya ingin memaksa diri Anda sekarang untuk mendapatkan digunakan untuk itu, 265 00:12:36,000 --> 00:12:38,130 tapi aku akan mengatakan itu worth it. 266 00:12:38,130 --> 00:12:39,660 Tetapi sulit. 267 00:12:39,660 --> 00:12:41,220 >> Dan kemudian Emacs. 268 00:12:41,220 --> 00:12:44,940 Saya selalu berjuang di Emacs karena Aku tahu bagaimana melakukan apa-apa. 269 00:12:44,940 --> 00:12:47,755 Rupanya Emacs tidak secara default diinstal pada alat. 270 00:12:47,755 --> 00:12:49,210 271 00:12:49,210 --> 00:12:51,720 Kami mungkin akan menambahkan bahwa sebagai instalasi default. 272 00:12:51,720 --> 00:12:59,620 273 00:12:59,620 --> 00:13:02,390 Setelah Anda mempelajari salah satu Vim atau Emacs, ada 274 00:13:02,390 --> 00:13:04,810 ada alasan kuat untuk pernah belajar lainnya, 275 00:13:04,810 --> 00:13:07,570 tetapi itu adalah gaya yang sama sekali berbeda. 276 00:13:07,570 --> 00:13:10,460 OK jadi itu mengedit file teks. 277 00:13:10,460 --> 00:13:13,374 >> AUDIENCE: Jika Anda terjebak di Vim sekarang, bagaimana we-- 278 00:13:13,374 --> 00:13:18,840 279 00:13:18,840 --> 00:13:20,800 >> ROB Bowden: Ada beberapa mode di Vim, 280 00:13:20,800 --> 00:13:23,770 dan ada seluruh tutorial belajar Vim. 281 00:13:23,770 --> 00:13:27,390 Jadi jika Anda kebetulan berada dalam mode insert dalam rangka 282 00:13:27,390 --> 00:13:29,930 untuk mengetik teks, yang dapat Anda masukkan bahwa dalam berbagai cara, 283 00:13:29,930 --> 00:13:31,610 tetapi saya adalah bagaimana Anda masuk ke modus insert. 284 00:13:31,610 --> 00:13:34,780 Atau keluar dari setiap khusus Modus yang Anda berada di, hanya melarikan diri. 285 00:13:34,780 --> 00:13:37,640 Dan Anda hanya menampar Escape untuk mendapatkan dari setiap mode bersarang di Anda. 286 00:13:37,640 --> 00:13:40,360 Hanya OK, sekarang aku kembali dalam mode normal. 287 00:13:40,360 --> 00:13:43,790 >> Dan dalam mode normal, titik dua. 288 00:13:43,790 --> 00:13:45,160 Anda melihatnya muncul di bagian bawah. 289 00:13:45,160 --> 00:13:46,240 Dan kemudian q. 290 00:13:46,240 --> 00:13:52,600 Jadi q akan berhenti jika Anda telah membuat perubahan, yang Aku-- Aku telah membuat perubahan? 291 00:13:52,600 --> 00:13:54,180 Saya telah membuat perubahan rupanya. 292 00:13:54,180 --> 00:13:57,264 Jadi jika Anda telah membuat perubahan, itu akan mengatakan Anda dapat menempatkan tanda seru. 293 00:13:57,264 --> 00:13:58,430 Aku akan menyebutnya sebuah ledakan. 294 00:13:58,430 --> 00:14:02,040 Sehingga Anda dapat menempatkan larangan untuk hanya keluar tanpa melakukan apa-apa, 295 00:14:02,040 --> 00:14:04,520 atau wq usus akan menyimpan dan keluar. 296 00:14:04,520 --> 00:14:06,580 Jadi w pada umumnya adalah menulis. 297 00:14:06,580 --> 00:14:08,300 Jadi menulis file. 298 00:14:08,300 --> 00:14:09,810 Saya bisa menulis dan berhenti. 299 00:14:09,810 --> 00:14:13,606 Atau Anda bisa saja qx slam, q Bang hanya 300 00:14:13,606 --> 00:14:16,230 untuk keluar dari sana tanpa setiap perubahan yang Anda buat. 301 00:14:16,230 --> 00:14:21,310 302 00:14:21,310 --> 00:14:28,940 >> Baiklah, jadi sekarang mari kita go-- kita dapat membuat file. 303 00:14:28,940 --> 00:14:30,890 Mari kita mulai menghapus file. 304 00:14:30,890 --> 00:14:35,450 Dan aku hanya akan melemparkan dalam satu perintah baru cepat, sentuh. 305 00:14:35,450 --> 00:14:38,200 Jadi menyentuh foo. 306 00:14:38,200 --> 00:14:39,340 Bar Touch. 307 00:14:39,340 --> 00:14:40,220 Sentuh baz. 308 00:14:40,220 --> 00:14:42,810 Jika saya ls, sekarang kita melihat bahwa file-file yang ada. 309 00:14:42,810 --> 00:14:44,315 Mereka benar-benar kosong. 310 00:14:44,315 --> 00:14:47,178 Jadi sentuh hanya mudah cara satu, [tak terdengar]. 311 00:14:47,178 --> 00:14:50,850 312 00:14:50,850 --> 00:14:54,640 Dua, secara teknis hanya untuk negara itu, itu update cap waktu. 313 00:14:54,640 --> 00:14:58,470 Jadi setiap file yang Anda buat memiliki timestamp yang terkait dengannya. 314 00:14:58,470 --> 00:15:01,330 Jadi baz dibuat pada September 14 at 16:21. 315 00:15:01,330 --> 00:15:02,570 316 00:15:02,570 --> 00:15:06,670 Sekarang 16:22, jadi jika Aku menyentuh baz lagi, kita 317 00:15:06,670 --> 00:15:11,420 melihat baz yang paling baru-baru ini diubah pada 16:22. 318 00:15:11,420 --> 00:15:17,680 Tapi kalau tidak aku hampir tidak pernah melihat cap waktu pada file. 319 00:15:17,680 --> 00:15:20,490 Jadi sentuhan, di sini aku hanya menggunakan untuk membuat beberapa file cepat. 320 00:15:20,490 --> 00:15:21,620 321 00:15:21,620 --> 00:15:27,400 >> Baiklah, jadi sekarang rm adalah perintah yang kita peduli tentang di sini. 322 00:15:27,400 --> 00:15:28,665 Dan kita dapat rm boo. 323 00:15:28,665 --> 00:15:31,000 Katakanlah menghapus reguler kosong berkas boo. 324 00:15:31,000 --> 00:15:34,070 Dan kita dapat mengetik y, dan sekarang Menghapus. 325 00:15:34,070 --> 00:15:34,850 rm baz. 326 00:15:34,850 --> 00:15:35,910 327 00:15:35,910 --> 00:15:38,620 Hapus file kosong biasa baz dan jenis n untuk no. 328 00:15:38,620 --> 00:15:40,060 Sekarang itu tidak dihapus. 329 00:15:40,060 --> 00:15:41,240 Jadi bar dan baz masih ada. 330 00:15:41,240 --> 00:15:42,232 Foo hilang. 331 00:15:42,232 --> 00:15:43,148 GABRIEL: Terus bicara. 332 00:15:43,148 --> 00:15:43,970 333 00:15:43,970 --> 00:15:44,720 ROB Bowden: Great. 334 00:15:44,720 --> 00:15:45,800 335 00:15:45,800 --> 00:15:50,370 Jadi pesan menjengkelkan sini, hapus empty-- biasa 336 00:15:50,370 --> 00:15:52,390 apa yang kamu lakukan di sana? 337 00:15:52,390 --> 00:15:54,030 Hapus file kosong biasa. 338 00:15:54,030 --> 00:15:58,840 339 00:15:58,840 --> 00:16:01,610 Jadi jika kita tidak ingin menjadi terganggu oleh pesan itu, 340 00:16:01,610 --> 00:16:05,340 kita dapat melempar -f ini bendera, dan jadi itu kekuatan. 341 00:16:05,340 --> 00:16:11,330 Dan sekarang jika saya rm -f, itu tidak akan mengatakan apakah Anda ingin menghapus file ini. 342 00:16:11,330 --> 00:16:12,040 Itu hanya akan melakukannya. 343 00:16:12,040 --> 00:16:13,720 Dan ls, saya tidak melihat bar sana lagi. 344 00:16:13,720 --> 00:16:14,810 345 00:16:14,810 --> 00:16:18,021 >> Sekarang adalah berpotensi perintah berbahaya. 346 00:16:18,021 --> 00:16:19,020 Hal ini cenderung untuk tidak terlalu buruk. 347 00:16:19,020 --> 00:16:22,240 Kami akan kembali dalam detik bagaimana itu bisa sangat berbahaya. 348 00:16:22,240 --> 00:16:28,740 Dan mari kita membuat beberapa direktori temp. 349 00:16:28,740 --> 00:16:30,880 mkdir, perintah lain. 350 00:16:30,880 --> 00:16:34,880 Jadi mkdir adalah perintah yang membuat direktori. 351 00:16:34,880 --> 00:16:40,650 Dan sekarang dengan ls kita melihat cahaya ini bagus biru disorot direktori temp. 352 00:16:40,650 --> 00:16:42,295 Aku bisa cd ke temp. 353 00:16:42,295 --> 00:16:44,590 Dan aku bisa mkdir foo. 354 00:16:44,590 --> 00:16:46,330 cd ke foo. mkdir bar. 355 00:16:46,330 --> 00:16:46,860 cd ke bar. 356 00:16:46,860 --> 00:16:49,400 357 00:16:49,400 --> 00:16:54,300 >> Jadi kita melihat kita dapat dengan mudah mendapatkan ke dalam beberapa bersarang cukup mendalam. 358 00:16:54,300 --> 00:16:56,385 Sekarang bagaimana cara menghapus direktori? 359 00:16:56,385 --> 00:16:57,020 360 00:16:57,020 --> 00:16:57,520 rmdir. 361 00:16:57,520 --> 00:16:59,030 362 00:16:59,030 --> 00:17:03,540 Jadi jika saya hanya lurus mencoba untuk rm, seperti yang kita lakukan dengan file biasa, 363 00:17:03,540 --> 00:17:06,420 rm bar akan mengatakan tidak dapat menghapus bar. 364 00:17:06,420 --> 00:17:07,569 Ini adalah sebuah direktori. 365 00:17:07,569 --> 00:17:10,619 Ada perintah khusus untuk menghapus direktori, jenis. 366 00:17:10,619 --> 00:17:12,900 Bar sehingga rmdir. 367 00:17:12,900 --> 00:17:13,710 Sekarang bar hilang. 368 00:17:13,710 --> 00:17:14,980 369 00:17:14,980 --> 00:17:22,680 >> OK, jadi rmdir saya cukup banyak tidak pernah menggunakan. 370 00:17:22,680 --> 00:17:32,220 Alasan sekarang being-- mari membuat file bar biasa di sini. 371 00:17:32,220 --> 00:17:34,780 Boo Jadi rmdir. 372 00:17:34,780 --> 00:17:35,760 rmdir. 373 00:17:35,760 --> 00:17:36,900 Gagal menghapus foo. 374 00:17:36,900 --> 00:17:38,420 Direktori tidak kosong. 375 00:17:38,420 --> 00:17:43,420 Jadi Anda tidak dapat menggunakan menghapus dir pada direktori yang memiliki hal-hal di dalamnya. 376 00:17:43,420 --> 00:17:44,830 >> Jadi Anda memiliki beberapa pilihan. 377 00:17:44,830 --> 00:17:49,780 Anda dapat masuk ke direktori tersebut, hapus semuanya secara manual, dan kemudian keluar 378 00:17:49,780 --> 00:17:51,759 dan rmdir direktori. 379 00:17:51,759 --> 00:17:53,050 Itu jelas terdengar menjengkelkan. 380 00:17:53,050 --> 00:17:55,000 Bagaimana jika ada ribuan file di sana? 381 00:17:55,000 --> 00:17:58,119 Nah, Anda bisa rm *. 382 00:17:58,119 --> 00:17:59,410 Kita akan berbicara tentang * dalam detik. 383 00:17:59,410 --> 00:18:00,870 Ini pada dasarnya berarti semua hal. 384 00:18:00,870 --> 00:18:02,030 385 00:18:02,030 --> 00:18:05,470 Tapi lebih baik lagi, r sehingga rm. 386 00:18:05,470 --> 00:18:10,220 Jadi rm -r-- dalam banyak konteks, r berarti rekursif, 387 00:18:10,220 --> 00:18:13,810 yang kita akan berbicara tentang apa yang cara rekursif dalam beberapa minggu. 388 00:18:13,810 --> 00:18:18,630 Tapi pada dasarnya berarti melintasi keseluruhan direktori ini 389 00:18:18,630 --> 00:18:20,190 dan menghapus segala sesuatu. 390 00:18:20,190 --> 00:18:24,420 >> Jadi rm foo r yang akan dikatakan turun ke direktori foo? 391 00:18:24,420 --> 00:18:25,210 Ya. 392 00:18:25,210 --> 00:18:26,800 Hapus biasa kosong berkas foo / bar? 393 00:18:26,800 --> 00:18:27,880 394 00:18:27,880 --> 00:18:28,540 Ya. 395 00:18:28,540 --> 00:18:29,760 Hapus direktori foo? 396 00:18:29,760 --> 00:18:30,260 Ya. 397 00:18:30,260 --> 00:18:31,470 398 00:18:31,470 --> 00:18:35,020 Jadi sekarang foo dan segala sesuatu di dalamnya telah dihapus. 399 00:18:35,020 --> 00:18:42,370 >> Sekarang yang bisa sangat mengganggu when-- mari kita sentuh 1, sentuh 2, sentuh 3. 400 00:18:42,370 --> 00:18:44,400 Bisa memiliki sejumlah besar file. 401 00:18:44,400 --> 00:18:49,060 Jika saya ingin, saya bisa menciptakan ribuan file di sini. 402 00:18:49,060 --> 00:18:53,340 Dan rm foo r akan menjadi cukup menjengkelkan. 403 00:18:53,340 --> 00:18:55,374 Ya, ya, ya, ya, ya, ya. 404 00:18:55,374 --> 00:18:57,540 Dengan lebih banyak file yang Anda cepat melihat berapa kali 405 00:18:57,540 --> 00:18:58,581 Saya harus mengetik ya. 406 00:18:58,581 --> 00:19:02,265 Yah, kita hanya melihat sebelum bagaimana kita bisa menyingkirkan perlu mengetik ya, -f. 407 00:19:02,265 --> 00:19:03,330 408 00:19:03,330 --> 00:19:07,020 Jadi mkdir foo cd foo sentuh 1 2 3. 409 00:19:07,020 --> 00:19:08,380 410 00:19:08,380 --> 00:19:17,190 OK, jadi rm foo rf akan membabi buta menghapus foo seluruhnya. 411 00:19:17,190 --> 00:19:17,960 Tidak ada prompt. 412 00:19:17,960 --> 00:19:18,650 Tidak ada apa-apa. 413 00:19:18,650 --> 00:19:20,040 Foo hilang. 414 00:19:20,040 --> 00:19:23,830 >> Jadi saya cenderung untuk menggunakan ini perintah sepanjang waktu. 415 00:19:23,830 --> 00:19:25,120 416 00:19:25,120 --> 00:19:27,830 Yang mengatakan, itu adalah perintah yang sangat berbahaya, 417 00:19:27,830 --> 00:19:33,240 karena jika saya melakukan sesuatu seperti ini, tidak akan meminta Anda. 418 00:19:33,240 --> 00:19:34,730 Itu akan hilang. 419 00:19:34,730 --> 00:19:40,140 Dan itu terjadi cukup sering, dan bahkan di tingkat yang lebih tinggi program CS. 420 00:19:40,140 --> 00:19:42,070 Kadang-kadang kita akan melihat sesuatu di mana seseorang 421 00:19:42,070 --> 00:19:48,360 bilang aku sengaja rm kami rf-ed rumah saya direktori dan semua P set saya hilang. 422 00:19:48,360 --> 00:19:52,422 Dan itu menghancurkan, tetapi tidak ada tempat sampah. 423 00:19:52,422 --> 00:19:54,380 Ada tidak ada tidak ada bagi Anda untuk mengambil. 424 00:19:54,380 --> 00:19:55,330 Hanya saja pergi. 425 00:19:55,330 --> 00:19:56,529 426 00:19:56,529 --> 00:19:58,320 Lebih buruk lagi akan sesuatu seperti rm -rf /. 427 00:19:58,320 --> 00:19:59,432 428 00:19:59,432 --> 00:20:01,140 Jadi kita hanya dibahas direktori root. 429 00:20:01,140 --> 00:20:03,095 Ini memegang semua file di sistem anda. 430 00:20:03,095 --> 00:20:04,120 431 00:20:04,120 --> 00:20:07,380 Hal cenderung jadi sangat berantakan ketika Anda menghapus hal-hal seperti ls, 432 00:20:07,380 --> 00:20:10,280 dan cd, dan semua dari mereka. 433 00:20:10,280 --> 00:20:15,467 >> AUDIENCE: Apa bedanya antara rm, rf, dan rm * 434 00:20:15,467 --> 00:20:16,300 ROB Bowden: Jadi rm * - 435 00:20:16,300 --> 00:20:17,700 436 00:20:17,700 --> 00:20:22,300 >> ALLISON: Pertanyaan adalah apa perbedaan antara rm, rf, dan rm *. 437 00:20:22,300 --> 00:20:23,750 438 00:20:23,750 --> 00:20:25,950 >> ROB Bowden: Jadi rm *. 439 00:20:25,950 --> 00:20:31,910 Bintang di sarana umum semua isi direktori ini. 440 00:20:31,910 --> 00:20:33,540 441 00:20:33,540 --> 00:20:35,540 Berusaha untuk memikirkan lainnya cara menampilkan bintang. 442 00:20:35,540 --> 00:20:38,280 443 00:20:38,280 --> 00:20:44,780 Nah, bintang sebenarnya umum berarti cocok dengan pola apapun. 444 00:20:44,780 --> 00:20:54,930 Jadi jika saya memiliki sebuah file yang bernama dog1, menyentuh dog2, sentuh cat1, sentuh Cat2. 445 00:20:54,930 --> 00:20:56,050 446 00:20:56,050 --> 00:21:02,110 Jadi ls * 1 akan mencetak cat1 dan dog1, karena bintang yang dapat diisi 447 00:21:02,110 --> 00:21:06,270 di with-- satu kebutuhan untuk berada di sana, tapi bintang dapat berupa kucing atau anjing. 448 00:21:06,270 --> 00:21:07,247 Ini adalah kartu liar. 449 00:21:07,247 --> 00:21:08,580 Itulah kata yang saya cari. 450 00:21:08,580 --> 00:21:09,120 Wild card. 451 00:21:09,120 --> 00:21:10,180 452 00:21:10,180 --> 00:21:13,960 Atau aku bisa ls anjing *, dan Aku harus melihat dog1, dog2. 453 00:21:13,960 --> 00:21:16,870 Jadi mereka adalah daftar file dan sesuai dengan pola tertentu. 454 00:21:16,870 --> 00:21:18,150 Anda dapat menggunakan ls dengan cara ini. 455 00:21:18,150 --> 00:21:19,350 456 00:21:19,350 --> 00:21:22,020 >> Ls * bintang pertandingan apa pun. 457 00:21:22,020 --> 00:21:25,710 Jadi itu akan mencetak semua isi direktori ini 458 00:21:25,710 --> 00:21:27,290 karena semua dari mereka cocok. 459 00:21:27,290 --> 00:21:30,130 Ini tidak akan mencetak apa-apa di direktori tingkat atas. 460 00:21:30,130 --> 00:21:38,680 Jika saya memiliki sub direktori, foo, dan menyentuh 1 2 3-- jadi jika rm * bintang, 461 00:21:38,680 --> 00:21:41,450 menghapus cat1, Cat2, dog1, dog2. 462 00:21:41,450 --> 00:21:42,340 Tidak dapat menghapus foo. 463 00:21:42,340 --> 00:21:43,090 Ini adalah sebuah direktori. 464 00:21:43,090 --> 00:21:43,920 465 00:21:43,920 --> 00:21:50,340 >> Jadi Bintang mengembang untuk semua file dalam direktori. 466 00:21:50,340 --> 00:21:55,210 Jadi secara teknis rm * seperti mengatakan rm cat1, Cat2, dog1, dog2, foo. 467 00:21:55,210 --> 00:22:03,630 Sedangkan rm-rf, secara teknis star akan mencapai apa yang kita inginkan, tapi rm -rf-- 468 00:22:03,630 --> 00:22:06,090 jika aku pergi keluar dari ini direktori, rm-rf suhu, 469 00:22:06,090 --> 00:22:08,890 yang akan masuk ke temp dan rekursif menghapus semuanya. 470 00:22:08,890 --> 00:22:11,260 471 00:22:11,260 --> 00:22:21,060 >> Jadi Bintang terpisah di bahwa dipahami by-- sehingga hal ini 472 00:22:21,060 --> 00:22:25,090 bahwa aku berjalan di, hal ini yang mendorong saya untuk perintah 473 00:22:25,090 --> 00:22:28,770 dan kemudian melaksanakan dan melakukan mereka, saya menyebutnya shell saya. 474 00:22:28,770 --> 00:22:31,930 Dan shell ini sendiri program. 475 00:22:31,930 --> 00:22:35,010 Dan jika saya ingin, saya bisa berjalan di / bin / bash. 476 00:22:35,010 --> 00:22:36,930 Shell disebut bash. 477 00:22:36,930 --> 00:22:39,340 Dan sekarang kita melihat sesuatu telah sedikit berubah, 478 00:22:39,340 --> 00:22:42,200 dan itu karena setting saya untuk shell agak berbeda. 479 00:22:42,200 --> 00:22:45,415 >> Tapi sekarang aku teknis berjalan shell dalam shell asli saya, 480 00:22:45,415 --> 00:22:49,570 dan aku bisa keluar shell itu, dan sekarang Aku kembali ke shell tingkat atas saya. 481 00:22:49,570 --> 00:22:55,240 Tujuan mengatakan yang is-- bintang. 482 00:22:55,240 --> 00:22:59,020 Jadi Bintang adalah sesuatu dipahami oleh bash. 483 00:22:59,020 --> 00:23:04,260 Jadi rm-rf, rf bendera dipahami oleh hanya rm. 484 00:23:04,260 --> 00:23:06,380 Ia tahu bahwa ketika Anda lulus rf yang Anda 485 00:23:06,380 --> 00:23:09,520 ingin rekursif menghapus semua file tanpa disuruh. 486 00:23:09,520 --> 00:23:13,960 Bintang tersebut sesuatu dipahami bash bahwa ketika Anda mengatakan rm *, 487 00:23:13,960 --> 00:23:16,890 bash tidak akan mengatakan hey rm *, menghapus bintang. 488 00:23:16,890 --> 00:23:21,010 Bash akan mengatakan rm * menghapus cat1, Cat2, dog1, dog2. 489 00:23:21,010 --> 00:23:24,305 Ini secara otomatis akan memperluas semua file dalam direktori. 490 00:23:24,305 --> 00:23:29,100 491 00:23:29,100 --> 00:23:33,140 >> Dan sama tilde adalah lain simbol yang pesta mengerti. 492 00:23:33,140 --> 00:23:37,130 Ketika Anda mengatakan cd ~, bash memperluas bahwa ke direktori home Anda. 493 00:23:37,130 --> 00:23:38,910 494 00:23:38,910 --> 00:23:40,210 Pertanyaan lain sejauh ini? 495 00:23:40,210 --> 00:23:42,760 496 00:23:42,760 --> 00:23:46,060 OK jadi kita akan mulai terjadi cepat. 497 00:23:46,060 --> 00:23:47,700 498 00:23:47,700 --> 00:23:48,545 >> Tab selesai. 499 00:23:48,545 --> 00:23:49,670 Hanya untuk membuangnya di luar sana. 500 00:23:49,670 --> 00:23:51,530 Banyak orang tidak menyadari hal ini ada. 501 00:23:51,530 --> 00:23:55,060 Jadi jika saya ketik cd dow, saya ingin pergi ke download. 502 00:23:55,060 --> 00:23:56,700 Saya tidak perlu mengetik nloads. 503 00:23:56,700 --> 00:23:57,960 504 00:23:57,960 --> 00:24:00,770 Aku hanya bisa memukul Tab. 505 00:24:00,770 --> 00:24:03,794 Jadi mengakui bahwa dow adalah awalan yang 506 00:24:03,794 --> 00:24:05,710 tidak cocok dengan lain di direktori ini, 507 00:24:05,710 --> 00:24:07,520 sehingga akan menyelesaikan untuk Anda. 508 00:24:07,520 --> 00:24:08,610 Sekarang aku bisa masuk. 509 00:24:08,610 --> 00:24:10,110 >> Saya juga melakukan itu secara rekursif. 510 00:24:10,110 --> 00:24:11,205 Foo Jadi mkdir. 511 00:24:11,205 --> 00:24:12,480 512 00:24:12,480 --> 00:24:13,300 Mari kita pergi ke foo. 513 00:24:13,300 --> 00:24:14,830 mkdir bar. 514 00:24:14,830 --> 00:24:17,345 Jadi kembali ke rumah saya direktori, aku bisa melihat download. 515 00:24:17,345 --> 00:24:19,040 516 00:24:19,040 --> 00:24:21,860 Sekarang memukul tab lagi, otomatis akan mengisi foo. 517 00:24:21,860 --> 00:24:22,880 Ini satu-satunya direktori. 518 00:24:22,880 --> 00:24:25,340 Menekan tab lagi, otomatis akan mengisi bar. 519 00:24:25,340 --> 00:24:26,798 Jadi sekarang aku di (~ Downloads / foo / bar). 520 00:24:26,798 --> 00:24:27,310 521 00:24:27,310 --> 00:24:31,692 >> Jadi tab completion ini, setiap kali aku harus jam kantor, 522 00:24:31,692 --> 00:24:33,400 dan aku berdiri di atas bahu seseorang, 523 00:24:33,400 --> 00:24:40,470 dan mereka akan rm D-O W-N-L-O-A-D-S, aku sekarat. 524 00:24:40,470 --> 00:24:41,990 Tab Hanya, tab, tab, tab. 525 00:24:41,990 --> 00:24:44,550 526 00:24:44,550 --> 00:24:45,630 Jadi pasti digunakan tab. 527 00:24:45,630 --> 00:24:47,890 528 00:24:47,890 --> 00:24:49,840 Dan sama dan down, banyak orang 529 00:24:49,840 --> 00:24:51,930 Hanya saja terjadi pernah memukul atas dan ke bawah. 530 00:24:51,930 --> 00:24:54,870 Ini akan pergi melalui sebelumnya perintah, jadi jika Anda hanya berlari sesuatu, 531 00:24:54,870 --> 00:24:58,300 dan Anda ingin menjalankannya lagi, hanya tahan sampai Anda sampai ke sana. 532 00:24:58,300 --> 00:24:59,870 533 00:24:59,870 --> 00:25:00,370 OK. 534 00:25:00,370 --> 00:25:01,460 535 00:25:01,460 --> 00:25:03,585 >> Begitu cepat, beberapa hal lain. 536 00:25:03,585 --> 00:25:04,800 537 00:25:04,800 --> 00:25:05,930 Mari kita kembali ke temp. 538 00:25:05,930 --> 00:25:06,976 539 00:25:06,976 --> 00:25:08,125 Mari kita membuat beberapa file. 540 00:25:08,125 --> 00:25:10,480 541 00:25:10,480 --> 00:25:15,215 Jadi di sini, aku hanya akan daftar beberapa kata. 542 00:25:15,215 --> 00:25:18,460 543 00:25:18,460 --> 00:25:21,035 anjing, kucing, meong. 544 00:25:21,035 --> 00:25:23,940 545 00:25:23,940 --> 00:25:26,040 Mari kita lakukan anjing, ikan. 546 00:25:26,040 --> 00:25:27,500 547 00:25:27,500 --> 00:25:32,320 Jadi sekarang rep adalah sangat perintah yang berguna bahwa Anda 548 00:25:32,320 --> 00:25:37,820 gunakan untuk mencari seluruh file untuk teks tertentu, 549 00:25:37,820 --> 00:25:40,910 dan secara teknis Anda dapat melakukan benar-benar ekspresi kompleks untuk itu untuk mencocokkan. 550 00:25:40,910 --> 00:25:44,830 >> Jadi di sini, jika saya grep, dan apa saya ingin mencari? 551 00:25:44,830 --> 00:25:49,130 Katakanlah aku mencari kucing, dan Saya ingin mencari semua file-file ini. 552 00:25:49,130 --> 00:25:50,650 Jadi bagaimana saya melakukan semua file-file ini? 553 00:25:50,650 --> 00:25:51,900 Bintang. 554 00:25:51,900 --> 00:25:54,939 Jadi dalam satu file, saya punya kucing. 555 00:25:54,939 --> 00:25:56,980 Aku mungkin bisa memiliki menyebutnya sesuatu yang lebih baik, 556 00:25:56,980 --> 00:25:59,063 karena yang terlihat seperti nomor baris atau sesuatu. 557 00:25:59,063 --> 00:26:01,590 Tapi dalam satu file saya memiliki garis dengan kucing. 558 00:26:01,590 --> 00:26:04,160 Dalam file kedua saya memiliki garis dengan kucing. 559 00:26:04,160 --> 00:26:07,280 Jadi sekarang saya bisa melihat ke dalam satu file dan lihat oh yeah, file yang memiliki kucing. 560 00:26:07,280 --> 00:26:10,210 File pemberitahuan tiga tidak cocok karena kucing tidak di sana. 561 00:26:10,210 --> 00:26:13,882 Aku bisa grep untuk meong. 562 00:26:13,882 --> 00:26:14,840 Hanya mengajukan dua memiliki meong. 563 00:26:14,840 --> 00:26:16,120 564 00:26:16,120 --> 00:26:20,640 >> Jadi ini Anda dapat menggabungkan, lagi, dengan r, yang 565 00:26:20,640 --> 00:26:23,580 seperti yang saya katakan sebelumnya sering berarti rekursif. 566 00:26:23,580 --> 00:26:29,800 Dan jadi aku bisa datang ke sini, grep -r misalnya setiap of-- mari kita mengedit 567 00:26:29,800 --> 00:26:32,010 yang satu ini hanya untuk membuang kucing di sana. 568 00:26:32,010 --> 00:26:38,800 Jadi grep -r untuk setiap contoh kucing seluruh direktori ini. 569 00:26:38,800 --> 00:26:41,600 Dan akan secara rekursif mencari subdirektori. 570 00:26:41,600 --> 00:26:43,940 Jadi dalam baz, ada kucing. 571 00:26:43,940 --> 00:26:45,570 Dalam temp / 2, ada kucing. 572 00:26:45,570 --> 00:26:47,960 Dan di temp / 1 ada kucing. 573 00:26:47,960 --> 00:26:50,045 Jadi itu mencari di dalam file. 574 00:26:50,045 --> 00:26:51,250 575 00:26:51,250 --> 00:26:55,090 >> Sekarang Anda juga dapat menggunakan menemukan. 576 00:26:55,090 --> 00:26:59,640 Dan menemukan secara khusus tentang mencari file dengan nama yang diberikan. 577 00:26:59,640 --> 00:27:02,490 Jadi mari kita membuat beberapa lagi. 578 00:27:02,490 --> 00:27:03,660 Mari kita pergi ke download. 579 00:27:03,660 --> 00:27:04,680 580 00:27:04,680 --> 00:27:05,380 Sentuh dog1. 581 00:27:05,380 --> 00:27:06,840 582 00:27:06,840 --> 00:27:07,770 Sentuh Cat2. 583 00:27:07,770 --> 00:27:09,290 584 00:27:09,290 --> 00:27:10,760 Sentuh cat_dog. 585 00:27:10,760 --> 00:27:14,550 586 00:27:14,550 --> 00:27:15,975 Sentuh catcat. 587 00:27:15,975 --> 00:27:18,270 588 00:27:18,270 --> 00:27:23,810 >> Jadi saya ingin mencari semua file dengan anjing dalam nama. 589 00:27:23,810 --> 00:27:28,060 Jadi menemukan, dan untuk terpanjang waktu aku tak pernah ingat 590 00:27:28,060 --> 00:27:33,760 bagaimana menemukan bekerja, sampai akhirnya aku membaca sesuatu yang membuatnya begitu jelas. 591 00:27:33,760 --> 00:27:35,784 Jadi menemukan, otomatis rekursif. 592 00:27:35,784 --> 00:27:36,950 Anda tidak harus lulus r a. 593 00:27:36,950 --> 00:27:38,090 594 00:27:38,090 --> 00:27:39,110 Jadi menemukan titik. 595 00:27:39,110 --> 00:27:40,750 Kami belum berbicara tentang titik belum. 596 00:27:40,750 --> 00:27:44,800 Sedangkan dot selalu dot berarti satu direktori up. 597 00:27:44,800 --> 00:27:46,960 Dot selalu berarti direktori saat ini. 598 00:27:46,960 --> 00:27:51,390 Jadi saya bisa rm dot-r di cara yang sama saya dapat rm-rf *. 599 00:27:51,390 --> 00:27:53,140 Pada akhirnya mereka mencapai hal yang sama. 600 00:27:53,140 --> 00:27:56,040 rm -rf dot akan menghapus seluruh direktori saat ini. 601 00:27:56,040 --> 00:27:57,440 602 00:27:57,440 --> 00:27:59,680 >> OK, yang saya tidak mau lakukan di sana. 603 00:27:59,680 --> 00:28:01,490 604 00:28:01,490 --> 00:28:04,320 Tapi menemukan titik. 605 00:28:04,320 --> 00:28:07,920 Jadi secara rekursif mencari saat direktori, dan sekarang semuanya 606 00:28:07,920 --> 00:28:14,125 setelah ini adalah sekelompok bendera yang gunakan untuk mengecualikan hal-hal dari return. 607 00:28:14,125 --> 00:28:17,250 Jadi menemukan titik mengembalikan segala sesuatu yang dapat menemukan dari direktori saat ini. 608 00:28:17,250 --> 00:28:19,700 Mereka adalah semua file rekursif mencari. 609 00:28:19,700 --> 00:28:21,250 Kita akan melihat beberapa dari mereka dalam detik. 610 00:28:21,250 --> 00:28:23,150 611 00:28:23,150 --> 00:28:27,140 >> Tapi dalam kasus Anda bertanya-tanya bagaimana saya melakukannya itu, jadi Komando K, setidaknya 612 00:28:27,140 --> 00:28:29,660 di terminal saya di Mac membersihkan itu. 613 00:28:29,660 --> 00:28:34,660 Kontrol L umumnya membersihkan untuk segala macam terminal. 614 00:28:34,660 --> 00:28:36,480 Anda juga dapat mengetik jelas. 615 00:28:36,480 --> 00:28:38,410 Dan jika Anda pernah mendapatkan menjadi scenario-- aneh 616 00:28:38,410 --> 00:28:42,790 itu terjadi padaku pasangan time-- dimana warna prompt Anda 617 00:28:42,790 --> 00:28:46,590 semua kacau, atau Anda tidak dapat melihat apa-apa 618 00:28:46,590 --> 00:28:51,232 sedang diketik ketika Anda mengetik, karena kadang seperti warna latar belakang disetel 619 00:28:51,232 --> 00:28:53,940 sama dengan warna foreground dan sekarang Anda tidak dapat melihat font. 620 00:28:53,940 --> 00:28:55,110 621 00:28:55,110 --> 00:28:59,830 Ulang adalah sesuatu yang hanya me-reset Anda ke default latar belakang hitam, 622 00:28:59,830 --> 00:29:01,840 depan putih, atau apa pun Anda mengatur mereka untuk. 623 00:29:01,840 --> 00:29:03,390 624 00:29:03,390 --> 00:29:04,790 >> Jadi di mana kita? 625 00:29:04,790 --> 00:29:05,930 Cari titik. 626 00:29:05,930 --> 00:29:09,360 Jadi sekarang semuanya melewati ini Titik membatasi hasil 627 00:29:09,360 --> 00:29:11,450 sesuatu yang cocok pola yang diberikan. 628 00:29:11,450 --> 00:29:16,110 Jadi di sini saya ingin mencari segala sesuatu dengan nama kucing. 629 00:29:16,110 --> 00:29:17,300 Aku punya apa-apa. 630 00:29:17,300 --> 00:29:18,390 Mengapa hal itu terjadi? 631 00:29:18,390 --> 00:29:21,230 Yah, aku hanya mencari sesuatu dengan tepat nama kucing. 632 00:29:21,230 --> 00:29:25,150 Jika saya ingin mencari sesuatu yang memiliki beberapa pola, dan cat-- 633 00:29:25,150 --> 00:29:28,890 tanda kutip teknis tidak diperlukan, tapi aku melemparkan mereka di sana. 634 00:29:28,890 --> 00:29:32,720 Jadi sekarang ia menemukan catcat karena itulah satu-satunya hal yang 635 00:29:32,720 --> 00:29:36,040 memiliki beberapa sewenang-wenang Pola diikuti oleh kucing. 636 00:29:36,040 --> 00:29:41,950 Saya dapat menempatkan kucing *, dan sekarang menemukan catcat, cat_dog, Cat2, 637 00:29:41,950 --> 00:29:45,245 karena mereka adalah segala hal dengan kucing pada awal diikuti oleh apa pun. 638 00:29:45,245 --> 00:29:46,120 Anda dapat menggabungkan ini. 639 00:29:46,120 --> 00:29:50,480 Jika Anda ingin mencari semua file C yang Anda miliki, yang mungkin Anda lakukan * .c. 640 00:29:50,480 --> 00:29:51,960 Kami telah blah.c sini. 641 00:29:51,960 --> 00:29:53,000 642 00:29:53,000 --> 00:29:55,020 Jadi itu menemukan karya. 643 00:29:55,020 --> 00:29:55,770 Anda dapat mencari. 644 00:29:55,770 --> 00:29:58,270 Ini memiliki sejumlah besar bendera untuk pembatasan lebih lanjut. 645 00:29:58,270 --> 00:30:00,960 Dan satu pada mereka, katakanlah -d. 646 00:30:00,960 --> 00:30:02,110 647 00:30:02,110 --> 00:30:04,435 Jadi usang. 648 00:30:04,435 --> 00:30:05,425 649 00:30:05,425 --> 00:30:06,550 Oh, bukan itu yang saya inginkan. 650 00:30:06,550 --> 00:30:07,730 Tidak -d. 651 00:30:07,730 --> 00:30:08,860 Jenis d. 652 00:30:08,860 --> 00:30:13,820 Jadi menemukan dot - Jenis d. 653 00:30:13,820 --> 00:30:17,760 Jadi apa yang baru saja lakukan adalah aku mencari untuk semua file dalam direktori saat ini 654 00:30:17,760 --> 00:30:21,680 dengan a-- d singkatan directory-- Jenis direktori. 655 00:30:21,680 --> 00:30:24,430 Ini mengembalikan semua direktori di direktori saat ini. 656 00:30:24,430 --> 00:30:27,670 Dan tipe F adalah semua biasa file, semua direktori non. 657 00:30:27,670 --> 00:30:29,809 Jadi itu hanya sebuah contoh cara lain Anda 658 00:30:29,809 --> 00:30:32,350 dapat membatasi pencari lainnya dari sekedar nama file. 659 00:30:32,350 --> 00:30:34,126 660 00:30:34,126 --> 00:30:35,570 >> Sudah 30 menit. 661 00:30:35,570 --> 00:30:36,848 Masih terjadi. 662 00:30:36,848 --> 00:30:38,132 >> ALLISON: Aku akan angin melalui. 663 00:30:38,132 --> 00:30:39,670 Ini akan baik-baik. 664 00:30:39,670 --> 00:30:41,460 >> ROB Bowden: Jadi beberapa hal lain. 665 00:30:41,460 --> 00:30:45,700 Sekarang Bang, tanda seru. 666 00:30:45,700 --> 00:30:50,530 Sehingga pada umumnya means-- baik, mari kita lihat contoh. 667 00:30:50,530 --> 00:30:52,230 Jadi! F, apa yang yang akan dilakukan? 668 00:30:52,230 --> 00:30:53,520 669 00:30:53,520 --> 00:30:57,810 Yah tampaknya memiliki diulang menemukan dot -type f. 670 00:30:57,810 --> 00:30:59,240 Bagaimana! G? 671 00:30:59,240 --> 00:31:00,760 Itu hanya grep kucing r *. 672 00:31:00,760 --> 00:31:02,010 673 00:31:02,010 --> 00:31:05,720 Jadi Bang dapat Anda gunakan untuk mengulang perintah baru-baru ini dilakukan. 674 00:31:05,720 --> 00:31:13,280 Jadi jika saya ketik! Gre, itu akan kembali berjalan perintah yang dimulai dengan gre paling 675 00:31:13,280 --> 00:31:14,060 baru-baru ini. 676 00:31:14,060 --> 00:31:17,090 >> Dan Anda bisa melihat semua ini perintah dengan sejarah. 677 00:31:17,090 --> 00:31:17,880 Jadi sejarah. 678 00:31:17,880 --> 00:31:19,630 Ini semua perintah aku sudah menjalankan hari ini. 679 00:31:19,630 --> 00:31:21,089 680 00:31:21,089 --> 00:31:23,130 Dan juga, itu tidak benar-benar terbatas pada hari ini, 681 00:31:23,130 --> 00:31:25,180 tapi aku hanya menggunakan ini alat untuk hari ini. 682 00:31:25,180 --> 00:31:28,730 Ini keseluruhan Anda dari sejarah shell bash Anda, 683 00:31:28,730 --> 00:31:30,433 kecuali itu memotong di beberapa titik. 684 00:31:30,433 --> 00:31:33,474 AUDIENCE: Apa yang terjadi jika Anda lakukan Sejarah [tidak terdengar] perintah dan kesalahan 685 00:31:33,474 --> 00:31:35,430 dalam hasil masih akan mencetak the-- 686 00:31:35,430 --> 00:31:44,110 >> ROB Bowden: Ya, jika ada kesalahan dalam salah satu commands-- ini 687 00:31:44,110 --> 00:31:48,090 jadi mari kita katakan, yang merupakan Perintah kesalahan tidak ditemukan. 688 00:31:48,090 --> 00:31:49,312 689 00:31:49,312 --> 00:31:50,520 Masih muncul dalam sejarah. 690 00:31:50,520 --> 00:31:52,620 691 00:31:52,620 --> 00:31:53,170 Baik. 692 00:31:53,170 --> 00:31:54,750 693 00:31:54,750 --> 00:31:56,040 Pertanyaan lain pada apa pun? 694 00:31:56,040 --> 00:31:58,760 695 00:31:58,760 --> 00:32:00,300 Jadi itu Bang. 696 00:32:00,300 --> 00:32:04,230 >> Sekarang, perintah yang benar-benar berguna, man. 697 00:32:04,230 --> 00:32:07,750 Sehingga memberikan Anda Panduan untuk perintah yang diberikan. 698 00:32:07,750 --> 00:32:11,640 Jadi katakanlah ls manusia, sehingga ini menunjukkan saya ls. 699 00:32:11,640 --> 00:32:13,400 Itu daftar isi direktori. 700 00:32:13,400 --> 00:32:17,150 Dan ini adalah di mana saya melihat bahwa ada adalah berbagai bendera yang ada. 701 00:32:17,150 --> 00:32:21,340 Jadi kita lihat bahwa Ls-l ada jika kita membaca itu. ls-l 702 00:32:21,340 --> 00:32:26,150 memberi saya daftar lengkap ini dari direktori dengan yang memiliki file tersebut, 703 00:32:26,150 --> 00:32:29,750 ukuran file, timestamp dimodifikasi. 704 00:32:29,750 --> 00:32:31,130 705 00:32:31,130 --> 00:32:34,980 Jadi ls -a adalah salah satu lain yang Anda mungkin benar-benar menggunakan agak sering. 706 00:32:34,980 --> 00:32:38,130 -al adalah saya bendera paling umum ini ls terakhir. 707 00:32:38,130 --> 00:32:42,520 >> Jadi -a, melihat ada banyak lebih banyak file dari sekedar ls. 708 00:32:42,520 --> 00:32:44,170 ls-a. 709 00:32:44,170 --> 00:32:46,170 Apa kesamaan dengan semua file-file ini? 710 00:32:46,170 --> 00:32:47,790 Mereka mulai dengan sebuah titik. 711 00:32:47,790 --> 00:32:54,710 Jadi ini adalah sebuah konvensi di Linux yang file yang dimulai dengan sebuah titik yang tersembunyi. 712 00:32:54,710 --> 00:32:58,330 Jadi itu hanya berarti bahwa ketika kita hanya ls lurus, 713 00:32:58,330 --> 00:33:04,170 atau kita mencari direktori ini menggunakan setara finder, atau Windows 714 00:33:04,170 --> 00:33:07,250 Explorer setara, bahwa kita tidak ingin melihat ini dot file. 715 00:33:07,250 --> 00:33:09,680 Mereka hanya mencemari pandangan hal. 716 00:33:09,680 --> 00:33:11,790 Jadi mereka tersembunyi kecuali Anda secara khusus 717 00:33:11,790 --> 00:33:14,250 meminta mereka dengan sesuatu seperti -a. 718 00:33:14,250 --> 00:33:18,920 Jadi saya bisa cd ke Setempat, dan saya melihat bahwa itu adalah dirinya sendiri sebuah direktori dengan 719 00:33:18,920 --> 00:33:22,220 direktori bersama, dan aplikasi, dan bla bla bla. 720 00:33:22,220 --> 00:33:24,520 Jadi dot, file mereka hanya tersembunyi. 721 00:33:24,520 --> 00:33:26,250 722 00:33:26,250 --> 00:33:29,355 >> OK, yang penting sehingga lainnya. 723 00:33:29,355 --> 00:33:30,490 724 00:33:30,490 --> 00:33:32,000 Saya memiliki beberapa saya dapat melewati. 725 00:33:32,000 --> 00:33:38,160 Mari kita nyata bicara singkat tentang hal-hal berkas pengalihan. 726 00:33:38,160 --> 00:33:43,020 Jadi ada serangkaian kompleks hal yang dapat Anda lakukan dengan ini, 727 00:33:43,020 --> 00:33:47,204 tapi hanya untuk melihat mereka, katakanlah, gema. 728 00:33:47,204 --> 00:33:47,870 Perintah lain. 729 00:33:47,870 --> 00:33:48,920 Perintah benar-benar bodoh. 730 00:33:48,920 --> 00:33:50,710 Semua hal ini adalah apa yang saya cetak kirim ke. 731 00:33:50,710 --> 00:33:52,070 Jadi gema halo. 732 00:33:52,070 --> 00:33:53,850 Itu hanya menggema menyapa layar. 733 00:33:53,850 --> 00:33:55,170 734 00:33:55,170 --> 00:33:56,390 Halo dunia. 735 00:33:56,390 --> 00:33:57,890 Echoes hello world. 736 00:33:57,890 --> 00:34:02,650 >> Jadi satu perintah atau satu simbol bahwa pesta mengerti 737 00:34:02,650 --> 00:34:07,620 apakah ini lebih besar dari simbol, dan itu adalah output ke simbol berkas. 738 00:34:07,620 --> 00:34:10,940 Jadi jika saya output ini untuk foo, sekarang ada file 739 00:34:10,940 --> 00:34:15,100 disebut foo, dalam yang hello world. 740 00:34:15,100 --> 00:34:18,489 Jadi melihat bahwa ketika Aku echo halo pipa dunia ke foo, 741 00:34:18,489 --> 00:34:19,980 itu tidak gema hello world. 742 00:34:19,980 --> 00:34:22,630 Sebaliknya itu dimasukkan ke dalam file foo. 743 00:34:22,630 --> 00:34:25,340 Dan perintah lain hanya untuk membuangnya pada Anda, kucing. 744 00:34:25,340 --> 00:34:29,191 Itulah cara mudah untuk hanya benar-benar daftar isi file 745 00:34:29,191 --> 00:34:31,440 sehingga saya tidak perlu membuka editor teks untuk melihatnya. 746 00:34:31,440 --> 00:34:34,159 Jadi isi File foo adalah hello world. 747 00:34:34,159 --> 00:34:38,460 Dan aku bisa kucing blah.c, isinya ini. 748 00:34:38,460 --> 00:34:42,123 >> Sekali lagi, ini adalah perintah itu, bukan berharap Anda memiliki mereka semua hafal. 749 00:34:42,123 --> 00:34:43,860 Idenya adalah Anda telah melihat mereka. 750 00:34:43,860 --> 00:34:45,735 Mungkin Anda bekerja pada sesuatu, dan Anda 751 00:34:45,735 --> 00:34:47,230 seperti aku muak membuka file ini. 752 00:34:47,230 --> 00:34:50,120 Saya berharap saya bisa melihat di isi dengan cepat. 753 00:34:50,120 --> 00:34:52,320 Anda bisa melakukan itu, maka melihat ke belakang dan mengatakan oh saya 754 00:34:52,320 --> 00:34:55,250 ingat sesuatu seperti yang ada, dan itu kucing. 755 00:34:55,250 --> 00:35:00,630 >> Sehingga akan file. 756 00:35:00,630 --> 00:35:06,639 Sekarang ada tidak benar-benar ada gunanya contoh membaca dari sebuah file belum. 757 00:35:06,639 --> 00:35:08,930 Apa sesuatu yang membutuhkan sesuatu dari standar dalam? 758 00:35:08,930 --> 00:35:10,010 759 00:35:10,010 --> 00:35:11,544 Setiap perintah sederhana Linux? 760 00:35:11,544 --> 00:35:13,480 761 00:35:13,480 --> 00:35:16,970 Ketika kita sampai ke sana, di pasangan minggu semua piece-- baik, 762 00:35:16,970 --> 00:35:20,470 minggu ini Anda memiliki sepotong di mana Anda mulai mengambil input dari user. 763 00:35:20,470 --> 00:35:23,696 Dan biasanya Anda mengetik bahwa masukan pada keyboard. 764 00:35:23,696 --> 00:35:25,570 Alih-alih mengetik yang masukan pada keyboard, 765 00:35:25,570 --> 00:35:30,950 Anda malah dapat pipa dalam dari sebuah file sehingga ketika Anda melakukan Mario, ./mario, 766 00:35:30,950 --> 00:35:35,200 pipa di dari setiap file yang diberikan, dan itu akan menjalankan program mario. 767 00:35:35,200 --> 00:35:37,300 Tidak mengharapkan masukan pada keyboard, bukan itu 768 00:35:37,300 --> 00:35:39,650 hanya akan membaca baris dari file foo. 769 00:35:39,650 --> 00:35:45,230 >> Jadi lebih besar dari foo menempatkan ke file foo, dan kurang dari foo 770 00:35:45,230 --> 00:35:50,170 mengambil barang-barang dari file foo dan menggunakan itu sebagai masukan untuk program ini. 771 00:35:50,170 --> 00:35:51,520 772 00:35:51,520 --> 00:36:00,630 Dan hanya untuk melihatnya, kami juga bisa menggemakan foo bar baz, dan kemudian bukan satu 773 00:36:00,630 --> 00:36:03,850 lebih besar dari, mari kita lakukan dua menjadi foo. 774 00:36:03,850 --> 00:36:05,610 Apa yang dilakukan? 775 00:36:05,610 --> 00:36:07,180 Itu hanya menambahkan ke file. 776 00:36:07,180 --> 00:36:15,360 Jadi, bukannya melihat jika saya menggemakan bla ke foo dan kemudian kucing foo, itu hanya bla. 777 00:36:15,360 --> 00:36:18,285 Jadi, ketika Anda output ke file, benar-benar menimpa file itu. 778 00:36:18,285 --> 00:36:19,330 779 00:36:19,330 --> 00:36:22,740 Jika Anda hanya ingin menambahkan, double [? grader. ?] 780 00:36:22,740 --> 00:36:24,080 >> Dan terakhir adalah pipa. 781 00:36:24,080 --> 00:36:29,590 Pipa Mendapat jauh lebih rumit, di mana dibutuhkan output dari satu perintah 782 00:36:29,590 --> 00:36:32,320 dan feed ke dalam perintah selanjutnya. 783 00:36:32,320 --> 00:36:36,140 Jadi beberapa hal yang lazim, sejarah. 784 00:36:36,140 --> 00:36:37,920 Jadi, ugh, saya tidak ingin melihat ini. 785 00:36:37,920 --> 00:36:40,680 786 00:36:40,680 --> 00:36:44,485 Tunjukkan semua perintah dalam sejarah saya di mana saya grep-ed untuk sesuatu. 787 00:36:44,485 --> 00:36:45,360 Tidak, itu membingungkan. 788 00:36:45,360 --> 00:36:50,360 Tunjukkan semua perintah di mana saya menemukan. 789 00:36:50,360 --> 00:36:52,360 Semua menemukan perintah yang pernah saya berlari. 790 00:36:52,360 --> 00:36:55,050 >> Jadi sejarah. 791 00:36:55,050 --> 00:36:59,017 Sekarang output sejarah ke layar daftar ini perintah, 792 00:36:59,017 --> 00:37:00,850 tapi saya tidak ingin output ke layar. 793 00:37:00,850 --> 00:37:03,445 Sebaliknya aku akan pipa ke grep. 794 00:37:03,445 --> 00:37:04,790 795 00:37:04,790 --> 00:37:07,830 Jadi mari kita grep untuk semua contoh find. 796 00:37:07,830 --> 00:37:09,550 797 00:37:09,550 --> 00:37:17,000 Jadi sekarang bukannya mengambil grep input, bukan of-- 798 00:37:17,000 --> 00:37:24,360 grep mampu menangani sebagai input-- kami menggunakan grep sedikit berbeda di sini. 799 00:37:24,360 --> 00:37:29,550 Jadi, bukannya mengetik daftar hal yang kita ingin mencari 800 00:37:29,550 --> 00:37:31,070 dan mengatakan grep mengambil sebagai masukan. 801 00:37:31,070 --> 00:37:34,810 Jadi jika saya hanya grep menemukan, menunggu bagi saya untuk mengetik sesuatu. 802 00:37:34,810 --> 00:37:37,661 Jadi kucing halo menemukan. 803 00:37:37,661 --> 00:37:38,160 Hello. 804 00:37:38,160 --> 00:37:40,430 805 00:37:40,430 --> 00:37:40,930 Cari. 806 00:37:40,930 --> 00:37:43,670 Perhatikan setiap kali saya ketik menemukan mengakui bahwa saya mengetik menemukan. 807 00:37:43,670 --> 00:37:44,880 808 00:37:44,880 --> 00:37:49,540 Jadi, bukannya ini, akan mencari data untuk menemukan. 809 00:37:49,540 --> 00:37:53,930 >> Jadi sejarah sekarang akan Output daftar semua perintah. 810 00:37:53,930 --> 00:37:55,200 811 00:37:55,200 --> 00:37:58,100 Kami menempatkan output yang, dan kita makan itu grep, 812 00:37:58,100 --> 00:38:00,180 dan itu menyemburkan semua contoh find. 813 00:38:00,180 --> 00:38:02,170 814 00:38:02,170 --> 00:38:05,570 Alasan saya mengatakan itu akan membingungkan adalah jika Aku-- itu masih membingungkan. 815 00:38:05,570 --> 00:38:07,030 Jika saya grep untuk grep. 816 00:38:07,030 --> 00:38:08,755 817 00:38:08,755 --> 00:38:11,130 Perhatikan itu cukup banyak selalu menunjukkan perintah saya hanya 818 00:38:11,130 --> 00:38:15,280 berlari karena perintah yang sendiri memiliki grep di dalamnya. 819 00:38:15,280 --> 00:38:16,580 820 00:38:16,580 --> 00:38:20,674 >> OK, jadi pertanyaan pada apa pun? 821 00:38:20,674 --> 00:38:22,340 Dan aku akan transfer lebih dari pada saat ini. 822 00:38:22,340 --> 00:38:24,690 Semoga ini menjadi bagus gambaran dari semua perintah 823 00:38:24,690 --> 00:38:30,100 bahwa Anda tidak perlu memiliki hafal, tapi ini membuat 824 00:38:30,100 --> 00:38:32,950 solid 95% dari apa yang saya dilakukan pada baris perintah. 825 00:38:32,950 --> 00:38:34,310 826 00:38:34,310 --> 00:38:39,140 Juga perlu diingat bahwa baris perintah itu sendiri, bash adalah bahasa pemrograman, 827 00:38:39,140 --> 00:38:43,070 dan jadi ketika Anda turun ke sana, Anda mungkin ingin melakukan hal-hal yang benar-benar kompleks. 828 00:38:43,070 --> 00:38:47,522 Dan sehingga memiliki hal-hal seperti loop, dan jika, dan semua orang 829 00:38:47,522 --> 00:38:50,230 bahwa Anda akan terbiasa dengan dengan bahasa pemrograman Anda. 830 00:38:50,230 --> 00:38:53,660 Tapi itu di luar ruang lingkup bagian ini. 831 00:38:53,660 --> 00:38:55,520 832 00:38:55,520 --> 00:38:56,985 OK, jadi tidak ada pertanyaan? 833 00:38:56,985 --> 00:38:57,940 834 00:38:57,940 --> 00:38:58,523 ALLISON: Tidak ada? 835 00:38:58,523 --> 00:38:59,450 GABRIEL: Apakah Anda akan to-- 836 00:38:59,450 --> 00:39:01,158 ALLISON: Aku bisa melakukannya pada saya jika Anda ingin. 837 00:39:01,158 --> 00:39:02,626 Kita bisa melihat apa yang terjadi. 838 00:39:02,626 --> 00:39:03,750 ROB Bowden: Off to Allison. 839 00:39:03,750 --> 00:39:05,090 ALLISON: Woo. 840 00:39:05,090 --> 00:39:07,504 Kau tindakan keras untuk diikuti, Rob. 841 00:39:07,504 --> 00:39:08,920 Apakah Anda ingin saya untuk beralih dengan Anda? 842 00:39:08,920 --> 00:39:10,246 Atau Anda punya, OK. 843 00:39:10,246 --> 00:39:13,590 844 00:39:13,590 --> 00:39:16,990 Aku akan mencoba dan tidak cukup sebagai panjang di sana. 845 00:39:16,990 --> 00:39:20,619 846 00:39:20,619 --> 00:39:22,660 Mari kita lihat apakah akan ini bekerja seperti yang saya inginkan. 847 00:39:22,660 --> 00:39:26,170 848 00:39:26,170 --> 00:39:26,670 Mungkin? 849 00:39:26,670 --> 00:39:27,760 850 00:39:27,760 --> 00:39:28,296 Haha! 851 00:39:28,296 --> 00:39:28,796 Ya. 852 00:39:28,796 --> 00:39:30,460 853 00:39:30,460 --> 00:39:34,066 >> Jadi aku hanya akan sangat cepat pergi melalui variabel, loop, conditional, 854 00:39:34,066 --> 00:39:35,440 dan sedikit pada kompilator. 855 00:39:35,440 --> 00:39:38,570 Jika Anda memiliki pertanyaan di setiap saat, silahkan menghentikan saya. 856 00:39:38,570 --> 00:39:42,750 Orang-orang ini akan mengingatkan saya untuk mengulang pertanyaan Anda dalam kasus saya lupa, 857 00:39:42,750 --> 00:39:44,210 tetapi tidak boleh terlalu buruk. 858 00:39:44,210 --> 00:39:45,850 >> Jadi variabel, ya. 859 00:39:45,850 --> 00:39:48,060 Kami tidak memiliki salah satu dari Anda Potongan awal di sini. 860 00:39:48,060 --> 00:39:50,440 Saya yakin sebagian besar dari Anda, jika Anda punya semacam permainan 861 00:39:50,440 --> 00:39:53,810 yang Anda buat dengan Scratch, Anda harus untuk melacak sesuatu seperti skor, 862 00:39:53,810 --> 00:39:55,870 atau waktu, atau sesuatu seperti itu. 863 00:39:55,870 --> 00:39:58,080 Jadi mereka oranye terang potongan yang kita lihat di sana 864 00:39:58,080 --> 00:40:02,630 hanya berupa Scratch dari variabel, dan Anda pasti akan 865 00:40:02,630 --> 00:40:04,640 akan menggunakan variabel seluruh program Anda. 866 00:40:04,640 --> 00:40:07,350 Jika Anda tidak, aku tidak benar-benar Pastikan apa yang Anda lakukan. 867 00:40:07,350 --> 00:40:09,000 868 00:40:09,000 --> 00:40:12,215 >> Tapi bagaimanapun, hal yang besar, mendefinisikan variabel. 869 00:40:12,215 --> 00:40:13,630 870 00:40:13,630 --> 00:40:16,970 Dengan C setiap variabel memiliki untuk memiliki tipe menyatakan, 871 00:40:16,970 --> 00:40:22,090 jadi saya memberi Anda sangat umum satu di atas. 872 00:40:22,090 --> 00:40:24,045 Jadi Anda akan memiliki Anda ketik dan kemudian apa pun 873 00:40:24,045 --> 00:40:25,420 Anda memutuskan untuk memanggil variabel Anda. 874 00:40:25,420 --> 00:40:27,500 875 00:40:27,500 --> 00:40:29,680 Jadi dalam hal ini, jenis dalam daftar variabel Anda. 876 00:40:29,680 --> 00:40:31,400 >> Kami memiliki tiga contoh. 877 00:40:31,400 --> 00:40:34,439 Char beberapa grade, dari A, yang adalah apa yang 878 00:40:34,439 --> 00:40:36,230 Saya yakin Anda semua ingin untuk masuk kelas ini. 879 00:40:36,230 --> 00:40:37,380 880 00:40:37,380 --> 00:40:40,670 Anda dapat menentukan beberapa variabel pada satu baris 881 00:40:40,670 --> 00:40:43,880 asalkan mereka semua jenis yang sama, yang merupakan contoh kedua kami ada 882 00:40:43,880 --> 00:40:46,409 di mana Anda memiliki tiga variabel, x, y, dan z. 883 00:40:46,409 --> 00:40:47,200 Mereka semua mengapung. 884 00:40:47,200 --> 00:40:49,160 885 00:40:49,160 --> 00:40:53,250 Dan kemudian Anda juga bisa, dalam hal ini yang terakhir Misalnya dengan skor int dan nomor 886 00:40:53,250 --> 00:40:56,510 tim, Anda bisa menginisialisasi mereka di sana. 887 00:40:56,510 --> 00:41:01,270 >> Jadi, dalam contoh tengah di mana kita hanya float x, y, dan z, 888 00:41:01,270 --> 00:41:02,730 tersebut tidak diinisialisasi belum. 889 00:41:02,730 --> 00:41:04,140 Mereka tidak memiliki nilai. 890 00:41:04,140 --> 00:41:05,600 Atau mereka memiliki nilai sampah. 891 00:41:05,600 --> 00:41:07,370 892 00:41:07,370 --> 00:41:10,790 Dan jika Anda mencoba dan menggunakannya, compiler akan berteriak pada Anda. 893 00:41:10,790 --> 00:41:14,727 Anda harus baik menyatakan dan menginisialisasi variabel Anda. 894 00:41:14,727 --> 00:41:16,310 Jadi dalam satu terakhir ini, kami melakukan keduanya. 895 00:41:16,310 --> 00:41:19,320 Kami menyatakan variabel dari skor dan jumlah tim, 896 00:41:19,320 --> 00:41:24,134 dan kami menginisialisasi mereka, memberikan mereka nilai awal mereka 7 dan 4 897 00:41:24,134 --> 00:41:24,675 masing-masing. 898 00:41:24,675 --> 00:41:26,310 899 00:41:26,310 --> 00:41:27,190 Keren. 900 00:41:27,190 --> 00:41:28,550 Semua orang baik? 901 00:41:28,550 --> 00:41:29,470 Mengagumkan. 902 00:41:29,470 --> 00:41:31,690 >> OK, jadi beberapa konvensi. 903 00:41:31,690 --> 00:41:35,965 Jika kalian telah membaca melalui gaya 50, ini 904 00:41:35,965 --> 00:41:39,510 hanya hal-hal yang kami ingin untuk Anda untuk menerapkan gaya Anda. 905 00:41:39,510 --> 00:41:41,230 Nama begitu berarti. 906 00:41:41,230 --> 00:41:45,700 Jika Anda mulai menelepon hal-hal hanya x, y, dan z, terutama 907 00:41:45,700 --> 00:41:47,902 ketika Anda masuk ke lebih panjang program, Anda 908 00:41:47,902 --> 00:41:49,610 mungkin akan membingungkan diri sendiri dan menjadi 909 00:41:49,610 --> 00:41:52,930 seperti apa variabel ini mengacu. 910 00:41:52,930 --> 00:41:55,880 Aku tidak tahu apa artinya ini. 911 00:41:55,880 --> 00:41:59,280 >> Jadi, jika itu dimaksudkan untuk menahan skor, sebut saja mencetak gol. 912 00:41:59,280 --> 00:42:05,720 Jika itu dimaksudkan untuk memegang beberapa jawaban atau hasil, memberikan nama seperti itu. 913 00:42:05,720 --> 00:42:09,920 Untuk loop, yang kita akan masuk ke dalam slide berikutnya, 914 00:42:09,920 --> 00:42:12,985 variabel huruf-baik saja. 915 00:42:12,985 --> 00:42:16,033 916 00:42:16,033 --> 00:42:18,449 ROB Bowden: I, j, dan k adalah hanya konvensi untuk untuk loop 917 00:42:18,449 --> 00:42:22,050 bahwa setiap orang mengharapkan mereka disebut i, j, dan k. 918 00:42:22,050 --> 00:42:26,890 Anda dapat menghubungi them-- saya melihat baris kolom atau baris panggilan kadang-kadang 919 00:42:26,890 --> 00:42:29,450 untuk dua loop bersarang, dan itu juga jenis standar. 920 00:42:29,450 --> 00:42:31,450 Tapi i dan j benar-benar dipahami. 921 00:42:31,450 --> 00:42:33,670 >> ALLISON: Yeah, i dan j Anda benar-benar baik-baik saja. 922 00:42:33,670 --> 00:42:36,250 Demi kejelasan seperti di beberapa P set Anda, 923 00:42:36,250 --> 00:42:39,745 mungkin masuk akal untuk memiliki lebih hal deskriptif di sana hanya 924 00:42:39,745 --> 00:42:40,920 untuk melacak itu. 925 00:42:40,920 --> 00:42:45,100 Tapi saya pikir i, j, dan k saya pikir sebagian besar dari kita semua digunakan. 926 00:42:45,100 --> 00:42:46,890 927 00:42:46,890 --> 00:42:50,340 >> ROB Bowden: Dengan ini konvensi, sehingga gaya adalah penting. 928 00:42:50,340 --> 00:42:53,520 Ini adalah salah satu dari empat sumbu di mana Anda dinilai, 929 00:42:53,520 --> 00:42:58,110 dan hal tersebut sangat mudah untuk hanya pergi P Anda ditetapkan pada akhir dan pastikan 930 00:42:58,110 --> 00:42:59,770 bahwa tidak ada kesalahan gaya. 931 00:42:59,770 --> 00:43:01,742 Jadi pastikan Anda tabbing dengan benar. 932 00:43:01,742 --> 00:43:03,200 Pastikan variabel diberi nama. 933 00:43:03,200 --> 00:43:04,450 Tinggalkan beberapa komentar. 934 00:43:04,450 --> 00:43:06,677 Hal ini sangat mudah untuk mendapatkan titik-titik. 935 00:43:06,677 --> 00:43:09,510 Anda tidak harus berpikir tentang apa pun untuk mendapatkan titik-titik. 936 00:43:09,510 --> 00:43:11,093 Anda tidak harus mencari apa-apa. 937 00:43:11,093 --> 00:43:12,640 Hanya saja sehingga terlihat cantik. 938 00:43:12,640 --> 00:43:14,850 >> ALLISON: Pada kenyataannya, kita memiliki gaya 50, yang 939 00:43:14,850 --> 00:43:17,920 akan memberitahu Anda di mana Anda bermain-main jika Anda mengacaukan gaya 940 00:43:17,920 --> 00:43:21,180 dan akan memberitahu anda apa yang anda harus memperbaiki dan bagaimana Anda harus memperbaikinya. 941 00:43:21,180 --> 00:43:23,900 Hal ini juga hanya baik untuk menyebutkan bahwa itu kebijakan program 942 00:43:23,900 --> 00:43:27,200 bahwa jika Anda berada di kantor jam dan kode Anda berantakan, 943 00:43:27,200 --> 00:43:30,200 kita dapat menolak untuk membantu Anda sampai terlihat lebih baik. 944 00:43:30,200 --> 00:43:34,310 Jadi mulai benar, menjaga gaya konsisten, 945 00:43:34,310 --> 00:43:37,100 Anda juga hanya akan membuat hidup Anda jauh lebih mudah ketika 946 00:43:37,100 --> 00:43:38,730 Anda mencoba untuk pergi melalui debug. 947 00:43:38,730 --> 00:43:41,510 Jika Anda mencoba untuk mencari tahu di mana kau hilang kurung kurawal 948 00:43:41,510 --> 00:43:44,890 dan mereka adalah seluruh tempat, Anda hanya membuat hidup Anda sendiri lebih keras. 949 00:43:44,890 --> 00:43:47,217 Jadi konsisten dengan gaya. 950 00:43:47,217 --> 00:43:48,800 Aku berjanji itu akan membuat hidup Anda lebih mudah. 951 00:43:48,800 --> 00:43:50,330 Ini akan membuat hidup kita lebih mudah. 952 00:43:50,330 --> 00:43:51,869 Semua orang akan jauh lebih bahagia. 953 00:43:51,869 --> 00:43:52,910 Dan itulah yang Anda inginkan. 954 00:43:52,910 --> 00:43:54,192 955 00:43:54,192 --> 00:43:55,650 GABRIEL: kelas Anda akan lebih tinggi. 956 00:43:55,650 --> 00:43:56,858 ALLISON: Ya, dan kelas Anda. 957 00:43:56,858 --> 00:43:58,410 958 00:43:58,410 --> 00:44:01,930 Jika TF Anda seperti Anda, cenderung menguntungkan. 959 00:44:01,930 --> 00:44:02,940 960 00:44:02,940 --> 00:44:05,010 Baiklah, dan kemudian hanya titik kedua di sini. 961 00:44:05,010 --> 00:44:06,300 Inisialisasi konsisten. 962 00:44:06,300 --> 00:44:09,605 Jadi seperti yang kita lihat, Anda dapat mendeklarasikan dan menginisialisasi hal. 963 00:44:09,605 --> 00:44:10,750 964 00:44:10,750 --> 00:44:13,180 Beberapa variabel pada baris yang sama. 965 00:44:13,180 --> 00:44:17,930 Satu hal yang kami ingin Anda tidak lakukan adalah untuk mendeklarasikan beberapa variabel 966 00:44:17,930 --> 00:44:21,360 dan tidak menginisialisasi mereka pada yang sama baris yang Anda menginisialisasi lain. 967 00:44:21,360 --> 00:44:23,960 >> Jadi dalam kasus yang membuat tidak masuk akal sama sekali, 968 00:44:23,960 --> 00:44:29,050 kami memiliki contoh di sini di mana kita menyatakan int 969 00:44:29,050 --> 00:44:31,180 dalam variabel perempat dimes dan uang, 970 00:44:31,180 --> 00:44:34,214 tapi perempat dan uang tidak memiliki nilai awal. 971 00:44:34,214 --> 00:44:36,630 Kami belum diinisialisasi mereka, tapi tepat di tengah ada 972 00:44:36,630 --> 00:44:38,600 kita sudah diinisialisasi sen menjadi 0. 973 00:44:38,600 --> 00:44:41,650 Jadi baik dilakukan perempat, dime, sen. 974 00:44:41,650 --> 00:44:43,170 Atau melakukan perempat sama 0. 975 00:44:43,170 --> 00:44:43,930 Dime sama 0. 976 00:44:43,930 --> 00:44:46,810 Uang sama 0, atau apa pun nilai-nilai awal yang. 977 00:44:46,810 --> 00:44:49,800 >> Hal besar dengan gaya, konsisten. 978 00:44:49,800 --> 00:44:51,050 Jika ragu, konsisten. 979 00:44:51,050 --> 00:44:52,129 980 00:44:52,129 --> 00:44:53,420 Tetapi mengikuti panduan gaya kita juga. 981 00:44:53,420 --> 00:44:54,710 982 00:44:54,710 --> 00:44:55,317 Keren. 983 00:44:55,317 --> 00:44:56,150 Semua orang baik di sana? 984 00:44:56,150 --> 00:44:57,566 >> AUDIENCE: Di mana panduan gaya? 985 00:44:57,566 --> 00:45:00,800 ALLISON: Panduan Gaya adalah on-- apa website? 986 00:45:00,800 --> 00:45:03,950 >> GABRIEL: Saya pikir itu manual.cs50.net/-- 987 00:45:03,950 --> 00:45:04,575 ALLISON: Style? 988 00:45:04,575 --> 00:45:05,610 989 00:45:05,610 --> 00:45:06,390 >> GABRIEL: Style. 990 00:45:06,390 --> 00:45:06,920 Yep. 991 00:45:06,920 --> 00:45:07,520 >> ALLISON: Ya. 992 00:45:07,520 --> 00:45:10,150 Jadi pertanyaan, di mana gaya 50. 993 00:45:10,150 --> 00:45:12,250 manual.cs50.net/style. 994 00:45:12,250 --> 00:45:13,639 Ya? 995 00:45:13,639 --> 00:45:16,880 >> AUDIENCE: Jika kita mendefinisikan variabel, apakah OK 996 00:45:16,880 --> 00:45:28,145 jika kita menempatkan seperti [tak terdengar] seperti Rata-int dan kemudian int gol. 997 00:45:28,145 --> 00:45:29,873 998 00:45:29,873 --> 00:45:35,100 Jadi akan Anda katakan bahwa sekarang kita sudah harus mendefinisikan mereka bersama-sama? 999 00:45:35,100 --> 00:45:37,640 >> ALLISON: Jadi pertanyaan, harus Anda memiliki kode berlebihan 1000 00:45:37,640 --> 00:45:40,940 ketika Anda mendefinisikan variabel seperti int skor dan 1001 00:45:40,940 --> 00:45:43,239 pada baris int pertandingan berikutnya? 1002 00:45:43,239 --> 00:45:46,030 ROB Bowden: Ada pasti kasus di mana kode berlebihan adalah buruk. 1003 00:45:46,030 --> 00:45:47,738 Saya tidak akan mempertimbangkan bahwa kode berlebihan. 1004 00:45:47,738 --> 00:45:50,970 Aku hampir tidak pernah menyatakan beberapa variabel pada baris yang sama pernah. 1005 00:45:50,970 --> 00:45:53,736 Dan jika ada, itu karena biasanya saya meninggalkan semacam komentar 1006 00:45:53,736 --> 00:45:55,235 menjelaskan apa variabel adalah untuk. 1007 00:45:55,235 --> 00:45:57,582 Jadi saya akan mengatakan int skor slash slash. 1008 00:45:57,582 --> 00:45:59,350 Melacak apa pun. 1009 00:45:59,350 --> 00:46:00,710 Secara total slash slash. 1010 00:46:00,710 --> 00:46:01,790 1011 00:46:01,790 --> 00:46:06,455 Sehingga jauh lebih kotor dengan cara itu untuk menempatkan mereka semua pada baris yang sama. 1012 00:46:06,455 --> 00:46:08,080 Aku tidak pernah menempatkan mereka pada baris yang sama. 1013 00:46:08,080 --> 00:46:10,580 >> ALLISON: Saya merasa seperti itu preferensi pribadi pada saat ini. 1014 00:46:10,580 --> 00:46:14,900 >> AUDIENCE: Apakah itu pergi untuk untuk loop dan hal-hal juga? 1015 00:46:14,900 --> 00:46:15,900 ROB Bowden: Anda suka di dalam? 1016 00:46:15,900 --> 00:46:18,282 Seperti int i sama dengan 0 koma panjang sama sesuatu? 1017 00:46:18,282 --> 00:46:19,490 Bahwa Anda tidak punya pilihan. 1018 00:46:19,490 --> 00:46:21,850 1019 00:46:21,850 --> 00:46:25,910 Dengan untuk loop inisialisasi part-- sehingga Anda mungkin hanya melihat 1020 00:46:25,910 --> 00:46:31,520 int i sama dengan 0 koma i kurang dari titik koma i plus plus apa pun. 1021 00:46:31,520 --> 00:46:33,820 Itu i int sama dengan 0, secara teknis Anda juga bisa 1022 00:46:33,820 --> 00:46:35,770 melakukan apa yang kita lihat sebelumnya dengan sintaks koma. 1023 00:46:35,770 --> 00:46:39,790 int i sama dengan 0 koma j sama dengan 3 koma k sama dengan 5. 1024 00:46:39,790 --> 00:46:41,610 1025 00:46:41,610 --> 00:46:44,320 Anda tidak punya pilihan untuk membagi yang menjadi beberapa baris, 1026 00:46:44,320 --> 00:46:46,530 dan itu standar. 1027 00:46:46,530 --> 00:46:47,780 Melihat itu ada baik-baik saja. 1028 00:46:47,780 --> 00:46:49,182 1029 00:46:49,182 --> 00:46:49,890 ALLISON: Awesome. 1030 00:46:49,890 --> 00:46:52,120 Nah, Shalawat nyaman dalam loop. 1031 00:46:52,120 --> 00:46:54,860 1032 00:46:54,860 --> 00:46:58,980 Jadi ya, di sini kita memiliki beberapa contoh dari loop bahwa kalian lihat di Scratch. 1033 00:46:58,980 --> 00:47:01,550 Dan tentu saja semua ini hanya dapat diciptakan di C. 1034 00:47:01,550 --> 00:47:04,610 Dan pada dasarnya mereka memungkinkan Anda untuk mengulang beberapa bagian dari kode 1035 00:47:04,610 --> 00:47:06,740 sampai kondisi tertentu terpenuhi, yang kita akan 1036 00:47:06,740 --> 00:47:09,198 masuk ke kanan setelah berbicara tentang loop dengan conditional. 1037 00:47:09,198 --> 00:47:11,150 1038 00:47:11,150 --> 00:47:12,570 >> Jadi kita memiliki tiga jenis utama. 1039 00:47:12,570 --> 00:47:17,500 Untuk sementara, dan dilakukan sementara, yang kita semua akan melalui sekarang. 1040 00:47:17,500 --> 00:47:18,860 Jadi yang pertama adalah untuk loop. 1041 00:47:18,860 --> 00:47:20,490 1042 00:47:20,490 --> 00:47:25,034 Jadi untuk beberapa kondisi, mengeksekusi blok kode. 1043 00:47:25,034 --> 00:47:27,200 Kami memiliki sedikit keren ini diagram di sini di bagian bawah. 1044 00:47:27,200 --> 00:47:28,230 1045 00:47:28,230 --> 00:47:32,310 Tapi pada dasarnya Anda miliki dalam untuk Anda, bahwa baris pertama, 1046 00:47:32,310 --> 00:47:34,240 Anda akan menginisialisasi variabel Anda. 1047 00:47:34,240 --> 00:47:38,260 >> Jadi seperti yang kita bicarakan, saya adalah sama dengan 0 atau i sama dengan 10. 1048 00:47:38,260 --> 00:47:40,010 Apa pun yang Anda butuhkan bahwa variabel menjadi itu 1049 00:47:40,010 --> 00:47:43,970 akan diinisialisasi di sana, menyatakan dan diinisialisasi untuk beberapa nilai. 1050 00:47:43,970 --> 00:47:46,760 Jadi kita memiliki beberapa Kondisi yang terjadi 1051 00:47:46,760 --> 00:47:48,900 menjadi memeriksa kami variabel terhadap sesuatu. 1052 00:47:48,900 --> 00:47:55,220 Jadi dalam kasus kasus yang khas di mana mungkin Anda ingin bagian kode 1053 00:47:55,220 --> 00:47:56,620 untuk mengeksekusi lima kali. 1054 00:47:56,620 --> 00:48:02,380 Sehingga kita akan memiliki int i sama dengan 0, dan kami ingin menjadi ketika saya kurang dari 5. 1055 00:48:02,380 --> 00:48:04,940 Jadi kondisi itu hanya akan memeriksa bahwa setiap kali. 1056 00:48:04,940 --> 00:48:07,120 Jika kondisi itu bernilai true, itu 1057 00:48:07,120 --> 00:48:11,162 akan menjalankan kode, yang persis apa diagram kecil ini menunjukkan. 1058 00:48:11,162 --> 00:48:12,370 1059 00:48:12,370 --> 00:48:13,639 >> Dan sehingga mengeksekusinya. 1060 00:48:13,639 --> 00:48:15,430 Itu update variabel, yang adalah apa yang kita lihat 1061 00:48:15,430 --> 00:48:21,020 di bagian terakhir dari untuk kami lingkaran inisialisasi sana. 1062 00:48:21,020 --> 00:48:22,370 1063 00:48:22,370 --> 00:48:26,030 Jadi itu hanya akan terus melakukan hal ini sampai kondisi yang tidak terpenuhi, 1064 00:48:26,030 --> 00:48:28,010 dan kemudian akan keluar loop dan terus 1065 00:48:28,010 --> 00:48:29,960 bergerak dengan sisa program anda. 1066 00:48:29,960 --> 00:48:31,320 1067 00:48:31,320 --> 00:48:33,620 Semua orang baik di sana? 1068 00:48:33,620 --> 00:48:34,440 Keren. 1069 00:48:34,440 --> 00:48:37,780 >> Jadi, inilah contoh, sangat mirip untuk sesuatu yang saya hanya berbicara tentang. 1070 00:48:37,780 --> 00:48:42,030 Jadi kita hanya ingin mencetak ini adalah CS50 10 kali. 1071 00:48:42,030 --> 00:48:44,540 Jadi Anda lihat di sini kita memiliki untuk kami, dan kemudian kami 1072 00:48:44,540 --> 00:48:47,450 menginisialisasi variabel i menjadi sama dengan 0. 1073 00:48:47,450 --> 00:48:50,610 Kondisi kita adalah memeriksa bahwa itu kurang dari 10. 1074 00:48:50,610 --> 00:48:55,210 Jadi mengevaluasi dengan benar ketika kami pertama kali mulai, dan kemudian update variabel kami 1075 00:48:55,210 --> 00:48:58,985 setiap kali itu benar-benar mengeksekusi dan print ini CS50. 1076 00:48:58,985 --> 00:49:00,510 1077 00:49:00,510 --> 00:49:02,180 Dan akan berakhir setelah 10 kali. 1078 00:49:02,180 --> 00:49:03,190 1079 00:49:03,190 --> 00:49:04,070 Keren. 1080 00:49:04,070 --> 00:49:07,130 >> Jadi sementara loop berikutnya. 1081 00:49:07,130 --> 00:49:12,400 Dan seperti yang Anda lihat di sini, kita hanya perlu beberapa saat pertanyaan condition-- ini? 1082 00:49:12,400 --> 00:49:15,238 >> AUDIENCE: Bagaimana saya bisa melompat sebenarnya hanya tidak satu nomor, 1083 00:49:15,238 --> 00:49:19,030 tapi dua angka [tidak terdengar] i plus plus plus? 1084 00:49:19,030 --> 00:49:23,390 >> ALLISON: Jadi pertanyaannya adalah bagaimana Anda bisa memperbarui variabel Anda dengan lebih dari satu 1085 00:49:23,390 --> 00:49:24,070 pada suatu waktu. 1086 00:49:24,070 --> 00:49:26,860 Jadi saya plus plus akan Update per satu setiap kali. 1087 00:49:26,860 --> 00:49:32,310 Jika Anda ingin memperbaruinya dengan dua, Anda bisa melakukan i ditambah sama 2. 1088 00:49:32,310 --> 00:49:34,526 >> ROB Bowden: Apakah Anda melihat ditambah sama dalam kuliah belum? 1089 00:49:34,526 --> 00:49:35,442 >> AUDIENCE: [tak terdengar]. 1090 00:49:35,442 --> 00:49:37,440 1091 00:49:37,440 --> 00:49:42,110 >> ALLISON: Ini secara efektif hal yang sama seperti saya sama i ditambah 2. 1092 00:49:42,110 --> 00:49:46,130 Jadi itu akan mengambil dan memperbaruinya dengan dua setiap kali. 1093 00:49:46,130 --> 00:49:49,432 Ditambah sederajat hanya sesuatu kita sebut gula sintaksis. 1094 00:49:49,432 --> 00:49:52,390 ROB Bowden: Ya, mereka ada untuk hampir semua operator aritmatika. 1095 00:49:52,390 --> 00:49:55,830 Kali jadi aku sama dengan akan menggandakan jumlah tersebut. 1096 00:49:55,830 --> 00:50:02,590 j membagi sama 3 adalah sama sebagai j sama j dibagi dengan 3. 1097 00:50:02,590 --> 00:50:07,399 >> ALLISON: Atau dikurangi sama 2 akan pengurangan i oleh dua setiap kali. 1098 00:50:07,399 --> 00:50:08,565 ROB Bowden: Bahkan equals mod. 1099 00:50:08,565 --> 00:50:09,690 1100 00:50:09,690 --> 00:50:13,270 Anda belum melihat operator bitwise, tapi sisipan sama dan ampersand sama, 1101 00:50:13,270 --> 00:50:14,560 semua orang ada. 1102 00:50:14,560 --> 00:50:19,480 >> ALLISON: Jadi banyak kali, terutama dengan pasangan pertama Anda dari P set, 1103 00:50:19,480 --> 00:50:22,527 Anda akan mungkin incrementing oleh satu, jadi saya plus plus, j plus plus 1104 00:50:22,527 --> 00:50:24,610 semua hal yang Anda akan untuk biasanya akan menggunakan. 1105 00:50:24,610 --> 00:50:28,240 Tapi itu kondisi pembaruan sepenuhnya dalam kendali Anda. 1106 00:50:28,240 --> 00:50:32,310 Anda dapat memperbaruinya dengan pertambahan apapun atau dengan cara apa pun yang Anda memutuskan untuk. 1107 00:50:32,310 --> 00:50:33,389 1108 00:50:33,389 --> 00:50:35,680 Mungkin Anda bahkan ingin menjadi nomor acak kadang-kadang. 1109 00:50:35,680 --> 00:50:37,180 1110 00:50:37,180 --> 00:50:39,580 Tapi ya, ada banyak hal yang bisa dilakukan dengan itu. 1111 00:50:39,580 --> 00:50:41,280 Anda tidak dibatasi untuk i plus plus. 1112 00:50:41,280 --> 00:50:44,400 >> ROB Bowden: Asal Anda tahu itu ada, itu juga 1113 00:50:44,400 --> 00:50:46,960 ada dalam bentuk lain, plus plus i. 1114 00:50:46,960 --> 00:50:51,410 Jadi jika Anda pernah mencari online dan kebetulan melihat plus plus i, 1115 00:50:51,410 --> 00:50:52,870 cukup banyak berarti hal yang sama. 1116 00:50:52,870 --> 00:50:54,377 1117 00:50:54,377 --> 00:50:54,960 ALLISON: Cool. 1118 00:50:54,960 --> 00:50:56,070 1119 00:50:56,070 --> 00:50:56,740 Baik? 1120 00:50:56,740 --> 00:50:57,240 Mengagumkan. 1121 00:50:57,240 --> 00:50:59,190 1122 00:50:59,190 --> 00:50:59,990 Jadi sementara loop. 1123 00:50:59,990 --> 00:51:01,160 1124 00:51:01,160 --> 00:51:02,570 Sangat mirip. 1125 00:51:02,570 --> 00:51:03,737 Anda memiliki beberapa kondisi. 1126 00:51:03,737 --> 00:51:05,820 Hal utama untuk melihat di sini adalah bukan memiliki 1127 00:51:05,820 --> 00:51:08,540 tiga bagian yang berbeda untuk mengatur, kita memiliki satu. 1128 00:51:08,540 --> 00:51:11,090 Kami hanya memiliki beberapa kondisi yang sedang diperiksa. 1129 00:51:11,090 --> 00:51:14,920 Dan dengan cara yang sama, asalkan Kondisi yang bernilai true, 1130 00:51:14,920 --> 00:51:16,840 kode Anda akan berjalan. 1131 00:51:16,840 --> 00:51:18,870 Dan jika itu palsu, akan berakhir, bergerak 1132 00:51:18,870 --> 00:51:21,930 ke bagian selanjutnya dari program anda. 1133 00:51:21,930 --> 00:51:25,780 Jadi ini adalah jenis like-- apa contoh yang baik untuk memeriksa 1134 00:51:25,780 --> 00:51:27,215 untuk beberapa kondisi normal? 1135 00:51:27,215 --> 00:51:29,402 1136 00:51:29,402 --> 00:51:30,235 GABRIEL: Sementara benar. 1137 00:51:30,235 --> 00:51:32,110 ALLISON: Anda bisa melakukan sementara benar. 1138 00:51:32,110 --> 00:51:33,510 Nah, 1 sama dengan 1. 1139 00:51:33,510 --> 00:51:34,970 1140 00:51:34,970 --> 00:51:37,642 >> ROB Bowden: Anda dapat melakukan while-- hanya daripada menggunakan untuk loop, 1141 00:51:37,642 --> 00:51:39,600 Anda selalu dapat kode untuk loop dalam loop sementara, 1142 00:51:39,600 --> 00:51:42,600 jadi saya lebih besar dari 0 atau sementara aku kurang dari 10. 1143 00:51:42,600 --> 00:51:45,200 1144 00:51:45,200 --> 00:51:46,010 >> ALLISON: Awesome. 1145 00:51:46,010 --> 00:51:50,640 Dan kemudian kami telah lakukan sementara loop, yang sangat bagus untuk pengguna validasi, di mana 1146 00:51:50,640 --> 00:51:55,370 Anda ingin mendapatkan sesuatu dari pengguna Anda, melihat apakah itu valid, 1147 00:51:55,370 --> 00:51:57,060 dan kemudian melanjutkan dari sana. 1148 00:51:57,060 --> 00:52:04,000 Jadi salah satu hal yang perlu diketahui adalah dengan lakukan sementara adalah bahwa hal itu akan mengeksekusi, 1149 00:52:04,000 --> 00:52:08,000 dan kemudian akan mengeksekusi kembali jika kondisi ini terpenuhi. 1150 00:52:08,000 --> 00:52:11,240 >> Jadi mungkin cara terbaik untuk melakukan hal ini hanya untuk melihat contoh di sini. 1151 00:52:11,240 --> 00:52:14,620 Jadi seperti yang saya sebutkan, pengguna validasi benar-benar useful-- 1152 00:52:14,620 --> 00:52:17,520 atau melakukan sesekali benar-benar berguna dengan validasi pengguna. 1153 00:52:17,520 --> 00:52:19,730 Jadi ini hanya akan untuk kembali meminta beberapa pengguna 1154 00:52:19,730 --> 00:52:23,640 sampai mereka masukkan angka positif, yang mungkin berguna untuk P setel 1155 00:52:23,640 --> 00:52:24,190 minggu ini. 1156 00:52:24,190 --> 00:52:25,850 1157 00:52:25,850 --> 00:52:29,480 Dan dalam hal ini, ketika kita awalnya menjalankan program ini, 1158 00:52:29,480 --> 00:52:32,260 itu akan mencetak masukkan angka positif. 1159 00:52:32,260 --> 00:52:34,810 Ini akan mendapatkan beberapa input dari user, 1160 00:52:34,810 --> 00:52:38,320 dan kemudian itu akan memeriksa bahwa masukan terhadap kondisi 1161 00:52:38,320 --> 00:52:39,500 bahwa Anda telah ditetapkan untuk itu. 1162 00:52:39,500 --> 00:52:41,030 >> Jadi dalam hal ini itu akan memeriksa. 1163 00:52:41,030 --> 00:52:44,190 Itu akan berkata, OK, adalah masukan kami negatif, 1164 00:52:44,190 --> 00:52:47,175 atau itu 0 atau negatif, yang akan menjadi tidak valid. 1165 00:52:47,175 --> 00:52:48,300 Jadi itu akan kembali prompt. 1166 00:52:48,300 --> 00:52:50,280 1167 00:52:50,280 --> 00:52:50,780 Pertanyaan? 1168 00:52:50,780 --> 00:52:54,720 >> AUDIENCE: Apakah ini sama maka sebagai while jika Anda hanya menyalin kode yang 1169 00:52:54,720 --> 00:52:56,680 dan meletakkannya [tak terdengar] while loop? 1170 00:52:56,680 --> 00:52:59,620 1171 00:52:59,620 --> 00:53:05,160 >> ALLISON: Jadi pertanyaan itu akan ini sama dengan hanya sementara 1172 00:53:05,160 --> 00:53:08,570 lingkaran jika kita hanya salin while loop di atas. 1173 00:53:08,570 --> 00:53:12,440 Jadi dalam hal ini, loop sementara Anda akan memeriksa kondisi pertama. 1174 00:53:12,440 --> 00:53:15,300 Jadi dalam hal ini, jika kita mencoba menulis hanya sebagai loop sementara, 1175 00:53:15,300 --> 00:53:18,010 itu akan mengatakan saat input kurang dari satu. 1176 00:53:18,010 --> 00:53:20,801 Tapi kita tidak memiliki masukan untuk itu. 1177 00:53:20,801 --> 00:53:24,238 >> AUDIENCE: Jika Anda [tidak terdengar] while termasuk kode ini, 1178 00:53:24,238 --> 00:53:28,166 tapi kemudian Anda diatasi kode di atas loop sementara juga. 1179 00:53:28,166 --> 00:53:31,052 Anda hanya memiliki kode ini [Tak terdengar] while loop. 1180 00:53:31,052 --> 00:53:32,760 ALLISON: Akan hal yang sama, ya. 1181 00:53:32,760 --> 00:53:37,110 Jadi Anda hanya bisa write-- alih-alih memiliki ya do--. 1182 00:53:37,110 --> 00:53:37,976 1183 00:53:37,976 --> 00:53:39,350 GABRIEL: Tapi itu lebih elegan. 1184 00:53:39,350 --> 00:53:41,020 ALLISON: Ya, itu lebih elegan. 1185 00:53:41,020 --> 00:53:44,560 Anda bisa mendapatkan ke dalam desain dan yang lainnya, tapi ya, Anda benar-benar bisa melakukan itu. 1186 00:53:44,560 --> 00:53:45,850 1187 00:53:45,850 --> 00:53:47,072 Ada pertanyaan lain? 1188 00:53:47,072 --> 00:53:49,240 1189 00:53:49,240 --> 00:53:50,250 OK, keren. 1190 00:53:50,250 --> 00:53:55,540 >> Jadi kami sudah bicara banyak tentang kondisi dengan semua loop ini yang kita miliki, 1191 00:53:55,540 --> 00:53:58,615 jadi kita benar-benar mendapatkan ke kondisi dalam ekspresi Boolean. 1192 00:53:58,615 --> 00:53:59,990 1193 00:53:59,990 --> 00:54:03,440 Sekali lagi, Anda menggunakan ini di C, jadi hanya semacam transisi 1194 00:54:03,440 --> 00:54:06,050 dari antarmuka grafis lebih untuk benar-benar coding. 1195 00:54:06,050 --> 00:54:07,480 1196 00:54:07,480 --> 00:54:09,100 >> Cool, yang begitu besar, jika. 1197 00:54:09,100 --> 00:54:11,130 1198 00:54:11,130 --> 00:54:17,070 Pada dasarnya hanya memungkinkan kita untuk memperkenalkan beberapa logika ke dalam program dan kami cek 1199 00:54:17,070 --> 00:54:17,790 kondisi sys. 1200 00:54:17,790 --> 00:54:22,150 Jadi dalam hal ini, OK, adalah n lebih besar dari 0? 1201 00:54:22,150 --> 00:54:24,070 Ya itu, sehingga Anda dapat mengeksekusi ini. 1202 00:54:24,070 --> 00:54:28,060 Ini hanya memeriksa beberapa Kondisi yang Anda sudah 1203 00:54:28,060 --> 00:54:33,565 mengatur, yang saya pikir kita semua nyaman dengan memeriksa kondisi. 1204 00:54:33,565 --> 00:54:35,975 1205 00:54:35,975 --> 00:54:36,475 Keren. 1206 00:54:36,475 --> 00:54:38,760 1207 00:54:38,760 --> 00:54:44,530 Jadi, jika yang lain adalah satu lagi Anda, Anda bisa mengatakan OK, jika hal ini benar, 1208 00:54:44,530 --> 00:54:46,150 melakukan hal pertama ini. 1209 00:54:46,150 --> 00:54:48,720 Kalau tidak, aku ingin kau default dan melakukan sesuatu yang lain. 1210 00:54:48,720 --> 00:54:51,977 1211 00:54:51,977 --> 00:54:55,060 Seperti dalam kasus ini, Anda juga memilih angka positif atau angka negatif. 1212 00:54:55,060 --> 00:54:56,500 Anda hanya memiliki dua pilihan. 1213 00:54:56,500 --> 00:54:59,550 Anda perlu untuk mengeksekusi tanpa apa input pengguna Anda. 1214 00:54:59,550 --> 00:55:02,920 Jadi Anda bisa mengatakan dengan baik, itu lebih besar dari 0? 1215 00:55:02,920 --> 00:55:03,480 Keren. 1216 00:55:03,480 --> 00:55:04,480 Mencetak angka positif. 1217 00:55:04,480 --> 00:55:06,153 Jika tidak, cetak negatif. 1218 00:55:06,153 --> 00:55:06,960 Semua orang baik? 1219 00:55:06,960 --> 00:55:14,920 >> Dan kemudian satu hal untuk mengenali adalah bahwa jika jika kondisi terpenuhi, 1220 00:55:14,920 --> 00:55:16,650 lain tidak akan pernah juga mengeksekusi. 1221 00:55:16,650 --> 00:55:19,210 Hanya salah satu dari ini akan mengeksekusi pada suatu waktu. 1222 00:55:19,210 --> 00:55:20,410 Jadi itu adalah trade off. 1223 00:55:20,410 --> 00:55:21,720 Anda tidak bisa memiliki keduanya. 1224 00:55:21,720 --> 00:55:23,566 Anda juga memiliki kondisi pertama. 1225 00:55:23,566 --> 00:55:25,440 Anda juga memiliki jika atau yang lain, tidak keduanya. 1226 00:55:25,440 --> 00:55:26,849 1227 00:55:26,849 --> 00:55:28,890 Yang kemudian dapat membuat hal-hal bahkan lebih rumit, 1228 00:55:28,890 --> 00:55:31,060 karena dapat Anda lakukan jika, lain itu, dan kemudian yang lain. 1229 00:55:31,060 --> 00:55:32,810 Jadi dalam hal ini, kita memiliki tiga kondisi. 1230 00:55:32,810 --> 00:55:34,830 1231 00:55:34,830 --> 00:55:38,370 Dan lagi, hanya satu di antaranya adalah akan berakhir dieksekusi. 1232 00:55:38,370 --> 00:55:41,030 Jadi Anda mungkin bertanya-tanya baik, bagaimana jika Anda 1233 00:55:41,030 --> 00:55:45,510 memiliki sesuatu yang dapat memenuhi dua ini. 1234 00:55:45,510 --> 00:55:49,520 Mungkin apa pun yang Anda memasukkan memenuhi kedua kondisi 1235 00:55:49,520 --> 00:55:51,811 karena jika dan lain jika. 1236 00:55:51,811 --> 00:55:53,060 Hanya hal yang akan menjalankan 1237 00:55:53,060 --> 00:55:56,240 >> ALLISON: Segera setelah ia menemukan sesuatu bahwa memenuhi syarat untuk itu 1238 00:55:56,240 --> 00:55:59,790 bernilai true, itulah yang itu akan menjalankan dan tidak ada yang lain. 1239 00:55:59,790 --> 00:56:04,440 Jadi, jika Anda memiliki nomor ini antara 0 dan 5 untuk satu pertama Anda, 1240 00:56:04,440 --> 00:56:10,530 atau nomor ini antara 3 dan 5 untuk yang lain jika bagian, 1241 00:56:10,530 --> 00:56:15,550 dan Anda masukan number-- yang Kataku 0 dan 5 dan- 4. 1242 00:56:15,550 --> 00:56:18,110 Ini akan memukul pertama. 1243 00:56:18,110 --> 00:56:20,960 Ini akan mengatakan OK, ini jumlah adalah antara 0 dan 5. 1244 00:56:20,960 --> 00:56:22,480 Jalankan dan meninggalkan. 1245 00:56:22,480 --> 00:56:25,340 Tidak pernah akan memukul bahwa opsi kedua. 1246 00:56:25,340 --> 00:56:26,394 Keren? 1247 00:56:26,394 --> 00:56:27,250 Mengagumkan. 1248 00:56:27,250 --> 00:56:31,300 >> OK kami juga memiliki laporan beralih jika Anda ingin mendapatkan bahkan more-- atau maaf, 1249 00:56:31,300 --> 00:56:31,965 switch berikutnya. 1250 00:56:31,965 --> 00:56:33,540 1251 00:56:33,540 --> 00:56:34,990 Aku terlalu terburu-buru di sini. 1252 00:56:34,990 --> 00:56:36,370 1253 00:56:36,370 --> 00:56:39,210 Sekali lagi, beberapa jika blok dimana aku hanya berkata 1254 00:56:39,210 --> 00:56:45,600 adalah segera setelah Anda menemukan kondisi yang bertemu dan jika lain jika yang lain, 1255 00:56:45,600 --> 00:56:46,630 daun. 1256 00:56:46,630 --> 00:56:49,560 Jika Anda perlu memeriksa beberapa hal, Anda 1257 00:56:49,560 --> 00:56:53,000 akan ingin menggunakan karena ini itu akan memeriksa setiap waktu di sini. 1258 00:56:53,000 --> 00:56:58,060 Jadi ini akan berjalan melalui dan jika itu lebih besar dari atau sama dengan 90, 1259 00:56:58,060 --> 00:56:59,160 itu akan mencetak itu. 1260 00:56:59,160 --> 00:57:00,530 1261 00:57:00,530 --> 00:57:03,600 Dan itu akan berjalan melalui dan memeriksa setiap satu dari ini. 1262 00:57:03,600 --> 00:57:06,444 >> AUDIENCE: Jadi ini akan menjadi lebih dari kereta [tak terdengar]. 1263 00:57:06,444 --> 00:57:07,735 Apakah ini menjadi seperti [tak terdengar]? 1264 00:57:07,735 --> 00:57:10,990 1265 00:57:10,990 --> 00:57:15,740 >> ALLISON: Pertanyaannya adalah akan ini kereta atau apakah ini melakukan apa yang Anda inginkan. 1266 00:57:15,740 --> 00:57:19,830 Itu benar-benar tergantung pada apa Anda inginkan dari program Anda. 1267 00:57:19,830 --> 00:57:22,291 >> AUDIENCE: Maksud saya seperti jika Anda menempatkan 90 di. 1268 00:57:22,291 --> 00:57:23,290 ALLISON: Jika Anda menempatkan 90-- 1269 00:57:23,290 --> 00:57:24,206 AUDIENCE: [tak terdengar]. 1270 00:57:24,206 --> 00:57:25,584 1271 00:57:25,584 --> 00:57:27,250 GABRIEL: Anda akan mendapatkan dua hal. 1272 00:57:27,250 --> 00:57:28,916 ALLISON: Anda akan mendapatkan dua hal. 1273 00:57:28,916 --> 00:57:29,420 Ya, dua. 1274 00:57:29,420 --> 00:57:32,420 1275 00:57:32,420 --> 00:57:33,920 >> ROB Bowden: Dua? 1276 00:57:33,920 --> 00:57:34,580 >> ALLISON: No. 1277 00:57:34,580 --> 00:57:35,288 >> ROB Bowden: Empat. 1278 00:57:35,288 --> 00:57:37,070 1279 00:57:37,070 --> 00:57:40,070 Jika Anda meletakkan 90, itu akan mengatakan Anda mendapat nilai A, Anda punya B, Anda punya C, 1280 00:57:40,070 --> 00:57:40,545 Anda punya D. 1281 00:57:40,545 --> 00:57:41,461 >> AUDIENCE: [tak terdengar]. 1282 00:57:41,461 --> 00:57:42,196 1283 00:57:42,196 --> 00:57:42,820 ALLISON: Benar. 1284 00:57:42,820 --> 00:57:44,778 Jadi saya tergantung pada apa yang Anda inginkan dari program yang anda. 1285 00:57:44,778 --> 00:57:47,050 Kadang-kadang Anda perlu memeriksa beberapa hal. 1286 00:57:47,050 --> 00:57:49,970 1287 00:57:49,970 --> 00:57:55,270 Anda akan mendapatkan banyak lebih dalam apa desain yang baik adalah seperti yang Anda maju. 1288 00:57:55,270 --> 00:57:57,090 Hal yang penting untuk menyadari adalah bahwa ini 1289 00:57:57,090 --> 00:58:01,090 akan memeriksa keempat kondisi di sini. 1290 00:58:01,090 --> 00:58:05,860 Sedangkan jika ini adalah sebuah jika lain jika lain jika yang lain, itu akan memukul bahwa kasus pertama, 1291 00:58:05,860 --> 00:58:07,950 itu akan mencetak Anda mendapat nilai A dan dilakukan. 1292 00:58:07,950 --> 00:58:10,250 >> ROB Bowden: Bahkan jika kita memutuskan untuk mengubah ini ke jika 1293 00:58:10,250 --> 00:58:13,880 dan lebih besar dari atau sama dengan 90, jika dan lebih besar dari atau sama dengan 80, 1294 00:58:13,880 --> 00:58:19,710 dan kurang dari atau sama dengan 89, jika n lebih besar dari atau sama dengan 70, 1295 00:58:19,710 --> 00:58:23,830 dan n kurang dari atau sama dengan 79, sehingga akan benar. 1296 00:58:23,830 --> 00:58:27,190 Yang akan melakukan apa yang kita inginkan, tetapi masih memeriksa setiap satu itu. 1297 00:58:27,190 --> 00:58:34,050 >> Jadi sedangkan di skenario pertama, jika kita masukkan 90 dengan hanya jika lain jika lain jika, 1298 00:58:34,050 --> 00:58:37,300 dan kami masukkan 90, maka itu akan memperbaiki. 1299 00:58:37,300 --> 00:58:39,615 Ini akan memeriksa pertama satu, cetak Anda mendapat nilai A, 1300 00:58:39,615 --> 00:58:42,590 melewatkan semuanya, karena sudah menemukan satu yang bekerja. 1301 00:58:42,590 --> 00:58:46,360 Semua kasus yang saling eksklusif berdasarkan jika lain jika lain jika. 1302 00:58:46,360 --> 00:58:48,630 Sehingga akan mengeksekusi pertama jika, maka hal itu dilakukan. 1303 00:58:48,630 --> 00:58:49,790 Ini akan pergi sampai akhir. 1304 00:58:49,790 --> 00:58:52,400 >> Sedangkan jika kita mengubah ini menjadi apa yang saya 1305 00:58:52,400 --> 00:58:54,204 mengatakan dengan kurang dari atau sama dengan 89. 1306 00:58:54,204 --> 00:58:55,620 Ini akan memeriksa yang pertama. 1307 00:58:55,620 --> 00:58:56,560 Ini akan mencetak. 1308 00:58:56,560 --> 00:58:58,010 Ini akan memeriksa kedua. 1309 00:58:58,010 --> 00:58:59,010 Ini tidak akan dicetak. 1310 00:58:59,010 --> 00:58:59,910 Periksa ketiga. 1311 00:58:59,910 --> 00:59:00,620 Tidak akan dicetak. 1312 00:59:00,620 --> 00:59:01,495 Periksa yang keempat. 1313 00:59:01,495 --> 00:59:02,420 Sekarang akan dicetak. 1314 00:59:02,420 --> 00:59:05,380 Jadi dalam hal itu, lain jika versi, karena kasus ini 1315 00:59:05,380 --> 00:59:09,120 saling eksklusif, itu lebih baik digunakan jika lain jika lain jika, 1316 00:59:09,120 --> 00:59:12,970 karena itu akan memiliki cek lebih sedikit dari kondisi 1317 00:59:12,970 --> 00:59:14,750 dari versi ini. 1318 00:59:14,750 --> 00:59:17,692 1319 00:59:17,692 --> 00:59:18,400 ALLISON: Awesome. 1320 00:59:18,400 --> 00:59:20,580 Jadi hal lain kita bisa lakukan adalah laporan beralih. 1321 00:59:20,580 --> 00:59:23,104 1322 00:59:23,104 --> 00:59:25,270 Pada dasarnya pernyataan switch mengambil di beberapa variabel, 1323 00:59:25,270 --> 00:59:28,780 dalam kasus ini itu n, dan menentukan hal untuk mengeksekusi. 1324 00:59:28,780 --> 00:59:33,106 Jadi ini juga merupakan salah satu di mana kasus Anda harus agak eksklusif. 1325 00:59:33,106 --> 00:59:35,210 1326 00:59:35,210 --> 00:59:37,940 Jadi dalam hal ini, jika kita kita mendapatkan satu, itu 1327 00:59:37,940 --> 00:59:42,270 akan mencocokkan apa pun yang variable-- nilai apapun dari n 1328 00:59:42,270 --> 00:59:48,700 adalah salah satu dari kasus-kasus ini, sehingga 1, 2, atau 3, dan mencetak garis yang sesuai. 1329 00:59:48,700 --> 00:59:51,870 >> Dan kemudian jika Anda perhatikan di sini, kami juga memiliki default, 1330 00:59:51,870 --> 00:59:54,670 yang Anda dapat dari anggap sebagai sesuatu yang lain Anda. 1331 00:59:54,670 --> 00:59:58,510 Jadi jika Anda memilih nomor lain selain 1, 2, dan 3 dalam hal ini 1332 00:59:58,510 --> 00:59:59,885 itu hanya akan mencetak valid. 1333 00:59:59,885 --> 01:00:03,690 1334 01:00:03,690 --> 01:00:08,390 Memutuskan kapan harus menggunakan seandainya dibandingkan jika elses dibandingkan switch akan 1335 01:00:08,390 --> 01:00:12,590 menjadi sesuatu yang kalian akan lihat desain bijaksana setelah Anda mulai menulis 1336 01:00:12,590 --> 01:00:15,270 program yang lebih rumit, dan tidak ada aturan yang keras dan cepat 1337 01:00:15,270 --> 01:00:16,330 kapan harus menggunakannya. 1338 01:00:16,330 --> 01:00:17,890 Itu benar-benar tergantung pada konteks Anda. 1339 01:00:17,890 --> 01:00:18,590 >> ROB Bowden: Dan untuk membuangnya di luar sana 1340 01:00:18,590 --> 01:00:20,131 karena bagian lebih nyaman. 1341 01:00:20,131 --> 01:00:20,920 1342 01:00:20,920 --> 01:00:25,053 Switch, mereka cenderung be-- sehingga Anda terbatas 1343 01:00:25,053 --> 01:00:27,430 dalam beberapa cara Anda dapat menggunakannya, karena jika, 1344 01:00:27,430 --> 01:00:30,100 kondisi bisa sangat banyak apa pun yang Anda inginkan. 1345 01:00:30,100 --> 01:00:33,410 Dengan switch kasus harus angka, 1346 01:00:33,410 --> 01:00:37,770 atau teknis mereka dapat karakter, tapi chars, seperti yang akan kita lihat, hanya angka. 1347 01:00:37,770 --> 01:00:44,250 Jadi mereka harus angka, tetapi switch benar-benar lebih efisien daripada jika 1348 01:00:44,250 --> 01:00:50,060 lain jika lain jika, karena bahkan mengambil contoh before-- baik, 1349 01:00:50,060 --> 01:00:51,486 contoh kelas tampaknya baik. 1350 01:00:51,486 --> 01:00:52,550 1351 01:00:52,550 --> 01:00:57,080 >> Nah mari kita katakan di sini, kita bukan melakukan ini sebagai jika lain jika lain jika skenario. 1352 01:00:57,080 --> 01:01:00,930 Jadi jika n sama sama dengan 1, mencetak Anda memilih jumlah yang rendah. 1353 01:01:00,930 --> 01:01:04,490 Jika lain jika n sama sama 2, Anda memilih nomor menengah. 1354 01:01:04,490 --> 01:01:06,550 Lain jika equals sama dengan 3, tinggi. 1355 01:01:06,550 --> 01:01:08,060 Lain tidak valid. 1356 01:01:08,060 --> 01:01:09,820 >> Jadi mari kita mengatakan bahwa itu skenario kami. 1357 01:01:09,820 --> 01:01:14,060 Jadi katakanlah kita masukkan 4, jadi kami berharap tidak valid. 1358 01:01:14,060 --> 01:01:17,410 Cara bahwa jika lain jika yang lain jika pendekatan yang akan bekerja adalah 1359 01:01:17,410 --> 01:01:18,740 memeriksa kondisi pertama. 1360 01:01:18,740 --> 01:01:19,776 Ini tidak puas. 1361 01:01:19,776 --> 01:01:21,150 Jadi kami memeriksa kondisi kedua. 1362 01:01:21,150 --> 01:01:21,940 Ini tidak puas. 1363 01:01:21,940 --> 01:01:23,023 Periksa kondisi ketiga. 1364 01:01:23,023 --> 01:01:23,640 Tidak puas. 1365 01:01:23,640 --> 01:01:26,650 Jadi kami pergi ke yang lain dan mencetak valid. 1366 01:01:26,650 --> 01:01:30,169 >> Cara saklar karya adalah mengkompilasi turun 1367 01:01:30,169 --> 01:01:31,960 menjadi apa yang kita akan untuk memanggil meja melompat. 1368 01:01:31,960 --> 01:01:33,180 1369 01:01:33,180 --> 01:01:37,120 Utama Gagasan ini bahwa ketika Anda memasukkan 4, 1370 01:01:37,120 --> 01:01:39,090 dapat segera pergi ke default. 1371 01:01:39,090 --> 01:01:41,460 Tidak perlu memeriksa am I kasus 1? 1372 01:01:41,460 --> 01:01:42,350 Nggak bukan itu. 1373 01:01:42,350 --> 01:01:42,850 Kasus 2? 1374 01:01:42,850 --> 01:01:43,240 Tidak. 1375 01:01:43,240 --> 01:01:43,770 Kasus 3? 1376 01:01:43,770 --> 01:01:44,270 Tidak. 1377 01:01:44,270 --> 01:01:45,090 Default. 1378 01:01:45,090 --> 01:01:47,610 OK, ini harus di mana saya inginkan, dan kemudian jalankan itu. 1379 01:01:47,610 --> 01:01:49,590 Tidak, segera melompat ke default. 1380 01:01:49,590 --> 01:01:51,900 Atau saya masukkan 2, itu segera akan pergi ke 2 1381 01:01:51,900 --> 01:01:54,060 tanpa perlu pergi melalui kasus 1. 1382 01:01:54,060 --> 01:01:57,820 >> Jadi dengan cara itu, realistis saat itu 1383 01:01:57,820 --> 01:02:00,250 tidak banyak gain efisiensi. 1384 01:02:00,250 --> 01:02:02,880 Biasanya komputer cukup cepat, dan itu tidak terlalu bagus. 1385 01:02:02,880 --> 01:02:07,270 Tapi itu adalah kasus yang switch lebih cepat. 1386 01:02:07,270 --> 01:02:10,380 Jika Anda benar-benar mencoba untuk mengoptimalkan, menggunakan switch. 1387 01:02:10,380 --> 01:02:11,980 1388 01:02:11,980 --> 01:02:12,710 >> ALLISON: Cool. 1389 01:02:12,710 --> 01:02:15,270 Dan kemudian kita memiliki operator ternary. 1390 01:02:15,270 --> 01:02:19,470 Jadi saya tahu saya sebutkan sebelumnya kata sintaksis gula. 1391 01:02:19,470 --> 01:02:24,160 Jadi itu hanya hal-hal yang membuat kode Anda jauh lebih ringkas. 1392 01:02:24,160 --> 01:02:25,590 Jadi ini adalah salah satu kasus. 1393 01:02:25,590 --> 01:02:31,430 >> Jadi operator ternary adalah tanda tanya usus seperti yang kita lihat dalam string baris 1394 01:02:31,430 --> 01:02:35,810 s sama n lebih besar dari 100 tanda tanya usus tinggi rendah. 1395 01:02:35,810 --> 01:02:41,800 Jadi pada dasarnya cara kerjanya itu n lebih besar dari 100 adalah suatu kondisi. 1396 01:02:41,800 --> 01:02:43,674 Jadi saya pikir itu bisa masuk akal. 1397 01:02:43,674 --> 01:02:44,840 Ini seperti mengajukan pertanyaan. 1398 01:02:44,840 --> 01:02:47,320 Itu mengatakan oh, adalah n lebih besar dari 100. 1399 01:02:47,320 --> 01:02:48,340 Siapa yang tahu? 1400 01:02:48,340 --> 01:02:50,750 Dan jika mengevaluasi ke benar, itu akan memberi Anda 1401 01:02:50,750 --> 01:02:54,270 hal pertama yang terdaftar di sana, yang tinggi. 1402 01:02:54,270 --> 01:02:55,840 Jika tidak itu akan memberi Anda rendah. 1403 01:02:55,840 --> 01:03:01,210 Jadi ini hanya benar-benar sederhana dan cara yang efisien untuk melakukan seperti jika lain. 1404 01:03:01,210 --> 01:03:02,780 Itu semua ini. 1405 01:03:02,780 --> 01:03:07,450 >> Dan jika kita menulis ini sebagai jika lain bersyarat, 1406 01:03:07,450 --> 01:03:12,480 itu akan jika n lebih besar dari 100, kembali tinggi. 1407 01:03:12,480 --> 01:03:14,220 Lain, kembali rendah. 1408 01:03:14,220 --> 01:03:17,570 Ini hanya jauh lebih cara ringkas menulis itu. 1409 01:03:17,570 --> 01:03:27,090 >> ROB Bowden: Jadi contoh khusus ini adalah setiap kali Anda melakukan sesuatu 1410 01:03:27,090 --> 01:03:30,190 seperti ini, ini adalah pola di mana saya menggunakan terner sangat sering. 1411 01:03:30,190 --> 01:03:31,540 1412 01:03:31,540 --> 01:03:35,460 Jadi kami belum berbicara tentang lingkup belum, tapi aku benci melihat string s titik koma. 1413 01:03:35,460 --> 01:03:39,150 Jika n lebih besar dari 100, s sama tinggi. 1414 01:03:39,150 --> 01:03:40,660 Lain, s sama rendah. 1415 01:03:40,660 --> 01:03:45,070 Jadi pola itu, lima baris kode harfiah 100% dari waktu 1416 01:03:45,070 --> 01:03:49,800 dapat ditransfer ke dalam apa adalah atas sana dengan terner a. 1417 01:03:49,800 --> 01:03:52,340 Jadi terner, satu baris kode. 1418 01:03:52,340 --> 01:03:54,640 Jika yang lain, lima. 1419 01:03:54,640 --> 01:03:56,910 Itu contoh saya menunjuk setiap saat. 1420 01:03:56,910 --> 01:03:59,250 Ini akan tempat yang bagus untuk operator ternary. 1421 01:03:59,250 --> 01:04:00,647 Ini sangat bersih. 1422 01:04:00,647 --> 01:04:01,980 Tetapi orang-orang cenderung tidak pernah menggunakannya. 1423 01:04:01,980 --> 01:04:06,140 1424 01:04:06,140 --> 01:04:08,030 >> ALLISON: Bawa pergi Gabe. 1425 01:04:08,030 --> 01:04:11,110 >> GABRIEL: Jadi sekarang kalian semua pelajari dalam kuliah minggu ini 1426 01:04:11,110 --> 01:04:13,420 bahwa segala sesuatu dalam komputer biner, kan? 1427 01:04:13,420 --> 01:04:14,570 Sama seperti lampu di sini. 1428 01:04:14,570 --> 01:04:16,492 Anda dapat berupa diaktifkan dan dinonaktifkan. 1429 01:04:16,492 --> 01:04:18,450 Dan dengan segala sesuatu, maksudku harfiah semuanya. 1430 01:04:18,450 --> 01:04:24,272 Beberapa nomor, dan karakter, dan string, dan bahkan kode yang Anda tulis ketika 1431 01:04:24,272 --> 01:04:26,480 itu akan dikompilasi ke mesin kode dan hal-hal seperti itu, 1432 01:04:26,480 --> 01:04:29,230 jadi itu semua bermuara pada 0 dan 1 '. 1433 01:04:29,230 --> 01:04:34,540 >> Dan jadi ketika kita sedang berhadapan dengan bilangan bulat, yang 1434 01:04:34,540 --> 01:04:38,000 adalah sesuatu yang secara teknis sangat sederhana, kita harus bisa melakukan hal-hal 1435 01:04:38,000 --> 01:04:40,630 seperti menambahkan mereka, yang mungkin salah satu hal yang paling sederhana 1436 01:04:40,630 --> 01:04:42,300 dapat Anda lakukan untuk dua bilangan bulat, kan? 1437 01:04:42,300 --> 01:04:47,410 Jadi penambahan dan pengurangan bekerja sama seperti bekerja dalam notasi desimal, 1438 01:04:47,410 --> 01:04:50,780 kecuali di sini itu biner, kan? 1439 01:04:50,780 --> 01:04:52,090 Jadi itu adalah di dasar dua. 1440 01:04:52,090 --> 01:04:54,070 Jadi tambahkan 1 ditambah 1. 1441 01:04:54,070 --> 01:04:57,020 Yang memberikan 0, dan 1 membawa lebih. 1442 01:04:57,020 --> 01:05:01,335 Dan hanya terus melakukan itu, Jadi sekarang muncul pertanyaan yang lebih menarik. 1443 01:05:01,335 --> 01:05:03,730 1444 01:05:03,730 --> 01:05:07,710 >> Kita tahu bagaimana untuk mewakili semua bilangan bulat positif dalam komputer, 1445 01:05:07,710 --> 01:05:09,870 tapi mari kita membuat ini latihan. 1446 01:05:09,870 --> 01:05:15,240 Berpura-pura kalian semua pada tahun 1960 atau sesuatu yang mencoba untuk membuat komputer, 1447 01:05:15,240 --> 01:05:19,950 dan Anda harus datang dari cara menyimpan minus 1, 1448 01:05:19,950 --> 01:05:22,554 misalnya, atau dikurangi bilangan bulat dalam hal ini. 1449 01:05:22,554 --> 01:05:23,470 Bagaimana Anda akan melakukannya? 1450 01:05:23,470 --> 01:05:27,820 1451 01:05:27,820 --> 01:05:29,220 Ada gagasan? 1452 01:05:29,220 --> 01:05:31,302 Hanya membuang apa padaku. 1453 01:05:31,302 --> 01:05:32,264 Ya? 1454 01:05:32,264 --> 01:05:39,480 >> AUDIENCE: [tak terdengar] menunjuk khusus jika Anda [tak terdengar]. 1455 01:05:39,480 --> 01:05:42,590 >> GABRIEL: Anda dapat menunjuk bit khusus, yang akan 0 atau 1. 1456 01:05:42,590 --> 01:05:45,590 Katakanlah satu jika itu positif dan 0 jika itu negatif. 1457 01:05:45,590 --> 01:05:48,171 Dan kemudian sisa bit hanya untuk menyimpan nomor. 1458 01:05:48,171 --> 01:05:48,670 Keren. 1459 01:05:48,670 --> 01:05:49,990 Jadi itu ide yang sangat bagus. 1460 01:05:49,990 --> 01:05:51,550 Kami memiliki, saya tidak tahu, 200. 1461 01:05:51,550 --> 01:05:54,720 Dan jika bit pertama adalah diaktifkan, maka itu ditambah 200. 1462 01:05:54,720 --> 01:05:57,270 Jika itu dimatikan, itu adalah minus 200. 1463 01:05:57,270 --> 01:05:58,380 Keren. 1464 01:05:58,380 --> 01:06:01,350 >> Hanya ada satu kecil masalah dengan hal ini, 1465 01:06:01,350 --> 01:06:05,370 yang jika kita mencoba untuk jumlah segalanya. 1466 01:06:05,370 --> 01:06:18,910 Jadi bayangkan kita memiliki 11111 sini, dan kita menjumlahkan ini dengan 00100 apa pun. 1467 01:06:18,910 --> 01:06:21,630 Jika kedua positif, itu baik-baik saja. 1468 01:06:21,630 --> 01:06:24,470 Tapi kemudian jika salah satu dari mereka adalah negatif, seperti 1469 01:06:24,470 --> 01:06:27,410 mari kita mengatakan bahwa ini sedikit di sini adalah salah satu yang bertanggung jawab 1470 01:06:27,410 --> 01:06:31,390 for-- Aku akan membuat separate-- sebuah jadi yang satu ini berarti bahwa jumlah ini di sini 1471 01:06:31,390 --> 01:06:31,970 positif. 1472 01:06:31,970 --> 01:06:34,450 Yang satu ini berarti bahwa ini nomor di sini adalah negatif, kan? 1473 01:06:34,450 --> 01:06:37,010 >> Tapi kemudian ketika Anda akan jumlah mereka, Anda 1474 01:06:37,010 --> 01:06:40,180 perlu jika pernyataan mengatakan oh jika ini adalah 0, 1475 01:06:40,180 --> 01:06:43,479 maka jumlah saya akan sesuatu yang berbeda, kan? 1476 01:06:43,479 --> 01:06:45,270 Jadi ada sedikit lebih pintar cara untuk melakukan 1477 01:06:45,270 --> 01:06:48,520 bahwa, yang disebut melengkapi dua itu. 1478 01:06:48,520 --> 01:06:52,350 Jadi pada dasarnya apa yang kita lakukan adalah kita mendefinisikan minus 1 1479 01:06:52,350 --> 01:06:57,250 menjadi hal yang jika kami menambahkan hingga 1 memberi kita 0. 1480 01:06:57,250 --> 01:06:59,470 1481 01:06:59,470 --> 01:07:00,860 Saya ulangi bahwa. 1482 01:07:00,860 --> 01:07:03,280 Jadi, mari kita mengatakan bahwa ini di sini adalah 1. 1483 01:07:03,280 --> 01:07:08,110 1484 01:07:08,110 --> 01:07:13,570 Apa hal yang secara alami dalam bilangan bulat positif 1485 01:07:13,570 --> 01:07:15,570 ditambahkan ke yang memberi kita 0? 1486 01:07:15,570 --> 01:07:19,150 1487 01:07:19,150 --> 01:07:21,030 Bagaimana jika kita mencoba untuk menambahkannya ke nomor ini? 1488 01:07:21,030 --> 01:07:22,830 1489 01:07:22,830 --> 01:07:28,032 Kita akan have-- OK, jadi mari kita tambahkan. 1490 01:07:28,032 --> 01:07:32,820 1491 01:07:32,820 --> 01:07:38,065 Kita akan memiliki 1 ditambah 1 adalah 0, dan kemudian membawa lebih. 1492 01:07:38,065 --> 01:07:40,160 1493 01:07:40,160 --> 01:07:45,490 Dan kemudian kita akan mendapatkan 0 lagi. 1494 01:07:45,490 --> 01:07:47,730 1495 01:07:47,730 --> 01:07:48,820 Aku mulai bingung. 1496 01:07:48,820 --> 01:07:51,670 Dan Anda akan mendapatkan 0 dan 0 dan 0 dan 0 dan 0 dan 0. 1497 01:07:51,670 --> 01:07:52,450 Banyak 0 ini. 1498 01:07:52,450 --> 01:07:56,240 >> Pada satu yang terakhir, kita tidak akan dapat membawa hal itu, 1499 01:07:56,240 --> 01:07:59,614 karena katakanlah kita hanya berurusan dengan satu byte, jadi hanya 8 bit. 1500 01:07:59,614 --> 01:08:02,780 Jadi apa komputer tidak secara default hanya lupa tentang itu [tidak terdengar], 1501 01:08:02,780 --> 01:08:03,279 OK? 1502 01:08:03,279 --> 01:08:04,530 1503 01:08:04,530 --> 01:08:06,880 Jadi ini adalah apa yang disebut dua komplemen. 1504 01:08:06,880 --> 01:08:15,180 Kami hanya mendefinisikan minus 1 menjadi hal di sini bahwa jika Anda menambahkan bahwa untuk 1 1505 01:08:15,180 --> 01:08:15,995 akan memberikan 0. 1506 01:08:15,995 --> 01:08:17,609 1507 01:08:17,609 --> 01:08:20,180 Dan itu cukup keren karena kita tidak benar-benar 1508 01:08:20,180 --> 01:08:24,090 perlu terlambat untuk mengimplementasikan berbagai jenis sum 1509 01:08:24,090 --> 01:08:26,590 tergantung pada apakah itu adalah negatif atau angka positif. 1510 01:08:26,590 --> 01:08:27,465 Apakah itu masuk akal? 1511 01:08:27,465 --> 01:08:28,740 1512 01:08:28,740 --> 01:08:32,370 >> Jadi satu hal yang kita lakukan di sini dalam rangka untuk mengubah 1513 01:08:32,370 --> 01:08:38,550 antara positif dan negatif integer maka kita membalik segalanya, 1514 01:08:38,550 --> 01:08:40,930 dan kemudian kita tambahkan 1 ke nomor tersebut. 1515 01:08:40,930 --> 01:08:43,140 Jika Anda mencoba untuk melakukannya sendiri pada selembar kertas, 1516 01:08:43,140 --> 01:08:44,681 Anda akan melihat bahwa masuk akal. 1517 01:08:44,681 --> 01:08:51,000 Tapi kalau aku mengambil nomor ini di sini, ini adalah lima. 1518 01:08:51,000 --> 01:08:54,859 Jadi jika saya membalik segalanya di sini, jadi 1, 1, 1, 1, 1. 1519 01:08:54,859 --> 01:08:55,880 1520 01:08:55,880 --> 01:08:57,830 Flip, flip, sandal. 1521 01:08:57,830 --> 01:09:00,130 Dan kemudian saya tambahkan 1 untuk itu. 1522 01:09:00,130 --> 01:09:02,750 Aku akan memiliki tepat minus 5. 1523 01:09:02,750 --> 01:09:03,250 OK? 1524 01:09:03,250 --> 01:09:06,220 >> Ini semacam masuk akal karena jika Anda mencoba untuk meringkas ini dengan nomor 1525 01:09:06,220 --> 01:09:10,229 yang kita miliki sebelumnya, yang was-- mari kita membalik ini lagi. 1526 01:09:10,229 --> 01:09:12,999 Itu 101 dan banyak 0 itu. 1527 01:09:12,999 --> 01:09:13,795 1528 01:09:13,795 --> 01:09:15,670 Jika Anda mencoba untuk menambahkan dua angka bersama-sama, 1529 01:09:15,670 --> 01:09:16,961 Anda akan memiliki tepat 0. 1530 01:09:16,961 --> 01:09:18,920 1531 01:09:18,920 --> 01:09:19,460 OK. 1532 01:09:19,460 --> 01:09:19,884 Ada pertanyaan? 1533 01:09:19,884 --> 01:09:20,759 >> AUDIENCE: [tidak terdengar] 1534 01:09:20,759 --> 01:09:25,790 1535 01:09:25,790 --> 01:09:27,280 >> GABRIEL: Apa maksudmu? 1536 01:09:27,280 --> 01:09:29,240 >> AUDIENCE: Negatif untuk positif [tak terdengar]. 1537 01:09:29,240 --> 01:09:33,215 >> Gabriel: Tidak, Anda flip dan Anda menambahkan 1 selalu. 1538 01:09:33,215 --> 01:09:34,081 1539 01:09:34,081 --> 01:09:34,580 Ya. 1540 01:09:34,580 --> 01:09:36,910 1541 01:09:36,910 --> 01:09:39,680 OK, jadi karakter juga dikodekan binari. 1542 01:09:39,680 --> 01:09:42,649 Kami memiliki tabel ASCII, seperti yang Anda juga lihat di kuliah, kan? 1543 01:09:42,649 --> 01:09:45,040 Jadi pada dasarnya pemetaan hal. 1544 01:09:45,040 --> 01:09:50,960 Dan di sini saya tidak bisa menekankan cukup bahwa untuk komputer, dan 65 1545 01:09:50,960 --> 01:09:52,770 secara harfiah hal yang sama. 1546 01:09:52,770 --> 01:10:03,430 Jadi jika saya menulis sesuatu seperti char c sama, saya bisa pada saat yang sama 1547 01:10:03,430 --> 01:10:06,890 hanya menulis 65 di sini, dan itu akan persis sama, OK? 1548 01:10:06,890 --> 01:10:08,470 Tidak ada perbedaan apapun. 1549 01:10:08,470 --> 01:10:12,420 >> Kami biasanya cenderung menempatkan karakter dalam variabel jenis. 1550 01:10:12,420 --> 01:10:16,770 Char, bukan karena mereka pada dasarnya dibuat untuk itu, tetapi karena 1551 01:10:16,770 --> 01:10:18,050 konvensi manusia. 1552 01:10:18,050 --> 01:10:22,410 Tapi Anda hanya dapat menangani bilangan bulat bukannya variabel tipe char, 1553 01:10:22,410 --> 01:10:23,490 dan Anda akan baik-baik saja. 1554 01:10:23,490 --> 01:10:28,410 Satu-satunya perbedaan yang sebenarnya antara c char dan i int 1555 01:10:28,410 --> 01:10:31,960 adalah bahwa int memiliki empat byte di sebagian besar sistem, sedangkan char memiliki satu byte. 1556 01:10:31,960 --> 01:10:33,070 1557 01:10:33,070 --> 01:10:35,460 Mereka pada dasarnya tidak hal yang sama dalam hal data. 1558 01:10:35,460 --> 01:10:36,990 1559 01:10:36,990 --> 01:10:37,990 Jadi apa yang akan mencetak di sini? 1560 01:10:37,990 --> 01:10:43,780 Di sini kita sedang mencetak digit menggunakan printf dengan ditambah 1, dan hanya seperti bilangan bulat, 1561 01:10:43,780 --> 01:10:46,240 karakter dapat disimpulkan, jadi karakter juga dapat disimpulkan. 1562 01:10:46,240 --> 01:10:47,890 Jadi ini adalah persis 65. 1563 01:10:47,890 --> 01:10:49,950 Jadi ada akan menjadi 66, dan di sini kita memiliki 1564 01:10:49,950 --> 01:10:56,860 65 ditambah sedikit minus besar A, yang akan, aku tidak benar-benar tahu. 1565 01:10:56,860 --> 01:11:00,900 Tapi itu akan persis kesenjangan antara huruf kapital 1566 01:11:00,900 --> 01:11:07,800 dan dan huruf kecil, jadi kita akan mendapatkan yang kecil, kan? 1567 01:11:07,800 --> 01:11:08,300 Ya. 1568 01:11:08,300 --> 01:11:11,740 Jadi ini akan mencetak karakter yang tepat satu ini. 1569 01:11:11,740 --> 01:11:12,260 Baik? 1570 01:11:12,260 --> 01:11:12,860 Ada pertanyaan? 1571 01:11:12,860 --> 01:11:16,320 1572 01:11:16,320 --> 01:11:19,430 >> Di sini kita memiliki banyak berbeda jenis untuk variabel numerik. 1573 01:11:19,430 --> 01:11:20,620 Kami sudah berbicara tentang int. 1574 01:11:20,620 --> 01:11:21,740 1575 01:11:21,740 --> 01:11:27,760 Mengambang hanya cara to-- ini benar-benar lucu, karena ketika saya pertama kali belajar 1576 01:11:27,760 --> 01:11:32,320 program kembali hari dengan Python, program pertama yang saya pernah 1577 01:11:32,320 --> 01:11:37,480 mencoba untuk menulis, saya melihat bahwa ada Jenis dipanggil dan jenis yang disebut float. 1578 01:11:37,480 --> 01:11:39,800 Dan mengambang itu untuk semua bilangan real. 1579 01:11:39,800 --> 01:11:43,290 Jadi saya bertanya mengapa harus Saya pernah menggunakan int kemudian? 1580 01:11:43,290 --> 01:11:45,590 Karena jika saya bisa menggunakan semua bilangan real dengan pelampung, 1581 01:11:45,590 --> 01:11:47,120 Aku hanya akan berhenti menggunakan int, kan? 1582 01:11:47,120 --> 01:11:49,550 Karena bilangan real adalah seperti yang lebih umum. 1583 01:11:49,550 --> 01:11:51,820 1584 01:11:51,820 --> 01:11:54,060 >> Ternyata bahwa ini adalah tidak terjadi di komputer 1585 01:11:54,060 --> 01:11:58,480 karena mereka pada dasarnya hal yang berbeda. 1586 01:11:58,480 --> 01:12:01,470 Jadi bilangan bulat dan mengapung, yang operasi yang Anda lakukan untuk mereka 1587 01:12:01,470 --> 01:12:04,739 pada dasarnya berbeda karena dari cara mereka disimpan, OK? 1588 01:12:04,739 --> 01:12:07,280 Kita akan berbicara sedikit sedikit lebih lanjut tentang bahwa dalam satu detik. 1589 01:12:07,280 --> 01:12:09,110 >> Jadi ganda hanya mengambang lebih besar. 1590 01:12:09,110 --> 01:12:12,830 Biasanya dalam kebanyakan sistem, pelampung adalah empat byte, seperti int. 1591 01:12:12,830 --> 01:12:15,440 Dan ganda adalah delapan byte. 1592 01:12:15,440 --> 01:12:21,450 Sebuah lama sebenarnya hanya simbol Anda menambahkan ke tipe seperti int. 1593 01:12:21,450 --> 01:12:24,040 Anda berkata lama int seperti ini. 1594 01:12:24,040 --> 01:12:28,550 Lama int x untuk membuatnya lagi. 1595 01:12:28,550 --> 01:12:32,310 Jadi dalam kebanyakan sistem, yang akan memberikan delapan byte bukannya biasa empat. 1596 01:12:32,310 --> 01:12:35,620 Dan Anda benar-benar dapat menjatuhkan in, sehingga hanya bisa mengatakan lama, 1597 01:12:35,620 --> 01:12:37,240 dan yang bekerja juga, OK? 1598 01:12:37,240 --> 01:12:42,850 Anda juga dapat melakukan hal-hal lain seperti unsigned int, atau lagi hanya unsigned 1599 01:12:42,850 --> 01:12:43,680 juga akan bekerja. 1600 01:12:43,680 --> 01:12:49,370 Dan itu akan membuat x menjadi variabel seperti semuanya positif, 1601 01:12:49,370 --> 01:12:53,231 sehingga Anda tidak bisa benar-benar memiliki negatif angka dalam cara yang kami lihat di sini. 1602 01:12:53,231 --> 01:12:56,484 1603 01:12:56,484 --> 01:12:58,650 Jadi berikut indah titik dan presisi floating. 1604 01:12:58,650 --> 01:13:01,890 Itulah salah satu alasan mengapa Anda ingin menggunakan int bukan mengapung, 1605 01:13:01,890 --> 01:13:04,370 karena int adalah 100% tepat, kan? 1606 01:13:04,370 --> 01:13:06,170 Ini persis jumlah tersebut. 1607 01:13:06,170 --> 01:13:11,910 Untuk poin mengambang, jika Anda mengatakan bahwa jawabannya sama dengan 1 lebih 10-- 1608 01:13:11,910 --> 01:13:14,690 Saya kebetulan punya ini tepat Program sini, float.c. 1609 01:13:14,690 --> 01:13:16,390 1610 01:13:16,390 --> 01:13:19,420 Yang mencetak 20 tempat desimal. 1611 01:13:19,420 --> 01:13:23,270 1 dibagi dengan 10, dan bahwa biasanya adalah 0,1, bukan? 1612 01:13:23,270 --> 01:13:27,910 Tapi di sini jika kita membuat mengapung dan kemudian kita jalankan, 1613 01:13:27,910 --> 01:13:30,320 kita melihat bahwa itu tidak benar-benar 0,1. 1614 01:13:30,320 --> 01:13:33,570 Ini 0,149 sesuatu. 1615 01:13:33,570 --> 01:13:35,570 >> Dan kenapa begitu? 1616 01:13:35,570 --> 01:13:40,390 Karena Anda tidak bisa benar-benar mewakili setiap bilangan real mungkin tunggal dalam memori 1617 01:13:40,390 --> 01:13:42,730 karena ada uncountably banyak dari mereka. 1618 01:13:42,730 --> 01:13:48,360 Jadi kita secara teknis hanya mampu mewakili jumlah terbatas mereka 1619 01:13:48,360 --> 01:13:50,470 dengan jumlah terbatas data. 1620 01:13:50,470 --> 01:13:52,050 Tapi itu benar-benar menarik. 1621 01:13:52,050 --> 01:13:54,920 Sekarang ini mengundang pertanyaan tentang bagaimana Anda akan 1622 01:13:54,920 --> 01:13:59,299 pergi tentang mewakili ini dengan bit, kan? 1623 01:13:59,299 --> 01:14:00,340 Jadi bagaimana mengapung disimpan? 1624 01:14:00,340 --> 01:14:01,970 1625 01:14:01,970 --> 01:14:03,730 Dengan bilangan bulat itu mudah. 1626 01:14:03,730 --> 01:14:06,690 Tetapi dengan mengapung yang Anda inginkan untuk memaksimalkan jangkauan, 1627 01:14:06,690 --> 01:14:10,530 dan Anda ingin dapat mewakili jumlah besar dan jumlah yang sangat kecil seperti 1628 01:14:10,530 --> 01:14:14,210 0.000001 pada saat yang sama. 1629 01:14:14,210 --> 01:14:15,180 Jadi sekali lagi, game yang sama. 1630 01:14:15,180 --> 01:14:20,470 Apakah ada yang punya ide bagaimana kita bisa pergi tentang mewakili mengapung dalam memori? 1631 01:14:20,470 --> 01:14:26,820 1632 01:14:26,820 --> 01:14:27,970 Hanya membuang apa. 1633 01:14:27,970 --> 01:14:29,930 1634 01:14:29,930 --> 01:14:30,856 Ya, silakan. 1635 01:14:30,856 --> 01:14:33,552 >> AUDIENCE: [tak terdengar] sebagai apakah itu dua int dan satu 1636 01:14:33,552 --> 01:14:36,890 menjadi [tak terdengar] dan satu makhluk semuanya setelah titik desimal. 1637 01:14:36,890 --> 01:14:37,640 Gabriel: OK, keren. 1638 01:14:37,640 --> 01:14:40,300 Jadi dua bilangan bulat yang berbeda. 1639 01:14:40,300 --> 01:14:45,260 Anda dapat memiliki 12.45, jadi itu 12 dan 45. 1640 01:14:45,260 --> 01:14:45,890 Nice. 1641 01:14:45,890 --> 01:14:46,973 Apa ere Anda akan mengatakan? 1642 01:14:46,973 --> 01:14:48,420 1643 01:14:48,420 --> 01:14:49,430 Hal yang sama? 1644 01:14:49,430 --> 01:14:49,930 Ya? 1645 01:14:49,930 --> 01:14:55,630 >> AUDIENCE: [tak terdengar] notasi di mana Anda memisahkan dasar. 1646 01:14:55,630 --> 01:14:58,910 >> GABRIEL: notasi Ilmiah, ya itu biasanya apa yang terjadi. 1647 01:14:58,910 --> 01:15:01,350 Jadi ini adalah apa yang disebut mantissa. 1648 01:15:01,350 --> 01:15:06,490 Itulah yang sebenarnya nomor, dan kemudian eksponen 1649 01:15:06,490 --> 01:15:08,780 hanya di mana koma adalah, benar? 1650 01:15:08,780 --> 01:15:13,720 Jadi ini akan menjadi sesuatu dari bentuk 1, 2, 3, 4, 5 kali 10 1651 01:15:13,720 --> 01:15:15,000 dengan minus 4. 1652 01:15:15,000 --> 01:15:17,800 Aku baru sadar itu-- ya, tepatnya. 1653 01:15:17,800 --> 01:15:23,372 Dan kemudian ini 10 sampai minus 4 adalah akan menentukan di mana koma adalah, OK? 1654 01:15:23,372 --> 01:15:24,330 Di Brazil kita menggunakan koma. 1655 01:15:24,330 --> 01:15:26,795 Di sini kalian menggunakan dot. 1656 01:15:26,795 --> 01:15:27,640 Jadi titik. 1657 01:15:27,640 --> 01:15:28,860 1658 01:15:28,860 --> 01:15:34,840 >> Dan ini keren, karena Anda dapat fokus banyak potongan-potongan Anda pada orang ini 1659 01:15:34,840 --> 01:15:40,863 di sini, di mantissa, dan kemudian itu akan menjadi presisi Anda yang sebenarnya. 1660 01:15:40,863 --> 01:15:41,920 1661 01:15:41,920 --> 01:15:47,175 Dan Anda dapat melakukan hal ini baik dalam desimal atau dalam sistem berbasis biner. 1662 01:15:47,175 --> 01:15:49,781 Ada yang berbeda cara untuk melaksanakan hal ini. 1663 01:15:49,781 --> 01:15:50,280 Pertanyaan? 1664 01:15:50,280 --> 01:15:55,918 1665 01:15:55,918 --> 01:15:56,418 Ya? 1666 01:15:56,418 --> 01:15:57,508 1667 01:15:57,508 --> 01:15:59,841 AUDIENCE: Berapa banyak tempat setelah desimal [tak terdengar]? 1668 01:15:59,841 --> 01:16:05,240 1669 01:16:05,240 --> 01:16:12,610 >> GABRIEL: Itu pertanyaan yang rumit, karena itu tidak pernah benar-benar 100% tepat, 1670 01:16:12,610 --> 01:16:15,680 karena seperti yang Anda lihat di sini, untuk beberapa nomor itu adalah 100% tepat. 1671 01:16:15,680 --> 01:16:20,350 Saya percaya jika kita menempatkan 0,5 di sini, itu akan menjadi 100% tepat. 1672 01:16:20,350 --> 01:16:22,220 Ini akan menjadi 0,500000. 1673 01:16:22,220 --> 01:16:24,170 Jadi dalam hal ini, itu sempurna. 1674 01:16:24,170 --> 01:16:27,330 Namun dalam kasus lain, itu jauh lebih sedikit sempurna. 1675 01:16:27,330 --> 01:16:35,010 Dalam pengalaman saya, seperti hingga empat, lima tempat desimal cukup tepat. 1676 01:16:35,010 --> 01:16:38,300 Jika Anda menggunakan ganda, itu akan menjadi cara yang lebih tepat dari itu, OK? 1677 01:16:38,300 --> 01:16:42,750 >> ROB Bowden: Jadi hanya untuk membuang beberapa konteks lainnya di mengapung, 1678 01:16:42,750 --> 01:16:46,320 Aku tidak pernah ingat 100% bagaimana spec mengapung benar-benar bekerja, 1679 01:16:46,320 --> 01:16:52,660 tapi aku selalu ingat Anda yang mengapung mulai mendapatkan berantakan. 1680 01:16:52,660 --> 01:16:55,460 1681 01:16:55,460 --> 01:17:00,930 Jadi idenya adalah bahwa ketika Anda benar-benar, benar-benar jumlah besar atau benar-benar, benar-benar 1682 01:17:00,930 --> 01:17:03,470 jumlah kecil, kita mulai semakin buruk dan buruk 1683 01:17:03,470 --> 01:17:05,860 di membedakan antara dua mengapung dekat. 1684 01:17:05,860 --> 01:17:09,180 >> Jadi bagaimana saya ingin untuk berpikir tentang adalah dengan floating point ketidaktepatan, 1685 01:17:09,180 --> 01:17:11,890 ada dua mengapung yang jika saya mencoba untuk menentukan mereka 1686 01:17:11,890 --> 01:17:15,150 di C, meskipun fakta bahwa mereka nomor yang berbeda, 1687 01:17:15,150 --> 01:17:17,340 mereka akan menjadi diartikan sebagai jumlah yang sama, 1688 01:17:17,340 --> 01:17:19,006 karena kita tidak bisa menyimpan mereka berbeda. 1689 01:17:19,006 --> 01:17:20,540 Kita perlu menggunakan bit yang sama. 1690 01:17:20,540 --> 01:17:23,220 Dan ketika kita bisa benar-benar, benar-benar angka yang besar, 1691 01:17:23,220 --> 01:17:28,460 berbicara seperti 10 ke 300 atau sesuatu, itu pada saat itu 1692 01:17:28,460 --> 01:17:33,240 bahwa 10 sampai 300 atau 5 kali 10 sampai 300 1693 01:17:33,240 --> 01:17:37,020 tidak dapat dibedakan dari 7 kali 10 sampai 300. 1694 01:17:37,020 --> 01:17:39,660 Jadi itulah perbedaan yang cukup besar antara dua nomor. 1695 01:17:39,660 --> 01:17:43,830 >> Tapi kemudian ketika Anda turun ke kisaran hal-hal normal, 1696 01:17:43,830 --> 01:17:45,770 Anda cenderung cukup baik membedakan. 1697 01:17:45,770 --> 01:17:49,020 Dan kemudian ketika Anda turun benar-benar kecil, Anda juga mendapatkan cukup buruk lagi. 1698 01:17:49,020 --> 01:17:52,529 Jadi seperti sejumlah besar 0.0000, itu akan sangat buruk. 1699 01:17:52,529 --> 01:17:53,820 Gabriel: Ya, jadi catatan singkat. 1700 01:17:53,820 --> 01:17:54,670 Tidak pernah melakukan hal ini. 1701 01:17:54,670 --> 01:17:57,590 Jangan pernah mencoba untuk membandingkan mengapung menggunakan equals sederajat, 1702 01:17:57,590 --> 01:18:02,800 karena meskipun mereka hampir sama, hampir sama tidak sama. 1703 01:18:02,800 --> 01:18:06,360 Jadi apa yang biasanya Anda lakukan adalah kurangi mereka, mengambil nilai absolut dari itu, 1704 01:18:06,360 --> 01:18:12,380 dan melihat apakah yang lebih kecil dari 0.0001 atau sesuatu seperti itu, OK? 1705 01:18:12,380 --> 01:18:12,880 Dan keren. 1706 01:18:12,880 --> 01:18:16,630 Saya tahu banyak orang memiliki beberapa latar belakang di Jawa, 1707 01:18:16,630 --> 01:18:19,700 terutama orang-orang yang melakukan Ilmu komputer AP, kan? 1708 01:18:19,700 --> 01:18:23,630 Dan Jawa adalah bahasa yang sebagian besar didasarkan pada C, 1709 01:18:23,630 --> 01:18:26,570 memiliki beberapa perbedaan yang sangat besar. 1710 01:18:26,570 --> 01:18:31,430 Tapi untuk loop, dan jika, dan hal-hal seperti itu, mereka semua sintaks yang sama. 1711 01:18:31,430 --> 01:18:35,240 Aku punya beberapa program di sini untuk menunjukkan hal ini. 1712 01:18:35,240 --> 01:18:37,050 >> Jadi misalnya, hello world sederhana. 1713 01:18:37,050 --> 01:18:43,140 1714 01:18:43,140 --> 01:18:46,600 Ini adalah hello world di C, yang Anda Orang-orang pasti kenal, 1715 01:18:46,600 --> 01:18:49,100 dan ini dan ini satu di Jawa. 1716 01:18:49,100 --> 01:18:53,100 Jadi di Jawa kita memiliki ini public class, hello world, 1717 01:18:53,100 --> 01:18:57,050 dan public void static utama, dan tali args. 1718 01:18:57,050 --> 01:18:59,665 Args String akan muncul di C sangat lama. 1719 01:18:59,665 --> 01:19:00,740 1720 01:19:00,740 --> 01:19:01,990 Tapi mari kita tidak pergi ke sana belum. 1721 01:19:01,990 --> 01:19:06,060 Saat ini kami memiliki kekosongan di sini, yang berarti utama yang tidak mengambil argumen. 1722 01:19:06,060 --> 01:19:09,220 Dan kemudian kita harus System.out.println, dan itulah 1723 01:19:09,220 --> 01:19:11,140 jenis setara untuk printf. 1724 01:19:11,140 --> 01:19:17,150 Di sini kita tidak benar-benar membutuhkan backslash n karena print ln melakukan itu untuk Anda. 1725 01:19:17,150 --> 01:19:19,680 Itu menambahkan backslash n pada akhir baris. 1726 01:19:19,680 --> 01:19:22,540 1727 01:19:22,540 --> 01:19:30,415 >> Tetapi jika Anda pergi ke sesuatu seperti untuk, Anda 1728 01:19:30,415 --> 01:19:32,590 dapat melihat bahwa mereka cukup banyak hal yang sama. 1729 01:19:32,590 --> 01:19:37,390 Jadi inisialisasi, dan Kondisi, dan update 1730 01:19:37,390 --> 01:19:42,050 is-- Aku rindu ruang di sini-mereka cukup banyak hal yang sama, kecuali Jawa 1731 01:19:42,050 --> 01:19:44,430 memiliki sebagai lebih banyak barang beberapa tingkat tinggi. 1732 01:19:44,430 --> 01:19:46,010 1733 01:19:46,010 --> 01:19:49,610 Di sini kita bisa melakukan ditambah saya dan Java secara otomatis akan 1734 01:19:49,610 --> 01:19:52,730 membuat ini saya di sini, yang integer, ke dalam string, 1735 01:19:52,730 --> 01:19:55,200 dan kemudian tambahkan dua string bersama-sama. 1736 01:19:55,200 --> 01:19:57,570 Di sini, di C kita perlu melakukan &% d. 1737 01:19:57,570 --> 01:20:15,310 1738 01:20:15,310 --> 01:20:18,170 Garis di sini, untuk tampak persis sama. 1739 01:20:18,170 --> 01:20:37,760 >> Dan jika kita melihat jika, para ifs juga terlihat persis sama, kan? 1740 01:20:37,760 --> 01:20:39,290 1741 01:20:39,290 --> 01:20:44,650 Jadi perbedaan yang sangat besar yang dalam hal-hal yang Anda lihat di sini. 1742 01:20:44,650 --> 01:20:47,530 Public static, batal, dan maka public class jika. 1743 01:20:47,530 --> 01:20:48,990 1744 01:20:48,990 --> 01:20:52,360 Jadi Jawa memiliki apa yang disebut mesin virtual. 1745 01:20:52,360 --> 01:20:53,560 1746 01:20:53,560 --> 01:21:00,150 Dan itu sangat berat berdasarkan apa disebut pemrograman berorientasi objek, 1747 01:21:00,150 --> 01:21:04,120 yang sangat, sangat umum paradigma untuk pemrograman saat ini. 1748 01:21:04,120 --> 01:21:10,870 Dan hal kelas ini adalah apa yang Anda lihat, sesuatu dari orientasi objek, 1749 01:21:10,870 --> 01:21:14,214 adalah Anda membuat kelas dan kemudian Anda dapat memperoleh objek dari kelas itu. 1750 01:21:14,214 --> 01:21:16,380 Kami tidak akan berbicara terlalu banyak tentang itu dalam CS50, 1751 01:21:16,380 --> 01:21:18,213 tapi itu pasti sesuatu yang benar-benar keren, 1752 01:21:18,213 --> 01:21:21,440 terutama jika Anda ingin pergi ke pengembangan web yang lebih canggih 1753 01:21:21,440 --> 01:21:24,050 pada akhir kursus, seperti menyerahkan proyek akhir Anda 1754 01:21:24,050 --> 01:21:26,430 dan beberapa kerangka kerja yang bagus dan hal-hal. 1755 01:21:26,430 --> 01:21:31,250 >> Jadi pada dasarnya idenya adalah bahwa Anda tidak ingin menerapkan kembali sesuatu, 1756 01:21:31,250 --> 01:21:36,330 sehingga Anda membuat sesuatu yang sangat generik, seperti bentuk, 1757 01:21:36,330 --> 01:21:38,310 dan kemudian Anda buat bentuk yang berbeda dari itu, 1758 01:21:38,310 --> 01:21:40,240 dan kemudian dari masing-masing bentuk-bentuk ini, Anda membuat 1759 01:21:40,240 --> 01:21:45,110 beberapa bentuk yang lebih spesifik dalam tiga dimensi atau sesuatu seperti itu. 1760 01:21:45,110 --> 01:21:48,799 Dan mereka memiliki hirarki ini mereka mewarisi dari yang lain, sehingga 1761 01:21:48,799 --> 01:21:51,840 semua fungsi dan semua variabel yang bentuk besar di sini memiliki, semua ini 1762 01:21:51,840 --> 01:21:54,110 akan memiliki, dan semua ini akan memiliki, dan seterusnya dan sebagainya. 1763 01:21:54,110 --> 01:21:55,640 Jadi itulah ide dasar. 1764 01:21:55,640 --> 01:21:59,170 >> C tidak memiliki itu, tapi C ++ memang memiliki semacam fitur. 1765 01:21:59,170 --> 01:22:02,710 Dan Jawa yang banyak dipengaruhi oleh orientasi objek, 1766 01:22:02,710 --> 01:22:05,310 jadi itu sebabnya Anda melihat kelas di sini sepanjang waktu. 1767 01:22:05,310 --> 01:22:10,790 Dan hal lainnya adalah ini mesin virtual Java. 1768 01:22:10,790 --> 01:22:13,790 Jadi ini, saya pikir, adalah ide yang sangat cerdas. 1769 01:22:13,790 --> 01:22:17,020 Jadi apa yang orang-orang yang diciptakan java lakukan adalah 1770 01:22:17,020 --> 01:22:19,630 mereka tidak ingin mengkompilasi kode mereka dua kali 1771 01:22:19,630 --> 01:22:23,990 jika mereka harus menjalankannya di Windows, atau Mac, atau Linux, jadi apa yang mereka lakukan 1772 01:22:23,990 --> 01:22:26,740 adalah mereka benar-benar dijalankan sesuatu seperti alat, 1773 01:22:26,740 --> 01:22:29,630 tetapi Anda tidak benar-benar melihat hal itu terjadi. 1774 01:22:29,630 --> 01:22:32,430 Jadi mereka menjalankan mesin virtual dalam komputer Anda, yang 1775 01:22:32,430 --> 01:22:34,940 pada dasarnya adalah seperti sistem operasi mini. 1776 01:22:34,940 --> 01:22:37,920 Dan operasi yang Tujuan sistem dalam kehidupan 1777 01:22:37,920 --> 01:22:41,430 hanya untuk menjalankan apa yang disebut kode byte. 1778 01:22:41,430 --> 01:22:47,411 >> Jadi, bukannya di C, cara kita akan mengkompilasi ini membuat jika, dan kemudian jalankan 1779 01:22:47,411 --> 01:22:47,910 ./if. 1780 01:22:47,910 --> 01:22:53,510 1781 01:22:53,510 --> 01:22:55,290 Saya lupa backslash di. 1782 01:22:55,290 --> 01:23:00,240 Di Jawa, Anda akan melakukannya pertama Java C melakukan kompilasi, if.c. 1783 01:23:00,240 --> 01:23:06,440 1784 01:23:06,440 --> 01:23:08,252 Ini bukan C. Itu yang dot java. 1785 01:23:08,252 --> 01:23:09,460 1786 01:23:09,460 --> 01:23:12,140 Dan kemudian Anda harus menjalankan tidak ./. 1787 01:23:12,140 --> 01:23:15,440 Anda mendapatkan file baru ini if.class, tetapi Anda tidak bisa benar-benar 1788 01:23:15,440 --> 01:23:17,980 menjalankan if.class sekarang hanya seperti yang kita lakukan sebelumnya. 1789 01:23:17,980 --> 01:23:19,440 Ini bukan eksekusi. 1790 01:23:19,440 --> 01:23:20,630 Anda harus menjalankan. 1791 01:23:20,630 --> 01:23:23,410 Anda harus memberi makan ke sebuah program yang disebut Java, 1792 01:23:23,410 --> 01:23:28,260 dan program yang merupakan mesin virtual, dan kemudian Anda melakukan if.class, atau jika. 1793 01:23:28,260 --> 01:23:28,760 Ya. 1794 01:23:28,760 --> 01:23:30,890 Dan kemudian ia bekerja. 1795 01:23:30,890 --> 01:23:33,740 OK jadi ini adalah jenis yang mesin virtual terjadi. 1796 01:23:33,740 --> 01:23:37,700 C tidak memiliki itu, jadi jika saya menempatkan program ini di mesin Windows, 1797 01:23:37,700 --> 01:23:40,516 itu tidak akan bekerja di C. Di Jawa itu tidak. 1798 01:23:40,516 --> 01:23:41,015 Pertanyaan? 1799 01:23:41,015 --> 01:23:43,430 1800 01:23:43,430 --> 01:23:44,030 Keren. 1801 01:23:44,030 --> 01:23:47,160 Itu jika untuk bagian super untuk hari ini. 1802 01:23:47,160 --> 01:23:49,462