1 00:00:00,000 --> 00:00:11,736 2 00:00:11,736 --> 00:00:16,626 >> [VIDEO MAIN SEMULA] 3 00:00:16,626 --> 00:00:19,410 >> Kejayaan -A matematik dan kemahiran mekanikal 4 00:00:19,410 --> 00:00:23,270 adalah besar ini automatik baru kalkulator di Universiti Harvard. 5 00:00:23,270 --> 00:00:27,140 Masalah yang rumit dalam matematik dimasukkan melalui mesin dalam bentuk berkod 6 00:00:27,140 --> 00:00:31,710 pada pita secara tepat diselesaikan dalam pecahan minit masa yang diperlukan 7 00:00:31,710 --> 00:00:32,819 banyak manusia. 8 00:00:32,819 --> 00:00:44,280 9 00:00:44,280 --> 00:00:48,220 Direka untuk mempercepatkan segala bentuk penyelidikan matematik dan saintifik, 10 00:00:48,220 --> 00:00:53,840 otak mekanikal gergasi akan bekerja untuk Tentera Laut Amerika Syarikat sehingga akhir perang. 11 00:00:53,840 --> 00:01:03,620 12 00:01:03,620 --> 00:01:06,570 >> [AKHIR MAIN SEMULA] 13 00:01:06,570 --> 00:01:08,590 >> DAVID J. MALAN: Ini adalah CS50. 14 00:01:08,590 --> 00:01:10,590 Masa lalu adalah yang ajaib tempat, tetapi jika anda telah pernah 15 00:01:10,590 --> 00:01:13,366 tertanya-tanya apa peranti yang di Harvard Pusat Sains 16 00:01:13,366 --> 00:01:16,150 ia merupakan sebahagian daripada Harvard Mark I, dan ia 17 00:01:16,150 --> 00:01:18,710 dipamerkan di sana sekarang untuk banyak tahun yang lalu. 18 00:01:18,710 --> 00:01:20,590 Dan apa yang anda akan melihat tertanam dalam set masalah 19 00:01:20,590 --> 00:01:24,416 satu adalah melihat di belakang tabir apa peranti yang tidak, dan tidak, 20 00:01:24,416 --> 00:01:27,540 daripada Profesor Harry Lewis, yang berada di jabatan sains komputer di sini. 21 00:01:27,540 --> 00:01:29,440 Jadi lebih kepada yang dalam hanya sedikit. 22 00:01:29,440 --> 00:01:33,990 >> Tetapi hari ini kita mula peralihan dari minggu lepas ini, 23 00:01:33,990 --> 00:01:37,290 dan kami akan membawa sebutan satu gambar di sini 24 00:01:37,290 --> 00:01:38,630 yang sebenarnya cukup terkenal. 25 00:01:38,630 --> 00:01:42,270 Adakah sesiapa yang tahu apa ini di sini ialah pada skrin? 26 00:01:42,270 --> 00:01:43,880 Sekurang-kurangnya mengikut mitos. 27 00:01:43,880 --> 00:01:44,837 Yeah. 28 00:01:44,837 --> 00:01:45,920 PENONTON: Virus pertama. 29 00:01:45,920 --> 00:01:49,570 DAVID J. MALAN: Oleh itu, kononnya bug sebenar yang pertama dalam komputer. 30 00:01:49,570 --> 00:01:52,490 Sekarang dalam realiti bug perkataan, untuk kesilapan dalam program, 31 00:01:52,490 --> 00:01:55,250 telah bersama kami untuk beberapa masa dalam dunia fizikal, 32 00:01:55,250 --> 00:01:58,190 dan ini adalah salah satu yang pertama kali didokumenkan di mana seseorang sebenarnya 33 00:01:58,190 --> 00:02:02,280 dipetik rama-rama yang besar daripada Tandakan II komputer, memasukkannya ke dalam pengikat, 34 00:02:02,280 --> 00:02:05,006 dan kemudian merakamkannya sebagai bug yang diketahui pertama 35 00:02:05,006 --> 00:02:06,630 untuk benar-benar telah dijumpai secara fizikal. 36 00:02:06,630 --> 00:02:10,104 Jadi dengan itu telah dimasukkan itu ke dalam tradisi hari ini. 37 00:02:10,104 --> 00:02:12,020 Semua dari lepas minggu boleh didapati dalam talian. 38 00:02:12,020 --> 00:02:14,840 Sumber tertentu yang anda mungkin tidak semestinya notis, terutamanya 39 00:02:14,840 --> 00:02:15,881 jika datang ke sini secara peribadi. 40 00:02:15,881 --> 00:02:20,230 Jadi salah satu daripada rakan-rakan pengajaran setiap tahun membuat set berkanun nota, 41 00:02:20,230 --> 00:02:22,010 jadi anda tidak perlu menyimpan kepala anda ke bawah, cuba 42 00:02:22,010 --> 00:02:24,410 untuk menyalin paling apa-apa yang mungkin berlaku di sini di dalam kelas. 43 00:02:24,410 --> 00:02:25,940 Jadi sedar bahawa orang-orang apa yang dikenali sebagai [? Scribd?] Nota 44 00:02:25,940 --> 00:02:29,350 berada dalam talian, sudah tentu slaid dan kod sumber yang kita gunakan di dalam kelas. 45 00:02:29,350 --> 00:02:31,436 Kami membuat transkrip teks penuh disediakan. 46 00:02:31,436 --> 00:02:34,310 Jadi, jika anda samar-samar ingat beberapa jangka, dan mahu melihat ia sedikit 47 00:02:34,310 --> 00:02:37,280 lebih mudah, menyedari bahawa semua itu atas talian dicari. 48 00:02:37,280 --> 00:02:38,930 Serta walkthroughs juga. 49 00:02:38,930 --> 00:02:42,710 Malah, hari ini kita mula melihat bahasa pengaturcaraan peringkat rendah, 50 00:02:42,710 --> 00:02:45,290 tidak lama lagi akan kita ketahui sebagai C, dan ia sangat mudah 51 00:02:45,290 --> 00:02:48,820 untuk menyusun hilang selepas hanya beberapa detik-detik masa, dan kemudian sejenis keajaiban 52 00:02:48,820 --> 00:02:52,370 bagaimana kita benar-benar mendapat lebih banyak contoh kompleks dari yang paling mudah. 53 00:02:52,370 --> 00:02:54,975 Dan sebagainya sedar kita akan ceri mengambil semasa kelas beberapa 54 00:02:54,975 --> 00:02:57,850 satu contoh wakil, tetapi sedar bahawa banyak lagi juga 55 00:02:57,850 --> 00:03:01,140 boleh didapati dalam talian supaya anda boleh bekerja melaluinya pada kelajuan anda sendiri, 56 00:03:01,140 --> 00:03:02,950 Walau bagaimanapun anda paling selesa. 57 00:03:02,950 --> 00:03:05,200 >> Tetapi kita berhenti dengan program-program yang tidak hanya ini. 58 00:03:05,200 --> 00:03:09,690 Jadi saya klik bendera hijau, dan apakah program ini lakukan? 59 00:03:09,690 --> 00:03:10,710 Kata, hello, dunia. 60 00:03:10,710 --> 00:03:13,180 Ia menjadikan kucing berkata hello di dunia kecilnya 61 00:03:13,180 --> 00:03:15,990 pada sisi atas sebelah kiri antara muka Scratch pengguna. 62 00:03:15,990 --> 00:03:18,810 Tetapi kami mula memperkenalkan beberapa istilah minggu lepas. 63 00:03:18,810 --> 00:03:23,614 Dan sebagainya, perkara-perkara seperti ini, kita dipanggil apa? 64 00:03:23,614 --> 00:03:25,280 Apa yang mungkin menjadi istilah umum untuk ini? 65 00:03:25,280 --> 00:03:26,266 Yeah. 66 00:03:26,266 --> 00:03:28,210 Satu kaedah atau kenyataan. 67 00:03:28,210 --> 00:03:29,280 Pasti, ia adalah tindakan. 68 00:03:29,280 --> 00:03:30,140 Adakah ini. 69 00:03:30,140 --> 00:03:32,400 Dan masih ada juga bentuk lain menggaru, 70 00:03:32,400 --> 00:03:35,360 selain dari apa yang dikenali sebagai pernyataan, mereka juga 71 00:03:35,360 --> 00:03:38,221 perkara seperti ini, yang kita dipanggil apa? 72 00:03:38,221 --> 00:03:38,720 Yeah. 73 00:03:38,720 --> 00:03:39,634 Jadi gelung. 74 00:03:39,634 --> 00:03:42,050 Dan dalam kes ini, perkara ini ulangan, jelas, 10 kali. 75 00:03:42,050 --> 00:03:43,040 Ada satu blok selama-lamanya. 76 00:03:43,040 --> 00:03:44,164 Ada beberapa orang lain. 77 00:03:44,164 --> 00:03:48,309 Dan hari ini kita akan melihat bagaimana untuk menterjemahkan ini kepada dunia yang lebih moden, 78 00:03:48,309 --> 00:03:50,850 jika anda akan, walaupun ia adalah akan muncul pada pandangan pertama 79 00:03:50,850 --> 00:03:52,024 menjadi lebih sukar difahami. 80 00:03:52,024 --> 00:03:53,190 Dan orang-orang sememangnya gelung. 81 00:03:53,190 --> 00:03:56,182 Dan kemudian kita mempunyai perkara-perkara seperti ini, yang mempunyai bentuk ini, 82 00:03:56,182 --> 00:03:57,515 dan pada dasarnya ditanya. 83 00:03:57,515 --> 00:03:58,890 Dan kita disebut ini sebagai apa? 84 00:03:58,890 --> 00:03:59,762 >> PENONTON: ungkapan Boolean. 85 00:03:59,762 --> 00:04:00,320 >> DAVID J. MALAN: Ya. 86 00:04:00,320 --> 00:04:01,340 Ungkapan Boolean. 87 00:04:01,340 --> 00:04:04,502 Sesuatu sama ada benar atau palsu, ya atau tidak, satu atau sifar, 88 00:04:04,502 --> 00:04:05,960 Walau bagaimanapun anda mahu melihat dunia. 89 00:04:05,960 --> 00:04:08,335 Tetapi kita dipanggil Boolean mereka ungkapan, dan kami plug mereka 90 00:04:08,335 --> 00:04:09,900 menjadi syarat, atau cawangan. 91 00:04:09,900 --> 00:04:12,170 Dan dalam dunia Awal, segala-galanya dengan baik 92 00:04:12,170 --> 00:04:15,460 saling kunci dari segi bentuknya, jika ia masuk akal logik untuk berbuat demikian, 93 00:04:15,460 --> 00:04:18,490 tetapi anda tidak perlu berhenti pada hanya melakukan satu perkara dengan syarat, 94 00:04:18,490 --> 00:04:20,450 anda boleh mempunyai pepatah yang garpu di jalan raya 95 00:04:20,450 --> 00:04:24,040 dan lakukan sama ada ini atau itu jika keadaan ini benar atau tidak. 96 00:04:24,040 --> 00:04:26,040 Dan kemudian, seperti yang anda akan lihat, jika anda tidak sudah, 97 00:04:26,040 --> 00:04:27,480 Anda juga boleh sarang blok-blok. 98 00:04:27,480 --> 00:04:32,110 Jadi Scratch tumbuh untuk mengisi bentuk yang mungkin anda mahu masukkan ke dalamnya, 99 00:04:32,110 --> 00:04:35,330 jadi anda sebenarnya boleh meluahkan paling logik yang anda mungkin mahu lakukan. 100 00:04:35,330 --> 00:04:38,220 >> Sekarang Beberapa fakta pengumuman untuk kedua-dua di sini dan New Haven. 101 00:04:38,220 --> 00:04:39,370 Jadi sectioning bermula hari ini. 102 00:04:39,370 --> 00:04:42,120 URL untuk ini adalah pada kursus ini laman web, bagi mereka yang tidak dikenali. 103 00:04:42,120 --> 00:04:43,970 Seksyen akan menjadi satu peluang untuk bersama-sama 104 00:04:43,970 --> 00:04:46,553 dalam persekitaran yang lebih intim daripada [? Sanders?] Membolehkan, 105 00:04:46,553 --> 00:04:50,347 dengan 10 hingga 20 rakan sekelas dengan mengajar rakan-rakan di trek yang berbeza, 106 00:04:50,347 --> 00:04:51,930 dan jarak yang berbeza, jika anda supaya memilih. 107 00:04:51,930 --> 00:04:54,080 Sesungguhnya perjalanan tawaran bahagian yang berbeza 108 00:04:54,080 --> 00:04:57,340 untuk mereka yang kurang selesa, lebih selesa, dan di suatu tempat di antara, 109 00:04:57,340 --> 00:04:59,860 dan peranan ibu jari di sini, adalah tidak ada definisi formal, 110 00:04:59,860 --> 00:05:04,600 tetapi jika anda kurang selesa, anda jenis tahu. 111 00:05:04,600 --> 00:05:07,470 Anda sedikit berani tentang idea melangkah kaki, mungkin, kembali 112 00:05:07,470 --> 00:05:10,130 di dalam kelas, atau menunjukkan sehingga satu di antara bahagian. 113 00:05:10,130 --> 00:05:12,770 Jika anda telah pengaturcaraan kerana anda berusia enam tahun, lebih selesa, 114 00:05:12,770 --> 00:05:13,400 mungkin kepada anda. 115 00:05:13,400 --> 00:05:16,150 Dan jika ia adalah jenis lambungan-up, itulah apa yang di antara 116 00:05:16,150 --> 00:05:17,190 bertujuan untuk menjadi. 117 00:05:17,190 --> 00:05:18,410 >> Sekarang, dalam pada itu, untuk kelas saiz ini, 118 00:05:18,410 --> 00:05:21,326 ia membawa kita masa yang lama untuk seksyen semua orang, jadi kami telah dipanggil, 119 00:05:21,326 --> 00:05:24,030 bahagian super, datang ini hujung minggu dan awal minggu depan, 120 00:05:24,030 --> 00:05:26,570 jadi kita lihat di laman web kursus ini bagi orang-orang yang tentu lebar, 121 00:05:26,570 --> 00:05:28,610 dan juga difilemkan bagi mereka yang tidak boleh membuat mereka. 122 00:05:28,610 --> 00:05:33,470 Dan bahagian-bahagian sendiri akan mula dalam seminggu tiga CS50 indeks sifar. 123 00:05:33,470 --> 00:05:35,880 Masalah set 0 sudah di laman web kursus ini. 124 00:05:35,880 --> 00:05:40,010 Dan menyedari bahawa anda mempunyai sembilan hari akhir semester ini. 125 00:05:40,010 --> 00:05:43,240 Jadi ini adalah satu peningkatan dari lepas tahun, apabila kita mempunyai lima hari lewat. 126 00:05:43,240 --> 00:05:46,210 >> Jadi, jika anda tertanya-tanya, kita ada sembilan set masalah. 127 00:05:46,210 --> 00:05:53,200 Anda mempunyai sembilan hari lewat, setiap yang anda hanya boleh menghabiskan satu setiap minggu pada. 128 00:05:53,200 --> 00:05:56,089 Yang berkesan membuat semua masalah ini menetapkan kerana hari Jumaat, 129 00:05:56,089 --> 00:05:58,630 tetapi matlamatnya adalah untuk meletakkan sedikit sedikit tekanan psikologi 130 00:05:58,630 --> 00:06:01,100 kepada anda untuk cuba untuk mendapatkan perkara-perkara dalam pada Khamis 131 00:06:01,100 --> 00:06:03,960 kerana seperti yang anda akan menemui, untuk lebih baik atau untuk lebih teruk, paling 132 00:06:03,960 --> 00:06:07,820 segala-galanya dalam dunia perisian berakhir mengambil lebih lama daripada anda menjangka. 133 00:06:07,820 --> 00:06:10,620 Oleh itu fikirkanlah ia semacam satu peluang untuk membantu 134 00:06:10,620 --> 00:06:13,880 diri anda untuk mensasarkan Khamis, tetapi mengambil keselesaan dalam bahawa, ya, 135 00:06:13,880 --> 00:06:14,950 segala-galanya adalah kerana hari Jumaat. 136 00:06:14,950 --> 00:06:17,590 Dan jika anda menghantar mereka pada Khamis, itu indah. 137 00:06:17,590 --> 00:06:21,020 Tidak ada mata bonus atau tambahan kredit untuk memenuhi tarikh akhir itu. 138 00:06:21,020 --> 00:06:23,250 Ia bertujuan untuk menjadi tongkat sahaja. 139 00:06:23,250 --> 00:06:25,810 >> Dan waktu pejabat, kedua-dua di sini dan di New Haven, 140 00:06:25,810 --> 00:06:28,840 secara peribadi, jika anda ingin bertemu dengan mana-mana kursus kami 141 00:06:28,840 --> 00:06:31,060 mengajar rakan-rakan dan CA untuk bantuan. 142 00:06:31,060 --> 00:06:31,640 >> Baiklah. 143 00:06:31,640 --> 00:06:33,110 Oleh sebab itu, mari kita membuat ini lebih nyata. 144 00:06:33,110 --> 00:06:35,470 Dan seketika ia akan mula untuk mendapatkan sedikit lebih sukar difahami, tetapi sangat 145 00:06:35,470 --> 00:06:37,310 cepat pada hari Jumaat dan minggu depan kita akan 146 00:06:37,310 --> 00:06:41,230 boleh berbuat demikian lebih daripada kita boleh setakat ini dalam Scratch. 147 00:06:41,230 --> 00:06:44,350 Oleh itu, kita diperkenalkan Kod lalu minggu, walaupun pictoral. 148 00:06:44,350 --> 00:06:45,620 Ia adalah kepingan teka-teki. 149 00:06:45,620 --> 00:06:48,800 Dan kita secara rasmi bahawa ia adalah sesuatu yang dinamakan kod sumber, 150 00:06:48,800 --> 00:06:50,330 tetapi akan tidak kelihatan seperti? 151 00:06:50,330 --> 00:06:52,550 Nah, ia kelihatan sedikit sesuatu seperti ini. 152 00:06:52,550 --> 00:06:55,410 Dan, sebenarnya, hanya untuk jenis mengusik mana kita boleh pergi dengan ini. 153 00:06:55,410 --> 00:06:57,800 Saya akan pergi ke depan dan membuka tetingkap di sini, 154 00:06:57,800 --> 00:06:59,810 dan saya hanya akan memilih Fail Baru. 155 00:06:59,810 --> 00:07:03,200 Dan saya akan simpan fail ini sebagai sesuatu seperti khabar dot c. 156 00:07:03,200 --> 00:07:05,700 Lebih kepada yang pilihan perkataan dalam hanya seketika. 157 00:07:05,700 --> 00:07:08,630 Dan ini adalah bagaimana seseorang mungkin pergi tentang menulis program. 158 00:07:08,630 --> 00:07:13,990 Termasuk Saya standard / O dot h, int utama tidak sah, kemudian buka kerinting, berhampiran 159 00:07:13,990 --> 00:07:19,430 kerinting, printf hello dunia koma, garis miring n, koma bertitik, Simpan, dilakukan. 160 00:07:19,430 --> 00:07:19,930 OKAY. 161 00:07:19,930 --> 00:07:21,670 Saya telah menulis pertama saya program, tetapi ia akan 162 00:07:21,670 --> 00:07:23,878 untuk menjadi sangat underwhelmed kerana apabila saya benar-benar 163 00:07:23,878 --> 00:07:27,352 menjalankan program ini, sudah tentu, melalui surat yang pertama membuat hello, 164 00:07:27,352 --> 00:07:30,310 dan kemudian dot mengurangkan hello, dan kami akan pergi melalui ini dalam lebih terperinci 165 00:07:30,310 --> 00:07:31,730 dalam sekejap, itu sahaja yang dilakukan. 166 00:07:31,730 --> 00:07:33,270 Tidak pop buka mana-mana tingkap. 167 00:07:33,270 --> 00:07:35,070 Ia tidak berbuat apa-apa terutamanya mewah. 168 00:07:35,070 --> 00:07:38,830 Semua ia adalah apa yang saya diceritakannya kepada lakukan, tetapi bagaimana kita dapat itu? 169 00:07:38,830 --> 00:07:40,560 Dan bagaimana kita membina itu? 170 00:07:40,560 --> 00:07:43,430 Nah, mari kita memperkenalkan beberapa konsep-konsep berbeza di sini. 171 00:07:43,430 --> 00:07:47,170 >> Jadi satu, kita kira-kira untuk mula menggunakan program yang dikenali sebagai pengkompil. 172 00:07:47,170 --> 00:07:51,470 Pengkompil A wujud untuk Mac OS, Windows, Linux, apa-apa bilangan sistem operasi, 173 00:07:51,470 --> 00:07:54,540 dan kita tidak lama lagi akan memperkenalkan anda kepada persekitaran yang kita akan menggunakan, 174 00:07:54,540 --> 00:07:57,410 tetapi pengkompil hanya umum istilah untuk suatu perisian 175 00:07:57,410 --> 00:08:01,940 yang mengambil kod sumber dan menghasilkan kod objek daripadanya. 176 00:08:01,940 --> 00:08:03,940 Dalam erti kata lain, jika anda mempunyai sebagai input sumber anda 177 00:08:03,940 --> 00:08:08,250 kod, sesuatu seperti apa yang saya hanya ditaip, ia akhirnya menghasilkan kod objek. 178 00:08:08,250 --> 00:08:11,780 Dan kod objek adalah benar-benar hanya cara yang mewah untuk mengatakan output 179 00:08:11,780 --> 00:08:12,926 yang sifar dan seseorang. 180 00:08:12,926 --> 00:08:14,800 Dalam erti kata lain, sumber kod, walaupun ia adalah 181 00:08:14,800 --> 00:08:17,240 akan kelihatan sukar difahami sedikit, dan sedikit kurang mesra 182 00:08:17,240 --> 00:08:19,590 daripada calar pada pandangan pertama, ia sekurang-kurangnya sesuatu 183 00:08:19,590 --> 00:08:21,120 bahawa kita manusia boleh faham. 184 00:08:21,120 --> 00:08:24,360 Ia jenis kelihatan dan kedengaran seperti Bahasa Inggeris walaupun ia adalah sangat ringkas. 185 00:08:24,360 --> 00:08:28,040 Manakala pengaturcaraan sifar dan seseorang, kerana mendahului kita terpaksa lakukan, 186 00:08:28,040 --> 00:08:30,920 beberapa tahun yang lalu, bukan satu cabaran terutamanya yang menyeronokkan. 187 00:08:30,920 --> 00:08:33,710 Namun, ini adalah apa yang komputer masih memahami. 188 00:08:33,710 --> 00:08:37,010 Jadi pengkompil mendapat kita dari kod sumber kepada kod objek. 189 00:08:37,010 --> 00:08:39,860 Ia seperti membuka fail dengan pengkompil, dan apabila anda menyimpannya, 190 00:08:39,860 --> 00:08:41,419 anda mendapatkan orang-orang sifar dan satu. 191 00:08:41,419 --> 00:08:43,419 Oleh itu, kita akan melihat bagaimana untuk melakukan bahawa dalam hanya seketika. 192 00:08:43,419 --> 00:08:47,400 >> Tetapi mari kita kini cuba untuk menyediakan satu merapatkan antara minggu lalu dan ini, 193 00:08:47,400 --> 00:08:50,660 supaya walaupun seperti yang kita digantung kepada perkara-perkara seperti pendakap kerinting, 194 00:08:50,660 --> 00:08:54,100 dan koma bertitik, dan kurungan, dan semua ini dari segi intelek menarik 195 00:08:54,100 --> 00:08:57,620 aspek pengaturcaraan, yang sangat difahami tersandung orang sehingga awal, 196 00:08:57,620 --> 00:09:00,930 sedar bahawa semua idea-idea hari ini, adalah sama seperti lepas. 197 00:09:00,930 --> 00:09:03,975 Jadi lepas, kita lihat contoh ini di sini, program Hello World. 198 00:09:03,975 --> 00:09:07,500 Nah, bermula hari ini, jika kita mahu untuk melaksanakan program yang sama, 199 00:09:07,500 --> 00:09:10,800 ia akan kelihatan sedikit sesuatu seperti ini. 200 00:09:10,800 --> 00:09:14,040 Dan kita akan menjelaskan sebelum apa int panjang, dan utama, dan tidak sah, dan semua itu 201 00:09:14,040 --> 00:09:18,770 , tetapi sekurang-kurangnya saya lihat di sini sudah biasa Hello World. 202 00:09:18,770 --> 00:09:20,860 >> Sementara itu, perkara-perkara seperti fungsi, berkata hello, 203 00:09:20,860 --> 00:09:23,570 adalah sangat semata-mata akan menjadi kenyataan yang mudah seperti ini. 204 00:09:23,570 --> 00:09:26,930 Printf hello dunia, dengan beberapa memetik, dengan garis sendeng terbalik yang, 205 00:09:26,930 --> 00:09:29,780 dengan koma bernoktah, tetapi lebih kepada yang akan datang. 206 00:09:29,780 --> 00:09:34,066 Gelung, sementara itu, ini adalah gelung itu, sudah tentu, kata hello dunia selama-lamanya, 207 00:09:34,066 --> 00:09:36,690 dan yang satu ini akan kelihatan sedikit aneh berbanding yang lepas, 208 00:09:36,690 --> 00:09:39,530 tetapi jika aku mengatakan sesuatu seperti, manakala benar, saya 209 00:09:39,530 --> 00:09:44,050 kemudian boleh mencetak Hello dunia lagi dan lagi dan lagi dan lagi. 210 00:09:44,050 --> 00:09:46,660 Dan kemudian anda boleh jenis daripada mula untuk membuat kesimpulan di sini, 211 00:09:46,660 --> 00:09:49,070 konvensyen ini menggunakan pendakap kerinting adalah jenis 212 00:09:49,070 --> 00:09:52,050 daripada seperti memeluk garis tersusun kod di sana. 213 00:09:52,050 --> 00:09:55,840 Garis printf kod sama seperti teka-teki sekeping kuning ke atas. 214 00:09:55,840 --> 00:09:58,740 Oleh itu, kita tidak akan mengatakan selama-lamanya, kita akan berkata sedang benar, 215 00:09:58,740 --> 00:10:01,020 tetapi kita akan melihat mengapa yang hanya sedikit. 216 00:10:01,020 --> 00:10:04,210 >> Sementara itu, jika kita mempunyai gelung seperti ini, di mana anda mengulangi sesuatu yang terhad 217 00:10:04,210 --> 00:10:07,730 kali bilangan, yang satu ini juga ia akan mengambil sedikit untuk membiasakan 218 00:10:07,730 --> 00:10:12,820 , tetapi ia akan mengatakan dengan int i mendapat sifar, i kurang daripada 10, i ++, 219 00:10:12,820 --> 00:10:14,056 dan kemudian printf lagi. 220 00:10:14,056 --> 00:10:15,430 Tetapi ada akan menjadi corak. 221 00:10:15,430 --> 00:10:18,434 Dan bagi anda biasa dengan AP Sains Komputer, atau Jawa, 222 00:10:18,434 --> 00:10:21,100 atau apa-apa bilangan bahasa lain, hampir semua konstruk ini 223 00:10:21,100 --> 00:10:23,820 setakat ini harus melihat kebanyakannya biasa. 224 00:10:23,820 --> 00:10:24,680 >> Jadi berubah-ubah. 225 00:10:24,680 --> 00:10:29,270 Jadi di sini adalah Scratch petikan mudah yang menetapkan pembolehubah yang dipanggil bertentangan dengan sifar, 226 00:10:29,270 --> 00:10:33,150 dan kemudian selama-lamanya berkata kaunter, dan kemudian ia berubah kaunter demi satu. 227 00:10:33,150 --> 00:10:37,030 Jadi ia bermula dengan sifar, dan kemudian satu, dua, tiga. 228 00:10:37,030 --> 00:10:42,560 Nah, bagaimana kita boleh memperkenalkan bahawa dalam bahasa ini baru sedikit sama? 229 00:10:42,560 --> 00:10:45,460 Kaunter Int sama sifar, manakala yang benar, yang 230 00:10:45,460 --> 00:10:48,100 adalah idea yang sama dari sebelum untuk melakukan sesuatu yang selama-lamanya, 231 00:10:48,100 --> 00:10:49,530 dan saya hanya akan printf. 232 00:10:49,530 --> 00:10:53,310 Dan kini ia semakin sedikit pelik, peratus i, tetapi lebih kepada yang akan datang, 233 00:10:53,310 --> 00:10:55,140 tetapi idea-idea ini adalah sama. 234 00:10:55,140 --> 00:10:58,820 Kami hanya kini perlu mematuhi sintaks bahawa komputer adalah 235 00:10:58,820 --> 00:11:00,010 akan menuntut daripada kita. 236 00:11:00,010 --> 00:11:04,620 >> Ungkapan Boolean, sesuatu seperti sx kurang daripada y, atau x kurang daripada y, 237 00:11:04,620 --> 00:11:06,354 dan y kurang daripada z. 238 00:11:06,354 --> 00:11:09,270 Ia akan melihat sesuatu yang kecil seperti ini, dengan kurungan hanya 239 00:11:09,270 --> 00:11:13,020 seperti dalam matematik untuk menjadikannya lebih menarik kepada hanya memastikan bahawa perintah operasi 240 00:11:13,020 --> 00:11:14,750 adalah seperti yang kita berniat. 241 00:11:14,750 --> 00:11:15,600 Dan kini, keadaan. 242 00:11:15,600 --> 00:11:21,220 Jadi, jika x kurang daripada y, katakan x kurang daripada y, lain jika x lebih besar daripada y, 243 00:11:21,220 --> 00:11:26,020 kata x lebih besar daripada y, jika tidak, secara logik, x mesti sama dengan y. 244 00:11:26,020 --> 00:11:28,710 Jadi, anda mungkin melaksanakan sesuatu seperti ini di Awal, 245 00:11:28,710 --> 00:11:31,230 atau anda mungkin melaksanakan dalam sintaks ini. 246 00:11:31,230 --> 00:11:35,090 Dan sekali lagi, pendakap kerinting adalah jenis memberi kita bentuk yang sama seperti teka-teki 247 00:11:35,090 --> 00:11:40,750 keping, tetapi sintaks, sekarang, mungkin mula mengikuti beberapa corak. 248 00:11:40,750 --> 00:11:42,910 >> Jadi, apakah ini memberikan kita di sini? 249 00:11:42,910 --> 00:11:45,260 Oleh itu, kita berada ketika itu pada program utama kami. 250 00:11:45,260 --> 00:11:47,930 Mari kita sebenarnya, sekarang, melakukan sesuatu dengannya. 251 00:11:47,930 --> 00:11:50,660 Jadi dalam hal ini yang pertama garis yang kita lihat tajam termasuk, 252 00:11:50,660 --> 00:11:53,160 Saya standard / O, dot h, dan kemudian beberapa sudut pelik 253 00:11:53,160 --> 00:11:57,330 kurungan di bawah itu. int utama tidak sah, dan kemudian printf dunia hello. 254 00:11:57,330 --> 00:11:58,200 Jadi hanya mengambil langkah. 255 00:11:58,200 --> 00:12:02,440 Seseorang yang tidak pernah diprogramkan sebelum ini, sekurang-kurangnya menjelaskan salah satu daripada ayat-ayat ini. 256 00:12:02,440 --> 00:12:04,490 Menggunakan mungkin sebahagian daripada jargon minggu lepas. 257 00:12:04,490 --> 00:12:06,942 Apakah printf, misalnya? 258 00:12:06,942 --> 00:12:07,442 Yeah. 259 00:12:07,442 --> 00:12:08,410 >> PENONTON: [didengar] 260 00:12:08,410 --> 00:12:08,610 >> DAVID J. MALAN: Ya. 261 00:12:08,610 --> 00:12:11,380 Ia adalah satu fungsi, atau satu kenyataan, dari istilah minggu lepas. 262 00:12:11,380 --> 00:12:13,470 Dan ia adalah suatu tindakan yang yang melakukan sesuatu. 263 00:12:13,470 --> 00:12:15,855 Sekarang fungsi ini, atau kenyataan ini, adakah 264 00:12:15,855 --> 00:12:17,550 ia kelihatan mengambil beberapa jenis input? 265 00:12:17,550 --> 00:12:20,080 266 00:12:20,080 --> 00:12:24,380 Dan dalam apa rasa melakukannya seolah-olah mengambil input, jika demikian? 267 00:12:24,380 --> 00:12:26,180 Input, apa yang saya maksudkan dengan itu? 268 00:12:26,180 --> 00:12:26,720 Yeah. 269 00:12:26,720 --> 00:12:27,595 >> PENONTON: [didengar] 270 00:12:27,595 --> 00:12:30,565 271 00:12:30,565 --> 00:12:31,440 DAVID J. MALAN: Ya. 272 00:12:31,440 --> 00:12:34,890 Jadi Scratch keluar kepingan teka-teki beberapa di mana anda boleh parametrize ia. 273 00:12:34,890 --> 00:12:37,980 Anda boleh memberitahu ulangan menyekat berapa kali mengulangi, 274 00:12:37,980 --> 00:12:40,320 sehingga adalah masukan macam, dan seperti Scratch 275 00:12:40,320 --> 00:12:43,060 mempunyai pemegang tempat putih yang kecil untuk nombor yang anda akan menaip, 276 00:12:43,060 --> 00:12:45,810 begitu juga kita gunakan dalam ini kurungan dunia teks 277 00:12:45,810 --> 00:12:49,910 untuk memberikan kepada kita bahawa bentuk bulat ke mana kita boleh palam input kami. 278 00:12:49,910 --> 00:12:53,180 Lagipun, berpuluh-puluh tahun yang lalu apabila bahasa ini, yang dipanggil C, 279 00:12:53,180 --> 00:12:55,950 telah dicipta yang tidak dijangka ia adalah salah satu daripada kita, 280 00:12:55,950 --> 00:12:59,420 ini beberapa tahun kemudian, kita akan mahu satu fungsi yang berkata hello. 281 00:12:59,420 --> 00:12:59,920 Betul? 282 00:12:59,920 --> 00:13:02,880 Ia akan menjadi baik jika terdapat sekeping teka-teki fakta yang utama, 283 00:13:02,880 --> 00:13:05,502 yang dinamakan hello, yang betul-betul hanya berkata hello. 284 00:13:05,502 --> 00:13:06,460 Tetapi kita tidak perlu itu. 285 00:13:06,460 --> 00:13:09,320 Kita boleh mempunyai sesuatu yang jauh lebih rendah peringkat, seperti cetak generik 286 00:13:09,320 --> 00:13:12,760 perintah, yang mengambil input, dan cetakan apa sahaja yang kita mahu. 287 00:13:12,760 --> 00:13:14,960 Jadi notis sekarang pola yang akan mula muncul. 288 00:13:14,960 --> 00:13:19,310 Paren terbuka, paren rapat adalah nampaknya memeluk input, 289 00:13:19,310 --> 00:13:21,770 dan kemudian saya melihat dua menyebutkan di kedua-dua hujung. 290 00:13:21,770 --> 00:13:25,110 Masih ada garis sendeng terbalik pelik n, tetapi mudah-mudahan sekarang anda 291 00:13:25,110 --> 00:13:29,900 boleh mula membayangkan sekurang-kurangnya yang printf mengambil dalam beberapa bentuk input. 292 00:13:29,900 --> 00:13:31,850 Tidak seperti yang mesra pengguna sebagai Calar, tetapi ia hanya 293 00:13:31,850 --> 00:13:34,920 seperti telah dipasang beberapa nilai di sana. 294 00:13:34,920 --> 00:13:38,306 >> Baiklah, sekarang mari kita sebenarnya melakukan sesuatu dengan ini. 295 00:13:38,306 --> 00:13:40,930 Jadi sebahagian daripada anda mungkin tahu dari mempunyai belah kelas sebelum ini, 296 00:13:40,930 --> 00:13:42,638 berbual-bual dengan rakan-rakan, yang selama bertahun-tahun 297 00:13:42,638 --> 00:13:44,590 kita menggunakan sesuatu yang dipanggil perkakas CS50. 298 00:13:44,590 --> 00:13:49,160 Ini adalah satu istilah yang menerangkan teknologi yang dipanggil mesin maya, yang 299 00:13:49,160 --> 00:13:51,870 adalah suatu perisian yang anda terdahulu akan turun off 300 00:13:51,870 --> 00:13:53,360 laman web kursus ini secara percuma. 301 00:13:53,360 --> 00:13:56,550 Mereka juga akan turun sekeping percuma perisian dipanggil hypervisor yang, 302 00:13:56,550 --> 00:14:00,590 sesuatu yang dinamakan seperti VMware, atau VirtualBox, atau sebarang nombor 303 00:14:00,590 --> 00:14:04,450 alat-alat yang lain, dan pada mereka Mac atau PC atau apa sahaja komputer mereka mempunyai tahun lepas 304 00:14:04,450 --> 00:14:06,620 dan dalam beberapa tahun yang lalu, mereka akan klik dua kali ikon 305 00:14:06,620 --> 00:14:08,860 untuk menjalankan perisian ini dipanggil hypervisor. 306 00:14:08,860 --> 00:14:12,220 Dan kemudian di dalam program yang mereka akan membuka perkakas CS50. 307 00:14:12,220 --> 00:14:14,710 Dan kesannya adalah bahawa sama ada pendahulu anda 308 00:14:14,710 --> 00:14:17,780 telah menjalankan Mac OS atau Windows, dia kemudian 309 00:14:17,780 --> 00:14:22,910 kemudian mempunyai tetingkap baru pada mereka skrin berjalan persekitaran CS50. 310 00:14:22,910 --> 00:14:27,370 Jadi mesin maya membolehkan anda menjalankan satu sistem yang beroperasi di dalam yang lain, 311 00:14:27,370 --> 00:14:28,785 dan itulah apa yang kita lakukan. 312 00:14:28,785 --> 00:14:31,410 Sepanjang kebanyakan kita perjalanan menggunakan sistem operasi yang dikenali sebagai 313 00:14:31,410 --> 00:14:34,070 Linux, khususnya Ubuntu Linux, dan ini 314 00:14:34,070 --> 00:14:37,590 adalah cara yang sangat baik dalam tahun yang lalu memastikan bahawa semua orang dalam perjalanan 315 00:14:37,590 --> 00:14:38,840 hanya mempunyai persekitaran yang sama. 316 00:14:38,840 --> 00:14:41,339 Dan anda boleh menggunakan apa-apa jenis komputer yang anda benar-benar mahu. 317 00:14:41,339 --> 00:14:43,930 Antara kelemahan, walaupun, kalaulah adalah seperti dua gigabait 318 00:14:43,930 --> 00:14:45,480 untuk memuat turun perkara ini. 319 00:14:45,480 --> 00:14:50,310 Ia tidak semestinya bekerja super baik pada orang yang komputer yang mungkin hanya 320 00:14:50,310 --> 00:14:54,570 mempunyai gig atau lebih RAM, atau tidak terlalu banyak gigahertz kelajuan CPU, 321 00:14:54,570 --> 00:14:56,750 dan sebagainya pada tahun ini, untuk ini dan sebab-sebab lain, 322 00:14:56,750 --> 00:14:59,140 perlu kita telah beralih kepada persekitaran ini. 323 00:14:59,140 --> 00:15:03,730 CS50 IDE yang dipanggil, yang berdasarkan perisian sumber terbuka, 324 00:15:03,730 --> 00:15:07,380 dan platform yang disokong bahawa sebuah syarikat bernama Cloud9 325 00:15:07,380 --> 00:15:11,110 menyokong di Eropah, yang membolehkan kita untuk mempunyai dasarnya 326 00:15:11,110 --> 00:15:15,770 persekitaran yang sama seperti dalam tahun yang lalu, tetapi di dalam awan yang dipanggil. 327 00:15:15,770 --> 00:15:17,532 >> Jadi apa awan? 328 00:15:17,532 --> 00:15:20,480 Anda mungkin telah diklik ikonnya pada Mac atau PC anda. 329 00:15:20,480 --> 00:15:22,210 Apakah awan? 330 00:15:22,210 --> 00:15:22,709 Ya? 331 00:15:22,709 --> 00:15:25,880 332 00:15:25,880 --> 00:15:26,780 A lebih kuat sedikit. 333 00:15:26,780 --> 00:15:30,510 334 00:15:30,510 --> 00:15:31,010 Yeah. 335 00:15:31,010 --> 00:15:33,770 Ia hanya sekumpulan komputer tempat lain yang menyimpan data dan menjalankan 336 00:15:33,770 --> 00:15:34,880 perisian dan sebagainya. 337 00:15:34,880 --> 00:15:39,390 Jadi ia adalah benar-benar hanya kepada perkataan de jure menggambarkan [? boleh sewa?] 338 00:15:39,390 --> 00:15:40,930 komputer yang tinggal di tempat lain. 339 00:15:40,930 --> 00:15:42,810 Bahawa anda, diri sendiri, tidak memiliki semestinya. 340 00:15:42,810 --> 00:15:45,256 Oleh itu, apabila data anda, atau anda program, berada di dalam awan, 341 00:15:45,256 --> 00:15:47,630 itu hanya bererti ia pada seseorang komputer lain di tempat lain, 342 00:15:47,630 --> 00:15:50,510 dan tidak, kemungkinan besar, pada anda laptop fizikal atau desktop. 343 00:15:50,510 --> 00:15:52,990 Dan sebagainya itulah yang CS50 IDE kini. 344 00:15:52,990 --> 00:15:55,670 >> Selepas ini anda akan pergi ke yang tertentu URL yang akan memperkenalkan anda 345 00:15:55,670 --> 00:16:00,090 untuk, masalah set 1, kemudian ini minggu, yang akan kemudian, setelah login, 346 00:16:00,090 --> 00:16:01,480 memberikan anda persekitaran ini. 347 00:16:01,480 --> 00:16:03,896 Dan banyak calar seperti mempunyai Beberapa panel yang berbeza yang terlibat, 348 00:16:03,896 --> 00:16:06,030 begitu juga IDE CS50 mempunyai perkara tersebut. 349 00:16:06,030 --> 00:16:09,480 Di sebelah kiri atas di sini, anda berada akan melihat pelayar fail biasa. 350 00:16:09,480 --> 00:16:11,930 Jadi mana-mana fail yang anda dimasukkan ke dalam persekitaran ini 351 00:16:11,930 --> 00:16:13,346 hanya akan disenaraikan di sana. 352 00:16:13,346 --> 00:16:14,350 Fail dan folder. 353 00:16:14,350 --> 00:16:16,790 Selain itu di sini, anda akan melihat tempat 354 00:16:16,790 --> 00:16:18,420 di mana anda sebenarnya boleh menulis kod anda. 355 00:16:18,420 --> 00:16:21,860 Pada mulanya dalam C, kemudian dalam jangka dalam PHP dan JavaScript, 356 00:16:21,860 --> 00:16:24,739 dan, mungkin untuk perlawanan akhir projek, Ruby atau Java atau Python 357 00:16:24,739 --> 00:16:27,280 atau apa-apa bilangan bahasa setakat ini disokong dalam persekitaran ini. 358 00:16:27,280 --> 00:16:30,130 Ia tidak sama sekali terikat untuk CS50 secara khusus. 359 00:16:30,130 --> 00:16:33,390 >> Dan kemudian di sudut bawah sini, terutamanya bagi mereka yang lebih selesa, 360 00:16:33,390 --> 00:16:35,590 anda mempunyai sesuatu dipanggil tetingkap terminal. 361 00:16:35,590 --> 00:16:38,770 Dan tetingkap terminal ini membolehkan anda untuk melaksanakan apa-apa arahan yang 362 00:16:38,770 --> 00:16:40,860 mahu dalam persekitaran awan ini. 363 00:16:40,860 --> 00:16:42,860 Ia membolehkan anda untuk memasang apa-apa perisian tambahan 364 00:16:42,860 --> 00:16:46,810 yang anda mahu kerana anda telah dipanggil akar, atau pentadbir keistimewaan. 365 00:16:46,810 --> 00:16:49,930 Jadi dalam erti kata lain, walaupun ini akhirnya menjadi tuan rumah dalam awan, 366 00:16:49,930 --> 00:16:52,400 dan walaupun kita mempunyai dipermudahkan ia sedikit sebanyak 367 00:16:52,400 --> 00:16:57,110 secara lalai, secara literal memperkenalkan, Dan terima kasih kepada Armendariz, dan Dino, 368 00:16:57,110 --> 00:17:01,070 dan Dan Bradley dalam pasukan CS50 sejak lepas beberapa bulan, yang kurang selesa 369 00:17:01,070 --> 00:17:05,140 mod yang menyembunyikan banyak daripada gangguan pada mulanya mengelirukan. 370 00:17:05,140 --> 00:17:10,119 Segala-galanya ada wujud untuk mewakili sistem komputer biasa 371 00:17:10,119 --> 00:17:12,319 yang mungkin digunakan dalam dunia sebenar. 372 00:17:12,319 --> 00:17:15,640 >> Jadi apakah ini semua bermakna, dan apa yang boleh kita benar-benar melakukan dengan ia? 373 00:17:15,640 --> 00:17:19,124 Mari kita sebenarnya mengambil mengintip di program. 374 00:17:19,124 --> 00:17:21,290 Jadi saya akan untuk membuka persekitaran sebenar di sini, 375 00:17:21,290 --> 00:17:23,894 yang hanya Chrome kami pelayar, yang boleh menjadi Firefox, 376 00:17:23,894 --> 00:17:26,640 boleh menjadi Internet Explorer, atau beberapa pelayar yang lain. 377 00:17:26,640 --> 00:17:28,400 Ia penuh ditayangkan di sini buat masa ini. 378 00:17:28,400 --> 00:17:31,580 Dan saya mahu untuk benar-benar mengusik selain apa yang program ini adalah. 379 00:17:31,580 --> 00:17:36,170 Jadi mari kita lihat, dengan zoom di atas atas, apa yang saya lakukan, dan bagaimana saya sampai di sini. 380 00:17:36,170 --> 00:17:38,315 Jadi di sini adalah orang-orang yang tepat garis yang sama kod. 381 00:17:38,315 --> 00:17:40,440 Jadi ini adalah kenyataan, seperti yang anda nyatakan sebelum ini. 382 00:17:40,440 --> 00:17:42,580 Fungsi yang mengatakan khabar. 383 00:17:42,580 --> 00:17:45,870 Pendakap kerinting, pada garis empat dan garis enam, 384 00:17:45,870 --> 00:17:49,290 jenis mungkin satu envelop garis yang mengaitkannya 385 00:17:49,290 --> 00:17:50,890 dengan intipati program saya. 386 00:17:50,890 --> 00:17:54,890 Maka sesungguhnya, utama perkara ini, itu terpulang terdapat pada baris tiga, 387 00:17:54,890 --> 00:17:59,450 anda boleh berfikir bahawa sebagai setaraf itu apabila bendera hijau diklik, 388 00:17:59,450 --> 00:18:01,080 menyekat dalam Scratch. 389 00:18:01,080 --> 00:18:05,280 Jadi itu sahaja kami ada di sini, adalah apabila bendera hijau diklik, mencetak, atau berkata, 390 00:18:05,280 --> 00:18:06,700 Hai dunia. 391 00:18:06,700 --> 00:18:11,210 >> Tetapi mari kita mengambil tekaan, sekarang, apa pertama, talian lebih sukar difahami ini, adalah. 392 00:18:11,210 --> 00:18:15,100 Sharp termasuk, bersudut terbuka kurungan, saya standard / O dot h, 393 00:18:15,100 --> 00:18:17,320 menutup kurungan bersudut. 394 00:18:17,320 --> 00:18:19,850 Apakah yang mungkin lakukan, terutamanya jika anda telah diprogramkan 395 00:18:19,850 --> 00:18:21,390 sebelum ini dalam beberapa bahasa lain. 396 00:18:21,390 --> 00:18:21,890 Ya? 397 00:18:21,890 --> 00:18:22,765 >> PENONTON: [didengar] 398 00:18:22,765 --> 00:18:25,095 399 00:18:25,095 --> 00:18:25,970 DAVID J. MALAN: Ya. 400 00:18:25,970 --> 00:18:26,470 Tepat sekali. 401 00:18:26,470 --> 00:18:29,455 Jadi ini memberi anda akses kepada perpustakaan, boleh dikatakan, fungsi. 402 00:18:29,455 --> 00:18:31,830 Dan pustaka fungsi adalah fungsi yang orang lain 403 00:18:31,830 --> 00:18:34,406 menulis, sama ada baru-baru ini atau lama dahulu, supaya anda 404 00:18:34,406 --> 00:18:35,780 tidak perlu mencipta semula roda. 405 00:18:35,780 --> 00:18:39,020 Sebagai contoh, kita tidak perlu tahu, pada tahun 2015, 406 00:18:39,020 --> 00:18:42,280 bagaimana untuk menulis kod yang meletakkan watak pada skrin saya. 407 00:18:42,280 --> 00:18:44,820 Pengguna lain telah membuat kesimpulan bahawa dengan fungsi printf 408 00:18:44,820 --> 00:18:47,280 supaya saya boleh menyusun abstrak daripada itu, atau lapisan 409 00:18:47,280 --> 00:18:49,350 di atas masing-masing kod, dan kini hanya mengambil 410 00:18:49,350 --> 00:18:52,760 untuk diberikan bahawa mana-mana program yang saya tulis boleh mencetak sesuatu untuk skrin. 411 00:18:52,760 --> 00:18:58,150 Jadi barisan pertama ini terdapat dalam langkah satu termasuk fail header yang dipanggil 412 00:18:58,150 --> 00:18:59,980 untuk perpustakaan standard. 413 00:18:59,980 --> 00:19:02,630 Maka perhatikanlah, bahasa dalam yang kini kita bekerja 414 00:19:02,630 --> 00:19:05,010 mempunyai perpustakaan standard dengan banyak fungsi. 415 00:19:05,010 --> 00:19:07,240 Printf adalah salah seorang daripada mereka, dan bahawa garis pertama kod 416 00:19:07,240 --> 00:19:10,040 bermakna memberikan saya akses kepada fungsi-fungsi itu, supaya saya 417 00:19:10,040 --> 00:19:12,300 tidak perlu mencipta semula roda itu. 418 00:19:12,300 --> 00:19:15,940 >> Sekarang mari kita pergi ke tetingkap bawah dan melakukan apa yang saya lakukan sebelum ini. 419 00:19:15,940 --> 00:19:18,520 Masa yang lalu, ketika saya keciut melalui kod, 420 00:19:18,520 --> 00:19:24,540 menaip keluar untuk kali pertama, Saya dengan cepat ditaip, membuat hello. 421 00:19:24,540 --> 00:19:28,250 Apakah bahawa semua tentang anda akan rasa? 422 00:19:28,250 --> 00:19:29,150 Apa yang saya buat? 423 00:19:29,150 --> 00:19:29,649 Ya? 424 00:19:29,649 --> 00:19:31,810 425 00:19:31,810 --> 00:19:32,310 Tidak mengapa. 426 00:19:32,310 --> 00:19:32,970 Tidak mengapa. 427 00:19:32,970 --> 00:19:33,492 Yeah. 428 00:19:33,492 --> 00:19:34,450 PENONTON: Mengumpul ia. 429 00:19:34,450 --> 00:19:34,700 DAVID J. MALAN: Ya. 430 00:19:34,700 --> 00:19:35,770 Ia hanya menyusun ia. 431 00:19:35,770 --> 00:19:36,270 Betul? 432 00:19:36,270 --> 00:19:39,280 Walaupun ini benar-benar tidak dikenali kepada anda, ia cukup Inggeris seperti. 433 00:19:39,280 --> 00:19:41,155 Ia sudah tentu tidak sifar dan orang-orang, jadi saya masih 434 00:19:41,155 --> 00:19:44,220 perlu untuk menjalankan melalui bahawa apa yang dipanggil program, pengkompil, yang akan 435 00:19:44,220 --> 00:19:46,060 untuk mengambil ia sebagai input dan menghasilkan output. 436 00:19:46,060 --> 00:19:48,270 Dan sekurang-kurangnya, buat masa ini, dalam persekitaran Linux ini, 437 00:19:48,270 --> 00:19:51,030 tetapi ini bukan syarat, ini hanya di mana kita akan memulakan, 438 00:19:51,030 --> 00:19:53,960 biasanya anda berinteraksi dengan sistem komputer seperti ini 439 00:19:53,960 --> 00:19:55,770 oleh baris arahan kononnya. 440 00:19:55,770 --> 00:19:57,790 Jadi dengan kerdipan mata yang cepat dan papan kekunci anda, 441 00:19:57,790 --> 00:20:01,630 dan tidak begitu banyak tetikus anda, dan tidak begitu banyak tingkap dan ikon dan menu, 442 00:20:01,630 --> 00:20:02,980 dan bukan semuanya teks. 443 00:20:02,980 --> 00:20:06,180 Dan walaupun ini berasa, pada mulanya pandang, mungkin, seperti langkah ke belakang, 444 00:20:06,180 --> 00:20:08,437 ia sebenarnya yang lebih cara yang ampuh dan ekspresif 445 00:20:08,437 --> 00:20:10,270 mengawal komputer terutama kerana anda, 446 00:20:10,270 --> 00:20:12,950 diri, menjadi lebih selesa dari kurang. 447 00:20:12,950 --> 00:20:16,790 Ia akan membolehkan anda untuk melakukan banyak lebih banyak perkara daripada sekadar apa yang Microsoft 448 00:20:16,790 --> 00:20:20,390 atau Apple membolehkan anda untuk melakukan dengan sistem operasi grafik mereka. 449 00:20:20,390 --> 00:20:23,270 >> Oleh itu, apabila saya tekan Enter, sekarang, tiada apa yang berlaku masa ini 450 00:20:23,270 --> 00:20:25,960 kerana nampaknya program hello adalah terkini. 451 00:20:25,960 --> 00:20:28,250 Dan apa arahan Saya berlari selepas itu? 452 00:20:28,250 --> 00:20:32,370 Dot mengurangkan hello dan hello dunia. 453 00:20:32,370 --> 00:20:34,350 Sekarang mari kita mengambil langkah ke menyandarkan hanya untuk seketika. 454 00:20:34,350 --> 00:20:39,510 Ia ternyata bahawa membuat hello hanyalah cara mudah menyusun program. 455 00:20:39,510 --> 00:20:41,670 Mari kita memperkenalkan sekeping jargon, 456 00:20:41,670 --> 00:20:43,470 tetapi kemudian beralih daripadanya, kerana itu tidak 457 00:20:43,470 --> 00:20:46,640 semua yang menarik untuk tujuan hari ini. 458 00:20:46,640 --> 00:20:51,000 Pengkompil kita akan mula menggunakan dipanggil dilafaz, untuk bahasa C. 459 00:20:51,000 --> 00:20:54,280 Dan ini adalah satu program yang yang berjalan hanya seperti yang kami lakukan pada baris arahan di sana. 460 00:20:54,280 --> 00:20:56,580 Dan jadi jika saya mahu menyusun program yang saya 461 00:20:56,580 --> 00:21:00,790 telah menulis di dalam fail yang dipanggil hello dot c, saya benar-benar hanya menaip hello dilafaz c 462 00:21:00,790 --> 00:21:02,100 masuk. 463 00:21:02,100 --> 00:21:04,880 >> Perkara yang melucukan adalah, atas sebab-sebab sejarah, 464 00:21:04,880 --> 00:21:07,750 jika saya tidak menentukan menamakan program ini 465 00:21:07,750 --> 00:21:11,690 yang saya ingin output, jika saya tidak melakukan menentukan nama fail untuk orang-orang sifar 466 00:21:11,690 --> 00:21:14,990 dan orang-orang, yang sangat pelik tahun konvensyen telah diterima lalu 467 00:21:14,990 --> 00:21:17,390 di mana ia merasakan sejenis jawapan yang baik pada masa itu, 468 00:21:17,390 --> 00:21:21,650 baik mari kita hanya sewenang-wenangnya memanggil Program pertama kita menyusun dot keluar. 469 00:21:21,650 --> 00:21:22,900 A datang pertama dalam abjad. 470 00:21:22,900 --> 00:21:23,920 Keluar, ia output. 471 00:21:23,920 --> 00:21:26,210 Oleh itu, kita akan memanggil program secara lalai dot keluar. 472 00:21:26,210 --> 00:21:29,550 Dan itulah denda kerana jika saya mahu menjalankan program ini di dalam teks ini berdasarkan 473 00:21:29,550 --> 00:21:33,590 alam sekitar, saya hanya menaip dot dot mengurangkan keluar masuk. 474 00:21:33,590 --> 00:21:35,250 Dan ia akan berjalan tepat seperti sebelum ini. 475 00:21:35,250 --> 00:21:36,880 Jadi mari kita lihat yang sebenar cepat. 476 00:21:36,880 --> 00:21:40,370 >> Jadi, jika saya kembali kepada saya kod sumber dalam CS50 IDE, 477 00:21:40,370 --> 00:21:47,860 dan saya bukannya melakukan ini, dilafaz hello katil c masukkan, notis tiada suatu pun yang berlaku, 478 00:21:47,860 --> 00:21:49,790 tetapi hampir sentiasa dalam persekitaran Linux ini, 479 00:21:49,790 --> 00:21:53,310 apabila tiada perkara buruk seolah-olah berlaku, yang bermakna sesuatu yang baik yang sebenarnya berlaku. 480 00:21:53,310 --> 00:21:56,270 Jika anda tidak melihat ralat mesej, semua mungkin juga. 481 00:21:56,270 --> 00:22:01,930 Dan sesungguhnya, jika saya kini melakukan dot mengurangkan titik keluar masuk, saya telah menjalankan program sama saya. 482 00:22:01,930 --> 00:22:04,610 Saya masih mempunyai program hello ini dari awal kerana sesungguhnya ia 483 00:22:04,610 --> 00:22:07,430 akan menjadi begitu banyak lebih bagus hanya menaip membuat bukannya mengingati 484 00:22:07,430 --> 00:22:10,240 ini penjampian arahan, tetapi mari kita lihat bagaimana kita 485 00:22:10,240 --> 00:22:12,890 mungkin memperbaiki ini, tetap. 486 00:22:12,890 --> 00:22:15,340 >> Jadi, ini adalah arahan untuk menyusun kod. 487 00:22:15,340 --> 00:22:19,100 Ini adalah arahan untuk dilaksana kod disusun selepas itu. 488 00:22:19,100 --> 00:22:20,546 Bagaimana saya boleh menentukan nama fail? 489 00:22:20,546 --> 00:22:22,670 Nah mari kita memperkenalkan satu bahagian lebih jargon. 490 00:22:22,670 --> 00:22:24,461 Apabila anda berada dalam ini persekitaran berasaskan teks, 491 00:22:24,461 --> 00:22:27,400 anda akan mahu untuk menentukan perkara yang dipanggil hujah baris arahan. 492 00:22:27,400 --> 00:22:31,380 Yang hanya satu cara mewah untuk mengatakan, erti kata lain di prompt yang 493 00:22:31,380 --> 00:22:33,860 tweak tingkah laku apa sahaja program yang anda sedang berjalan. 494 00:22:33,860 --> 00:22:37,320 Jadi secara khusus program ini, saya berjalan, dengan menaip dilafaz nama, 495 00:22:37,320 --> 00:22:38,504 adalah program yang dipanggil dilafaz. 496 00:22:38,504 --> 00:22:40,920 Jadi ini adalah atau sekolah lama bersamaan dengan mengklik dua kali 497 00:22:40,920 --> 00:22:42,860 pada Microsoft Word atau icon beberapa program. 498 00:22:42,860 --> 00:22:46,360 Saya bukannya hanya menaip namanya, tetapi dalam versi ini arahan, 499 00:22:46,360 --> 00:22:51,334 Saya kemudian mempunyai dash o ruang hello hello ruang dot c. 500 00:22:51,334 --> 00:22:53,500 Jadi, walaupun anda tidak pernah bermain dalam dunia ini sebelum ini, 501 00:22:53,500 --> 00:22:58,160 hanya mengambil tekaan apa adakah dash o hello lakukan? 502 00:22:58,160 --> 00:23:00,620 Atau adakah ia memberitahu dilafaz yang perlu dilakukan? 503 00:23:00,620 --> 00:23:01,386 Yeah. 504 00:23:01,386 --> 00:23:02,455 >> PENONTON: [didengar] 505 00:23:02,455 --> 00:23:03,330 DAVID J. MALAN: Ya. 506 00:23:03,330 --> 00:23:08,614 Ia hanya menetapkan output fail untuk menjadi hello bukannya sillier titik keluar. 507 00:23:08,614 --> 00:23:09,780 Dan, sememangnya, mari kita cuba ini. 508 00:23:09,780 --> 00:23:14,250 Jadi, jika saya sekarang lakukan, pertama mari kita buat ini, r m hello. 509 00:23:14,250 --> 00:23:15,590 Itulah keluarkan. 510 00:23:15,590 --> 00:23:18,450 Dan ia akan berkata keluarkan fail biasa hello, yang 511 00:23:18,450 --> 00:23:22,210 adalah tidak perlu sukar difahami, tetapi ia hanya cara anda ingin memadam fail, 512 00:23:22,210 --> 00:23:23,230 dan saya menaip y untuk ya. 513 00:23:23,230 --> 00:23:27,340 Dan perhatikan, jika anda sambil mengerling ke arah bahagian atas kiri, ia hilang dari sana. 514 00:23:27,340 --> 00:23:32,180 Mari kita sekarang saya buat dilafaz dash o, dan Saya akan pergi ke hadapan dan melakukan hello, 515 00:23:32,180 --> 00:23:34,890 dalam semua topi, hello dot c. 516 00:23:34,890 --> 00:23:37,775 Sekarang, jika saya lakukan slash dot hello, apa yang anda inginkan? 517 00:23:37,775 --> 00:23:41,240 518 00:23:41,240 --> 00:23:42,430 >> Mungkin ia adalah kes sensitif. 519 00:23:42,430 --> 00:23:43,070 Mungkin ia tidak. 520 00:23:43,070 --> 00:23:44,030 Mari kita lihat. 521 00:23:44,030 --> 00:23:45,230 Tiada fail atau direktori tersebut. 522 00:23:45,230 --> 00:23:47,438 Dan kita boleh jenis menipu dengan hanya melihat sebelah kiri atas. 523 00:23:47,438 --> 00:23:49,630 Apa yang saya lakukan jelas menyimpan program ini? 524 00:23:49,630 --> 00:23:51,070 Semua topi hello. 525 00:23:51,070 --> 00:23:53,020 Maka sesungguhnya, itu akan untuk membuat perbezaan. 526 00:23:53,020 --> 00:23:54,540 Jadi sekarang hello dunia kembali. 527 00:23:54,540 --> 00:23:56,969 Sekarang ini adalah semua baik dan baik, dan semua sangat fikiran-kebas, 528 00:23:56,969 --> 00:23:59,760 untuk menyusun menjadi buntu dalam ini butiran, tetapi memahami mereka 529 00:23:59,760 --> 00:24:00,500 adalah baik. 530 00:24:00,500 --> 00:24:02,675 >> Menaip ini semakin jampi lama 531 00:24:02,675 --> 00:24:05,980 tidak akan menjadi amat menyeronokkan, jadi orang di dunia 532 00:24:05,980 --> 00:24:08,260 mencipta program lain, beberapa tahun yang lalu, yang dipanggil 533 00:24:08,260 --> 00:24:12,190 membuat, bahawa cukup hanya membenarkan anda menaip membuat, 534 00:24:12,190 --> 00:24:14,530 nama program yang anda ingin, dan membuat 535 00:24:14,530 --> 00:24:18,580 adalah bijak kerana ia akan kelihatan dalam folder semasa, aka direktori, 536 00:24:18,580 --> 00:24:21,440 dan jika anda mempunyai fail yang dipanggil hello dot c, 537 00:24:21,440 --> 00:24:25,800 iaitu fail yang akan menyusun untuk anda ke dalam program yang dikenali sebagai hello. 538 00:24:25,800 --> 00:24:29,950 Jadi ia adalah cara yang lebih mudah daripada melakukan perintah lebih samar 539 00:24:29,950 --> 00:24:30,800 yang kita lakukan sebelum ini. 540 00:24:30,800 --> 00:24:34,080 Dan kita mempunyai pra-konfigurasi CS50 IDE tahu 541 00:24:34,080 --> 00:24:38,560 bahawa ia perlu dilakukan dash o dan beberapa bendera lain, atau hujah baris arahan, 542 00:24:38,560 --> 00:24:40,670 bahawa kita akan melihat tidak lama lagi. 543 00:24:40,670 --> 00:24:43,700 >> Tetapi mari kita kini benar-benar melakukan sesuatu yang lebih menarik. 544 00:24:43,700 --> 00:24:46,950 Hanya menaip di dunia hello semua masa yang tidak semua yang menarik. 545 00:24:46,950 --> 00:24:52,280 Jadi biarlah saya pergi ke hadapan dan perubahan program ini dan mengatakan, hello Daud. 546 00:24:52,280 --> 00:24:54,120 Sekarang saya akan turun ke bawah di sini. 547 00:24:54,120 --> 00:24:57,360 Saya akan pergi ke depan dan melakukan make hello. 548 00:24:57,360 --> 00:25:00,652 Dan lagi sekarang anda lihat buat adalah menunjukkan anda lagi 549 00:25:00,652 --> 00:25:03,360 urutan arahan bahawa itu lakukan kerana kami telah pra-konfigurasi 550 00:25:03,360 --> 00:25:05,200 dengan cara itu, tetapi kita perlu bimbang untuk sekarang 551 00:25:05,200 --> 00:25:10,735 apa yang ia lakukan yang lain daripada menyusun dot mengurangkan hello, hello dunia. 552 00:25:10,735 --> 00:25:14,969 553 00:25:14,969 --> 00:25:15,510 Apa yang salah? 554 00:25:15,510 --> 00:25:16,177 Yeah. 555 00:25:16,177 --> 00:25:17,370 >> PENONTON: [didengar] 556 00:25:17,370 --> 00:25:18,203 >> DAVID J. MALAN: Ya. 557 00:25:18,203 --> 00:25:19,600 Jadi, kesilapan noobie. 558 00:25:19,600 --> 00:25:22,394 Saya melihat ini adalah super halus, tetapi asterisk di sini, dalam tab, 559 00:25:22,394 --> 00:25:25,060 hanya bermakna anda tidak menyelamatkan ia, dan pelayar dan program lain 560 00:25:25,060 --> 00:25:25,930 melakukan ini kadang-kadang. 561 00:25:25,930 --> 00:25:27,939 Jadi kawalan s atau perintah Foto harus menyimpannya. 562 00:25:27,939 --> 00:25:29,730 Sekarang mari saya pergi ke hadapan lari semula program ini. 563 00:25:29,730 --> 00:25:33,360 564 00:25:33,360 --> 00:25:34,260 Recompiled. 565 00:25:34,260 --> 00:25:36,050 Betul, jadi ia adalah satu proses pelbagai langkah. 566 00:25:36,050 --> 00:25:39,400 Tiada seorang pun daripada yang amat kompleks, tetapi bila-bila masa kita menukar fail, 567 00:25:39,400 --> 00:25:43,450 kita perlu mengubah Hasilnya, yang sifar dan satu, dan slash dot hello. 568 00:25:43,450 --> 00:25:43,950 Wah. 569 00:25:43,950 --> 00:25:46,450 Jadi ini adalah sangat underwhelming bahawa kita hanya dicetak ini. 570 00:25:46,450 --> 00:25:48,360 Mari kita membuat perkara-perkara yang sedikit lebih dinamik, kini. 571 00:25:48,360 --> 00:25:52,280 >> Nah ternyata, yang suka Awal, C menyokong pembolehubah. 572 00:25:52,280 --> 00:25:54,790 Dan ternyata jika anda mahu untuk mempunyai pembolehubah yang menyimpan, 573 00:25:54,790 --> 00:25:57,300 bukan nombor seperti kita biasanya lakukan dengan Awal, 574 00:25:57,300 --> 00:26:01,300 tetapi seperti perkataan, atau frasa, atau nama, anda 575 00:26:01,300 --> 00:26:04,837 boleh menentukan pembolehubah sebagai jenis tali. 576 00:26:04,837 --> 00:26:06,670 Oleh itu, kita akan melihat lebih banyak ini dalam hanya seketika, 577 00:26:06,670 --> 00:26:09,090 tetapi ternyata C itu, dan banyak bahasa seperti itu, 578 00:26:09,090 --> 00:26:11,240 mempunyai jenis yang sangat khusus pembolehubah. 579 00:26:11,240 --> 00:26:13,810 Ia tidak sama seperti algebra, di mana anda mendapatkan x, y, dan z 580 00:26:13,810 --> 00:26:16,940 dan mereka adalah hanya sentiasa nombor, dalam bahasa pengaturcaraan 581 00:26:16,940 --> 00:26:20,030 anda boleh menyimpan nombor, anda boleh menyimpan watak individu, 582 00:26:20,030 --> 00:26:24,619 anda boleh menyimpan perkataan keseluruhan, anda boleh menyimpan imej keseluruhan, fail bunyi keseluruhan, 583 00:26:24,619 --> 00:26:25,160 dan sebagainya. 584 00:26:25,160 --> 00:26:28,362 Oleh itu, kita perlu menentukan apa jenis pembolehubah kita. 585 00:26:28,362 --> 00:26:31,570 Dan dengan konvensyen saya akan memanggil saya s berubah hanya kerana ia adalah ringkas, 586 00:26:31,570 --> 00:26:33,510 dan s bermaksud tali. 587 00:26:33,510 --> 00:26:36,400 >> Dan kemudian saya akan menyimpan dalam pembolehubah ini, 588 00:26:36,400 --> 00:26:39,570 hanya suka dengan Scratch apabila saya menggunakan blok yang ditetapkan, 589 00:26:39,570 --> 00:26:41,950 Saya akan menggunakan tugasan pengendali dalam C, 590 00:26:41,950 --> 00:26:45,290 yang baik cukup adalah sama menandatangani, tetapi tanda 'sama dengan melakukan ini. 591 00:26:45,290 --> 00:26:53,220 Ia bergerak sesuatu dari kanan ke sebelah kiri ungkapan. 592 00:26:53,220 --> 00:26:57,170 Jadi apa yang saya lakukan, perlu jelas dalam garis lima, yang saya telah diisytiharkan pembolehubah. 593 00:26:57,170 --> 00:27:01,284 Saya telah memberitahu komputer, memberi saya memori untuk berubah-ubah, memanggilnya s, 594 00:27:01,284 --> 00:27:03,950 dan tahu terlebih dahulu bahawa saya akan untuk meletakkan tali di dalamnya. 595 00:27:03,950 --> 00:27:05,950 Dan rentetan hanya satu jujukan aksara. 596 00:27:05,950 --> 00:27:09,190 Ia adalah satu perkataan, atau frasa, atau perenggan, tetapi ia adalah satu jujukan aksara. 597 00:27:09,190 --> 00:27:10,610 Ia bukan nombor. 598 00:27:10,610 --> 00:27:13,800 Apa tali aku akan menjadi meletakkan ke dalam pembolehubah itu? 599 00:27:13,800 --> 00:27:16,185 Well, nampaknya memetik unquote, "Hannah". 600 00:27:16,185 --> 00:27:17,810 Sekarang perhatikan corak yang yang baru muncul. 601 00:27:17,810 --> 00:27:19,260 Ada ungkapan tangan kiri. 602 00:27:19,260 --> 00:27:21,810 Ada ungkapan tangan kanan, dipisahkan oleh tanda yang sama. 603 00:27:21,810 --> 00:27:24,390 Dan hanya mengambil tekaan, jika yang tidak dikenali walau bagaimanapun, 604 00:27:24,390 --> 00:27:27,430 dengan apa yang koma bertitik lakukan. 605 00:27:27,430 --> 00:27:28,865 Apa yang ia mungkin lakukan untuk kita? 606 00:27:28,865 --> 00:27:29,365 Ya? 607 00:27:29,365 --> 00:27:29,840 >> PENONTON: [didengar] 608 00:27:29,840 --> 00:27:29,980 >> DAVID J. MALAN: Ya. 609 00:27:29,980 --> 00:27:31,170 Ia hanya menamatkan baris. 610 00:27:31,170 --> 00:27:31,669 Betul? 611 00:27:31,669 --> 00:27:34,260 Komputer mahu terus terang memberitahu, secara literal, apa yang perlu dilakukan. 612 00:27:34,260 --> 00:27:36,343 Seperti mentega kacang dan jeli sandwic contoh, 613 00:27:36,343 --> 00:27:39,360 jika anda tidak menentukan apa yang anda berniat, 614 00:27:39,360 --> 00:27:42,190 ia mungkin diserahkan kepada penghakiman atau kesilapan. 615 00:27:42,190 --> 00:27:44,890 Koma bertitik bermaksud, itu sahaja untuk arahan ini. 616 00:27:44,890 --> 00:27:48,310 Ia menjadi super tepat, dan ia satu perkara yang sangat mudah untuk meninggalkan. 617 00:27:48,310 --> 00:27:52,240 Oleh sebab itu program ini nampaknya tidak dapat bertindak apa-apa yang berbeza sehingga saya 618 00:27:52,240 --> 00:27:53,500 menjadikannya lebih dinamik. 619 00:27:53,500 --> 00:27:57,107 Jadi, daripada keras boleh saya sendiri nama, biarlah saya meletakkan nilai pemegang tempat. 620 00:27:57,107 --> 00:28:00,190 Dan ternyata itu, dan saya tahu ini dari setelah membaca dokumentasi, 621 00:28:00,190 --> 00:28:04,080 dan menggunakan fungsi selama bertahun-tahun, yang printf telah direka untuk menjadi dinamik. 622 00:28:04,080 --> 00:28:07,510 Anda tidak perlu tahu terlebih dahulu apa perkataan yang anda mahu dimasukkan ke dalam ia. 623 00:28:07,510 --> 00:28:11,290 Anda sebaliknya boleh mempunyai pemegang tempat, seperti peratus s, yang 624 00:28:11,290 --> 00:28:15,500 akan memberitahu komputer, meletakkan tali di sini. 625 00:28:15,500 --> 00:28:17,740 >> Yang rentetan kita mahu meletakkan di sana? 626 00:28:17,740 --> 00:28:22,430 Will ternyata bahawa antara kedua- kurungan, yang ingat, menanda 627 00:28:22,430 --> 00:28:28,020 input kepada fungsi, jika anda mempunyai dipisahkan oleh koma senarai perkara-perkara di sini, 628 00:28:28,020 --> 00:28:31,790 kita benar-benar lulus dalam pelbagai input kepada fungsi. 629 00:28:31,790 --> 00:28:33,901 Jadi hanya suka beberapa Scratch blok, anda mungkin tidak 630 00:28:33,901 --> 00:28:36,150 telah bermain dengan mereka untuk projek-projek anda belum atau sama sekali, 631 00:28:36,150 --> 00:28:38,250 beberapa blok calar mempunyai dua input. 632 00:28:38,250 --> 00:28:41,220 Dua kotak putih yang anda boleh menaip nombor atau perkataan-perkataan ke dalam. 633 00:28:41,220 --> 00:28:45,210 Jadi untuk tidak C mempunyai fungsi seperti printf yang boleh mengambil dua input. 634 00:28:45,210 --> 00:28:48,050 Dan sekali lagi, koma ini yang memisahkan mereka. 635 00:28:48,050 --> 00:28:51,070 Jadi, dalam bahasa Inggeris, sekali lagi walaupun anda tidak pernah diprogramkan sebelum ini, 636 00:28:51,070 --> 00:28:55,320 oleh yang printf logik adalah fungsi, mengambil masa dua input, satu daripadanya 637 00:28:55,320 --> 00:28:58,810 adalah pemegang tempat, apa yang anda akan berharap printf akan melakukan dengan input ini? 638 00:28:58,810 --> 00:29:01,470 639 00:29:01,470 --> 00:29:03,220 Ia akan bertanya khabar Hana, mudah-mudahan. 640 00:29:03,220 --> 00:29:05,274 Jadi untuk melakukan ini kita perlu untuk menyimpannya. 641 00:29:05,274 --> 00:29:06,190 Saya akan zum keluar. 642 00:29:06,190 --> 00:29:10,701 Saya akan kembali ke sini dan berkata, membuat hello masuk. 643 00:29:10,701 --> 00:29:11,200 Oh. 644 00:29:11,200 --> 00:29:14,830 Sesuatu yang salah, dan benar-benar ini agak menggalakkan. 645 00:29:14,830 --> 00:29:18,400 Saya mempunyai enam baris kod dan seperti 12 baris kesilapan. 646 00:29:18,400 --> 00:29:22,120 Jadi, mengalu-alukan ini. 647 00:29:22,120 --> 00:29:24,260 Jadi apa yang berlaku di sini? 648 00:29:24,260 --> 00:29:27,370 Jadi peraturan yang terbaik ibu jari di sini, terutamanya apabila anda memulakan, 649 00:29:27,370 --> 00:29:29,370 tidak terganggu oleh barang-barang di bahagian bawah. 650 00:29:29,370 --> 00:29:31,220 Malah, saya sangat sengaja hanya menatal ke atas 651 00:29:31,220 --> 00:29:33,930 kerana selalu, komputer adalah tidak semua yang terang peranti. 652 00:29:33,930 --> 00:29:35,054 Ia akan keliru. 653 00:29:35,054 --> 00:29:37,220 Jika ia melihat satu perkara yang ia tidak memahami, 654 00:29:37,220 --> 00:29:40,030 ia mungkin kesilapan lain baris kod yang tidak betul, 655 00:29:40,030 --> 00:29:41,649 walaupun mereka berada betul-betul halus. 656 00:29:41,649 --> 00:29:43,940 Jadi, anda sentiasa mahu bekerja atas ke bawah melalui kesilapan. 657 00:29:43,940 --> 00:29:47,850 Dan diakui ini super sukar difahami pada masa ini. 658 00:29:47,850 --> 00:29:50,830 >> Ralat, penggunaan yang tidak diisytiharkan tali pengecam. 659 00:29:50,830 --> 00:29:52,130 Adakah saya maksudkan standard dalam? 660 00:29:52,130 --> 00:29:53,720 Tidak, saya bermaksud tali. 661 00:29:53,720 --> 00:29:55,830 Dan ia menghala ke arah, mungkin ia adalah kesilapan menaip. 662 00:29:55,830 --> 00:30:00,570 Jenis seperti, ejaan yang mendaftar masuk yang cara yang sangat geeky, tetapi sebab itu di sini, 663 00:30:00,570 --> 00:30:02,840 dan anda akan tahu ini hanya dengan amalan, adalah 664 00:30:02,840 --> 00:30:06,390 yang ternyata rentetan yang tidak wujud dalam C. Malah, C 665 00:30:06,390 --> 00:30:08,820 adalah bahasa terutamanya lama, dan ia adalah tahap yang sangat rendah, 666 00:30:08,820 --> 00:30:11,361 dan ia tidak banyak ciri-ciri yang mungkin anda membesar 667 00:30:11,361 --> 00:30:14,620 dengan jika anda mempunyai, sebenarnya, diprogramkan di Jawa, sebagai sebahagian daripada anda mempunyai, 668 00:30:14,620 --> 00:30:16,980 tetapi anda boleh mengajar sesuatu yang baru. 669 00:30:16,980 --> 00:30:20,900 Dan sesungguhnya kami telah melakukan CS50 ini, walaupun pada akhir semester, 670 00:30:20,900 --> 00:30:23,512 semua ini roda latihan akan telah diambil kira, 671 00:30:23,512 --> 00:30:25,220 apa yang kita lakukan dalam ini Pasangan pertama minggu 672 00:30:25,220 --> 00:30:29,830 pada mulanya adalah kita juga mempunyai anda termasuk CS50 dot h. 673 00:30:29,830 --> 00:30:31,230 Yang merupakan fail header. 674 00:30:31,230 --> 00:30:32,440 Lebih kepada yang di masa depan. 675 00:30:32,440 --> 00:30:36,430 >> Ia adalah satu fail yang mengandungi fungsi bahawa kita telah menulis untuk anda. 676 00:30:36,430 --> 00:30:39,180 Dan di antara fungsi-fungsi itu adalah fungsi untuk mendapatkan input 677 00:30:39,180 --> 00:30:43,520 daripada pengguna, seperti tali, dan nombor, dan nombor nyata, dan banyak lagi. 678 00:30:43,520 --> 00:30:45,550 Tetapi ia juga mempunyai jalan pintas beberapa. 679 00:30:45,550 --> 00:30:48,200 Ia mentakrifkan Boolean sebagai jenis data. 680 00:30:48,200 --> 00:30:50,340 C tidak mempunyai benar atau palsu. 681 00:30:50,340 --> 00:30:53,880 Tetapi kita boleh memberikan tanggapan benar atau salah melalui perpustakaan ini. 682 00:30:53,880 --> 00:30:57,670 Dan ia juga tidak mempunyai rentetan dibina pada sehingga kita termasuk baris ini. 683 00:30:57,670 --> 00:31:01,090 Jadi garis kod ini memberitahu pengkompil, hey, dilafaz, melihat 684 00:31:01,090 --> 00:31:03,570 dalam fail ini secara keseluruhannya sekumpulan kod yang CS50 685 00:31:03,570 --> 00:31:06,330 telah menulis supaya sesiapa sahaja yang menggunakan fail ini 686 00:31:06,330 --> 00:31:09,330 boleh mengambil mudah ciri-ciri mereka telah ditambah. 687 00:31:09,330 --> 00:31:11,220 >> Jadi sekarang mari saya pergi ke hadapan dan mengosongkan skrin, 688 00:31:11,220 --> 00:31:14,178 dan jika ingin tahu saya hanya berkata kawalan l setiap kali untuk mengosongkan skrin, 689 00:31:14,178 --> 00:31:15,500 atau anda boleh menaip jelas. 690 00:31:15,500 --> 00:31:19,220 Saya hanya akan pergi ke hadapan sekarang dan Jenis membuat hello, dan semuanya berjalan dengan lancar. 691 00:31:19,220 --> 00:31:22,550 Masih output yang sukar difahami, tetapi ia bukan satu mesej yang salah. 692 00:31:22,550 --> 00:31:28,300 Sekarang jika saya lakukan dot mengurangkan hello, dan sebagai diketepikan, slash dot tidak biasa untuk sebahagian besar. 693 00:31:28,300 --> 00:31:30,430 Ia hanya bermakna, cara dot direktori semasa. 694 00:31:30,430 --> 00:31:33,120 Jadi, jika anda pernah menggunakan DOS, atau Linux, atau Unix 695 00:31:33,120 --> 00:31:35,410 anda telah melakukan sesuatu yang seperti cd dot dot, di mana 696 00:31:35,410 --> 00:31:39,220 dot dot bermakna pergi ke belakang dalam masa, atau pergi ke belakang, atau lebih tinggi 697 00:31:39,220 --> 00:31:40,370 dalam direktori anda. 698 00:31:40,370 --> 00:31:43,090 Dot hanya bermakna melihat di direktori semasa. 699 00:31:43,090 --> 00:31:45,670 Saya hendak hello, yang di sini. 700 00:31:45,670 --> 00:31:47,750 Dan sesungguhnya, kini ia berkata hello Hannah. 701 00:31:47,750 --> 00:31:51,120 Dan jika saya menukarnya lagi Maria, susun semula 702 00:31:51,120 --> 00:31:55,650 ia akan membuat hello, slash dot hello, program ini sentiasa berubah. 703 00:31:55,650 --> 00:31:58,060 >> Tetapi ini masih program cukup bodoh. 704 00:31:58,060 --> 00:32:00,972 Jika saya ingin menghantar program ini, atau memberikan kepada rakan, 705 00:32:00,972 --> 00:32:03,430 atau memberikan kepada Maria atau Hannah dalam hal ini, itulah denda. 706 00:32:03,430 --> 00:32:07,300 Saya boleh menyesuaikan untuk kedua-dua mereka, tetapi ia tidak akan menjadi dinamik. 707 00:32:07,300 --> 00:32:10,870 Mereka tidak boleh mengubahnya sekali ia disusun ke dalam orang-orang sifar dan satu. 708 00:32:10,870 --> 00:32:12,350 Jadi apa yang kita melakukan sesuatu yang lebih bijak? 709 00:32:12,350 --> 00:32:17,100 Bagaimana jika, bukannya keras pengekodan ke dalam program ini nama orang ini, 710 00:32:17,100 --> 00:32:20,890 bagaimana jika kita hanya mendapat tali pada permintaan? 711 00:32:20,890 --> 00:32:22,430 >> Jadi dalam erti kata lain, saya melakukan ini. 712 00:32:22,430 --> 00:32:24,030 Saya akan susun semula program ini. 713 00:32:24,030 --> 00:32:25,710 Dan biarlah saya zum masuk di bahagian bawah sekarang. 714 00:32:25,710 --> 00:32:29,920 Membuat hello dot mengurangkan hello. 715 00:32:29,920 --> 00:32:31,710 Sekarang tiada apa yang berlaku. 716 00:32:31,710 --> 00:32:35,860 Bolehkah kita mendapatkan sukarelawan cepat untuk membuat sesuatu yang berlaku? 717 00:32:35,860 --> 00:32:36,360 Naiklah. 718 00:32:36,360 --> 00:32:37,020 Siapa nama anda? 719 00:32:37,020 --> 00:32:37,445 >> PANCHO: Pancho. 720 00:32:37,445 --> 00:32:38,361 >> DAVID J. MALAN: Pacho? 721 00:32:38,361 --> 00:32:39,609 Naiklah. 722 00:32:39,609 --> 00:32:42,150 Sebaik sahaja anda mendapat di sini, ini adalah akan menjadi sangat underwhelming, 723 00:32:42,150 --> 00:32:44,060 tetapi ia lebih menarik daripada saya menaip. 724 00:32:44,060 --> 00:32:49,007 Jika anda ingin pergi ke depan dan menaip anda nama, saya membuat program ini hanya untuk anda. 725 00:32:49,007 --> 00:32:49,840 Hanya taip nama anda. 726 00:32:49,840 --> 00:32:52,380 727 00:32:52,380 --> 00:32:53,900 Enter. 728 00:32:53,900 --> 00:32:54,489 Hebat. 729 00:32:54,489 --> 00:32:55,780 Baiklah, terima kasih banyak. 730 00:32:55,780 --> 00:32:56,708 >> PANCHO: Terima kasih banyak. 731 00:32:56,708 --> 00:32:57,636 >> DAVID J. MALAN: OK. 732 00:32:57,636 --> 00:32:59,028 >> [Tepuk tangan] 733 00:32:59,028 --> 00:33:00,884 734 00:33:00,884 --> 00:33:01,840 >> Itu adalah sangat baik. 735 00:33:01,840 --> 00:33:03,145 Di sini anda Go. 736 00:33:03,145 --> 00:33:03,770 Apa yang kita lakukan? 737 00:33:03,770 --> 00:33:05,930 Oleh itu, kita akhirnya, sekurang-kurangnya, membuat program ini dinamik. 738 00:33:05,930 --> 00:33:08,400 Sekarang ia masih pasti oleh reka bentuk underwhelming, 739 00:33:08,400 --> 00:33:11,480 tetapi kita akhirnya mempunyai keupayaan Masuk untuk menulis kod terlebih dahulu, banyak 740 00:33:11,480 --> 00:33:13,770 seperti pengarang printf, dan kemudian secara dinamik 741 00:33:13,770 --> 00:33:17,550 menyesuaikan diri berdasarkan input kami diserahkan, sama ada dengan pengaturcara, 742 00:33:17,550 --> 00:33:20,610 atau oleh manusia yang sebenarnya berinteraksi dengan program ini. 743 00:33:20,610 --> 00:33:22,990 Jadi mari kita sebenarnya kini cuba untuk melakukan beberapa konstruk lain 744 00:33:22,990 --> 00:33:26,625 dan lihat jika kita tidak boleh membuat program diri mereka lebih canggih. 745 00:33:26,625 --> 00:33:29,250 Oleh itu, marilah kita pergi ke hadapan dan bukannya menulis satu ini dari awal, 746 00:33:29,250 --> 00:33:31,540 Saya akan pergi ke hari ini kod sumber, dan semua ini 747 00:33:31,540 --> 00:33:34,290 boleh didapati di padang golf ini laman web, dan anda boleh seret dan lepaskan 748 00:33:34,290 --> 00:33:36,590 ke dalam persekitaran anda sendiri datang Jumaat setelah masalah 749 00:33:36,590 --> 00:33:38,506 set 1 memberikan anda arahan, atau anda boleh 750 00:33:38,506 --> 00:33:41,200 melakukannya pada baris arahan sebagai baik, tetapi lebih untuk datang dalam p menetapkan 1. 751 00:33:41,200 --> 00:33:44,940 >> Mari kita lihat apa yang ada di dalam program ini di sini dipanggil, penambah dot c. 752 00:33:44,940 --> 00:33:47,970 Sekarang saya telah mengulas , tetapi apa yang baru? 753 00:33:47,970 --> 00:33:51,230 Pada pandangan pertama, apa garis kod adalah benar-benar baru? 754 00:33:51,230 --> 00:33:53,930 755 00:33:53,930 --> 00:33:56,780 Mungkin tidak asasnya yang tidak dikenali sekarang. 756 00:33:56,780 --> 00:33:58,417 >> PENONTON: [didengar] 757 00:33:58,417 --> 00:34:00,250 DAVID J. MALAN: Ya, supaya int x sama mendapat n. 758 00:34:00,250 --> 00:34:03,760 Kami tidak pernah melihat mana-mana ini sebelum ini, tetapi int mungkin 759 00:34:03,760 --> 00:34:08,179 simbol untuk apa-apa berubah-ubah, [? dari?] integer. 760 00:34:08,179 --> 00:34:09,040 Jadi int untuk integer. 761 00:34:09,040 --> 00:34:11,420 Ia hanya menjadi lebih ringkas. x hanya sewenang-wenangnya. 762 00:34:11,420 --> 00:34:13,920 x dan y dan z masih cukup munasabah untuk nombor, 763 00:34:13,920 --> 00:34:16,790 tetapi secara umumnya kita akan menggunakan kata-kata sekali program kami mendapat lebih kompleks. 764 00:34:16,790 --> 00:34:18,940 Dapatkan int, sudah tentu, sama seperti mendapatkan tali, 765 00:34:18,940 --> 00:34:21,629 mungkin akan mendapatkan int dari pengguna, 766 00:34:21,629 --> 00:34:23,670 dan kemudian kita akan melakukan perkara yang sama dengan y. 767 00:34:23,670 --> 00:34:27,610 Dan nampaknya, walaupun ini baris terakhir, 24, kelihatan lebih kompleks, 768 00:34:27,610 --> 00:34:32,679 ia akan berkata jumlah ini dan itu adalah perkara ini lain. 769 00:34:32,679 --> 00:34:35,840 >> Dan notis peratus i mungkin menandakan apa? 770 00:34:35,840 --> 00:34:38,190 Apakah peranan peratus i nampaknya berkhidmat? 771 00:34:38,190 --> 00:34:40,739 772 00:34:40,739 --> 00:34:41,719 Ia hanya ruang letak. 773 00:34:41,719 --> 00:34:42,219 Betul? 774 00:34:42,219 --> 00:34:45,149 Peratus s adalah untuk tali, peratus i adalah untuk integer. 775 00:34:45,149 --> 00:34:47,690 Terdapat akan menjadi peratus f untuk terapung nilai mata, yang 776 00:34:47,690 --> 00:34:49,273 hanya nombor yang mempunyai titik perpuluhan. 777 00:34:49,273 --> 00:34:50,590 Dengan kata lain, nombor nyata. 778 00:34:50,590 --> 00:34:55,270 Jadi mari kita sebenarnya menyusun ini program sebenar cepat dan jangan membuat penambah. 779 00:34:55,270 --> 00:34:57,962 Alamak. 780 00:34:57,962 --> 00:34:58,670 Peluang yang baik. 781 00:34:58,670 --> 00:35:02,970 Jadi perhatikan di sini, selama ini pengguna saya menamakan untuk akaun ini adalah jharvard. 782 00:35:02,970 --> 00:35:06,620 Saya dalam CS50 IDE, aka IDE50. 783 00:35:06,620 --> 00:35:11,030 Dan kini dengan warna biru di sini, adalah sebutan, tetapi dari alam sekitar, di mana saya berada. 784 00:35:11,030 --> 00:35:16,050 Dan sebenarnya, jika saya zum sehingga ke atas di sini, notis bahawa saya mempunyai IDE50 yang 785 00:35:16,050 --> 00:35:19,490 dan saya melihat perkataan ini, jika anda jenis memusingkan kepala anda ke tepi, ruang kerja. 786 00:35:19,490 --> 00:35:23,890 Secara ringkas, hakikat bahawa Saya melihat tilde slash ruang kerja 787 00:35:23,890 --> 00:35:26,910 bermakna bahawa dalam teks ini persekitaran arahan berdasarkan, 788 00:35:26,910 --> 00:35:32,300 Saya dalam bersamaan teks ini grafik folder di sini. 789 00:35:32,300 --> 00:35:35,730 Oleh itu, apabila saya lakukan slash dot penambah, ia berkata ada peraturan 790 00:35:35,730 --> 00:35:37,372 untuk membuat sasaran stop penambah. 791 00:35:37,372 --> 00:35:39,830 Saya tidak tahu apa yang bermakna, tetapi ia tidak baik untuk sebab-sebab tertentu. 792 00:35:39,830 --> 00:35:43,310 Tiada fail atau direktori seperti adalah lebih jelas. 793 00:35:43,310 --> 00:35:45,670 Di mana ia kemudian? 794 00:35:45,670 --> 00:35:47,820 Berdasarkan di mana saya klik untuk membuka fail yang lebih awal. 795 00:35:47,820 --> 00:35:49,442 Di mana ia mungkin? 796 00:35:49,442 --> 00:35:52,050 >> Ia mungkin dalam sumber salah satu w, untuk Rabu, 797 00:35:52,050 --> 00:35:53,960 dan saya dapat melihat ia, sesungguhnya, jika saya membuka bahawa sehingga. 798 00:35:53,960 --> 00:35:57,220 Terdapat penambah dot c, tetapi dalam persekitaran berasaskan teks ini, 799 00:35:57,220 --> 00:35:59,380 lagi, saya perlu menjadi super jelas. 800 00:35:59,380 --> 00:36:03,950 Jika saya mahu menukar direktori ke dalam sumber satu Rabu, saya perlu menaip, 801 00:36:03,950 --> 00:36:07,210 cd sumber ruang satu Rabu masukkan dan kini 802 00:36:07,210 --> 00:36:09,810 perubahan segera saya untuk memberikan saya petunjuk visual yang 803 00:36:09,810 --> 00:36:12,330 Saya, sesungguhnya, di tempat lain dalam persekitaran saya, 804 00:36:12,330 --> 00:36:15,710 tetapi sekarang saya boleh melakukan make penambah, ia seolah-olah untuk bekerja, 805 00:36:15,710 --> 00:36:18,190 dot mengurangkan penambah, memberi saya integer. 806 00:36:18,190 --> 00:36:19,080 One. 807 00:36:19,080 --> 00:36:20,070 Dua. 808 00:36:20,070 --> 00:36:21,630 Jumlah bagi satu dan dua adalah tiga. 809 00:36:21,630 --> 00:36:24,140 Tetapi jika saya tidak bekerjasama, mari kita lihat apa mendapatkan int tidak. 810 00:36:24,140 --> 00:36:25,200 Berikan saya integer. 811 00:36:25,200 --> 00:36:26,590 No. 812 00:36:26,590 --> 00:36:27,350 Cuba semula. 813 00:36:27,350 --> 00:36:29,060 OKAY. 814 00:36:29,060 --> 00:36:30,520 Halus. 815 00:36:30,520 --> 00:36:32,130 50. 816 00:36:32,130 --> 00:36:32,680 50. 817 00:36:32,680 --> 00:36:33,010 Baiklah. 818 00:36:33,010 --> 00:36:34,055 Jadi ia akhirnya bekerjasama. 819 00:36:34,055 --> 00:36:36,430 Dan itu sebahagian daripada fungsi yang fungsi-fungsi ini 820 00:36:36,430 --> 00:36:37,760 boleh telah terbina dalam untuk anda. 821 00:36:37,760 --> 00:36:43,330 >> Jadi di dalam pelaksanaan untuk mendapatkan int, apa pengaturcaraan 822 00:36:43,330 --> 00:36:47,990 membina dari minggu lepas mungkin dalam ada untuk memaksa tingkah laku ini daripada cuba semula, 823 00:36:47,990 --> 00:36:49,962 cuba semula, cuba semula? 824 00:36:49,962 --> 00:36:51,670 Ya, ada mungkin beberapa jenis gelung. 825 00:36:51,670 --> 00:36:54,160 Ia akan kelihatan sintaksis berbeza daripada blok Scratch, 826 00:36:54,160 --> 00:36:55,880 tetapi itu memang apa yang di dalam fail. 827 00:36:55,880 --> 00:36:58,505 Dan dalam masa beberapa minggu kita akan sebenarnya melihat perpustakaan CS50 828 00:36:58,505 --> 00:37:02,000 apa yang di dalam, tetapi ada gelung mengenakan tepat. 829 00:37:02,000 --> 00:37:04,840 >> Mari kita bermain sedikit bodoh permainan di sini dengan fail ini. 830 00:37:04,840 --> 00:37:06,550 Keadaan sifar dot c. 831 00:37:06,550 --> 00:37:08,960 Kami hanya akan umum mula mengira pada sifar. 832 00:37:08,960 --> 00:37:11,220 Dan saya terus menatal lalu beberapa perkara yang di atas. 833 00:37:11,220 --> 00:37:15,390 Dalam biru sini, yang ditanda dengan daripada bintang dan garis condong, 834 00:37:15,390 --> 00:37:17,310 Persekitaran yang program sebelum ini, apakah itu? 835 00:37:17,310 --> 00:37:18,690 Mengapa kita menjaga ponteng ke atasnya? 836 00:37:18,690 --> 00:37:19,110 Apa? 837 00:37:19,110 --> 00:37:19,490 >> PENONTON: Ia komen. 838 00:37:19,490 --> 00:37:19,800 >> DAVID J. MALAN: Ya. 839 00:37:19,800 --> 00:37:20,633 Ia hanya komen. 840 00:37:20,633 --> 00:37:24,160 Ini adalah komen untuk manusia untuk membaca, yang dalam kes ini, 841 00:37:24,160 --> 00:37:27,120 memberitahu kita apa nama fail adalah, yang menulisnya, dan apa yang tidak, 842 00:37:27,120 --> 00:37:28,610 supaya anda tidak perlu untuk membaca kod di 843 00:37:28,610 --> 00:37:30,110 untuk mengetahui apa yang fail ini adalah semua tentang. 844 00:37:30,110 --> 00:37:33,110 Ia hanya penerangan, tetapi fungsi itu tidak relevan. 845 00:37:33,110 --> 00:37:35,930 Dan saya juga boleh memadamnya dari fail saya dan ia tidak memberi kesan. 846 00:37:35,930 --> 00:37:38,740 Garis berair adalah ini Dua di sini, sekarang. 847 00:37:38,740 --> 00:37:41,405 sah utama int adalah bersamaan daripada kita apabila bendera hijau diklik, 848 00:37:41,405 --> 00:37:44,030 jadi kita akan meninggalkan yang menjadi untuk hari ini, dan kami akan kembali, 849 00:37:44,030 --> 00:37:46,940 akhirnya, apa int dan tidak sah adalah, tetapi kini, 850 00:37:46,940 --> 00:37:49,500 melihat apa yang saya lakukan di sini juga, anda boleh juga, 851 00:37:49,500 --> 00:37:51,736 jika anda mempunyai yang selaras komen, jika anda mempunyai 852 00:37:51,736 --> 00:37:54,670 yang fikir anda ingin berkongsi mengenai garis tertentu kod, 853 00:37:54,670 --> 00:37:58,910 konvensyen di C adalah untuk melakukan slash slash, dan kemudian Beberapa fakta yang ringkas, 854 00:37:58,910 --> 00:38:01,500 tidak hukuman penuh, umumnya tidak perenggan, 855 00:38:01,500 --> 00:38:05,310 yang hanya menjelaskan kepada anda, atau anda TF, atau pembaca atau rakan-rakan lain, 856 00:38:05,310 --> 00:38:06,990 apa kod anda lakukan. 857 00:38:06,990 --> 00:38:10,150 Jadi, daripada perlu melihat pada ini dan membuat kesimpulan dari talian 858 00:38:10,150 --> 00:38:12,550 sembilan dan 10, apa yang ini lakukan, selaras lapan 859 00:38:12,550 --> 00:38:14,945 Saya hanya memberi komen kepada meminta pengguna untuk integer, 860 00:38:14,945 --> 00:38:17,820 maka saya tidak perlu berfikir terlalu keras tentang apa garis sembilan dan 10 berada. 861 00:38:17,820 --> 00:38:19,720 Saya hanya tahu bahawa itulah yang kolektif yang mereka lakukan. 862 00:38:19,720 --> 00:38:20,460 >> Bagaimana? 863 00:38:20,460 --> 00:38:22,060 Nah, di sini prompt. 864 00:38:22,060 --> 00:38:23,610 Berikut adalah mendapat int itu. 865 00:38:23,610 --> 00:38:25,984 Dan berdasarkan sebelumnya tingkah laku, ia seolah-olah seperti mendapatkan int 866 00:38:25,984 --> 00:38:29,080 pintar yang cukup untuk memastikan bahawa manusia yang bekerjasama dan memberikan 867 00:38:29,080 --> 00:38:30,090 integer. 868 00:38:30,090 --> 00:38:32,270 Tetapi kita lihat sekarang ini. 869 00:38:32,270 --> 00:38:33,740 Dan ini mengingatkan Scratch. 870 00:38:33,740 --> 00:38:36,140 Saya mengaku bahawa saya menganalisis input pengguna, 871 00:38:36,140 --> 00:38:39,050 tetapi agak tidak tepat. 872 00:38:39,050 --> 00:38:43,200 Dan ini nampaknya dalam C adalah bagaimana kita menyatakan jika lain, cawangan, 873 00:38:43,200 --> 00:38:46,320 garpu di jalan raya, tetapi saya mengatakan agak tidak tepat. 874 00:38:46,320 --> 00:38:50,470 Apa yang ada pepijat dalam program ini? 875 00:38:50,470 --> 00:38:51,610 Tentang lagi menyokong? 876 00:38:51,610 --> 00:38:52,223 Yeah. 877 00:38:52,223 --> 00:38:53,150 >> PENONTON: [didengar] sifar. 878 00:38:53,150 --> 00:38:54,025 >> DAVID J. MALAN: Ya. 879 00:38:54,025 --> 00:38:57,630 Jadi, jika saya menaip sifar, mari kita mempertimbangkan betul-betul kes kes, atau sudut, 880 00:38:57,630 --> 00:38:58,450 jika anda akan. 881 00:38:58,450 --> 00:39:02,790 Jadi, jika saya menaip sifar, yang mana satu blok akan nampaknya merebutnya? 882 00:39:02,790 --> 00:39:04,660 Jika atau lain? 883 00:39:04,660 --> 00:39:07,340 Yang lain, dan ia akan berkata, anda pilih nombor negatif. 884 00:39:07,340 --> 00:39:10,476 Dan sesungguhnya, sifar tidak sepatutnya positif atau negatif, 885 00:39:10,476 --> 00:39:11,850 dan sebagainya yang akan tersilap. 886 00:39:11,850 --> 00:39:12,930 Itu akan menjadi bug. 887 00:39:12,930 --> 00:39:14,580 Jadi bagaimana kita boleh menetapkan ini? 888 00:39:14,580 --> 00:39:16,360 Seseorang yang tidak pernah diprogramkan sebelum ini? 889 00:39:16,360 --> 00:39:16,570 Adakah anda want-- 890 00:39:16,570 --> 00:39:17,480 >> PENONTON: [didengar] 891 00:39:17,480 --> 00:39:17,990 >> DAVID J. MALAN: Menarik balik? 892 00:39:17,990 --> 00:39:18,570 >> PENONTON: [didengar] 893 00:39:18,570 --> 00:39:18,930 >> DAVID J. MALAN: Oh, anda ada? 894 00:39:18,930 --> 00:39:20,350 Seseorang yang tidak pernah diprogramkan sebelum ini. 895 00:39:20,350 --> 00:39:21,750 Ingin mencuba tangan anda di ini, dalam baju merah? 896 00:39:21,750 --> 00:39:22,600 Naiklah. 897 00:39:22,600 --> 00:39:25,320 Oh yeah, datang ke atas, jika anda tidak keberatan. 898 00:39:25,320 --> 00:39:27,586 Jadi tidak pernah diprogramkan sebelum ini, apa nama anda? 899 00:39:27,586 --> 00:39:28,210 LAUREN Lauren. 900 00:39:28,210 --> 00:39:29,626 DAVID J. MALAN: Lauren, baiklah. 901 00:39:29,626 --> 00:39:31,150 Jadi pepijat ini untuk kita. 902 00:39:31,150 --> 00:39:35,070 Anda tidak dilihat C, mungkin, dan mungkin tiada bahasa lain. 903 00:39:35,070 --> 00:39:38,380 Jadi membaiki program ini untuk kita. 904 00:39:38,380 --> 00:39:39,100 Gembira dapat bertemu dengan ya. 905 00:39:39,100 --> 00:39:39,615 Tiada tekanan. 906 00:39:39,615 --> 00:39:40,156 LAUREN: Ya. 907 00:39:40,156 --> 00:39:43,350 908 00:39:43,350 --> 00:39:46,270 >> DAVID J. MALAN: Tetapi sekali lagi, jika ini berjudi berjalan mengikut perancangan, 909 00:39:46,270 --> 00:39:48,350 bawa pulang di sini akan berkenaan, hanya sekali lagi, untuk memulakan 910 00:39:48,350 --> 00:39:51,080 notis corak dan membuat kesimpulan dari sintaks yang sedia ada 911 00:39:51,080 --> 00:39:55,420 bagaimana lagi anda mungkin menyatakan diri sendiri, pun tidak bertujuan, untuk 912 00:39:55,420 --> 00:39:58,410 untuk menangkap beberapa senario tambahan. 913 00:39:58,410 --> 00:39:59,603 Oleh itu, kita katakan lagi jika. 914 00:39:59,603 --> 00:40:04,040 915 00:40:04,040 --> 00:40:05,230 printf, baik. 916 00:40:05,230 --> 00:40:09,120 Dan perhatikan dengan CS50 IDE, dan IDE frankly-- 917 00:40:09,120 --> 00:40:11,110 bermaksud Bersepadu Persekitaran Pembangunan. 918 00:40:11,110 --> 00:40:14,110 Ia hanya satu cara mewah untuk mengatakan program yang membantu program anda. 919 00:40:14,110 --> 00:40:16,779 Ia tidak mesra pengguna perkara seperti apabila anda menaip satu kurungan, 920 00:40:16,779 --> 00:40:18,320 ia secara automatik memberikan anda yang lain. 921 00:40:18,320 --> 00:40:20,760 Anggapan adalah bahawa anda berada akhirnya akan mahu untuk menaip itu, 922 00:40:20,760 --> 00:40:22,400 dan ia juga melakukannya dengan sebut harga. 923 00:40:22,400 --> 00:40:24,190 >> Jadi saya suka talian 23. 924 00:40:24,190 --> 00:40:26,400 99% daripada perjalanan di sana. 925 00:40:26,400 --> 00:40:29,920 Seseorang mahu temurun dengan tip? 926 00:40:29,920 --> 00:40:31,420 Saya mendengar koma bertitik daripada penonton. 927 00:40:31,420 --> 00:40:32,080 Yang baik. 928 00:40:32,080 --> 00:40:33,260 Jadi yang melengkapkan itu. 929 00:40:33,260 --> 00:40:37,930 Dan sekarang, saya hanya mempunyai sedikit kebingungan dengan garis 21. 930 00:40:37,930 --> 00:40:41,370 Bagaimana kita ingin menyatakan ini? 931 00:40:41,370 --> 00:40:43,370 Apakah soalan yang kita mahu untuk bertanya, pendapat anda? 932 00:40:43,370 --> 00:40:46,870 933 00:40:46,870 --> 00:40:50,330 Jadi sebelum kita bertanya soalan itu, jika n lebih besar daripada sifar, melakukan ini. 934 00:40:50,330 --> 00:40:51,870 Yang lain, berbuat demikian. 935 00:40:51,870 --> 00:40:54,317 Oleh itu, kita perlu memilih soalan untuk bertanya di sini. 936 00:40:54,317 --> 00:40:55,192 PENONTON: [didengar] 937 00:40:55,192 --> 00:40:56,530 DAVID J. MALAN: Baik. 938 00:40:56,530 --> 00:40:58,290 Jadi, jika n sama dengan sifar. 939 00:40:58,290 --> 00:41:01,140 940 00:41:01,140 --> 00:41:02,100 Sangat baik. 941 00:41:02,100 --> 00:41:03,080 Jadi mari kita berhenti seketika di sini. 942 00:41:03,080 --> 00:41:04,850 Terima kasih banyak untuk menempuh ini. 943 00:41:04,850 --> 00:41:10,890 Biar saya memberi anda sedikit baik berhak bola tekanan, mungkin di sana. 944 00:41:10,890 --> 00:41:11,900 Oleh itu, kita sudah hampir. 945 00:41:11,900 --> 00:41:14,790 Malah, Lauren, jika anda tidak fikiran, saya membuat satu tweak sini, 946 00:41:14,790 --> 00:41:17,850 hanya untuk menjadi konsisten walaupun dengan apa yang kita lihat di Awal, apa 947 00:41:17,850 --> 00:41:21,080 saya mahu lakukan dengan garis 21 dan 24, hanya lagi berdasarkan 948 00:41:21,080 --> 00:41:23,290 bagaimana kita melakukan ini dalam Scratch, mungkin? 949 00:41:23,290 --> 00:41:24,230 >> PENONTON: bergerak ke atas. 950 00:41:24,230 --> 00:41:25,605 >> DAVID J. MALAN: Yeah, bergerak ke atas. 951 00:41:25,605 --> 00:41:30,260 Jadi keadaan pun, ketiga, atau keempat, atau kelima, atau cawangan akhir, 952 00:41:30,260 --> 00:41:34,100 tentulah datang selepas itu, dan itu hanya oleh konvensyen, 953 00:41:34,100 --> 00:41:36,047 hanya kerana jika anda akan. 954 00:41:36,047 --> 00:41:37,380 Jadi, saya perlu membuat tweak ini. 955 00:41:37,380 --> 00:41:39,660 Dan saya perlu meletakkan saya kerinting ke sini. 956 00:41:39,660 --> 00:41:42,700 Dan kini, program ini akan menyusun. 957 00:41:42,700 --> 00:41:46,140 Kami begitu rapat, tetapi ada bug sangat, sangat halus. 958 00:41:46,140 --> 00:41:47,200 Mari kita lihat apa yang berlaku. 959 00:41:47,200 --> 00:41:49,660 >> Pertama, izinkan saya pergi ke hadapan dan zum keluar. 960 00:41:49,660 --> 00:41:53,405 Saya akan pergi ke depan dan menaip membuat keadaan sifar. 961 00:41:53,405 --> 00:41:55,070 Oh, saya berbohong. 962 00:41:55,070 --> 00:41:58,760 Sekarang pengkompil adalah sebenarnya cukup bijak. 963 00:41:58,760 --> 00:42:00,950 Dan saya tidak benar-benar memahami ia adalah mesej ralat. 964 00:42:00,950 --> 00:42:04,310 Menggunakan hasil tugasan sebagai syarat tanpa kurungan, 965 00:42:04,310 --> 00:42:05,740 nampaknya tidak baik. 966 00:42:05,740 --> 00:42:07,100 Tetapi apa maksudnya? 967 00:42:07,100 --> 00:42:10,860 >> Baik lagi, mencari pola kod yang kita lihat sebelum ini, 968 00:42:10,860 --> 00:42:16,640 apa yang garis 17 sebenarnya lakukan, walaupun Lauren bertujuan sedikit 969 00:42:16,640 --> 00:42:18,790 sebaliknya? 970 00:42:18,790 --> 00:42:19,290 Yeah. 971 00:42:19,290 --> 00:42:21,565 >> PENONTON: [didengar] 972 00:42:21,565 --> 00:42:22,440 DAVID J. MALAN: Ya. 973 00:42:22,440 --> 00:42:26,610 Jadi ingat tanda yang sama, nampaknya seperti yang kita telah digunakan sebelum ini, adalah tidak sama. 974 00:42:26,610 --> 00:42:29,240 Tugasan, dari kanan ke kiri. 975 00:42:29,240 --> 00:42:33,810 Jadi beratur 17 pada masa ini adalah suatu keadaan, dan ia 976 00:42:33,810 --> 00:42:37,890 melaksanakan kod di dalam kurungan, tetapi apabila kod yang melaksanakan, 977 00:42:37,890 --> 00:42:42,140 apa yang sedang berlaku kepada nilai sifar? 978 00:42:42,140 --> 00:42:45,250 Apa yang berlaku kepada nilai n? 979 00:42:45,250 --> 00:42:46,810 Menjadi sifar. 980 00:42:46,810 --> 00:42:50,520 Jadi, jika n menjadi sifar, dan sekali lagi, seperti minggu lalu, 981 00:42:50,520 --> 00:42:54,690 kita biasanya berkata sifar yang adalah palsu dan salah satu adalah benar, 982 00:42:54,690 --> 00:42:57,410 atau ya adalah salah dan tidak adalah sifar. 983 00:42:57,410 --> 00:42:59,590 Jadi yang benar dan palsu, satu dan 0. 984 00:42:59,590 --> 00:43:06,090 Jika n sebagai garis 17 telah diberi nilai 0, adalah sifar benar? 985 00:43:06,090 --> 00:43:06,590 No. 986 00:43:06,590 --> 00:43:08,280 Mengikut definisi, sifar adalah palsu. 987 00:43:08,280 --> 00:43:10,860 Itulah konvensyen kami akan berpaut kepada masa depan. 988 00:43:10,860 --> 00:43:17,320 Begitu juga garis 18, 19, dan 20 pernah memohon sekarang, secara logik? 989 00:43:17,320 --> 00:43:18,320 Mereka tidak boleh. 990 00:43:18,320 --> 00:43:21,640 Oleh itu, kita ditanya soalan tetapi tidak cukup tepat, 991 00:43:21,640 --> 00:43:25,620 dan anda tidak akan tahu ini melainkan anda telah melihat ia, penyelesaian dalam C 992 00:43:25,620 --> 00:43:29,610 adalah apabila anda mahu untuk menyatakan kesaksamaan, anda mengatakan sama sama. 993 00:43:29,610 --> 00:43:33,140 Jadi tanda sama sudah digunakan melalui penyerahhakan, dari kanan ke kiri. 994 00:43:33,140 --> 00:43:35,110 Sama sama cara sama. 995 00:43:35,110 --> 00:43:37,950 Dan jika anda benar-benar mahu fikiran anda untuk bengkok, dalam JavaScript dan PHP, 996 00:43:37,950 --> 00:43:40,490 ada sama sama sama, yang maksud sesuatu yang berlainan sama sekali, 997 00:43:40,490 --> 00:43:41,990 tetapi kita akan mendapat itu tidak lama lagi. 998 00:43:41,990 --> 00:43:45,760 >> Jadi ini adalah satu penyelesaian yang mudah, tetapi sedar sangat mudah untuk membuat kesilapan ini, 999 00:43:45,760 --> 00:43:48,700 dan kemudian tertanya-tanya dan perjuangan untuk minit, jika tidak satu jam, 1000 00:43:48,700 --> 00:43:51,490 mengapa kod saya tidak melaksanakan kerana saya bercadang? 1001 00:43:51,490 --> 00:43:54,140 Ini kerana anda tidak memberitahu ia dengan tepat apa yang anda maksudkan. 1002 00:43:54,140 --> 00:43:56,450 Jadi yang hampir sempurna, dan ia adalah besar 1003 00:43:56,450 --> 00:44:00,760 yang kita terjumpa dua sedikit sesuatu kerana sekarang jika kita menetapkan mereka, 1004 00:44:00,760 --> 00:44:06,240 dan saya membuat keadaan sifar dot mengurangkan keadaan sifar, 1005 00:44:06,240 --> 00:44:07,490 Saya ingin integer sila. 1006 00:44:07,490 --> 00:44:08,090 Mari kita lihat. 1007 00:44:08,090 --> 00:44:09,160 No. 1008 00:44:09,160 --> 00:44:10,740 Ia akan memaksa saya untuk melakukannya. 1009 00:44:10,740 --> 00:44:11,990 Jadi 42. 1010 00:44:11,990 --> 00:44:13,590 Saya mengambil nombor positif. 1011 00:44:13,590 --> 00:44:16,470 Jadi sekarang bagaimana saya membuktikan program ini betul? 1012 00:44:16,470 --> 00:44:19,990 Jika anda ahli matematik, anda tidak boleh benar-benar membuktikan ini melalui percubaan dan kesilapan, 1013 00:44:19,990 --> 00:44:20,490 bukan? 1014 00:44:20,490 --> 00:44:23,180 Anda boleh bukti bukan sahaja oleh Sebagai contoh, tetapi sekurang-kurangnya 1015 00:44:23,180 --> 00:44:25,494 sebagai seorang programmer kita tidak akan cuba untuk membuktikan buat masa ini 1016 00:44:25,494 --> 00:44:27,660 bahawa ini adalah benar-benar betul, tetapi perlu saya mungkin 1017 00:44:27,660 --> 00:44:29,470 menguji beberapa kes wakil. 1018 00:44:29,470 --> 00:44:31,070 >> Saya telah diuji 42. 1019 00:44:31,070 --> 00:44:33,030 Saya boleh menguji 43. 1020 00:44:33,030 --> 00:44:34,910 Saya boleh menguji 44. 1021 00:44:34,910 --> 00:44:35,640 Ujian 45. 1022 00:44:35,640 --> 00:44:36,140 Betul? 1023 00:44:36,140 --> 00:44:37,860 Tetapi saya boleh melakukan ini masa yang lama. 1024 00:44:37,860 --> 00:44:39,925 Apa yang akan menjadi lebih banyak kes-kes yang menarik untuk mencuba? 1025 00:44:39,925 --> 00:44:41,050 PENONTON: [didengar] sifar. 1026 00:44:41,050 --> 00:44:41,740 DAVID J. MALAN: Jadi sifar. 1027 00:44:41,740 --> 00:44:42,297 Sudah tentu. 1028 00:44:42,297 --> 00:44:44,880 Dan baik, kami telah mendapat ia masa ini, terima kasih kepada kod baru Lauren. 1029 00:44:44,880 --> 00:44:46,213 Apa yang satu lagi kes yang baik untuk mencuba? 1030 00:44:46,213 --> 00:44:47,320 PENONTON: satu negatif. 1031 00:44:47,320 --> 00:44:50,070 >> DAVID J. MALAN: satu negatif, dan mungkin sesuatu yang lebih besar, 1032 00:44:50,070 --> 00:44:52,617 jadi mungkin negatif 42, tetapi secara umum, apabila 1033 00:44:52,617 --> 00:44:54,450 menguji program anda bergerak ke hadapan, anda berada 1034 00:44:54,450 --> 00:44:56,325 akan mahu berfikir kepada diri sendiri, seperti apa yang 1035 00:44:56,325 --> 00:44:58,050 adalah kes asas yang berbeza. 1036 00:44:58,050 --> 00:45:01,720 Dan saya berani mengatakan kes negatif, kes positif, dan kes sifar 1037 00:45:01,720 --> 00:45:03,365 cukup banyak pusingan ini keluar. 1038 00:45:03,365 --> 00:45:04,990 Mari kita lihat varian walaupun ini. 1039 00:45:04,990 --> 00:45:06,930 Syarat satu. 1040 00:45:06,930 --> 00:45:11,224 Ini adalah penyelesaian yang betul di sini, supaya anda akan melihat dua dan dalam talian, 1041 00:45:11,224 --> 00:45:13,390 jika anda berjalan melalui walkthroughs, akan secara amnya 1042 00:45:13,390 --> 00:45:18,090 kenaikan langkah demi langkah ini sehingga kita mendapatkan tepat pendekatan yang betul. 1043 00:45:18,090 --> 00:45:20,070 Bagaimana jika kita mahu bertanya dua soalan pada satu masa? 1044 00:45:20,070 --> 00:45:22,200 >> Biar saya membuka ini sebaliknya. 1045 00:45:22,200 --> 00:45:26,740 Bukan suis, atas sebab-sebab kita akan melihat masa yang lain. 1046 00:45:26,740 --> 00:45:29,610 Apa yang baru sintaksis di sini? 1047 00:45:29,610 --> 00:45:32,760 Saya sedang bermain permainan yang mana komputer memberitahu 1048 00:45:32,760 --> 00:45:35,550 saya, memberikan saya integer antara satu hingga 10, 1049 00:45:35,550 --> 00:45:37,180 dan kemudian saya berdasarkan input pengguna. 1050 00:45:37,180 --> 00:45:39,180 Dalam bahasa Inggeris, berdasarkan kod yang anda lihat di sini 1051 00:45:39,180 --> 00:45:41,530 biru, apa yang program ini buat? 1052 00:45:41,530 --> 00:45:44,256 1053 00:45:44,256 --> 00:45:46,380 PENONTON: [didengar] dipilih satu jumlah yang besar atau kecil. 1054 00:45:46,380 --> 00:45:46,484 DAVID J. MALAN: Ya. 1055 00:45:46,484 --> 00:45:49,450 Ia hanya menghakimi sama ada Saya memilih yang besar, atau sederhana, 1056 00:45:49,450 --> 00:45:53,900 atau sebilangan kecil berdasarkan yang sangat definisi sewenang-wenangnya kecil, sederhana, 1057 00:45:53,900 --> 00:45:58,510 dan besar di sini, tetapi notis sintaks itulah baru ini. 1058 00:45:58,510 --> 00:46:02,340 Tidak ada kurang daripada int atau sama dengan menandatangani, atau lebih besar daripada atau sama dengan, 1059 00:46:02,340 --> 00:46:05,430 di mana seseorang itu berbanding dengan yang lain, yang anda dapat meluahkan dalam seperti Microsoft Word. 1060 00:46:05,430 --> 00:46:08,180 Jadi, dalam bahasa pengaturcaraan anda biasanya hanya melakukan dua watak, 1061 00:46:08,180 --> 00:46:09,450 satu demi satu. 1062 00:46:09,450 --> 00:46:12,695 Dan apakah ini mungkin mewakili, Ampersand Ampersand. 1063 00:46:12,695 --> 00:46:13,570 PENONTON: [didengar] 1064 00:46:13,570 --> 00:46:13,680 DAVID J. MALAN: Ya. 1065 00:46:13,680 --> 00:46:16,910 Ia hanya bermakna dan kerana ia ternyata bahawa pengarang C 1066 00:46:16,910 --> 00:46:19,120 menggunakan Ampersand tunggal, yang anda sangka 1067 00:46:19,120 --> 00:46:22,430 akan menjadi sempurna untuk tanggapan daripada dan, sudah digunakan, 1068 00:46:22,430 --> 00:46:27,300 Ampersand supaya Ampersand sebenarnya menangkap mana-mana yang kita benar-benar mahu. 1069 00:46:27,300 --> 00:46:30,610 >> Jadi mari kita kini tersandung di seluruh dua perkara. 1070 00:46:30,610 --> 00:46:32,640 Biar saya pergi ke hadapan dan membuka satu. 1071 00:46:32,640 --> 00:46:36,590 Sesuatu yang sedikit membimbangkan. 1072 00:46:36,590 --> 00:46:37,970 Ketakpersisan dot c. 1073 00:46:37,970 --> 00:46:40,260 Biar saya memperkenalkan dua perkara di sini. 1074 00:46:40,260 --> 00:46:44,720 Satu, notis yang boleh kita lakukan matematik, kerana sama seperti sebelum ini apabila 1075 00:46:44,720 --> 00:46:47,797 kita lakukan tambah dua nombor, x dan y. 1076 00:46:47,797 --> 00:46:49,380 Apa yang program ini nampaknya buat? 1077 00:46:49,380 --> 00:46:52,140 Saya tidak mengulas lagi, dan saya telah diperkenalkan peratus f, 1078 00:46:52,140 --> 00:46:55,720 tetapi saya cepat katakan sebelum ini peratus f bermakna titik terapung 1079 00:46:55,720 --> 00:46:56,970 nilai, yang merupakan nombor nyata. 1080 00:46:56,970 --> 00:46:59,520 Sesuatu dengan perpuluhan titik, yang tidak integer. 1081 00:46:59,520 --> 00:47:02,270 Apa yang anda fikir program ini adalah cuba untuk menunjukkan saya di skrin? 1082 00:47:02,270 --> 00:47:05,060 1083 00:47:05,060 --> 00:47:06,050 Ya? 1084 00:47:06,050 --> 00:47:07,550 PENONTON: Hasil satu dari 10. 1085 00:47:07,550 --> 00:47:07,780 DAVID J. MALAN: Ya. 1086 00:47:07,780 --> 00:47:09,680 Apakah hasil daripada satu dibahagikan dengan 10. 1087 00:47:09,680 --> 00:47:12,721 Betul, kerana anda semua mempunyai mungkin membesar mengetahui bahawa satu dari 10 1088 00:47:12,721 --> 00:47:14,502 adalah apa? 1089 00:47:14,502 --> 00:47:16,220 Ya, ia hanya 1/10 atau 0.1. 1090 00:47:16,220 --> 00:47:16,720 Betul? 1091 00:47:16,720 --> 00:47:19,010 Jadi mari kita lihat apa ini sebenarnya. 1092 00:47:19,010 --> 00:47:21,010 Jadi biarlah saya pergi ke hadapan dan menyimpan ini. 1093 00:47:21,010 --> 00:47:21,970 Biar saya pergi ke sini. 1094 00:47:21,970 --> 00:47:26,360 Membuat ketakpersisan dot slash ketakpersisan, dan notis, juga, 1095 00:47:26,360 --> 00:47:29,380 dalam persekitaran yang Linux, anda tidak perlu menaip ketakpersisan dan mengambil 1096 00:47:29,380 --> 00:47:30,010 sepanjang hari. 1097 00:47:30,010 --> 00:47:32,910 Ia secara amnya, jika anda memukul Tab, ia akan selesai pemikiran anda untuk anda, 1098 00:47:32,910 --> 00:47:36,660 berdasarkan perkataan yang terdapat di direktori semasa. 1099 00:47:36,660 --> 00:47:37,160 OKAY. 1100 00:47:37,160 --> 00:47:37,970 Jadi, anda adalah betul. 1101 00:47:37,970 --> 00:47:41,239 Satu dibahagikan dengan 10 adalah, sebenarnya, 0.1. 1102 00:47:41,239 --> 00:47:42,280 Tetapi saya sedikit ingin tahu. 1103 00:47:42,280 --> 00:47:44,196 Dan ternyata printf menyokong beberapa ciri-ciri 1104 00:47:44,196 --> 00:47:48,700 di mana anda boleh menentukan lebih daripada nombor lalai mata perpuluhan. 1105 00:47:48,700 --> 00:47:52,140 Jadi, jika saya mahu melihat 10 perpuluhan mata yang boleh saya lakukan peratus, 1106 00:47:52,140 --> 00:47:55,510 untuk simbol pemegang tempat, dot 10 untuk, memberi saya 10 titik perpuluhan, 1107 00:47:55,510 --> 00:47:58,140 dan kemudian masih titik terapung nilai, dan, sebagai diketepikan, 1108 00:47:58,140 --> 00:48:01,550 apa yang backslash ini n nampaknya kita terus gunakan? 1109 00:48:01,550 --> 00:48:03,450 Ternyata ia adalah satu Simbol bagi barisan baru. 1110 00:48:03,450 --> 00:48:05,970 Ia adalah cara yang sangat jelas untuk mengatakan kepada komputer, 1111 00:48:05,970 --> 00:48:08,759 menggerakkan kursor ke depan talian selepas anda selesai. 1112 00:48:08,759 --> 00:48:10,800 Dan kita akan lihat apa yang berlaku apabila kita tidak berbuat demikian. 1113 00:48:10,800 --> 00:48:12,430 >> Biar saya susun semula membuat ketakpersisan. 1114 00:48:12,430 --> 00:48:15,320 1115 00:48:15,320 --> 00:48:18,356 Sekarang dot mengurangkan ketakpersisan. 1116 00:48:18,356 --> 00:48:18,930 OKAY. 1117 00:48:18,930 --> 00:48:19,780 Masih betul. 1118 00:48:19,780 --> 00:48:21,512 Satu dibahagikan dengan 10. 1119 00:48:21,512 --> 00:48:23,220 Sekarang saya mendapat sedikit ingin tahu, walaupun. 1120 00:48:23,220 --> 00:48:27,599 Bagaimana jika saya melihat 20 perpuluhan menunjukkan, susun semula, jalankan lagi, 1121 00:48:27,599 --> 00:48:29,390 dan sebagai diketepikan untuk kelajuan, anda juga boleh menggunakan 1122 00:48:29,390 --> 00:48:31,800 atas dan ke bawah anak panah untuk anda tatal melalui sejarah anda, 1123 00:48:31,800 --> 00:48:35,476 supaya anda tidak perlu menyimpan penaipan semula arahan ini, masukkan. 1124 00:48:35,476 --> 00:48:36,910 Huh. 1125 00:48:36,910 --> 00:48:39,220 Saya tidak mengetahui bahawa di sekolah rendah. 1126 00:48:39,220 --> 00:48:43,260 Baiklah, jadi biarlah saya melihat seperti 29 tempat-tempat keluar. 1127 00:48:43,260 --> 00:48:44,300 Mungkin ia hanya kebetulan. 1128 00:48:44,300 --> 00:48:46,907 Mungkin komputer saya bertindak pelik. 1129 00:48:46,907 --> 00:48:47,990 Itu bukan sesuatu perkara, bukan? 1130 00:48:47,990 --> 00:48:50,300 Ia melakukan sesuatu secara berketentuan. 1131 00:48:50,300 --> 00:48:53,410 Oleh itu, ketakpersisan. 1132 00:48:53,410 --> 00:48:54,890 OK, itu merosakkan. 1133 00:48:54,890 --> 00:48:57,620 Jadi apa yang sedang berlaku? 1134 00:48:57,620 --> 00:49:00,160 >> Jadi nampaknya anda guru telah berbohong 1135 00:49:00,160 --> 00:49:03,900 kepada anda semua kali ini untuk sebab-sebab yang kita akan lihat tidak lama lagi. 1136 00:49:03,900 --> 00:49:05,569 Tetapi mari kita berakhir dengan satu program lain. 1137 00:49:05,569 --> 00:49:07,860 Ini adalah program kecil seseorang yang menulis beberapa tahun yang lalu, 1138 00:49:07,860 --> 00:49:08,990 dan ia sebenarnya sebahagian daripada pertandingan. 1139 00:49:08,990 --> 00:49:11,198 Tiada siapa yang sebenarnya menulis kod seperti ini, dan jika anda lakukan, 1140 00:49:11,198 --> 00:49:12,880 ini adalah segi gaya masalah. 1141 00:49:12,880 --> 00:49:14,660 Tetapi orang melakukan ini untuk hak bercakap besar. 1142 00:49:14,660 --> 00:49:17,260 Untuk menulis yang paling mengelirukan program mencari yang 1143 00:49:17,260 --> 00:49:19,110 tetap melakukan sesuatu yang menarik. 1144 00:49:19,110 --> 00:49:23,930 Dan komen yang saya fikir kita akan meninggalkan pada hari ini, sebelum Colton memainkan kami di sini, 1145 00:49:23,930 --> 00:49:27,840 adalah untuk menjalankan program ini, yang, walaupun dalam hanya menggunakan 1146 00:49:27,840 --> 00:49:31,450 C dalam ini berasaskan teks alam sekitar, memberikan kita ini. 1147 00:49:31,450 --> 00:49:32,264 Keparat. 1148 00:49:32,264 --> 00:49:34,930 >> [Ketawa] 1149 00:49:34,930 --> 00:49:36,800 >> Bersedia. 1150 00:49:36,800 --> 00:49:39,340 [Didengar] c dash l m. 1151 00:49:39,340 --> 00:49:42,885 Anda akan melihat ajaib mantera bahawa kita akan melihat tidak lama lagi. 1152 00:49:42,885 --> 00:49:45,780 [Didengar] Baiklah. 1153 00:49:45,780 --> 00:49:51,592 Dan sekarang anda juga boleh melakukan perkara-perkara seperti ini. 1154 00:49:51,592 --> 00:49:52,340 Itu sahaja. 1155 00:49:52,340 --> 00:49:56,410 Untuk CS50 kita akan melihat anda pada hari Jumaat. 1156 00:49:56,410 --> 00:49:58,910 >> [Bermain muzik] 1157 00:49:58,910 --> 00:52:38,390 1158 00:52:38,390 --> 00:52:41,440 >> [Tepuk tangan] 1159 00:52:41,440 --> 00:52:42,812