1 00:00:00,000 --> 00:00:12,510 2 00:00:12,510 --> 00:00:13,870 >> ROB: Baiklah. 3 00:00:13,870 --> 00:00:16,770 Selamat datang ke bahagian pertama. 4 00:00:16,770 --> 00:00:17,480 Saya Rob. 5 00:00:17,480 --> 00:00:18,806 >> JOSEPH: Saya Yusuf. 6 00:00:18,806 --> 00:00:21,540 >> ROB: Jadi kami akan menyelam hak masuk 7 00:00:21,540 --> 00:00:23,420 Perkara pertama untuk bercakap tentang adalah Peralatan ini. 8 00:00:23,420 --> 00:00:27,150 Jadi diharapkan kebanyakan di antara kamu turun ia sudah. 9 00:00:27,150 --> 00:00:37,180 Tetapi anda boleh lihat arahan di cs50.net/appliance. 10 00:00:37,180 --> 00:00:38,430 Oh tuhan, sekarang saya sedar diri. 11 00:00:38,430 --> 00:00:44,590 12 00:00:44,590 --> 00:00:45,430 Saya masih mendengarnya. 13 00:00:45,430 --> 00:00:47,232 >> JOSEPH: Wow, ia kedengaran seperti ia keliru. 14 00:00:47,232 --> 00:00:52,460 >> ROB: Jadi sesetengah orang telah mempunyai masalah dengan itu, jadi jangan tunggu sehingga 15 00:00:52,460 --> 00:00:54,940 saat-saat akhir masalah yang ditetapkan untuk cuba dan menyelesaikan Appliance dan 16 00:00:54,940 --> 00:00:56,320 mengetahui bahawa ia tidak berfungsi. 17 00:00:56,320 --> 00:00:59,010 >> JOSEPH: Dan jika ada sesuatu yang tidak berfungsi dan anda memerlukan bantuan, anda boleh pergi ke 18 00:00:59,010 --> 00:01:03,390 cs50.net/discussion mana kita mempunyai satu forum di mana anda 19 00:01:03,390 --> 00:01:04,110 boleh menghantar soalan anda. 20 00:01:04,110 --> 00:01:06,655 Dan kami akan mendapat kepada mereka akhirnya. 21 00:01:06,655 --> 00:01:07,490 >> ROB: Baiklah. 22 00:01:07,490 --> 00:01:12,180 Jadi ini adalah apa yang Appliance kelihatan seperti. 23 00:01:12,180 --> 00:01:15,480 Sekali lagi, ia hanya yang berasingan sistem operasi berjalan dalam 24 00:01:15,480 --> 00:01:19,440 apa jua sistem operasi anda berjalan pada komputer riba anda. 25 00:01:19,440 --> 00:01:24,450 Dan perkara-perkara utama yang anda akan menggunakan adalah gedit. 26 00:01:24,450 --> 00:01:28,050 Jadi mudah-mudahan ini telah pun menjadi tapak yang biasa. 27 00:01:28,050 --> 00:01:29,470 Terminal. 28 00:01:29,470 --> 00:01:31,890 >> Dan anda juga boleh menjalankan Chrome dalam Peralatan ini. 29 00:01:31,890 --> 00:01:33,860 Terdapat beberapa orang yang telah melaporkan internet 30 00:01:33,860 --> 00:01:35,390 tidak berfungsi dalam Peralatan ini. 31 00:01:35,390 --> 00:01:38,090 Dan sebahagian daripada mereka baru sahaja diambil alih bahawa terdapat tidak sepatutnya 32 00:01:38,090 --> 00:01:39,190 internet dalam Peralatan ini. 33 00:01:39,190 --> 00:01:40,750 Tetapi ya, ada sepatutnya menjadi internet. 34 00:01:40,750 --> 00:01:44,000 35 00:01:44,000 --> 00:01:46,410 >> Saya akan mengatakan ia sekarang, tetapi ia tidak benar-benar bermakna apa-apa. 36 00:01:46,410 --> 00:01:50,680 Jika internet tidak berfungsi, ini adalah apa yang anda cenderung untuk memerlukan 37 00:01:50,680 --> 00:01:52,180 untuk menjalankan untuk menyelesaikannya. 38 00:01:52,180 --> 00:01:55,602 Jika anda menghadapi isu-isu internet, tidak ingat, hanya tampal pada 39 00:01:55,602 --> 00:01:57,560 Berbincang, dan kami akan mengatakan, jalankan itu. 40 00:01:57,560 --> 00:02:00,420 Tetapi internet perlu bekerja. 41 00:02:00,420 --> 00:02:06,650 >> Jadi satu-satunya perkara lain - yeah, tiada apa lagi yang benar-benar berkaitan. 42 00:02:06,650 --> 00:02:08,979 Tetapi saya hanya mahu untuk menunjukkan bahawa - 43 00:02:08,979 --> 00:02:13,290 melihat di sudut kanan bawah ini. 44 00:02:13,290 --> 00:02:16,530 Jadi setiap anda harus Peralatan mempunyai alamat IP. 45 00:02:16,530 --> 00:02:22,350 Dan kemudian pada semester, IP ini alamat akan menjadi lebih relevan apabila 46 00:02:22,350 --> 00:02:27,230 anda bekerja di web p-set, kerana anda akan dapat untuk mengakses 47 00:02:27,230 --> 00:02:32,310 laman web anda bekerja daripada anda Chrome tempatan dengan menggunakan alamat IP ini. 48 00:02:32,310 --> 00:02:35,400 >> Tetapi apa yang saya suka untuk menggunakan alamat IP untuk - dan anda tidak perlu untuk melakukan ini, saya 49 00:02:35,400 --> 00:02:37,460 hanya mahu menunjukkan ia keluar - 50 00:02:37,460 --> 00:02:39,540 di sini. 51 00:02:39,540 --> 00:02:42,910 Jadi ini adalah satu tetingkap terminal pada Mac saya, ini bukan dalam 52 00:02:42,910 --> 00:02:44,580 Appliance sama sekali. 53 00:02:44,580 --> 00:02:47,190 Dan anda boleh mencari apa yang arahan ini tidak. 54 00:02:47,190 --> 00:02:51,855 Tetapi saya akan terus SSH untuk Appliance saya. 55 00:02:51,855 --> 00:02:53,410 Saya tidak tahu apa IP itu. 56 00:02:53,410 --> 00:02:54,300 >> JOSEPH: 168 - 57 00:02:54,300 --> 00:02:56,080 >> 168.224.1.0. 58 00:02:56,080 --> 00:02:59,950 >> ROB: Jadi sekali saya dilakukan dengan ini, log masuk 59 00:02:59,950 --> 00:03:05,450 Sekarang, pada dasarnya, ini adalah sama dengan tetingkap terminal dalam Appliance saya. 60 00:03:05,450 --> 00:03:10,280 Jadi saya cukup banyak tidak pernah sebenarnya bekerja dari dalam Appliance itu sendiri. 61 00:03:10,280 --> 00:03:12,550 Saya hanya selalu ia berjalan di latar belakang dikurangkan 62 00:03:12,550 --> 00:03:15,890 dan SSHed ke dalamnya. 63 00:03:15,890 --> 00:03:24,270 >> Isu dengan ini anda tidak akan dapat menggunakan gedit mudah 64 00:03:24,270 --> 00:03:25,600 secara langsung daripada ini. 65 00:03:25,600 --> 00:03:31,500 Tetapi jika anda mahu menjadi sejuk sebenar penggodam, maka anda perlu mendapatkan digunakan kepada 66 00:03:31,500 --> 00:03:34,220 baris arahan editor teks juga. 67 00:03:34,220 --> 00:03:39,620 Jadi Vim dan Emacs dan Nano, semua ini adalah alternatif yang berbeza. 68 00:03:39,620 --> 00:03:41,560 Nano cenderung untuk menjadi yang paling mudah. 69 00:03:41,560 --> 00:03:45,006 Dan saya fikir ia tidak mempunyai sintaks menonjolkan. 70 00:03:45,006 --> 00:03:47,620 Oh, tidak, ia sama sekali tidak. 71 00:03:47,620 --> 00:03:49,870 Jadi anda boleh menggunakan Nano, kerana yang satu agak mudah. 72 00:03:49,870 --> 00:03:52,000 >> Anda lihat semua arahan ini di bahagian bawah. 73 00:03:52,000 --> 00:03:54,750 Simbol lobak merah sedikit. 74 00:03:54,750 --> 00:03:57,620 Jika anda tidak pernah melihat sebelum ini, anda akan mungkin melihat ia banyak sekarang. 75 00:03:57,620 --> 00:04:02,350 Ia biasanya bermakna lobak kawalan, seperti bahagian bawah kiri keyboard anda 76 00:04:02,350 --> 00:04:04,130 watak kawalan. 77 00:04:04,130 --> 00:04:07,260 Jadi di sini ia memberitahu saya turun di sini - 78 00:04:07,260 --> 00:04:08,710 oh, ia tidak terputus jika saya zum masuk 79 00:04:08,710 --> 00:04:11,040 Jadi Kawalan, X ialah bagaimana Saya akan keluar. 80 00:04:11,040 --> 00:04:14,710 Dan ia berkata saya boleh memukul Y untuk Ya, untuk penjimatan, N untuk No 81 00:04:14,710 --> 00:04:17,190 Jadi, itu Nano. 82 00:04:17,190 --> 00:04:22,860 >> Vim dan Emacs cenderung untuk menjadi lebih sedikit rumit dan hangat. 83 00:04:22,860 --> 00:04:28,840 Tetapi anda boleh mendapatkan digunakan untuk ia, dan kemudian anda akan menyukainya. 84 00:04:28,840 --> 00:04:30,590 Jadi itulah yang. 85 00:04:30,590 --> 00:04:31,720 >> JOSEPH: Tidak perlu untuk berbuat demikian. 86 00:04:31,720 --> 00:04:31,840 >> ROB: Yeah. 87 00:04:31,840 --> 00:04:37,510 Anda bebas untuk menggunakan gedit untuk selebihnya semester. 88 00:04:37,510 --> 00:04:40,630 Jadi apa-apa soalan yang berkaitan dengan perkakas? 89 00:04:40,630 --> 00:04:42,820 Atau adakah anda mempunyai apa-apa pemikiran mengenai apa lagi perlu diperkatakan mengenai 90 00:04:42,820 --> 00:04:43,610 perkakas? 91 00:04:43,610 --> 00:04:43,996 Ya. 92 00:04:43,996 --> 00:04:47,720 >> SPEAKER 1: Apabila anda SSHed ke dalam anda perkara, adalah Crimson kata laluan? 93 00:04:47,720 --> 00:04:48,390 >> ROB: Yeah. 94 00:04:48,390 --> 00:04:50,170 Kata laluan untuk hampir semua yang dalam Appliance itu akan 95 00:04:50,170 --> 00:04:52,473 menjadi Crimson. 96 00:04:52,473 --> 00:04:56,517 >> SPEAKER 2: Pasang seperti IDE sebenar perkakas, ia akan berfungsi? 97 00:04:56,517 --> 00:04:59,200 98 00:04:59,200 --> 00:05:07,290 >> ROB: Saya bayangkan Gerhana tidak mempunyai Versi Fedora, di mana, ya, 99 00:05:07,290 --> 00:05:08,420 anda boleh berbuat demikian. 100 00:05:08,420 --> 00:05:10,875 Ia mungkin tidak benar-benar berbaloi. 101 00:05:10,875 --> 00:05:11,742 >> SPEAKER 2: OK. 102 00:05:11,742 --> 00:05:15,924 Jadi ia mungkin lebih mudah jika saya mahu menggunakan Eclipse, hanya menggunakan asli dan 103 00:05:15,924 --> 00:05:17,646 kemudian upload ke - 104 00:05:17,646 --> 00:05:21,090 >> ROB: Oh, yang juga mungkin lebih mudah. 105 00:05:21,090 --> 00:05:24,046 Tetapi anda boleh mendapatkan ia bekerja dalam Peralatan ini. 106 00:05:24,046 --> 00:05:27,740 >> JOSEPH: Dan untuk kamera, soalan adalah, anda boleh memasang satu lagi 107 00:05:27,740 --> 00:05:29,490 IDE dalam perkakas? 108 00:05:29,490 --> 00:05:31,520 >> ROB: Eclipse menjadi contoh IDE satu. 109 00:05:31,520 --> 00:05:34,800 110 00:05:34,800 --> 00:05:36,050 Sebarang pertanyaan Appliance lain? 111 00:05:36,050 --> 00:05:38,250 112 00:05:38,250 --> 00:05:38,680 Baiklah. 113 00:05:38,680 --> 00:05:44,920 >> Jadi, sekarang kita akan beralih ke baris arahan perkara yang berkaitan dengan antara muka, jadi CLI. 114 00:05:44,920 --> 00:05:47,990 Dan sekali lagi, saya hanya akan bekerja dalam di sini, kerana ini adalah sama dengan 115 00:05:47,990 --> 00:05:52,780 bekerja dalam tetingkap terminal dalam Peralatan ini. 116 00:05:52,780 --> 00:05:54,160 Bagaimana dengan font yang mencari? 117 00:05:54,160 --> 00:05:55,970 Adakah itu cukup besar? 118 00:05:55,970 --> 00:05:57,000 Baiklah. 119 00:05:57,000 --> 00:06:02,480 >> Jadi, terdapat banyak arahan yang anda perlu mendapatkan cukup digunakan untuk 120 00:06:02,480 --> 00:06:04,490 sepanjang semester. 121 00:06:04,490 --> 00:06:09,480 Kedua-dua yang besar untuk memandu arah adalah ls, senarai fail dalam direktori ini dan 122 00:06:09,480 --> 00:06:11,380 cd, jadi menukar direktori. 123 00:06:11,380 --> 00:06:18,390 Jadi saya boleh menukar kepada desktop dan kemudian corak yang biasa adalah cd kepada 124 00:06:18,390 --> 00:06:22,550 direktori dan segera ls apa dalam direktori. 125 00:06:22,550 --> 00:06:25,540 >> Orang juga kadang-kadang tidak menyedari yang siap Tab sesuatupun. 126 00:06:25,540 --> 00:06:28,370 Cd mahu, VH, dan kemudian saya memukul Tab. 127 00:06:28,370 --> 00:06:30,790 Saya hampir tidak pernah menaip perkara keseluruhan. 128 00:06:30,790 --> 00:06:32,920 Dan kemudian jika saya terus memukul Tab sekali lagi, ia akan secara automatik 129 00:06:32,920 --> 00:06:33,670 mula menyenaraikan bagi saya. 130 00:06:33,670 --> 00:06:37,000 Jadi saya boleh cd vhosts, tuan rumah tempatan. 131 00:06:37,000 --> 00:06:39,880 Dan itu hanya akan - 132 00:06:39,880 --> 00:06:43,380 sekiranya anda tidak pernah mendengar istilah sebelum ini, direktori hanya perkataan lain 133 00:06:43,380 --> 00:06:45,170 untuk folder. 134 00:06:45,170 --> 00:06:49,930 Jadi sekarang jika anda melihat - 135 00:06:49,930 --> 00:06:51,810 mari kita membawa yang ke atas. 136 00:06:51,810 --> 00:06:55,380 >> Jadi sekarang jika anda lihat dalam kurungan, anda melihat tilde sedikit, slash, vhost, 137 00:06:55,380 --> 00:06:56,810 slash, tuan rumah tempatan. 138 00:06:56,810 --> 00:07:00,040 Jadi tilde itu, yang merujuk ke direktori rumah saya. 139 00:07:00,040 --> 00:07:03,090 Ia adalah satu direktori anda apabila anda ssh masuk 140 00:07:03,090 --> 00:07:05,660 Ia direktori anda dalam apabila anda membuka terminal. 141 00:07:05,660 --> 00:07:08,650 Ia adalah di mana anda bermula. 142 00:07:08,650 --> 00:07:13,110 Dan jadi saya dalam direktori rumah saya, dan saya dalam vhost yang 143 00:07:13,110 --> 00:07:14,475 direktori di dalam direktori rumah saya. 144 00:07:14,475 --> 00:07:19,670 Dan kemudian saya bahagian dalam tempatan menjadi tuan rumah dalam direktori itu. 145 00:07:19,670 --> 00:07:23,740 >> Jadi beberapa perkara yang berguna yang lain dengan cd - 146 00:07:23,740 --> 00:07:29,220 atau baik, secara umum, jadi dot sentiasa merujuk kepada direktori semasa. 147 00:07:29,220 --> 00:07:31,130 Cd, dot adalah arahan agak tidak bernilai. 148 00:07:31,130 --> 00:07:35,150 Tetapi yang mengubah kepada direktori semasa. 149 00:07:35,150 --> 00:07:38,230 A satu lebih berguna dari segi cd adalah dot, dot, yang merupakan 150 00:07:38,230 --> 00:07:40,220 hanya naik satu direktori. 151 00:07:40,220 --> 00:07:43,360 >> Dan ambil perhatian bahawa ini - 152 00:07:43,360 --> 00:07:48,610 Saya mahu mengatakan alias, tetapi ini simbol, dot, dan dot, dot, kerja mereka 153 00:07:48,610 --> 00:07:51,740 untuk cukup banyak mana-mana perintah anda akan memikirkan berjalan. 154 00:07:51,740 --> 00:07:55,370 Cd Jadi seperti adalah mungkin di mana anda akan menggunakan yang paling, tetapi ini tidak 155 00:07:55,370 --> 00:07:56,780 perkara-perkara yang hanya cd memahami. 156 00:07:56,780 --> 00:07:59,980 Ia cukup banyak sesuatu keseluruhan baris arahan memahami. 157 00:07:59,980 --> 00:08:01,932 Banyak program memahami dot dan dot, dot. 158 00:08:01,932 --> 00:08:04,830 159 00:08:04,830 --> 00:08:09,090 >> Jadi orang-orang yang lain yang berguna - cd, sengkang. 160 00:08:09,090 --> 00:08:13,460 Jadi yang akan membawa saya ke direktori lepas bahawa saya masuk 161 00:08:13,460 --> 00:08:15,980 Jadi kadang-kadang saya akan melakukan sesuatu seperti, oh, saya bekerja di sini. 162 00:08:15,980 --> 00:08:21,110 Dan saya melihat beberapa ralat dengan sesuatu, dan Saya akan pergi menyiasat dengan pergi ke 163 00:08:21,110 --> 00:08:24,020 beberapa direktori rawak di suatu tempat. 164 00:08:24,020 --> 00:08:25,260 Dan saya tidak tahu jika ia akan biarlah saya di sana. 165 00:08:25,260 --> 00:08:25,720 Ia akan. 166 00:08:25,720 --> 00:08:27,615 Jadi kemudian saya lakukan apa yang saya mahu dalam direktori ini. 167 00:08:27,615 --> 00:08:28,950 Blah, blah, blah, blah, blah. 168 00:08:28,950 --> 00:08:31,770 Dan saya adalah seperti, baiklah, saya mahu untuk kembali ke mana saya berada. 169 00:08:31,770 --> 00:08:34,490 cd, sengkang, dan ia membawa saya segera kembali. 170 00:08:34,490 --> 00:08:39,970 >> Jadi saya akan membuang banyak ini pada anda hari ini. 171 00:08:39,970 --> 00:08:43,730 Saya tidak mengharapkan anda untuk menghafal mereka semua. 172 00:08:43,730 --> 00:08:46,170 Ia jenis hanya tahu bahawa mereka wujud. 173 00:08:46,170 --> 00:08:48,690 Dan kemudian apabila anda seperti, hmm, saya mahu kembali kepada 174 00:08:48,690 --> 00:08:51,870 direktori yang saya hanya di, oh, tunggu, sesuatu seperti itu wujud. 175 00:08:51,870 --> 00:08:53,980 Anda tidak perlu taip seluruh direktori lagi. 176 00:08:53,980 --> 00:08:56,090 >> JOSEPH: Dan akhirnya anda akan hanya menggunakannya berulang-ulang kali, dan 177 00:08:56,090 --> 00:08:57,830 ia akan menjadi memori otot. 178 00:08:57,830 --> 00:09:00,090 >> ROB: Yeah. 179 00:09:00,090 --> 00:09:02,930 Jadi bagaimana saya katakan sebelum ini, yang tilde adalah direktori rumah anda. 180 00:09:02,930 --> 00:09:04,820 Jadi saya boleh cd, tilde. 181 00:09:04,820 --> 00:09:07,280 Tetapi saya tidak perlu berbuat demikian jika saya hanya - 182 00:09:07,280 --> 00:09:09,760 Saya akan kembali ke direktori agar ia bukan satu contoh yang sia-sia. 183 00:09:09,760 --> 00:09:14,560 Tetapi jika saya hanya melakukan cd, itu juga sama seperti, pergi ke direktori rumah saya. 184 00:09:14,560 --> 00:09:18,380 185 00:09:18,380 --> 00:09:19,880 Saya Perintah, K. 186 00:09:19,880 --> 00:09:24,015 >> JOSEPH: Anda juga boleh menaip jelas, perkataan, dan ia perlu membersihkan ia. 187 00:09:24,015 --> 00:09:28,650 >> ROB: Dan saya juga berfikir Kawalan, L juga ia. 188 00:09:28,650 --> 00:09:29,690 Jadi banyak cara yang berbeza. 189 00:09:29,690 --> 00:09:34,070 Saya rasa terdapat beberapa perbezaan di mana jelas dan Kawalan, L akan hanya 190 00:09:34,070 --> 00:09:37,280 benar-benar menolak ia ke atas dan Saya masih boleh skrol kembali. 191 00:09:37,280 --> 00:09:40,580 Perintah, K literal memusnahkan segala-galanya, dan anda 192 00:09:40,580 --> 00:09:42,960 tidak boleh skrol kembali ke atas. 193 00:09:42,960 --> 00:09:45,530 Sekurang-kurangnya, itulah bagaimana ia berfungsi dalam iTerm2. 194 00:09:45,530 --> 00:09:48,690 Saya tidak tahu bagaimana perkara-perkara lain - 195 00:09:48,690 --> 00:09:49,360 oh. 196 00:09:49,360 --> 00:09:55,450 >> Dengan SSHing, jadi jika anda berada di Windows, anda akan perlu untuk memuat turun PuTTY 197 00:09:55,450 --> 00:10:02,360 untuk ssh sejak Windows tidak mempunyai seperti alat yang terbina dalam SSH. 198 00:10:02,360 --> 00:10:06,150 Dari Mac, anda boleh hanya SSH secara langsung dari tingkap terminal. 199 00:10:06,150 --> 00:10:08,755 200 00:10:08,755 --> 00:10:09,690 OK. 201 00:10:09,690 --> 00:10:11,840 Soalan? 202 00:10:11,840 --> 00:10:19,260 >> Dengan ls, jadi sesuatu untuk mendapatkan digunakan untuk dengan kebanyakan arahan ini adalah - 203 00:10:19,260 --> 00:10:20,060 baik, saya hanya akan melakukan satu. 204 00:10:20,060 --> 00:10:21,310 Ls, sengkang, l. 205 00:10:21,310 --> 00:10:26,330 Jadi sengkang, l adalah apa yang kita akan untuk memanggil bendera untuk ls. 206 00:10:26,330 --> 00:10:30,770 Dan banyak arahan ini mempunyai bendera bahawa anda boleh lulus kepada mereka. 207 00:10:30,770 --> 00:10:35,020 Jadi dalam kes ini, sengkang, l adalah bendera yang memberitahu ia memberi saya penuh 208 00:10:35,020 --> 00:10:37,850 senarai semua maklumat yang fail-fail. 209 00:10:37,850 --> 00:10:44,790 >> Oleh itu, kita lihat di sini bahawa desktop adalah diubah suai pada 30 Julai pada 12:54. 210 00:10:44,790 --> 00:10:47,160 Muat turun telah diubahsuai pada 6 September. 211 00:10:47,160 --> 00:10:52,350 Ini adalah saiz semasa dan bait direktori ini. 212 00:10:52,350 --> 00:10:54,412 Anda tidak perlu untuk memahami semua ini. 213 00:10:54,412 --> 00:11:00,380 >> Barangan ini di sebelah kiri, drwx ini ini, yang akan menjadi lebih relevan 214 00:11:00,380 --> 00:11:02,290 kemudian apabila anda perlu berurusan dengan - 215 00:11:02,290 --> 00:11:05,900 yang mempunyai kaitan dengan yang mempunyai kebenaran untuk melihat fail-fail ini. 216 00:11:05,900 --> 00:11:09,880 Dan jadi jika anda tidak adalah satu-satunya pengguna pada komputer ini, anda akan dapat 217 00:11:09,880 --> 00:11:13,345 katakan, OK, saya perlu menjadi satu-satunya dibenarkan untuk melihat fail ini atau saya 218 00:11:13,345 --> 00:11:14,870 akan membolehkan semua orang untuk melihat fail ini. 219 00:11:14,870 --> 00:11:17,710 Jadi orang lain pada komputer saya boleh melihat fail ini. 220 00:11:17,710 --> 00:11:22,190 221 00:11:22,190 --> 00:11:25,600 Saya tidak tahu apa ini - apakah ini lakukan? 222 00:11:25,600 --> 00:11:26,840 >> JOSEPH: Saya tidak pasti, sebenarnya. 223 00:11:26,840 --> 00:11:27,705 >> ROB: No idea. 224 00:11:27,705 --> 00:11:30,530 >> JOSEPH: Tetapi jika anda tidak tahu, terdapat arahan berguna yang boleh anda gunakan 225 00:11:30,530 --> 00:11:31,680 untuk memberitahu anda apa output bermakna. 226 00:11:31,680 --> 00:11:33,780 Dan jika anda menaip dalam manusia sebelum arahan - 227 00:11:33,780 --> 00:11:35,000 jadi M-A-N. ROB: Man. 228 00:11:35,000 --> 00:11:37,690 Jadi seorang lelaki adalah satu sama lain yang sangat berguna. 229 00:11:37,690 --> 00:11:39,540 Dan manusia, ls. 230 00:11:39,540 --> 00:11:47,320 Jadi halaman manusia, mereka mempunyai kedua-dua menyuruh anda akan menggunakan 231 00:11:47,320 --> 00:11:50,330 pada baris arahan, dan mereka juga mempunyai fungsi-fungsi yang akan menjadi relevan 232 00:11:50,330 --> 00:11:52,530 dengan C. Jadi, anda boleh manusia - 233 00:11:52,530 --> 00:11:53,720 dan saya diabaikan 3. 234 00:11:53,720 --> 00:11:57,410 Tapi lelaki 3 printf akan membawa sehingga versi C bagi printf. 235 00:11:57,410 --> 00:12:01,030 Tetapi jika saya hanya melakukan lelaki printf, ini adalah akan membawa printf arahan 236 00:12:01,030 --> 00:12:03,540 yang berlaku pada baris arahan. 237 00:12:03,540 --> 00:12:05,730 >> Jadi seorang lelaki, ls. 238 00:12:05,730 --> 00:12:09,030 Halaman lelaki boleh agak hangat. 239 00:12:09,030 --> 00:12:12,770 Di sini, walaupun, anda akan melihat penyenaraian ini semua bendera ini yang ls 240 00:12:12,770 --> 00:12:14,300 memahami. 241 00:12:14,300 --> 00:12:17,876 Jadi, jika kita pergi ke melontarkan, l, dan - 242 00:12:17,876 --> 00:12:19,300 Saya hanya akan membuang ini pada anda. 243 00:12:19,300 --> 00:12:23,050 Tetapi untuk mencari, anda mahu untuk pertama melanda soalan 244 00:12:23,050 --> 00:12:24,780 tanda atau butang palang. 245 00:12:24,780 --> 00:12:26,040 Jadi mengurangkan. 246 00:12:26,040 --> 00:12:29,000 >> Dan kemudian saya boleh mencari untuk apa sahaja yang saya mahu. 247 00:12:29,000 --> 00:12:33,780 Jadi saya akan mengurangkan untuk sengkang, l. 248 00:12:33,780 --> 00:12:35,110 Dan ada ia. 249 00:12:35,110 --> 00:12:37,450 Jadi menggunakan format penyenaraian yang panjang. 250 00:12:37,450 --> 00:12:40,060 Ini tidak membantu saya mencari jalan apa ruangan yang tertentu yang dimaksudkan, tetapi saya 251 00:12:40,060 --> 00:12:44,480 menganggap suatu tempat di sini ia akan menjelaskan bahawa. 252 00:12:44,480 --> 00:12:48,740 Jadi menggunakan halaman lelaki bagi apa-apa arahan bahawa anda tidak segera memahami. 253 00:12:48,740 --> 00:12:51,080 >> Saya agak pasti anda juga boleh manusia, manusia. 254 00:12:51,080 --> 00:12:53,070 Satu antara muka untuk talian manual rujukan. 255 00:12:53,070 --> 00:12:57,700 256 00:12:57,700 --> 00:13:03,570 Oh, satu terkini itu mungkin sedikit Adakah ls berkaitan, dash, a. 257 00:13:03,570 --> 00:13:08,490 Jadi notis jika saya hanya melakukan ls, Saya mendapat lima fail. 258 00:13:08,490 --> 00:13:11,480 Jika saya ls, melontarkan,, saya mendapatkan lebih banyak fail. 259 00:13:11,480 --> 00:13:15,350 Jadi perkara yang sama antara semua fail baru adalah dot terlebih dahulu. 260 00:13:15,350 --> 00:13:21,220 >> Jadi konvensyen itu ialah fail yang bermula dengan titik yang tersembunyi. 261 00:13:21,220 --> 00:13:25,300 Jadi, anda tidak mahu untuk melihat fail itu, anda tidak mahu untuk memilikinya kucar-kacir dengan 262 00:13:25,300 --> 00:13:26,750 penyenaraian direktori anda. 263 00:13:26,750 --> 00:13:30,020 Ia hanya apabila anda jelas bertanya, semua betul, ls, sengkang,, menunjukkan saya. 264 00:13:30,020 --> 00:13:32,830 Yang bermaksud semua fail, termasuk yang tersembunyi. 265 00:13:32,830 --> 00:13:37,260 266 00:13:37,260 --> 00:13:39,270 Jadi beberapa arahan lain. 267 00:13:39,270 --> 00:13:41,323 Oh, soalan pada ketika itu? 268 00:13:41,323 --> 00:13:41,746 Ya. 269 00:13:41,746 --> 00:13:45,914 >> SPEAKER 3: Apabila anda melakukan ls, yang, apa yang dot, dot? 270 00:13:45,914 --> 00:13:46,870 >> ROB: Oh. 271 00:13:46,870 --> 00:13:48,780 Jadi ini adalah apa yang saya bercakap tentang. 272 00:13:48,780 --> 00:13:50,890 Ia adalah perkara yang sama di mana Saya boleh seperti cd, dot, dot. 273 00:13:50,890 --> 00:13:56,790 Jadi dari segi teknikal, dan dot dot, dot adalah fail yang wujud dalam setiap tunggal 274 00:13:56,790 --> 00:14:03,620 direktori di mana fail dot merujuk ke direktori semasa. 275 00:14:03,620 --> 00:14:06,930 Jadi jika saya cd, dot, saya hanya akan untuk tinggal di direktori. 276 00:14:06,930 --> 00:14:10,870 Dan dot, dot sentiasa merujuk kepada sebelumnya direktori satu tahap ke atas. 277 00:14:10,870 --> 00:14:18,200 Jadi, jika saya pergi ke log dan ls, sengkang, al, Saya akan melihat titik, titik. cd ke dot, dot 278 00:14:18,200 --> 00:14:20,390 membawa saya ke direktori sebelumnya. 279 00:14:20,390 --> 00:14:24,530 280 00:14:24,530 --> 00:14:25,780 Yeah. 281 00:14:25,780 --> 00:14:27,160 282 00:14:27,160 --> 00:14:28,110 OK. 283 00:14:28,110 --> 00:14:33,070 >> Jadi satu lagi cukup penting arahan adalah rm. 284 00:14:33,070 --> 00:14:35,650 Jadi itulah yang kita akan untuk digunakan untuk menghapuskan. 285 00:14:35,650 --> 00:14:38,100 Dan biarlah saya sebenarnya melakukan satu lagi perintah pertama. 286 00:14:38,100 --> 00:14:39,610 Jadi mkdir. 287 00:14:39,610 --> 00:14:42,770 Mkdir adalah bagaimana anda boleh mencipta direktori. 288 00:14:42,770 --> 00:14:47,530 Dan saya akan mewujudkan direktori sementara dan pergi ke dalam direktori sementara. 289 00:14:47,530 --> 00:14:49,590 Dan seperti yang dijangkakan, ia kosong. 290 00:14:49,590 --> 00:14:53,680 Tetapi jika saya ls, sengkang,, saya masih mempunyai dot dan dot, dot, dot kerana merujuk kepada 291 00:14:53,680 --> 00:14:54,480 direktori semasa. 292 00:14:54,480 --> 00:14:56,170 Dan dot, dot merujuk kepada direktori sebelumnya. 293 00:14:56,170 --> 00:14:58,700 Dan orang-orang akan sentiasa wujud tidak kira direktori yang anda masuk 294 00:14:58,700 --> 00:15:01,910 295 00:15:01,910 --> 00:15:09,010 >> Dan ini adalah benar-benar tidak perlu arahan, tetapi sentuhan. 296 00:15:09,010 --> 00:15:11,880 Saya hanya menggunakannya, kerana ia cara mudah untuk mencipta fail. 297 00:15:11,880 --> 00:15:16,180 Jadi menyentuh, sentuh b, sentuh c hanya akan membuat tiga fail sebagai a, 298 00:15:16,180 --> 00:15:17,845 b, dan c yang benar-benar kosong. 299 00:15:17,845 --> 00:15:20,450 300 00:15:20,450 --> 00:15:24,980 Jadi titik saya mencipta mereka dalam Tempat pertama adalah hanya begitu rm yang 301 00:15:24,980 --> 00:15:26,250 bagaimana kita boleh mengeluarkannya. 302 00:15:26,250 --> 00:15:27,850 Jadi rm, a. 303 00:15:27,850 --> 00:15:30,960 Ia akan bertanya kepada saya, keluarkan tetap kosong gambar? 304 00:15:30,960 --> 00:15:33,170 Dan kemudian saya akan katakan Ya. 305 00:15:33,170 --> 00:15:39,090 >> Jadi jika saya pasti bahawa saya mahu memadam fail yang tanpa perlu 306 00:15:39,090 --> 00:15:44,500 digesa, mengeluarkan fail kosong biasa?, maka rm, sengkang, f akan menjadi 307 00:15:44,500 --> 00:15:48,230 Bendera yang mengatakan, memaksa keluarkan tanpa walaupun mendorong saya, oh, adakah anda 308 00:15:48,230 --> 00:15:49,710 pasti anda mahu memadam fail? 309 00:15:49,710 --> 00:15:50,810 Ya, saya pasti. 310 00:15:50,810 --> 00:15:56,050 Jadi rm, sengkang, fb akan hanya melakukannya tanpa bertanya. 311 00:15:56,050 --> 00:15:57,950 >> Jadi mari kita membuat sedikit lebih direktori. 312 00:15:57,950 --> 00:16:03,670 mkdir, tmp2, cd, tmp2, menyentuh, sentuhan b. 313 00:16:03,670 --> 00:16:04,300 OK. 314 00:16:04,300 --> 00:16:08,180 Jadi sekarang saya mahu mengeluarkan tmp2 sebagai direktori. 315 00:16:08,180 --> 00:16:10,316 Tmp2 Jadi rm. 316 00:16:10,316 --> 00:16:12,920 Anda tidak boleh mengeluarkan tmp2, ia adalah direktori. 317 00:16:12,920 --> 00:16:21,370 Jadi isu di sini ialah rm tidak segera bekerja pada direktori. 318 00:16:21,370 --> 00:16:26,530 Ia hanya untuk fail seperti fail bukan direktori. 319 00:16:26,530 --> 00:16:30,800 >> Dan jadi apa yang boleh kita lakukan di sini adalah rm, sengkang, k. 320 00:16:30,800 --> 00:16:35,160 Yang bermaksud secara rekursif, yang mungkin tidak bermakna apa-apa kepada anda lagi. 321 00:16:35,160 --> 00:16:38,280 Tetapi apabila anda sampai ke rekursi, ia akan bermakna lebih banyak. 322 00:16:38,280 --> 00:16:43,540 Jadi rm, sengkang, r, tmp2 akan secara rekursif pergi ke direktori. 323 00:16:43,540 --> 00:16:45,540 Jadi turun ke dalam direktori tmp2? 324 00:16:45,540 --> 00:16:47,330 Ya, mari kita pergi ke dalam itu. 325 00:16:47,330 --> 00:16:49,360 Adakah kita mahu mengeluarkan tmp2 / a? 326 00:16:49,360 --> 00:16:49,745 Ya. 327 00:16:49,745 --> 00:16:51,830 Adakah kita mahu mengeluarkan tmp2 / b? 328 00:16:51,830 --> 00:16:52,840 Ya. 329 00:16:52,840 --> 00:16:55,170 Sekarang kita mahu mengeluarkan tmp2 direktori? 330 00:16:55,170 --> 00:16:56,040 Ya. 331 00:16:56,040 --> 00:16:58,410 Dan sekarang direktori dan segala-galanya di dalam 332 00:16:58,410 --> 00:16:59,660 itu telah dikeluarkan. 333 00:16:59,660 --> 00:17:02,850 334 00:17:02,850 --> 00:17:07,250 >> Terdapat teknikal rmdir arahan yang boleh anda gunakan untuk menghapuskan 335 00:17:07,250 --> 00:17:11,670 direktori, tetapi ia hanya kerja-kerja pada direktori kosong juga. 336 00:17:11,670 --> 00:17:14,109 Dan untuk melihat bahawa, mari kita hanya melakukan mkdir, tmp2 lagi. 337 00:17:14,109 --> 00:17:15,940 Tmp2, menyentuh. 338 00:17:15,940 --> 00:17:16,800 OK. 339 00:17:16,800 --> 00:17:22,770 Jadi, jika saya cuba untuk membuang dirtmp2 IA AKAN berkata, direktori tidak kosong. 340 00:17:22,770 --> 00:17:29,540 Jadi saya cukup banyak tidak pernah menggunakan keluarkan arahan dir bagaimanapun, kerana rm, sengkang, 341 00:17:29,540 --> 00:17:35,140 r akan bekerja pada direktori kosong dan direktori yang tidak kosong. 342 00:17:35,140 --> 00:17:37,760 >> Dan juga, jika saya tidak mahu perlu melalui proses keseluruhan 343 00:17:37,760 --> 00:17:40,720 turun ke dalam direktori dan menghapuskan setiap fail individu, rm, 344 00:17:40,720 --> 00:17:44,190 sengkang, rf, tmp2. 345 00:17:44,190 --> 00:17:45,670 Dan kini ia pergi. 346 00:17:45,670 --> 00:17:51,220 >> Sesuatu yang berhati-hati kira-kira adalah rm, sengkang, rf. 347 00:17:51,220 --> 00:17:53,660 Dan ia menakutkan saya walaupun menaip, kerana jika saya secara tidak sengaja 348 00:17:53,660 --> 00:17:55,090 tekan Enter atau sesuatu. 349 00:17:55,090 --> 00:18:02,735 Jadi rm, sengkang, rf, tilde akan, tanpa mendorong saya, f tidak meminta 350 00:18:02,735 --> 00:18:05,670 saya, secara automatik akan mengeluarkan seluruh direktori rumah saya dan 351 00:18:05,670 --> 00:18:06,780 segala-galanya di dalamnya. 352 00:18:06,780 --> 00:18:11,460 Jadi, anda mungkin berfikir bahawa adalah satu perkara yang bodoh untuk dilakukan. 353 00:18:11,460 --> 00:18:12,830 Dan juga, ia adalah. 354 00:18:12,830 --> 00:18:18,600 >> Tetapi ia boleh berlaku dengan mudah dengan kemalangan jika, katakan, saya mahu keluarkan 355 00:18:18,600 --> 00:18:21,640 slash saya, direktori vhost. 356 00:18:21,640 --> 00:18:26,610 Dan hanya dalam menaip cepat, Saya secara tidak sengaja melakukan ini. 357 00:18:26,610 --> 00:18:31,880 Yang akan menghapuskan kedua-dua secara rekursif saya direktori rumah dan direktori vhost yang 358 00:18:31,880 --> 00:18:35,450 dalam direktori ini tertentu yang hanya yang berlaku kepada tidak wujud sekarang. 359 00:18:35,450 --> 00:18:39,520 Tetapi ini masih akan mengeluarkan seluruh direktori rumah saya. 360 00:18:39,520 --> 00:18:43,090 Sekurang-kurangnya dengan tidak mempunyai satu f, ia akan mendorong saya pertama. 361 00:18:43,090 --> 00:18:45,670 Dan saya menjadi seperti, oh, tidak, saya tidak mahu berbuat demikian. 362 00:18:45,670 --> 00:18:50,570 Tetapi orang, slash, termasuk saya cenderung untuk masuk ke dalam 363 00:18:50,570 --> 00:18:53,090 tabiat sentiasa rf-ing. 364 00:18:53,090 --> 00:18:58,713 Malah fail biasa yang saya hanya boleh rm, c, saya cenderung untuk hanya rm, sengkang, rf, c. 365 00:18:58,713 --> 00:19:01,330 Hanya berhati-hati apabila anda rf-ing. 366 00:19:01,330 --> 00:19:03,160 >> SPEAKER 4: Apakah C lakukan? 367 00:19:03,160 --> 00:19:11,570 >> ROB: C adalah yang saya maksudkan bahawa fail C dalam direktori ini, rm itu,. 368 00:19:11,570 --> 00:19:15,730 >> JOSEPH: Dan yang lebih berbahaya, jika anda menggunakan bintang, ia merujuk kepada segala-galanya dalam 369 00:19:15,730 --> 00:19:16,450 direktori. 370 00:19:16,450 --> 00:19:20,040 Jadi apa yang saya biasanya cenderung untuk melakukan adalah saya akan pergi ke dalam direktori dan saya mahu 371 00:19:20,040 --> 00:19:21,510 membuang semua fail dalam sana. 372 00:19:21,510 --> 00:19:23,640 Jadi rm, sengkang, rf, bintang. 373 00:19:23,640 --> 00:19:25,700 >> ROB: Yeah. 374 00:19:25,700 --> 00:19:26,780 Rm, sengkang, rf, bintang. 375 00:19:26,780 --> 00:19:29,530 >> JOSEPH: Dan jika anda tidak berhati-hati apa direktori anda di - 376 00:19:29,530 --> 00:19:33,340 Saya tidak di temp, tetapi saya sengaja di dalam direktori rumah saya, 377 00:19:33,340 --> 00:19:35,450 maka saya akan memadam segala-galanya di dalam direktori rumah saya. 378 00:19:35,450 --> 00:19:39,095 Dan saya telah sebenarnya dilakukan yang sebelum ini, dan Saya rasa anda telah melakukan ini sebelum atau 379 00:19:39,095 --> 00:19:40,640 Jay telah melakukan bahawa sebelum. 380 00:19:40,640 --> 00:19:42,480 >> ROB: Saya sengaja dikeluarkan - 381 00:19:42,480 --> 00:19:44,480 supaya mengabaikan arahan yang sedikit. 382 00:19:44,480 --> 00:19:45,800 >> JOSEPH: Tidak menyeronokkan. 383 00:19:45,800 --> 00:19:52,650 >> ROB: Jadi dalam direktori bin slash adalah sekumpulan fail binari di mana ada akan 384 00:19:52,650 --> 00:19:54,840 menjadi orang-orang yang biasa seperti bunyi berdering. 385 00:19:54,840 --> 00:20:00,740 Nah, bunyi berdering dan pada dasarnya semua ini perkara-perkara yang saya berjalan pada arahan 386 00:20:00,740 --> 00:20:02,060 talian dalam palang ini direktori bin. 387 00:20:02,060 --> 00:20:03,090 >> JOSEPH: Seperti ls adalah di sini. 388 00:20:03,090 --> 00:20:06,285 >> ROB: Jadi dot, slash, ls akan menyenaraikan direktori ini. 389 00:20:06,285 --> 00:20:08,120 >> JOSEPH: Rm juga dalam direktori ini. 390 00:20:08,120 --> 00:20:12,770 >> ROB: Saya tidak sengaja rm, rf-ed bin, yang dikeluarkan apa-apa arahan yang saya dapat 391 00:20:12,770 --> 00:20:14,380 mungkin pernah mahu. 392 00:20:14,380 --> 00:20:18,085 Maka saya hanya memasang semula satu Appliance baru pada ketika itu. 393 00:20:18,085 --> 00:20:20,170 >> JOSEPH: Jadi berhati-hati apabila anda menggunakan arahan ini. 394 00:20:20,170 --> 00:20:21,120 >> PENONTON: [didengar]? 395 00:20:21,120 --> 00:20:22,640 >> ROB: Ya. 396 00:20:22,640 --> 00:20:24,135 Itulah juga tabiat buruk untuk masuk ke dalam. 397 00:20:24,135 --> 00:20:27,920 398 00:20:27,920 --> 00:20:30,170 Jika anda perasan, saya kini - 399 00:20:30,170 --> 00:20:33,580 dengan baik, anda tidak boleh notis, tetapi zoom-in saya mungkin boleh. 400 00:20:33,580 --> 00:20:35,360 Jadi saya kini root @ perkakas. 401 00:20:35,360 --> 00:20:39,790 Jadi jharvard merupakan pengguna kita mahu anda untuk sentiasa menggunakan. 402 00:20:39,790 --> 00:20:43,820 Akar merupakan pengguna yang mempunyai kebenaran lakukan benar-benar apa-apa. 403 00:20:43,820 --> 00:20:50,260 >> Jadi notis apabila saya jharvard, jika saya cuba untuk cd - 404 00:20:50,260 --> 00:20:52,461 apa yang direktori yang? 405 00:20:52,461 --> 00:20:53,980 Oh, akar adalah contoh yang baik. 406 00:20:53,980 --> 00:20:54,950 Jadi cd, akar. 407 00:20:54,950 --> 00:20:56,030 Kebenaran dinafikan. 408 00:20:56,030 --> 00:21:00,060 Kerana jika kita melihat penyenaraian ini - 409 00:21:00,060 --> 00:21:02,410 dan sekali lagi, anda tidak perlu sepenuhnya memahami perkara ini. 410 00:21:02,410 --> 00:21:09,210 Tetapi ketiga-tiga sengkang katakan yang tidak membenarkan mana-mana 411 00:21:09,210 --> 00:21:11,120 pengguna ke dalam direktori ini. 412 00:21:11,120 --> 00:21:14,540 Dan direktori yang berlaku kepada dimiliki oleh root. 413 00:21:14,540 --> 00:21:20,310 >> Jadi hakikat bahawa saya jharvard dan tiada salah satu yang bukan root ke dalam 414 00:21:20,310 --> 00:21:23,490 direktori ini, ini bermakna bahawa saya akan mendapatkan keizinan ditolak apabila saya 415 00:21:23,490 --> 00:21:25,160 cuba cd ke dalamnya. 416 00:21:25,160 --> 00:21:31,370 Oleh itu, apabila saya akar, saya mempunyai kebenaran untuk lakukan benar-benar apa-apa, termasuk 417 00:21:31,370 --> 00:21:34,660 memadam fail penting kepada Appliance dan 418 00:21:34,660 --> 00:21:36,640 memusnahkan perkara keseluruhan. 419 00:21:36,640 --> 00:21:41,240 >> Jadi ia adalah satu tabiat buruk untuk masuk ke dalam hanya berkeliaran di sekitar anda 420 00:21:41,240 --> 00:21:43,650 sistem operasi sebagai root. 421 00:21:43,650 --> 00:21:46,520 Saya melakukannya juga. 422 00:21:46,520 --> 00:21:48,710 Soalan? 423 00:21:48,710 --> 00:21:52,230 Dan saya akan keluar akar, kekal sebagai jharvard. 424 00:21:52,230 --> 00:21:54,510 OK. 425 00:21:54,510 --> 00:21:55,820 >> Arahan yang lebih relevan. 426 00:21:55,820 --> 00:22:03,975 Jadi akan kembali ke temp kami, arahan mv bermaksud bergerak. 427 00:22:03,975 --> 00:22:05,450 Anda boleh memindahkan. 428 00:22:05,450 --> 00:22:07,610 Sekarang kita mahu panggil ia b, jadi sekarang ia dipanggil b. 429 00:22:07,610 --> 00:22:10,650 Atau mungkin kita mahu bergerak b up satu direktori. 430 00:22:10,650 --> 00:22:12,730 Jadi sekarang ini kosong direktori ini. 431 00:22:12,730 --> 00:22:15,410 Saya akan kembali ke direktori rumah saya, dan kita melihat bahawa b adalah di sini, kerana 432 00:22:15,410 --> 00:22:19,230 direktori rumah adalah satu direktori dari direktori yang b telah masuk 433 00:22:19,230 --> 00:22:24,710 434 00:22:24,710 --> 00:22:26,580 >> Terdapat juga cp. 435 00:22:26,580 --> 00:22:33,210 Jadi cp adalah salinan seksyen super, dot, teks. 436 00:22:33,210 --> 00:22:35,750 Yang boleh saya hubungi ia s, dot, teks. 437 00:22:35,750 --> 00:22:39,780 Sekarang kita mempunyai kedua-dua seksyen super, dot, teks dan s, dot, teks. 438 00:22:39,780 --> 00:22:41,340 Ini juga berfungsi pada direktori. 439 00:22:41,340 --> 00:22:44,040 440 00:22:44,040 --> 00:22:46,560 Saya RF-ed satu fail. 441 00:22:46,560 --> 00:22:48,200 Jadi cp - 442 00:22:48,200 --> 00:22:51,710 baik, mari kita cuba cp, tmp, tmp2. 443 00:22:51,710 --> 00:22:53,220 Jadi meninggalkan direktori tmp. 444 00:22:53,220 --> 00:22:57,440 Jadi sama dengan rm, tingkah laku lalai adalah untuk tidak bekerja pada direktori. 445 00:22:57,440 --> 00:23:01,570 >> Dan sekali lagi, sama dengan rm, lalai tingkah laku - baik, mendapat ia bekerja 446 00:23:01,570 --> 00:23:04,230 dengan direktori adalah, dash-r jauh. 447 00:23:04,230 --> 00:23:09,240 Jadi menyalin secara rekursif menggoda direktori ke tmp2. 448 00:23:09,240 --> 00:23:13,700 Dan sekarang kita mempunyai kedua-dua tmp dan tmp2, dan yang tidak yang membantu kerana tmp 449 00:23:13,700 --> 00:23:16,814 kosong di tempat pertama. 450 00:23:16,814 --> 00:23:18,660 Tmp2. 451 00:23:18,660 --> 00:23:22,680 >> Sekarang mari kita menyalin tmp ke tmp2. 452 00:23:22,680 --> 00:23:27,900 Dan kita melihat bahawa tmp2 juga mempunyai fail , kerana direktori dan 453 00:23:27,900 --> 00:23:32,220 kesemua di dalam yang direktori telah disalin. 454 00:23:32,220 --> 00:23:36,000 Dan yang boleh agak berguna jika, katakan anda bekerja 455 00:23:36,000 --> 00:23:38,860 kepada masalah menetapkan satu - 456 00:23:38,860 --> 00:23:41,320 atau sebenarnya, masalah set kemudian adalah lebih penting, kerana ada 457 00:23:41,320 --> 00:23:43,660 akan menjadi sejumlah fail dan perkara. 458 00:23:43,660 --> 00:23:47,010 >> Tetapi anda hanya mahu, perpecahan kedua, anda seperti, baiklah, saya 459 00:23:47,010 --> 00:23:50,210 akan cuba sesuatu yang berbeza. 460 00:23:50,210 --> 00:23:57,860 Biar saya hanya menyalin keseluruhan pset1 saya direktori ke dalam sandaran pset1 supaya jika 461 00:23:57,860 --> 00:24:01,490 Aku terpaksa skru perkara, saya boleh kembali ke dalam direktori sandaran saya. 462 00:24:01,490 --> 00:24:07,340 Terdapat cara yang lebih sesuai Pembuatan Sejarah membuat sandaran kod anda, tetapi 463 00:24:07,340 --> 00:24:10,610 ini sentiasa cara yang cepat untuk hanya membuat pasti anda mempunyai salinan sesuatu 464 00:24:10,610 --> 00:24:11,860 yang anda kira-kira untuk mengubah suai. 465 00:24:11,860 --> 00:24:16,974 466 00:24:16,974 --> 00:24:27,090 >> Jadi echo juga arahan satu-off yang jenis sillily hanya akan mencetak kepada 467 00:24:27,090 --> 00:24:31,540 baris arahan apa anda mahu echo. 468 00:24:31,540 --> 00:24:32,680 Jadi echo hi. 469 00:24:32,680 --> 00:24:35,420 Kami hanya akan mencetak hi. 470 00:24:35,420 --> 00:24:38,030 Echo hello dunia. 471 00:24:38,030 --> 00:24:39,800 Kami akan mencetak dunia hello. 472 00:24:39,800 --> 00:24:44,350 Yang datang ke dalam penggunaan apabila anda mula menggabungkan arahan. 473 00:24:44,350 --> 00:24:48,300 >> Dan sekali lagi, tidak mengharapkan anda untuk sepenuhnya memahami ini, tetapi ia 474 00:24:48,300 --> 00:24:49,910 sesuatu untuk melihat. 475 00:24:49,910 --> 00:24:52,470 Dan kemudian jika anda Googling untuk contoh atau anda sedar yang anda mahu lakukan 476 00:24:52,470 --> 00:24:55,030 sesuatu, ia boleh membantu. 477 00:24:55,030 --> 00:24:59,020 Jadi mari kita, sebagai contoh, jadi ls, sengkang, l. 478 00:24:59,020 --> 00:25:01,160 Jadi di sini saya melihat output daripada ls, sengkang, l. 479 00:25:01,160 --> 00:25:06,560 Dan saya berkata, OK, saya mahu menyimpan yang ke dalam fail. 480 00:25:06,560 --> 00:25:11,620 Semua pengeluaran ini di sini, saya ingin untuk dimasukkan ke dalam fail yang berasingan. 481 00:25:11,620 --> 00:25:16,080 >> Jadi ini sedikit lebih besar daripada simbol adalah apa yang kita akan panggil. 482 00:25:16,080 --> 00:25:18,570 Kami mengubah hala yang output ke dalam fail. 483 00:25:18,570 --> 00:25:21,680 Mari kita panggil blah fail, kerana itulah apa yang saya cenderung untuk sentiasa memanggilnya. 484 00:25:21,680 --> 00:25:26,430 Jadi sekarang kita lihat kita mempunyai memfailkan blah di sini. 485 00:25:26,430 --> 00:25:30,270 Dan jika saya membukanya, saya akan melihat ia betul-betul output dari perintah 486 00:25:30,270 --> 00:25:31,990 yang aku berlari. 487 00:25:31,990 --> 00:25:36,020 Begitu juga, anda boleh - 488 00:25:36,020 --> 00:25:41,260 jika ini adalah output ke fail, ini adalah mendapatkan input daripada fail. 489 00:25:41,260 --> 00:25:45,790 490 00:25:45,790 --> 00:25:47,050 Apakah perintah bahawa saya - 491 00:25:47,050 --> 00:25:49,620 >> JOSEPH: Saya fikir anda boleh menggunakan kurang atau lebih, mungkin. 492 00:25:49,620 --> 00:25:53,031 >> ROB: Tetapi bagaimana pula hanya blah kurang? 493 00:25:53,031 --> 00:25:53,930 Saya tidak tahu. 494 00:25:53,930 --> 00:25:57,870 Jika anda datang ke dalam senario ini, seperti ada psets bahawa itu berguna untuk. 495 00:25:57,870 --> 00:25:59,950 >> JOSEPH: Anda boleh paip ke dalam gema. 496 00:25:59,950 --> 00:26:02,920 Paip fail ke dalam echo untuk melihatnya. 497 00:26:02,920 --> 00:26:04,060 >> ROB: Ia paip. 498 00:26:04,060 --> 00:26:04,860 >> JOSEPH: Maaf. 499 00:26:04,860 --> 00:26:06,190 >> ROB: Baiklah. 500 00:26:06,190 --> 00:26:12,720 Jadi ini adalah output ke fail. 501 00:26:12,720 --> 00:26:18,700 Ini adalah mendapatkan teks dari fail dan menyerahkannya kepada program ini. 502 00:26:18,700 --> 00:26:20,560 Dan anda juga akan melihat lelaki ini. 503 00:26:20,560 --> 00:26:24,410 Jadi ini adalah jenis melakukan kedua-dua sekali. 504 00:26:24,410 --> 00:26:28,310 Dan sebenarnya, saya akan memperkenalkan dua baru arahan hanya untuk menggunakan ia. 505 00:26:28,310 --> 00:26:33,060 >> Sejarah adalah arahan berguna yang hanya akan mencetak senarai 506 00:26:33,060 --> 00:26:34,940 apa-apa yang pernah saya menjalankan baris arahan. 507 00:26:34,940 --> 00:26:38,290 Oleh itu, kita lihat di sini segala-galanya yang saya ada telah berjalan masa ini keseluruhan. 508 00:26:38,290 --> 00:26:39,540 Banyak ls ini. 509 00:26:39,540 --> 00:26:41,570 510 00:26:41,570 --> 00:26:48,470 >> Dan arahan lain yang berguna ialah grep yang tujuannya adalah untuk mencari di 511 00:26:48,470 --> 00:26:52,060 teks mencari corak, baik, mencari apa sahaja yang anda 512 00:26:52,060 --> 00:26:53,310 mahu ia disiasat. 513 00:26:53,310 --> 00:26:59,770 Dan jadi penggunaan yang berguna di sini ialah, katakan kita mahu merebut sejarah. 514 00:26:59,770 --> 00:27:03,860 Dan saya mahu melihat untuk arahan di mana saya - apa yang yang 515 00:27:03,860 --> 00:27:05,000 satu berguna untuk mencari? 516 00:27:05,000 --> 00:27:06,898 >> JOSEPH: [didengar]? 517 00:27:06,898 --> 00:27:09,710 >> ROB: Atau mari kita hanya mencari semua menyentuh, atas apa jua sebab. 518 00:27:09,710 --> 00:27:13,850 Jadi ini adalah apa yang ia akan kelihatan seperti. 519 00:27:13,850 --> 00:27:15,560 Dan anda tidak perlu benar-benar memahami bahawa. 520 00:27:15,560 --> 00:27:20,570 Tetapi idea itu di sini, sejarah memberi output yang sama yang berlaku di sini 521 00:27:20,570 --> 00:27:25,030 di mana ia mencetak keseluruhan sejarah segala-galanya yang pernah saya jalankan. 522 00:27:25,030 --> 00:27:27,030 Kami kemudian lulus bahawa - 523 00:27:27,030 --> 00:27:30,230 jadi bukannya mencetak kepada skrin, kita mahu lulus itu kepada 524 00:27:30,230 --> 00:27:34,640 arahan grep yang sedang mencari semua keadaan sentuhan perkataan. 525 00:27:34,640 --> 00:27:40,280 >> Dan sebagainya menggunakan gabungan ini daripada alat sejarah dan grep, saya lihat, OK, 526 00:27:40,280 --> 00:27:44,820 inilah semua perintah saya telah pernah berlari, dan inilah satu yang agak biasa. 527 00:27:44,820 --> 00:27:45,510 Kami berada di bahagian bawah. 528 00:27:45,510 --> 00:27:47,930 Dan ia juga memberi saya arahan Saya hanya berlari mempunyai 529 00:27:47,930 --> 00:27:51,240 sentuhan perkataan di dalamnya. 530 00:27:51,240 --> 00:27:58,500 Tetapi paip adalah satu perkara yang agak berguna untuk menggabungkan beberapa program. 531 00:27:58,500 --> 00:28:04,670 Dan sebenarnya, ia adalah jalan pintas untuk disewakan saya sejarah output untuk memfailkan blah, dan 532 00:28:04,670 --> 00:28:10,190 biarlah saya grep menggunakan blah fail seperti yang saya mahu untuk melihat lebih. 533 00:28:10,190 --> 00:28:13,460 Jadi paip hanya jalan pintas untuk kedua-dua arahan. 534 00:28:13,460 --> 00:28:13,950 Ya. 535 00:28:13,950 --> 00:28:15,306 >> SPEAKER 4: [didengar]? 536 00:28:15,306 --> 00:28:16,556 >> ROB: Ya. 537 00:28:16,556 --> 00:28:20,142 538 00:28:20,142 --> 00:28:21,110 Apakah - 539 00:28:21,110 --> 00:28:21,858 Oh. 540 00:28:21,858 --> 00:28:24,820 Mari uji. 541 00:28:24,820 --> 00:28:29,170 Jadi kucing, anjing, ikan. 542 00:28:29,170 --> 00:28:33,770 Jadi saya mahu grep. 543 00:28:33,770 --> 00:28:37,680 Dash, r, sekali lagi, akan menjadi secara rekursif, jadi saya mahu turun ke bawah 544 00:28:37,680 --> 00:28:38,870 semua direktori. 545 00:28:38,870 --> 00:28:43,210 Saya ingin secara rekursif grep untuk semua - dan biarlah saya buat sementara waktu mendapatkan 546 00:28:43,210 --> 00:28:44,460 keluar ini dari jalan. 547 00:28:44,460 --> 00:28:48,650 548 00:28:48,650 --> 00:28:50,740 Mengabaikan saya. 549 00:28:50,740 --> 00:28:51,360 OK. 550 00:28:51,360 --> 00:28:56,740 >> Jadi saya mahu grep sementara untuk semua keadaan ikan perkataan. 551 00:28:56,740 --> 00:29:00,510 Dan jadi di sini apa yang saya lakukan adalah grepping secara rekursif untuk ikan perkataan. 552 00:29:00,510 --> 00:29:05,410 Dan bintang bermakna lebih semua ini gambar dalam direktori ini. 553 00:29:05,410 --> 00:29:08,930 Dan jadi ia memberikan saya Kebenaran Ditolak, kerana ia tidak dibenarkan untuk membaca bahawa 554 00:29:08,930 --> 00:29:10,060 fail tertentu. 555 00:29:10,060 --> 00:29:14,040 Tetapi ia mendapati ikan dalam fail, ujian. 556 00:29:14,040 --> 00:29:18,450 >> Saya juga boleh katakan, secara khusus, saya hanya mahu melihat di blah fail, dalam 557 00:29:18,450 --> 00:29:19,580 yang mana ia tidak akan menemui apa-apa. 558 00:29:19,580 --> 00:29:20,990 Saya hanya mahu melihat dalam fail, ujian. 559 00:29:20,990 --> 00:29:22,240 Ia akan mencari ikan. 560 00:29:22,240 --> 00:29:25,980 561 00:29:25,980 --> 00:29:29,260 Itu adalah arahan agak berguna untuk mengetahui secara umum. 562 00:29:29,260 --> 00:29:31,640 Terdapat beberapa alternatif kepada grep yang sepatutnya lebih 563 00:29:31,640 --> 00:29:36,780 Programmer mesra, tetapi saya cenderung masih jatuh kembali grep. 564 00:29:36,780 --> 00:29:38,030 Soalan? 565 00:29:38,030 --> 00:29:39,965 566 00:29:39,965 --> 00:29:40,919 OK. 567 00:29:40,919 --> 00:29:42,520 >> Adakah terdapat arahan lain? 568 00:29:42,520 --> 00:29:45,270 Oh. 569 00:29:45,270 --> 00:29:48,370 Hanya satu sekali yang saya sentiasa mencari menyeronokkan adalah cal. 570 00:29:48,370 --> 00:29:55,610 Jadi notis apabila saya dalam ini indah mod skrin penuh, saya tidak terkenal seperti 571 00:29:55,610 --> 00:29:56,720 toolbar atau apa-apa. 572 00:29:56,720 --> 00:29:59,530 Jadi cal hanya memberikan saya sedikit bagus kalendar yang Betul 573 00:29:59,530 --> 00:30:02,380 kini terputus, saya mengambil alih. 574 00:30:02,380 --> 00:30:04,770 Tapi arahan sedikit bagus. 575 00:30:04,770 --> 00:30:06,540 >> JOSEPH: Adalah [didengar]. 576 00:30:06,540 --> 00:30:09,170 Arahan lain yang anda mungkin mempunyai dilihat termasuk dentang dan membuat. 577 00:30:09,170 --> 00:30:11,180 Kami akan pergi ke atas mereka dalam lebih terperinci kemudian. 578 00:30:11,180 --> 00:30:13,400 Tetapi jika anda telah bekerja di Serangga, anda harus 579 00:30:13,400 --> 00:30:15,160 biasa dengan mereka. 580 00:30:15,160 --> 00:30:16,640 >> ROB: Baiklah. 581 00:30:16,640 --> 00:30:18,520 Soalan kepada perkara-perkara baris arahan? 582 00:30:18,520 --> 00:30:22,450 583 00:30:22,450 --> 00:30:23,260 Baiklah. 584 00:30:23,260 --> 00:30:27,416 Jadi mari kita beralih kepada beberapa Barangan C berkaitan. 585 00:30:27,416 --> 00:30:28,666 Pembolehubah matematik. 586 00:30:28,666 --> 00:30:39,078 587 00:30:39,078 --> 00:30:40,060 OK. 588 00:30:40,060 --> 00:30:45,230 Jadi seperti yang kita mempunyai matematik di Awal, anda juga boleh menggunakan matematik di C. 589 00:30:45,230 --> 00:30:49,270 >> Sebelum kita sampai ke sepenuhnya, jadi pembolehubah. 590 00:30:49,270 --> 00:30:53,920 Ingat bahawa setiap kali anda mengisytiharkan berubah-ubah seperti int x atau y apungan, anda 591 00:30:53,920 --> 00:30:56,710 perlu memberikan menaip sebelum nama berubah-ubah. 592 00:30:56,710 --> 00:31:03,020 Jadi jenis yang kita lihat setakat ini adalah int, float, double, lama lama, yang saya 593 00:31:03,020 --> 00:31:06,150 sebenarnya tidak tahu jika kita telah melihat bahawa setakat ini. 594 00:31:06,150 --> 00:31:07,700 >> Terdapat beberapa orang yang lain. 595 00:31:07,700 --> 00:31:09,990 Kami telah melihat char. 596 00:31:09,990 --> 00:31:13,920 Ada pendek, yang seperti itu yang bertentangan dengan panjang panjang di mana ia 597 00:31:13,920 --> 00:31:16,650 lebih kecil daripada integer. 598 00:31:16,650 --> 00:31:18,580 Kami juga telah melihat tali. 599 00:31:18,580 --> 00:31:23,070 Jadi apa yang istimewa tentang rentetan? 600 00:31:23,070 --> 00:31:25,350 Mengapa saya mengatakan ia tidak cukup seperti int? 601 00:31:25,350 --> 00:31:27,030 >> SPEAKER 4: Ia tidak benar-benar wujud. 602 00:31:27,030 --> 00:31:27,990 >> ROB: Yeah. 603 00:31:27,990 --> 00:31:31,820 Jadi satu-satunya sebab kita ada tali adalah kerana apabila anda melakukan 604 00:31:31,820 --> 00:31:33,215 hash, termasuk cs50.h. 605 00:31:33,215 --> 00:31:36,530 606 00:31:36,530 --> 00:31:42,670 Dan kita akan melihat contoh-contoh ini kemudian - oh, itu tidak mengendalikan yang baik - 607 00:31:42,670 --> 00:31:46,160 mana cs50.h melakukan sesuatu sepanjang garis jenis 608 00:31:46,160 --> 00:31:49,230 def, char bintang, tali. 609 00:31:49,230 --> 00:31:53,280 >> Dan sebagainya itu mengatakan bahawa kita tidak walaupun tahu apa yang bintang char lagi. 610 00:31:53,280 --> 00:31:56,770 Tetapi ini mengatakan kita mahu tali. 611 00:31:56,770 --> 00:32:00,250 Mana-mana tempat anda telah menggunakan tali, anda boleh telah menggunakan char bintang, 612 00:32:00,250 --> 00:32:04,670 yang sebenarnya adalah jenis yang wujud dalam bahasa C. 613 00:32:04,670 --> 00:32:06,680 Tetapi kita akan dapat yang. 614 00:32:06,680 --> 00:32:07,860 Oh, dan ia pergi segera kembali. 615 00:32:07,860 --> 00:32:10,170 Kemas. 616 00:32:10,170 --> 00:32:15,370 >> Perkara begitu sama dengan bool mana benar dan palsu. 617 00:32:15,370 --> 00:32:22,510 Itu tidak benar-benar jenis yang terbina dalam di C. Sebaliknya, ia hanya, ini ada 618 00:32:22,510 --> 00:32:23,740 sifar nilai? 619 00:32:23,740 --> 00:32:26,200 Maka kita hanya akan mempertimbangkan ia adalah palsu. 620 00:32:26,200 --> 00:32:27,350 Adakah ini mempunyai nilai - 621 00:32:27,350 --> 00:32:30,530 baik, ini ada apa-apa nilai yang tidak sifar? 622 00:32:30,530 --> 00:32:32,200 Maka kita akan menganggapnya sebagai benar. 623 00:32:32,200 --> 00:32:35,940 Jadi, satu adalah benar, kedua-duanya adalah benar, apa-apa bukan sifar adalah benar. 624 00:32:35,940 --> 00:32:38,710 625 00:32:38,710 --> 00:32:42,790 Jadi mereka adalah mereka. 626 00:32:42,790 --> 00:32:47,624 Soalan pada mengisytiharkan pembolehubah dan jenis berubah dan semua itu? 627 00:32:47,624 --> 00:32:48,100 Yeah. 628 00:32:48,100 --> 00:32:52,384 >> SPEAKER 4: Untuk panjang panjang, dalam buku ini, ia berkata ia terpaksa int panjang panjang. 629 00:32:52,384 --> 00:32:54,288 Tetapi lama lama akan berfungsi? 630 00:32:54,288 --> 00:32:58,210 631 00:32:58,210 --> 00:33:01,470 >> ROB: Jadi ini pengubah jenis. 632 00:33:01,470 --> 00:33:04,170 Jadi int x. 633 00:33:04,170 --> 00:33:07,710 Oleh itu, kita juga boleh mengatakan tidak ditandatangani int x. 634 00:33:07,710 --> 00:33:09,640 Kita boleh berkata int pendek x. 635 00:33:09,640 --> 00:33:12,570 Kita boleh berkata panjang panjang int x. 636 00:33:12,570 --> 00:33:17,250 Tetapi cukup banyak mana-mana perkara yang saya hanya berkata, tidak ditandatangani int, int pendek, 637 00:33:17,250 --> 00:33:21,480 lama lama int, anda boleh menghilangkan int dan ia hanya akan mengambil alih 638 00:33:21,480 --> 00:33:22,510 bahawa anda bermakna int. 639 00:33:22,510 --> 00:33:26,045 X jadi tidak ditandatangani, yang hanya bermaksud - 640 00:33:26,045 --> 00:33:29,400 anda tahu bagaimana biasanya dengan int an, anda boleh mengatakan x sama negatif 3? 641 00:33:29,400 --> 00:33:31,636 Dengan int tidak bertanda, anda tidak boleh. 642 00:33:31,636 --> 00:33:34,480 >> JOSEPH: Dan sekali lagi, untuk kamera, soalan adalah, apa bezanya 643 00:33:34,480 --> 00:33:37,796 antara int panjang panjang dan hanya lama lama? 644 00:33:37,796 --> 00:33:38,410 >> ROB: Yeah. 645 00:33:38,410 --> 00:33:42,850 Jadi saya akan hampir tidak pernah menulis panjang int panjang. 646 00:33:42,850 --> 00:33:44,100 Saya akan menulis panjang panjang. 647 00:33:44,100 --> 00:33:47,770 648 00:33:47,770 --> 00:33:50,636 >> JOSEPH: Mana-mana soalan? 649 00:33:50,636 --> 00:33:51,886 >> ROB: OK. 650 00:33:51,886 --> 00:33:56,180 651 00:33:56,180 --> 00:34:02,390 Peringatan Jadi bodoh sedikit dari apa caranya kita mengisytiharkan pemboleh ubah dan memulakan 652 00:34:02,390 --> 00:34:04,450 pembolehubah dan mengisytiharkan lain berubah dan memulakan 653 00:34:04,450 --> 00:34:05,870 semuanya dalam satu langkah. 654 00:34:05,870 --> 00:34:09,370 Jadi pengisytiharan pembolehubah dan ubah pengawalan tidak mempunyai 655 00:34:09,370 --> 00:34:11,120 untuk tetapi boleh berada di baris yang sama. 656 00:34:11,120 --> 00:34:15,409 657 00:34:15,409 --> 00:34:20,060 >> Jadi kita mempunyai pengendali matematik standard yang anda digunakan untuk - 658 00:34:20,060 --> 00:34:22,199 ditambah, tolak, bahagi, kali. 659 00:34:22,199 --> 00:34:24,389 Terdapat juga modulo, yang kita akan lihat. 660 00:34:24,389 --> 00:34:29,060 Tidak ada, sekurang-kurangnya C, kuasa terbina dalam 661 00:34:29,060 --> 00:34:31,765 Eksponen pengendali tanda sisipan. 662 00:34:31,765 --> 00:34:33,770 Nah, ada pengendali tanda sisipan, tetapi ia bukan kuasa. 663 00:34:33,770 --> 00:34:34,239 >> JOSEPH: Tetapi ia tidak Eksponen, ya. 664 00:34:34,239 --> 00:34:36,210 >> ROB: Jangan gunakan tanda sisipan yang untuk menganggap bahawa ia bermakna 665 00:34:36,210 --> 00:34:39,980 seperti kuasa dua atau apa sahaja. 666 00:34:39,980 --> 00:34:42,289 Jadi beberapa perkara yang perlu fikiran tentang bahagian. 667 00:34:42,289 --> 00:34:46,282 668 00:34:46,282 --> 00:34:48,880 Saya akan berdiri. 669 00:34:48,880 --> 00:34:51,315 Yang diisytiharkan jawapan memulakan. 670 00:34:51,315 --> 00:34:54,670 Oleh itu, kita katakan jawapan apungan sama 1 dibahagikan dengan 10. 671 00:34:54,670 --> 00:34:57,500 Cetak jawapan kepada dua tempat perpuluhan. 672 00:34:57,500 --> 00:35:02,180 >> Dan ini adalah jenis perkara yang saya akan manusia printf untuk memikirkan bahawa 673 00:35:02,180 --> 00:35:05,110 apa yang palang pintu itu%, dot, 2f bermakna? 674 00:35:05,110 --> 00:35:07,930 Dan itu hanya bermakna, baik, mengabaikan 0.2. 675 00:35:07,930 --> 00:35:10,420 Dan%, f adalah apa yang kita gunakan untuk mencetak terapung. 676 00:35:10,420 --> 00:35:15,370 0.2 mengatakan, cetak yang terapung ke dua tempat perpuluhan. 677 00:35:15,370 --> 00:35:19,600 Jadi program ini mempunyai pepijat, dan anda mungkin telah melihat ini sebelum dalam beberapa 678 00:35:19,600 --> 00:35:20,870 kursus CS terlebih dahulu. 679 00:35:20,870 --> 00:35:22,170 Tetapi apa yang bug yang? 680 00:35:22,170 --> 00:35:23,050 >> SPEAKER 5: Zero. 681 00:35:23,050 --> 00:35:24,130 >> ROB: Yeah. 682 00:35:24,130 --> 00:35:29,630 Oleh itu, apabila kita katakan, jawapan sama 1 dibahagikan dengan 10, kita mahu 683 00:35:29,630 --> 00:35:31,610 menjawab untuk menjadi 0.1. 684 00:35:31,610 --> 00:35:37,450 Tetapi 1 dibahagikan dengan 10, 1 adalah integer, 10 adalah integer. 685 00:35:37,450 --> 00:35:41,060 Dan sebagainya apabila kita melakukan sesuatu integer dibahagikan dengan integer, kita akan kembali 686 00:35:41,060 --> 00:35:42,190 integer. 687 00:35:42,190 --> 00:35:43,660 Jadi 1 dibahagikan dengan 10 adalah 0.1. 688 00:35:43,660 --> 00:35:46,760 >> Sejak ia memerlukan untuk memberi kita integer, ia hanya akan buang yang 689 00:35:46,760 --> 00:35:49,410 tempat perpuluhan dan mengatakan bahawa jawapannya adalah 0. 690 00:35:49,410 --> 00:35:55,314 Dan sebagainya apabila kita mencetak menjawab di sini, ia akan mencetak 0.00. 691 00:35:55,314 --> 00:35:58,430 >> JOSEPH: Dan hanya sebagai nota, ia sebenarnya melemparkan jauh apa yang selepas 692 00:35:58,430 --> 00:35:59,390 titik perpuluhan. 693 00:35:59,390 --> 00:36:03,180 Jadi, jika anda bukan mempunyai 6 dibahagikan dengan 10, anda mungkin berfikir bahawa ia akan memberikan anda 694 00:36:03,180 --> 00:36:05,200 0.6 dan kemudian anda akan pusingan sehingga 1. 695 00:36:05,200 --> 00:36:10,520 Tetapi sebenarnya, apa yang berlaku apabila ia menaip tugas-tugas itu adalah bahawa ia jatuh apa yang 696 00:36:10,520 --> 00:36:11,470 selepas titik perpuluhan. 697 00:36:11,470 --> 00:36:13,020 Jadi 0.6 tidak menjadi 0. 698 00:36:13,020 --> 00:36:13,370 >> ROB: Yeah. 699 00:36:13,370 --> 00:36:15,160 Dan kita akan berkata truncate untuk itu. 700 00:36:15,160 --> 00:36:21,760 Jadi, setiap kali anda membuang int satu, perpuluhan itu dipenggal. 701 00:36:21,760 --> 00:36:23,980 Jadi menetapkan untuk itu - ada sebenarnya dua. 702 00:36:23,980 --> 00:36:27,890 Dan saya akan melakukan kedua itu, kerana satu ini adalah menetapkan yang lebih mudah. 703 00:36:27,890 --> 00:36:32,670 >> Jadi, satu menetapkan adalah menggunakan pelampung dalam bahagian ini. 704 00:36:32,670 --> 00:36:34,720 Dan benar-benar, anda hanya perlu membuat salah seorang daripada mereka apungan. 705 00:36:34,720 --> 00:36:37,400 Tetapi ia agak lebih jelas hanya untuk membuat kedua-dua mereka terapung. 706 00:36:37,400 --> 00:36:41,170 Jadi 1.0 dibahagikan dengan 10.0 adalah membahagikan dua pelampung. 707 00:36:41,170 --> 00:36:43,970 Jadi jawapan akan berakhir menjadi apungan, dan supaya anda akan 708 00:36:43,970 --> 00:36:48,050 betul mencetak 0.10 di sini. 709 00:36:48,050 --> 00:36:52,220 >> Sesuatu yang tidak berfungsi dengan baik kira-kira iaitu, dengan baik, pasti, ia adalah mudah 710 00:36:52,220 --> 00:36:56,240 cukup untuk menukarkan 1 kepada terapung dengan menjadikannya 1.0. 711 00:36:56,240 --> 00:37:02,180 Tetapi bagaimana jika sebaliknya kita mempunyai dua integer seperti int x sama 1 dan int y 712 00:37:02,180 --> 00:37:05,660 sama dengan 10, dan kemudian kita mahu untuk melakukan x dibahagikan dengan y? 713 00:37:05,660 --> 00:37:10,420 Jadi ia tidak mudah untuk hanya melakukan x.0 atau sesuatu. 714 00:37:10,420 --> 00:37:12,790 >> Jadi menetapkan untuk yang pemutus. 715 00:37:12,790 --> 00:37:19,780 Jadi pemutus adalah satu cara di C untuk menukar dari satu jenis pembolehubah yang lain. 716 00:37:19,780 --> 00:37:22,320 Jadi di sini, 1 adalah integer. 717 00:37:22,320 --> 00:37:27,050 Dan dengan meletakkan apungan ini di hadapan ia, kami pemutus 1 kepada apungan. 718 00:37:27,050 --> 00:37:30,350 Dan hal ini akan menukar 1 kepada 1.0. 719 00:37:30,350 --> 00:37:33,380 Dan ini akan menukar 10 kepada 10.0. 720 00:37:33,380 --> 00:37:36,790 >> Dan kemudian perkara berkelakuan sama seperti yang versi sebelumnya kita hanya menunjukkan 721 00:37:36,790 --> 00:37:42,190 di mana, seperti yang diharapkan, kita akan mendapat 0.10 dan ia akan mencetak itu. 722 00:37:42,190 --> 00:37:44,120 Dan yang boleh kita lakukan ini dengan pembolehubah, juga. 723 00:37:44,120 --> 00:37:47,376 Oleh itu, kita boleh berkata, apungan x dibahagikan dengan apungan y. 724 00:37:47,376 --> 00:37:48,626 >> JOSEPH: Mana-mana soalan? 725 00:37:48,626 --> 00:37:54,182 726 00:37:54,182 --> 00:38:00,090 >> ROB: Jadi sama seperti dalam matematik biasa, kita mempunyai pengendali keutamaan. 727 00:38:00,090 --> 00:38:06,960 Jadi dalam kelas matematik, anda lebih cenderung untuk memanggil ia perintah operasi. 728 00:38:06,960 --> 00:38:09,890 Di sini, istilah rasmi adalah keutamaan operator. 729 00:38:09,890 --> 00:38:15,230 Tetapi keutamaan pengendali, atau yang paling pengendali, adalah seperti yang anda inginkan. 730 00:38:15,230 --> 00:38:22,660 >> Jadi sama seperti dalam matematik, 2 kali 10 adalah akan dikumpulkan lebih rapat daripada 731 00:38:22,660 --> 00:38:25,410 ini 10 dibahagikan dengan 2 dan kemudian 2. 732 00:38:25,410 --> 00:38:29,745 Perintah operasi, ia akan melakukan 2 kali 10, 10 dibahagikan dengan 2, dan kemudian 733 00:38:29,745 --> 00:38:32,720 ia akan melakukan 20 campur 5 campur 2. 734 00:38:32,720 --> 00:38:37,020 Jadi ia seperti yang dijangkakan, dan anda boleh menggunakan kurungan untuk ungkapan kumpulan. 735 00:38:37,020 --> 00:38:41,063 Anda tidak boleh menggunakan kurungan persegi untuk ungkapan kumpulan. 736 00:38:41,063 --> 00:38:41,544 Yeah? 737 00:38:41,544 --> 00:38:43,468 >> SPEAKER 5: Bolehkah anda benar-benar hanya kembali kedua? 738 00:38:43,468 --> 00:38:47,316 Bolehkah anda membuang int untuk rentetan? 739 00:38:47,316 --> 00:38:53,330 >> ROB: Jadi, dalam C, anda boleh membuang apa-apa anda mahu apa sahaja yang anda mahu. 740 00:38:53,330 --> 00:38:55,600 Itu tidak bermakna ia satu perkara yang baik untuk dilakukan. 741 00:38:55,600 --> 00:38:59,760 Oleh itu, apabila anda membuang int untuk rentetan, yang bermaksud - 742 00:38:59,760 --> 00:39:03,240 dan kami akan masuk ke dalam ini lebih teliti - 743 00:39:03,240 --> 00:39:03,720 >> JOSEPH: Banyak kemudian. 744 00:39:03,720 --> 00:39:06,840 >> ROB: Saya tidak mahu mengatakan banyak kemudian, jadi saya cuba mengubah hukuman saya. 745 00:39:06,840 --> 00:39:13,370 Kami akan masuk ke dalam lebih teliti kemudiannya di mana benar-benar apabila anda mempunyai 746 00:39:13,370 --> 00:39:14,810 tali boleh ubah - 747 00:39:14,810 --> 00:39:17,160 jadi rentetan boleh sewenang-wenangnya panjang, bukan? 748 00:39:17,160 --> 00:39:21,850 Dan kita telah mengatakan bahawa adalah int empat bait dan panjang panjang adalah lapan 749 00:39:21,850 --> 00:39:23,620 bait dan apungan adalah empat bait. 750 00:39:23,620 --> 00:39:29,520 Jadi tali, seperti int, hanya mempunyai sebilangan bytes kepadanya. 751 00:39:29,520 --> 00:39:31,800 Dan yang akan menjadi empat bait. 752 00:39:31,800 --> 00:39:34,750 >> Tetapi rentetan boleh agak sewenang-wenangnya panjang, bukan? 753 00:39:34,750 --> 00:39:40,190 Jadi hello dunia sudah, jika itu 10 watak-watak atau apa sahaja, yang sudah 754 00:39:40,190 --> 00:39:42,670 akan menjadi sejak 4 bytes Saya boleh dimuatkan ke dalam rentetan. 755 00:39:42,670 --> 00:39:51,140 Dan jadi bagaimana tali benar-benar berkesan ialah mereka di mana dalam ingatan rentetan yang 756 00:39:51,140 --> 00:39:52,380 sedang disimpan. 757 00:39:52,380 --> 00:39:57,290 >> Dan sebagainya di sini, apabila saya berkata tali x sama dunia hello, di dalam x ialah 758 00:39:57,290 --> 00:40:01,840 hanya berkata, oh, hello dunia disimpan di tempat ini tertentu dalam ingatan. 759 00:40:01,840 --> 00:40:07,060 Jadi, jika kita cuba untuk membuang integer kepada tali, maka kita cuba untuk mentafsir 760 00:40:07,060 --> 00:40:10,500 beberapa bahagian rawak memori sebagai rentetan. 761 00:40:10,500 --> 00:40:14,465 Dan yang hampir selalu memecah sesuatu. 762 00:40:14,465 --> 00:40:17,040 >> JOSEPH: Tetapi jika mengelirukan yang anda, kita akan menutupinya 763 00:40:17,040 --> 00:40:17,550 lebih mendalam kemudian. 764 00:40:17,550 --> 00:40:17,850 >> ROB: Yeah. 765 00:40:17,850 --> 00:40:20,540 Ini adalah di mana anda akan untuk masuk ke dalam petunjuk. 766 00:40:20,540 --> 00:40:25,485 Dan ini adalah sebahagian penting dua minggu kursus ini. 767 00:40:25,485 --> 00:40:28,275 >> SPEAKER 6: Adakah ia berfungsi seperti objek dalam bahasa lain atau tidak benar-benar? 768 00:40:28,275 --> 00:40:34,050 >> ROB: Jadi, dalam bahasa lain, objek akan diwakili menggunakan petunjuk. 769 00:40:34,050 --> 00:40:37,070 770 00:40:37,070 --> 00:40:38,793 Ia bukan perkara yang sama, walaupun. 771 00:40:38,793 --> 00:40:42,110 772 00:40:42,110 --> 00:40:42,910 Mana-mana pemikiran? 773 00:40:42,910 --> 00:40:43,760 >> JOSEPH: No 774 00:40:43,760 --> 00:40:44,185 Tiada pemikiran. 775 00:40:44,185 --> 00:40:44,980 >> ROB: OK. 776 00:40:44,980 --> 00:40:46,994 >> JOSEPH: Seterusnya. 777 00:40:46,994 --> 00:40:48,255 >> ROB: Hanya pergi dengan itu. 778 00:40:48,255 --> 00:40:48,670 Baiklah. 779 00:40:48,670 --> 00:40:51,120 Jadi modulo. 780 00:40:51,120 --> 00:40:53,900 Sama seperti kita perlu ditambah, tolak, membahagi, dan berganda. 781 00:40:53,900 --> 00:40:56,720 Jadi modulo adalah salah satu anda boleh tidak lihat sebelum ini. 782 00:40:56,720 --> 00:40:59,540 Dan ia hanya berkata, memberi saya baki. 783 00:40:59,540 --> 00:41:02,850 Jadi 55% 10. 784 00:41:02,850 --> 00:41:06,840 Baki melakukan 55 dibahagikan sebanyak 10 adalah 5. 785 00:41:06,840 --> 00:41:09,630 Jadi 55% 10 adalah 5. 786 00:41:09,630 --> 00:41:12,260 Dan 3% 5 ialah 3. 787 00:41:12,260 --> 00:41:14,180 8% 8 0. 788 00:41:14,180 --> 00:41:15,903 16% 15 akan 1. 789 00:41:15,903 --> 00:41:20,670 >> JOSEPH: Satu perkara yang perlu ambil perhatian dengan ini, juga, adalah ia mungkin tidak berfungsi seperti yang diharapkan 790 00:41:20,670 --> 00:41:22,700 jika anda menggunakan nombor negatif. 791 00:41:22,700 --> 00:41:26,215 Jadi negatif 5% 4, sesetengah orang mungkin berfikir bahawa adalah - 792 00:41:26,215 --> 00:41:28,890 793 00:41:28,890 --> 00:41:33,808 apa yang anda akan berfikir negatif 5% 4 akan? 794 00:41:33,808 --> 00:41:34,792 >> SPEAKER 5: Satu. 795 00:41:34,792 --> 00:41:37,920 >> JOSEPH: Jadi ada pula yang mengatakan satu, ada pula yang mengatakan satu negatif. 796 00:41:37,920 --> 00:41:38,450 Tetapi apa - 797 00:41:38,450 --> 00:41:40,820 >> ROB: Saya akan tidak mempunyai kata seorang daripada mereka. 798 00:41:40,820 --> 00:41:42,370 >> JOSEPH: Dua, maaf. 799 00:41:42,370 --> 00:41:43,240 Ada yang mengatakan - 800 00:41:43,240 --> 00:41:43,450 >> ROB: Tiga. 801 00:41:43,450 --> 00:41:43,800 >> JOSEPH: Tiga? 802 00:41:43,800 --> 00:41:44,890 >> ROB: Negatif - 803 00:41:44,890 --> 00:41:45,950 bagaimana akibat - negatif lima - 804 00:41:45,950 --> 00:41:47,100 >> JOSEPH: Tiga, tiga, tiga. 805 00:41:47,100 --> 00:41:48,450 Maaf. 806 00:41:48,450 --> 00:41:51,910 Kerana modulo, secara amnya, apabila anda telah dilihat di tempat lain, ia biasanya bermaksud 807 00:41:51,910 --> 00:41:54,000 mengembalikan nombor positif, bukan? 808 00:41:54,000 --> 00:42:01,160 >> ROB: Oleh itu, apabila kita katakan dalam matematik,% 10 ini, mereka cenderung mahu memberi anda - 809 00:42:01,160 --> 00:42:05,980 jika kita arena dengan 10, maka kita menjangka untuk mendapat nombor antara 0 dan 9. 810 00:42:05,980 --> 00:42:09,860 Di sini, itu tidak berlaku yang anda akan mendapat nombor negatif dikembalikan. 811 00:42:09,860 --> 00:42:15,898 >> JOSEPH: Jadi negatif 5% 4 adalah negatif 1. 812 00:42:15,898 --> 00:42:19,325 >> ROB: Tetapi ia jarang berlaku bahawa anda arena-ing nombor negatif untuk memulakan. 813 00:42:19,325 --> 00:42:25,490 814 00:42:25,490 --> 00:42:25,970 Langkau ini. 815 00:42:25,970 --> 00:42:27,314 >> JOSEPH: Yeah. 816 00:42:27,314 --> 00:42:29,420 >> ROB: Meh. 817 00:42:29,420 --> 00:42:29,990 OK. 818 00:42:29,990 --> 00:42:36,400 Jadi satu perkara terakhir untuk menunjukkan kira-kira kereta berhias adalah ia tingkah laku yang berbahaya, 819 00:42:36,400 --> 00:42:39,850 tetapi terapung tidak yang tepat perwakilan. 820 00:42:39,850 --> 00:42:46,190 Jadi kembali kepada bytes lagi, ingat yang int adalah sentiasa empat bait dan 821 00:42:46,190 --> 00:42:47,830 apungan sentiasa empat bait. 822 00:42:47,830 --> 00:42:51,340 Jadi contoh Lucas adalah cukup baik. 823 00:42:51,340 --> 00:42:55,730 >> Jadi berfikir 1 dibahagikan dengan 3. 824 00:42:55,730 --> 00:42:57,800 Jadi 0,3333333. 825 00:42:57,800 --> 00:43:03,540 Jika saya hanya mempunyai 32 bit, bagaimana boleh Saya menyimpan 0,33333 sebenarnya? 826 00:43:03,540 --> 00:43:07,250 Dan mungkin, untuk apa jua alasan, anda berkata, semua betul, baik, mari kita hanya mengatakan 827 00:43:07,250 --> 00:43:13,210 yang khusus ini 1011001, mari kita hanya mengatakan bahawa harus 0,333333. 828 00:43:13,210 --> 00:43:16,960 Nah, anda hanya mempunyai beberapa terhingga bit-bit, jadi ia adalah mustahil untuk 829 00:43:16,960 --> 00:43:22,550 mewakili setiap titik terapung tunggal nilai yang diberi hanya 32 bit. 830 00:43:22,550 --> 00:43:25,580 >> Nah, ia adalah mustahil untuk mewakili mana-mana Nilai titik apung diberikan terhingga - 831 00:43:25,580 --> 00:43:28,480 dengan baik, diberi beberapa terhingga bit. 832 00:43:28,480 --> 00:43:38,265 Jadi isu di sini adalah, baik, apabila kita digunakan untuk mencetak kepada dua tempat perpuluhan, 833 00:43:38,265 --> 00:43:42,000 kami tidak betul mendapatkan jawapan 0.10. 834 00:43:42,000 --> 00:43:47,510 Tetapi di bawah hood, ia benar-benar disimpan sebagai sehampir mungkin kepada 835 00:43:47,510 --> 00:43:51,790 0.10 sebagai bit-bit boleh mewakili. 836 00:43:51,790 --> 00:43:53,200 Adakah ini pada slaid seterusnya? 837 00:43:53,200 --> 00:43:53,830 Atau adakah ia tidak? 838 00:43:53,830 --> 00:43:54,660 >> JOSEPH: Ya, ia itu. 839 00:43:54,660 --> 00:43:55,750 >> ROB: Blegh, blegh. 840 00:43:55,750 --> 00:43:57,760 >> JOSEPH: Ya, anda boleh hanya tarik nota sedikit. 841 00:43:57,760 --> 00:43:59,700 >> ROB: saya hanya akan untuk zum dalam kepada yang terakhir pada itu. 842 00:43:59,700 --> 00:44:00,950 Alamak, itu [didengar]. 843 00:44:00,950 --> 00:44:06,089 844 00:44:06,089 --> 00:44:08,300 Jadi nombor itu. 845 00:44:08,300 --> 00:44:12,300 Itulah yang akan dicetak jika kita menjalankan program itu. 846 00:44:12,300 --> 00:44:20,340 Dan notis itu bukan benar-benar satu masalah besar jika kita hanya mengambil berat tentang seperti 847 00:44:20,340 --> 00:44:21,920 2-3 tempat perpuluhan. 848 00:44:21,920 --> 00:44:26,700 Seperti kita hanya asalnya dicetak 0.10, dan sebab itu kita melihat apa yang salah. 849 00:44:26,700 --> 00:44:31,380 Tetapi sebaik sahaja kami mula mendapat ke dalam tepat, bilangan tepat yang ia 850 00:44:31,380 --> 00:44:35,660 mewakili, kita lihat bahawa ia tidak boleh betul-betul mewakili 0.1. 851 00:44:35,660 --> 00:44:40,900 >> Dan sebahagian daripada masalah di sini adalah seperti, semua betul, itu halus, tetapi, juga, 852 00:44:40,900 --> 00:44:46,120 pertama, bagaimana jika kita cuba untuk berbuat demikian, jawapan sama sama 0.1? 853 00:44:46,120 --> 00:44:49,200 Adakah itu akan kembali benar atau palsu? 854 00:44:49,200 --> 00:44:51,850 Dan oleh itu sukar untuk mengatakan. 855 00:44:51,850 --> 00:44:53,330 Saya rasa ia sebenarnya mungkin kembali benar. 856 00:44:53,330 --> 00:44:55,265 Adakah ia pertama - 857 00:44:55,265 --> 00:44:56,180 Saya tidak tahu. 858 00:44:56,180 --> 00:45:00,090 Jawapannya ialah sebaik sahaja anda mula berurusan dengan mata yang terapung, anda cantik 859 00:45:00,090 --> 00:45:05,150 banyak tidak perlu menggunakan kesaksamaan kerana ketakpersisan ini. 860 00:45:05,150 --> 00:45:09,470 >> Dan untuk semua yang anda tahu, ia adalah seratus yang tempat perpuluhan bahawa 861 00:45:09,470 --> 00:45:13,670 titik apung tidak dapat untuk mengendalikan dengan betul. 862 00:45:13,670 --> 00:45:18,180 Dan sebagainya kesaksamaan hanya akan gagal walaupun walaupun bilangan - jika anda telah 863 00:45:18,180 --> 00:45:24,450 menggunakan nombor yang tepat, nombor harus telah sama. 864 00:45:24,450 --> 00:45:27,790 Ia sepanjang seperti 50 pengiraan menggunakan terapung 865 00:45:27,790 --> 00:45:30,270 mata yang, kesilapan yang boleh membina naik dan naik dan ke atas, dan 866 00:45:30,270 --> 00:45:31,125 perkara hanya mendapat salah. 867 00:45:31,125 --> 00:45:33,870 >> JOSEPH: Dan ada telah benar-benar contoh-contoh terkenal berlaku ini. 868 00:45:33,870 --> 00:45:37,190 Seperti jurutera NASA telah mendapat ini salah, roket menyebabkan untuk meletup dalam 869 00:45:37,190 --> 00:45:38,665 udara selepas mereka telah dilancarkan. 870 00:45:38,665 --> 00:45:41,490 Dan banyak isu-isu seperti itu. 871 00:45:41,490 --> 00:45:41,956 Jadi yeah. 872 00:45:41,956 --> 00:45:45,218 >> SPEAKER 6: Apabila kamu berkata 0.3 f, ia truncate yang lain? 873 00:45:45,218 --> 00:45:46,468 Atau adakah ia pusingan atas atau ke bawah? 874 00:45:46,468 --> 00:45:48,800 875 00:45:48,800 --> 00:45:50,200 >> ROB: Akan printf pusingan ia? 876 00:45:50,200 --> 00:45:52,180 >> JOSEPH: Saya rasa truncates printf. 877 00:45:52,180 --> 00:45:52,640 >> ROB: OK. 878 00:45:52,640 --> 00:45:59,890 Oleh itu, kita juga boleh pergi di sebaliknya arah mana ini, dalam kes ini, 879 00:45:59,890 --> 00:46:03,320 yang paling dekat ia boleh mewakili 0.1 adalah dengan nombor ini. 880 00:46:03,320 --> 00:46:06,820 Yang paling dekat ia mungkin dapat mewakili 0.2 adalah di sebaliknya 881 00:46:06,820 --> 00:46:11,420 arahan, 0,199999996356 atau sesuatu. 882 00:46:11,420 --> 00:46:17,480 Jadi, jika kita pergi dalam arah yang perkara, maka printf 0.3 f akan kembali 883 00:46:17,480 --> 00:46:20,866 1.99 bukannya 2.00. 884 00:46:20,866 --> 00:46:22,960 >> JOSEPH: Dan saya tidak sepenuhnya pasti pada itu. 885 00:46:22,960 --> 00:46:25,430 Anda mungkin mahu menulis kecil, sedikit program untuk hanya memeriksa itu. 886 00:46:25,430 --> 00:46:29,370 >> ROB: Walaupun, apa yang kita pasti ialah jika anda cuba untuk membuang itu kepada 887 00:46:29,370 --> 00:46:33,660 int, dan pemutus untuk int an akan menyebabkannya truncate perpuluhan itu, jika 888 00:46:33,660 --> 00:46:38,140 anda cuba untuk membuang 1.9999999 int, anda akan mendapat 1. 889 00:46:38,140 --> 00:46:41,440 Dan supaya anda secara amnya perlu menggunakan fungsi pusingan di perpustakaan matematik. 890 00:46:41,440 --> 00:46:44,190 891 00:46:44,190 --> 00:46:45,440 Soalan? 892 00:46:45,440 --> 00:46:47,660 893 00:46:47,660 --> 00:46:48,982 OK. 894 00:46:48,982 --> 00:46:54,000 >> JOSEPH: Jadi beralih kepada syarat-syarat dan ungkapan Boolean. 895 00:46:54,000 --> 00:46:58,120 Jadi, anda telah melihat sebelum ini. 896 00:46:58,120 --> 00:47:07,420 Dan sebenarnya, saya memastikan saya komputer dalam format yang betul di sini. 897 00:47:07,420 --> 00:47:08,670 Ruang. 898 00:47:08,670 --> 00:47:10,630 899 00:47:10,630 --> 00:47:13,870 Maaf, kita akan perlu berurusan yang sedikit dengan potong di tepi. 900 00:47:13,870 --> 00:47:15,830 >> Tetapi yeah, anda semua telah melihat ini sebelum di Scratch. 901 00:47:15,830 --> 00:47:19,930 Jadi hak ini di sini adalah ungkapan yang digunakan dalam 902 00:47:19,930 --> 00:47:21,250 kenyataan bersyarat. 903 00:47:21,250 --> 00:47:23,930 Jadi menjawab lebih besar daripada sifar akan memberitahu anda benar atau palsu. 904 00:47:23,930 --> 00:47:26,530 Dan ini adalah benar-benar penting, kerana mereka membenarkan kami untuk memperkenalkan 905 00:47:26,530 --> 00:47:28,670 logik ke dalam kod kami. 906 00:47:28,670 --> 00:47:32,820 >> Sebagai contoh, ini adalah program yang ditulis dalam Scratch yang meminta pengguna 907 00:47:32,820 --> 00:47:36,980 untuk integer dan memberitahu mereka sama ada integer bahawa mereka memberi anda adalah seorang 908 00:47:36,980 --> 00:47:38,690 bilangan positif atau negatif. 909 00:47:38,690 --> 00:47:42,980 Dan penukaran di sini untuk melihat adalah anda mula mencetak kenyataan itu, 910 00:47:42,980 --> 00:47:43,870 memberi saya integer. 911 00:47:43,870 --> 00:47:45,980 Dan kemudian anda meminta mereka untuk integer. 912 00:47:45,980 --> 00:47:49,870 >> Dan kemudian anda menggunakan logik bersyarat ke atas di sini untuk menyemak sama ada bilangan yang 913 00:47:49,870 --> 00:47:52,030 sebenarnya lebih besar daripada sifar atau tidak. 914 00:47:52,030 --> 00:47:58,960 Jadi di sini kita mempunyai ungkapan Boolean dalam bersyarat Sekiranya kenyataan. 915 00:47:58,960 --> 00:48:00,660 Adakah terdapat apa-apa soalan? 916 00:48:00,660 --> 00:48:03,030 Adakah terdapat apa-apa soalan tentang itu? 917 00:48:03,030 --> 00:48:03,950 OK. 918 00:48:03,950 --> 00:48:06,140 >> Jadi tidak lebih daripada sekadar lebih besar daripada, sudah tentu. 919 00:48:06,140 --> 00:48:10,385 Anda boleh membina ungkapan Boolean menggunakan kebanyakan macam perkara yang anda 920 00:48:10,385 --> 00:48:11,150 akan berfikir dalam matematik. 921 00:48:11,150 --> 00:48:12,370 Jadi lebih besar daripada. 922 00:48:12,370 --> 00:48:13,740 Yang sepatutnya menjadi kurang daripada. 923 00:48:13,740 --> 00:48:14,990 Maaf. 924 00:48:14,990 --> 00:48:18,520 925 00:48:18,520 --> 00:48:19,760 Dan jarak. 926 00:48:19,760 --> 00:48:22,971 >> ROB: Allah melarang anda meninggalkan ia. 927 00:48:22,971 --> 00:48:23,620 >> JOSEPH: Baiklah. 928 00:48:23,620 --> 00:48:25,950 Jadi lebih besar daripada, kurang daripada, lebih besar daripada, atau sama dengan, kurang 929 00:48:25,950 --> 00:48:27,070 daripada, atau sama dengan. 930 00:48:27,070 --> 00:48:31,980 Kami menggunakan setaraf dua untuk memeriksa kesaksamaan, kerana tunggal sama cara 931 00:48:31,980 --> 00:48:32,810 tugasan, bukan? 932 00:48:32,810 --> 00:48:33,140 Ya. 933 00:48:33,140 --> 00:48:37,130 Dan kemudian kita boleh juga tidak sama dengan menggunakan tanda seru, sama. 934 00:48:37,130 --> 00:48:41,530 >> Dan simbol tanda seru boleh juga dilanjutkan bahawa jika anda mahu 935 00:48:41,530 --> 00:48:44,050 untuk boot mana-mana jenis Boolean bersuara, anda boleh berbuat demikian. 936 00:48:44,050 --> 00:48:48,530 Jadi ini akan menilai untuk benar jika jawapan kurang 937 00:48:48,530 --> 00:48:51,240 daripada atau sama dengan sifar. 938 00:48:51,240 --> 00:48:53,950 Soalan mengenai itu? 939 00:48:53,950 --> 00:48:55,180 OK. 940 00:48:55,180 --> 00:48:58,840 >> Jadi, anda juga boleh menggabungkan ini ungkapan menggunakan logik Dan dan 941 00:48:58,840 --> 00:48:59,790 logik Or. 942 00:48:59,790 --> 00:49:03,530 Jadi ini adalah hanya simbol Dan, yang sepatutnya Shift, 7. 943 00:49:03,530 --> 00:49:07,720 Dan ini adalah simbol paip, yang merupakan tidak kes yang lebih rendah L. Ia adalah salah satu yang 944 00:49:07,720 --> 00:49:09,440 yang sesuai di atas kunci Masukkan anda. 945 00:49:09,440 --> 00:49:12,870 Jadi, anda menggunakan dua ini untuk melambangkan logik Dan logik Or. 946 00:49:12,870 --> 00:49:18,180 >> Jadi ini hanya akan kembali benar jika jawapan adalah satu, dua, tiga, atau empat. 947 00:49:18,180 --> 00:49:23,030 Dan ini hanya akan kembali benar jika jawapan adalah di luar yang mana pihak. 948 00:49:23,030 --> 00:49:26,190 Jadi ia bukan satu, dua, tiga, atau empat. 949 00:49:26,190 --> 00:49:28,385 Dan cara anda akan menggunakan bahawa dalam ungkapan - 950 00:49:28,385 --> 00:49:29,990 >> ROB: Atau sifar atau lima. 951 00:49:29,990 --> 00:49:32,200 >> JOSEPH: Sifar atau lima. 952 00:49:32,200 --> 00:49:32,380 Maaf. 953 00:49:32,380 --> 00:49:33,320 Ya, ya, ya. 954 00:49:33,320 --> 00:49:34,180 OK. 955 00:49:34,180 --> 00:49:38,980 Dan di sini sekarang, dengan cara yang sama anda akan menggunakan ungkapan itu, yang lebih kecil 956 00:49:38,980 --> 00:49:42,000 sebelah ungkapan satu Jika bersyarat pernyataan, anda juga akan menggunakannya yang 957 00:49:42,000 --> 00:49:47,800 Cara yang sama dengan hanya meletakkannya di dalam kurungan penyata Jika. 958 00:49:47,800 --> 00:49:54,020 Jadi printf ini hanya akan api jika jawapan adalah satu, dua, tiga, atau empat. 959 00:49:54,020 --> 00:49:56,002 Soalan mengenai menggabungkan ungkapan? 960 00:49:56,002 --> 00:50:00,450 961 00:50:00,450 --> 00:50:04,240 >> Jadi terdapat satu lagi bersyarat membina kita memanggil Jika / lain. 962 00:50:04,240 --> 00:50:08,120 Jadi, pada asasnya, ini sekarang bermakna, OK, Jika sesuatu yang saya mahu untuk memeriksa tidak 963 00:50:08,120 --> 00:50:11,600 benar, kemudian pergi ke lain dan melakukan tindakan yang lain. 964 00:50:11,600 --> 00:50:15,570 Jadi dalam kes ini, saya bertanya pengguna untuk integer. 965 00:50:15,570 --> 00:50:17,790 Adalah integer lebih besar daripada sifar? 966 00:50:17,790 --> 00:50:18,310 Ya? 967 00:50:18,310 --> 00:50:20,100 Dengan baik, maka mereka memilih nombor positif. 968 00:50:20,100 --> 00:50:22,320 Jika tidak, maka ia mesti mempunyai menjadi negatif atau sifar. 969 00:50:22,320 --> 00:50:27,530 Jadi anda pilih nombor negatif atau sifar dalam kes ini. 970 00:50:27,530 --> 00:50:29,235 Ya. 971 00:50:29,235 --> 00:50:30,485 Atau sifar. 972 00:50:30,485 --> 00:50:36,320 973 00:50:36,320 --> 00:50:39,300 >> Dan maka kita juga mempunyai Jika / Else, Jika dan lain. 974 00:50:39,300 --> 00:50:45,640 Jadi ini membolehkan kita melaksanakan urutan perkara hanya jika yang pertama gagal. 975 00:50:45,640 --> 00:50:49,540 Jadi dalam kes ini, sekarang kita sedang membuat yang terakhir anda memilih sifar. 976 00:50:49,540 --> 00:50:53,080 Jadi, jika mereka tidak mengambil yang positif ataupun nombor negatif, maka mereka mesti 977 00:50:53,080 --> 00:50:53,640 telah memilih sifar. 978 00:50:53,640 --> 00:50:56,720 Jadi ia hanya pergi ke bawah rantaian seperti ini. 979 00:50:56,720 --> 00:50:59,960 >> Jadi satu contoh bagaimana seorang Jika adalah berbeza dari - 980 00:50:59,960 --> 00:51:02,590 satu Jika / lain adalah berbeza daripada hanya satu urutan Ifs. 981 00:51:02,590 --> 00:51:07,680 Dan ini adalah satu soalan biasa yang orang bertanya adalah, baik, jika anda mendapat seperti 982 00:51:07,680 --> 00:51:11,265 95 di CS50, apa yang akan ini program memberitahu anda? 983 00:51:11,265 --> 00:51:12,600 >> SPEAKER 5: Anda mendapat gred A. 984 00:51:12,600 --> 00:51:13,490 >> JOSEPH: Ya. 985 00:51:13,490 --> 00:51:14,960 Anda mendapat setiap tunggal salah seorang daripada mereka yang betul. 986 00:51:14,960 --> 00:51:17,130 Anda dapat A, anda mendapat B, anda mendapat C dan D, betul? 987 00:51:17,130 --> 00:51:19,770 Jadi semua ini mendapatkan dinilai teratur. 988 00:51:19,770 --> 00:51:23,570 Jadi sementara 95 adalah lebih besar daripada 90, ia juga lebih besar daripada 80, ia juga 989 00:51:23,570 --> 00:51:25,790 lebih besar daripada 70, dan ia juga lebih besar daripada 60. 990 00:51:25,790 --> 00:51:27,620 Jadi anda mendapat semua orang-orang gred. 991 00:51:27,620 --> 00:51:31,630 Dan saya menganggap anda akan hanya mahu A. 992 00:51:31,630 --> 00:51:34,060 >> Cara untuk menetapkan bahawa adalah untuk menggantikan mereka yang lain / Jika 's. 993 00:51:34,060 --> 00:51:37,540 Jadi dalam senario ini, ia melihat bahawa 95 adalah lebih besar daripada 90, dan kemudian ia 994 00:51:37,540 --> 00:51:38,885 tidak menilai selebihnya penyata. 995 00:51:38,885 --> 00:51:41,900 996 00:51:41,900 --> 00:51:43,150 Apa-apa soalan tentang itu? 997 00:51:43,150 --> 00:51:48,580 998 00:51:48,580 --> 00:51:52,470 >> Jadi terdapat satu lagi jenis bersyarat struktur yang kami ada di sini yang kami 999 00:51:52,470 --> 00:51:53,390 memanggil satu kenyataan suis. 1000 00:51:53,390 --> 00:51:57,390 Jadi ini membolehkan anda untuk memeriksa pada dasarnya apa nilai nombor yang anda meletakkan 1001 00:51:57,390 --> 00:51:59,000 ke dalam penyata suis. 1002 00:51:59,000 --> 00:52:03,200 Jadi, dalam senario ini, kita beralih pada n, dan kami berkata, oh, jika n 1003 00:52:03,200 --> 00:52:04,710 satu, kemudian mencetak kenyataan itu. 1004 00:52:04,710 --> 00:52:07,910 Dan kemudian memecahkan, yang bermaksud keluar keluar daripada penyata suis. 1005 00:52:07,910 --> 00:52:12,670 >> Jika ia bukan satu, maka, baik, hanya akhirnya menyemak semua kes-kes. 1006 00:52:12,670 --> 00:52:16,280 Dan sebagainya ia memeriksa jika ia satu atau dua atau tiga, dan ia mencetak sewajarnya. 1007 00:52:16,280 --> 00:52:19,780 Dan apa kata kunci yang lalai ini turun di sini cara adalah jika mereka tidak memasuki mana-mana 1008 00:52:19,780 --> 00:52:21,690 daripada mereka, kemudian berkata tidak sah. 1009 00:52:21,690 --> 00:52:25,910 Jadi katakan saya meminta n dan pengguna memberikan saya empat. 1010 00:52:25,910 --> 00:52:29,470 Nah, ia perlawanan tiada kes-kes, jadi ia akan mencetak apa yang di 1011 00:52:29,470 --> 00:52:30,540 seksyen lalai. 1012 00:52:30,540 --> 00:52:31,180 Ya, soalan? 1013 00:52:31,180 --> 00:52:32,614 >> SPEAKER 5: Bolehkah anda menggunakan Boolean ungkapan dan bukan 1014 00:52:32,614 --> 00:52:33,570 satu, dua, atau tiga? 1015 00:52:33,570 --> 00:52:36,940 >> JOSEPH: Jadi soalan itu boleh anda gunakan Ungkapan Boolean bukan satu, 1016 00:52:36,940 --> 00:52:37,940 dua, dan tiga? 1017 00:52:37,940 --> 00:52:40,520 Dan dalam C, saya percaya anda tidak boleh berbuat demikian. 1018 00:52:40,520 --> 00:52:44,320 Tetapi dalam bahasa lain, yang anda mungkin hadapi di akhir 1019 00:52:44,320 --> 00:52:46,460 semester seperti JavaScript, anda boleh. 1020 00:52:46,460 --> 00:52:50,050 Nah, anda akan mempunyai untuk mengira pertama bahawa nilai dan kemudian menggunakannya dalam 1021 00:52:50,050 --> 00:52:50,650 menukar kenyataan. 1022 00:52:50,650 --> 00:52:50,930 Yeah? 1023 00:52:50,930 --> 00:52:54,760 >> ROB: Jadi sebahagian daripada manfaat suis kenyataan adalah fikirkan jika anda melakukan ini 1024 00:52:54,760 --> 00:52:58,680 sebagai Jika / lain, jadi seperti jika n sama sama dengan satu atau apa sahaja. 1025 00:52:58,680 --> 00:53:00,300 Lagi / Jika n sama sama dua, apa sahaja. 1026 00:53:00,300 --> 00:53:01,960 Lagi / Jika n sama sama tiga. 1027 00:53:01,960 --> 00:53:05,930 Jadi cara program itu akan dijalankan adalah ia berurutan akan turun senarai itu 1028 00:53:05,930 --> 00:53:07,500 dan cek, adalah n satu? 1029 00:53:07,500 --> 00:53:08,040 Nope. 1030 00:53:08,040 --> 00:53:09,070 N dua? 1031 00:53:09,070 --> 00:53:09,490 Nope. 1032 00:53:09,490 --> 00:53:10,940 N tiga? 1033 00:53:10,940 --> 00:53:11,710 Yeah. 1034 00:53:11,710 --> 00:53:12,610 Melakukan ini. 1035 00:53:12,610 --> 00:53:15,270 >> Manakala dengan penyata suis, ia sebenarnya mampu untuk menyusun ia menjadi 1036 00:53:15,270 --> 00:53:16,360 benar-benar cepat. 1037 00:53:16,360 --> 00:53:19,550 Dan sebaik sahaja ia berkata suis, ia berkata, semua betul, n adalah dua, saya 1038 00:53:19,550 --> 00:53:23,060 dengan serta-merta akan melompat ke mana Saya sepatutnya bermula melaksanakan. 1039 00:53:23,060 --> 00:53:26,080 Saya tidak akan periksa, adalah n satu, n dua? 1040 00:53:26,080 --> 00:53:28,860 Ia segera boleh mula melakukan apa yang ia sepatutnya lakukan. 1041 00:53:28,860 --> 00:53:33,830 >> Dan kerana itu, ia tidak boleh mengambil syarat Boolean. 1042 00:53:33,830 --> 00:53:36,480 Atau jika tidak, ia akan perlu melakukan berurutan, seperti, semua betul, adalah n 1043 00:53:36,480 --> 00:53:37,820 lebih besar daripada sifar? 1044 00:53:37,820 --> 00:53:41,140 Lagi yang n lebih besar daripada 10 atau apa sahaja. 1045 00:53:41,140 --> 00:53:44,780 >> JOSEPH: Dalam kes ini, jika anda menggunakan Jika / Else, Jika, kemudian suis akan 1046 00:53:44,780 --> 00:53:47,792 berjalan kira-kira tiga kali lebih cepat daripada Jika / Else, Jika. 1047 00:53:47,792 --> 00:53:53,060 1048 00:53:53,060 --> 00:53:56,040 Kami boleh mengatur suis dalam apa-apa dengan cara yang kita tidak memecahkan 1049 00:53:56,040 --> 00:53:57,520 selepas setiap kes. 1050 00:53:57,520 --> 00:54:00,960 Jadi dalam kes ini, saya pembahagian yang nombor yang kita pilih ke dalam satu dan 1051 00:54:00,960 --> 00:54:04,250 dua bukan jumlah yang tinggi dan tiga yang nombor yang tinggi. 1052 00:54:04,250 --> 00:54:08,290 >> Jadi dalam kes ini, jika n adalah salah satu atau dua, ia akan melanda kes itu dan kemudian ia akan 1053 00:54:08,290 --> 00:54:10,640 jatuh melalui, kerana tidak ada rehat. 1054 00:54:10,640 --> 00:54:11,610 Dan ia akan berakhir di sini. 1055 00:54:11,610 --> 00:54:15,360 Jadi, jika kita memilih satu, ia akan melakukan printf yang dan kemudian memecahkan supaya tiada 1056 00:54:15,360 --> 00:54:17,610 ini dilaksanakan. 1057 00:54:17,610 --> 00:54:21,870 Dan sudah tentu, jika mereka masuk dalam tiga atau sesuatu yang lain, maka ia akan melangkau 1058 00:54:21,870 --> 00:54:25,320 mereka dan tidak pergi ke sana, dan ia akan melaksanakan sebaliknya 1059 00:54:25,320 --> 00:54:27,490 garis sepadan. 1060 00:54:27,490 --> 00:54:29,390 Adakah terdapat apa-apa soalan tentang itu? 1061 00:54:29,390 --> 00:54:29,780 Ya? 1062 00:54:29,780 --> 00:54:32,642 >> SPEAKER 4: Adakah anda mendapat ralat jika anda mempunyai berehat selepas kes satu tetapi ia 1063 00:54:32,642 --> 00:54:34,550 tidak mempunyai sesuatu untuk itu lakukan? 1064 00:54:34,550 --> 00:54:37,820 >> JOSEPH: Jadi soalan itu akan anda ralat jika anda mempunyai rehat selepas 1065 00:54:37,820 --> 00:54:39,730 dalam hal keadaan kes satu tetapi tiada apa-apa yang perlu dilakukan? 1066 00:54:39,730 --> 00:54:41,520 Dan jawapannya tidak. 1067 00:54:41,520 --> 00:54:43,172 Anda tidak akan benar-benar mendapatkan ralat. 1068 00:54:43,172 --> 00:54:44,590 Ya, mm hmm. 1069 00:54:44,590 --> 00:54:54,540 >> Jadi sebagai jenis perubahan sedikit di sini, Saya akan meletakkan printf di sini. 1070 00:54:54,540 --> 00:54:55,790 Whoops. 1071 00:54:55,790 --> 00:55:00,994 1072 00:55:00,994 --> 00:55:04,880 Jadi apa ini akan mencetak jika Saya meletakkan satu dalam sebagai input? 1073 00:55:04,880 --> 00:55:07,530 1074 00:55:07,530 --> 00:55:07,770 Yeah. 1075 00:55:07,770 --> 00:55:10,360 Ia akan memberitahu anda ia tidak mengambil sebilangan besar dua kali, bukan? 1076 00:55:10,360 --> 00:55:13,500 Kerana ia akan melanda kes pertama, ia tidak akan berbuka, dan ia akan jatuh 1077 00:55:13,500 --> 00:55:15,730 melalui dengan kes kedua. 1078 00:55:15,730 --> 00:55:16,950 Apa-apa soalan tentang itu? 1079 00:55:16,950 --> 00:55:18,280 >> ROB: Adakah anda mempunyai soalan lain? 1080 00:55:18,280 --> 00:55:20,840 >> JOSEPH: OK, sejuk. 1081 00:55:20,840 --> 00:55:22,400 Baiklah. 1082 00:55:22,400 --> 00:55:25,780 Jadi ada sesuatu yang lain yang kita panggil pengendali pertigaan mana merupakan 1083 00:55:25,780 --> 00:55:29,010 sintaks silih ganti untuk melakukan Jika dan maka yang lain. 1084 00:55:29,010 --> 00:55:30,470 Dan ia membolehkan anda melakukan semuanya dalam satu baris. 1085 00:55:30,470 --> 00:55:34,110 Jadi, dalam program ini, Saya meminta pengguna untuk n. 1086 00:55:34,110 --> 00:55:37,190 Dan jika n adalah lebih besar daripada 100, saya memberitahu mereka mereka memilih bilangan yang tinggi. 1087 00:55:37,190 --> 00:55:39,560 Lagi yang saya memberitahu mereka bahawa mereka memilih nombor yang rendah. 1088 00:55:39,560 --> 00:55:43,030 >> Oleh itu, kita boleh menggunakan sintaks benar-benar panjang ini, tali, S, dan kemudian memeriksa jika n adalah 1089 00:55:43,030 --> 00:55:45,260 melebihi 100 dan menetapkan dengan sewajarnya. 1090 00:55:45,260 --> 00:55:49,450 Tetapi kita boleh membuat ini lebih ringkas dengan menggunakan sintaks ini pengendali pertigaan 1091 00:55:49,450 --> 00:55:52,090 yang melibatkan soalan tanda dan noktah bertindih. 1092 00:55:52,090 --> 00:55:55,070 Jadi tanda tanya pada dasarnya bertanya soalan, betul? 1093 00:55:55,070 --> 00:55:56,625 >> ROB: Mungkin zum dalam pada itu. 1094 00:55:56,625 --> 00:55:57,372 >> JOSEPH: Ya. 1095 00:55:57,372 --> 00:56:00,210 Mata yang bagus. 1096 00:56:00,210 --> 00:56:02,550 Jadi ini adalah pengendali pertigaan. 1097 00:56:02,550 --> 00:56:06,100 Saya mula-mula bertanya soalan, n lebih besar daripada 100? 1098 00:56:06,100 --> 00:56:09,770 Jika ia, maka saya melaksanakan yang pertama sebahagian sebelum kolon. 1099 00:56:09,770 --> 00:56:13,360 Jika tidak, maka saya melaksanakan Bahagian kedua selepas kolon. 1100 00:56:13,360 --> 00:56:16,640 Jadi, jika n adalah lebih besar daripada 100, maka ia picks tinggi dan meletakkan 1101 00:56:16,640 --> 00:56:18,360 itu ke dalam tali s. 1102 00:56:18,360 --> 00:56:22,170 Jika n adalah kurang daripada 100, ia picks rendah dan kemudian meletakkan itu ke dalam tali s. 1103 00:56:22,170 --> 00:56:30,186 Supaya akan memeluwap sebahagian besar ini ke dalam hanya garis yang satu. 1104 00:56:30,186 --> 00:56:32,010 >> SPEAKER 5: Adakah itu popular? 1105 00:56:32,010 --> 00:56:36,070 >> JOSEPH: Ya, ia adalah agak popular untuk perkara di mana pada dasarnya anda mahu 1106 00:56:36,070 --> 00:56:38,700 jangan tugasan berdasarkan beberapa jenis keadaan. 1107 00:56:38,700 --> 00:56:43,110 Dan dalam kes ini, kita sedang berusaha untuk menetapkan nilai kepada rentetan s. 1108 00:56:43,110 --> 00:56:44,840 Ia tidak begitu - 1109 00:56:44,840 --> 00:56:47,670 Saya rasa saya tidak benar-benar lebih suka dalam kes-kes lain. 1110 00:56:47,670 --> 00:56:49,390 Tetapi ia amat berguna untuk tugasan ini. 1111 00:56:49,390 --> 00:56:54,490 >> ROB: Itulah corak agak biasa di mana anda mempunyai beberapa pembolehubah yang 1112 00:56:54,490 --> 00:56:58,200 anda akan katakan, jika sesuatu, tetapkan berubah-ubah ini kepada satu nilai; lagi, tetapkan 1113 00:56:58,200 --> 00:56:59,810 berubah-ubah ini kepada nilai yang lain. 1114 00:56:59,810 --> 00:57:03,360 Dan itu adalah senario di mana menggunakan pertigaan a. 1115 00:57:03,360 --> 00:57:05,220 >> JOSEPH: Dan anda menyimpan banyak garis-garis, bukan? 1116 00:57:05,220 --> 00:57:08,090 Dan ia hanya membuat kod anda boleh dikatakan sedikit lebih senang dibaca. 1117 00:57:08,090 --> 00:57:08,635 Ya, soalan? 1118 00:57:08,635 --> 00:57:12,384 >> SPEAKER 6: Untuk pertigaan, anda boleh pergi, setaraf tali s s, tanda tanya? 1119 00:57:12,384 --> 00:57:15,280 Dan kemudian anda boleh mempunyai, katakan, lima pilihan yang berbeza. 1120 00:57:15,280 --> 00:57:18,310 Dan bergantung kepada apa bilangan n telah, anda akan memilih salah seorang daripada mereka? 1121 00:57:18,310 --> 00:57:22,210 >> JOSEPH: Jadi soalan itu, adakah jenis sintaks mana anda boleh melakukan tali 1122 00:57:22,210 --> 00:57:25,910 s sama n, dan kemudian mempunyai lebih daripada dua pilihan selepas itu tanda tanya? 1123 00:57:25,910 --> 00:57:29,740 Dan jawapan yang mudah adalah tidak, tidak ada benar-benar cara yang baik untuk melakukan itu melainkan jika 1124 00:57:29,740 --> 00:57:33,850 anda mahu sarang pertigaan berganda operator di dalam satu sama lain. 1125 00:57:33,850 --> 00:57:38,050 >> Anda boleh melakukan seperti n lebih daripada 100, tanda tanya, dan kemudian satu lagi 1126 00:57:38,050 --> 00:57:41,850 pengendali pertigaan, n lebih besar daripada 50, tanda tanya, dan sarang dengan cara itu. 1127 00:57:41,850 --> 00:57:45,240 Tetapi dalam senario itu, kod anda adalah mendapatkan jenis yang tidak boleh dibaca dan tidak kemas, 1128 00:57:45,240 --> 00:57:47,920 dan ia mungkin lebih baik untuk hanya pergi ke Jika kenyataan / lain pada ketika itu. 1129 00:57:47,920 --> 00:57:54,530 >> ROB: Dan juga, sebagai nota sampingan, PHP salah melaksanakan pertigaan yang 1130 00:57:54,530 --> 00:57:58,053 pengendali itu yang ternaries bersarang tidak bekerja seperti yang sepatutnya. 1131 00:57:58,053 --> 00:57:58,840 >> JOSEPH: Yeah. 1132 00:57:58,840 --> 00:58:01,170 Jadi ia mendapat sedikit mengelirukan, terutamanya apabila anda pergi 1133 00:58:01,170 --> 00:58:02,145 untuk bahasa yang berbeza. 1134 00:58:02,145 --> 00:58:04,810 >> ROB: Ia mengelirukan cukup bahawa bahasa adalah salah mengenainya. 1135 00:58:04,810 --> 00:58:08,030 1136 00:58:08,030 --> 00:58:11,510 >> JOSEPH: Jadi sebenarnya, hanya untuk menjelaskan, tidak semua orang tahu apa yang 1137 00:58:11,510 --> 00:58:13,900 % S tidak di sini? 1138 00:58:13,900 --> 00:58:15,650 Apa-apa soalan tentang itu? 1139 00:58:15,650 --> 00:58:19,760 Saya rasa hanya untuk kamera,% s pada dasarnya membolehkan kita meletakkan pemegang tempat yang 1140 00:58:19,760 --> 00:58:20,790 untuk rentetan. 1141 00:58:20,790 --> 00:58:23,920 Dan kemudian pada akhirnya, kita menentukan bahawa berubah-ubah kita mahu dimasukkan ke dalam ini 1142 00:58:23,920 --> 00:58:25,500 pemegang tempat s. 1143 00:58:25,500 --> 00:58:27,730 Jadi yang pada dasarnya mengambil s dan ia meletakkannya di sini. 1144 00:58:27,730 --> 00:58:32,130 Dan kemudian ia akan mencetak, anda pilih yang tinggi atau anda pilih nombor yang rendah. 1145 00:58:32,130 --> 00:58:33,770 OK. 1146 00:58:33,770 --> 00:58:36,970 >> Jadi gelung membolehkan anda untuk melakukan perkara-perkara dalam usul bulat, bukan? 1147 00:58:36,970 --> 00:58:40,300 Anda mungkin temui ini dalam Gores dalam bentuk gelung Selamanya 1148 00:58:40,300 --> 00:58:45,650 atau Ulang Sehingga atau Ulang tertentu beberapa kali. 1149 00:58:45,650 --> 00:58:47,540 Lalu mengapa ini baik untuk kita? 1150 00:58:47,540 --> 00:58:51,500 Nah, dalam C, mari kita katakan kita ada ini lagu dilaksanakan di Scratch bahawa 1151 00:58:51,500 --> 00:58:53,450 menyanyi, ini adalah lagu yang tidak pernah berakhir. 1152 00:58:53,450 --> 00:58:55,710 Ia hanya pergi pada dan pada dan selama-lamanya dan selama-lamanya. 1153 00:58:55,710 --> 00:58:59,395 Nah, anda tidak boleh benar-benar membuat satu program yang yang mempunyai nombor terhingga printf 1154 00:58:59,395 --> 00:59:00,850 kenyataan di dalamnya, bukan? 1155 00:59:00,850 --> 00:59:04,900 >> Jadi dalam senario ini tertentu, salah satu cara bahawa anda boleh membuat kerja-kerja ini dan 1156 00:59:04,900 --> 00:59:09,330 untuk menjadikannya mencetak selama-lamanya adalah untuk sebaliknya menggunakan gelung Walaupun. 1157 00:59:09,330 --> 00:59:13,640 Jadi gelung Walaupun akan melaksanakan apa yang dalam badan kedua-dua penyokong gigi yang 1158 00:59:13,640 --> 00:59:17,250 kepunyaannya berdasarkan apa keadaan ini. 1159 00:59:17,250 --> 00:59:21,170 Jadi dalam contoh ini tertentu sebelum ini, jika kita ingin mencetak ini selama-lamanya, apa yang 1160 00:59:21,170 --> 00:59:23,590 kita mungkin lakukan? 1161 00:59:23,590 --> 00:59:25,190 Nah, pasti, bukan? 1162 00:59:25,190 --> 00:59:32,290 >> Jadi ini jenis menggabungkan idea beberapa ungkapan Boolean 1163 00:59:32,290 --> 00:59:33,610 bersama-sama dengan gelung. 1164 00:59:33,610 --> 00:59:35,780 Dan kita belajar tentang Boolean ungkapan sebelumnya. 1165 00:59:35,780 --> 00:59:39,650 Jadi apabila keadaan bahagian dalam Walaupun itu masih benar, gelung ini 1166 00:59:39,650 --> 00:59:41,480 akan melaksanakan pada dan pada dan pada. 1167 00:59:41,480 --> 00:59:44,640 Dan dalam kes ini, jika kita hanya membekalkannya dengan benar, ini menyebabkan tidak terhad 1168 00:59:44,640 --> 00:59:49,310 gelung yang mencetak lagu pada dan pada dan menurut kehendak kami sebelum tanpa 1169 00:59:49,310 --> 00:59:52,410 mempunyai satu program yang mempunyai terhingga beberapa kenyataan printf, yang merupakan 1170 00:59:52,410 --> 00:59:55,220 tidak mungkin. 1171 00:59:55,220 --> 00:59:57,810 >> Jadi lebih compellingly, walaupun, anda boleh menggunakan ini dengan 1172 00:59:57,810 --> 00:59:59,710 berubah dan syarat. 1173 00:59:59,710 --> 01:00:04,420 Jadi katakan kita mahu mengulangi frasa, benar-benar gila, 10 kali. 1174 01:00:04,420 --> 01:00:08,380 Jadi apa yang anda boleh lakukan dengan gelung Walaupun adalah anda pertama boleh memulakan kaunter 1175 01:00:08,380 --> 01:00:10,860 luar boleh ubah daripada Walaupun gelung hingga 10. 1176 01:00:10,860 --> 01:00:14,360 Dan kemudian pada dasarnya, setiap kali anda pergi Walaupun melalui gelung, anda mencetak 1177 01:00:14,360 --> 01:00:19,090 penyata dan kemudian anda mengurangkan kaunter ubah sehingga pada akhirnya, 1178 01:00:19,090 --> 01:00:23,020 pada satu ketika, sekali kita menolak saya cukup kali, 1 dari saya kali cukup - 1179 01:00:23,020 --> 01:00:27,290 dan hanya untuk menjelaskan, saya tolak tolak bermakna saya sama saya tolak 1. 1180 01:00:27,290 --> 01:00:31,280 >> Yang pada dasarnya akan membawa saya turun ke titik di mana sekali saya mencecah sifar, ini 1181 01:00:31,280 --> 01:00:35,260 keadaan tidak lagi benar dan supaya ia keluar daripada gelung. 1182 01:00:35,260 --> 01:00:37,045 Jadi benar-benar gila hanya mencetak sebanyak 10 kali. 1183 01:00:37,045 --> 01:00:39,550 1184 01:00:39,550 --> 01:00:41,080 Apa-apa soalan mengenai gelung Walaupun? 1185 01:00:41,080 --> 01:00:44,580 1186 01:00:44,580 --> 01:00:46,790 OK. 1187 01:00:46,790 --> 01:00:50,550 >> Jadi ada cara yang boleh kita lakukan apa yang kita hanya lakukan dengan cara yang lebih ringkas dengan 1188 01:00:50,550 --> 01:00:51,715 apa yang kita panggil Bagi gelung. 1189 01:00:51,715 --> 01:00:55,750 Jadi gelung Untuk terdiri daripada pengawalan, keadaan, dan 1190 01:00:55,750 --> 01:00:58,950 mengemas kini, seperti yang kita mempunyai di hadapan dalam gelung Walaupun ini. 1191 01:00:58,950 --> 01:00:59,890 Jadi mari kita membaca. 1192 01:00:59,890 --> 01:01:02,900 Dalam gelung Walaupun ini, kami mempunyai pengawalan, maka kita mempunyai 1193 01:01:02,900 --> 01:01:04,260 keadaan yang kita diperiksa. 1194 01:01:04,260 --> 01:01:06,450 Dan kemudian kita mempunyai kemas kini langkah di atas. 1195 01:01:06,450 --> 01:01:10,060 >> Dengan gelung Kerana, ini pada dasarnya mengambil ketiga-tiga perkara dan memeluwap ia 1196 01:01:10,060 --> 01:01:11,370 ke dalam satu baris. 1197 01:01:11,370 --> 01:01:15,130 Jadi perkara pertama yang ia dalam Untuk gelung adalah pengawalan. 1198 01:01:15,130 --> 01:01:19,090 Dan kemudian anda lakukan dengan koma bernoktah, dan kemudian anda keadaan, yang saya 1199 01:01:19,090 --> 01:01:22,200 lebih besar daripada sifar pergi di sana, dan kemudian langkah kemas kini. 1200 01:01:22,200 --> 01:01:26,470 Jadi ini mendapat dilakukan di sangat hujung badan gelung. 1201 01:01:26,470 --> 01:01:28,790 Jadi kedua-dua program adalah yang hampir sama. 1202 01:01:28,790 --> 01:01:31,960 1203 01:01:31,960 --> 01:01:33,870 >> Apa-apa soalan? 1204 01:01:33,870 --> 01:01:37,000 Jadi apa yang salah satu perbezaan antara kedua-dua? 1205 01:01:37,000 --> 01:01:38,000 Bolehkah sesiapa menunjukkan ia keluar? 1206 01:01:38,000 --> 01:01:40,480 Ia mungkin agak halus. 1207 01:01:40,480 --> 01:01:41,930 Ia hanya satu perbezaan yang sangat kecil. 1208 01:01:41,930 --> 01:01:42,330 Ya? 1209 01:01:42,330 --> 01:01:49,008 >> SPEAKER 5: Anda tidak akan dapat menggunakan ubah saya yang di luar Untuk gelung 1210 01:01:49,008 --> 01:01:49,962 [Didengar]? 1211 01:01:49,962 --> 01:01:50,900 >> JOSEPH: Tepat sekali. 1212 01:01:50,900 --> 01:01:53,550 Jadi ini adalah sesuatu yang kita akan dapat kemudiannya dipanggil skop berubah-ubah. 1213 01:01:53,550 --> 01:01:56,610 Tetapi pada dasarnya, ini int kehidupan saya di luar gelung Walaupun ini. 1214 01:01:56,610 --> 01:01:59,800 Jadi sekali gelung Walaupun ini dilakukan melaksanakan, saya akan dapat menggunakan saya kemudian 1215 01:01:59,800 --> 01:02:00,880 di dalam program ini. 1216 01:02:00,880 --> 01:02:05,430 >> Manakala dengan ini Untuk gelung, int ini saya adalah scoped dalam ini Untuk gelung. 1217 01:02:05,430 --> 01:02:10,240 Dan kerana ia adalah di dalam bahagian ini gelung Untuk itu, yang bermula 1218 01:02:10,240 --> 01:02:13,200 di kurungan dan berakhir dengan pendakap kerinting di sana. 1219 01:02:13,200 --> 01:02:16,120 Apa-apa yang yang diisytiharkan di dalam di sini tidak boleh digunakan di luar. 1220 01:02:16,120 --> 01:02:20,420 Jadi, jika saya cuba menggunakan saya di luar, ia akan beritahu saya, simbol yang tidak diisytiharkan. 1221 01:02:20,420 --> 01:02:22,420 Dan pada dasarnya, saya tidak akan dapat menggunakannya. 1222 01:02:22,420 --> 01:02:28,460 >> ROB: Dan juga, 10 tahun yang lalu, dalam secara literal semua kes, pendakap kerinting adalah 1223 01:02:28,460 --> 01:02:31,140 apa yang anda digunakan untuk menentukan skop pembolehubah. 1224 01:02:31,140 --> 01:02:37,240 Jadi di sana, saya int sama dengan 10 diisytiharkan di dalam ini 1225 01:02:37,240 --> 01:02:38,520 set pendakap kerinting. 1226 01:02:38,520 --> 01:02:42,530 Dan demikian maka selagi anda cuba menggunakan saya sebelum pendakap kerinting ini, ia adalah baik. 1227 01:02:42,530 --> 01:02:47,090 1228 01:02:47,090 --> 01:02:51,460 Anda mungkin melihat apabila anda menaip membuat, anda melihat sengkang, sengkang, STD, sama, C99. 1229 01:02:51,460 --> 01:02:57,100 >> Jadi yang merupakan versi selepas C yang GCC telah melaksanakan yang juga memberikan 1230 01:02:57,100 --> 01:02:58,740 jalan pintas ini. 1231 01:02:58,740 --> 01:03:03,505 Jadi ini digunakan untuk tidak dibenarkan di C. Dan anda boleh lihat mengapa, kerana int ini 1232 01:03:03,505 --> 01:03:07,600 Saya adalah di luar pendakap kerinting ini tetapi ia masih dianggap sebagai dalam 1233 01:03:07,600 --> 01:03:09,750 skop ini pendakap kerinting. 1234 01:03:09,750 --> 01:03:14,120 Tetapi ini adalah satu perkara yang sangat mudah, dan oleh itu adalah lanjutan yang baik. 1235 01:03:14,120 --> 01:03:15,370 >> JOSEPH: Mana-mana soalan? 1236 01:03:15,370 --> 01:03:17,550 1237 01:03:17,550 --> 01:03:19,260 OK. 1238 01:03:19,260 --> 01:03:22,820 Jadi apa yang lebih berguna ialah bahawa kadang-kadang anda mahu jenis dinamik dalam 1239 01:03:22,820 --> 01:03:23,410 gelung anda, bukan? 1240 01:03:23,410 --> 01:03:26,350 Anda tidak mahu hanya semestinya mencetak betul-betul gila sepanjang masa, anda 1241 01:03:26,350 --> 01:03:28,650 mahu mengira turun dari 10 atau sesuatu. 1242 01:03:28,650 --> 01:03:32,010 Dan supaya anda boleh menggunakan pembolehubah kaunter di dalam gelung itu juga. 1243 01:03:32,010 --> 01:03:35,530 Dan dalam kes ini, program ini hanya mengira detik dari 10 semua jalan ke bawah. 1244 01:03:35,530 --> 01:03:39,260 Dan apakah ia tidak cetak? 1245 01:03:39,260 --> 01:03:42,790 Ia tidak mencetak sifar, betul, kerana apabila - 1246 01:03:42,790 --> 01:03:45,460 Ya, ia juga tidak mencetak 11. 1247 01:03:45,460 --> 01:03:49,200 >> Jadi ia tidak mencetak sifar, kerana apabila Saya adalah sifar, ingat, ia menilai 1248 01:03:49,200 --> 01:03:52,170 keadaan sebelum ia berlaku di untuk melaksanakan badan gelung. 1249 01:03:52,170 --> 01:03:56,820 Dan apabila saya adalah sifar, ini adalah palsu, maka ia tidak mencetak mengira turun 1250 01:03:56,820 --> 01:04:00,200 sifar, ia hanya akan paparkan pengiraan turun 10 semua jalan ke 1. 1251 01:04:00,200 --> 01:04:03,420 Jika kita benar-benar mahu ia mencetak sifar, maka kita akan meletakkan tanda sama 1252 01:04:03,420 --> 01:04:04,750 selepas ini lebih besar daripada tanda. 1253 01:04:04,750 --> 01:04:09,400 1254 01:04:09,400 --> 01:04:10,130 OK. 1255 01:04:10,130 --> 01:04:16,410 >> Jadi salah satu cara untuk melakukan pengesahan input, yang adalah apabila anda bertanya kepada pengguna untuk melakukan 1256 01:04:16,410 --> 01:04:18,620 sesuatu, anda ingin memastikan mereka ikuti arahan anda, adalah dengan menggunakan 1257 01:04:18,620 --> 01:04:19,400 gelung Walaupun, bukan? 1258 01:04:19,400 --> 01:04:22,990 Jadi dalam kes ini, saya meminta untuk nombor positif dan maka saya 1259 01:04:22,990 --> 01:04:23,810 menunggu input. 1260 01:04:23,810 --> 01:04:28,210 >> Dan kemudian saya diperiksa Walaupun input adalah kurang daripada sifar, terus bertanya mereka. 1261 01:04:28,210 --> 01:04:32,100 Jadi selagi mereka memberi saya nombor satu yang tidak positif, terus bertanya, 1262 01:04:32,100 --> 01:04:33,600 terus bertanya, terus bertanya. 1263 01:04:33,600 --> 01:04:35,860 Tetapi apa yang jenis pelik mengenai ini? 1264 01:04:35,860 --> 01:04:38,570 Atau apa yang nampaknya tidak optimum kira-kira struktur ini di sini? 1265 01:04:38,570 --> 01:04:44,282 1266 01:04:44,282 --> 01:04:44,758 Sesiapa sahaja? 1267 01:04:44,758 --> 01:04:45,234 Ya? 1268 01:04:45,234 --> 01:04:47,614 >> SPEAKER 6: Anda mengulangi arahan yang dua kali. 1269 01:04:47,614 --> 01:04:48,100 >> JOSEPH: Betul. 1270 01:04:48,100 --> 01:04:50,090 Oleh itu, kita mempunyai dua kenyataan printf di sini, bukan? 1271 01:04:50,090 --> 01:04:53,440 Jadi ada cara kita boleh mendapatkan ini hanya ke satu yang akan membuat kita 1272 01:04:53,440 --> 01:04:57,170 kod lebih mudah untuk membaca dan sedikit lebih bersih. 1273 01:04:57,170 --> 01:05:00,180 Dan kemudian kita tidak perlu telah Dapatkan dalam dua kali juga. 1274 01:05:00,180 --> 01:05:03,740 Dan salah satu cara anda boleh melakukan ini adalah dengan menggunakan gelung Do-Walaupun. 1275 01:05:03,740 --> 01:05:07,670 >> Dan gelung Do-Walaupun pada asasnya bentuk yang berbeza daripada gelung Walaupun di mana 1276 01:05:07,670 --> 01:05:11,460 apa yang ada di dalam pendakap kerinting mendapat dilaksanakan sekurang-kurangnya sekali. 1277 01:05:11,460 --> 01:05:14,840 Jadi di sini, saya mengisytiharkan, int input, di luar pertama. 1278 01:05:14,840 --> 01:05:18,100 Dan kemudian saya hanya mengatakan, lakukan ini arahan manakala input 1279 01:05:18,100 --> 01:05:19,140 adalah kurang daripada sifar. 1280 01:05:19,140 --> 01:05:20,530 Jadi ia mencecah Do pertama. 1281 01:05:20,530 --> 01:05:24,190 Ia akan sentiasa melaksanakan ini sekurang-kurangnya sekali, maka ia akan sentiasa meminta pengguna 1282 01:05:24,190 --> 01:05:25,960 untuk input sekurang-kurangnya sekali. 1283 01:05:25,960 --> 01:05:29,390 Dan kemudian ia menilai input yang, dan ia berlaku di dalam bulatan. 1284 01:05:29,390 --> 01:05:30,135 Ya, soalan? 1285 01:05:30,135 --> 01:05:32,602 >> SPEAKER 6: Adakah terdapat cara untuk melakukannya [Didengar] jenis, seperti jika anda berkata, 1286 01:05:32,602 --> 01:05:34,268 GetString, dan seseorang [didengar] 1287 01:05:34,268 --> 01:05:35,220 ada satu cara untuk [didengar] 1288 01:05:35,220 --> 01:05:40,060 >> JOSEPH: Jadi soalan itu, adakah cara untuk melakukan pengesahan input jika pengguna 1289 01:05:40,060 --> 01:05:41,850 tidak dimasukkan ke dalam hak jenis boleh ubah? 1290 01:05:41,850 --> 01:05:44,460 Jadi, jika kita meminta int dan mereka memberi kita tali sebagai ganti. 1291 01:05:44,460 --> 01:05:49,110 Dan dalam fungsi-fungsi yang kita melaksanakan untuk anda, GetInt, GetString dalam semua 1292 01:05:49,110 --> 01:05:52,680 fungsi-fungsi itu, mereka sebenarnya sudah melakukan yang jenis input jenis asas 1293 01:05:52,680 --> 01:05:54,120 pengesahan di bawah hood. 1294 01:05:54,120 --> 01:05:57,390 Jadi, jika anda menggunakan fungsi-fungsi yang kita memberi anda, anda tidak benar-benar perlu. 1295 01:05:57,390 --> 01:06:01,380 >> Tetapi jika anda mahu melihat lebih ke dalam bagaimana anda sebenarnya boleh melakukan itu, anda boleh melihat 1296 01:06:01,380 --> 01:06:03,360 di bawah hud di fail I/O-- 1297 01:06:03,360 --> 01:06:07,990 tidak memfailkan, standard I / O fungsi seperti membaca dari input standard dan 1298 01:06:07,990 --> 01:06:08,580 output standard. 1299 01:06:08,580 --> 01:06:10,630 Dan anda boleh mendapatkan rasa yang lebih baik bagaimana anda mungkin berbuat demikian. 1300 01:06:10,630 --> 01:06:13,670 >> ROB: Salah satu isu, walaupun, adalah khusus dengan contoh yang anda 1301 01:06:13,670 --> 01:06:17,070 berkata, anda mengharapkan rentetan dan saya memasukkan int satu. 1302 01:06:17,070 --> 01:06:20,110 Bagaimana anda membezakan antara sengaja mahu yang 1303 01:06:20,110 --> 01:06:23,130 tali 123 berbanding yang ingin int 123? 1304 01:06:23,130 --> 01:06:29,230 Jadi tali, ia cukup banyak tidak ada pengesahan, ia hanya apa sahaja yang mereka 1305 01:06:29,230 --> 01:06:31,600 memasuki anda akan mentafsir sebagai rentetan. 1306 01:06:31,600 --> 01:06:35,790 >> Int adalah lebih mudah, kerana tidak kira yang input anda mengambil dari pengguna, anda 1307 01:06:35,790 --> 01:06:37,470 sentiasa mengambil rentetan. 1308 01:06:37,470 --> 01:06:40,650 Dan sebagainya rentetan yang anda boleh kemudian cek, adalah semua ini 1309 01:06:40,650 --> 01:06:44,218 angka sebenarnya angka? 1310 01:06:44,218 --> 01:06:45,170 >> JOSEPH: OK. 1311 01:06:45,170 --> 01:06:46,420 Apa-apa soalan mengenai gelung Do-Walaupun? 1312 01:06:46,420 --> 01:06:49,170 >> ROB: Oh, dan ini juga - 1313 01:06:49,170 --> 01:06:55,130 akan kembali ke skop, yang agak biasa kesilapan cuba menggunakan beberapa tempatan 1314 01:06:55,130 --> 01:06:59,540 berubah-ubah dari dalam ini Do-Walaupun gelung di dalam keadaan ini. 1315 01:06:59,540 --> 01:07:02,850 Dan sebenarnya, jika kita hanya perlu lagi ambil ini dan berkata, input int sama 1316 01:07:02,850 --> 01:07:06,990 GetInt, maka pengkompil akan menjerit pada kita, kerana input tidak wujud 1317 01:07:06,990 --> 01:07:08,900 di luar skop ini pendakap kerinting. 1318 01:07:08,900 --> 01:07:10,792 >> JOSEPH: Dan itulah sebabnya kita perlu barisan ini di sini. 1319 01:07:10,792 --> 01:07:13,620 1320 01:07:13,620 --> 01:07:14,630 OK. 1321 01:07:14,630 --> 01:07:17,530 Jadi, anda juga boleh keluar daripada satu gelung awal jika anda mahu. 1322 01:07:17,530 --> 01:07:21,240 Jadi ini adalah cara yang berbeza melaksanakan apa yang kita hanya dilaksanakan. 1323 01:07:21,240 --> 01:07:24,340 Dan bukannya menggunakan keadaan dalam kurungan, kami menggunakan 1324 01:07:24,340 --> 01:07:26,920 Sekiranya kenyataan dalam badan gelung Do-Walaupun. 1325 01:07:26,920 --> 01:07:30,000 >> Dan pada dasarnya, apabila input akhirnya lebih besar daripada sifar, kita akan 1326 01:07:30,000 --> 01:07:31,000 keluar daripada gelung. 1327 01:07:31,000 --> 01:07:33,420 Demikianlah kita akan pergi semua jalan ke sini. 1328 01:07:33,420 --> 01:07:37,920 Dan anda dapat melihat bahawa akan ini mungkin akan diutamakan dalam ini 1329 01:07:37,920 --> 01:07:39,870 senario, kerana ia sedikit bersih sedikit dan sedikit 1330 01:07:39,870 --> 01:07:41,380 sedikit lebih mudah untuk dibaca. 1331 01:07:41,380 --> 01:07:45,210 Manakala ini, anda jenis mempunyai garis tambahan di dalamnya. 1332 01:07:45,210 --> 01:07:47,890 Ia hanya sedikit lebih hodoh, Saya rasa, dalam erti kata yang. 1333 01:07:47,890 --> 01:07:48,530 Ya, soalan? 1334 01:07:48,530 --> 01:07:52,178 >> SPEAKER 4: Adakah memecahkan hanya mendapat kamu dari satu set penyokong gigi? 1335 01:07:52,178 --> 01:07:53,080 >> JOSEPH: Betul. 1336 01:07:53,080 --> 01:07:58,100 Jadi soalan itu akan putus hanya kamu dari satu gelung? 1337 01:07:58,100 --> 01:07:59,280 Dan jawapannya adalah ya. 1338 01:07:59,280 --> 01:08:04,290 Jadi jika anda telah bersarang Untuk gelung bagi Sebagai contoh, jika saya mempunyai Untuk int Saya sama dengan 0 1339 01:08:04,290 --> 01:08:09,040 sehingga 10 dan kemudian Untuk int J sama dengan 0 sehingga 10, jika saya keluar daripada dalaman 1340 01:08:09,040 --> 01:08:12,310 gelung, saya masih akan pergi untuk gelung luar. 1341 01:08:12,310 --> 01:08:15,760 Jadi ia akan menyimpan melaksanakan operasi di luar. 1342 01:08:15,760 --> 01:08:17,640 Apa-apa soalan tentang itu? 1343 01:08:17,640 --> 01:08:18,000 Ya? 1344 01:08:18,000 --> 01:08:21,760 >> SPEAKER 5: Tetapi memecahkan hanya berfungsi untuk mendapat penyokong gigi kerinting, bukan untuk yang lain 1345 01:08:21,760 --> 01:08:22,230 pernyataan itu? 1346 01:08:22,230 --> 01:08:22,700 [Didengar] 1347 01:08:22,700 --> 01:08:27,620 >> JOSEPH: Jadi soalan itu akan putus hanya fungsi untuk gelung berbanding dengan 1348 01:08:27,620 --> 01:08:29,014 kenyataan lain seperti Jika? 1349 01:08:29,014 --> 01:08:32,950 Dan ya, iaitu kes itu, kerana anda memecah keluar dari gelung, betul, 1350 01:08:32,950 --> 01:08:33,630 dalam erti kata yang. 1351 01:08:33,630 --> 01:08:37,215 >> ROB: Dalam kebanyakan kes, ia ini adalah jenis Jika sesuatu, 1352 01:08:37,215 --> 01:08:37,660 kemudian memecahkan. 1353 01:08:37,660 --> 01:08:41,580 Jadi anda tidak perlu memecahkan terpakai bagi Jika yang membungkus di sekitarnya. 1354 01:08:41,580 --> 01:08:45,250 Dan juga, ini tidak banyak gelung, tetapi ingat bahawa suis juga 1355 01:08:45,250 --> 01:08:46,340 dipecahkan daripada oleh rehat. 1356 01:08:46,340 --> 01:08:48,390 Kami melihat rehat yang digunakan dengan suis sebelum ini. 1357 01:08:48,390 --> 01:08:52,189 >> JOSEPH: Dan anda juga boleh menggunakan mereka dalam gelung Walaupun dan Untuk gelung. 1358 01:08:52,189 --> 01:08:54,560 Apa-apa soalan? 1359 01:08:54,560 --> 01:08:55,830 OK. 1360 01:08:55,830 --> 01:08:57,779 Jadi sehingga seterusnya adalah fungsi. 1361 01:08:57,779 --> 01:09:01,500 Jadi anda mungkin telah menggunakan salah satu BYOB ini blok dalam projek Conteng. 1362 01:09:01,500 --> 01:09:04,569 Dan ini pada dasarnya membolehkan anda untuk menentukan satu set 1363 01:09:04,569 --> 01:09:05,680 arahan untuk diikuti. 1364 01:09:05,680 --> 01:09:09,569 >> Dan apa yang saya maksudkan dengan itu adalah mari kita fikirkan kembali ke matematik, kanan, algebra. 1365 01:09:09,569 --> 01:09:13,370 Anda mempunyai apa yang kita panggil fungsi x, beberapa berubah-ubah, dan katakan ini 1366 01:09:13,370 --> 01:09:16,080 fungsi f x sama x campur 5. 1367 01:09:16,080 --> 01:09:20,410 Jadi, anda boleh memikirkan f x kerana ini hitam kotak yang mengambil masa 15 dalam dan kemudian 1368 01:09:20,410 --> 01:09:22,590 menghasilkan 20. 1369 01:09:22,590 --> 01:09:26,630 >> Jadi secara umum, fungsi adalah sesuatu yang mengambil beberapa input dan 1370 01:09:26,630 --> 01:09:27,880 kemudian menghasilkan beberapa output. 1371 01:09:27,880 --> 01:09:31,920 1372 01:09:31,920 --> 01:09:32,960 Dan mengapa fungsi yang baik? 1373 01:09:32,960 --> 01:09:35,189 Mereka yang baik untuk beberapa sebab. 1374 01:09:35,189 --> 01:09:40,470 Begitu juga seseorang mahu mengambil menikam apa organisasi bermakna? 1375 01:09:40,470 --> 01:09:42,630 Dari segi mengapa fungsi yang berguna? 1376 01:09:42,630 --> 01:09:43,090 Ya? 1377 01:09:43,090 --> 01:09:44,735 >> SPEAKER 4: Ia menjadikan anda kod lebih senang dibaca. 1378 01:09:44,735 --> 01:09:45,399 >> JOSEPH: Betul. 1379 01:09:45,399 --> 01:09:47,670 Jadi salah satu perkara adalah ia membuat kod anda lebih mudah dibaca, bukan? 1380 01:09:47,670 --> 01:09:53,710 Sebaliknya mempunyai seperti int x sama x kali x kali x, saya boleh mempunyai kuasa tiga x, 1381 01:09:53,710 --> 01:09:57,190 yang lebih mudah dibaca dan lebih mudah difahami oleh pembaca. 1382 01:09:57,190 --> 01:10:01,150 >> Organisasi juga dari segi membelah sehingga kod anda ke dalam terurus 1383 01:10:01,150 --> 01:10:05,610 bahagian, supaya bukannya cuba melaksanakan ini semua dalam satu bahagian panjang 1384 01:10:05,610 --> 01:10:09,070 dalam utama, anda jenis boleh berpecah ia sehingga ke dalam seperti, OK, mari kita menulis fungsi 1385 01:10:09,070 --> 01:10:11,910 kepada kiub sesuatu, mari kita menulis berfungsi untuk persegi sesuatu. 1386 01:10:11,910 --> 01:10:15,950 Dengan cara itu anda boleh berpecah ia sehingga ke kecil, bahagian kecil yang anda boleh menangani 1387 01:10:15,950 --> 01:10:18,944 bertentangan dengan cuba untuk menangani masalah besar sekaligus. 1388 01:10:18,944 --> 01:10:21,806 >> ROB: Atau walaupun kecil, bahagian-bahagian kecil yang anda dan pasangan boleh menangani. 1389 01:10:21,806 --> 01:10:22,283 >> JOSEPH: Yeah. 1390 01:10:22,283 --> 01:10:23,855 >> ROB: Jadi, daripada kedua-dua anda cuba untuk implan satu 1391 01:10:23,855 --> 01:10:27,170 berfungsi pada masa yang sama. 1392 01:10:27,170 --> 01:10:28,800 >> JOSEPH: Pemudahan. 1393 01:10:28,800 --> 01:10:30,050 Sesiapa mahu mengambil meneka? 1394 01:10:30,050 --> 01:10:33,080 1395 01:10:33,080 --> 01:10:33,410 Ya? 1396 01:10:33,410 --> 01:10:34,675 >> SPEAKER 5: Lebih pengulangan. 1397 01:10:34,675 --> 01:10:35,260 >> JOSEPH: Betul. 1398 01:10:35,260 --> 01:10:39,210 Jadi satu perkara yang boleh anda lakukan dengan pemudahan adalah bahawa itu jenis di 1399 01:10:39,210 --> 01:10:42,520 garis yang sama seperti semula kebolehgunaan ialah sekali saya menulis fungsi kiub, saya boleh 1400 01:10:42,520 --> 01:10:45,410 hanya menggunakan bahawa lebih dan lebih dan lebih sekali lagi dalam program saya bukan menaip 1401 01:10:45,410 --> 01:10:49,610 x kali x kali x lebih dan berulang-ulang kali. 1402 01:10:49,610 --> 01:10:52,980 Dan pemudahan di sini juga hanya bermakna ia membuat jenis kod anda 1403 01:10:52,980 --> 01:10:55,900 lebih mudah untuk debug sekali anda berpecah sehingga ini ke dalam fungsi. 1404 01:10:55,900 --> 01:10:58,250 Kerana anda boleh menyetempatkan mana masalah anda adalah jenis. 1405 01:10:58,250 --> 01:11:00,910 1406 01:11:00,910 --> 01:11:02,160 Apa-apa soalan? 1407 01:11:02,160 --> 01:11:04,200 1408 01:11:04,200 --> 01:11:06,540 >> Jadi idea yang lain adalah abstraksi, bukan? 1409 01:11:06,540 --> 01:11:07,390 Ini kotak hitam. 1410 01:11:07,390 --> 01:11:11,360 Seperti yang anda tahu apa yang tidak GetInt untuk menerima input daripada pengguna? 1411 01:11:11,360 --> 01:11:12,510 Kami telah tidak benar-benar memberitahu anda, bukan? 1412 01:11:12,510 --> 01:11:15,670 Semua kita telah memberitahu anda adalah GetInt tidak apa yang dikatakan, ia. 1413 01:11:15,670 --> 01:11:18,440 Jadi, walaupun kita tidak memberitahu anda bagaimana ia berfungsi, anda masih tahu. 1414 01:11:18,440 --> 01:11:21,670 >> Jadi dalam kes ini, ini adalah fungsi empat kali ganda yang tidak 1415 01:11:21,670 --> 01:11:24,520 perkara yang berbeza untuk input untuk menghasilkan output. 1416 01:11:24,520 --> 01:11:28,050 Dan anda boleh empat kali ganda bilangan yang dengan mendarabkan ia dengan empat. 1417 01:11:28,050 --> 01:11:30,790 Atau anda boleh apa yang kita panggil sedikit beralih ia dengan dua. 1418 01:11:30,790 --> 01:11:32,960 Dan kami akan meliputi ini sedikit kemudian. 1419 01:11:32,960 --> 01:11:36,570 Dan tidak ada keperluan untuk tahu bagaimana ini fungsi sebenarnya berfungsi selagi ia 1420 01:11:36,570 --> 01:11:37,640 kerja-kerja seperti yang dinyatakan. 1421 01:11:37,640 --> 01:11:40,740 >> Jadi di bawah hood, saya boleh seperti, kembali kali input 1422 01:11:40,740 --> 01:11:41,690 lapan dibahagikan dengan dua. 1423 01:11:41,690 --> 01:11:42,510 Dan anda tidak akan tahu, bukan? 1424 01:11:42,510 --> 01:11:44,970 Semua yang anda perlu tahu ialah ia melakukan apa yang ia berkata. 1425 01:11:44,970 --> 01:11:48,070 Jadi itu perkara yang berguna mengenai abstraksi. 1426 01:11:48,070 --> 01:11:52,910 >> Dan perkara yang lain adalah bentuk idea ini daripada localizing kod anda kepada satu 1427 01:11:52,910 --> 01:11:54,280 bahagian tertentu. 1428 01:11:54,280 --> 01:11:57,450 Jadi, jika anda mempunyai masalah, anda tidak perlu pergi di seluruh kod anda cuba 1429 01:11:57,450 --> 01:11:58,730 untuk menetapkan di mana masalah itu. 1430 01:11:58,730 --> 01:12:00,990 Jadi dalam kes ini, saya telah melaksanakan Cube salah. 1431 01:12:00,990 --> 01:12:02,820 Saya fikir kiub telah mendarabkan oleh tiga. 1432 01:12:02,820 --> 01:12:05,760 >> Jadi dalam kes ini, ini adalah salah satu program yang hanya telah membahagi dengan tiga 1433 01:12:05,760 --> 01:12:06,750 di mana-mana. 1434 01:12:06,750 --> 01:12:10,910 Dan terdapat satu lagi program yang telah kiub yang difaktorkan keluar ke satu majlis. 1435 01:12:10,910 --> 01:12:14,040 Dan sekarang jika saya mahu menetapkan kesilapan saya di sini, saya perlu menetapkan setiap baris 1436 01:12:14,040 --> 01:12:15,620 kod dalam program ini. 1437 01:12:15,620 --> 01:12:19,190 Manakala di sisi lain, jika saya menggunakan fungsi, saya hanya perlu untuk menukar 1438 01:12:19,190 --> 01:12:20,650 apa yang salah di satu tempat. 1439 01:12:20,650 --> 01:12:25,330 1440 01:12:25,330 --> 01:12:28,730 >> Jadi dalam bidang sains komputer, kita memanggil input dan output. 1441 01:12:28,730 --> 01:12:31,640 Input dipanggil parameter atau hujah-hujah, dan output dipanggil 1442 01:12:31,640 --> 01:12:32,950 kembali nilai-nilai. 1443 01:12:32,950 --> 01:12:39,000 Dan kita akan melihat bagaimana ini membantu kita jenis daripada menentukan fungsi dalam satu saat. 1444 01:12:39,000 --> 01:12:41,430 Jadi ini adalah definisi fungsi untuk cubing. 1445 01:12:41,430 --> 01:12:45,110 Jadi ia mengambil input, dan kemudian ia kembali bahawa masa beberapa 1446 01:12:45,110 --> 01:12:47,020 sendiri tiga kali. 1447 01:12:47,020 --> 01:12:48,020 Jadi mari kita memecahkan ini. 1448 01:12:48,020 --> 01:12:53,090 >> Jadi kita mempunyai header fungsi, yang pada dasarnya terdiri daripada tiga perkara. 1449 01:12:53,090 --> 01:12:56,050 Jadi kita mempunyai parameter, yang adalah, seperti yang saya katakan sebelum ini, 1450 01:12:56,050 --> 01:12:57,680 input ke dalam fungsi ini. 1451 01:12:57,680 --> 01:12:59,300 Dan kemudian kita memberikan fungsi nama. 1452 01:12:59,300 --> 01:13:00,740 Dalam kes ini, ia dipanggil kiub. 1453 01:13:00,740 --> 01:13:03,860 Dan kemudian kita menentukan apa jenis yang daripada nilai pulangan adalah. 1454 01:13:03,860 --> 01:13:06,760 >> Jadi dalam kes ini, fungsi kiub saya mengambil masa dalam integer dan ia juga 1455 01:13:06,760 --> 01:13:07,890 mengembalikan integer. 1456 01:13:07,890 --> 01:13:11,510 Jadi jika saya lulus dalam dua, dua integer, ia kembali lapan kepada saya, yang 1457 01:13:11,510 --> 01:13:13,250 ialah integer. 1458 01:13:13,250 --> 01:13:15,420 Jadi kembali parameter nama jenis. 1459 01:13:15,420 --> 01:13:16,670 Soalan tentang itu? 1460 01:13:16,670 --> 01:13:19,440 1461 01:13:19,440 --> 01:13:24,230 >> Dan maka nilai pulangan sebenarnya dinyatakan pada akhir dengan mengatakan pulangan 1462 01:13:24,230 --> 01:13:27,540 dan kemudian kembali apa sahaja mengandungi nilai pulangan. 1463 01:13:27,540 --> 01:13:30,940 Jadi dalam kes ini, jika kita meletakkan semuanya bersama-sama, satu majlis mengambil masa dalam 1464 01:13:30,940 --> 01:13:35,100 parameter, ia dipanggil sesuatu, dan ia mengembalikan sesuatu yang adalah jenis yang 1465 01:13:35,100 --> 01:13:36,350 yang kita katakan ia akan menjadi. 1466 01:13:36,350 --> 01:13:39,830 1467 01:13:39,830 --> 01:13:41,080 Apa-apa soalan? 1468 01:13:41,080 --> 01:13:43,710 1469 01:13:43,710 --> 01:13:45,080 >> Jadi bagaimana kita menggunakan fungsi? 1470 01:13:45,080 --> 01:13:49,230 Nah, kita menulis fungsi dan kemudian kita menggunakannya dalam program kami, bukan? 1471 01:13:49,230 --> 01:13:51,565 Jadi saya dipanggil ia kiub, dan maka saya boleh menggunakan kuasa tiga. 1472 01:13:51,565 --> 01:13:54,200 >> Tetapi apa yang penting untuk ambil perhatian adalah bahawa perkara-perkara perintah. 1473 01:13:54,200 --> 01:13:58,100 Jika saya mempunyai kiub bawah utama, ia akan menghadapi kuasa tiga. 1474 01:13:58,100 --> 01:14:00,360 Dan pada ketika ini, tiada apa-apa dipanggil kiub dalam program ini, dan ia 1475 01:14:00,360 --> 01:14:02,550 hanya akan menjadi seperti, saya mempunyai tidak tahu apa yang kiub adalah. 1476 01:14:02,550 --> 01:14:05,060 >> Jadi ia akan memberitahu anda, tersirat pengisytiharan fungsi. 1477 01:14:05,060 --> 01:14:06,690 Itulah kesilapan yang muncul. 1478 01:14:06,690 --> 01:14:10,230 Dan sebagainya dalam kes ini, adalah di bawah kuasa tiga utama, jadi ia tidak akan 1479 01:14:10,230 --> 01:14:12,006 tahu mengenainya. 1480 01:14:12,006 --> 01:14:14,724 >> SPEAKER 5: Jadi utama biasanya fungsi terakhir ditakrifkan? 1481 01:14:14,724 --> 01:14:17,290 >> JOSEPH: Jadi persoalannya ialah, biasanya utama terakhir 1482 01:14:17,290 --> 01:14:18,170 perkara yang anda akan menentukan? 1483 01:14:18,170 --> 01:14:19,730 Dan tidak. 1484 01:14:19,730 --> 01:14:22,280 Ini kerana kita biasanya suka utama untuk berada di bahagian atas, bukan? 1485 01:14:22,280 --> 01:14:24,640 Oleh kerana itu perkara pertama yang anda mahu pengaturcara merasmikan 1486 01:14:24,640 --> 01:14:25,640 program untuk melihat. 1487 01:14:25,640 --> 01:14:29,950 Dan jadi bagaimana kita menyelesaikan isu ini kita mahu utama untuk berada di atas, tetapi yang 1488 01:14:29,950 --> 01:14:33,750 fungsi-fungsi yang kita mahu, kita mahu mereka berada di bawah utama belum dapat menggunakan 1489 01:14:33,750 --> 01:14:34,930 mereka dalam utama? 1490 01:14:34,930 --> 01:14:36,870 >> Nah, kita menggunakan apa yang kita panggil prototaip fungsi. 1491 01:14:36,870 --> 01:14:40,830 Jadi apa prototaip fungsi asasnya adalah ia pertama mengambil apa 1492 01:14:40,830 --> 01:14:45,060 tandatangan atau header fungsi daripada apa yang kita mahu untuk melaksanakan turun 1493 01:14:45,060 --> 01:14:47,420 di sini, dan kami meletakkan ia di bahagian atas program. 1494 01:14:47,420 --> 01:14:51,400 >> Jadi dalam kes ini, kita katakan bahawa, baik, kemudian dalam program kami, kami akan 1495 01:14:51,400 --> 01:14:55,010 membuat janji untuk melaksanakan ini fungsi dipanggil kiub int, yang mengambil 1496 01:14:55,010 --> 01:14:56,260 input integer. 1497 01:14:56,260 --> 01:15:00,870 Jadi sekarang, kerana itu adalah di atas utama, utama, ia akan berkata, oh, baik, 1498 01:15:00,870 --> 01:15:03,910 kemudian dalam program ini, yang akan menjadi ada jadi saya boleh merujuk kepadanya, jadi saya akan 1499 01:15:03,910 --> 01:15:05,230 hanya biarkan ia pergi melalui sekarang. 1500 01:15:05,230 --> 01:15:07,660 >> Dan kemudian di bahagian bawah, kami melaksanakan kuasa tiga. 1501 01:15:07,660 --> 01:15:11,180 Dan kemudian utama hanya akan berkata, dengan baik, ia akan menyelesaikan pautan 1502 01:15:11,180 --> 01:15:12,250 kedua-dua simbol bersama-sama. 1503 01:15:12,250 --> 01:15:14,320 Dan kami akan menutup apa yang bermakna di kemudian hari. 1504 01:15:14,320 --> 01:15:17,090 Dan jadi ia akan tahu bahawa ini adalah fungsi kiub bahawa ia harus digunakan. 1505 01:15:17,090 --> 01:15:19,630 1506 01:15:19,630 --> 01:15:23,383 >> ROB: The [didengar] tentang mahu utama di bahagian bawah atau 1507 01:15:23,383 --> 01:15:24,880 atas, saya telah melihat kedua-duanya. 1508 01:15:24,880 --> 01:15:28,630 Terdapat beberapa perkara yang hanya suka untuk meletakkan utama di bahagian bawah. 1509 01:15:28,630 --> 01:15:32,520 Tetapi sebaik sahaja projek mendapat terutamanya besar, biasanya utama adalah dalam 1510 01:15:32,520 --> 01:15:34,290 memfailkan semua sendiri. 1511 01:15:34,290 --> 01:15:38,170 Dan pada ketika itu, seperti int talian kiub akan - 1512 01:15:38,170 --> 01:15:42,460 dalam stdio.h adalah sekumpulan garis-garis seperti int yang 1513 01:15:42,460 --> 01:15:44,010 int kiub talian input. 1514 01:15:44,010 --> 01:15:50,170 >> Dan supaya orang-orang prototaip perkara yang anda cenderung untuk dimasukkan ke dalam fail header, pada 1515 01:15:50,170 --> 01:15:52,140 mana titik, ia tidak mengapa. 1516 01:15:52,140 --> 01:15:54,700 Nah, ia tidak mengapa. 1517 01:15:54,700 --> 01:15:56,070 Mereka selalu pergi di bahagian atas. 1518 01:15:56,070 --> 01:15:59,490 Dan jika utama bukan fail semua sendiri, anda tidak perlu bimbang mengenai meletakkan 1519 01:15:59,490 --> 01:16:02,360 prototaip fungsi individu dalam fail. 1520 01:16:02,360 --> 01:16:05,370 >> JOSEPH: Dan kita akan mendapat yang sedikit sedikit kemudian apabila Rob mula bercakap 1521 01:16:05,370 --> 01:16:06,380 kira-kira menyusun. 1522 01:16:06,380 --> 01:16:09,480 Dan sebagainya ada juga perbezaan antara parameter dan hujah. 1523 01:16:09,480 --> 01:16:12,500 Dan parameter hanya apa kita panggil input ini apabila 1524 01:16:12,500 --> 01:16:13,820 kita menentukan fungsi. 1525 01:16:13,820 --> 01:16:16,950 Dan kita panggil ia hujah apabila kita sebenarnya memindahkannya ke dalam majlis itu. 1526 01:16:16,950 --> 01:16:19,600 >> Jadi dalam kes ini, ini merupakan satu parameter, seperti yang kita katakan sebelum ini. 1527 01:16:19,600 --> 01:16:24,130 Dan apabila kita benar-benar menggunakannya di sana, kuasa tiga x, maka x sendiri adalah 1528 01:16:24,130 --> 01:16:25,910 apa yang kita panggil hujah kepada kiub majlis itu. 1529 01:16:25,910 --> 01:16:28,150 >> ROB: Jadi hujah parameter adalah - 1530 01:16:28,150 --> 01:16:33,270 terdapat perbezaan ini, sangat keliru silih berganti. 1531 01:16:33,270 --> 01:16:37,090 Pada ketika ini, bagi saya, ia seperti salah satu daripada kata-kata bahawa apabila saya melihat ia di dalam 1532 01:16:37,090 --> 01:16:41,190 liar, saya tidak boleh membantu tetapi segera soalan sama ada mereka menggunakannya dalam 1533 01:16:41,190 --> 01:16:44,120 konteks yang betul, kerana perbezaan adalah cukup halus yang hanya 1534 01:16:44,120 --> 01:16:45,500 semua orang cenderung - 1535 01:16:45,500 --> 01:16:48,530 Saya hampir selalu berkata hujah tidak kira apa yang saya maksudkan. 1536 01:16:48,530 --> 01:16:51,230 1537 01:16:51,230 --> 01:16:54,630 >> JOSEPH: Dan fungsi juga berguna untuk apa yang kita panggil kesan sampingan. 1538 01:16:54,630 --> 01:16:59,230 Jadi fungsi boleh mengambil input, dan ia juga boleh menghasilkan sebarang output. 1539 01:16:59,230 --> 01:17:03,280 Jadi dalam kes ini, saya menentukan satu subrutin yang tidak mempunyai 1540 01:17:03,280 --> 01:17:03,970 kembali nilai. 1541 01:17:03,970 --> 01:17:07,730 Dan untuk menentukan bahawa, kami menggunakan apa yang kita panggil kekosongan di sini. 1542 01:17:07,730 --> 01:17:10,890 Dan sebagainya kesan sampingan fungsi ini ialah ia hanya mencetak barangan 1543 01:17:10,890 --> 01:17:11,920 keluar ke halaman. 1544 01:17:11,920 --> 01:17:13,840 Ia sebenarnya tidak mengambil apa-apa input, dan ia tidak 1545 01:17:13,840 --> 01:17:15,360 sebenarnya mengemukakan apa-apa output. 1546 01:17:15,360 --> 01:17:18,230 >> Tetapi ini boleh menjadi berguna dalam erti kata jika anda mahu, contohnya, debug 1547 01:17:18,230 --> 01:17:21,530 sesuatu dalam program anda, jika anda mahu untuk menulis subrutin kecil yang 1548 01:17:21,530 --> 01:17:25,160 paparkan nombor, katakan, kandungan memori atau sesuatu. 1549 01:17:25,160 --> 01:17:29,800 Dan sebagainya ini kesan sampingan yang kadang-kadang berguna di luar konteks 1550 01:17:29,800 --> 01:17:33,010 hanya suka input dan output. 1551 01:17:33,010 --> 01:17:34,260 Apa-apa soalan? 1552 01:17:34,260 --> 01:17:37,270 1553 01:17:37,270 --> 01:17:44,240 >> Dan untuk menamatkan segmen pasar ini, apakah program ini lakukan? 1554 01:17:44,240 --> 01:17:47,420 Saya akan memberikan anda semua beberapa saat untuk membaca melaluinya. 1555 01:17:47,420 --> 01:17:52,720 1556 01:17:52,720 --> 01:17:56,880 Pada tahap yang sangat asas, apa yang kita mahu katakan ialah ia Swap x dan y, bukan? 1557 01:17:56,880 --> 01:18:00,090 >> Jadi berapa banyak anda benar-benar berfikir ini akan menukar x dan y? 1558 01:18:00,090 --> 01:18:02,160 Mengangkat tangan anda. 1559 01:18:02,160 --> 01:18:02,760 Tiada satu. 1560 01:18:02,760 --> 01:18:03,070 OK. 1561 01:18:03,070 --> 01:18:06,720 Yang berfikir bahawa ia akan tidak menukar x dan y? 1562 01:18:06,720 --> 01:18:09,120 Dan jumlah yang tidak seluruh bilik. 1563 01:18:09,120 --> 01:18:10,440 Jadi sesetengah orang tidak pasti. 1564 01:18:10,440 --> 01:18:10,920 OK. 1565 01:18:10,920 --> 01:18:11,630 Itulah yang munasabah. 1566 01:18:11,630 --> 01:18:16,450 >> Jadi mari kita pergi melalui apa yang berlaku apabila anda sebenarnya memanggil fungsi pertama di 1567 01:18:16,450 --> 01:18:18,320 Untuk menjawab soalan ini. 1568 01:18:18,320 --> 01:18:21,430 Jadi ini adalah apa yang memori jenis kelihatan seperti. 1569 01:18:21,430 --> 01:18:23,860 Ini adalah jenis seperti model dipermudahkan apa memori kelihatan seperti apabila 1570 01:18:23,860 --> 01:18:24,800 anda menjalankan program. 1571 01:18:24,800 --> 01:18:27,270 Jadi ada sesuatu yang dinamakan timbunan ke bawah di sini dan 1572 01:18:27,270 --> 01:18:28,330 sesuatu yang dinamakan timbunan itu. 1573 01:18:28,330 --> 01:18:30,950 Dan ini berkembang ke arah pertengahan ingatan. 1574 01:18:30,950 --> 01:18:33,860 >> Jadi dalam kes ini, apabila anda memanggil fungsi, ia 1575 01:18:33,860 --> 01:18:35,680 mendapat memakai tindanan. 1576 01:18:35,680 --> 01:18:38,900 Dan kemudian apa sahaja yang terkandung di dalam fungsi kekal dalam apa yang kita panggil yang 1577 01:18:38,900 --> 01:18:40,550 bingkai tindanan fungsi ini. 1578 01:18:40,550 --> 01:18:44,500 Dan sebagainya untuk mendapatkan visualisasi bagus ini, let's - sebagai contoh, kita mempunyai 1579 01:18:44,500 --> 01:18:45,960 program utama lebih awal. 1580 01:18:45,960 --> 01:18:47,820 Dan dalam utama, kita dipanggil kiub. 1581 01:18:47,820 --> 01:18:50,650 Jadi utama pertama akan pergi pada timbunan bingkai, kerana ia fungsi yang pertama 1582 01:18:50,650 --> 01:18:51,640 yang dinamakan. 1583 01:18:51,640 --> 01:18:55,740 >> Dan kemudian apabila kiub dipanggil dalam utama, ia mendapat diletakkan di atas utama 1584 01:18:55,740 --> 01:18:57,790 di dalam ingatan. 1585 01:18:57,790 --> 01:19:02,090 Jadi apa yang anda akan melihat di sini adalah bahawa kiub mempunyai parameternya sendiri dan yang 1586 01:19:02,090 --> 01:19:02,950 penduduk tempatan sendiri. 1587 01:19:02,950 --> 01:19:06,720 Oleh itu, apabila anda benar-benar lulus sesuatu untuk fungsi, parameter yang ia 1588 01:19:06,720 --> 01:19:09,910 mendapat salinan dari apa yang diluluskan pada dari utama. 1589 01:19:09,910 --> 01:19:14,140 >> Dan untuk menjelaskan jenis ini, mari kita berjalan melalui program. 1590 01:19:14,140 --> 01:19:16,960 Jadi kita mempunyai tindanan, ini adalah hanya bahagian timbunan. 1591 01:19:16,960 --> 01:19:21,240 Dan apa yang kita lakukan adalah kita mula-mula memulakan x dan y untuk satu dan dua. 1592 01:19:21,240 --> 01:19:22,400 Oleh itu, kita mempunyai kotak-kotak kecil. 1593 01:19:22,400 --> 01:19:25,310 Mereka duduk dalam timbunan utama ini bingkai dalam timbunan. 1594 01:19:25,310 --> 01:19:26,580 Ia mengandungi satu dan dua. 1595 01:19:26,580 --> 01:19:28,820 >> Kini kita panggil swap. 1596 01:19:28,820 --> 01:19:33,940 Apa yang berlaku ialah kita lulus x dan y ke dalam swap, dan swap mewujudkan salinan sendiri 1597 01:19:33,940 --> 01:19:36,520 dari orang-orang pembolehubah untuk menggunakan di dalam bingkai tindanan itu. 1598 01:19:36,520 --> 01:19:39,920 Jadi sekarang di sana, kami mempunyai, yang mengandungi nilai yang x mempunyai; dan b, 1599 01:19:39,920 --> 01:19:41,620 yang mengandungi nilai yang y mempunyai. 1600 01:19:41,620 --> 01:19:42,670 Jadi satu, dua. 1601 01:19:42,670 --> 01:19:47,130 >> Dan anda akan melihat bahawa ini adalah berasingan daripada x dan y dalam utama. 1602 01:19:47,130 --> 01:19:51,390 Jadi, sekarang kita mewujudkan sementara pembolehubah mengandungi. 1603 01:19:51,390 --> 01:19:56,100 Kami menetapkan yang bersamaan dengan b, jadi ia perubahan dari satu ke dua. 1604 01:19:56,100 --> 01:19:59,340 Dan kemudian kita set b sama menggoda, yang merupakan salah. 1605 01:19:59,340 --> 01:20:01,640 >> Dan maka sekarang kita keluar daripada fungsi ini. 1606 01:20:01,640 --> 01:20:04,310 1607 01:20:04,310 --> 01:20:07,410 Apabila anda keluar daripada majlis itu, yang bingkai tindanan mendapat muncul off tindanan. 1608 01:20:07,410 --> 01:20:08,270 Kami memanggilnya menolak. 1609 01:20:08,270 --> 01:20:12,750 Anda menolak bingkai tindanan ke dalam tindanan dan anda pop jika off tindanan. 1610 01:20:12,750 --> 01:20:16,080 Dan sebagainya apa yang berlaku adalah segala-galanya yang adalah dalam timbunan rangka jenis hanya 1611 01:20:16,080 --> 01:20:17,280 naik dalam api. 1612 01:20:17,280 --> 01:20:19,180 Dan supaya tidak lagi wujud. 1613 01:20:19,180 --> 01:20:20,470 >> Tetapi apa yang kita lihat? 1614 01:20:20,470 --> 01:20:23,690 Kami tidak pernah benar-benar mengubah nilai x dan y, bukan? 1615 01:20:23,690 --> 01:20:26,530 Maka orang-orang tempatan untuk tinggal utama. 1616 01:20:26,530 --> 01:20:29,900 Dan dengan melepaskan sesuatu ke dalam swap, kami sebenarnya tidak pernah berubah nilai-nilai. 1617 01:20:29,900 --> 01:20:31,260 Dan apa yang kita panggil ini? 1618 01:20:31,260 --> 01:20:33,040 Kami menyeru yang berlalu ini dengan nilai. 1619 01:20:33,040 --> 01:20:36,860 >> Jadi, dalam C, apabila anda meninggal sesuatu ke dalam fungsi, ia pas mereka dengan nilai dan 1620 01:20:36,860 --> 01:20:40,160 membuat salinan daripada mereka untuk fungsi untuk digunakan. 1621 01:20:40,160 --> 01:20:43,980 Dan kita akan belajar tentang sesuatu yang dinamakan lulus dengan merujuk kemudian, tetapi itu 1622 01:20:43,980 --> 01:20:45,390 cara yang anda boleh menyelesaikan masalah ini. 1623 01:20:45,390 --> 01:20:47,080 Tetapi kita tidak akan bimbang tentang sehingga kemudian. 1624 01:20:47,080 --> 01:20:52,200 >> ROB: Dan sebenarnya, istilah itu, yang berlalu dengan merujuk, jadi C juga tidak mempunyai 1625 01:20:52,200 --> 01:20:54,270 lulus dengan rujukan. 1626 01:20:54,270 --> 01:20:56,760 C eksklusif telah lulus oleh nilai. 1627 01:20:56,760 --> 01:20:59,630 Tidak kira apa yang anda lakukan, anda sentiasa lulus salinan sesuatu. 1628 01:20:59,630 --> 01:21:03,395 Cuma, seperti yang saya jenis yang disebut yang sebelum ini dengan petunjuk 1629 01:21:03,395 --> 01:21:07,690 dan bahawa rentetan adalah benar-benar hanya empat bait menunjuk ke kurang lebih dalam ingatan. 1630 01:21:07,690 --> 01:21:11,890 >> Nah, jika saya mempunyai tali ini dan ia memberitahu saya bahawa adalah di mana tali - 1631 01:21:11,890 --> 01:21:15,470 baik, jika saya mempunyai penunjuk ini untuk ini letakkan dalam ingatan, maka saya boleh lulus 1632 01:21:15,470 --> 01:21:19,160 salinan yang pointer ke fungsi, dan fungsi yang masih tahu di mana di 1633 01:21:19,160 --> 01:21:19,780 memori itu. 1634 01:21:19,780 --> 01:21:22,950 Jadi kedua-dua petunjuk ini menunjuk ke tempat yang sama dalam ingatan, dan 1635 01:21:22,950 --> 01:21:26,460 itu bagaimana kita akan dapat untuk mengubah suai perkara di luar 1636 01:21:26,460 --> 01:21:29,852 bingkai tindanan semasa. 1637 01:21:29,852 --> 01:21:31,040 >> JOSEPH: Adakah anda mahu lakukan menyusun? 1638 01:21:31,040 --> 01:21:31,820 >> ROB: Tidak, ia 05:30. 1639 01:21:31,820 --> 01:21:32,910 >> JOSEPH: OK. 1640 01:21:32,910 --> 01:21:35,040 Ia adalah 05:30. 1641 01:21:35,040 --> 01:21:35,360 OK. 1642 01:21:35,360 --> 01:21:39,280 Oleh itu, kita akan meliputi menyusun saya rasa dalam bahagian seterusnya, atau seksyen anda 1643 01:21:39,280 --> 01:21:42,795 pemimpin akan pada ketika itu. 1644 01:21:42,795 --> 01:21:43,272 Dan - 1645 01:21:43,272 --> 01:21:44,630 >> ROB: Mana-mana soalan? 1646 01:21:44,630 --> 01:21:46,760 >> JOSEPH: Mana-mana soalan? 1647 01:21:46,760 --> 01:21:47,150 Ya? 1648 01:21:47,150 --> 01:21:52,469 >> SPEAKER 5: Menggunakan tali dari CS50, mana-mana fungsi-fungsi yang kita mahu menggunakan untuk 1649 01:21:52,469 --> 01:21:53,880 mereka, yang akan menjadi seperti fungsi C. 1650 01:21:53,880 --> 01:21:59,050 CS50 tidak pergi di dalam dan membuat apa-apa tambahan. 1651 01:21:59,050 --> 01:22:01,850 >> ROB: Betul. 1652 01:22:01,850 --> 01:22:08,155 Mana-mana C seperti [didengar], anda akan menggunakan mereka di tali kami. 1653 01:22:08,155 --> 01:22:12,400 >> JOSEPH: Dan satu perkara terakhir saya mahu menyebut adalah bahawa kita mempunyai panduan gaya 1654 01:22:12,400 --> 01:22:13,130 untuk kelas ini. 1655 01:22:13,130 --> 01:22:13,360 >> ROB: Oh, yeah. 1656 01:22:13,360 --> 01:22:15,270 >> JOSEPH: Jadi, jika anda datang dari pengaturcaraan latar belakang sebelum ini, anda 1657 01:22:15,270 --> 01:22:17,750 mungkin mempunyai konvensyen tertentu apabila anda menulis kod seperti meletakkan 1658 01:22:17,750 --> 01:22:20,950 pendakap pada baris yang sama atau tertentu cara mengensotkannya 1659 01:22:20,950 --> 01:22:22,240 atau menamakan pembolehubah anda. 1660 01:22:22,240 --> 01:22:26,870 Dalam kelas ini, kami mahu mengikuti panduan gaya tertentu hanya kerana, 1661 01:22:26,870 --> 01:22:31,100 baik, jika anda keluar dan bekerja di industri, anda akan dijangkakan 1662 01:22:31,100 --> 01:22:34,780 untuk mengikuti panduan gaya yang syarikat di mana anda pergi ke. 1663 01:22:34,780 --> 01:22:38,040 >> Seperti contohnya, Facebook saya fikir mempunyai jenis tertentu menamakan 1664 01:22:38,040 --> 01:22:38,760 konvensyen. 1665 01:22:38,760 --> 01:22:42,570 Dan ada perbezaan antara unta pembolehubah selongsong dan seperti 1666 01:22:42,570 --> 01:22:44,610 memisahkan mereka dengan garis bawah. 1667 01:22:44,610 --> 01:22:52,170 Dan juga, saya rasa yang paling penting, seperti sebagai contoh, lekukan, bukan? 1668 01:22:52,170 --> 01:22:56,440 >> Kami pendakap kerinting bermula di mana keadaan ini, dan mereka 1669 01:22:56,440 --> 01:22:57,730 berada di barisan depan. 1670 01:22:57,730 --> 01:23:01,230 Dan kita juga meletakkan pendakap kerinting di walaupun ia hanya satu baris. 1671 01:23:01,230 --> 01:23:06,100 Dan banyak kali, ada cara untuk melakukan ia di mana anda boleh meninggalkan pendakap ini 1672 01:23:06,100 --> 01:23:08,380 off ia hanya satu baris di bawah penyata Jika. 1673 01:23:08,380 --> 01:23:12,070 Tetapi di dalam kelas ini, kami mahu mengikuti panduan gaya tertentu hanya supaya anda mendapat 1674 01:23:12,070 --> 01:23:13,550 digunakan untuk perkara seperti. 1675 01:23:13,550 --> 01:23:16,410 >> ROB: Ya, dan Gaya 50 akan menguatkuasakan panduan gaya ini, dan kami 1676 01:23:16,410 --> 01:23:18,080 akan menggunakan Gaya 50 ke gred kod anda. 1677 01:23:18,080 --> 01:23:25,150 Jadi ia membuat perkara yang lebih mudah untuk kita dan harap-harap tidak perlu membuat perkara-perkara yang 1678 01:23:25,150 --> 01:23:30,120 lebih buruk untuk anda diberi gaya standard tidak boleh yang 1679 01:23:30,120 --> 01:23:31,460 tidak realistik. 1680 01:23:31,460 --> 01:23:36,000 >> JOSEPH: Dan akhirnya, untuk mencari gaya yang Panduan, pergi ke manual.cs50.net/style. 1681 01:23:36,000 --> 01:23:37,725 Dan yeah. 1682 01:23:37,725 --> 01:23:40,575 >> SPEAKER 4: Adakah anda akan menguatkuasakan sebarang aksara setiap baris? 1683 01:23:40,575 --> 01:23:42,480 >> ROB: Ya. 1684 01:23:42,480 --> 01:23:45,405 >> JOSEPH: Maaf, guys. 1685 01:23:45,405 --> 01:23:47,680 >> ROB: Itu seperti salah satu yang hanya. 1686 01:23:47,680 --> 01:23:50,420 Pada ketika ini, saya OK dengan 120. 1687 01:23:50,420 --> 01:23:52,460 Saya OK dengan mengatakan 120 aksara setiap baris. 1688 01:23:52,460 --> 01:23:53,830 Saya faham ada yang beberapa had. 1689 01:23:53,830 --> 01:23:57,130 Saya fikir 80 adalah begitu kecil, tetapi kita menguatkuasakannya. 1690 01:23:57,130 --> 01:24:00,260 >> JOSEPH: Secara peribadi, saya rasa dengan C, 80 aksara adalah lebih OK. 1691 01:24:00,260 --> 01:24:04,160 Sebaik sahaja anda mula mendapat ke lain bahasa seperti JavaScript dan PHP, tidak 1692 01:24:04,160 --> 01:24:08,860 begitu munasabah untuk hanya menghadkan kepada 80 aksara. 1693 01:24:08,860 --> 01:24:09,260 OK. 1694 01:24:09,260 --> 01:24:12,780 Nah, itu adalah bahagian yang super. 1695 01:24:12,780 --> 01:24:14,750 Adakah sesiapa yang ingin gula-gula? 1696 01:24:14,750 --> 01:24:16,000 >> SPEAKER 4: Ya. 1697 01:24:16,000 --> 01:24:18,667